使用itext,html转pdf使用报错:java.lang.NoSuchMethodError: com.lowagie.text.pdf.BaseFont.getCharBBox(C)
參考文章:
1.https://download.csdn.net/download/u010154779/9422443?utm_medium=distribute.pc_relevant.none-task-download-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.control&dist_request_id=1331989.11359.16187985183088423&depth_1-utm_source=distribute.pc_relevant.none-task-download-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.control
2.https://blog.csdn.net/qq_26595345/article/details/91371502
報錯信息:
Stacktrace:at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:584)at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at com.sudytech.system.permit.CorePermitRunFilter$FilterChainAction.run(CorePermitRunFilter.java:81)... 55 more Caused by: javax.servlet.ServletException: java.lang.NoSuchMethodError: com.lowagie.text.pdf.BaseFont.getCharBBox(C)[Iat org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:909)at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:838)at org.apache.jsp.ConvertHtmlToPDF_jsp._jspService(ConvertHtmlToPDF_jsp.java:294)at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)... 64 more Caused by: java.lang.NoSuchMethodError: com.lowagie.text.pdf.BaseFont.getCharBBox(C)[Iat org.xhtmlrenderer.pdf.ITextFontResolver$FontDescription.setMetricDefaults(ITextFontResolver.java:679)at org.xhtmlrenderer.pdf.ITextFontResolver$FontDescription.<init>(ITextFontResolver.java:610)at org.xhtmlrenderer.pdf.ITextFontResolver.addCourier(ITextFontResolver.java:410)at org.xhtmlrenderer.pdf.ITextFontResolver.createInitialFontMap(ITextFontResolver.java:390)at org.xhtmlrenderer.pdf.ITextFontResolver.<init>(ITextFontResolver.java:52)at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:83)at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:70)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1471)at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:748) Caused by: javax.servlet.ServletException: java.lang.NoSuchMethodError: com.lowagie.text.pdf.BaseFont.getCharBBox(C)[Iat org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:909)at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:838)at org.apache.jsp.ConvertHtmlToPDF_jsp._jspService(ConvertHtmlToPDF_jsp.java:294)at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)... 64 more Caused by: java.lang.NoSuchMethodError: com.lowagie.text.pdf.BaseFont.getCharBBox(C)[Iat org.xhtmlrenderer.pdf.ITextFontResolver$FontDescription.setMetricDefaults(ITextFontResolver.java:679)at org.xhtmlrenderer.pdf.ITextFontResolver$FontDescription.<init>(ITextFontResolver.java:610)at org.xhtmlrenderer.pdf.ITextFontResolver.addCourier(ITextFontResolver.java:410)at org.xhtmlrenderer.pdf.ITextFontResolver.createInitialFontMap(ITextFontResolver.java:390)at org.xhtmlrenderer.pdf.ITextFontResolver.<init>(ITextFontResolver.java:52)at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:83)at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:70)at com.sudytech.core.analyze.util.ConvertHtmlToPDFUtil.htmlToPDF(ConvertHtmlToPDFUtil.java:32)at org.apache.jsp.ConvertHtmlToPDF_jsp._jspService(ConvertHtmlToPDF_jsp.java:252)... 67 moreat com.sudytech.core.analyze.util.ConvertHtmlToPDFUtil.htmlToPDF(ConvertHtmlToPDFUtil.java:32)at org.apache.jsp.ConvertHtmlToPDF_jsp._jspService(ConvertHtmlToPDF_jsp.java:252)... 67 more原因:項目中引用itext的版本為2.1.7,core-renderer版本為R8pre2。
<dependency><groupId>com.lowagie</groupId><artifactId>itext</artifactId><version>2.1.7</version></dependency><dependency><groupId>org.xhtmlrenderer</groupId><artifactId>core-renderer</artifactId><version>R8pre2</version></dependency>解決方案:
1.引用itext2.0.8,只有Itext2.0.8才支持getCharBBox(char) ,其他的為getCharBBox(Int)
<dependency><groupId>com.lowagie</groupId><artifactId>itext</artifactId><version>2.0.8</version></dependency>2.不引用core-render,改為引用flying-saucer-pdf:
<dependency><groupId>org.xhtmlrenderer</groupId><artifactId>flying-saucer-pdf</artifactId><version>9.0.8</version> </dependency>?
總結
以上是生活随笔為你收集整理的使用itext,html转pdf使用报错:java.lang.NoSuchMethodError: com.lowagie.text.pdf.BaseFont.getCharBBox(C)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米系统服务器,小米服务框架
- 下一篇: 【BZOJ3036】绿豆蛙的归宿 概率D