异常信息:
java.lang.NullPointerException: null
at org.xhtmlrenderer.swing.NaiveUserAgent.getBinaryResource(NaiveUserAgent.java:228)
at org.xhtmlrenderer.pdf.ITextFontResolver.importFontFaces(ITextFontResolver.java:97)
at org.xhtmlrenderer.pdf.ITextRenderer.setDocument(ITextRenderer.java:178)
at org.xhtmlrenderer.pdf.ITextRenderer.setDocument(ITextRenderer.java:142)
at org.xhtmlrenderer.pdf.ITextRenderer.setDocumentFromString(ITextRenderer.java:159)
我们debug跟进来发现
报错的点在这里:

这里的变量is没有取到值初始化时时null,导致出现空指针异常:
跟一下resolveAndOpenStream这个方法,发现:

重要的点是这个方法走了两次:
第一次网址是可以访问的,没有抛异常:

在使用ITextRenderer将HTML文件转换为PDF时遇到NullPointerException。异常源于resolveAndOpenStream方法中,变量is未初始化。该方法被调用两次,首次加载bootstrap.min.css成功,第二次加载字体文件时失败。问题出在外部资源被错误解析,导致同一文件加载两次。解决方案是删除定义外部资源的关系,即移除link标签中的rel=stylesheet引用。
最低0.47元/天 解锁文章
1924

被折叠的 条评论
为什么被折叠?



