[英]ITextSharp Merge Pdf Exception
我正在尝试将一大堆pdf合并在一起。 这就是我到目前为止
using (FileStream stream = new FileStream(OutputDirectory+"/"+ OutputFileName+".pdf", FileMode.Create))
{
Document pdfDoc = new Document();
PdfCopy pdf = new PdfCopy(pdfDoc, stream);
pdfDoc.Open();
Console.WriteLine("Merging files count: " + Input.Count);
int i = 1;
foreach (var item in Input)
{
Console.WriteLine(i + ". Adding: " + item.FileName);
pdf.AddDocument(new PdfReader(item.FileWithPath));
i++;
}
pdfDoc.Close();
Console.WriteLine("PDF merge complete.");
}
但是,在正确合并了一些pdf之后,我得到了这个异常:
iTextSharp.text.exceptions.InvalidPdfException:'重建失败:找不到预告片。 原始消息:未找到PDF startxref。
它指向我的pdf.AddDocument(新的PdfReader行
我环顾四周,有些评论提到我的文件已损坏。 但是,我可以打开并阅读pdf文件,没有任何问题。 我不确定现在如何继续。
我环顾四周,有些评论提到我的文件已损坏。
您找到的信息最有可能是正确的,您尝试读取的文件可能已损坏。
但是,我可以打开并阅读pdf文件,没有任何问题。
PDF查看器经常尝试在引擎盖下修复一定数量的损坏。 由于查看PDF的人员通常可以快速识别出修复是成功还是仅保留了几页垃圾,因此这是可以的,即少了一个错误,而是一个功能。
另一方面,自动处理PDF的库不应尝试这样做(至少不像查看者那样尝试),因为它们的输出可能会直接进入某个存档,直到几年后才进行审核。 充满垃圾的文档将造成很多麻烦。
我不确定现在如何继续。
尝试修复有问题的PDF。
如果您在当前的Adobe Acrobat Reader中打开它,则该程序通常在关闭文档时会询问您是否要保存该文档。 实际上,这将保存一个修复的版本,iText很可能会接受,而无需多加修改。
如果这不起作用,即Adobe Acrobat Reader无法提供安全的修复版本或iText甚至不接受修复的版本,请在此处共享有问题的PDF进行进一步分析。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.