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

В этой статье рассказывается о чтении и записи 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

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