Vários tipos de publicações, como revistas, jornais, artigos de pesquisa, etc. usam layouts de página com várias colunas. Ao gerar esses documentos programaticamente, pode ser necessário criar PDFs com várias colunas. Para esses casos, este artigo aborda como criar arquivos PDF de várias colunas usando Java.
API para criar PDF de várias colunas em Java
Aspose.PDF for Java é uma API de manipulação de PDF rica em recursos que permite criar arquivos PDF simples e complexos a partir do zero. Usaremos essa API para criar arquivos PDF de várias colunas usando Java. Você pode baixar o JAR da API ou instalá-lo em seu aplicativo Java usando as seguintes configurações 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>21.9</version>
</dependency>
Criar um PDF de várias colunas em Java
O Aspose.PDF para Java torna muito mais fácil para você criar um arquivo PDF com várias colunas. A seguir estão os passos para conseguir isso.
- Primeiro, crie um novo objeto Document.
- Em seguida, defina as margens da página usando os métodos Document.getPageInfo().getMargin().setLeft() e Document.getPageInfo().getMargin().setRight().
- Adicione uma nova página no PDF usando o método Document.getPages().add() e obtenha sua referência em um objeto Page.
- Crie um novo objeto Graph e adicione-o à coleção de parágrafos usando o método Page.getParagraphs().add().
- Crie uma nova Line e adicione-a à coleção Graph.getShapes().
- Adicione o texto do título à página usando o método Page.getParagraphs().add().
- Crie uma nova FloatingBox e especifique o número de colunas, espaçamento de coluna e largura de coluna.
- Crie outro objeto Graph.
- Adicione uma nova Linha à coleção Graph.getShapes().
- Adicione Graph à coleção FloatingBox.getParagraphs().
- Crie um novo TextFragment e adicione-o à coleção FloatingBox.getParagraphs().
- Adicione FloatingBox à página usando o método Page.getParagraphs().add().
- Finalmente, salve o arquivo PDF usando o método Document.save(string).
O exemplo de código a seguir mostra como criar um PDF de duas colunas usando Java.
// Criar um novo documento
Document doc = new Document();
// Especifique as informações da margem esquerda para o arquivo PDF
doc.getPageInfo().getMargin().setLeft(40);
// Especifique as informações da margem direita para o arquivo PDF
doc.getPageInfo().getMargin().setRight(40);
// Adicione uma nova página e obtenha sua referência
Page page = doc.getPages().add();
// Criar um novo gráfico
com.aspose.pdf.drawing.Graph graph1 = new com.aspose.pdf.drawing.Graph(500, 2);
// Adicione o gráfico à coleção de parágrafos
page.getParagraphs().add(graph1);
// Adicionar uma linha ao gráfico
float[] posArr = new float[] { 1, 2, 500, 2 };
com.aspose.pdf.drawing.Line l1 = new com.aspose.pdf.drawing.Line(posArr);
graph1.getShapes().add(l1);
// Criar variável de string com texto contendo conteúdo HTML
String s = "<span style=\"font-family: \"Times New Roman\", Times, serif;\" font-size=\"14pt\" \">"
+"<strong> How to Steer Clear of money scams</<strong> </span>";
// Criar fragmento de texto e inicializá-lo com texto HTML
HtmlFragment heading_text = new HtmlFragment(s);
page.getParagraphs().add(heading_text);
// Criar uma caixa flutuante
FloatingBox box = new FloatingBox();
// Adicionar colunas na seção
box.getColumnInfo().setColumnCount(2);
// Defina o espaçamento entre as colunas
box.getColumnInfo().setColumnSpacing("5");
// Definir largura da coluna
box.getColumnInfo().setColumnWidths("105 105");
// Criar um novo fragmento de texto
TextFragment text1 = new TextFragment("By A Googler (The Official Google Blog)");
text1.getTextState().setFontSize (8);
text1.getTextState().setLineSpacing (2);
text1.getTextState().setFontSize (10);
text1.getTextState().setFontStyle (FontStyles.Italic);
// Adicionar texto ao parágrafo
box.getParagraphs().add(text1);
// Criar um objeto de gráfico para desenhar uma linha
com.aspose.pdf.drawing.Graph graph2 = new com.aspose.pdf.drawing.Graph(50, 10);
// Especifique as coordenadas para a linha
float[] posArr2 = new float[] { 1, 10, 100, 10 };
// Crie uma linha
com.aspose.pdf.drawing.Line l2 = new com.aspose.pdf.drawing.Line(posArr2);
// Adicionar linha ao gráfico
graph2.getShapes().add(l2);
// Adicione a linha à coleção de parágrafos do objeto de seção
box.getParagraphs().add(graph2);
// Criar um novo fragmento de texto to set content of the document
TextFragment text2 = new TextFragment("Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. "
+"Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue."
+"Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur "
+"ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean "
+"posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. "
+"Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, "
+"risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam "
+"luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, "
+"sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, "
+"pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut,"
+"iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus "
+"mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla."
+"Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam,"
+"iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique"
+"ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."
+"Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. "
+"Praesent porttitor turpis eleifend ante. Morbi sodales.");
// Adicionar texto à caixa flutuante
box.getParagraphs().add(text2);
// Adicionar caixa flutuante à página
page.getParagraphs().add(box);
// Salvar arquivo PDF
doc.save("multicolumn-pdf.pdf");
A seguir está a captura de tela do PDF de várias colunas gerado pelo Aspose.PDF para Java.
Obtenha uma licença gratuita
Você pode usar o Aspose.PDF para Java sem limitações de avaliação usando uma licença temporária.
Conclusão
O layout de várias colunas em documentos PDF é usado para vários tipos de publicações. Neste post, você aprendeu como criar arquivos PDF com várias colunas do zero usando Java. Além disso, você pode aprender mais sobre a API Java PDF usando a documentação. Caso você tenha alguma dúvida, sinta-se à vontade para perguntar através do nosso fórum.