Varios tipos de publicaciones, como revistas, periódicos, artículos de investigación, etc., utilizan diseños de página de varias columnas. Al generar dichos documentos mediante programación, es posible que deba crear archivos PDF de varias columnas. Para tales casos, este artículo cubre cómo crear archivos PDF de varias columnas usando Java.

API para crear PDF de varias columnas en Java

Aspose.PDF for Java es una API de manipulación de PDF rica en funciones que le permite crear archivos PDF simples y complejos desde cero. Usaremos esta API para crear archivos PDF de varias columnas usando Java. Puede descargar el JAR de la API o instalarlo dentro de su aplicación Java usando las siguientes configuraciones 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>

Crear un PDF de varias columnas en Java

Aspose.PDF for Java hace que sea mucho más fácil para usted crear un archivo PDF de varias columnas. Los siguientes son los pasos para lograrlo.

El siguiente ejemplo de código muestra cómo crear un PDF de dos columnas usando Java.

// Crear un nuevo documento
Document doc = new Document();

// Especifique la información del margen izquierdo para el archivo PDF
doc.getPageInfo().getMargin().setLeft(40);

// Especifique la información del margen derecho para el archivo PDF
doc.getPageInfo().getMargin().setRight(40);

// Agregar una nueva página y obtener su referencia
Page page = doc.getPages().add();

// Crear un nuevo gráfico
com.aspose.pdf.drawing.Graph graph1 = new com.aspose.pdf.drawing.Graph(500, 2);

// Agregar el gráfico a la colección de paráfrasis
page.getParagraphs().add(graph1);

// Agregar una línea al 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);

// Crear variable de cadena con texto que contenga contenido 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>";

// Crear fragmento de texto e inicializarlo con texto HTML
HtmlFragment heading_text = new HtmlFragment(s);
page.getParagraphs().add(heading_text);

// Crear una caja flotante
FloatingBox box = new FloatingBox();

// Agregar columnas en la sección
box.getColumnInfo().setColumnCount(2);
// Establecer el espacio entre las columnas
box.getColumnInfo().setColumnSpacing("5");
// Establecer ancho de columna
box.getColumnInfo().setColumnWidths("105 105");

// Crear un nuevo 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);

// Agregar texto al párrafo
box.getParagraphs().add(text1);

// Crear un objeto gráfico para dibujar una línea
com.aspose.pdf.drawing.Graph graph2 = new com.aspose.pdf.drawing.Graph(50, 10);
// Especificar las coordenadas para la línea.
float[] posArr2 = new float[] { 1, 10, 100, 10 };

// crear una línea
com.aspose.pdf.drawing.Line l2 = new com.aspose.pdf.drawing.Line(posArr2);
// Agregar línea al gráfico
graph2.getShapes().add(l2);

// Agregue la línea a la colección de párrafos del objeto de sección
box.getParagraphs().add(graph2);

// Crear un nuevo 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.");

// Agregar texto al cuadro flotante
box.getParagraphs().add(text2);

// Agregar cuadro flotante a la página
page.getParagraphs().add(box);

// Guardar archivo PDF
doc.save("multicolumn-pdf.pdf");

La siguiente es la captura de pantalla del PDF de varias columnas generado por Aspose.PDF for Java.

Crear PDF de varias columnas Java

Obtenga una licencia gratis

Puede usar Aspose.PDF for Java sin limitaciones de evaluación usando una licencia temporal.

Conclusión

El diseño de varias columnas en documentos PDF se utiliza para varios tipos de publicaciones. En esta publicación, ha aprendido cómo crear archivos PDF de varias columnas desde cero usando Java. Además, puede obtener más información sobre la API PDF de Java utilizando la documentación. En caso de que tenga alguna pregunta, no dude en preguntar a través de nuestro foro.

Ver también