iText là một thư viện được tạo ra bởi Bruno Lowagie cho phép tạo, chỉnh sửa và đọc các file PDF. Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu cách sử dụng iText để thực hiện các thao tác cơ bản với file PDF.
Maven dependency
Để sử dụng iText chúng ta cần thêm dependency sau vào dự án maven:
<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.10</version> </dependency>
Cách ghi file PDF
Để ghi file PDF với iText chúng ta cần sử dụng PdfWriter
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(); } } }
Kết quả chúng ta sẽ có file PDF như sau
Cách đọc file PDF
Tương tự chúng ta sẽ cần dùng đến PdfReader được cung cấp bởi iText để đọc một file PDF
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(); } } }
Kết quả
This is my paragraph 1 This is my paragraph 2 This is my paragraph 3
Các class cơ bản trong iText
Qua các phần trên chúng ta có thể thấy PdfWriter
và PdfReader
là 2 class được sử dụng chính trong thư viện dùng để đọc, ghi file PDF. Bên cạnh đó một số class phụ trợ như:
Document
– là một object đại diện cho một file PDFParagraph
– là một loại nội dung có thể ghi vào file PDF, ngoài ra còn một số loại khác nhưAnchor
,Chapter
,Section
,List
,PdfPTable
tương ứng với những nội dung tương ứng như dạng bảng, danh sách v.v