C#如何利用itextSharp修改现有PDF文件内容,比如插入

2025-02-26 14:08:22
推荐回答(2个)
回答1:

1.下载的压缩包中的第一个文件解压:

2.将iTextSharp.dll文件拷贝到项目的bin目录,然后在项目中添加引用:

3.然后在后台代码添加引用:

using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;
using System.Diagnostics;

//创建PDF

private void CreatePdf()

{

    //定义一个Document,并设置页面大小为A4,竖向 

    iTextSharp.text.Document doc = new Document(PageSize.A4);

    try

    {

        //写实例 

        PdfWriter.GetInstance(doc, new FileStream("D:\\Hello.pdf", FileMode.Create));

        #region 设置PDF的头信息,一些属性设置,在Document.Open 之前完成

        doc.AddAuthor("作者幻想Zerow");

        doc.AddCreationDate();

        doc.AddCreator("创建人幻想Zerow");

        doc.AddSubject("Dot Net 使用 itextsharp 类库创建PDF文件的例子");

        doc.AddTitle("此PDF由幻想Zerow创建,嘿嘿");

        doc.AddKeywords("ASP.NET,PDF,iTextSharp,幻想Zerow");

        //自定义头 

        doc.AddHeader("Expires", "0");

        #endregion //打开document

        doc.Open();

        //载入字体 

        BaseFont.AddToResourceSearch("iTextAsian.dll");

        BaseFont.AddToResourceSearch("iTextAsianCmaps.dll");

        //"UniGB-UCS2-H" "UniGB-UCS2-V"是简体中文,分别表示横向字 和 // 纵向字 //" STSong-Light"是字体名称 

        BaseFont baseFT = BaseFont.CreateFont(@"c:\windows\fonts\SIMHEI.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

        iTextSharp.text.Font font = new iTextSharp.text.Font(baseFT); //写入一个段落, Paragraph 

        doc.Add(new Paragraph("您好, PDF !", font));

        //关闭document 

        doc.Close();

        //打开PDF,看效果 

        Process.Start("D:\\Hello.pdf");

    }

    catch (DocumentException de) { Console.WriteLine(de.Message); Console.ReadKey(); }

    catch (IOException io) { Console.WriteLine(io.Message); Console.ReadKey(); }

}

回答2:

可以试试这个修改的代码:
string filename = MyOpenFileDialog(); //保存当我点击选择PDF文件的时候,此PDF文件所在的路径
PDFDocument doc = new PDFDocument(""); //新建一个PDFDocument
doc.LoadPdf(filename,""); //把刚才选择的PDF文件加载到doc对象中
doc.CurrentPage.Body.AddText("feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); //修改PDF文件:往里面加文字。