Neste artigo, você aprenderá como criar um arquivo PDF a partir do zero programaticamente em Java.

Criar documentos PDF usando Java

PDF tornou-se um formato de arquivo comumente usado para criar diferentes tipos de documentos. Vários setores adotaram a automação de PDF para geração de documentos, como recibos, faturas, relatórios comerciais, etc. De olho nesses cenários, este artigo aborda como criar arquivos PDF em Java. Os exemplos de código demonstrarão como criar um arquivo PDF do zero e inserir texto, imagens, tabelas e outros elementos nesse PDF em Java.

API Java para criar PDF - Download grátis

Aspose.PDF for Java é uma API de manipulação de arquivos PDF que faz com que você crie arquivos PDF a partir dos aplicativos Java. Usando a API, você pode criar documentos PDF simples e complexos. O Aspose.PDF para Java pode ser baixado como JAR ou instalado em aplicativos baseados em Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.11</version>
    <classifier>jdk17</classifier>
</dependency>

Criar um arquivo PDF em Java

A seguir estão as etapas para gerar um arquivo PDF simples do zero e inserir um pedaço de texto nele.

O exemplo de código a seguir mostra como criar um arquivo PDF usando Java.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.PDF-for-Java
// Inicializar objeto de documento
Document document = new Document();
 
//Adicionar Página
Page page = document.getPages().add();
 
// Adicionar texto à nova página
page.getParagraphs().add(new TextFragment("Hello World!"));
 
// Salvar PDF atualizado
document.save("HelloWorld_out.pdf");

Criar arquivo PDF com formatação de texto em Java

Vamos agora verificar como aplicar formatação ao texto no documento PDF. A formatação do texto pode incluir fonte, tamanho da fonte, cor, posição, etc. A seguir estão as etapas para realizar esta operação.

  • Use a classe Document para criar um novo documento PDF ou carregar um existente.
  • Acesse a Página na qual deseja colocar o texto.
  • Crie um objeto de TextFragment para definir o texto e outras opções de formatação, como posição, fonte, cor, tamanho etc.
  • Use a classe TextBuilder para adicionar o objeto TextFragment à página.
  • Use o método Document.save(String) para salvar o documento PDF.

O exemplo de código a seguir mostra como criar um arquivo PDF e aplicar formatação de texto usando Java.

// Carregar documento PDF
Document document = new Document();

// Adicionar Página
Page page = document.getPages().add();

// Criar fragmento de texto
TextFragment textFragment = new TextFragment(
		"Text 1: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment.setPosition(new Position(100, 700));
TextFragment textFragment1 = new TextFragment(
		"Text 2: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment1.setPosition(new Position(100, 600));

// Definir propriedades de texto
textFragment.getTextState().setFontSize(12);
textFragment.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
textFragment.getTextState().setBackgroundColor(Color.getLightGray());
textFragment.getTextState().setForegroundColor(Color.getRed());

textFragment1.getTextState().setDrawTextRectangleBorder(true);
textFragment1.getTextState().setUnderline(true);
textFragment1.getTextState().setStrikeOut(true);

// Crie uma nova cor com o espaço de cores padrão
Color color = new Color();
color.setPatternColorSpace(new GradientAxialShading(Color.getRed(), Color.getBlue()));		
textFragment1.getTextState().setForegroundColor(color);

// Criar objeto TextBuilder
TextBuilder textBuilder = new TextBuilder(page);

// Anexar os fragmentos de texto à página PDF
textBuilder.appendText(textFragment);
textBuilder.appendText(textFragment1);

// Salve o documento PDF
document.save("Generated-PDF.pdf");

Java Criar arquivos PDF com imagem

A seguir estão as etapas para inserir uma imagem em um arquivo PDF usando Aspose.PDF para Java.

  • Crie um objeto Document para criar ou abrir o documento PDF.
  • Obtenha a página à qual deseja adicionar uma imagem no objeto Página.
  • Adicione a imagem à coleção Page.getResources().
  • Use operadores para colocar a imagem na página:
    • GSalvar operator to save the current graphical state.
    • Concatenar Matriz operator to specify where the image is to be placed.
    • Fazer operator to draw the image on the page.
    • Finalmente, use o operador GRestore para salvar o estado gráfico atualizado.
  • Salve o arquivo PDF.

O exemplo de código a seguir mostra como inserir imagem em um arquivo PDF em Java.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Abra um documento
Document pdfDocument1 = new Document("input.pdf");

// Definir coordenadas
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// Obtenha a página à qual deseja adicionar a imagem
Page page = pdfDocument1.getPages().get_Item(1);

// Carregar imagem no fluxo
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));

// Adicionar uma imagem à coleção Imagens dos recursos da página
page.getResources().getImages().add(imageStream);

// Usando o operador GSave: este operador salva o estado gráfico atual
page.getContents().add(new Operator.GSave());

