我的PDF文件有一个附加到按钮的事件 . 我需要能够以编程方式修改该事件 . 我试过这种方式使用iTextSharp,但它没有改变新文件中的javascript:
var pdfReader = new PdfReader(originalPdfDocumentPath);
pdfReader.RemoveUsageRights();
var pdfStamper = new PdfStamper(pdfReader,new FileStream(newPdfDocumentPath,FileMode.Create,FileAccess.Write,FileShare.None),'\ 0',true);
var originalXml = pdfReader.AcroFields.Xfa.DomDocument.InnerXml;
var newXml = originalXml.Replace(“Table2.Row1.instanceManager.removeInstance(1)”,“Table2._Row1.removeInstance(this.parent.parent.index)”);
pdfStamper.AcroFields.Xfa.DomDocument.InnerXml = newXml; //不幸的是,这条线什么也没做 .
pdfStamper.Close();
pdfReader.Close();
任何帮助将不胜感激 .
1 回答
我发现,如果不是直接更改XML,而是更改DomDocument并将XFA标记为已更改,则可以使用它 . 以下是更正后的代码:
我应该注意,即使此代码更改了PDF文件中的javascript,它也会禁用Adobe Acrobat Reader中的扩展功能 . 你可以在这里找到更多相关信息:
http://developers.itextpdf.com/question/why-do-i-get-error-saying-use-extended-features-no-longer-available