iText - Lesen und Schreiben von PDF in Java

iText - PDF in Java lesen und schreiben

itext-logo

In diesem Artikel wird das Lesen und Schreiben von PDF-Dateien mit der Bibliothek voniText PDFbeschrieben.

pom.xml

        
            com.itextpdf
            itextpdf
            5.5.10
        

P.S Tested with iTextPdf 5.5.10

1. iText - PDF schreiben

Das Beispiel von iTextPdfWriterzum Schreiben von Inhalten in eine PDF-Datei.

PdfWriteExample.java

package com.techfou;

import com.itextpdf.text.*;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class PdfWriteExample {

    private static final String FILE_NAME = "/tmp/itext.pdf";

    public static void main(String[] args) {
        writeUsingIText();
    }

    private static void writeUsingIText() {

        Document document = new Document();

        try {

            PdfWriter.getInstance(document, new FileOutputStream(new File(FILE_NAME)));

            //open
            document.open();

            Paragraph p = new Paragraph();
            p.add("This is my paragraph 1");
            p.setAlignment(Element.ALIGN_CENTER);

            document.add(p);

            Paragraph p2 = new Paragraph();
            p2.add("This is my paragraph 2"); //no alignment

            document.add(p2);

            Font f = new Font();
            f.setStyle(Font.BOLD);
            f.setSize(8);

            document.add(new Paragraph("This is my paragraph 3", f));

            //close
            document.close();

            System.out.println("Done");

        } catch (FileNotFoundException | DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

Ausgabe wird eine neue PDF-Datei erstellt -/tmp/itext.pdf

itext-pdf-example

2. iText - PDF lesen

Das Beispiel von iTextPdfReaderzum Lesen der obigen PDF-Datei.

PdfReadExample.java

package com.techfou;

import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;

import java.io.IOException;

public class PdfReadExample {

    private static final String FILE_NAME = "/tmp/itext.pdf";

    public static void main(String[] args) {

        PdfReader reader;

        try {

            reader = new PdfReader("f:/itext.pdf");

            // pageNumber = 1
            String textFromPage = PdfTextExtractor.getTextFromPage(reader, 1);

            System.out.println(textFromPage);

            reader.close();

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}

Ausgabe

This is my paragraph 1
This is my paragraph 2
This is my paragraph 3

3. Talk

Der obige Code verwendet zwei Hauptklassen -PdfWriter undPdfReader. Wie der Name schon sagt, bilden diese Klassen die Grundlage für das Lesen und Schreiben eines PDFs. Das Objekt vonDocumentist im Grunde eine PDF-Datei, die adressiert wird. Paragraph ist ein Inhaltstyp, der in das PDF geschrieben werden kann. Andere mögliche Inhaltstypen umfassenAnchor,Chapter,Section,List,PdfPTable usw. Alle diese Klassen helfen dabei, einen bestimmten Inhaltstyp gemäß den Anforderungen im PDF zu erstellen.

iText pdf ist die bequemste Bibliothek mit der neuesten Version, die HTML zu Pdf, Bild zu Pdf sowie QR-Codes unterstützt. Der einzige Nachteil der iText-PDF-Bibliothek besteht darin, dass die Arbeit damit komplex ist. Die Klassenstruktur ist schwer zu verstehen.