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