Rotar Texto Dentro de PDF

Rotar Texto Dentro de PDF usando la Propiedad de Rotación

Usando el método setRotation de la Clase TextFragment, puede rotar texto en varios ángulos. La rotación de texto se puede usar en diferentes escenarios de generación de documentos. Puede especificar el ángulo de rotación en grados para rotar el texto según su necesidad. Por favor, revise los siguientes diferentes escenarios, en los cuales puede implementar la rotación de texto.

Implementar Rotación usando TextFragment y 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();
        // Obtener página particular
        Page pdfPage = pdfDocument.getPages().add();
        // Crear fragmento de texto
        TextFragment textFragment1 = new TextFragment("texto principal");
        textFragment1.setPosition(new Position(100, 600));

        // Establecer propiedades de texto
        textFragment1.getTextState().setFontSize(12);
        textFragment1.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));

        // Crear fragmento de texto rotado
        TextFragment textFragment2 = new TextFragment("texto rotado");
        textFragment2.setPosition(new Position(200, 600));
        // Establecer propiedades de texto
        textFragment2.getTextState().setFontSize(12);
        textFragment2.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
        textFragment2.getTextState().setRotation(45);

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

        // Establecer propiedades de texto
        textFragment3.getTextState().setFontSize(12);
        textFragment3.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
        textFragment3.getTextState().setRotation(90);

        // crear objeto TextBuilder
        TextBuilder textBuilder = new TextBuilder(pdfPage);
        // Añadir el fragmento de texto a la página PDF
        textBuilder.appendText(textFragment1);
        textBuilder.appendText(textFragment2);
        textBuilder.appendText(textFragment3);

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

Implementar Rotación usando TextParagraph y TextBuilder (Fragmentos Rotados)

public static void ImplementRotationUsingTextParagraphAndTextBuilder_RotatedFragments() {

    // Inicializar objeto documento
    Document pdfDocument = new Document();
    // Obtener una página en particular
    Page pdfPage = (Page) pdfDocument.getPages().add();
    TextParagraph paragraph = new TextParagraph();
    paragraph.setPosition(new Position(200, 600));
    // Crear fragmento de texto
    TextFragment textFragment1 = new TextFragment("texto rotado");
    // Establecer propiedades del texto
    textFragment1.getTextState().setFontSize(12);
    textFragment1.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
    // Establecer rotación
    textFragment1.getTextState().setRotation(45);

    // Crear fragmento de texto
    TextFragment textFragment2 = new TextFragment("texto principal");
    // Establecer propiedades del texto
    textFragment2.getTextState().setFontSize(12);
    textFragment2.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));

    // Crear fragmento de texto
    TextFragment textFragment3 = new TextFragment("otro texto rotado");
    // Establecer propiedades del texto
    textFragment3.getTextState().setFontSize(12);
    textFragment3.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
    // Establecer rotación
    textFragment3.getTextState().setRotation(-45);

    // Agregar los fragmentos de texto al párrafo
    paragraph.appendLine(textFragment1);
    paragraph.appendLine(textFragment2);
    paragraph.appendLine(textFragment3);
    // Crear objeto TextBuilder
    TextBuilder textBuilder = new TextBuilder(pdfPage);
    // Agregar el párrafo de texto a la página PDF
    textBuilder.appendParagraph(paragraph);
    // Guardar documento
    pdfDocument.save(_dataDir + "TextFragmentTests_Rotated2_out.pdf");
}

Implementar Rotación usando TextFragment y Page.Paragraphs

public static void ImplementRotationUsingTextFragmentAndPageParagraphs() {
    // Inicializar objeto de documento
    Document pdfDocument = new Document();
    // Obtener página particular
    Page pdfPage = (Page) pdfDocument.getPages().add();
    // Crear fragmento de texto
    TextFragment textFragment1 = new TextFragment("texto principal");
    // Establecer propiedades del texto
    textFragment1.getTextState().setFontSize(12);
    textFragment1.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));

    // Crear fragmento de texto
    TextFragment textFragment2 = new TextFragment("texto rotado");

    // Establecer propiedades del texto
    textFragment2.getTextState().setFontSize(12);
    textFragment2.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));

    // Establecer rotación
    textFragment2.getTextState().setRotation(315);

    // Crear fragmento de texto
    TextFragment textFragment3 = new TextFragment("texto rotado");
    // Establecer propiedades del texto
    textFragment3.getTextState().setFontSize(12);
    textFragment3.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));

    // Establecer rotación
    textFragment3.getTextState().setRotation(270);
    pdfPage.getParagraphs().add(textFragment1);
    pdfPage.getParagraphs().add(textFragment2);
    pdfPage.getParagraphs().add(textFragment3);

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

Implementar Rotación usando TextParagraph y TextBuilder (Todo el Párrafo Rotado)

public static void ImplementRotationUsingTextParagraphAndTextBuilder() {

    // Inicializar objeto documento
    Document pdfDocument = new Document();
    // Obtener página en particular
    Page pdfPage = pdfDocument.getPages().add();
    for (int i = 0; i < 4; i++) {
        TextParagraph paragraph = new TextParagraph();
        paragraph.setPosition(new Position(200, 600));
        // Especificar rotación
        paragraph.setRotation(i * 90 + 45);
        // Crear fragmento de texto
        TextFragment textFragment1 = new TextFragment("Texto del Párrafo");
        // Crear fragmento de texto
        textFragment1.getTextState().setFontSize(12);
        textFragment1.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
        textFragment1.getTextState().setBackgroundColor(Color.getLightGray());
        textFragment1.getTextState().setForegroundColor(Color.getBlue());

        // Crear fragmento de texto
        TextFragment textFragment2 = new TextFragment("Segunda línea de texto");
        // Establecer propiedades del texto
        textFragment2.getTextState().setFontSize(12);
        textFragment2.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
        textFragment2.getTextState().setBackgroundColor(Color.getLightGray());
        textFragment2.getTextState().setForegroundColor(Color.getBlue());

        // Crear fragmento de texto
        TextFragment textFragment3 = new TextFragment("Y algo más de texto...");
        // Establecer propiedades del 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);
        // Crear objeto TextBuilder
        TextBuilder textBuilder = new TextBuilder(pdfPage);
        // Añadir el fragmento de texto a la página PDF
        textBuilder.appendParagraph(paragraph);
    }
    // Guardar documento
    pdfDocument.save(_dataDir + "TextFragmentTests_Rotated4_out.pdf");
}