背景

基于 PDF Template 预填充表单项,生成一份新的 PDF 文件,并保留表单域允许继续修改。

代码段

using iTextSharp.text.pdf;

/* Code Snippet */
using (var dia = new SaveFileDialog())
{
dia.Filter = @"PDF files|*.pdf";
dia.FileName = string.Format("PDF_{0}", DateTime.Today.ToString("yyyy-MM-dd"));
if (dia.ShowDialog() == DialogResult.OK)
{
using (FileStream fsWrite = new FileStream(dia.FileName, FileMode.OpenOrCreate, FileAccess.Write))
{
using (var reader = new PdfReader(@"\Templates\PDFTemplate\Template01.pdf"))
{
using (var stamper = new PdfStamper(reader, fsWrite))
{
stamper.Writer.CloseStream = false; // 保留表单域,允许继续编辑
stamper.FormFlattening = false; // 更新表单域字段
var form = stamper.AcroFields;
form.SetField("form1[0].#subform[0].flt_txtUserName[0]", "username");
stamper.Close();
}
}
}
MessageBox.Show("Report has been exported", Resources.Common_Successed, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}

最新文章

  1. 使用maven下载jar包的source和javadoc
  2. The Unique MST(次小生成树)
  3. JAVA 新手问题: Request 编码编译出错,Unhandled exception type UnsupportedEncodingException
  4. Mac 安装终端软件
  5. Android中的三种XML解析方式
  6. DB、ETL、DW、OLAP、DM、BI关系结构图
  7. Oracle数据库——触发器的创建与应用
  8. (转)if语句优化
  9. Java注释模板设置详解
  10. json-smart 使用示例
  11. BZOJ_2529_[Poi2011]Sticks_贪心
  12. Git使用九:合并和删除分支
  13. [LeetCode] Serialize and Deserialize N-ary Tree N叉搜索树的序列化和去序列化
  14. struts2 升级至2.3.32时访问页面报错 File "/struts-tags" not found
  15. Marriage Match IV HDU - 3416(最短路 + 最大流)
  16. python实现求最大公约数与最小公倍数
  17. Executor线程池的简单使用
  18. linux查找大文件命令
  19. Windows 下MySql Replication(复制)配置
  20. SpringBoot入门 (十四) Security安全控制

热门文章

  1. Pytest权威教程15-运行Nose用例
  2. php md5算法
  3. kubernetes架构和组件
  4. SpringCloud服务Gradle本地jar配置
  5. 【转】反编译获取任何微信小程序源码(完)
  6. GWAS这十年 | 10 Years of GWAS Discovery: Biology, Function, and Translation
  7. OGC定义的几何要素
  8. 一个机器绑两个IP可能存在的问题
  9. https://pingcap.com/blog-cn/flame-graph/
  10. Sizes of integer types 整形字节长度 系统字节