この記事では、JavaでプログラムによってPDFファイルを最初から作成する方法を学習します。

Javaを使用してPDFドキュメントを作成する

PDFは、さまざまな種類のドキュメントを作成するために一般的に使用されるファイル形式になりました。領収書、請求書、ビジネスレポートなど、さまざまな業界でドキュメント生成にPDF自動化が採用されています。このようなシナリオに注目して、この記事ではJavaでPDFファイルを作成する方法について説明します。コードサンプルは、PDFファイルを最初から作成し、JavaでそのPDFにテキスト、画像、表、およびその他の要素を挿入する方法を示しています。

PDFを作成するJava API-無料ダウンロード

Aspose.PDF for Javaは、Javaアプリケーション内からPDFファイルを作成するためのPDFファイル操作APIです。 APIを使用すると、単純なPDFドキュメントと複雑なPDFドキュメントを作成できます。 Aspose.PDF for Javaは、JARとしてダウンロードするか、Mavenベースのアプリケーションにインストールできます。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.11</version>
    <classifier>jdk17</classifier>
</dependency>

JavaでPDFファイルを作成する

以下は、単純なPDFファイルを最初から生成し、その中にテキストを挿入する手順です。

次のコードサンプルは、Javaを使用してPDFファイルを作成する方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-Javaにアクセスしてください。
// ドキュメントオブジェクトを初期化します
Document document = new Document();
 
//ページを追加
Page page = document.getPages().add();
 
// 新しいページにテキストを追加する
page.getParagraphs().add(new TextFragment("Hello World!"));
 
// 更新されたPDFを保存
document.save("HelloWorld_out.pdf");

Javaでテキストフォーマットを使用してPDFファイルを作成する

次に、PDFドキュメントのテキストに書式を適用する方法を確認しましょう。テキストの書式設定には、フォント、フォントサイズ、色、位置などを含めることができます。この操作を実行する手順は次のとおりです。

  • Documentクラスを使用して、新しいPDFドキュメントを作成するか、既存のPDFドキュメントをロードします。
  • テキストを配置するページにアクセスします。
  • TextFragmentのオブジェクトを作成して、テキストと、位置、フォント、色、サイズなどの他のフォーマットオプションを設定します。
  • TextBuilderクラスを使用して、TextFragmentオブジェクトをページに追加します。
  • Document.save(String)メソッドを使用して、PDFドキュメントを保存します。

次のコードサンプルは、Javaを使用してPDFファイルを作成し、テキストフォーマットを適用する方法を示しています。

// PDFドキュメントをロード
Document document = new Document();

// ページを追加
Page page = document.getPages().add();

// テキストフラグメントを作成する
TextFragment textFragment = new TextFragment(
		"Text 1: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment.setPosition(new Position(100, 700));
TextFragment textFragment1 = new TextFragment(
		"Text 2: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment1.setPosition(new Position(100, 600));

// テキストプロパティを設定する
textFragment.getTextState().setFontSize(12);
textFragment.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
textFragment.getTextState().setBackgroundColor(Color.getLightGray());
textFragment.getTextState().setForegroundColor(Color.getRed());

textFragment1.getTextState().setDrawTextRectangleBorder(true);
textFragment1.getTextState().setUnderline(true);
textFragment1.getTextState().setStrikeOut(true);

// パターン色空間で新しい色を作成する
Color color = new Color();
color.setPatternColorSpace(new GradientAxialShading(Color.getRed(), Color.getBlue()));		
textFragment1.getTextState().setForegroundColor(color);

// TextBuilderオブジェクトを作成します
TextBuilder textBuilder = new TextBuilder(page);

// テキストフラグメントをPDFページに追加します
textBuilder.appendText(textFragment);
textBuilder.appendText(textFragment1);

// PDFドキュメントを保存します
document.save("Generated-PDF.pdf");

Java画像付きのPDFファイルを作成

以下は、Aspose.PDF for Javaを使用してPDFファイルに画像を挿入する手順です。

  • Documentオブジェクトを作成して、PDFドキュメントを作成または開きます。
  • Pageオブジェクトで画像を追加したいページを取得します。
  • 画像をPage.getResources()コレクションに追加します。
  • 演算子を使用して画像をページに配置します。
    • GSave operator to save the current graphical state.
    • ConcatenateMatrix operator to specify where the image is to be placed.
    • 行う operator to draw the image on the page.
    • 最後に、GRestore演算子を使用して、更新されたグラフィカル状態を保存します。
  • PDFファイルを保存します。

次のコードサンプルは、JavaでPDFファイルに画像を挿入する方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.Pdf-for-Javaにアクセスしてください。
// ドキュメントを開く
Document pdfDocument1 = new Document("input.pdf");

// 座標を設定する
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// 画像を追加するページを取得します
Page page = pdfDocument1.getPages().get_Item(1);

// 画像をストリームにロード
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));

// ページリソースのImagesコレクションに画像を追加します
page.getResources().getImages().add(imageStream);

// GSave演算子の使用:この演算子は現在のグラフィックス状態を保存します
page.getContents().add(new Operator.GSave());

// RectangleオブジェクトとMatrixオブジェクトを作成します
Rectangle rectangle = new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.getURX() - rectangle.getLLX(), 0, 0, rectangle.getURY() - rectangle.getLLY(), rectangle.getLLX(), rectangle.getLLY() });

// ConcatenateMatrix(連結行列)演算子の使用:画像の配置方法を定義します
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());

