PdfSharp -- 根据PDF模板导出PDF
PdfSharp:v1.50.5147,.NET Framework:v4.5.1
一、PDF模板
在开始前,我觉得有必要简单说一下PDF模板
制作PDF模板的工具有很多,随便找一款就行(我这里用迅捷PDF编辑器免费试用版,带水印)
添加文本(字段名)
1、选择工具栏 添加
2、选择 添加文本工具
3、在拖出来的类似文本框的东西里面输入文本即可
表单制作
1、选择工具栏上的编辑表单
2、选择要添加的表单控件(文本框、单选框、多选框和下拉列表等)
3、选择属性
4、在属性面板输入域名(控件名,在代码里面根据这个写入文本)
这样一个可在代码中写入文本的控件就做好了
其他的以此类推,就不一一说明了
很多东西都在属性面板里面,找找就有
大概出来一个这个模样的模板
二、导出PDF
导入PdfSharp,用NuGget就行
代码很简单,就是根据给出的PDF路径初始化PdfSharp.Pdf.PdfDocument
然后拿到他的Form(PdfSharp.Pdf.AcroForms.PdfAcroForm)
根据字段名实例化一个字段,给他赋值就可以了
可以在form.Fields.Names找到PDF里面的所有控件的字段名
代码如下
using System;
using System.IO;namespace PrintPDF
{class Program{static void Main(string[] args){string templateFilePath = @"E:\TestData\t\Temp211014.pdf";PdfSharp.Pdf.PdfDocument doc = PdfSharp.Pdf.IO.PdfReader.Open(templateFilePath, PdfSharp.Pdf.IO.PdfDocumentOpenMode.Modify);PdfSharp.Pdf.AcroForms.PdfAcroForm form = doc.AcroForm;if (form.Elements.ContainsKey("/NeedAppearances")){form.Elements["/NeedAppearances"] = new PdfSharp.Pdf.PdfBoolean(true);}else{form.Elements.Add("/NeedAppearances", new PdfSharp.Pdf.PdfBoolean(true));}PdfSharp.Pdf.AcroForms.PdfTextField txtName = (PdfSharp.Pdf.AcroForms.PdfTextField)(form.Fields["txtName"]);txtName.Value = new PdfSharp.Pdf.PdfString("郑小晨");PdfSharp.Pdf.AcroForms.PdfTextField txtAge = (PdfSharp.Pdf.AcroForms.PdfTextField)(form.Fields["txtAge"]);txtAge.Value = new PdfSharp.Pdf.PdfString("18");PdfSharp.Pdf.AcroForms.PdfTextField txtAddress = (PdfSharp.Pdf.AcroForms.PdfTextField)(form.Fields["txtAddress"]);txtAddress.Value = new PdfSharp.Pdf.PdfString("广州市天河区xx村1001号");PdfSharp.Pdf.AcroForms.PdfTextField txtEmail = (PdfSharp.Pdf.AcroForms.PdfTextField)(form.Fields["txtEmail"]);txtEmail.Value = new PdfSharp.Pdf.PdfString("zxc@163.com");PdfSharp.Pdf.AcroForms.PdfTextField txtMobile = (PdfSharp.Pdf.AcroForms.PdfTextField)(form.Fields["txtMobile"]);txtMobile.Value = new PdfSharp.Pdf.PdfString("13888888888");PdfSharp.Pdf.AcroForms.PdfCheckBoxField cbxMan = (PdfSharp.Pdf.AcroForms.PdfCheckBoxField)(form.Fields["cbxMan"]);cbxMan.Checked = true;doc.Save(@"E:\TestData\t\s" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".pdf");//byte[] fileContents = null;//using (MemoryStream stream = new MemoryStream())//{// doc.Save(stream, true);// fileContents = stream.ToArray();//}}}
}
打印出来的PDF
在WPS打开PDF
PDFsharp Samples - PDFsharp and MigraDoc Wikihttp://www.pdfsharp.net/wiki/PDFsharpSamples.ashx
PdfSharp -- 根据PDF模板导出PDF相关推荐
- Java 根据模板导出PDF
文章目录 前言 思路一:直接导出pdf 使用itext模板导出pdf 思路二:先导出word再转成pdf 1)导出word 2)word转pdf 最终方案 ~~docx4j~~ spire.doc.f ...
- java按照模板导出pdf或者word
一.java按照模板导出pdf (一)制作模板 1.在word里制作模板 因为PDF常用的软件不支持编辑,所以先用Word工具,如WPS或者Office新建一个空白Word文档,里面制作出自己想要的样 ...
- java 制作pdf模板,Java-pdf模板制作流程-使用pdf 模板生成pdf文件
Java 使用pdf 模板生成pdf文件 --制作流程 1. 使用工具 adobe acrobat dc.word 2015 2. 使用 word 繪制一個 3*5 的表格並保存, ...
- java pdf工具类_Java PDF工具类(一)| 使用 itextpdf 根据PDF模板生成PDF(文字和图片)...
Java PDF工具类(一)| 使用 itextpdf 根据设置好的PDF模板填充PDF(文字和图片) 相关文章: Java PDF工具类(二)| 使用 wkhtmltox 实现 HTML转PDF(文 ...
- 制作PDF模板实现PDF文件生成
制作PDF模板实现PDF文件生成 最近开发的需求的时候,突然发现需要制作PDF,并且需要根据不同的用户制作不同的PDF,所以,为了提高效率,就想到了,制作PDF模板,然后赋值的这种方法,所幸,效果不错 ...
- java pdf模板_java通过PDF模板填写PDF表单
本文实例为大家分享了java通过PDF模板填写PDF表单的具体代码,包括图片,供大家参考,具体内容如下 需要用到的java包: itext.jar.iTextAsian.jar的JAR包.这个包里面定 ...
- itextpdf通过pdf模板生成pdf文件
itextpdf通过pdf模板生成pdf文件,设置粗体字体 1.创建pdf模板 2.使用模板生成pdf 3.itext自带的字体列表 4.遇到的坑 1.创建pdf模板 可以使用PDFFescape网站 ...
- java根据模板导出pdf,java开发面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
- java根据模板导出pdf,并将多个pdf合成一个
前言 项目中,遇到这么一个需求:根据单个模板批量导出pdf,批量导出的pdf要合并成一个pdf进行打印.两个问题点:1.根据模板生成pdf.2.pdf合并 一.前期准备工作(准备pdf模板) 这个问题 ...
最新文章
- 数据库的UNDO和REDO
- Nacos 发布 v0.8.0 Pre-GA版本,安全稳定上生产
- python 单继承的实现
- 《系统集成项目管理工程师》必背100个知识点-70合同索赔流程
- Android实现蝴蝶动画,Android中的动画具体解释系列——飞舞的蝴蝶
- toAppendStream doesn‘t support consuming update changes which is produced by node GroupAggregate
- 科技部成立新一代人工智能发展研究中心
- 二进制状态压缩相关操作
- 从代码里提取的测试需求
- 清除B/S开发时页面缓存
- 零基础学习前端开发,怎么自学javascript?
- 1、两数之和(python)
- JVM调优--04---dump文件分析 、arthas在线排查工具
- 如何去除win 10右键菜单的“使用skype共享”
- android 支付宝登录界面,模仿支付宝登录页的实现(android)
- 投影仪家用推荐最新?投影仪什么牌子性价比比较高
- SQL (十五)更新和删除数据(updata语句,delete语句)
- big_6d77fbb7bde4011fdf01df45fef8d0dd9ddcbdd5.jpg
- 基于proteus的计数器设计
- 转载 测试开发岗--高频知识整理