PDFは、さまざまなオペレーティングシステム間で一貫したレイアウトを提供するクロスプラットフォームのドキュメント形式です。研究論文や請求書などのドキュメントの生成と共有に広く使用されています。プログラムでPDFファイルを生成する場合、ドキュメントのレイアウトに応じてテキストの位置と向きを変更する必要があります。この記事では、JavaでPDFドキュメント内のテキストを回転させる方法を紹介します。
PDFのテキストを回転させるJavaAPI
PDFファイル内のテキストを回転させるには、Aspose.PDF forJavaを使用します。これは、基本的なPDF操作機能と高度なPDF操作機能を提供する強力なライブラリです。 APIをダウンロードするか、次のMaven構成を使用してインストールできます。
リポジトリ:
<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>22.4</version>
</dependency>
JavaでPDF内のテキストを回転する
PDFドキュメント内のテキストを回転させる方法は複数あります。テキストフラグメントまたは段落全体を回転させることができます。これらの各テキスト回転がどのように機能するかを見てみましょう。
JavaでTextFragmentを使用したPDFテキストの回転
以下は、Javaを使用してPDFドキュメントのテキストフラグメントを回転させる手順です。
- まず、Documentクラスを使用して新しいドキュメントを作成します。
- 次に、ドキュメントにページを追加し、Document.getPages().add()メソッドを使用してその参照を取得します。
- その後、TextFragmentクラスを使用して新しいテキストフラグメントを作成します。
- テキストフラグメントの位置とフォントを設定します。
- TextFragment.getTextState().setRotation()メソッドを使用して回転角を設定します。
- 新しいTextBuilderオブジェクトを作成し、Pageオブジェクトで初期化します。
- TextBuilder.appendText(TextFragment)メソッドを使用して、ページにテキストを追加します。
- 最後に、Document.save(string)メソッドを使用してPDFドキュメントを保存します。
次のコードサンプルは、JavaでPDFドキュメントのテキストを回転させる方法を示しています。
// ドキュメントオブジェクトを初期化します
Document pdfDocument = new Document();
// 特定のページを取得
Page pdfPage = pdfDocument.getPages().add();
// テキストフラグメントを作成する
TextFragment textFragment1 = new TextFragment("main text");
textFragment1.setPosition(new Position(100, 600));
// テキストプロパティを設定する
textFragment1.getTextState().setFontSize(12);
textFragment1.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
// 回転したテキストフラグメントを作成する
TextFragment textFragment2 = new TextFragment("rotated text");
textFragment2.setPosition(new Position(200, 600));
// テキストプロパティを設定する
textFragment2.getTextState().setFontSize(12);
textFragment2.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
textFragment2.getTextState().setRotation(45);
// 回転したテキストフラグメントを作成する
TextFragment textFragment3 = new TextFragment("rotated text");
textFragment3.setPosition(new Position(300, 600));
// テキストプロパティを設定する
textFragment3.getTextState().setFontSize(12);
textFragment3.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
textFragment3.getTextState().setRotation(90);
// TextBuilderオブジェクトを作成します
TextBuilder textBuilder = new TextBuilder(pdfPage);
// テキストフラグメントをPDFページに追加します
textBuilder.appendText(textFragment1);
textBuilder.appendText(textFragment2);
textBuilder.appendText(textFragment3);
// ドキュメントを保存
pdfDocument.save("Rotate_Text_TextFragment.pdf");
出力
JavaでTextParagraphを使用したPDFテキストの回転
新しい段落を作成するときに、テキストに回転を適用することもできます。これは、TextParagraphクラスを使用して実現できます。以下は、TextParagraphクラスを使用してテキスト回転を適用する手順です。
- まず、Documentクラスを使用して新しいドキュメントを作成します。
- 次に、ドキュメントにページを追加し、Document.getPages().add()メソッドを使用してその参照を取得します。
- その後、新しいTextParagraphオブジェクトを作成します。
- TextFragmentクラスを使用して新しいテキストフラグメントを作成し、テキストとフォントを設定します。
- TextFragment.getTextState().setRotation()メソッドを使用して回転角を設定します。
- TextParagraph.appendLine(TextFragment)メソッドを使用して、段落にテキストを追加します。
- 新しいTextBuilderオブジェクトを作成し、Pageオブジェクトで初期化します。
- TextBuilder.appendParagraph(TextParagraph)メソッドを使用して、ページに段落を追加します。
- 最後に、Document.save(string)メソッドを使用してPDFドキュメントを保存します。
次のコードサンプルは、PDFの段落内のテキストをプログラムで回転させる方法を示しています。
// ドキュメントオブジェクトを初期化します
Document pdfDocument = new Document();
// 特定のページを取得
Page pdfPage = (Page) pdfDocument.getPages().add();
// テキスト段落を作成する
TextParagraph paragraph = new TextParagraph();
paragraph.setPosition(new Position(200, 600));
// テキストフラグメントを作成する
TextFragment textFragment1 = new TextFragment("rotated text");
// テキストプロパティを設定する
textFragment1.getTextState().setFontSize(12);
textFragment1.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
// 回転を設定する
textFragment1.getTextState().setRotation(45);
// テキストフラグメントを作成する
TextFragment textFragment2 = new TextFragment("main text");
// テキストプロパティを設定する
textFragment2.getTextState().setFontSize(12);
textFragment2.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
// テキストフラグメントを作成する
TextFragment textFragment3 = new TextFragment("another rotated text");
// テキストプロパティを設定する
textFragment3.getTextState().setFontSize(12);
textFragment3.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
// 回転を設定する
textFragment3.getTextState().setRotation(-45);
// テキストの断片を段落に追加します
paragraph.appendLine(textFragment1);
paragraph.appendLine(textFragment2);
paragraph.appendLine(textFragment3);
// TextBuilderオブジェクトを作成します
TextBuilder textBuilder = new TextBuilder(pdfPage);
// PDFページにテキスト段落を追加します
textBuilder.appendParagraph(paragraph);
// ドキュメントを保存
pdfDocument.save("Rotate_Text_TextParagraph.pdf");
出力
無料のAPIライセンスを取得する
一時ライセンスの取得を使用すると、Aspose.PDFforJavaを無料で試すことができます。
結論
この記事では、Javaを使用してプログラムでPDFのテキストを回転させる方法を学習しました。 TextFragmentクラスとTextParagraphクラスを使用してテキストを回転させる方法について説明しました。さらに、ドキュメントを使用して、Aspose.PDFforJavaの詳細を調べることができます。ご不明な点やご質問がございましたら、フォーラムからお問い合わせください。