Adicionar notas personalizadas ou marcas d’água geralmente requer que você adicione texto a PDF em aplicações Java. Conholdate.Total for Java é um SDK poderoso que permite que os desenvolvedores editem arquivos PDF programaticamente. Este guia orienta você pelos pré‑requisitos, uma explicação detalhada do código e um exemplo completo, para que possa sobrepor texto personalizado em PDFs existentes com facilidade.

Pré-requisitos e Configuração

Antes de começar, certifique‑se de que você tem o seguinte:

  • Java 8 ou superior instalado.
  • Maven para gerenciamento de dependências.
  • Uma IDE como IntelliJ IDEA ou Eclipse.
  • Uma licença válida do Conholdate.Total for Java para uso em produção (veja a seção de licenciamento mais adiante).

Adicione o repositório Maven da Conholdate e a dependência do SDK ao seu pom.xml:

<repositories>
    <repository>
        <id>conholdate-repo</id>
        <name>Conholdate Maven Repository</name>
        <url>https://repository.conholdate.com/repo/</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.conholdate</groupId>
    <artifactId>conholdate-total</artifactId>
    <version>24.9</version>
    <type>pom</type>
</dependency>

Faça o download dos binários mais recentes do SDK na página de download. Depois que a compilação do Maven for bem‑sucedida, você está pronto para começar a programar. A próxima seção mostra exatamente como carregar um PDF e inserir texto.

Adicionar Texto ao PDF em Java: Guia Passo a Passo

A seguir está um resumo conciso de cada passo lógico. O código‑fonte completo é reproduzido mais adiante na seção Exemplo de Código Completo.

Etapa 1: Abra o PDF e Crie um TextBuilder

Primeiro, abra o PDF de origem com a classe Document, então crie um TextBuilder apontando para a página na qual você deseja adicionar texto.

String dataDir = "path/to/your/document/directory/";

// Open document
Document doc = new Document(dataDir + "Conholdate.pdf");
TextBuilder builder = new TextBuilder(doc.getPages().get_Item(1));

As classes Document e TextBuilder estão documentadas na referência da API.

Etapa 2: Criar e Configurar um TextParagraph

Construa um TextParagraph e configure seu layout: a indentação aplicada às linhas subsequentes, o retângulo que delimita a área de texto na página e o modo de quebra de linha.

// Create text paragraph
TextParagraph paragraph = new TextParagraph();
// Set subsequent lines indent
paragraph.setSubsequentLinesIndent(20);
// Specify the location to add TextParagraph
paragraph.setRectangle(new Rectangle(100, 300, 200, 700));
// Specify word wrapping mode
paragraph.getFormattingOptions().setWrapMode(TextFormattingOptions.WordWrapMode.ByWords);

Etapa 3: Crie um TextFragment e configure a fonte

Crie um TextFragment contendo o texto que você deseja sobrepor, então defina sua fonte e tamanho da fonte através de getTextState().

// Create text fragment
TextFragment fragment1 = new TextFragment("the quick brown fox jumps over the lazy dog");
fragment1.getTextState().setFont(FontRepository.findFont("Times New Roman"));
fragment1.getTextState().setFontSize(12);

Etapa 4: Anexar o Fragmento e o Parágrafo

Adicione o fragmento de texto como uma linha dentro do parágrafo e, em seguida, anexe o parágrafo à página através do TextBuilder.

// Add fragment to paragraph
paragraph.appendLine(fragment1);
// Add paragraph
builder.appendParagraph(paragraph);

Etapa 5: Salvar o PDF Modificado

Finalmente, construa o caminho de saída e salve o documento resultante.

dataDir = dataDir + "AddText_out.pdf";

// Save resulting PDF document.
doc.save(dataDir);

Com estas etapas, você concluiu o fluxo de trabalho de inserção de texto em PDF.

Exemplo de Código Completo: Inserir Texto em PDF em Java

O exemplo a seguir demonstra todo o processo, desde o carregamento do arquivo de origem até a gravação do PDF atualizado.

