如何使用ITEXTSHARP将HTML代码字符串写进PDF
原文 如何使用ITEXTSHARP将HTML代码字符串写进PDF
itextsharp包括一个简单的类,可以用来根据html代码或字符串创建pdf文件。使用此类,你可以使用短短几行代码,就将 HTML 文档生成一个 PDF 文件。可供下载的演示包含名为 Receipt.htm,其中位于 ~/HTMLTemplate 文件夹中的 HTML 模板文件。此 HTML 文件包含以下标记 (注意-为简洁起见被移除了一些标记)。
| <h1 style="font-weight: bold">Northwind Traders Receipt</h1> <p> Thank you for shopping at Northwind Traders. Your order details are below. </p> <br /><br /> <h2 style="font-weight: bold">Order Information</h2> <table> <tr> <td style="font-weight: bold">Order:</td> <td>[ORDERID]</td> </tr> <tr> <td style="font-weight: bold">Price:</td> <td>[TOTALPRICE]</td> </tr> <tr> <td style="font-weight: bold">Order Date:</td> <td>[ORDERDATE]</td> </tr> </table> <br /><br /> <h2 style="font-weight: bold">Items In Your Order</h2> [ITEMS] <br /><br /> <p style="text-align: center; font-style: italic; font-size: 10pt"> Thank you for your business! If you have any questions about your order, please contact us at 800-555-NORTH. </p> |
请注意,上述标记包含四占位符-括号包围的文本。这里的想法是,我们用itextsharp转上述标记为我们首先将替换占位符的顺序编号,总价格,和其他指标的订单,生成一个收据。转成一个网页,包括下列步骤:
- 创建一个
文件对象的。 - 创建一个
pdfwriter对象的。 - 在文本作为字符串。
- itextsharp的电话
htmlworker.parsetolist方法,通过在网页转换成格式。这将返回一个元素的集合。 - 添加的每个元素返回步骤3到
文件对象的
这内容receipt.htm为一个字符串,然后替换占位符-是通过下面的代码片断:
// Read in the contents of the Receipt.htm file... |
代码有点长,但它并不十分复杂。该代码简单地建立标记为表循环CheckBox List和添加一个表行(< BR >)为每个选定的采购项目。
一旦文本字符串组成了我们准备步骤4和5。步骤4 - itextsharp的htmlworker.parsetolist方法解析文本字符串并返回一个集合的元素。步骤5列举了这个集合的元素,将它们添加到文件对象的。
// Step 4: Parse the HTML string into a collection of elements... |
页面解析是简单地转换成元素可以被添加到文档。除了这些解析元素还可以添加元素创建,就像我们在我们以前的演示(createpdffromscratch.aspx)。例如,我们可以添加标志的右上角的收据使用相同的代码之前:
var logo = iTextSharp.text.Image.GetInstance(Server.MapPath("~/Images/4guysfromrolla.gif")); |
如何使用ITEXTSHARP将HTML代码字符串写进PDF的更多相关文章
- 将字符串写进txt中方式
try { File file = new File(filePath); PrintStream ps = new PrintStream(new FileOutputStream(file)); ...
- 【转】如何把Json格式字符写进text文件中
http://www.cnblogs.com/insus/p/4306640.html http://json2csharp.chahuo.com/ 本篇一步一步学习怎样把显示于网页的json格式的字 ...
- 如何把Json格式字符写进text文件中
本篇一步一步学习怎样把显示于网页的json格式的字符串写进text文件中,并保存起来.学习到创建model, Entity, 序列化List<object>转换为json,显示于网页上.然 ...
- js正则实现从一段复杂html代码字符串中匹配并处理特定信息
js正则实现从一段复杂html代码字符串中匹配并处理特定信息 问题: 现在要从一个复杂的html代码字符串(包含各种html标签,数字.中文等信息)中找到某一段特别的信息(被一对“|”包裹着),并对他 ...
- 几道JS代码手写面试题
几道JS代码手写面试题 (1) 高阶段函数实现AOP(面向切面编程) Function.prototype.before = function (beforefn) { let ...
- 【Xamarin挖墙脚系列:代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧(转)】
正愁如何选择构建项目中的视图呢,现在官方推荐画板 Storybord...但是好像 xib貌似更胜一筹.以前的老棒子总喜欢装吊,用代码写....用代码堆一个HTML页面不知道你们尝试过没有.等页面做出 ...
- JS页面跳转代码怎么写?总结了5种方法
我们在建站时有些链接是固定的,比如客服咨询链接,一般是第三方url,如果直接加上去不太专业,那么就想着用站内的页面做跳转,跳转用js比较多,那么JS页面跳转代码怎么写呢?ytkah在网上搜索了一下,大 ...
- 代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧
近期接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问.就是应该怎样制作UI界面.iOS应用是非常重视用户体验的,能够说绝大多数的应用成功与否与交互设计以及UI是否美丽易用有着非常大的关 ...
- 在linux上一行代码不用写实现自动采集+hadoop分词
在linux上一行代码不用写实现自动采集+hadoop分词 将下面的shell脚本保存成到xxx.sh,然后执行即可 cd /opt/hadoop mkdir spider wget -O spide ...
随机推荐
- ngixn编译安装时,pcre的处理
nginx编译时pcre会提示找不到libpcre.so.1 ./configure --hlep --without-pcre disable PCRE library usage 不使用pcr ...
- 黑马程序员-循环引用问题和weak
使用weak reference(弱引用)来避免retain cycle 对一个对象发送retain消息会创建对这个对象的强引用(strong reference).如果两个对象都有一个强引用指向对方 ...
- 黑马程序员-autorelease pool
Autorelease:可以延迟给对象发送release消息.发送一个autorelease消息给对象,证明该对象在一定时间内有效,一定时间后会对该对象进行释放,进行一次release. 一个auto ...
- jquery事件委托遇到的小坑记录
<script type="text/javascript" src="../../lib/jquery-1.11.2.min.js"></s ...
- mysql获取所有分类的前n条记录的两种方法浅析
项目中有个需求是获取出展会分类下的前n条展商. 刚开始的思路是用group by 获取出展会的分类,后面再根据分类获取该分类下的n个展商,但也需要第一次获取出展会的时候也获取所有的每个展会分类下的 ...
- String 归档
1.古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:,请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想.程序流程图.源代码.结果截图. 设计思想: 1)输入一个字符串str( ...
- WIN8 隐私声明
隐私权声明 本应用连接网络仅为控制硬件设备,不会收集你的个人信息,也不共享你个个人信息. 应用名称 CrossMedia可视化控制系统(服务器版) 关于本应用 本应仅为控制设备应用,不关注任何配置相关 ...
- Linux内核--网络栈实现分析(十)--网络层之IP协议(下)
本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7552455 更多请查看专栏,地 ...
- 使用VirtualBox自带管理工具命令为虚拟磁盘扩展空间
VirtualBox虚拟磁盘空间不够了,默认10G.想扩大,图形界面下没有找到可操作菜单.Google了一下用 Vbox自带的命令工具VBoxManage即可解决. C:\Program Files\ ...
- Python path
1.os.path 1.1.os.path.dirname(__file__) 1.1若文件__file__以绝对路径被运行的,则输出绝对路径 1.2若文件以相对路径被运行的,则输出为空 1.2.os ...