雜誌、報紙、研究文章等各種類型的出版物都使用多欄頁面佈局。在以編程方式生成此類文檔時,您可能需要創建多列 PDF。對於此類情況,本文介紹瞭如何使用 Java 創建多欄 PDF 文件。

在 Java 中創建多列 PDF 的 API

Aspose.PDF for Java 是一個功能豐富的 PDF 操作 API,可讓您從頭開始創建簡單和復雜的 PDF 文件。我們將使用此 API 通過 Java 創建多列 PDF 文件。您可以 下載 API 的 JAR 或使用以下 Maven 配置將其安裝在您的 Java 應用程序中。

<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>

在 Java 中創建多欄 PDF

Aspose.PDF for Java 使您可以更輕鬆地創建多欄 PDF 文件。以下是實現此目的的步驟。

以下代碼示例顯示瞭如何使用 Java 創建兩列 PDF。

// 創建一個新文檔
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");

下面是Aspose.PDF for Java生成的多欄PDF截圖。

創建多列 PDF Java

獲得免費許可證

你可以使用 Aspose.PDF for Java,沒有評估限制,使用臨時許可證

結論

PDF 文檔中的多欄佈局用於各種類型的出版物。在本文中,您學習瞭如何使用 Java 從頭開始創建多欄 PDF 文件。此外,您可以使用 文檔 了解有關 Java PDF API 的更多信息。如果您有任何問題,請隨時通過我們的 論壇 提問。

也可以看看