Rotacionar Texto Dentro de PDF

Rotacionar Texto Dentro de PDF usando a Propriedade Rotation

Usando o método setRotation da Classe TextFragment, você pode rotacionar texto em vários ângulos. A rotação de texto pode ser usada em diferentes cenários de geração de documentos. Você pode especificar o ângulo de rotação em graus para rotacionar o texto conforme sua necessidade. Por favor, verifique os diferentes cenários a seguir, nos quais você pode implementar a rotação de texto.

Implementar Rotação usando TextFragment e TextBuilder

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

    public static void ImplementRotationUsingTextFragmentAndTextBuilder() {

        // Inicializar objeto de documento
        Document pdfDocument = new Document();
        // Obter página específica
        Page pdfPage = pdfDocument.getPages().add();
        // Criar fragmento de texto
        TextFragment textFragment1 = new TextFragment("texto principal");
        textFragment1.setPosition(new Position(100, 600));

        // Definir propriedades do texto
        textFragment1.getTextState().setFontSize(12);
        textFragment1.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));

        // Criar fragmento de texto rotacionado
        TextFragment textFragment2 = new TextFragment("texto rotacionado");
        textFragment2.setPosition(new Position(200, 600));
        // Definir propriedades do texto
        textFragment2.getTextState().setFontSize(12);
        textFragment2.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
        textFragment2.getTextState().setRotation(45);

        // Criar fragmento de texto rotacionado
        TextFragment textFragment3 = new TextFragment("texto rotacionado");
        textFragment3.setPosition(new Position(300, 600));

        // Definir propriedades do texto
        textFragment3.getTextState().setFontSize(12);
        textFragment3.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
        textFragment3.getTextState().setRotation(90);

        // criar objeto TextBuilder
        TextBuilder textBuilder = new TextBuilder(pdfPage);
        // Anexar o fragmento de texto à página PDF
        textBuilder.appendText(textFragment1);
        textBuilder.appendText(textFragment2);
        textBuilder.appendText(textFragment3);

        // Salvar documento
        pdfDocument.save(_dataDir + "TextFragmentTests_Rotated1_out.pdf");
    }
}

Implementar Rotação usando TextParagraph e TextBuilder (Fragmentos Rotacionados)

public static void ImplementRotationUsingTextParagraphAndTextBuilder_RotatedFragments() {

    // Inicializar objeto de documento
    Document pdfDocument = new Document();
    // Obter página específica
    Page pdfPage = (Page) pdfDocument.getPages().add();
    TextParagraph paragraph = new TextParagraph();
    paragraph.setPosition(new Position(200, 600));
    // Criar fragmento de texto
    TextFragment textFragment1 = new TextFragment("texto rotacionado");
    // Definir propriedades do texto
    textFragment1.getTextState().setFontSize(12);
    textFragment1.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
    // Definir rotação
    textFragment1.getTextState().setRotation(45);

    // Criar fragmento de texto
    TextFragment textFragment2 = new TextFragment("texto principal");
    // Definir propriedades do texto
    textFragment2.getTextState().setFontSize(12);
    textFragment2.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));

    // Criar fragmento de texto
    TextFragment textFragment3 = new TextFragment("outro texto rotacionado");
    // Definir propriedades do texto
    textFragment3.getTextState().setFontSize(12);
    textFragment3.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
    // Definir rotação
    textFragment3.getTextState().setRotation(-45);

    // Adicionar os fragmentos de texto ao parágrafo
    paragraph.appendLine(textFragment1);
    paragraph.appendLine(textFragment2);
    paragraph.appendLine(textFragment3);
    // Criar objeto TextBuilder
    TextBuilder textBuilder = new TextBuilder(pdfPage);
    // Adicionar o parágrafo de texto à página PDF
    textBuilder.appendParagraph(paragraph);
    // Salvar documento
    pdfDocument.save(_dataDir + "TextFragmentTests_Rotated2_out.pdf");
}

Implementar Rotação usando TextFragment e Page.Paragraphs

public static void ImplementRotationUsingTextFragmentAndPageParagraphs() {
    // Inicializar objeto do documento
    Document pdfDocument = new Document();
    // Obter página específica
    Page pdfPage = (Page) pdfDocument.getPages().add();
    // Criar fragmento de texto
    TextFragment textFragment1 = new TextFragment("texto principal");
    // Definir propriedades do texto
    textFragment1.getTextState().setFontSize(12);
    textFragment1.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));

    // Criar fragmento de texto
    TextFragment textFragment2 = new TextFragment("texto rotacionado");

    // Definir propriedades do texto
    textFragment2.getTextState().setFontSize(12);
    textFragment2.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));

    // Definir rotação
    textFragment2.getTextState().setRotation(315);

    // Criar fragmento de texto
    TextFragment textFragment3 = new TextFragment("texto rotacionado");
    // Definir propriedades do texto
    textFragment3.getTextState().setFontSize(12);
    textFragment3.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));

    // Definir rotação
    textFragment3.getTextState().setRotation(270);
    pdfPage.getParagraphs().add(textFragment1);
    pdfPage.getParagraphs().add(textFragment2);
    pdfPage.getParagraphs().add(textFragment3);

    // Salvar documento
    pdfDocument.save(_dataDir + "TextFragmentTests_Rotated3_out.pdf");
    }

Implementar Rotação usando TextParagraph e TextBuilder (Parágrafo Inteiro Rotacionado)

public static void ImplementRotationUsingTextParagraphAndTextBuilder() {

    // Inicializar objeto de documento
    Document pdfDocument = new Document();
    // Obter página específica
    Page pdfPage = pdfDocument.getPages().add();
    for (int i = 0; i < 4; i++) {
        TextParagraph paragraph = new TextParagraph();
        paragraph.setPosition(new Position(200, 600));
        // Especificar rotação
        paragraph.setRotation(i * 90 + 45);
        // Criar fragmento de texto
        TextFragment textFragment1 = new TextFragment("Texto do Parágrafo");
        // Criar fragmento de texto
        textFragment1.getTextState().setFontSize(12);
        textFragment1.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
        textFragment1.getTextState().setBackgroundColor(Color.getLightGray());
        textFragment1.getTextState().setForegroundColor(Color.getBlue());

        // Criar fragmento de texto
        TextFragment textFragment2 = new TextFragment("Segunda linha de texto");
        // Definir propriedades de texto
        textFragment2.getTextState().setFontSize(12);
        textFragment2.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
        textFragment2.getTextState().setBackgroundColor(Color.getLightGray());
        textFragment2.getTextState().setForegroundColor(Color.getBlue());

        // Criar fragmento de texto
        TextFragment textFragment3 = new TextFragment("E mais um pouco de texto...");
        // Definir propriedades de texto
        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);
        // Criar objeto TextBuilder
        TextBuilder textBuilder = new TextBuilder(pdfPage);
        // Adicionar o fragmento de texto à página PDF
        textBuilder.appendParagraph(paragraph);
    }
    // Salvar documento
    pdfDocument.save(_dataDir + "TextFragmentTests_Rotated4_out.pdf");
}