根据PDF模板生成PDF文件(基于iTextSharp)

 Posted on 2018-06-22 15:54 

也可以通过PDF软件工具,进行编辑。这里,我把需要填写部分的内容,全画上表单元素,设置元素的name,后面根据name 属性对其进行赋值。具体操作,将text放置指定处,然后鼠标右键,看到如下界面:

这里Name属性就是后面我们要用到的。目前它支持的元素有:

下面,我们新建一个控制台程序,通过nuget获取itextSharp。

控制台代码如下:

复制代码
 /// <summary>        ///         /// </summary>        /// <param name="args"></param>        static void Main(string[] args)         {             string tempFilePath = "D:\\a.tmp.pdf";             iTextSharp.text.pdf.PdfDocument document = new iTextSharp.text.pdf.PdfDocument();              iTextSharp.text.pdf.PdfReader pdfReader = new iTextSharp.text.pdf.PdfReader(@"D:\d.pdf");             PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(tempFilePath, FileMode.OpenOrCreate));             AcroFields pdfFormFields = pdfStamper.AcroFields;             pdfStamper.FormFlattening = true;              //BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);            BaseFont simheiBase = BaseFont.CreateFont(@"C:\Windows\Fonts\simhei.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);              //添加图片             //Image image = Image.GetInstance("");             //pdfStamper.Writer.Add(image);             pdfFormFields.AddSubstitutionFont(simheiBase);             pdfStamper.AcroFields.SetField("Names", "李朝强");             pdfStamper.AcroFields.SetField("chk", "yes", true);             pdfStamper.Close();             pdfReader.Close();               ////解析文本            //PdfReaderContentParser parser = new PdfReaderContentParser(pdfReader);              //PdfWriter pdfWriter;              //ITextExtractionStrategy strategy;             //strategy = parser.ProcessContent<SimpleTextExtractionStrategy>(1, new SimpleTextExtractionStrategy());             //string ss = strategy.GetResultantText();              //byte[] buffer = pdfReader.GetPageContent(1);              //string strBody = System.Text.Encoding.Default.GetString(buffer);        }
复制代码

上面代码,根据D盘的d.pdf模板,来生成最终的PDF文件。这里通过给AcroFields中的字段赋值,来达到替换内容的目的。

上面还有一种复选框(checkbox)的内容,pdf也支持,这里直接给其赋值yes或no,来控制是否选中。

最后一步就是将生成的PDF进行展示了。这里借助于pdf.js(微信也支持)。看看效果吧!

看看手机微信效果吧!

 

人之为学,如饮河海,大饮则大盈,小饮则小颖!https://www.cnblogs.com/ibeisha/p/itextsharp-pdf.html
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信