Различные типы публикаций, такие как журналы, газеты, исследовательские статьи и т. д., используют макеты страниц с несколькими столбцами. При программном создании таких документов может потребоваться создание PDF-файлов с несколькими столбцами. В таких случаях в этой статье рассказывается, как создавать файлы PDF с несколькими столбцами с помощью Java.

API для создания многоколоночного PDF в Java

Aspose.PDF for Java — это многофункциональный API для работы с PDF, который позволяет создавать как простые, так и сложные PDF-файлы с нуля. Мы будем использовать этот API для создания файлов PDF с несколькими столбцами с помощью Java. Вы можете либо загрузить JAR-файл API, либо установить его в своем Java-приложении, используя следующие конфигурации 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>

Создайте многоколоночный PDF-файл в Java

Aspose.PDF для Java значительно упрощает создание файла PDF с несколькими столбцами. Ниже приведены шаги для достижения этого.

В следующем примере кода показано, как создать PDF-файл с двумя столбцами с помощью Java.

// Создать новый документ
Document doc = new Document();

// Укажите информацию о левом поле для файла PDF
doc.getPageInfo().getMargin().setLeft(40);

// Укажите информацию о правом поле для файла PDF.
doc.getPageInfo().getMargin().setRight(40);

// Добавьте новую страницу и получите ее ссылку
Page page = doc.getPages().add();

// Создать новый график
com.aspose.pdf.drawing.Graph graph1 = new com.aspose.pdf.drawing.Graph(500, 2);

// Добавить график в коллекцию абзацев
page.getParagraphs().add(graph1);

// Добавьте линию на график
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);

// Создать строковую переменную с текстом, содержащим содержимое 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>";

// Создайте текстовый фрагмент и инициализируйте его текстом HTML
HtmlFragment heading_text = new HtmlFragment(s);
page.getParagraphs().add(heading_text);

// Создайте плавающую коробку
FloatingBox box = new FloatingBox();

// Добавьте столбцы в раздел
box.getColumnInfo().setColumnCount(2);
// Установить расстояние между столбцами
box.getColumnInfo().setColumnSpacing("5");
// Установить ширину столбца
box.getColumnInfo().setColumnWidths("105 105");

// Создать новый текстовый фрагмент
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);

// Добавить текст в абзац
box.getParagraphs().add(text1);

// Создайте объект графика, чтобы нарисовать линию
com.aspose.pdf.drawing.Graph graph2 = new com.aspose.pdf.drawing.Graph(50, 10);
// Укажите координаты линии
float[] posArr2 = new float[] { 1, 10, 100, 10 };

// Создать линию
com.aspose.pdf.drawing.Line l2 = new com.aspose.pdf.drawing.Line(posArr2);
// Добавить линию на график
graph2.getShapes().add(l2);

// Добавьте строку в коллекцию абзацев объекта раздела
box.getParagraphs().add(graph2);

// Создать новый текстовый фрагмент 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.");

// Добавить текст в плавающее поле
box.getParagraphs().add(text2);

// Добавить плавающее поле на страницу
page.getParagraphs().add(box);

// Сохранить PDF-файл
doc.save("multicolumn-pdf.pdf");

Ниже приведен скриншот многоколоночного PDF-файла, созданного Aspose.PDF для Java.

Создание многоколоночного PDF-файла Java

Получить бесплатную лицензию

Вы можете использовать Aspose.PDF для Java без оценочных ограничений, используя временную лицензию.

Вывод

Многоколоночная верстка в документах PDF используется для различных типов публикаций. В этом посте вы узнали, как создавать многоколоночные PDF-файлы с нуля с помощью Java. Кроме того, вы можете узнать больше о Java PDF API, используя документацию. Если у вас возникнут вопросы, не стесняйтесь задавать их на нашем форуме.

Смотрите также