Willkommen, Gast
Home › Foren › Nuclos Konfiguration › Formulare › Exception beim Einbinden eines Fonts in PDF
Hallo zusammen,
ich habe versucht, eine Schriftart gemäßg Anleitung unter wiki.nuclos.de in ein Formular einzubinden, da ich Sonderzeichen darstellen möchte, die von den Standardschriften nicht unterstützt werden.
Ich bin exakt nach Vorlage vorgegangen, erhalte am Ende jedoch keine PDF, sondern die folgende Exception im Log:
2013-11-07 21:55:44,913 WARN [org.springframework.remoting.support.RemoteInvocationTraceInterceptor] - Processing of NuclosHttpInvokerServiceExporter remote call resulted in fatal exception: org.nuclos.server.report.ejb3.ReportFacadeRemote.prepareReport
java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser
Was läuft da falsch?
Habe es unter Nuclos 3.15.7/Java7 und 3.15.9/Java6 ausprobiert – die Anleitung ist allerdings aus Juli 2013 – geht es mit der 3.15 nicht mehr?
Beste Grüße,
kreutho
Hallo,
es sieht mehr danach aus als wenn dort ein Fehler in der JRXML existiert. Aber um genaueres zu sagen, müsste ich ein Blick hinein werfen.
Steffen
Hallo Steffen,
wenn ich die Jar-Datei aber wieder entferne, funktioniert auch der Report wieder – mit der gleichen JRXML. Außerdem sind auch die normalen Ergebnislisten-Exporte betroffen…
Gruß,
Kreutho
Hallo Kreutho,
verwendest Du das Styled- Propertie bzw. verwendest Du Bold oder Italic für Deine Schriftzeichen und sind für diese Schriftzeichen dann auch entsprechende Vorlagen dem Jasper bekannt?(TTF-Bold, TTF-Italic).
Hätte ich das Jrxml oder die Font.xml könnte ich mir ein besseres Bild machen. Vielleicht kannst Du es hier hochladen.? Am besten auch die Schriftarten.
Steffen
Ich bleibe dabei, dass die JRXML nicht das Problem sein kann, denn selbst der PDF-Export eines Suchergebnisses schlägt fehl.
Ansonsten habe ich mich genau an die Vorgaben gehalten – falls nicht wieder die Flüchtigkeit zugeschlagen hat. Habe dir die fonts.xml mal angehängt, um dein Angebot der Überprüfung mal anzunehmen. Upload der Schriftarten hat nicht funktioniert, es sind die Dateien Arial.ttf, Arial_Bold.ttf, Arial_Italic.ttf und Arial_Bold_Italic.ttf aus dem Paket „ttf-mscorefonts-installer“ unter xubuntu 13.04.
Danke und Gruß,
Kreutho
Man könnte auch im iReport beim Textfeld den „PDF Font Name“ direkt angeben, also den absoluten Pfad am Server zur Schrift.
Ich mach das immer schon so, nur halt über Styles.
Gruß
Hugo
Das gleiche bei mir, leider. Habe nach Anleitung das JAR eingefügt und erhalte nun keinen Report. Stattdessen im Log folgende Fehlermeldungen:
2013-11-26 07:03:31,342 INFO [org.nuclos.server.report.ejb3.ReportFacadeBean] - preparing report (PDF) for datasource 'Angebot'.
2013-11-26 07:03:31,353 WARN [org.springframework.remoting.support.RemoteInvocationTraceInterceptor] - Processing of NuclosHttpInvokerServiceExporter remote call resulted in fatal exception: org.nuclos.server.report.ejb3.ReportFacadeRemote.prepareReport
java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser
at net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:177)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:78)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:60)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:147)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:83)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:628)
at org.nuclos.server.report.export.JasperExport.export(JasperExport.java:234)
at org.nuclos.server.report.ejb3.ReportFacadeBean.prepareReport_aroundBody24(ReportFacadeBean.java:548)
at org.nuclos.server.report.ejb3.ReportFacadeBean$AjcClosure25.run(ReportFacadeBean.java:1)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96cproceed(AbstractTransactionAspect.aj:59)
at org.springframework.transaction.aspectj.AbstractTransactionAspect$AbstractTransactionAspect$1.proceedWithInvocation(AbstractTransactionAspect.aj:65)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:63)
at org.nuclos.server.report.ejb3.ReportFacadeBean.prepareReport(ReportFacadeBean.java:543)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.remoting.support.RemoteInvocationTraceInterceptor.invoke(RemoteInvocationTraceInterceptor.java:77)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy74.prepareReport(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.remoting.support.RemoteInvocation.invoke(RemoteInvocation.java:205)
at org.nuclos.server.common.NuclosRemoteInvocationExecutor.invoke(NuclosRemoteInvocationExecutor.java:180)
at org.springframework.remoting.support.RemoteInvocationBasedExporter.invoke(RemoteInvocationBasedExporter.java:78)
at org.nuclos.server.common.NuclosHttpInvokerServiceExporter.invokeAndCreateResult(NuclosHttpInvokerServiceExporter.java:13)
at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.handleRequest(HttpInvokerServiceExporter.java:73)
at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:49)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:150)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
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:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
2013-11-26 07:03:31,354 WARN [org.nuclos.server.common.NuclosRemoteInvocationExecutor] - Transaction rolling back now, because of java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser: RemoteInvocation: method name 'prepareReport'; parameter types [java.lang.Integer, java.util.Map, java.lang.Integer](org.nuclos.server.report.ejb3.ReportFacadeBean@3572a9)
Version ist 3.15.7
Die entsprechende JRXML sowie das JAR habe ich angehängt. Vielleicht wird ja jemand schlau daraus.
@Hugo: Kannst Du Deinen Weg mal etwas detaillierter erklären, vielleicht ist das ein Workaround. 🙂
Danke und Grüße
Thorsten
wie ich bereits im vorigen Post geschrieben habe, den Pfad zum Font unter „PDF Font name“ eintragen und noch „PDF Embedded“ aktivieren.
z.B.: „C:ProgrammeNuclosdataresourceHelvetica LT Light.ttf“
Danke, das hat funktioniert. Manchmal hat man doch ein Brett vor dem Kopf.
Grüße
Du musst angemeldet sein, um auf dieses Thema antworten zu können.