- using iTextSharp.text.pdf;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- namespace TempPDF.Function
- {
- public class PdfHelper
- {
- public static void Test1(string TempPDF,string newPDF)
- {
- System.IO.File.Delete(newPDF);
- BaseFont font = BaseFont.CreateFont(@"C:\Windows\Fonts\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
- //获取PDF模板文件
- //string templateFile = @"E:\Test Demo\Practice\PDF\New_Blank_Document.pdf";
- //输出生成的PDF文件
- //string tempPDF = @"E:\Test Demo\Practice\PDF\output.pdf";
- //创建 PdfReader
- PdfReader reader = new PdfReader(TempPDF);
-
- PdfStamper stamper = new PdfStamper(reader, new FileStream(newPDF, FileMode.Create));
-
- //stamper.Writer.CloseStream = false;
- //进行PDF字段操作
- AcroFields from = stamper.AcroFields;
- //填充PDF里的字段内容
- from.SetFieldProperty("Name", "textfont", font, null);
- from.SetField("Name", "测试");
- stamper.FormFlattening = true;
- stamper.Close();
-
- reader.Close();
-
- }
- /// <summary>
- /// 填充表单文本域
- /// </summary>
- /// <param name="templatePath"></param>
- /// <param name="newFilePath"></param>
- /// <param name="parameters"></param>
- public static void GetEnPdf(string templatePath, string newFilePath, Dictionary<string, string> parameters)
- {
- System.IO.File.Delete(newFilePath);
- PdfReader pdfReader = new PdfReader(templatePath);
- PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFilePath,FileMode.Create));
- //获取域的集合;
- AcroFields pdfFormFields = pdfStamper.AcroFields;
- BaseFont BF_Light = BaseFont.CreateFont(@"C:\Windows\Fonts\simsun.ttc,0", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
- //为需要赋值的域设置值;
- foreach (KeyValuePair<string, string> parameter in parameters)
- {
- pdfFormFields.SetFieldProperty(parameter.Key, "textfont", BF_Light, null);
- pdfFormFields.SetField(parameter.Key, parameter.Value);
- }
- //这句很重要,如果为false那么生成的PDF文件还能编辑,一定要设为true;
- pdfStamper.FormFlattening = true;
- pdfStamper.Close();
- pdfReader.Close();
- }
- }
- }
复制代码
|