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

16 篇文章 0 订阅

本文适用于导出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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据的流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值