// Criar objetos Retângulo e Matriz
Rectangle rectangle = new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.getURX() - rectangle.getLLX(), 0, 0, rectangle.getURY() - rectangle.getLLY(), rectangle.getLLX(), rectangle.getLLY() });

// Usando o operador ConcatenateMatrix (concatenate matrix): define como a imagem deve ser colocada
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());

// Usando o operador Do: este operador desenha a imagem
page.getContents().add(new Operator.Do(ximage.getName()));

// Usando o operador GRestore: este operador restaura o estado gráfico
page.getContents().add(new Operator.GRestore());

// Salve o novo PDF
pdfDocument1.save("Updated_document.pdf");

// Fechar fluxo de imagens
imageStream.close();

Criar uma tabela em arquivo PDF em Java

A tabela é uma boa maneira de organizar os dados na forma de linhas e colunas. O Aspose.PDF permite inserir uma tabela em um documento PDF com bastante facilidade. A seguir estão as etapas para criar uma tabela.

  • Carregue o arquivo de origem usando a classe Document.
  • Inicialize uma Tabela e defina suas colunas e linhas.
  • Defina a configuração da tabela (por exemplo, bordas).
  • Preencha a tabela adicionando linhas a ela.
  • Adicione a tabela a uma página.
  • Salve o arquivo PDF.

O exemplo de código a seguir mostra como criar uma tabela em arquivos PDF em Java.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Carregar documento PDF de origem
Document doc = new Document(dataDir + "input.pdf");
// Inicializa uma nova instância da Tabela
Table table = new Table();
// Defina a cor da borda da tabela como LightGray
table.setBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// definir a borda das células da tabela
table.setDefaultCellBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// crie um loop para adicionar 10 linhas
for (int row_count = 1; row_count < 10; row_count++) {
	// adicionar linha à tabela
	Row row = table.getRows().add();
	// adicionar células de tabela
	row.getCells().add("Column (" + row_count + ", 1)");
	row.getCells().add("Column (" + row_count + ", 2)");
	row.getCells().add("Column (" + row_count + ", 3)");
}
// Adicionar objeto de tabela à primeira página do documento de entrada
doc.getPages().get_Item(1).getParagraphs().add(table);
// Salvar documento atualizado contendo objeto de tabela
doc.save(dataDir + "document_with_table.pdf");

Criar formulário em um arquivo PDF em Java

O formato PDF também suporta a adição de formulários para coletar entradas dos usuários. O formulário pode conter vários tipos de campos, como caixas de texto, botões de opção, etc. As etapas a seguir demonstram como inserir um formulário simples no arquivo PDF.

O exemplo de código a seguir mostra como criar um formulário em um arquivo PDF em Java.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Abra um documento
Document pdfDocument = new Document("input.pdf");

// Criar um campo
TextBoxField textBoxField1 = new TextBoxField(pdfDocument.getPages().get_Item(1), new Rectangle(100, 200, 300, 300));

// Defina o nome do campo
textBoxField1.setPartialName("textbox1");

// Defina o valor do campo
textBoxField1.setValue("Text Box");

// Criar um objeto de borda
Border border = new Border(textBoxField1);

// Defina a largura da borda
border.setWidth(5);

// Definir o estilo do traço da borda
border.setDash(new Dash(1, 1));

// Definir a borda do campo
textBoxField1.setBorder(border);

// Adicione o campo ao documento
pdfDocument.getForm().add(textBoxField1, 1);

// Salve o PDF modificado
pdfDocument.save("output.pdf");

Leia mais sobre os campos de formulário usando aqui.

Inserir marcadores no arquivo PDF em Java

A seguir estão as etapas para adicionar marcadores no arquivo PDF.

  • Abra um documento PDF usando o objeto Document.
  • Adicione contornos de documentos a uma coleção OutlineItemCollection.
  • Defina o número da página de destino.
  • Adicione o marcador na coleção de estrutura de tópicos do documento.
  • Salve o arquivo PDF.

O exemplo de código a seguir mostra como inserir marcadores em PDF usando Java.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Abra o documento PDF de origem
Document pdfDocument = new Document("input.pdf");

// Criar um objeto de marcador
OutlineItemCollection pdfOutline = new OutlineItemCollection(pdfDocument.getOutlines());
pdfOutline.setTitle("Test Outline");
pdfOutline.setItalic(true);
pdfOutline.setBold(true);

// Defina o número da página de destino
pdfOutline.setAction(new GoToAction(pdfDocument.getPages().get_Item(1)));

// Adicione um marcador na coleção de tópicos do documento.
pdfDocument.getOutlines().add(pdfOutline);

// Salve o documento de atualização
pdfDocument.save("output.pdf");

Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita para experimentar a API sem limitações de avaliação.

Conclusão

Neste artigo, você aprendeu como criar arquivos PDF do zero em Java. Além disso, os exemplos de código Java demonstraram como inserir texto, imagens, tabelas, formulários e marcadores em arquivos PDF novos ou existentes. Você pode explorar mais sobre a API Java PDF usando documentação.

Veja também