iText - Lecture et écriture de PDF en Java

iText - Lire et écrire des PDF en Java

itext-logo

Cet article traite de la lecture et de l'écriture de PDF à l'aide de la bibliothèqueiText PDF.

pom.xml

        
            com.itextpdf
            itextpdf
            5.5.10
        

P.S Tested with iTextPdf 5.5.10

1. iText - Ecrire un PDF

Exemple d'iTextPdfWriterpour écrire du contenu dans un fichier PDF.

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

    }
}

Sortie, un nouveau fichier PDF est créé -/tmp/itext.pdf

itext-pdf-example

2. iText - Lire le PDF

Exemple de iTextPdfReaderpour lire le fichier PDF ci-dessus.

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

    }

}

Sortie

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

3. Talk

Le code ci-dessus utilise 2 classes principales -PdfWriter etPdfReader. Comme l'indique le nom, ces classes fournissent la base pour lire et écrire un pdf. L'objetDocument est essentiellement un fichier Pdf qui est adressé. Paragraph est un type de contenu qui peut être écrit dans le Pdf. Les autres types de contenu possibles incluentAnchor,Chapter,Section,List,PdfPTable etc. Toutes ces classes aident à créer un type spécifique de contenu selon l'exigence du pdf.

iText pdf est la bibliothèque la plus pratique avec sa dernière version prenant en charge HTML vers Pdf, Image vers Pdf ainsi que les codes QR. Le seul inconvénient de la bibliothèque pdf iText est qu'elle est complexe à utiliser. La structure de la classe est difficile à comprendre.

Note
Plus deiText PDF examples