根据PDF模板生成PDF文件(基于iTextSharp)

根据PDF模板生成PDF文件,这里主要借助iTextSharp工具来完成。场景是这样的,假如要做一个电子协议,用过通过在线填写表单数据,然后系统根据用户填写的数据,生成电子档的协议。原理很简单,但是每个技术人员解决问题的思路不太一样。也有朋友直接通过Canvas来实现,过程是把内容排版好,然后生成图片,然后根据图片生成PDF文件,这种方式有个问题,如果要是要求兼容移动端的话,在移动设备上排版出来的效果肯定不太一样,导致最终生成的电子协议和期望的相差太大。下面我们就利用PDF中的表单元素,来完成PDF内容的替换。

过程是这样的!

我这边收到一份word版的文档,首先,我们将其另存为PDF文件。

其次,在 https://www.pdfescape.com/open/这个网站,将PDF文件上传上去,进行在线编辑。 

也可以通过PDF软件工具,进行编辑。这里,我把需要填写部分的内容,全画上表单元素,设置元素的name,后面根据name 属性对其进行赋值。

添加表单元素,右键设置name属性。

这里的name属性就是后面我们程序要用到的。

再看看,表单都支持什么?

下面,我们新建一个控制台程序,通过nuget获取itextSharp。

控制台代码如下:

  string tempFilePath = "D:\\a.tmp.pdf";
            iTextSharp.text.pdf.PdfDocument document = new iTextSharp.text.pdf.PdfDocument();

            iTextSharp.text.pdf.PdfReader pdfReader = new iTextSharp.text.pdf.PdfReader(@"D:\d.pdf");
            PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(tempFilePath, FileMode.OpenOrCreate));
            AcroFields pdfFormFields = pdfStamper.AcroFields;
            pdfStamper.FormFlattening = true;

            //BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            BaseFont simheiBase = BaseFont.CreateFont(@"C:\Windows\Fonts\simhei.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

            //添加图片
            //Image image = Image.GetInstance("");
            //pdfStamper.Writer.Add(image);

            pdfFormFields.AddSubstitutionFont(simheiBase);
            pdfStamper.AcroFields.SetField("Names", "李朝强");
            pdfStamper.AcroFields.SetField("chk", "yes", true);
            pdfStamper.Close();
            pdfReader.Close();

上面代码,根据D盘的d.pdf模板,来生成最终的PDF文件。这里通过给AcroFields中的字段赋值,来达到替换内容的目的。

上面还有一种复选框(checkbox)的内容,pdf也支持,这里直接给其赋值yes或no,来控制是否选中。

最后一步就是将生成的PDF进行展示了。这里借助于pdf.js(微信也支持)。看看效果吧!

看看手机微信版!

转载于:https://my.oschina.net/lichaoqiang/blog/1834149

