Buscar..


Observaciones

Crear un documento en el que tiene que cambiar entre estilos con frecuencia tiende a ser tedioso en iText 5. Necesita crear muchos objetos Chunk y siempre debe hacer un intercambio entre aplicar los estilos directamente a cada Chunk nuevo o crear un método auxiliar que crea el Chunk para ti.

Lo que arreglamos en iText 7:

Ahora es posible encadenar métodos. setFont() , setFontSize() , addStyle() y otros métodos devuelven el objeto en el que se invocan. Agregar un Paragraph involucra diferentes estilos ahora se puede hacer en una línea:

document.add(
    new Paragraph()
        .add("In this example, named ")
        .add(new Text("HelloWorldStyles").addStyle(style))
        .add(", we experiment with some text in ")
        .add(new Text("code style").addStyle(style))
        .add("."));

Al usar el objeto Style , ahora también puede aplicar diferentes propiedades (fuente, color de fuente, color de fondo, tamaño de fuente, ...) de una sola vez con el método addStyle() .

¿Quiere saber más?

Lea Introducción a la clase PdfFont, que es el capítulo 1 del tutorial de iText 7: Building Blocks . ¡Consigue el ebook gratis!

HelloWorldStyles.java (iText 5)

En este ejemplo de iText 5, necesitamos cambiar entre diferentes estilos en el mismo documento:

introduzca la descripción de la imagen aquí

La mejor manera de hacer esto en iText 5, es crear un método de conveniencia que cree un Chunk en el estilo que se debe usar con frecuencia; ver el método createBgChunk() :

public Chunk createBgChunk(String s, Font font) {
    Chunk chunk = new Chunk(s, font);
    chunk.setBackground(BaseColor.LIGHT_GRAY);
    return chunk;
}

Ahora podemos usar este método en el código que crea el PDF:

public void createPdf(String dest)
throws DocumentException, IOException {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream(dest));
    document.open();
    Font code = new Font(FontFamily.COURIER, 12, Font.NORMAL, BaseColor.RED);
    Paragraph p = new Paragraph("In this example, named ");
    p.add(createBgChunk("HelloWorldStyles", code));
    p.add(", we experiment with some text in ");
    p.add(createBgChunk("code style", code));
    p.add(".");
    document.add(p);
    document.close();
}

Fuente: developers.itextpdf.com

HelloWorldStyles.java (iText 7)

En este ejemplo de iText 7, necesitamos cambiar entre diferentes estilos en el mismo documento:

introduzca la descripción de la imagen aquí

La mejor manera de lograr esto en iText 7, es crear un objeto de Style y aplicar ese Style a un objeto de Text :

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    PdfFont code = PdfFontFactory.createFont(FontConstants.COURIER);
    Style style = new Style()
        .setFont(code)
        .setFontSize(12)
        .setFontColor(Color.RED)
        .setBackgroundColor(Color.LIGHT_GRAY);
    try (Document document = new Document(pdf)) {
        document.add(
            new Paragraph()
                .add("In this example, named ")
                .add(new Text("HelloWorldStyles").addStyle(style))
                .add(", we experiment with some text in ")
                .add(new Text("code style").addStyle(style))
                .add("."));
    }
}

Fuente: developers.itextpdf.com y el tutorial de iText 7: Building Blocks .



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow