【问题标题】:Getting java.lang.UnsupportedOperationException at org.apache.pdfbox.pdmodel.graphics.color.PDPattern.toRGB在 org.apache.pdfbox.pdmodel.graphics.color.PDPattern.toRGB 处获取 java.lang.UnsupportedOperationException
【发布时间】: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 规范中,图案用作填充/描边的“颜色”。

标签: html pdf dom pdfbox


【解决方案1】:

此问题已在 PDF2Dom v1.9 中得到解决。我尝试了您在此版本中提供的 pdf,它得到了适当的转换。
没有抛出异常。 请通过将 PDF2Dom 更新到 v1.9 来确认
你可以找到最新的依赖here

【讨论】:

    猜你喜欢
    • 2013-06-07
    • 2019-01-02
    • 2012-05-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 2023-01-18
    • 1970-01-01
    相关资源
    最近更新 更多