【问题标题】:Specified stream length is wrong. Fall back to reading stream until endstream指定的流长度错误。回退到阅读流直到 endstream
【发布时间】:2015-10-28 13:28:20
【问题描述】:

我正在尝试发送 PDF 文档以使用 ExtractingRequestHandler 进行解析。 (具体来说我用的是SolrNet,但我认为与这个问题无关)。

但是,对于我发送的每个 PDF 文件,我都会在日志中收到以下警告(来自 Solr Admin):

根据我的研究,PDFBox 读取某些 PDF 时会发生这种情况。我发现了一个类似的bug report here,它说要更改pushbacksize。 问题是我正在使用 Solr 5.2.1 并且无法弄清楚如何配置此设置。有没有办法配置 Solr 以便我可以索引这些文件?

【问题讨论】:

    标签: java solr pdfbox apache-tika


    【解决方案1】:

    您的 PDF 已损坏。 PDF 流对象如下所示:

    4 0 obj
    <<
    /Length 34841
    >>
    stream
    ... content (which should have a length of 34841 bytes) ...
    endstream
    endobj
    

    因此,如果“endstream”未出现在预期的偏移量处,您将收到所描述的消息。这意味着 PDFBox 尝试“B计划”;如果没有进一步的消息显示,则 PDF 将被处理。您所能做的就是告诉 PDF 的创建者干净地工作,即正确计算流长度。或者避免在“廉价”文本编辑器中打开 PDF 文件并保存。

    问题 PDFBOX-2381 描述了一个不同的错误,即推回缓冲区太小。

    【讨论】:

    • 谢谢。你会说 PDFBox 严格符合 PDF 规范吗?我以前没有遇到过其他 PDF 库的问题。
    • @JesseGood 不;如果 PDFBox “严格”符合 PDF 规范,则该文件将被拒绝。但这不是“问题”:如果之后没有消息,则表示您的文件已被处理。可能是其他库安静地处理文件,或者日志级别设置不同。
    • 感谢您的帮助。我现在看到这只是一个警告。
    猜你喜欢
    • 2016-10-18
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 2019-01-25
    • 2016-08-07
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多