Pular para o conteúdo principal

Como criar e preencher seu próprio formulário PDF com Java



Introdução

Neste tutorial, você irá aprender como preencher um documento PDF com o Java utilizando a biblioteca PDFBox. Além disso você verá como criar seus próprios formulários ou adicionar campos editáveis a um documento PDF existente.

Criando um formulário simples

Para criar um formulário, vamos utilizar o LibreOffice Draw
Exiba a barra de ferramentas de formulário. Menu View > Toolbars > Form Controls



Em um documento em branco, insira dois campos de texto:



Exiba as propriedades do campo de texto:



Renomeie os campos para 'txt_1' e 'txt_2' respectivamente. Deixe também a propriedade 'Read-only' como 'yes'.
Exporte o documento como PDF. O meu está como '/tmp/pdf-java.pdf'
O meu template ficou assim:



Preenchendo o PDF pelo Java

Crie um novo projeto Java com maven e inclua a dependência abaixo:
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.16</version>
</dependency>
Crie uma classe Java com o código abaixo:
public static void main(String[] args) {
    try {
        PDDocument pDDocument = PDDocument.load(new File("/tmp/pdf-java.pdf"));
        PDAcroForm pDAcroForm = pDDocument.getDocumentCatalog().getAcroForm();
        PDField field = pDAcroForm.getField("txt_1");
        field.setValue("This is a first field printed by Java");
        field = pDAcroForm.getField("txt_2");
        field.setValue("This is a second field printed by Java");
        pDDocument.save("/tmp/pdf-java-output.pdf");
        pDDocument.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
Execute o programa e veja o resultado:



Lembre-se, o arquivo de final foi salvo em: "/tmp/pdf-java-output.pdf"

Código fonte completo no github:

https://github.com/sandrogiacom/pdf-java

Conclusão

Neste pequeno tutorial, aprendemos como preencher um PDF a partir de um template PDF criado com o LibreOffice Draw. Use a sua criatividade para criar belos templates, fazer automação, criar arquivos em lote.

Deixe nos comentários qual seria seu caso de uso.

Até a próxima!

Comentários

Postagens mais visitadas deste blog

Certificação Java 11 - O que mudou

Certificação Java 11 - O que mudou
A Oracle liberou recentemente uma atualização das suas certificações Java para atender a nova versão Java 11 LTS (Long Term Support). Mas o que muda em relação a certificação Java 8? Preciso me atualizar? Por onde começo? Neste post, vamos responder estas e outras questões sobre essa nova série de certificações.Caso você não tenha acompanhado a série sobre certificação, recomendo a leitura dos posts anteriores: https://www.guiadojava.com.br/2018/06/guia-da-certificacao-java-se-8.html

Também temos um bate papo com os maiores especialistas de Java do mercado. Assista o replay aqui:
https://events.genndi.com/replay/169105139238448348/23a5b3a7b0/0/83729443273C
Nomenclatura e requisitosA partir de agora, você não receberá o certificado se fizer apenas a primeira prova, como era no Java 8(1Z0-808 - Java SE 8 Programmer I). Você terá que fazer duas provas para obter o certificado "Oracle Certified Professional: Java SE 11 Developer"
Comparando os nome…

Guia da certificação Java SE 8 Programmer l - Parte 1: Conhecendo a certificação

Seja bem-vindo a série de postagens sobre a certificação Java. Como funciona, o que fazer para comprar, marcar o dia da prova e o principal, o que estudar.

Para ver o índice da série e as datas das publicações, acesse este link

Parte 1 – Conhecendo a certificação
Nesta primeira parte, vamos navegar pelo site da Oracle Education e da Pearson VUE para conhecer como funciona a certificação e se ambientar. Ambos os site estão em Inglês e como já dito no índice da série, a prova não tem opção em português.
Site da Oracle
O site da Oracle não é um dos melhores em usabilidade. Então se procurar por certificação Java no Google, irá encontrar diversos cursos, livros e blogs falando a respeito da certificação menos o site da Oracle.
Pois bem, abaixo o link direto para informações do exame 1Z0-808 - Java SE 8 Programmer I
https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=5001&get_params=p_exam_id:1Z0-808

Neste link você encontrará as informações detalhadas do exame, tais co…

Java 13 está aqui!

Fonte: https://blogs.oracle.com/java/java-and-the-new-duke-personality
Java 13 17/09/2019 é o dia do lançamento da versão final do Java 13. Neste post vamos descrever as principais novidades desta versão. Versionamento Com o lançamento do Java 9 em 2017, o cronograma de lançamento do Java mudou, de um lançamento principal a cada 3 anos ou mais para um lançamento a cada seis meses. Um dos principais motivos dessa alteração foi oferecer aos desenvolvedores acesso mais rápido as melhorias contínuas. Os lançamentos ocorrem em Março e Setembro de cada ano. Ao obter acesso a novas versões em uma medida mais granular e mais rápida, os desenvolvedores podem gerenciar muito mais facilmente o ritmo da inovação, conforme comprovado pelo Java 10, oferecendo 12 novos recursos, Java 11, oferecendo 17 novos recursos, e Java 12, oferecendo 8 novos recursos. Novos recursos do Java 13Cinco novos recursosJEP (Java Enhacement Proposal) são entregues com o Java 13, incluindo dois recursos prévios (preview…