点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
将报告打印为pdf时,我得到了NPE
2018-11-01 14:29:42,392错误com.businessobjects.reports.sdk.JRCCommunicationAdapter [qtp79290965-21](SourceFile:719)-检测到异常:java.lang.NullPointerException at com.crystaldecisions.reports.exporters .format.page.pdf.fontembedding.opentype.OpenTypeFontManager.a(SourceFile:384) 在com.crystaldecisions.reports.exporters.format.page.pdf.fontembedding.opentype.OpenTypeFontManager.do(SourceFile:259) 在com.crystaldecisions.reports.exporters.format.page.pdf.fontembedding.opentype.OpenTypeFontManager.if(SourceFile:77) 在com.crystaldecisions.reports.exporters.format.page.pdf.fontembedding.FontEmbeddingSession.if(SourceFile:113) 在com.crystaldecisions.reports.exporters.format.page.pdf.fontembedding.FontEmbeddingSession.a(SourceFile:104) 在com.crystaldecisions.reports.exporters.format.page.pdf.pdflib.r.if(SourceFile:594) 在com.crystaldecisions.reports.exporters.format.page.pdf.pdflib.r.a(SourceFile:424) 在com.crystaldecisions.reports.exporters.format.page.pdf.pdflib.PdfDocumentManager.a(SourceFile:337) 在com.crystaldecisions.reports.exporters.format.page.pdf.dom.a.a(SourceFile:1584) 在com.crystaldecisions.reports.exporters.format.page.pdf.dom.a.a(SourceFile:1492) 在com.crystaldecisions.reports.exporters.format.page.pdf.dom.a.a(SourceFile:780) 在com.crystaldecisions.reports.exporters.format.page.pdf.dom.a.a(SourceFile:729) 在com.crystaldecisions.reports.exporters.format.page.pdf.dom.a.a(SourceFile:683) 在com.crystaldecisions.reports.exporters.format.page.pdf.dom.a.a(SourceFile:2114) 在com.crystaldecisions.reports.exporters.format.page.pdf.dom.d.if(SourceFile:1829) 在com.crystaldecisions.reports.exporters.format.page.pdf.dom.d.int(SourceFile:1821) 在com.crystaldecisions.reports.exporters.format.page.pdf.dom.d.a(SourceFile:455) 在com.crystaldecisions.reports.exporters.format.page.pdf.dom.d.a(SourceFile:304) 在com.crystaldecisions.reports.exporters.format.page.pdf.dom.d.a(SourceFile:283) 在com.crystaldecisions.reports.exporters.format.page.pdf.dom.d.a(SourceFile:283) 在com.crystaldecisions.reports.exporters.format.page.pdf.dom.b.a(SourceFile:217) 在com.crystaldecisions.reports.exporters.format.page.pdf.dom.PdfAdvancedDocumentModeller.a(SourceFile:177) 在com.crystaldecisions.reports.exporters.page.pdf.AdobePDFExporter.a(来源文件:252) 在com.crystaldecisions.reports.exporters.page.pdf.AdobePDFExporter.processFormattedContent(SourceFile:200) 在com.crystaldecisions.reports.formatter.export2.a.a(SourceFile:105) 在com.crystaldecisions.reports.formatter.export2.a.a(SourceFile:253) 在com.crystaldecisions.reports.formatter.export2.ExportSupervisorEx.if(SourceFile:646) 在com.crystaldecisions.reports.formatter.export2.ExportSupervisorEx.a(SourceFile:597) 在com.businessobjects.reports.sdk.requesthandler.ReportViewingRequestHandler.a(SourceFile:641) 在com.businessobjects.reports.sdk.requesthandler.ReportViewingRequestHandler.int(SourceFile:677) 在com.businessobjects.reports.sdk.JRCCommunicationAdapter.do(SourceFile:1943) 在com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(源文件:660) 在com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(源文件:166) 在com.businessobjects.reports.sdk.JRCCommunicationAdapter $ 2.a(源文件:528) 在com.businessobjects.reports.sdk.JRCCommunicationAdapter $ 2.call(源文件:525) 在com.crystaldecisions.reports.common.ThreadGuard.syncExecute(SourceFile:102) 在com.businessobjects.reports.sdk.JRCCommunicationAdapter.for(源文件:524) 在com.businessobjects.reports.sdk.JRCCommunicationAdapter.int(SourceFile:423) 在com.businessobjects.reports.sdk.JRCCommunicationAdapter.request(SourceFile:351) 在com.businessobjects.sdk.erom.jrc.a.a(SourceFile:54) 在com.businessobjects.sdk.erom.jrc.a.execute(SourceFile:67) 在com.crystaldecisions.proxy.remoteagent.RemoteAgent $ a.execute(SourceFile:716) 在com.crystaldecisions.proxy.remoteagent.CommunicationChannel.a(SourceFile:125) 在com.crystaldecisions.proxy.remoteagent.RemoteAgent.a(SourceFile:537) 在com.crystaldecisions.sdk.occa.report.application.dt.a(SourceFile:186) 在com.crystaldecisions.sdk.occa.report.application.ReportSource.a(SourceFile:1558) 在com.crystaldecisions.sdk.occa.report.application.ReportSource.a(SourceFile:337) 在com.crystaldecisions.sdk.occa.report.application.PrintOutputController.if(SourceFile:224) 在com.crystaldecisions.sdk.occa.report.application.PrintOutputController.export(SourceFile:148) 在com.crystaldecisions.sdk.occa.report.application.PrintOutputController.export(SourceFile:129) 在com.crystaldecisions.sdk.occa.report.application.PrintOutputController.export(SourceFile:112)
在alpine openjdk 1.8.0_171(在Docker中)上运行
crjava 12.2.224
我曾尝试将$ JAVA_HOME/lib/fonts目录从Oracle JRE复制到此jre中,但这引起了另一个问题:
"页面区域太大"
有什么提示吗?
编辑:
已通过安装Windows字体并将其复制到Java目录进行修复
apk add --no-cache msttcorefonts-installer && update-ms-fonts && fc-cache -f && ln -s/usr/share/fonts/truetype/msttcorefonts/usr/lib/jvm/default-jvm/jre/lib/fonts
大卫,您好!
感谢您在找到答案后发布答案。 如果将来的用户遇到相同的问题,这将节省很多麻烦。
Shawn
注意:重新粘贴原始海报详细介绍的解决方案:
-安装Windows字体并将其复制到Java目录
您好! 只是更新,以防其他人...
在使用AdoptOpenJDK 8时,我还在Windows 10的JRCCommunicationAdapter中遇到了类似的NPE。特定的报表到处都使用Arial字体,并且在报表查看器中显示良好,但是NPE在尝试导出为PDF时发生。
经过一些试验,一种解决方法是在AdoptOpenJDK JRE中创建字体文件夹(jre \ lib \ fonts),然后将上述Linux msttcorefonts中的单个字体文件复制到新创建的fonts文件夹中。 我的文档使用了所有Arial字体,但是fonts文件夹中的字体文件似乎并不重要。 我复制了Webdings.ttf。 该文件必须是真实的字体文件。 我尝试制作一个虚拟文本文件并将其重命名为Webdings.ttf,但是NPE出现在虚拟字体文件中。
将真实字体复制到jre \ lib \ fonts后,将使用嵌入的Arial字体创建PDF。 似乎只需要在jre \ lib \ fonts使用一种真实的字体即可开始使用,然后crjava/AdoptOpenJDK最终将使用fontconfig查找正确的Windows字体。
一周热门 更多>