Java 指定的流长度错误。返回到读取流,直到结束流
我正在尝试使用发送PDF文档进行解析。(具体来说,我正在使用,但我不认为这与此问题有关) 但是,对于我发送的每个PDF文件,我都会在日志中收到以下警告(来自Solr Admin): 根据我的研究,当PDFBox读取某些PDF时会发生这种情况。我发现了一个类似的例子,上面写着更改Java 指定的流长度错误。返回到读取流,直到结束流,java,solr,pdfbox,apache-tika,Java,Solr,Pdfbox,Apache Tika,我正在尝试使用发送PDF文档进行解析。(具体来说,我正在使用,但我不认为这与此问题有关) 但是,对于我发送的每个PDF文件,我都会在日志中收到以下警告(来自Solr Admin): 根据我的研究,当PDFBox读取某些PDF时会发生这种情况。我发现了一个类似的例子,上面写着更改推送大小。 问题是我使用的是Solr5.2.1,还没有弄清楚如何配置此设置。有没有办法配置Solr以便我为这些文件编制索引?您的PDF已损坏。PDF流对象如下所示: 4 0 obj << /Length 34
推送大小
。
问题是我使用的是Solr5.2.1,还没有弄清楚如何配置此设置。有没有办法配置Solr以便我为这些文件编制索引?您的PDF已损坏。PDF流对象如下所示:
4 0 obj
<<
/Length 34841
>>
stream
... content (which should have a length of 34841 bytes) ...
endstream
endobj
40对象
>
流动
... 内容(长度应为34841字节)。。。
尾流
endobj
因此,如果“endstream”没有出现在预期的偏移量处,您将得到描述的消息。这意味着PDFBox尝试了一个“方案B”;如果没有显示进一步的消息,则将处理PDF。你所能做的就是告诉PDF的创建者要干净地工作,即正确地计算流的长度。或者避免在“廉价”文本编辑器中打开PDF文件并保存
问题PDFBOX-2381描述了另一个错误,即回推缓冲区太小。谢谢。您认为PDFBox严格符合PDF规范吗?我以前没有遇到过其他PDF库的问题。@JesseGood没有;如果PDFBox“严格”符合PDF规范,则该文件将被拒绝。但这不是一个“问题”:如果之后没有消息,这意味着你的文件已经被处理。可能是其他库悄悄地处理该文件,或者日志级别设置不同。谢谢您的帮助。我现在明白了,这只是一个警告。