c#使用iTextSharp填充PDF模版文件

    xiaoxiao2021-03-25  122

    本文适用于导出pdf简历、合同之类业务,需先用pdf工具制作好pdf模版

    using iTextSharp.text.pdf; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Common { public class PDFHelper { ///使用示例: ///简单模版文件可以在线生成(http://www.pdfescape.com/windows/)使用Form Field创建需要填充的内容的控件 ///var template_url = @"C:\Users\Song\Desktop\tmpplate.pdf"; ///var save_pdf_url = @"C:\Users\Song\Desktop\new.pdf"; ///var dic = PDFHelper.ReadForm(template_url); ///dic["name"] = "张三"; ///dic["id_card"] = "111111111111"; ///PDFHelper.FillForm(template_url, save_pdf_url, dic); /// /// 读取pdf模版中的标签 /// /// pdf模版文件路径 /// public static Dictionary ReadForm(string pdfTemplate) { Dictionary dic = new Dictionary (); PdfReader pdfReader = null; try { pdfReader = new PdfReader(pdfTemplate); AcroFields pdfFormFields = pdfReader.AcroFields; foreach (KeyValuePair de in pdfFormFields.Fields) { dic.Add(de.Key, ""); } } catch (Exception ex) { LogHelper.Error(ex.Message); } finally { if (pdfReader != null) { pdfReader.Close(); } } return dic; } /// /// 向pdf模版填充内容,并生成新的文件 /// /// 模版路径 /// 生成文件保存路径 /// 标签字典(即模版中需要填充的控件列表) public static void FillForm(string pdfTemplate, string newFile, Dictionary dic) { PdfReader pdfReader = null; PdfStamper pdfStamper = null; try { pdfReader = new PdfReader(pdfTemplate); pdfStamper = new PdfStamper(pdfReader, new FileStream( newFile, FileMode.Create)); AcroFields pdfFormFields = pdfStamper.AcroFields; //设置支持中文字体 BaseFont baseFont = BaseFont.CreateFont("C:\\WINDOWS\\FONTS\\STSONG.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); pdfFormFields.AddSubstitutionFont(baseFont); foreach (KeyValuePair de in dic) { pdfFormFields.SetField(de.Key, de.Value); } pdfStamper.FormFlattening = true; } catch (Exception ex) { LogHelper.Error(ex.Message); } finally { if (pdfStamper != null) { pdfStamper.Close(); } if (pdfReader != null) { pdfReader.Close(); } } } } }

    发布过程中遇到了win2008服务器上字体文件不存在的问题,特字体文件上传备份下

    http://download.csdn.net/detail/shujudeliu/9925117

    转载请注明原文地址: https://ju.6miu.com/read-23012.html

    最新回复(0)