Szukaj…


Uwagi

W oryginalnym projekcie iText można było utworzyć obiekt Document wysokiego poziomu, a następnie pozwolić innym DocListener nasłuchiwać tego obiektu Document . Osiągnięto to poprzez użycie różnych PdfWriter piszących: PdfWriter , HTMLWriter i RtfWriter . Podczas korzystania z PdfWriter , PdfDocument został utworzony wewnętrznie. Ta klasa niskiego poziomu zajmowała się wszystkimi strukturami związanymi z plikami PDF. Mniej więcej tak samo było w przypadku innych formatów.

Z biegiem lat iText specjalizował się i stał się czystą biblioteką PDF. Tworzenie HTML i RTF zostało porzucone, dlatego nie było już konieczne tworzenie Document przed utworzeniem PdfWriter , ale musieliśmy trzymać się oryginalnej architektury, ponieważ nie byliśmy gotowi na złamanie API.

Z biegiem lat dodawaliśmy do iText coraz więcej funkcji PDF, a fakt, że PdfDocument był klasą do użytku wewnętrznego, stał się problematyczny. Zastosowaliśmy obejścia, abyśmy mogli wprowadzić nowe funkcje PDF należące do klasy PdfDocument aż do momentu, gdy osiągnęliśmy pułap tego, co uznaliśmy za akceptowalne jako obejścia.

Wtedy postanowiliśmy przepisać iText od podstaw i stworzyć zupełnie nową architekturę dla iText. Teraz mamy wyraźne rozróżnienie między PdfDocument (dla operacji niskiego poziomu) a Document (dla funkcji wysokiego poziomu). Nie musimy już otwierać dokumentu, a jeśli zastosujemy podejście „ spróbuj z zasobami” , nie musimy go nawet sami zamykać.

Chcieć wiedzieć więcej? Zdobądź bezpłatny ebook!

HelloWorld.java (iText 5)

Załóżmy, że chcemy stworzyć prosty dokument Hello World:

wprowadź opis zdjęcia tutaj

W iText 5 można to zrobić w następujący sposób:

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();
}

Źródło: developers.itextpdf.com

HelloWorld1.java i HelloWorld2.java (iText 7)

Załóżmy, że chcieliśmy stworzyć prosty dokument Hello World:

wprowadź opis zdjęcia tutaj

W iText 7 możemy to zrobić w następujący sposób:

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();
}

Lub możemy to zrobić w ten sposób:

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!"));
    }
}

Źródło: developers.itextpdf.com i samouczek iText 7: Building Blocks .



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow