私は、コピー/貼り付けを防ぎ、印刷を許可し、ウォーターマークを追加し、その後の変更を防ぐためにオーナーパスワードを設定するために、PDFにパスワードを設定しています。ItextPDFを使用して、PDFを本当に安全にする方法は?
すべて正常に動作しますが、問題はありません。
私は15日間のpdfの削除ツール、a-pdfのためにこれを無料でダウンロードしました。点滅すると、パスワードの複雑さにかかわらず、すべての保護が削除されます(50文字の長さではすべての種類の文字が試されます)。
itextPDFには、ドキュメントを暗号化する他の方法があります。私は以下を使用しました:
File f = new File("C:/TEMP/zip/waterMarked.pdf");
String hardPassword = "D [email protected] CqAk+NQCW)[email protected]&02ifu!2TMX*d 0TGK(j(Kq";
byte[] hardPasswordByte = hardPassword.getBytes();
PdfReader reader = new PdfReader("C:/TEMP/zip/Original_document-9.pdf");
FileOutputStream out = new FileOutputStream(f);
PdfStamper stamp = new PdfStamper(reader, out);
//first argument is the user password. If set to something it asks for password when opening file, not wanted.
stamp.setEncryption(null, hardPasswordByte, PdfWriter.ALLOW_PRINTING, true);
//do stuff on the stamper, save file.
誰かがJavaコードからPDF文書を保護する良い方法を知っていますか?
あなたが直面している問題は、タイプや制限に内在しています。PDFを表示するには、ドキュメントからテキストをコピーするのに必要なデータとほぼ同じデータにアクセスする必要があります。確実に印刷を許可することはできませんし、文書からコピーアンドペーストすることもできません。あなたがしようとするすべては、手がかりの障壁を上げるだけです。 –
コピー防止のPDFを作成しないでください。ドキュメントからテキストをコピーするだけでOCRを分解しなければならないのは非常に面倒です。あなたが私を防ぐかどうかにかかわらず、私はそれを実行します。 – endolith