iTextを使用して所有者パスワードを追加せずにPDFファイルにユーザーパスワードのみを追加するにはどうすればよいですか?私が見る限り、これを行うことができるのは、所有者のパスワードと一緒にユーザーのパスワードを追加することによってのみであるようです。
3083 次
2 に答える
4
既存のPDFの暗号化は次のように行われます。
public void encryptPdf(String src, String dest) throws IOException, DocumentException {
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.setEncryption(USER, OWNER,
PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128 | PdfWriter.DO_NOT_ENCRYPT_METADATA);
stamper.close();
reader.close();
}
http://itextpdf.com/examples/iia.php?id=219を参照してください
OWNERがnull
の場合、ランダムな所有者パスワードが生成されます(誰も知らないパスワード)。多分それはあなたの顧客が意味することです。mklがすでに説明したように、USERパスワードはあるが、OWNERパスワードがないPDFを使用することは実際には意味がありません。
于 2013-01-22T07:42:00.580 に答える
0
次のコードは、所有者のパスワードを追加するために必要なものです。
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperprintobj);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE,new File(fileName));
exporter.setParameter(JRPdfExporterParameter.IS_ENCRYPTED, Boolean.TRUE);
exporter.setParameter(JRPdfExporterParameter.IS_128_BIT_KEY, Boolean.TRUE);
//exporter.setParameter(JRPdfExporterParameter.USER_PASSWORD, "jasper");
exporter.setParameter(JRPdfExporterParameter.OWNER_PASSWORD, "reports");
exporter.setParameter(
JRPdfExporterParameter.PERMISSIONS,
new Integer(PdfWriter.ALLOW_COPY | PdfWriter.ALLOW_PRINTING)
);
exporter.exportReport(); // finally export as pdf
pdfを生成するJavaでこのコードを使用します。
于 2013-01-22T05:18:49.180 に答える