我最近收到的PDF文件导致应用程序在加载iText Java和iTextSharp时挂起。
答案 0 :(得分:4)
问题在于PDF具有增量更新,并且附加预告片具有指向其自己的交叉引用表的Prev条目。这导致PdfReader.ReadXref()
中的无限循环。
我建议的解决方案如下。
while (true) {
PdfNumber prev = (PdfNumber)trailer2.Get(PdfName.PREV);
if (prev == null)
break;
// Add check to prevent infinite loop
if (prev.LongValue == startxref)
throw new InvalidPdfException("trailer Prev points to its own cross-reference section.");
// end added check
tokens.Seek(prev.LongValue);
trailer2 = ReadXrefSection();
}
向StackOverflow道歉,这实际上并不是一个问题,但我没有时间来满足两行代码拉取请求的iText要求。