PDF内のテキストを回転

回転プロパティを使用してPDF内のテキストを回転

TextFragmentクラスのsetRotationメソッドを使用することにより、テキストをさまざまな角度で回転させることができます。テキストの回転は、ドキュメント生成のさまざまなシナリオで使用できます。要件に応じてテキストを回転させるために、回転角度を度で指定できます。以下のさまざまなシナリオをご確認ください。これらでテキストの回転を実装できます。

TextFragmentとTextBuilderを使用して回転を実装

public class ExampleRotateText {
    private static String _dataDir = "/home/admin1/pdf-examples/Samples/";

    public static void ImplementRotationUsingTextFragmentAndTextBuilder() {

        // ドキュメントオブジェクトを初期化
        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(_dataDir + "TextFragmentTests_Rotated1_out.pdf");
    }
}

TextParagraph と TextBuilder を使用した回転の実装 (回転されたフラグメント)

public static void ImplementRotationUsingTextParagraphAndTextBuilder_RotatedFragments() {

    // ドキュメントオブジェクトを初期化
    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(_dataDir + "TextFragmentTests_Rotated2_out.pdf");
}

TextFragmentとPage.Paragraphsを使用した回転の実装

public static void ImplementRotationUsingTextFragmentAndPageParagraphs() {
    // ドキュメントオブジェクトを初期化
    Document pdfDocument = new Document();
    // 特定のページを取得
    Page pdfPage = (Page) pdfDocument.getPages().add();
    // テキストフラグメントを作成
    TextFragment textFragment1 = new TextFragment("main text");
    // テキストプロパティを設定
    textFragment1.getTextState().setFontSize(12);
    textFragment1.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));

    // テキストフラグメントを作成
    TextFragment textFragment2 = new TextFragment("rotated text");

    // テキストプロパティを設定
    textFragment2.getTextState().setFontSize(12);
    textFragment2.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));

    // 回転を設定
    textFragment2.getTextState().setRotation(315);

    // テキストフラグメントを作成
    TextFragment textFragment3 = new TextFragment("rotated text");
    // テキストプロパティを設定
    textFragment3.getTextState().setFontSize(12);
    textFragment3.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));

    // 回転を設定
    textFragment3.getTextState().setRotation(270);
    pdfPage.getParagraphs().add(textFragment1);
    pdfPage.getParagraphs().add(textFragment2);
    pdfPage.getParagraphs().add(textFragment3);

    // ドキュメントを保存
    pdfDocument.save(_dataDir + "TextFragmentTests_Rotated3_out.pdf");
    }

TextParagraphとTextBuilderを使用した回転の実装(段落全体の回転)

public static void ImplementRotationUsingTextParagraphAndTextBuilder() {

    // ドキュメントオブジェクトを初期化
    Document pdfDocument = new Document();
    // 特定のページを取得
    Page pdfPage = pdfDocument.getPages().add();
    for (int i = 0; i < 4; i++) {
        TextParagraph paragraph = new TextParagraph();
        paragraph.setPosition(new Position(200, 600));
        // 回転を指定
        paragraph.setRotation(i * 90 + 45);
        // テキストフラグメントを作成
        TextFragment textFragment1 = new TextFragment("段落テキスト");
        // テキストプロパティを設定
        textFragment1.getTextState().setFontSize(12);
        textFragment1.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
        textFragment1.getTextState().setBackgroundColor(Color.getLightGray());
        textFragment1.getTextState().setForegroundColor(Color.getBlue());

        // テキストフラグメントを作成
        TextFragment textFragment2 = new TextFragment("テキストの2行目");
        // テキストプロパティを設定
        textFragment2.getTextState().setFontSize(12);
        textFragment2.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
        textFragment2.getTextState().setBackgroundColor(Color.getLightGray());
        textFragment2.getTextState().setForegroundColor(Color.getBlue());

        // テキストフラグメントを作成
        TextFragment textFragment3 = new TextFragment("さらにいくつかのテキスト...");
        // テキストプロパティを設定
        textFragment3.getTextState().setFontSize(12);
        textFragment3.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
        textFragment3.getTextState().setBackgroundColor(Color.getLightGray());
        textFragment3.getTextState().setForegroundColor(Color.getBlue());
        textFragment3.getTextState().setUnderline(true);

        paragraph.appendLine(textFragment1);
        paragraph.appendLine(textFragment2);
        paragraph.appendLine(textFragment3);
        // TextBuilderオブジェクトを作成
        TextBuilder textBuilder = new TextBuilder(pdfPage);
        // テキストフラグメントをPDFページに追加
        textBuilder.appendParagraph(paragraph);
    }
    // ドキュメントを保存
    pdfDocument.save(_dataDir + "TextFragmentTests_Rotated4_out.pdf");
}