Adicionar gráficos vetoriais a arquivos PDF é uma necessidade comum para gerar relatórios, faturas e documentos interativos. Conholdate.Total for Java é um SDK poderoso que simplifica a manipulação de PDF no lado do servidor. Neste guia, você aprenderá como inserir retângulos, elipses e linhas em um PDF usando um objeto Graph, configurar sua aparência e lidar com considerações de desempenho, tudo com exemplos claros de código Java.

Etapas para Adicionar Formas a PDF em Java

  1. Adicionar Repositório Maven e Dependência - Inclua o repositório Maven da Conholdate e a dependência conholdate-total no seu pom.xml. Isso disponibiliza as classes do SDK, como Document, Page e Graph.
    <repositories>
        <repository>
            <id>conholdate-repo</id>
            <name>Conholdate Maven Repository</name>
            <url>https://repository.conholdate.com/repo/</url>
        </repository>
    </repositories>
    
  1. Criar o Documento PDF e uma Página - Crie uma instância de Document e adicione uma página à sua coleção de páginas. A classe está documentada na referência da API.
// Create Document instance
Document doc = new Document();
// Add page to pages collection of PDF file
com.aspose.pdf.Page page = doc.getPages().add();
  1. Criar objetos de forma - Crie um objeto Graph primeiro, depois instancie retângulos, elipses ou linhas e adicione‑os à sua coleção de formas. Defina a posição, o tamanho e os atributos visuais através do GraphInfo de cada forma.
    // Create Graph instance
    com.aspose.pdf.drawing.Graph graph = new com.aspose.pdf.drawing.Graph(100, 600);
    

// Rectangle com.aspose.pdf.drawing.Rectangle rect = new com.aspose.pdf.drawing.Rectangle(100, 100, 170, 120); graph.getShapes().add(rect);

// Ellipse com.aspose.pdf.drawing.Ellipse ellipse = new com.aspose.pdf.drawing.Ellipse(300, 150, 150, 100); ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen()); ellipse.getGraphInfo().setLineWidth(1.5f); graph.getShapes().add(ellipse);

// Line com.aspose.pdf.drawing.Line line = new com.aspose.pdf.drawing.Line((new float[]{100, 300, 400, 300})); line.getGraphInfo().setColor(com.aspose.pdf.Color.getRed()); line.getGraphInfo().setLineWidth(3); graph.getShapes().add(line);

<!--[CODE_SNIPPET_END]-->

