我在使用C#程式做Pdf檔案合併時發生錯誤,我要把多個Pdf檔合併變成一個,結果發生錯誤,我使用iText.Kernel,結果出現錯誤:「集合已修改; 列舉作業可能尚未執行」。程式本身沒有錯誤,因為絕大多數的檔案都可以合併,只有某個特定檔案無法合併。
簡單把我的程式寫在下面:
iText.Kernel.Pdf.PdfDocument pdf = new iText.Kernel.Pdf.PdfDocument(new iText.Kernel.Pdf.PdfWriter(Response.OutputStream));
iText.Kernel.Utils.PdfMerger merger = new PdfMerger(pdf);
iText.Kernel.Pdf.PdfDocument FS;
FS = new iText.Kernel.Pdf.PdfDocument(new iText.Kernel.Pdf.PdfReader(Path));
merger.Merge(FS, 1, FS.GetNumberOfPages()); //主要是這一行
最後程式就是錯在merger.Merge(FS, 1, FS.GetNumberOfPages()); 這一行,這裡是做PDF合併,而且很奇怪,我最後找到是錯在第五頁,跳過這一頁就可以合併,merger.Merge(FS, 6, FS.GetNumberOfPages());就可以合併了,其他頁都沒有問題,只要包含第五頁就會跳錯誤:「集合已修改; 列舉作業可能尚未執行」也就只有合併那一個檔案出錯,而且如果單獨合併第五頁也沒問題,有人可以幫解決嗎?謝謝