Aspose.PDF FOSS cho Java là một thư viện Java được cấp phép MIT để tạo và làm việc với tài liệu PDF. Nó cung cấp một lớp Document toàn diện làm điểm vào trung tâm, cùng với việc bao phủ đầy đủ các chú thích, trường biểu mẫu tương tác, thao tác trang, siêu dữ liệu và xác thực tuân thủ PDF/A.
Thư viện cung cấp 527 lớp bao phủ toàn bộ đặc tả PDF: cấu trúc tài liệu qua Document, Page, và PageCollection; chú thích thông qua phân cấp Annotation (bao gồm WidgetAnnotation, FreeTextAnnotation, và HighlightAnnotation); biểu mẫu tương tác với Form, ButtonField, CheckboxField, và RadioButtonField; việc render trang qua BmpDevice; và kiểm tra tuân thủ PDF/A thông qua ActionRules và ActionFixes. Mã hoá được cung cấp qua AESCipher ở chế độ CBC.
Thêm Aspose.PDF FOSS vào dự án Maven của bạn bằng cách sử dụng groupId org.aspose và artifactId aspose-pdf. Thư viện yêu cầu Java 11 hoặc mới hơn và được cấp phép MIT. Đối với các tính năng doanh nghiệp và hỗ trợ, xem Aspose.PDF for Java — Enterprise Product.
Document để tạo tài liệu PDF mới. Các tài liệu hiện có có thể được truy cập thông qua các hàm khởi tạo Document(filePath) hoặc Document(stream).PageCollection. Mỗi Page cung cấp MediaBox, CropBox, xoay, tài nguyên và các toán tử nội dung.DocumentInfo và XmpMetadata.getParser(), getCatalog() và getTrailer().getEmbeddedFiles().Document và điền nội dung vào các trang.PdfFileEditor và Page API.Annotation là cơ sở cho tất cả các chú thích; các kiểu cụ thể bao gồm WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation và UnderlineAnnotation.Document.getForm() để liệt kê hoặc tạo các thể hiện ButtonField, CheckboxField, và RadioButtonField instances.AppearanceCharacteristics — màu viền, nền, xoay, và chú thích.FormEditor và FormElement để thao tác biểu mẫu ở mức cao hơn.ActionRules và ActionFixes.AESCipher sử dụng chế độ CBC (AESCipher.encrypt(key, data) và AESCipher.decrypt(key, data)).Artifact và ArtifactCollection.PdfFileEditor.resizeContents() và ContentsResizeParameters.AnnotationRules và ActionRules.AESCipher để mã hoá các phần dữ liệu được nhúng trong các luồng tài liệu.Artifact đại diện cho dấu nước và trang trí trang.ActionFixes và AnnotationFixes để làm cho các tài liệu hiện có đáp ứng tiêu chuẩn lưu trữ PDF/A-1b.Tạo một tài liệu mới, thêm một trang và đính kèm một chú thích widget với kiểu dáng.
try (Document doc = new Document()) {
Page page = doc.getPages().add();
WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
w.getCharacteristics().setCaption("Submit");
page.getAnnotations().add(w);
doc.save("output.pdf");
}
```java
try (Document doc = new Document()) {
Page page = doc.getPages().add();
WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
w.getCharacteristics().setCaption("Submit");
page.getAnnotations().add(w);
doc.save("output.pdf");
}
Thêm một nhóm nút radio vào biểu mẫu tài liệu và chọn giá trị một cách lập trình.
try (Document doc = new Document()) {
Page page = doc.getPages().add();
RadioButtonField radio = new RadioButtonField(page);
radio.setPartialName("choice");
radio.addOption("Option1", new Rectangle(50, 50, 70, 70));
radio.addOption("Option2", new Rectangle(50, 80, 70, 100));
doc.getForm().add(radio, 1);
radio.setValue("Option2");
doc.save("form.pdf");
}
Truy cập tài liệu hiện có và đọc kích thước media box của trang đầu tiên.
try (Document doc = new Document("input.pdf")) {
double width = doc.getPages().get(1).getMediaBox().getWidth();
double height = doc.getPages().get(1).getMediaBox().getHeight();
System.out.println("Page size: " + width + " x " + height);
}