1. Produtos
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for Java

Aspose.PDF FOSS para Java

Crie e manipule documentos PDF a partir de Java — com anotações, campos de formulário, manipulação de páginas e conformidade PDF/A. Licença MIT.

Biblioteca Java gratuita com licença MIT para criação e manipulação de PDF

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.

Estrutura de Documento e Gerenciamento de Páginas

  • Document API: Use a classe Document para criar novos documentos PDF. Documentos existentes podem ser acessados via construtores Document(filePath) ou Document(stream).
  • Gerenciamento de páginas: Adicionar, acessar e modificar páginas via PageCollection. Cada Page expõe MediaBox, CropBox, rotação, recursos e operadores de conteúdo.
  • Metadata: Leia e escreva metadados de documento via DocumentInfo e XmpMetadata.
  • Estrutura PDF: Acesse os objetos PDF subjacentes através de getParser(), getCatalog() e getTrailer().
  • Arquivos incorporados: Gerencie coleções de arquivos incorporados com getEmbeddedFiles().

Cenários Comuns de Processamento de Documentos

  • Geração de PDF: Crie documentos programaticamente criando um Document e preenchendo páginas.
  • Análise de documento: Acesse arquivos existentes para inspeção de metadados ou enumeração de campos de formulário.
  • Manipulação de páginas: Redimensionar, girar ou reordenar páginas usando PdfFileEditor e a API Page.
  • Batch workflows: Aplique transformações consistentes em vários documentos em pipelines do lado do servidor.

Anotações e Campos de Formulário

  • Hierarquia de anotação: A classe abstrata Annotation é a base para todas as anotações; tipos concretos incluem WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation e UnderlineAnnotation.
  • Formulários interativos: Acesse o formulário do documento via Document.getForm() para enumerar ou criar ButtonField, CheckboxField e RadioButtonField instâncias.
  • Aparência do widget: Controle as propriedades visuais através de AppearanceCharacteristics — cor da borda, plano de fundo, rotação e legendas.
  • Edição de formulário: Use FormEditor e FormElement para manipulação de formulário em nível superior.

Revisão de Documentos e Colaboração

  • Markup annotations: Adicione anotações de realce, sublinhado ou texto livre a documentos para fluxos de trabalho de revisão.
  • Formulários interativos: Crie documentos preenchíveis com botões de opção, caixas de seleção e botões de comando para captura de dados.
  • Extração de dados de formulário: Leia os valores dos campos de formulário enviados para pipelines do lado do servidor.
  • Conformidade de arquivamento: Valide e corrija documentos para arquivamento de longo prazo usando ActionRules e ActionFixes.

Segurança e Operações de Conteúdo

  • Criptografia AES: Criptografar e descriptografar arrays de bytes de dados com AESCipher usando o modo CBC (AESCipher.encrypt(key, data) e AESCipher.decrypt(key, data)).
  • Gerenciamento de artefatos: Identifique e manipule cabeçalhos, rodapés, marcas d’água e imagens de fundo via as APIs Artifact e ArtifactCollection.
  • Redimensionamento de conteúdo: Ajuste o layout do conteúdo da página com PdfFileEditor.resizeContents() e ContentsResizeParameters.
  • Validação de conformidade: Valide as regras de anotação e ação contra os padrões PDF/A usando AnnotationRules e ActionRules.

Casos de Uso de Segurança de Documentos

  • Payloads criptografados: Use AESCipher para criptografar seções de dados incorporadas em fluxos de documentos.
  • Proteção de documento: Aplique configurações de segurança para controle de acesso em fluxos de trabalho de conformidade.
  • Watermarking: Detectar e gerenciar objetos Artifact que representam marcas d’água e decorações de página.
  • Conformidade de arquivamento: Execute ActionFixes e AnnotationFixes para fazer com que os documentos existentes atendam aos padrões de arquivamento PDF/A-1b.

Criar um Documento com Anotação de Widget

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");
}

Criar um Formulário com Botões de Rádio

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");
}

Inspecionar as Dimensões da Página do Documento

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);
}
  

Recursos de Suporte e Aprendizado

 Português