weixin_34258838
关注 关注
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#使用itextsharp生成PDF文件的实现代码
09-05
以下是对在C#中使用itextsharp生成PDF文件的实现代码进行了详细分析介绍,需要的朋友可以过来参考下
.net(C#) 通过html模板文件生成pdf文件
08-30
.net(C#) 通过html模板文件生成pdf文件; ephtmltopdf.dll的功能优势: -支持HTML5和CSS3功能,包括画布和SVG -支持内联SVG在HTML文档 -支持网络字体 -支持Web开放字体格式WOFF -强大的html5/css3/javascript渲染引擎 -组件很小,只有1M多
C#使用ITextSharp操作pdf
AlanTuring_hst的博客
07-16 3832
原文链接https://www.cnblogs.com/loyung/p/6879917.html 1、CanvasRectangle.cs对Rectangle对象的基类支持,可以灵活定义一个Rectangle using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PDFReport { //
Java根据模板动态生成Pdf(添加页码、文件加密、Spire免费版本10页之后无法显示问题、嵌入图片添加公章、转Base64)
最新发布
gongjin28_csdn的博客
04-27 1417
在众多企业级应用中,生成动态PDF文档是一项常见且关键的任务。这里将详细介绍如何运用Java编程语言,结合模板技术,实现从添加页码、文件加密、处理免费库限制、嵌入图片加盖公章到转换为Base64编码等一系列高级功能。我们将深入探讨多种应用场景,并附上简明易懂的代码片段和详细说明。
C#版本Itextsharp根据模板导出pdf报表
03-21
C#版本Itextsharp根据模板导出pdf报表
使用iTextSharp来填充PDF模板文件
weixin_30412013的博客
07-21 736
需求简介: 遇到了这样一个需求:某公司需要为所有用户的培训生成一个培训记录,过程如下: (1)用户在培训完之后会进入到一个填写信息的界面。 (2)用户填写信息。 (3)生成PDF格式的培训记录。 (4)用户下载并打印归档。 思路: 因为每次培训后生成PDF文件内容都不完全一样,但是格式却是完全相同的,所以很容易让人联想到使用模板文件。...
[.Net] - 使用 iTextSharp 生成基于模板PDF生成文件并保留表单域
weixin_30438813的博客
09-01 205
背景 基于 PDF Template 预填充表单项,生成一份新的 PDF 文件,并保留表单域允许继续修改。 代码段 using iTextSharp.text.pdf; /* Code Snippet */ using (var dia = new SaveFileDialog()) { dia.Filter = @"PDF files|*.pdf"; ...
net版本Itextsharp根据模板导出pdf报表--(201903)
03-17
net版本Itextsharp根据模板导出pdf报表--(201903)
java itextsharp_根据PDF模板生成PDF文件(基于iTextSharp)
weixin_42360237的博客
02-13 233
根据PDF模板生成PDF文件,这里主要借助iTextSharp工具来完成。场景是这样的,假如要做一个电子协议,用过通过在线填写表单数据,然后系统根据用户填写的数据,生成电子档的协议。原理很简单,但是每个技术人员解决问题的思路不太一样。也有朋友直接通过Canvas来实现,过程是把内容排版好,然后生成图片,然后根据图片生成PDF文件,这种方式有个问题,如果要是要求兼容移动端的话,在移动设备上排版出来的...
iTextSharp 生成PDF
标准都是留给不爱的人,爱的本质是自由意志的沉沦
08-08 1763
示例代码定义了一个名为PdfController的API控制器,其中的GeneratePdf方法创建了一个新的PDF文档,并将内容添加到文档中。最后,将文档内容转换为字节数组,并通过File方法返回给前端。注意,你需要在你的项目中添加对iTextSharp库的引用。当调用/api/pdf接口时,将返回一个带有生成PDF文件的响应。你可以将其用于前端下载或进一步处理。
iTextSharp使用手册.pdf
05-21
iTextSharp使用手册pdf中文版 第一章 创建一个 Document 利用 iText 五步创建一个 PDF文件: helloword 。 第一步,创建一个 iTextSharp.text.Document 对象的实例: Document document = new Document(); 第二步,为该 Document创建一个 Writer 实例: PdfWriter.getInstance(document, new FileStream("Chap0101.pdf", FileMode.Create)); 第三步,打开当前 Document document.Open(); 第四步,为当前 Document添加内容: document.Add(new Paragraph("Hello World")); 第五步,关闭 Document document.Close();
.net版本Itextsharp根据模板导出pdf报表(0515).rar
05-16
.net版本Itextsharp根据模板导出pdf报表(0515).rar
.net版本Itextsharp根据模板导出pdf报表2019
02-27
.net版本Itextsharp根据模板导出pdf报表2019
C#pdf制作,itextsharp文件外加在网上下的一个制作表格的案例
02-11
itextsharp文件外加在网上下的一个制作表格的案例 第一部分 iText的简单应用 第一章 创建一个Document 第一步 创建一个Document实例: 第二步 创建Writer实例 第三步 打开Document 第四步 添加内容 第五步,关闭 document 第二章 块、短句和段落 第三章 锚点、列表和注释 第四章 页眉页脚、章节、区域和绘图对象 第五章 表格 一些简单的表格 一些表格参数 大表格 内存管理 嵌套表格 表格偏移 表格的绝对位置 第六章 图片 Image对象 图片的位置 缩放和旋转图片 原始图片数据 System.Drawing.Bitmap TIFF和CCITT 图片和其他对象 第二部分 其他文档格式 第七章 XML和 (X)HTML 第八章 RTF文件 RTF包 创建一个RTF文档 不支持的特性 RTF中扩展的页眉和页脚 第三部分 iText的高级应用 第九章 字体 TrueType字体应用 TruType字体集合的应用 第十章 图象和文本的绝对位置 pdfContentByte 简单图形 文本 模板(Form xObjects) 分栏 PdfTable 颜色(SpotColors)和图案(Patterns) 第十一章 本地和异地转向、目标和概要 本地转向 异地转向 第十二章 页面和表格事件
iTextSharp教程C#生成PDF文件
12-27
使用iTextSharp,可以生成PDF报表中的文本(Paragraph)、图片(Image)、 表格(PdfPTable)、单元格(PdfPCell),里面有多个教程可供参考。
.net core 通过iTextSharp.LGPLv2.Core(3.4.11)生成pdf文件
qq_34414632的博客
10-20 341
.net core 通过itextsharp操作pdf
Itextsharp根据模板导出pdf报表 ItextsharpExportingPDFReportsTemplate.rar
09-29
Itextsharp根据模板导出pdf报表 源码描述: 一、源码介绍 1、说明,下下来就可以用,在一个无数据库,详细可以看https://www.cnblogs.com/sbgh/p/9229774.html#commentform,参考。 2、PDF文件在目前来说是比较...
C#使用iTextSharp封装的PDF文件操作类实例
09-03
主要介绍了C#使用iTextSharp封装的PDF文件操作类,实例分析了C#操作pdf文件的技巧,非常具有实用价值,需要的朋友可以参考下
C# iTextSharp使用word模板生成pdf
05-10
使用 iTextSharp 可以方便地将 Word 模板转换为 PDF,下面是使用 iTextSharp 实现此功能的步骤: 1. 安装 iTextSharp 包。 2. 创建 Word 模板文件,将需要动态替换的内容使用占位符表示,如{Placeholder1},{Placeholder2}等。 3. 使用 C# 读取 Word 模板文件内容,替换占位符为实际值。 4. 使用 iTextSharp 将替换后的 Word 文件转换为 PDF。 下面是一个简单的示例代码: ```csharp using iTextSharp.text; using iTextSharp.text.pdf; using Microsoft.Office.Interop.Word; using System.IO; namespace WordToPdfDemo { class Program { static void Main(string[] args) { // 读取 Word 模板文件 var wordApp = new Application(); var wordDoc = wordApp.Documents.Open(@"模板文件路径"); var content = wordDoc.Content.Text; // 替换占位符为实际值 content = content.Replace("{Placeholder1}", "实际值1"); content = content.Replace("{Placeholder2}", "实际值2"); // 转换为 PDF var pdfDoc = new Document(); var pdfWriter = PdfWriter.GetInstance(pdfDoc, new FileStream(@"生成PDF 文件路径", FileMode.Create)); pdfDoc.Open(); pdfDoc.Add(new Paragraph(content)); pdfDoc.Close(); // 关闭 Word 文件 wordDoc.Close(); wordApp.Quit(); } } } ``` 需要注意的是,上述示例代码仅适用于简单的 Word 模板转换。对于复杂的 Word 模板,可能需要使用更高级的技术来处理,如使用 Open XML SDK 解析 Word 文件等。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • sda, sdb, sdc, sda1, sda2在Linux中都代表什么 54060
  • div向右偏移设置 css让div靠右移一定距离 23823
  • vue+elementui1.x tree组件数据太多时加载过慢的解决方案 13385
  • 服务器CPU使用率过高排查与解决思路 13200
  • 实现HTTPS系列第一弹之【http,https,www,web等概念简介】 10554

最新评论

  • DELPHI支付宝支付代码

    weixin_45250937: 大侠有没有DEMO分享一下呀!

  • [saiku] schema文件分析

    jufangqi001: 这直接copy过来有啥用啊

  • sda, sdb, sdc, sda1, sda2在Linux中都代表什么

    行知_: 那使用mount命令时,应该是mount sda还是mountsda1呢?

  • 三维体数据分割算法

    bearbenbin: 感谢博主分享代码,我使用的是python平台,不知道博主能否将它写成python代码,以供大家学习?

  • ORACLE导入遇到ORACLE错误959解决方法

    qq_21012927: 几张表可以真么搞,几百张怎么搞呢

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • IOS 长姿势---双击Home键
  • Word Ladder
  • seattle language school & on-line degree
2019年390篇
2018年668篇
2017年899篇
2016年519篇
2015年426篇
2014年316篇
2013年331篇
2012年263篇
2011年196篇
2010年161篇
2009年99篇
2008年93篇
2007年77篇
2006年42篇
2005年30篇
2004年6篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

哆哆女性网公司网站制作一般多少钱起个小吃店名设计网站贵吗温州建设企业网站美女总裁爱上我自学周易风水大仙官明字辈起什么名字2280周公解梦大全查询赣上食莲有感 黄庭坚感谢家人作文家具厂起名大全免费称心如意起名字起名程姓商丘到北京动车唐砖笔趣阁徐姓艺术签名算死命免费读全文ios如何签名牙刷品牌起名字seo关键词推广有哪些免费算命看姻缘新包青天全集股市行情软件如何制作网站页面古诗文网怎么样陈伟个性签名给洋娃娃起名字俊字起名名字男孩金起名字淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化