Aspose.PDF FOSS for Java は、PDF ドキュメントの作成と操作のための MIT ライセンスの Java ライブラリです。包括的な Document クラスを中心的なエントリーポイントとして提供し、アノテーション、インタラクティブ フォーム フィールド、ページ操作、メタデータ、PDF/A 準拠検証をフルカバーしています。
このライブラリは、527 クラスを公開し、完全な PDF 仕様をカバーしています: 文書構造は Document、Page、PageCollection によって; 注釈は Annotation 階層を通じて(WidgetAnnotation、FreeTextAnnotation、HighlightAnnotation を含む); インタラクティブフォームは Form、ButtonField、CheckboxField、RadioButtonField で; ページレンダリングは BmpDevice によって; そして PDF/A 準拠チェックは ActionRules と ActionFixes を通じて行われます; 暗号化は CBC モードの AESCipher によって提供されます.
あなたのMavenプロジェクトにAspose.PDF FOSSを追加し、groupIdはorg.aspose、artifactIdはaspose-pdfを使用してください。ライブラリはJava 11以降が必要で、完全にMITライセンスです。エンタープライズ機能とサポートについては、Aspose.PDF for Java — Enterprise Productをご覧ください。
Document クラスを使用して新しい PDF ドキュメントを作成します。既存のドキュメントは Document(filePath) または Document(stream) コンストラクタを介してアクセスできます。PageCollection を使用してページを追加、アクセス、変更します。各 Page は MediaBox、CropBox、回転、リソース、およびコンテンツオペレーターを公開します。DocumentInfo と XmpMetadata を使用してドキュメントのメタデータを読み書きします。getParser()、getCatalog()、および getTrailer() を介して基礎となる PDF オブジェクトにアクセスします。getEmbeddedFiles() を使用して埋め込みファイル コレクションを管理します。Document を作成し、ページにコンテンツを配置します。PdfFileEditor と Page API を使用して、ページのサイズ変更、回転、または順序変更を行います。Annotation クラスはすべてのアノテーションの基底です。具体的な型には WidgetAnnotation、FreeTextAnnotation、HighlightAnnotation、および UnderlineAnnotation が含まれます。Document.getForm() を介してドキュメント フォームにアクセスし、ButtonField、CheckboxField、および RadioButtonField インスタンスを列挙または作成します。AppearanceCharacteristics を使用して視覚プロパティを制御します — 境界色、背景、回転、キャプション。FormEditor と FormElement を使用してください。ActionRules と ActionFixes を使用します。AESCipher を使用して CBC モード(AESCipher.encrypt(key, data) と AESCipher.decrypt(key, data))でデータバイト配列を暗号化および復号化します。Artifact と ArtifactCollection APIs を使用して特定および操作します。PdfFileEditor.resizeContents() と ContentsResizeParameters で調整します。AnnotationRules と ActionRules を使用して、PDF/A 標準に対する注釈およびアクション ルールを検証します。AESCipher を使用して、ドキュメントストリームに埋め込まれたデータセクションを暗号化します。Artifact オブジェクトを検出し、管理します。ActionFixes と AnnotationFixes を実行します。新しいドキュメントを作成し、ページを追加し、スタイリングされたウィジェット注釈を添付します。
try (Document doc = new Document()) {
Page page = doc.getPages().add();
WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
w.getCharacteristics().setCaption("Submit");
page.getAnnotations().add(w);
doc.save("output.pdf");
}
```java
try (Document doc = new Document()) {
Page page = doc.getPages().add();
WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
w.getCharacteristics().setCaption("Submit");
page.getAnnotations().add(w);
doc.save("output.pdf");
}
ドキュメントフォームにラジオボタンのグループを追加し、プログラムで値を選択します。
try (Document doc = new Document()) {
Page page = doc.getPages().add();
RadioButtonField radio = new RadioButtonField(page);
radio.setPartialName("choice");
radio.addOption("Option1", new Rectangle(50, 50, 70, 70));
radio.addOption("Option2", new Rectangle(50, 80, 70, 100));
doc.getForm().add(radio, 1);
radio.setValue("Option2");
doc.save("form.pdf");
}
既存のドキュメントにアクセスし、最初のページのメディアボックスの寸法を読み取ります。
try (Document doc = new Document("input.pdf")) {
double width = doc.getPages().get(1).getMediaBox().getWidth();
double height = doc.getPages().get(1).getMediaBox().getHeight();
System.out.println("Page size: " + width + " x " + height);
}