编辑: 王子梦丶 | 2015-08-25 |
(xxx 是Pdf 或Xml) 你可以通过下面的方法创建一个实例: PdfWriter writer = PdfWriter.getInstance(document, new FileStream( Chap01xx.pdf ));
但是你几乎永远不会用到Writer实例(除非你想创建高级PDF或者希望用一些非常特殊的函数,如ViewerPreferences 或Encryption).所以通过下面的办法得到实例已经足够了: PdfWriter.getInstance(document, new FileStream( Chap01xx.pdf ));
在第一步中创建一个文档时,第一个参数意义不大,第二个参数可以是任何一种流,到目前为止我们一直使用System.IO.FileStream将Document写入文件中,示例代码0105用到了System.IO.MemoryStream(这不是一个独立的例子,你必须在Servlet Engine中测试这些代码. 第三步 打开Document ??????? 摘要 在你写入任何实际数据之前,你可能希望通过以下几种方法写入一些关于本文档的摘要: public boolean addTitle(String title) public boolean addSubject(String subject) public boolean addKeywords(String keywords) public boolean addAuthor(String author) public boolean addCreator(String creator) public boolean addProducer() public boolean addCreationDate() public boolean addHeader(String name, String content) 你可以选择自己的标题、主题、关键字、作者、创建程序,但以下产品信息将始终被添加:iTextSharp (或者iTextSharp的引用)和创建时间(实际上这两种方法是自动调用的). 你还可以将自定义的名称添加为 报头信息 ,但是这对于PdfWriter没有任何作用,如果看看实例代码0101产生的pdf文件的 文档属性 ,我们可以看到仅仅有PDF创建程序和产品日期,而示例代码0106的 文档属性 框中有更多的信息. 打开document前要做的事: 你只能在Open方法调用之前添加摘要,这是iText开发工具提供的一个选择. 在HTML中,报头信息被放在文档前面报头标识中间,调用Open方法将导致报头信息写入流,因而在Document被打开后无法更改这些数据. PDF报头信息不包括摘要,看起来有类似于: %PDF-1.2 该行显示生成的文档是一个版本为1.2的PDF格式的文件,在PDF中,摘要保存在PdfInfo对象中,当文档关闭时已经写入PdfWriter中了,因此,没有关于为什么不能修改库来满足任何时候添加或更改摘要的技术原因 ??????? 页面初始化 Open方法在不同的Witer中同时会产生初始化事件,举例来说,如果你需要一个水印或者页眉页角对象出现在文档第一页的开始处,你需要在打开文档前添加这些,同样的用于设置该文档其他页水印、页眉、页角、页数和尺寸. 当调用下列方法: public bool setPageSize(Rectangle pageSize) public bool Add(Watermark watermark) public void removeWatermark() setting Header property public void resetHeader() setting Footer property public void resetFooter() public void resetPageCount() setting PageCount property 产生的结果只能在下一个新页中看到(当在本页调用初始化方法时),代码见示例代码0107,你必须要准备一张名为watermark.jpg的图片,如下图: ??????? 阅读器参数: 你可以通过下面的办法为PDF文件指定一些阅读器 (如Adobe Reader) 参数: public void setViewerPreferences(int preferences) 在示例代码0108中,指定了下面一些参数: writerA.setViewerPreferences(PdfWriter.PageLayoutTwoColumnLeft);
writerB.setViewerPreferences(PdfWriter.HideMenubar | PdfWriter.HideToolbar);
writerC.setViewerPreferences(PdfWriter.PageLayoutTwoColumnLeft | PdfWriter.PageModeFullScreen | PdfWriter.NonFullScreenPageModeUseThumbs);