我有幾個存儲在字節數組集合的pdf文件的二進制文件。Abcpdf拋出System.ExecutionEngineException
我的目標是使用abcpdf將它們連接成單個.pdf文件,然後將新創建的文件流式傳輸到ASP.Net網站頁面上的Response對象。
一直在做這樣的:
BEGIN LOOP ...
'Create a new Doc
Dim doc As Doc = New Doc
'Read the binary of the current PDF
doc.Read(bytes)
'Append to the master merged PDF doc
_mergedPDFDoc.Append(Doc)
END LOOP
正在工作的時間細95%。然而,現在然後,創建一個新的Doc對象會拋出一個System.ExecutionEngineException並導致CLR崩潰。它似乎沒有涉及大量的pdf(有時會發生w /只有2),或與大尺寸的pdf。這似乎幾乎是完全隨機的。
這是在abcpdf中描述(不是很好)在這裏Item 6.24已知的bug。我遇到了a helpful SO post,它建議對abcpdf Doc對象使用Using塊。
所以,現在我這樣做:
Using doc As New Doc
'Read the binary of the current PDF
doc.Read(bytes)
'Append to the master merged PDF doc
_mergedPDFDoc.Append(doc)
End Using
而且我還沒有看到這個問題再次發生呢,並已作爲最敲着一個測試版,我可以得到它。
有沒有人有類似的經驗,這個錯誤?這是否解決了它?
FWIW我不知道如何解決這個錯誤,或者如果'使用'將繼續停止它,但我使用iTextSharp PDF庫幾乎是相同的事情,並沒有任何問題(並且我添加100個文檔在一起) – CResults 2010-04-03 08:45:07