PDFbox,IOException:" COSStream已关闭......"

时间:2015-10-21 08:22:09

标签: java pdfbox

将PDF转换为图像时,将此图像添加到新的PDF文档并在其上打印文本,我收到此错误:

java.io.IOException: COSStream has been closed and cannot be read. Perhaps its enclosing PDDocument has been closed?
    at org.apache.pdfbox.cos.COSStream.getFilteredStream(COSStream.java:179)
    at org.apache.pdfbox.pdfwriter.COSWriter.visitFromStream(COSWriter.java:1147)
    at org.apache.pdfbox.cos.COSStream.accept(COSStream.java:298)
    at org.apache.pdfbox.cos.COSObject.accept(COSObject.java:158)
    at org.apache.pdfbox.pdfwriter.COSWriter.doWriteObject(COSWriter.java:538)
    at org.apache.pdfbox.pdfwriter.COSWriter.doWriteBody(COSWriter.java:450)
    at org.apache.pdfbox.pdfwriter.COSWriter.visitFromDocument(COSWriter.java:1031)
    at org.apache.pdfbox.cos.COSDocument.accept(COSDocument.java:401)
    at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1314)
    at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1215)
    at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:991)
    at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:963)
    at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:951)
    at org.foo.bar.experimental.printOCROverlay(PDFDocument.java:343)

我有扫描和OCR处理的文本文档。由于OCR质量在文档与文档之间质量不一致,我想通过在原始PDF上打印真实/ OCR文本来检查它的质量。

我写了一个非常线性的方法,首先解析整个文本,然后从原始PDF中提取所有页面,最后创建一个新的PDF文档,绘制图像并打印文本。 我在网上发现了几个帖子,其中的错误可以追溯到过早关闭的PDF文档。但是在将所有close() - 调用移到最后时,我也会收到此错误。

以下是打印文档的方法。我已经将错误源精确定位到我打印文本的部分(内部for - 循环,从注释行// Draw extracted text开始),因为当我从{{{ 1}}到contentStream.beginText()一切正常。但是,为了让它发挥作用,我只是没有得到我必须改变的东西。

顺便说一下,我正在使用PDFBox 2。

contentStream.endText()

0 个答案:

没有答案