Introdução
Aspose.PDF FOSS for Java is an MIT-licensed Java library for creating and manipulating Documentos PDF. Está disponível no GitHub sob a licença MIT e não requer chave de API A biblioteca expõe 527 classes que cobrem o PDF completo. especificação, desde a estrutura do documento até as anotações, os formulários interativos e o renderização de páginas;, e operações criptográficas.
A biblioteca é construída em torno do Document classe, que é o ponto de entrada central para a todas as operações PDF. Criar um novo documento, acessar páginas via PageCollection, leitura de metadados através da DocumentInfo, ou navegando no catálogo através do getCatalog() e a) getTrailer() tudo começa com um Document - Por exemplo.
Começo rápido
Adicione a dependência de Maven ao seu pom.xml:
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>0.1.0-alpha</version>
</dependency>
A biblioteca organiza todas as classes de API públicas em três pacotes. Adicione essas declarações de pacote a qualquer arquivo fonte do Java que use a API:
// Core API — Document, Page, Annotation, Form, etc.
org.aspose.pdf.*
// Annotation subclasses
org.aspose.pdf.annotations.*
// Facade classes — PdfFileEditor, PdfAnnotationEditor, etc.
org.aspose.pdf.facades.*
Aspose.PDF FOSS for Java requires Java 11 or later. The source code and issue tracker estão disponíveis em: https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.
Começar a Fazer
Criar e salvar um documento mínimo para verificar a configuração:
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
doc.save("output.pdf");
System.out.println("Pages: " + pages.getCount());
}
A Comissão Document constructor de classe aceita um caminho ou fluxo de arquivo para acessar o existente arquivos, ou pode ser chamado sem argumentos para criar um documento em branco. As páginas são gerenciadas através de: PageCollection, acessível através de: Document.getPages().Cada um . Page expõe a sua geometria via getMediaBox(), getCropBox(), e getRotate(), e dá acesso a: recursos, operadores de conteúdo e anotações.
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
// page.getMediaBox() -> Rectangle with width/height
// page.getAnnotations() -> AnnotationCollection
doc.save("output.pdf");
}
A Comissão PdfFileEditor classe fornece concatenate() para a fusão de vários documentos e resizeContents() com: ContentsResizeParameters para ajustar o layout de conteúdo dentro do limites de página existentes.
Anotativas
Aspose.PDF FOSS for Java implements the full PDF annotation hierarchy rooted at the abstracto Annotation Os tipos de anotações concretas incluem: WidgetAnnotation para o Controles de formulário, FreeTextAnnotation para chamadas de texto, HighlightAnnotation e a) UnderlineAnnotation para o valor de referência, e CircleAnnotation e a) CaretAnnotation para o notas gráficas.
Cada anotação está associada a um Page e a Rectangle Definir a sua localização. As propriedades visuais são controladas através de: AppearanceCharacteristics, que expõe a setBorder(), setBackground(), setRotate(), e setCaption() Métodos de avaliação. são adicionados a uma página através de: page.getAnnotations().add(annotation).
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.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("annotated.pdf");
}
Campos de formulário interativos
A Comissão Form classe, acessível através de: Document.getForm(), gerencia todos os campos do AcroForm. biblioteca fornece ButtonField, CheckboxField, RadioButtonField, TextBoxField, ComboBoxField, e ListBoxField para a construção de formulários preenchidos. FormEditor é um classe de fachada para trabalhar com campos de formulário num documento vinculado.
Os grupos de botões de rádio são criados com: RadioButtonField, que aceita uma página e suporta o addOption() A partir de agora, a Comissão tem em conta o facto de que os Estados-Membros têm um papel importante na política da concorrência. Rectangle para a sua visão visual. A localização. setValue() O método selecciona programaticamente uma opção.
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
RadioButtonField radio = new RadioButtonField(page);
radio.setPartialName("answer");
radio.addOption("Yes", new Rectangle(50, 50, 70, 70));
radio.addOption("No", new Rectangle(50, 80, 70, 100));
doc.getForm().add(radio, 1);
radio.setValue("Yes");
doc.save("form.pdf");
}
Segurança: Encriptação AES
A Comissão AESCipher classe implementa criptografia AES no modo CBC para encriptação e decifração Artigos de dados em bytes incorporados a documentos PDF. AESCipher.encrypt(key, data) Retorna o valor de: texto cifrado, e AESCipher.decrypt(key, data) recupera o texto simples original. Para controlo IV explícito, encryptWithIV(key, iv, plaintext) e a) decryptWithIV(key, iv, cipherText) fornecer uma operação determinística.
PDF/A Validação da conformidade
A biblioteca inclui: ActionRules e a) ActionFixes para a validação da conformidade PDF/A, e correcção. ActionRules.validate() Verificações de ações proibidas no catálogo, na página e Entradas de widget. ActionFixes fornece métodos tais como: removeCatalogAA(), removePageAA(), e removeWidgetAA() corrigir dicionários de acções não conformes. Da mesma forma, AnnotationRules e a) AnnotationFixes Manter a conformidade das anotações.
Artefatos: cabeçalhos, pés de página e marcas d’água
A Comissão Artifact modelos de classe, decorações de páginas como cabeçalhos, pés de página, marcas d’água e imagens de fundo. ArtifactCollection, acessível através de recursos da página, permite a enumeração E a remoção de objetos artefatos. Iterando page.getArtifacts() e chamando-me. ArtifactCollection.delete(artifact) Remove artefatos específicos sem modificar fluxos de conteúdo documentados diretamente.
Render de página
A Comissão BmpDevice classe renderiza páginas PDF diretamente para arquivos de imagem BMP usando process(page, outputPath). Isto é útil para geração de miniaturas, visualização do documento, ou canais de processamento baseados em imagens.