O Aspose.PDF FOSS para Java é uma biblioteca Java licenciada sob MIT para criar e trabalhar com documentos PDF. Ele fornece uma classe Document abrangente como ponto de entrada central, juntamente com cobertura completa de anotações, campos de formulário interativos, manipulação de páginas, metadados e validação de conformidade PDF/A.
A biblioteca expõe 527 classes que cobrem toda a especificação PDF: estrutura de documento via Document, Page e PageCollection; anotações através da hierarquia Annotation (incluindo WidgetAnnotation, FreeTextAnnotation e HighlightAnnotation); formulários interativos com Form, ButtonField, CheckboxField e RadioButtonField; renderização de página via BmpDevice; e verificação de conformidade PDF/A através de ActionRules e ActionFixes. A criptografia é fornecida via AESCipher no modo CBC.
Adicione Aspose.PDF FOSS ao seu projeto Maven usando groupId org.aspose e artifactId aspose-pdf. A biblioteca requer Java 11 ou posterior e é totalmente licenciado sob MIT. Para recursos e suporte empresariais, veja Aspose.PDF for Java — Enterprise Product.
Document para criar novos documentos PDF. Documentos existentes podem ser acessados via construtores Document(filePath) ou Document(stream).PageCollection. Cada Page expõe MediaBox, CropBox, rotação, recursos e operadores de conteúdo.DocumentInfo e XmpMetadata.getParser(), getCatalog() e getTrailer().getEmbeddedFiles().Document e preenchendo páginas.PdfFileEditor e a API Page.Annotation é a base para todas as anotações; tipos concretos incluem WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation e UnderlineAnnotation.Document.getForm() para enumerar ou criar ButtonField, CheckboxField e RadioButtonField instâncias.AppearanceCharacteristics — cor da borda, plano de fundo, rotação e legendas.FormEditor e FormElement para manipulação de formulário em nível superior.ActionRules e ActionFixes.AESCipher usando o modo CBC (AESCipher.encrypt(key, data) e AESCipher.decrypt(key, data)).Artifact e ArtifactCollection.PdfFileEditor.resizeContents() e ContentsResizeParameters.AnnotationRules e ActionRules.AESCipher para criptografar seções de dados incorporadas em fluxos de documentos.Artifact que representam marcas d’água e decorações de página.ActionFixes e AnnotationFixes para fazer com que os documentos existentes atendam aos padrões de arquivamento PDF/A-1b.Crie um novo documento, adicione uma página e anexe uma anotação de widget com estilo.
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");
}
Adicione um grupo de botões de opção a um formulário de documento e selecione um valor programaticamente.
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");
}
Acesse um documento existente e leia as dimensões da media box da primeira página.
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);
}