iT邦幫忙

0

C#使用iText.Kernel做Pdf合併某個特定檔案時發生錯誤:「集合已修改; 列舉作業可能尚未執行」

  • 分享至 

  • xImage

我在使用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());就可以合併了,其他頁都沒有問題,只要包含第五頁就會跳錯誤:「集合已修改; 列舉作業可能尚未執行」也就只有合併那一個檔案出錯,而且如果單獨合併第五頁也沒問題,有人可以幫解決嗎?謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

我要發表回答

立即登入回答