[英]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.