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

Aspose.PDF FOSS for 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 MIT-Licenciada para Criação e Manipulação de PDFs

Aspose.PDF FOSS para Java é uma biblioteca Java licenciada sob MIT para criar e trabalhar com documentos PDF. Ela 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 do 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 licenciada sob MIT. Para recursos empresariais e suporte, veja Aspose.PDF for Java — Enterprise Product.

Estrutura do documento e gestão de páginas

  • ** API de documento:** Use a classe Document para criar novos documentos PDF. Documentos existentes podem ser acessados através dos constructores Document(filePath) ou Document(stream).
  • Gestão de páginas: Adicionar, acessar e modificar páginos através PageCollection. Cada Page expõe MediaBox , CropBox , rotação, recursos e operadores de conteúdo.
  • ** Metadados:** Ler e escrever metadatos de documentos através dos DocumentInfo e XmpMetadata.
  • ** Estrutura PDF:** Acesso aos objetos PDF subjacentes através de getParser(), getCatalog() e getTrailer().
  • ** Arquivos incorporados:** Gerenciar coleções de arquivado com getEmbeddedFiles().

Cenários comuns de tratamento dos documentos

  • Geração de PDF: Criar documentos programaticamente criando um Document e preenchendo páginas.
  • Análise de documentos: Acesse ficheiros existentes para inspecção dos metadados ou enumeração do campo do formulário.
  • Manipulação de página: Redimensionar, girar ou reordenar páginas usando PdfFileEditor e a API Page.
  • ** Fluxos de trabalho por lotes:** Aplicar transformações consistentes em vários documentos nos pipelines do lado do servidor.

Anotações e campos de formulário

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

Revisão e colaboração de documentos

  • ** Anotações de marcação:** Adicionar notas com destaque, sublinhar ou texto livre aos documentos para revisar os fluxos de trabalho.
  • Formulários interativos: Criar documentos preenchíveis com botões de rádio, caixas e pulsos para captura de dados.
  • Extração de dados do formulário: Ler os valores dos campos do formulario enviados para as pipelines no lado do servidor.
  • ** Conformidade de arquivo:** Validar e corrigir documentos para arquivamento a longo prazo usando ActionRules e ActionFixes.

Operações de segurança e conteúdo

  • ** Criptografia AES:** Cripte e decripte matrizes de bytes com AESCipher usando o modo CBC (AESCipher.encrypt(key, data) e AESCipher.decrypt(key, data)).
  • Gerenciamento de artefatos: Identificar e manipular cabeçalhos, pés de página, marcas d’água e imagens de fundo através das APIs Artifact e ArtifactCollection.
  • Refazer o tamanho do conteúdo: Ajustar a disposição do texto da página com PdfFileEditor.resizeContents() e ContentsResizeParameters.
  • ** Validação da conformidade:** Validar regras de anotações e ações em relação aos padrões PDF/A usando AnnotationRules e ActionRules.

Casos de uso da segurança do documento

  • ** Cargas úteis criptografadas:** Use AESCipher para encriptar secções de dados incorporados em fluxos de documentos.
  • Proteção de documentos: Aplicar configurações de segurança para o controlo do acesso nos fluxos de trabalho relativos à conformidade.
  • ** Marcas d’água:** Detectar e gerir Artifact objetos que representam marcas de água e decorações de página.
  • ** Conformidade de arquivo:** Execute ActionFixes e AnnotationFixes para que os documentos existentes cumpram as normas de archivo PDF/A-1b.

Criar um documento com anotações de widgets

Crie um novo documento, adicione uma página e anexe uma anotação do widget com estilo.

try (Document doc = new Document()) ```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

Adicionar um grupo de botões de rádio a um formulário do documento e selecionar o 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");
}

Verificar as dimensões das páginas do documento

Acesse um documento existente e leia as dimensões da caixa de mídia na 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