4. **Adicionar Formas a uma Página** - As formas individuais vivem dentro da coleção de formas do objeto `Graph`. Adicione o próprio `Graph` à coleção de parágrafos da página para que todas as formas que ele contém sejam renderizadas nessa página.  
<!--[CODE_SNIPPET_START]-->
```java
// Add graph object to paragraphs collection of page instance
page.getParagraphs().add(graph);
  1. Salvar o PDF Atualizado - Depois que o gráfico (com todas as suas formas) for adicionado à página, salve o documento em um novo arquivo.
    // Save PDF file
    doc.save("Shapes.pdf");
    

Adicionando Formas ao PDF em Java - Exemplo de Código Completo

O exemplo a seguir reúne todas as etapas em um único programa pronto‑para‑executar.

import com.aspose.pdf.Document;
import com.aspose.pdf.Color;

public class AddShapesDemo {
    public static void main(String[] args) throws Exception {
        // Create Document instance
        Document doc = new Document();
        // Add page to pages collection of PDF file
        com.aspose.pdf.Page page = doc.getPages().add();

// Create Graph instance
        com.aspose.pdf.drawing.Graph graph = new com.aspose.pdf.drawing.Graph(100, 600);

// Create Rectangle instance
        com.aspose.pdf.drawing.Rectangle rect = new com.aspose.pdf.drawing.Rectangle(100, 100, 170, 120);
        // Add rectangle object to shapes collection of Graph object
        graph.getShapes().add(rect);

// Create ellipse
        com.aspose.pdf.drawing.Ellipse ellipse = new com.aspose.pdf.drawing.Ellipse(300, 150, 150, 100);
        ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
        ellipse.getGraphInfo().setLineWidth(1.5f);
        // Add ellipse object to shapes collection of Graph object
        graph.getShapes().add(ellipse);

// Create line
        com.aspose.pdf.drawing.Line line = new com.aspose.pdf.drawing.Line((new float[]{100, 300, 400, 300}));
        line.getGraphInfo().setColor(com.aspose.pdf.Color.getRed());
        line.getGraphInfo().setLineWidth(3);
        // Add line object to shapes collection of Graph object
        graph.getShapes().add(line);

// Add graph object to paragraphs collection of page instance
        page.getParagraphs().add(graph);

// Save PDF file
        doc.save("Shapes.pdf");
    }
}

Nota: Este exemplo de código demonstra a funcionalidade principal. Antes de usá‑lo em seu projeto, certifique‑se de atualizar o caminho do arquivo de saída (Shapes.pdf) para corresponder ao seu local de destino real, verifique se todas as dependências necessárias estão devidamente 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.

Instalação e Configuração em Java

Para começar a usar Conholdate.Total for Java, baixe a versão mais recente no site oficial e adicione a dependência Maven mostrada anteriormente. O SDK funciona em qualquer runtime Java 8+ e não requer bibliotecas nativas adicionais.

Principais Recursos e Visão Geral

Adicionar Formas ao PDF em Java com Conholdate.Total

Conholdate.Total for Java fornece uma API unificada para criar e editar conteúdo PDF. A funcionalidade de desenho de formas trabalha com gráficos vetoriais por meio do objeto Graph e sua coleção de formas, garantindo que os elementos adicionados permaneçam nítidos em qualquer nível de zoom. Você pode desenhar primitivas básicas (retângulo, elipse, linha) e combinar várias delas dentro de um único Graph antes de posicioná‑las em uma página.

Conholdate.Total Features That Matter For This Task

  • Compatibilidade multiplataforma: Funciona em servidores Windows, Linux e macOS.
  • Renderização de alto desempenho: As formas são renderizadas usando o mesmo mecanismo que gera conteúdo PDF nativo, evitando a rasterização.
  • Controle total sobre a aparência: Defina a cor do traço e a largura da linha para cada forma através do seu objeto GraphInfo.
  • Gráficos agrupados: Adicione várias formas a um único objeto Graph para que possam ser posicionadas e gerenciadas juntas na página.

Configurando Propriedades de Forma para Renderização Ótima

Ao adicionar formas, considere as seguintes propriedades para alcançar o resultado visual desejado.

  • Posição e Tamanho: Os construtores de forma recebem coordenadas e dimensões em pontos, por exemplo new Rectangle(100, 100, 170, 120) ou new Ellipse(300, 150, 150, 100).
  • Posicionamento do Gráfico: O objeto Graph em si é posicionado com new Graph(width, height) e adicionado a uma página através de page.getParagraphs().add(graph).
  • Cores: Use a classe com.aspose.pdf.Color (por exemplo Color.getGreen() ou Color.getRed()) e defina-a em uma forma via shape.getGraphInfo().setColor(...).
  • Largura da Linha: Defina com shape.getGraphInfo().setLineWidth(...), medida em pontos; um valor de 1 equivale a 1/72 polegada.
  • Linhas: Uma forma Line é criada a partir de um array de coordenadas, por exemplo new Line(new float[]{100, 300, 400, 300}), representando os pontos inicial e final da linha.

Exemplo de definição da aparência da forma:

ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
ellipse.getGraphInfo().setLineWidth(1.5f);

Considerações de Desempenho ao Adicionar Formas a PDFs

Adicionar muitos objetos vetoriais pode aumentar o tempo de processamento e o uso de memória. Siga estas diretrizes:

  • Desenho em Lote: Agrupe formas relacionadas em um único objeto Graph antes de adicioná‑lo à página.
  • Reutilizar Objetos: Se precisar de formas idênticas em várias páginas, reutilize a lógica de configuração das formas em vez de duplicá‑la.
  • Evitar Redimensionamento Excessivo: Defina as formas no tamanho final de exibição para evitar conversões raster caras.
  • Liberar Recursos: Salve e libere o Document imediatamente após todas as formas terem sido adicionadas.

Conclusão

Conholdate.Total for Java oferece aos desenvolvedores Java uma maneira simples de adicionar formas a documentos PDF, permitindo a criação de relatórios e faturas ricos e interativos. Ao seguir as etapas, dicas de configuração e diretrizes de desempenho deste guia, você pode integrar gráficos vetoriais ao seu fluxo de trabalho PDF com confiança. Lembre‑se de obter uma licença adequada para uso em produção; uma licença temporária está disponível para avaliação, e os detalhes completos de preços estão listados na página de preços.

Perguntas Frequentes

Preciso criar um objeto Graph para cada forma?
Não. Um único objeto Graph pode conter várias formas — retângulos, elipses e linhas podem ser adicionados à mesma coleção de formas do gráfico antes que o gráfico seja adicionado à página.

É possível adicionar formas a uma página específica de um PDF de várias páginas?
Sim. Recupere a página alvo de doc.getPages() e chame page.getParagraphs().add(graph) nessa instância específica de Page.

Em quais formatos de arquivo posso exportar após adicionar formas?
O método Document.save() do Conholdate.Total for Java pode gravar em PDF, bem como em outros formatos suportados pelo SDK. Use doc.save("Shapes.pdf") para salvar o resultado como um arquivo PDF padrão.