我试图从一个特定的PDF文件(https://www.mass.gov/files/documents/2019/07/15/jud-lib-310cmr7.pdf)中读取文本,但我从iText7得到了这个异常:
Error at file pointer 1358
iText.IO.Source.PdfTokenizer.ThrowError(String error, Object[] messageParams)
at iText.Kernel.Pdf.PdfReader.ReadObject(PdfIndirectReference reference, Boolean fixXref)
at iText.Kernel.Pdf.PdfReader.ReadObject(PdfIndirectReference reference, Boolean fixXref)
at iText.Kernel.Pdf.PdfIndirectReference.GetRefersTo(Boolean recursively)
at iText.Kernel.Pdf.PdfReader.ReadObject(PdfIndirectReference reference, Boolean fixXref)
at iText.Kernel.Pdf.PdfIndirectReference.GetRefersTo(Boolean recursively)
at iText.Kernel.Pdf.PdfIndirectReference.GetRefersTo(Boolean recursively)
at iText.Kernel.Pdf.PdfDictionary.GetAsDictionary(PdfName key)
at iText.Kernel.Pdf.PdfPagesTree..ctor(PdfCatalog pdfCatalog)
at iText.Kernel.Pdf.PdfCatalog..ctor(PdfDictionary pdfObject)
at iText.Kernel.Pdf.PdfDocument.Open(PdfVersion newPdfVersion)
Invalid offset for object 85404 0 R.我没有看到在Chrome阅读器中打开PDF文件有任何问题,而且它不是我的PDF文件,所以我不确定从哪里开始。对于如何抑制这些错误,有什么建议吗?不幸的是,这是在Open()方法中发生的,而不仅仅是在文本提取期间,所以我不能跳到另一个页面去解决这个问题。
下面是我的代码:
var sb = new StringBuilder();
using(var r = new PdfReader(path)) {
var pdfDoc = new PdfDocument(r);
var numPages = pdfDoc.GetNumberOfPages();
for(var pn = 1; pn <= numPages; pn++) {
var st = new SimpleTextExtractionStrategy();
var page = pdfDoc.GetPage(pn);
sb.Append(PdfTextExtractor.GetTextFromPage(page, st));
}
}发布于 2019-08-08 03:31:47
该问题似乎是因为下载已损坏。由于我在数百个其他网站和下载相同的代码时没有遇到过这种问题,所以它可能是特定于该web服务器的。所以我猜答案是“再试一次”!
https://stackoverflow.com/questions/57280626
复制相似问题