0
一點背景:我使用iTextSharp預填充Adobe Sign字段並顯示/隱藏相關圖層。 PDF是在InDesign中創建的,並使用Acrobat圖層作爲Adobe PDF(交互式)導出。iTextSharp pdfStamper.GetPdfLayers()KeyNotFoundException
當試圖使用{stamper} .GetPdfLayers()訪問圖層時,我得到一個KeyNotFoundException拋出異常。
來源複製的問題:
string __sourceFileName = @"C:\Test\agreement.pdf";
string __destFileName = @"C:\Test\agreement - Updated.pdf";
using (FileStream outFile = new FileStream(__destFileName, FileMode.Create))
{
PdfReader pdfReader = new PdfReader(__sourceFileName);
PdfStamper pdfWriter = new PdfStamper(pdfReader, outFile);
var __layers = pdfWriter.GetPdfLayers();
pdfWriter.Close();
pdfReader.Close();
}
我下載了iTextSharp的來源,追查這個錯誤給AddOrder功能中的「SRC \核心的源路徑PdfStamperImp.cs的1802線\ iTextSharp的\文\ PDF」。
layer = ocgmap[obj.ToString()];
以固定的最簡單的方法是該單一線改變爲以下::
上其中不存在一個鍵被用於查詢字典線1808發生特定錯誤
layer = (ocgmap.ContainsKey(obj.ToString())) ? ocgmap[obj.ToString()] : null;
源重建完成後,PDF層返回時沒有錯誤。 我希望這可以幫助任何遇到錯誤的人。
iTextSharp的源代碼可以在GitHub上:https://github.com/itext/itextsharp
當你問及回答你自己的問題時,你需要在適當的地方發佈一個**問題**和一個**答案**。當您點擊「提問問題」按鈕時,甚至還可以選擇執行此操作。請遵循網站的既定格式。 –
但除此之外,保持良好的工作!爲什麼不提交一個拉動請求到你的錯誤修復的原始回購? –
謝謝,一定錯過了。由於我不熟悉GIT,因此將在下週做出拉取請求。 – AaronReynoldsUK