【发布时间】:2018-09-17 12:41:57
【问题描述】:
我在我的 java 应用程序中使用 pdfbox-2.0.9 将 PDF 文件转换为 html。但我得到了
java.lang.UnsupportedOperationException
at org.apache.pdfbox.pdmodel.graphics.color.PDPattern.toRGB(PDPattern.java:95)
at org.fit.pdfdom.PathDrawer.pdfColorToColor(PathDrawer.java:133)
at org.fit.pdfdom.PathDrawer.clearPathGraphics(PathDrawer.java:79)
at org.fit.pdfdom.PathDrawer.drawPath(PathDrawer.java:59)
at org.fit.pdfdom.PDFDomTree.createPathImage(PDFDomTree.java:403)
at org.fit.pdfdom.PDFDomTree.renderPath(PDFDomTree.java:251)
at org.fit.pdfdom.PDFBoxTree.processOperator(PDFBoxTree.java:499)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:503)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:477)
at org.apache.pdfbox.contentstream.PDFStreamEngine.showForm(PDFStreamEngine.java:181)
at org.apache.pdfbox.contentstream.operator.DrawObject.process(DrawObject.java:65)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:848)
at org.fit.pdfdom.PDFBoxTree.processOperator(PDFBoxTree.java:542)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:503)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:477)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:150)
at org.apache.pdfbox.text.LegacyPDFStreamEngine.processPage(LegacyPDFStreamEngine.java:139)
at org.apache.pdfbox.text.PDFTextStripper.processPage(PDFTextStripper.java:391)
at org.fit.pdfdom.PDFBoxTree.processPage(PDFBoxTree.java:208)
at org.apache.pdfbox.text.PDFTextStripper.processPages(PDFTextStripper.java:319)
at org.apache.pdfbox.text.PDFTextStripper.writeText(PDFTextStripper.java:266)
at org.fit.pdfdom.PDFDomTree.createDOM(PDFDomTree.java:218)
at com.demo.pdf.converter.PdfProcessor.convertToHtml(PdfProcessor.java:87)
可以从here 访问我要转换的pdf。
【问题讨论】:
-
请修改权限,让每个人都可以访问。我怀疑这是 PDF2Dom 中的一个错误,PDF 中的模式无法转换为 RGB 颜色。 (考虑一下 - 例如,点图案不是一种 RGB 颜色,它是矢量图形指令)。
-
@TilmanHausherr 我已经修改了 pdf 的权限。
-
谢谢,文件渲染没有问题。当然,这个 PDF2Dom 应用程序有所不同。尝试issues.apache.org/jira/browse/PDFBOX-1094 中的一些文件,都有模式。我希望他们都会产生这个异常。如果是,请在此处打开一个问题:github.com/radkovo/Pdf2Dom/issues。然而,该项目看起来并不十分活跃。我在 8 月份提交了一个单行 PR,但什么也没发生。最后一次提交是从 5 月开始的。
-
@TilmanHausherr 我已经检查了 org.apache.pdfbox.pdmodel.graphics.color.PDPattern 类的代码,toRGB 方法直接抛出 UnsupportedOperationException 而没有任何其他处理。你知道为什么会这样吗?
-
因为我在第一条评论中提到的原因,它不应该被称为模式。 PDFBox 遵循 PDF 规范的设计,在 PDF 规范中,图案用作填充/描边的“颜色”。