0

我正在使用以下代码删除旧 PDF 并用新 PDF 替换旧 PDF,但没有结果。是否可以对 PDF 文件执行此操作?因为,在整个网络中,我看到这些函数用于 .txt、.xls.doc...等文件类型。我的代码有什么问题吗?请帮忙...

private void ListFieldNames(string s)
    {
        try
        {
            string pdfTemplate = @"z:\TEMP\PDF\PassportApplicationForm_Main_English_V1.0.pdf";
            //var newFile = pdfTemplate;
            string newFile = @"z:\TEMP\PDF\_PassportApplicationForm_Main_English_V1.0.pdf";
            PdfReader pdfReader = new PdfReader(pdfTemplate);
            for (int page = 1; page <= pdfReader.NumberOfPages; page++)
            {
                //ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy();
                PdfReader reader = new PdfReader((string)pdfTemplate);
                //PdfStamper stamper = new PdfStamper(reader, new FileStream(newFile, FileMode.Create));
                using (PdfStamper stamper = new PdfStamper(reader, new FileStream(newFile, FileMode.Create)))
                {
                    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("Surname"))
                        {
                            form.SetField(fieldKey, s);
                        }    
                    }
                    // set form fields


                    //form.SetField("Address", s);
                    stamper.FormFlattening = true;
                    stamper.Close();

                }

            }
            File.Copy(newFile, pdfTemplate);
            File.Delete(pdfTemplate);
    }
4

1 回答 1

1

一切对我来说都很好,只需更改:

File.Copy(newFile, pdfTemplate);
File.Delete(pdfTemplate);

改成:

File.Delete(pdfTemplate);
File.Copy(newFile, pdfTemplate);

如果文件所在位置已存在同名文件,则无法复制该文件。先删除现有文件。

于 2013-04-19T14:58:30.353 回答