我想将现有的PDF设为密码保护,我正在使用我正在使用的迭代文字
http://howtodoinjava.com/2014/07/29/create-pdf-files-in-java-itext-tutorial/
我开发了一个程序,它将以PDF作为附件发送邮件。下面是我将PDF文件设为密码保护的代码。
现在PDF文件已附在邮件中,但是当我尝试打开它时,我收到一条错误信息,说明它已损坏。
我在下面的代码中做错了什么?
// attachment part
MimeBodyPart attachPart = new MimeBodyPart();
String filename = "c:\\SettingupRulesin outlook2003.pdf";
//OutputStream file = new FileOutputStream(new File("PasswordProtected.pdf"));
final OutputStream os = new FileOutputStream(filename);
com.itextpdf.text.Document doc = new com.itextpdf.text.Document();
PdfWriter writer = PdfWriter.getInstance(doc, os);
writer.setEncryption(USER_PASSWORD.getBytes(),
OWNER_PASSWORD.getBytes(), PdfWriter.ALLOW_PRINTING,
PdfWriter.ENCRYPTION_AES_128);
os.close();
DataSource source = new FileDataSource(filename);
attachPart.setDataHandler(new DataHandler(source));
attachPart.setFileName(filename);
答案 0 :(得分:1)
您使用了 PdfWriter
。该类可用于从头开始创建新的 PDF,而不是操作现有的 PDF。请改用 PdfStamper
来处理现有文档。