Buscar..


Observaciones

El código para convertir un archivo de texto plano en un documento PDF es bastante simple, ya sea que use iText 5 o iText 7. En iText 7, tiene la ventaja de que puede definir la alineación en el nivel del documento. En iText 5, debe establecer la alineación para cada objeto de Paragraph separado.

Para comprender la diferencia real entre iText 5 y iText 7 en este par de ejemplos, tenemos que echar un vistazo al PDF resultante. En iText 5, terminamos con 35 páginas de texto. En iText 7, tenemos el mismo texto distribuido en 38 páginas.

El texto es más fácil de leer cuando lo crea iText 7 porque se utilizan diferentes valores predeterminados al crear el diseño. Podría obtener el mismo resultado del código iText 5, pero luego tendría que cambiar algunos valores con respecto al espaciado.

En iText 7, los valores predeterminados se eligieron en base a 16 años de experiencia con iText. De esta manera, obtienes un mejor resultado con menos código.

¿Quiere saber más?

Lea Trabajar con el elemento raíz, que es el capítulo 5 en el tutorial de iText 7: Building Blocks . ¡Consigue el ebook gratis!

Text2Pdf.java (iText 5)

Supongamos que tenemos el siguiente archivo de texto: jekyll_hyde.txt

¿Cómo lo convertimos a un PDF que se parece a esto?

introduzca la descripción de la imagen aquí

Cuando usamos iText 5, usaríamos el siguiente código:

public void createPdf(String dest)
throws DocumentException, IOException {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream(dest));
    document.open();
    BufferedReader br = new BufferedReader(new FileReader(TEXT));
    String line;
    Paragraph p;
    Font normal = new Font(FontFamily.TIMES_ROMAN, 12);
    Font bold = new Font(FontFamily.TIMES_ROMAN, 12, Font.BOLD);
    boolean title = true;
    while ((line = br.readLine()) != null) {
        p = new Paragraph(line, title ? bold : normal);
        p.setAlignment(Element.ALIGN_JUSTIFIED);
        title = line.isEmpty();
        document.add(p);
    }
    document.close();
}

Fuente: developers.itextpdf.com

Text2Pdf.java (iText 7)

Supongamos que tiene el siguiente archivo de texto: jekyll_hyde.txt

¿Cómo lo convertimos a un PDF que se parece a esto?

introduzca la descripción de la imagen aquí

Cuando usamos iText 7, necesitaríamos el siguiente código:

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    Document document = new Document(pdf)
        .setTextAlignment(TextAlignment.JUSTIFIED);
    BufferedReader br = new BufferedReader(new FileReader(TEXT));
    String line;
    PdfFont normal = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
    PdfFont bold = PdfFontFactory.createFont(FontConstants.TIMES_BOLD);
    boolean title = true;
    while ((line = br.readLine()) != null) {
        document.add(new Paragraph(line).setFont(title ? bold : normal));
        title = line.isEmpty();
    }
    document.close();
}

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