我开发了一个 java 邮件 API 程序,它将发送邮件并附加 PDF 文件,所以最后发送了一封邮件,其中附加了 PDF 文件。
我想通过我的java程序本身将该PDF文件作为密码保护。例如,当邮件接收者收到邮件时,接收者点击 PDF 文件。那时需要出现弹出框,用户必须输入先前生成的密码才能查看该 PDF 文件。我正在开发该功能,但似乎是具有域的结构。请在这里帮助我。
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource("D:/C_App/PDF/"+Employeeid+ ".docx");//add file path
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(Employeeid);//file name to be displayed
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
byte[] USER = "password 1234".getBytes();
byte[] OWNER = "password 1234".getBytes();
encryptPdf(DataSource source, DataSource source) throws IOException, DocumentException {
PdfReader reader = new PdfReader(source);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(source));
stamper.setEncryption(USER, OWNER,
PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128 | PdfWriter.DO_NOT_ENCRYPT_METADATA);
stamper.close();
reader.close();
}
Transport.send(message);
这个代码段也给了我语法错误。任何帮助,将不胜感激。谢谢你。
encryptPdf(DataSource source, DataSource source) throws IOException, DocumentException {
PdfReader reader = new PdfReader(source);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(source));
stamper.setEncryption(USER, OWNER,
PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128 | PdfWriter.DO_NOT_ENCRYPT_METADATA);
stamper.close();
reader.close();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句