Различные типы публикаций, такие как журналы, газеты, исследовательские статьи и т. д., используют макеты страниц с несколькими столбцами. При программном создании таких документов может потребоваться создание 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 с несколькими столбцами. Ниже приведены шаги для достижения этого.
- Сначала создайте новый объект Document.
- Затем установите поля страницы с помощью методов Document.getPageInfo().getMargin().setLeft() и Document.getPageInfo().getMargin().setRight().
- Добавьте новую страницу в PDF с помощью метода Document.getPages().add() и получите ссылку на нее в объект Page.
- Создайте новый объект Graph и добавьте его в коллекцию абзацев, используя метод Page.getParagraphs().add().
- Создайте новую Line и добавьте ее в коллекцию Graph.getShapes().
- Добавьте текст заголовка на страницу с помощью метода Page.getParagraphs().add().
- Создайте новый FloatingBox и укажите количество столбцов, расстояние между столбцами и ширину столбца.
- Создайте еще один объект Graph.
- Добавьте новую Line в коллекцию Graph.getShapes().
- Добавьте график в коллекцию FloatingBox.getParagraphs().
- Создайте новый TextFragment и добавьте его в коллекцию FloatingBox.getParagraphs().
- Добавьте FloatingBox на страницу с помощью метода Page.getParagraphs().add().
- Наконец, сохраните файл PDF, используя метод Document.save(string).
В следующем примере кода показано, как создать 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.
Получить бесплатную лицензию
Вы можете использовать Aspose.PDF для Java без оценочных ограничений, используя временную лицензию.
Вывод
Многоколоночная верстка в документах PDF используется для различных типов публикаций. В этом посте вы узнали, как создавать многоколоночные PDF-файлы с нуля с помощью Java. Кроме того, вы можете узнать больше о Java PDF API, используя документацию. Если у вас возникнут вопросы, не стесняйтесь задавать их на нашем форуме.