- 生成 pdf 的方式有多种,直接用 iText 编码控制产生,fop 转换,不过我觉得很方便的一种方法就是用 iText 的 HTMLWorker 类直接把 HTML 转换成相应的 PDF 文档,HTMLWorker 可支持图片和表格,一定数量的样式控制。这样可以让我们关注到 HTML 页面设计上,至于转换出来的效果就要看母版 HTML 的设计功底了。要知道这个 HTML 中的样式要让 HTMLWorker 可理解的,并非说能支持 CSS2 还是 CSS3。HTMLWorker 能支持的样式还是非常有限,并且还未文档化的,有些多试试,能看看源代码是自然可以让胸中更有数了。
项目中有一个比较迫切的问题是把 HTML 中的表格转换成 PDF 的 PdfPTable 时,无论是在 <td> 上用 width="xxx" 或是 style="width:xxx" 时都看不到宽度的设置效果,iText 总是让生成的 PdfPTable 平均分配单元格宽度的。这对于单元格宽度有过于悬殊的需求是无法妥协的,所以要一种办法来支持自定义单元格宽度,让 width="xxx" 或是 style="width:xxx" 有一种控制能力就行。又得改源代码了,网上找到了是支持 iText 2.1.7 的改法,本篇是针对 iText 5.0.4 的做法,使支持 width="10%" 百分比来控制单元格宽度。 Read More
要向另一个服务程序传送 PDF 文件,同时要用另一个文件来给 PDF 文件加入一些描述信息,描述都很短,这时候那个描述文件其实是多余的,完全可以把这些描述信息写到 PDF 文件自身中去。比如在查看 PDF 文件属性 PDF 标签页中可以看到的 Title/Author/Subject/Keywords/Created/Modified/Application 这些信息都可以通过 iTextSharp 来编辑。其实不止这些,你可以加入任何命名的属性,只是它们不在属性窗口中显示而已。而且这些属性存的数据好像也不受限的,当然太大了直接就是增加 PDF 文件的体积,如果是可视属性的话,在查看文件属性时显示也要变慢,所以尽量还是在 PDF 的 MetaData 中存简短的信息。 Read More
前一篇 C# 使用 iTextSharp(4.1.2) 生成 PDF 文档 写了一个用 iTextSharp 4.1.2 生成 PDF 文档的例子,由于新版 iTextSharp 5.0.2 变化太大,所以有必要再记录一下。比较两篇你可以很明显的感觉到它们之间 API 上的差异来。 Read More
在 Java 里操作 PDF 文档的组件首当其充就是 iText,几乎是不二之选,惯性思维到 C# 里应该有一个相应的实现吧,对了,那就是 iTextSharp,这里来看看 iTextSharp 怎么生成一个 PDF 文档的。此篇所选版本是 iTextSharp 4.1.2,因与 iTextSharp 5 有较大的差别,所以分两篇来说明。
这两个版本的主要区别有,iTextSharp 5 里不再有 iTextSharp.text.Table、HeaderFooter 类的,且实现了自己的 Font, Color,不再依赖于 System.Drawing 了;在设置页眉页脚实现也不一样。
下面例子,用 OLDDB 从一个 Excel 里读取第一个 sheet,然后在 PDF 文档里生成张表格: Read More- 还是在一年前翻译完 Quartz Job Scheduling Framework 这篇手册、并做成了 CHM 文档,见此:Quartz Job Scheduling Framework[翻译]- 中文版 CHM 文件发布。
Quartz Job Scheduling Framework 中文 PDF 版下载地址:Quartz Job Scheduling Framework 中文版 V1.0.0.pdf
也应不少网友的要求,应该出一个 PDF 版本的文件来,一来可能多数人觉得 PDF 看着舒服,又适于打印;再则可能就是当初制作 CHM 文件时有几个问题未解决:
1. BlogJava 上所用的字符集是 UTF-8、而我的那些文章转成 GBK 的 HTML 文件,有此地方会乱码,且版面会不同 Read More