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
- Adicionar Repositório Maven e Dependência - Inclua o repositório Maven da Conholdate e a dependência
conholdate-totalno seupom.xml. Isso disponibiliza as classes do SDK, comoDocument,PageeGraph.<repositories> <repository> <id>conholdate-repo</id> <name>Conholdate Maven Repository</name> <url>https://repository.conholdate.com/repo/</url> </repository> </repositories>
- Criar o Documento PDF e uma Página - Crie uma instância de
Documente 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();
- Criar objetos de forma - Crie um objeto
Graphprimeiro, 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 doGraphInfode 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);
- 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.
- URL de Download: Conholdate.Total for Java Release
- Documentação: Instruções detalhadas de uso estão disponíveis na documentação oficial.
- Licença: Obtenha uma licença temporária na página de licença temporária ou veja a tabela completa de preços na página de preços.
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
Graphpara 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)ounew Ellipse(300, 150, 150, 100). - Posicionamento do Gráfico: O objeto
Graphem si é posicionado comnew Graph(width, height)e adicionado a uma página através depage.getParagraphs().add(graph). - Cores: Use a classe
com.aspose.pdf.Color(por exemploColor.getGreen()ouColor.getRed()) e defina-a em uma forma viashape.getGraphInfo().setColor(...). - Largura da Linha: Defina com
shape.getGraphInfo().setLineWidth(...), medida em pontos; um valor de1equivale a 1/72 polegada. - Linhas: Uma forma
Lineé criada a partir de um array de coordenadas, por exemplonew 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
Graphantes 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
Documentimediatamente 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.
