私はPDFBoxのドキュメントに本当に苦労しています。そのような人気のある図書館の情報は、地面では少し薄いようです(私にとっては!)。
とにかく、私が抱えている問題はPDFの保護に関係しています。現時点で必要なのは、ユーザーのアクセス許可を制御することだけです。具体的には、ユーザーがPDFを変更できないようにしたいです。
アクセス許可コードを省略すると、すべてが完全に機能します。外部リソースからPDFを読んでいます。次に、フィールドを読み取ってデータを入力し、新しいPDFを保存する前にいくつかの画像を追加します。それはすべて完璧に機能します。
アクセスを管理するために次のコードを追加すると、問題が発生します。
/* Secure the PDF so that it cannot be edited */
try {
String ownerPassword = "DSTE$gewRges43";
String userPassword = "";
AccessPermission ap = new AccessPermission();
ap.setCanModify(false);
StandardProtectionPolicy spp = new StandardProtectionPolicy(ownerPassword, userPassword, ap);
pdf.protect(spp);
} catch (BadSecurityHandlerException ex) {
Logger.getLogger(PDFManager.class.getName()).log(Level.SEVERE, null, ex);
}
このコードを追加すると、すべてのテキストと画像が送信pdfから削除されます。フィールドはドキュメントにまだ存在しますが、すべて空であり、元のPDFの一部であり、コードに動的に追加されたすべてのテキストと画像が失われます。
更新:わかりました。問題はフォームフィールドに関連するバグが原因であることがわかります。フォームフィールドを使用せずに別のアプローチを試し、それが何をもたらすかを確認します。