Jump to content
We've recently updated our Privacy Statement, available here ×

kolja.ehlersiconplc.com

Members
  • Posts

    56
  • Joined

  • Last visited

 Content Type 

Profiles

Forum

Events

Featured Visualizations

Knowledge Base

Documentation (PDF Downloads)

Blog

Documentation (Test Area)

Documentation

Dr. Jaspersoft Webinar Series

Downloads

Everything posted by kolja.ehlersiconplc.com

  1. So there are no examples anymore for Jasper Server >5.6? As santhoshkolloju pointed out the exmple from the earlier Guides do not work anymore and the current guide does not contains any information. Thanks
  2. Dear all, I know there is the option for calculation "Nothing" in iReport. I can not seem to find this functionality in the Adhoc desginer. I do want to display the String values in this case no aggregation. How is this possible? In iReport it is possible why not in the Adhoc? Am I overseeing it? Thanks Kolja
  3. I have a very simple question. I use the REST login to create a session on the Jasper Server to then pass the Cookie in further requests. Now how should I logout of the JasperServer? I can not find a corresponding REST function. Thanks
  4. Dear all, I am having this problem since a few days now and I can not find a way to solve it. I have implemented SSO using JAAS and everything works fine. Now I want to make use of the HTTP Api and embedd different components in our web application without having to recode all of the functionality as input values and all these things. That is why I am trying to embedd the report viewer into an iframe using the following URL: http://192.168.11.96:8080/jasperserver-pro/flow.html?_flowId=viewReportFlow&reportUnit=/public/Reports/Patient_Report_Report&decorate=no In general this works if I supply a j_username and j_password with the request. I do not want to do that, so what I did is I login the user using the rest API and receive the session cookie from the jasper server. Now I wrote a little proxy servlet that exchanges /jasperserver-pro/ with my proxy URL. In m proxy servlet and modify the header and add the cookie to it. This works also in general authentication wise. But when I open the viewReportFlow it loads the report viewer and alot of css and javascript files but when it comes to: /jasperserver-pro/flow.html?freshData=true&_flowExecutionKey=e2s8&_eventId=refreshReport&decorate=no&confirm=true&decorator=empty&ajax=true I do get an exception back from the jasper server. I am sure my request just looks exactly like the one if I open this not inside of my web application but in the jasper server iteself. I just dont understand the exception. Can somebody help? Thanks! 2013-03-20 17:00:59,673 ERROR errorPage_jsp,http-8080-39:487 - stack trace of exception that redirected to errorPage.jsp java.lang.IllegalStateException: Exception occurred rendering view org.springframework.web.servlet.view.JstlView: name 'modules/viewReport/reportOutput'; URL [/WEB-INF/jsp/modules/viewReport/reportOutput.jsp] at org.springframework.webflow.mvc.view.AbstractMvcView.render(AbstractMvcView.java:191) at org.springframework.webflow.engine.ViewState.render(ViewState.java:296) at org.springframework.webflow.engine.ViewState.doEnter(ViewState.java:186) at org.springframework.webflow.engine.State.enter(State.java:194) at org.springframework.webflow.engine.Transition.execute(Transition.java:227) at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:393) at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214) at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:119) at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:555) at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:388) at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210) at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105) at org.springframework.webflow.engine.State.enter(State.java:194) at org.springframework.webflow.engine.Transition.execute(Transition.java:227) at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:393) at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214) at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:119) at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:555) at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:388) at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210) at org.springframework.webflow.engine.ViewState.handleEvent(ViewState.java:232) at org.springframework.webflow.engine.ViewState.resume(ViewState.java:196) at org.springframework.webflow.engine.Flow.resume(Flow.java:545) at org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:261) at org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:169) at sun.reflect.GeneratedMethodAccessor452.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.security.intercept.method.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:66) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at sun.proxy.$Proxy129.resumeExecution(Unknown Source) at org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:183) at org.springframework.webflow.mvc.servlet.FlowController.handleRequest(FlowController.java:174) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:399) at com.jaspersoft.jasperserver.api.security.IPadSupportFilter.doFilter(IPadSupportFilter.java:67) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at com.jaspersoft.jasperserver.api.security.JSSwitchUserProcessingFilter.doFilterHttp(JSSwitchUserProcessingFilter.java:154) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at com.jaspersoft.ji.license.LicenseCheckFilter.doFilter(LicenseCheckFilter.java:95) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at com.jaspersoft.ji.license.JILicenseFilter.doFilter(JILicenseFilter.java:66) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at com.jaspersoft.jasperserver.api.metadata.user.service.impl.MetadataAuthenticationProcessingFilter.doFilter(MetadataAuthenticationProcessingFilter.java:139) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at com.jaspersoft.jasperserver.war.util.RequestParameterAuthenticationFilter.doFilter(RequestParameterAuthenticationFilter.java:96) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at com.jaspersoft.jasperserver.multipleTenancy.MTBasicProcessingFilter.doFilterHttp(MTBasicProcessingFilter.java:180) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at com.jaspersoft.jasperserver.war.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:192) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:278) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at com.jaspersoft.jasperserver.war.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:192) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at com.jaspersoft.jasperserver.api.logging.filter.BasicLoggingFilter.doFilter(BasicLoggingFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at com.jaspersoft.jasperserver.api.security.JSCsrfGuardFilter.doFilter(JSCsrfGuardFilter.java:101) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at com.jaspersoft.jasperserver.api.security.WebAppSecurityFilter.doFilter(WebAppSecurityFilter.java:76) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at com.jaspersoft.jasperserver.war.MultipartRequestWrapperFilter.doFilter(MultipartRequestWrapperFilter.java:90) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at com.jaspersoft.jasperserver.api.security.encryption.EncryptionFilter.doFilter(EncryptionFilter.java:130) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411) at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:188) at org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.jaspersoft.jasperserver.war.util.SessionDecoratorFilter.doFilter(SessionDecoratorFilter.java:43) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.jaspersoft.jasperserver.war.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:67) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.jaspersoft.jasperserver.war.P3PFilter.doFilter(P3PFilter.java:43) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879) at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:600) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1703) at java.lang.Thread.run(Thread.java:662) Caused by: org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.NullPointerException at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:502) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:127) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:56) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302) at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262) at org.springframework.webflow.mvc.servlet.ServletMvcView.doRender(ServletMvcView.java:50) at org.springframework.webflow.mvc.view.AbstractMvcView.render(AbstractMvcView.java:187) ... 119 more Caused by: javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.NullPointerException at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:861) at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794) at org.apache.jsp.WEB_002dINF.jsp.modules.viewReport.reportOutput_jsp._jspService(reportOutput_jsp.java:76) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) ... 136 more Caused by: java.lang.NullPointerException at com.jaspersoft.jasperserver.war.tags.JasperViewerTag.doEndTag(JasperViewerTag.java:177) at org.apache.jsp.WEB_002dINF.jsp.modules.viewReport.reportOutput_jsp._jspx_meth_js_005fjasperviewer_005f0(reportOutput_jsp.java:111) at org.apache.jsp.WEB_002dINF.jsp.modules.viewReport.reportOutput_jsp._jspService(reportOutput_jsp.java:67) ... 139 more
  5. I though about this a litle bit more and played around with the custom datasource. You are right I could react on a missing site attrbiute of a user. But what I can not do there is to make sure that the domain was configured correctly. So even if a user has a site attribute set the domain could have been defined without a security file. Could I also create a custom datasource that ALWAYS applies a where condition to any SQL?
  6. Thanks for the reply! Thanks for 1 and 2. I will look at the option with the custom datasource. Sounds that this could be helpful. To explain 3. Our sites are identified by a uuid which is 32 characters or something. So one user can only store like 3 sites in one attribute. Now my idea was not to go with: sites: 435345345345345v...,34545...,345345 rather doing: site1: 345435345... site2: 267465654... site3: 342354545... Thanks again.
  7. So I got this now working by implementing a custom JaasAuthenticationProvider and not returning only request.getPrincipal() but a UserDetails Object containing all the nice stuff. Then I worte a custom ExternalUserProcessor to plug all my user detail back into the JasperServer MetaDataUser.
  8. Dear all, we are currently setting up our Jasper Server and I came across a few question. I could not find any answers on the forum: 1. I see that I can securty my domains but how do I secure my topics? I understand some may be created from domains so they will be fine but what about those created from JRXML's? 2. I understand the concept of domain security but in our case this may not be sufficient. Reports should always be filtered according to SITES. Now if someone from another department (organization admin) modifies a domain and creates a new join tree how can I prevent that or make him to create a security file? Even when creating a new domain, how can I guarantee that the filter will be applied is this somehow possible? 3. Related to 2. I am adding attributes to my user profiles. I see that the value column is limited to 255 characters this may not be sufficient for us. I think the best would be to add multiple attributed with a suffix and then adjust the groovy expression. Is that how you would do it? Thanks ke
  9. Dear all, I have gotten external authentication to work with my LoginModule implementation using the JaasAuthenticationProvider. The login will create a Subject object that holds a set of Principals. Now what I am wondering how do I add an Organization to my Subject in a way that JasperServer will recognize it. Similar question for the ROLES but I guess this is what the authorityGranters is for. With that class I can map our system ROLES to Jasper Roles if I understand correctly. As mentioned I just have not tried this yet. Thanks for the Help Kolja
  10. Lucian: Has this been implemented yet? I am looking for something to export the underlying chart data.
  11. Dear all, we have been experiencing these problems for quite some time now. This problem occurs from the crosstab header section but only when outputting to HTML. It even seems to not be made to hold mulitple header for each column. Could somebody comment on this. In iReport the text fields keep moving around if I add another field in the crosstab header. How are you handling this? Thanks Kolja
  12. I am starting to understand that JasperReport makes a difference when filling for example report using a connection and when using HQL. when filling a report using an sql connection jasperreports behave just as I expect it to. If I fill in a report query that provides 3 rows, a table dataset that returns 5 rows then the detail section with the table will be printed 3 times and everytime with a 5 row table. If I repeat that using HQL it behaves differently. Actually I am thinking that how hibernate reports the table dataset is not evaluated but only the report query. So If I enter a report query "from Test" that returns 3 rows and the same statement in the table dataset then I only have 1 detail section with one table having 2 rows. Could someone please comment on how I print a table using an HQL statement without missing the first row?
  13. Lets say I have this HQL: "from Test". This statement return 3 Object. What I tried is to put this statement as the report query as well as to the query text for the table dataset. Now I do not understand that that the table is not shown three times but the table is shown once BUT the first row is missing. Can somebody please adivse. Thanks
  14. Hello everybody, I have a short question. Probably an easy one for the most of you. I have been using the "Table" object but only with SQL. As far as I understand for a "Table" I have to create a DataSet. So what I did for the Detail Section to print once I set the statement "select 1 from dual" as the master report query. To the table I gave $P{REPORT_DATA_SOURCE} as the connection expression. Now I dont really understand how to do it with Hibernate as I cannot select 1 from dual. How do I get the Detail section to print exactly once. Maybe I have missunderstood the complete concept of the Tables. Maybe someone could help. Thanks Kolja
  15. I am confronted with the same problem. I wonder why there is no solutions for this.
  16. If I remeber correctly this was the solution: " Is the right way to do it to create a Connection instance and add it to a Hashmap and pass it to the master report which then passes it further to the subreport? Map<String, Connection> parameters = new HashMap<String, Connection>(); parameters.put("DBConnection",getConnection(passwd)); JasperRunManager.runReportToPdfStream(reportStream, out, parameters, new JRBeanCollectionDataSource(BeanRecordFactory.generateCollection())); "
  17. I have found a class TextMeasurer sounds like it has something to do with calculating the acutal size. Ill keep looking.
  18. Hello everybody, I was not able to find a suitable solution for my problem. I am printing invoices using Jasper and of course at some point of the report I want to print an address. This textfield must not strecht with overflow else it will not be readable through the envelope window. Is there any way I can trigger a log entry when a textfield is to small for the content? I have already looked at the debug messages but nothing like this gets printed. Maybe somebody could point me to the correct class then I could add my own log entry? Thanks for your help Kolja Post Edited by kehlers at 08/13/2010 12:54
  19. I am having the same problem to display only integer values on the axis. Where do I set those properties? Also I see a "Range Axis Max Value Expression" when will this be evaluated? Can I set it to a value which is my max value + x? Thanks
  20. I am having the same problem. I have a master report with two subreports: master sub1 sub2 The masterreport has a pageFooter that displays the page number and the total pages. I only want to display the page numbers seperately for each subreport. If sub1 has 2 pages I want it to display Page 1/2 and Page 2/2 and if sub2 has 3 Pages I want to display 1/3, 2/3 and 3/3 on that subreport. I am really having a hard time trying to archieve this. If I remove the pageFooter from the masterreport and display the pageFooter in each subreport the numbering is fine but in case the data of the corresponding page does not fille the whole page the page number is displayed not at the bottom of the page but right below the last line of data. Thanks for your help
  21. Is it possible to pass a Parameter to a Subreport to change the width of a textfield in the subreport dynamically? I know I could have maybe 10 Textfields: 50px, 100px, 150px .... and with a print when expression I could show one and hide the others. But is it not possible to change the width by parameter? Thanks
  22. I am still wondering the same thing, I only found a year old comment from teodord mentioning to extend the JRPdfExporter to handle this. But maybe this has already been done now? Thanks
×
×
  • Create New...