小编tk2*_*013的帖子

如何在不创建新PDF的情况下更新PDF?

我需要用另一个单词替换现有PDF AcroField中的单词.我正在使用iTEXTSHARP的PDFStamper来做同样的事情并且工作正常.但是,这样做需要创建一个新的PDF,我希望这些更改能够反映在现有的PDF本身中.如果我将目标文件名设置为与原始文件名相同,则不会反映任何更改.我是iTextSharp的新手,有什么我做错了吗?请帮助..我正在提供我正在使用的代码

  private void ListFieldNames(string s)
    {
        try
        {
            string pdfTemplate = @"z:\TEMP\PDF\PassportApplicationForm_Main_English_V1.0.pdf";
            string newFile = @"z:\TEMP\PDF\PassportApplicationForm_Main_English_V1.0.pdf";
            PdfReader pdfReader = new PdfReader(pdfTemplate);

            for (int page = 1; page <= pdfReader.NumberOfPages; page++)
            {
                PdfReader reader = new PdfReader((string)pdfTemplate);
                using (PdfStamper stamper = new PdfStamper(reader, new FileStream(newFile, FileMode.Create, FileAccess.ReadWrite)))
                {
                    AcroFields form = stamper.AcroFields;
                    var fieldKeys = form.Fields.Keys;
                    foreach (string fieldKey in fieldKeys)
                    {
                        //Replace Address Form field with my custom data
                        if (fieldKey.Contains("Address"))
                        {
                            form.SetField(fieldKey, s);
                        }    
                    }
                    stamper.FormFlattening = true; …
Run Code Online (Sandbox Code Playgroud)

asp.net itextsharp tridion tridion-2011 tridion-core-services

2
推荐指数
1
解决办法
3391
查看次数