Aspose.PDF FOSS за Java е MIT лицензирана Java библиотека за създаване и работа с PDF документи. Тя предоставя изчерпателен Document клас като централен входен пункт, заедно с пълно покритие на анотации, интерактивни полета за формуляри, манипулиране на страници, метаданни и проверка на съответствието с PDF/A.
Библиотеката предоставя 527 класа, обхващащи пълната PDF спецификация: структура на документа чрез Document, Page и PageCollection; анотации чрез йерархията Annotation (включително WidgetAnnotation, FreeTextAnnotation и HighlightAnnotation); интерактивни формуляри с Form, ButtonField, CheckboxField и RadioButtonField; рендериране на страници чрез BmpDevice; и проверка за съответствие с PDF/A чрез ActionRules и ActionFixes. Шифроването се предоставя чрез AESCipher в режим CBC.
Добавете Aspose.PDF FOSS към вашия Maven проект, като използвате groupId org.aspose и artifactId aspose-pdf. Библиотеката изисква Java 11 или по-нова и е напълно лицензирана под MIT. За корпоративни функции и поддръжка, вижте Aspose.PDF for Java — Enterprise Product.
Document, за да създавате нови PDF документи. Съществуващите документи могат да се достъпват чрез конструкторите Document(filePath) или Document(stream).PageCollection. Всеки Page разкрива MediaBox, CropBox, завъртане, ресурси и оператори за съдържание.DocumentInfo и XmpMetadata.getParser(), getCatalog() и getTrailer().getEmbeddedFiles().Document и попълвате страници.PdfFileEditor и Page API.Annotation е базов за всички анотации; конкретните типове включват WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation и UnderlineAnnotation.Document.getForm(), за да изброявате или създавате ButtonField, CheckboxField и RadioButtonField екземпляри.AppearanceCharacteristics — цвят на рамката, фон, завъртане и надписи.FormEditor и FormElement за манипулиране на формуляра на по-високо ниво.ActionRules и ActionFixes.AESCipher използвайки режим CBC (AESCipher.encrypt(key, data) и AESCipher.decrypt(key, data)).Artifact и ArtifactCollection APIs.PdfFileEditor.resizeContents() и ContentsResizeParameters.AnnotationRules и ActionRules.AESCipher, за да криптирате секции с данни, вградени в потоци на документи.Artifact обекти, представляващи водни знаци и декорации на страницата.ActionFixes и AnnotationFixes, за да направите съществуващите документи съвместими с архивните стандарти PDF/A-1b.Създайте нов документ, добавете страница и прикрепете анотация тип widget със стилизиране.
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");
}
Добавете група радиобутони към формуляр на документ и изберете стойност програмно.
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");
}
Достъпете съществуващ документ и прочетете размерите на медийната кутия на първата страница.
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);
}