Thư viện Java để quản lý tài liệu PDF
API Java nguồn mở để tạo, chỉnh sửa và thao tác tệp PDF từ các ứng dụng của riêng bạn.
OpenPDF là một thư viện PDF mã nguồn mở dành cho các nhà phát triển Java. Nó cho phép tạo và sửa đổi các tệp PDF từ các ứng dụng Java mà không cần bất kỳ phụ thuộc bên ngoài nào. OpenPDF được cấp phép với giấy phép LGPL và MPL và là một nhánh của iText phiên bản 4.
PDF là một trong những định dạng tài liệu được yêu thích trên Thế giới và vẫn rất hữu ích. API OpenPDF hỗ trợ một số tính năng quan trọng, chẳng hạn như tạo và sửa đổi tài liệu PDF, thêm hình ảnh vào PDF, chèn các trang mới vào tệp PDF hiện có, tạo đoạn văn, thêm đầu trang và chân trang, tạo TOC, chỉnh sửa nội dung và nhiều hơn nữa.
Bắt đầu với OpenPDF
Java 8 trở lên là bắt buộc để sử dụng thư viện OpenPDF. Tất cả các phiên bản Java từ 8 đến Java 12 đã được thử nghiệm để hoạt động. Nó sẽ biên dịch các nguồn Java và đóng gói các lớp nhị phân thành các gói jar theo mặc định.
Sự phụ thuộc của OpenPDF Maven
<dependency>
<groupId>com.github.librepdf</groupId>
<artifactId>openpdf</artifactId>
<version>1.3.11</version>
</dependency>
Tạo và chỉnh sửa tệp PDF qua Java API
OpenPDF cung cấp chức năng tạo tài liệu PDF cũng như các sửa đổi từ các ứng dụng Java. Các nhà phát triển phần mềm có thể dễ dàng tạo các tài liệu PDF với nội dung và hình ảnh. Để tạo một tài liệu mới, trước hết, bạn cần tạo một đối tượng tài liệu, sau đó tạo một trình viết nghe tài liệu và hướng một luồng PDF vào tệp. Khi tài liệu được tạo, bạn có thể dễ dàng thêm đoạn văn, thêm trang mới và chèn hình ảnh một cách dễ dàng.
Tạo tài liệu PDF - Java
// Intialize Document object
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream("FileFormat.pdf"));
// Open document
document.open();
// Add pargraph
document.add(new Paragraph("FileFormat Developer Guide"));
// Close document
document.close();
Chèn hình ảnh vào tài liệu PDF qua Java
OpenPDF cho phép các lập trình viên Java chèn hình ảnh vào tài liệu PDF bên trong các ứng dụng Java của riêng họ. Hình ảnh luôn tăng thêm giá trị cho phần nội dung. Để chèn hình ảnh, bạn cần cung cấp tên và vị trí hình ảnh, sau đó bằng cách gọi đối tượng tài liệu, bạn có thể mở tài liệu và thêm hình ảnh trên trang hoặc vị trí mong muốn. Sau khi hoàn tất, bạn chỉ cần đóng tài liệu để thực hiện các thay đổi.
Thêm hình ảnh trong PDF - Java
// Intialize Document object
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream("output.pdf"));
// Open document
document.open();
Image jpg = Image.getInstance("sample.jpg");
document.add(jpg);
// Close document
document.close();
Thêm danh sách vào tài liệu PDF
API OpenPDF tạo điều kiện cho các nhà phát triển Java thêm danh sách vào tài liệu PDF. Bạn có thể tạo một danh sách và sau đó thêm các mục danh sách vào PDF một cách dễ dàng. Bạn cũng có thể chuyển một biểu tượng để đánh dấu các mục trong danh sách (ký tự Unicode). Bạn cũng có thể chọn một danh sách được đánh số hoặc có chữ. Ngoài ra còn có các lớp chuyên biệt về chữ cái La Mã và chữ cái Hy Lạp.
Thêm Dấu trang vào Danh sách trong PDF qua Java
Document document = new Document(PageSize.A4);
PdfWriter instance = PdfWriter.getInstance(document, new FileOutputStream("out.pdf"));
instance.setViewerPreferences(PdfWriter.PageModeUseOutlines);
document.open();
List list = new List();
list.add(new ListItem(new Chunk("ABC").setLocalDestination("dest1")));
list.add(new ListItem(new Chunk("XYZ").setLocalDestination("dest2")));
document.add(list);
// add outline items
PdfOutline root = instance.getDirectContent().getRootOutline();
new PdfOutline(root, PdfAction.gotoLocalPage("dest1", false), "abc-item");
new PdfOutline(root, PdfAction.gotoLocalPage("dest2", false), "xyz-item");
document.close();
Thêm Đầu trang và Chân trang vào Tài liệu PDF qua Java
Đầu trang và chân trang có thể chứa thông tin quan trọng về tài liệu hoặc dữ liệu để giúp sắp xếp tài liệu dài hơn và dễ đọc hơn. Đầu trang và chân trang thường bao gồm thông tin bổ sung như số trang, ngày tháng, tên tác giả và chú thích cuối trang, v.v. API OpenPDF cho phép các nhà phát triển Java thêm đầu trang và chân trang vào tài liệu PDF của họ chỉ với một vài dòng mã.
Cách bắt đầu đầu trang và chân trang từ trang đầu tiên qua Java
Document document = new Document();
document.setPageSize(PageSize.A7.rotate()); // just to make output smaller
document.setMargins(15f, 15f, 24f, 20f);
HeaderFooter header = new HeaderFooter(new Phrase("This is a header."), false);
HeaderFooter footer = new HeaderFooter(new Phrase("This is a footer on page "), new Phrase("."));
document.setHeader(header);
document.setFooter(footer);
document.open(); // only open the document after header/footer have been set
document.add(new Paragraph("Hello World"));
document.add(Chunk.NEXTPAGE);
document.add(new Paragraph("Hello new page."));