雑誌、新聞、研究記事などのさまざまな種類の出版物は、複数列のページレイアウトを使用しています。このようなドキュメントをプログラムで生成する際に、複数列のPDFを作成する必要がある場合があります。このような場合、この記事では、Javaを使用して複数列のPDFファイルを作成する方法について説明します。

Javaで複数列のPDFを作成するためのAPI

Aspose.PDF for Javaは、機能豊富なPDF操作APIであり、単純なPDFファイルと複雑な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を使用して2列の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.PDFforJavaによって生成された複数列のPDFのスクリーンショットです。

複数列のPDFJavaを作成する

無料ライセンスを取得する

一時ライセンスを使用すると、評価の制限なしにAspose.PDFforJavaを使用できます。

結論

PDFドキュメントの複数列のレイアウトは、さまざまな種類の出版物に使用されます。この投稿では、Javaを使用して複数列のPDFファイルを最初から作成する方法を学びました。さらに、ドキュメントを使用してJavaPDFAPIの詳細を学ぶことができます。ご不明な点がございましたら、フォーラムからお気軽にお問い合わせください。

関連項目