Este exemplo demonstra como adicionar texto a um PDF existente usando Conholdate.Total for Java.

import com.aspose.pdf.Document;
import com.aspose.pdf.TextBuilder;
import com.aspose.pdf.TextParagraph;
import com.aspose.pdf.Rectangle;
import com.aspose.pdf.TextFormattingOptions;
import com.aspose.pdf.TextFragment;
import com.aspose.pdf.FontRepository;

public class AddTextToPdf {
    public static void main(String[] args) {
        String dataDir = "path/to/your/document/directory/";

// Open document
        Document doc = new Document(dataDir + "Conholdate.pdf");
        TextBuilder builder = new TextBuilder(doc.getPages().get_Item(1));

// Create text paragraph
        TextParagraph paragraph = new TextParagraph();
        // Set subsequent lines indent
        paragraph.setSubsequentLinesIndent(20);
        // Specify the location to add TextParagraph
        paragraph.setRectangle(new Rectangle(100, 300, 200, 700));
        // Specify word wrapping mode
        paragraph.getFormattingOptions().setWrapMode(TextFormattingOptions.WordWrapMode.ByWords);

// Create text fragment
        TextFragment fragment1 = new TextFragment("the quick brown fox jumps over the lazy dog");
        fragment1.getTextState().setFont(FontRepository.findFont("Times New Roman"));
        fragment1.getTextState().setFontSize(12);

// Add fragment to paragraph
        paragraph.appendLine(fragment1);
        // Add paragraph
        builder.appendParagraph(paragraph);

dataDir = dataDir + "AddText_out.pdf";

// Save resulting PDF document.
        doc.save(dataDir);
    }
}

Nota: Este exemplo de código demonstra a funcionalidade principal. Antes de usá‑lo em seu projeto, certifique‑se de atualizar dataDir para apontar para o diretório real de documentos (contendo Conholdate.pdf), verifique se todas as dependências necessárias estão corretamente instaladas e teste minuciosamente em seu ambiente de desenvolvimento. Se encontrar algum problema, consulte a documentação oficial ou entre em contato com a equipe de suporte para obter assistência.

Conclusão

Neste tutorial, mostramos como adicionar texto a um PDF em Java usando os recursos robustos do Conholdate.Total for Java. Seguindo o passo a passo, você pode criar parágrafos de texto de forma confiável com TextBuilder e TextParagraph, controlar a estilização de fontes através de TextFragment e salvar o documento modificado. O SDK lida internamente com as coordenadas das páginas PDF e a renderização de texto, permitindo que você se concentre na lógica de negócios. Lembre‑se de adquirir uma licença adequada para uso em produção; você pode obter uma licença temporária na página de licença temporária ou explorar opções de preços na página de preços. Com essas ferramentas, aprimorar PDFs com texto personalizado torna‑se uma parte simples da sua aplicação Java.

Perguntas Frequentes

  • Como adiciono texto a um PDF em Java sem sobrescrever o conteúdo existente?
    Use builder.appendParagraph(paragraph) conforme mostrado no exemplo; TextBuilder adiciona o novo parágrafo à página de destino, preservando qualquer conteúdo existente.

  • É possível adicionar um texto de marca d’água personalizado a um PDF em Java?
    Sim. A mesma abordagem funciona para marcas d’água — crie um TextFragment com o texto de marca d’água desejado, configure uma fonte e tamanho adequados (ou transparência via o estado de texto), e anexe-o através de um TextParagraph em cada página.

  • O que devo fazer se o texto inserido não aparecer corretamente para certos idiomas?
    Escolha uma fonte que suporte o conjunto de caracteres necessário com FontRepository.findFont(). O SDK respeita as configurações de fonte aplicadas via getTextState(), e a documentação fornece orientações sobre como lidar com diferentes scripts.

  • Posso processar em lote vários PDFs para adicionar o mesmo texto?
    Absolutamente. Envolva o código dentro de um loop que itere sobre uma lista de caminhos de arquivos, reutilizando a mesma lógica Document/TextBuilder para cada arquivo.

Leia mais