Buscar..


Observaciones

En el diseño original de iText, fue posible crear un objeto de Document alto nivel y luego tener diferentes objetos DocListener que escuchen ese objeto de Document . Esto se logró usando diferentes escritores: un PdfWriter , un HTMLWriter y un RtfWriter . Cuando se utiliza un PdfWriter , un PdfDocument se creó internamente. Esta clase de bajo nivel se encargó de todas las estructuras relacionadas con PDF. Más o menos lo mismo sucedió con los otros formatos.

A lo largo de los años, iText se especializó y se convirtió en una biblioteca de PDF pura. La creación de HTML y RTF se abandonó, por lo que ya no era necesario crear un Document antes de crear un PdfWriter , pero tuvimos que mantener la arquitectura original porque no estábamos listos para romper la API.

A lo largo de los años, agregamos más y más funciones de PDF a iText, y el hecho de que PdfDocument fuera una clase para uso interno solo se volvió problemático. Utilizamos soluciones alternativas para poder introducir nuevas funciones de PDF que pertenecían a la clase PdfDocument hasta el punto en que alcanzamos el límite de lo que consideramos aceptable como soluciones alternativas.

Fue entonces cuando decidimos reescribir iText desde cero y crear una arquitectura completamente nueva para iText. Ahora tenemos una clara distinción entre el PdfDocument (para operaciones de bajo nivel) y el Document (para funcionalidad de alto nivel). Ya no tenemos que abrir el documento, y si usamos el enfoque de probar con recursos , ni siquiera tenemos que cerrarlos nosotros mismos.

¿Quiere saber más? ¡Consigue el ebook gratis!

HelloWorld.java (iText 5)

Supongamos que queremos crear un documento simple de Hello World:

introduzca la descripción de la imagen aquí

En iText 5, esto se haría así:

public void createPdf(String dest)
    throws DocumentException, IOException {
    Document document = new Document();
    PdfWriter.getInstance(
        document, new FileOutputStream(dest));
    document.open();
    document.add(new Paragraph("Hello World!"));
    document.close();
}

Fuente: developers.itextpdf.com

HelloWorld1.java y HelloWorld2.java (iText 7)

Supongamos que queremos crear un documento simple de Hello World:

introduzca la descripción de la imagen aquí

En iText 7, podríamos hacer esto así:

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    Document document = new Document(pdf);
    document.add(new Paragraph("Hello World!"));
    document.close();
}

O incluso podríamos hacerlo así:

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    try (Document document = new Document(pdf)) {
        document.add(new Paragraph("Hello World!"));
    }
}

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