u 加密 打开文档之前还要做的一件事情就是加密(如果你希望该文档加密),要达到这个目的,你可以使用下面的方法: public void setEncryption(boolean strength, String userPassword, String ownerPassword, int permissions);
该功能参见示例代码0109和示例代码0110。 writer.setEncryption(PdfWriter.STRENGTH40BITS, null, null, PdfWriter.AllowCopy); 示例代码0109产生的文件能够被打开而无须密码,但用户不能打印、修改本文档。 writer.setEncryption(PdfWriter.STRENGTH128BITS, "userpass", "ownerpass", PdfWriter.AllowCopy | PdfWriter.AllowPrinting); 打你试图打开示例代码0110产生的文件时,将要求输入密码('userpass'),因为添加了AllowPrinting参数,你可以打印该文档而不会发生任何问题。 第四步 添加内容在解释第一步到第三步的不同示例中,你可能已经遇到了一些对象如Phrase, Paragraph等 在接下来的几章中,所有这些问题都将得到详细解释。 有时你可能想一个writer故意忽略document产生的行为,如示例代码0111: 当我们创建了两个writer: writerA 和 writerB: PdfWriter writerA = PdfWriter.getInstance(document, new FileStream("Chap0111a.pdf", FileMode.Create)); PdfWriter writerB = PdfWriter.getInstance(document, new FileStream("Chap0111b.pdf", FileMode.Create)); 我们可以创建两个有细微差别的文档: writerA.Pause(); document.add(new Paragraph("This paragraph will only be added to Chap0111b.pdf, not to Chap0111a.pdf")); writerA.resume(); 你可以比较文件: Chap0111a.pdf和Chap0111b.pdf的区别 第五步,关闭 document关闭 document 非常重要, 因为它将关闭正在运行的Writer并将内容写入文件,该方法在最后被调用,你应该总是要关闭文档。 高级话题:阅读PDF文件 该部分内容介绍了iText只能产生PDF格式的文件而不能解析PDF格式文件,不再翻译。 |