// Do演算子の使用:この演算子は画像を描画します
page.getContents().add(new Operator.Do(ximage.getName()));

// GRestore演算子の使用:この演算子はグラフィックスの状態を復元します
page.getContents().add(new Operator.GRestore());

// 新しいPDFを保存します
pdfDocument1.save("Updated_document.pdf");

// 画像ストリームを閉じる
imageStream.close();

JavaでPDFファイルにテーブルを作成する

テーブルは、行と列の形式でデータを整理するための優れた方法です。 Aspose.PDFを使用すると、PDFドキュメントにテーブルを非常に簡単に挿入できます。テーブルを作成する手順は次のとおりです。

  • Documentクラスを使用してソースファイルをロードします。
  • テーブルを初期化し、その列と行を設定します。
  • テーブルの設定を設定します(例:境界線)。
  • テーブルに行を追加して、テーブルにデータを入力します。
  • テーブルをページに追加します。
  • PDFファイルを保存します。

次のコードサンプルは、JavaでPDFファイルにテーブルを作成する方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.Pdf-for-Javaにアクセスしてください。
// ソースPDFドキュメントをロード
Document doc = new Document(dataDir + "input.pdf");
// テーブルの新しいインスタンスを初期化します
Table table = new Table();
// テーブルの境界線の色をLightGrayに設定します
table.setBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// テーブルセルの境界線を設定します
table.setDefaultCellBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// 10行を追加するループを作成します
for (int row_count = 1; row_count < 10; row_count++) {
	// テーブルに行を追加
	Row row = table.getRows().add();
	// テーブルセルを追加する
	row.getCells().add("Column (" + row_count + ", 1)");
	row.getCells().add("Column (" + row_count + ", 2)");
	row.getCells().add("Column (" + row_count + ", 3)");
}
// 入力ドキュメントの最初のページにテーブルオブジェクトを追加します
doc.getPages().get_Item(1).getParagraphs().add(table);
// テーブルオブジェクトを含む更新されたドキュメントを保存します
doc.save(dataDir + "document_with_table.pdf");

JavaでPDFファイルにフォームを作成する

PDF形式は、ユーザーからの入力を収集するためのフォームの追加もサポートしています。フォームには、テキストボックス、ラジオボタンなど、さまざまな種類のフィールドが含まれる場合があります。次の手順は、PDFファイルに簡単なフォームを挿入する方法を示しています。

  • PDFドキュメントをロードするか、Documentクラスを使用して新しいドキュメントを作成します。
  • TextBoxFieldなどの追加するフォームフィールドを作成します。
  • フィールドのプロパティを設定します。
  • pdfDocument.getForm().add(Field、Int)メソッドを使用して、PDFのFormにフィールドを追加します。
  • PDFドキュメントを保存します。

次のコードサンプルは、JavaでPDFファイルにフォームを作成する方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.Pdf-for-Javaにアクセスしてください。
// ドキュメントを開く
Document pdfDocument = new Document("input.pdf");

// フィールドを作成する
TextBoxField textBoxField1 = new TextBoxField(pdfDocument.getPages().get_Item(1), new Rectangle(100, 200, 300, 300));

// フィールド名を設定する
textBoxField1.setPartialName("textbox1");

// フィールド値を設定する
textBoxField1.setValue("Text Box");

// ボーダーオブジェクトを作成する
Border border = new Border(textBoxField1);

// 境界線の幅を設定します
border.setWidth(5);

// ボーダーダッシュスタイルを設定する
border.setDash(new Dash(1, 1));

// フィールド境界を設定します
textBoxField1.setBorder(border);

// フィールドをドキュメントに追加します
pdfDocument.getForm().add(textBoxField1, 1);

// 変更したPDFを保存します
pdfDocument.save("output.pdf");

ここを使用してフォームフィールドの詳細をお読みください。

JavaのPDFファイルにブックマークを挿入する

PDFファイルにブックマークを追加する手順は次のとおりです。

  • Documentオブジェクトを使用してPDFドキュメントを開きます。
  • OutlineItemCollectionコレクションにドキュメントのアウトラインを追加します。
  • 宛先ページ番号を設定します。
  • ドキュメントのアウトラインコレクションにブックマークを追加します。
  • PDFファイルを保存します。

次のコードサンプルは、Javaを使用してPDFにブックマークを挿入する方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.Pdf-for-Javaにアクセスしてください。
// ソースPDFドキュメントを開く
Document pdfDocument = new Document("input.pdf");

// ブックマークオブジェクトを作成する
OutlineItemCollection pdfOutline = new OutlineItemCollection(pdfDocument.getOutlines());
pdfOutline.setTitle("Test Outline");
pdfOutline.setItalic(true);
pdfOutline.setBold(true);

// 宛先ページ番号を設定する
pdfOutline.setAction(new GoToAction(pdfDocument.getPages().get_Item(1)));

// ドキュメントのアウトラインコレクションにブックマークを追加します。
pdfDocument.getOutlines().add(pdfOutline);

// 更新ドキュメントを保存します
pdfDocument.save("output.pdf");

無料ライセンスを取得する

評価の制限なしにAPIを試すために、無料の一時ライセンスを取得できます。

結論

この記事では、JavaでPDFファイルを最初から作成する方法を学びました。さらに、Javaコードサンプルは、テキスト、画像、表、フォーム、およびブックマークを新規または既存のPDFファイルに挿入する方法を示しています。 ドキュメントを使用して、JavaPDFAPIの詳細を調べることができます。

関連項目