iText - чтение и запись PDF на Java

iText - чтение и запись PDF на Java

itext-logo

В этой статье рассказывается о чтении и записи PDF с использованием библиотекиiText PDF.

pom.xml

        
            com.itextpdf
            itextpdf
            5.5.10
        

P.S Tested with iTextPdf 5.5.10

1. iText - Написать PDF

Пример iTextPdfWriter для записи содержимого в файл 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();
        }

    }
}

На выходе создается новый PDF-файл -/tmp/itext.pdf

itext-pdf-example

2. iText - читать PDF

Пример iTextPdfReader для чтения вышеуказанного файла PDF.

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

    }

}

Выход

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

3. Talk

В приведенном выше коде используются 2 основных класса -PdfWriter иPdfReader. Как указано в названии, эти классы обеспечивают основу для чтения и записи PDF-файлов. ОбъектDocument - это, по сути, обрабатываемый файл Pdf. Paragraph - это тип контента, который можно записать в PDF. Другие возможные типы содержимого включаютAnchor,Chapter,Section,List,PdfPTable и т. Д. Все эти классы помогают создавать определенный тип контента в соответствии с требованиями в PDF.

iText pdf - самая удобная библиотека, последняя версия которой поддерживает HTML в Pdf, изображение в Pdf, а также QR-коды. Единственный недостаток библиотеки iText pdf в том, что с ней сложно работать. Структуру классов сложно понять.

Note
БольшеiText PDF examples