雑誌、新聞、研究記事などのさまざまな種類の出版物は、複数列のページレイアウトを使用しています。このようなドキュメントをプログラムで生成する際に、複数列の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ファイルを非常に簡単に作成できます。これを実現するための手順は次のとおりです。
- まず、新しいDocumentオブジェクトを作成します。
- 次に、Document.getPageInfo().getMargin().setLeft()およびDocument.getPageInfo().getMargin().setRight()メソッドを使用してページマージンを設定します。
- Document.getPages().add()メソッドを使用してPDFに新しいページを追加し、その参照をPageオブジェクトに取得します。
- 新しいGraphオブジェクトを作成し、Page.getParagraphs().add()メソッドを使用して段落コレクションに追加します。
- 新しいLineを作成し、それをGraph.getShapes()コレクションに追加します。
- Page.getParagraphs().add()メソッドを使用して、見出しテキストをページに追加します。
- 新しいFloatingBoxを作成し、列数、列間隔、および列幅を指定します。
- 別のGraphオブジェクトを作成します。
- Graph.getShapes()コレクションに新しいLineを追加します。
- FloatingBox.getParagraphs()コレクションにグラフを追加します。
- 新しいTextFragmentを作成し、それをFloatingBox.getParagraphs()コレクションに追加します。
- Page.getParagraphs().add()メソッドを使用して、FloatingBoxをページに追加します。
- 最後に、Document.save(string)メソッドを使用して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のスクリーンショットです。
無料ライセンスを取得する
一時ライセンスを使用すると、評価の制限なしにAspose.PDFforJavaを使用できます。
結論
PDFドキュメントの複数列のレイアウトは、さまざまな種類の出版物に使用されます。この投稿では、Javaを使用して複数列のPDFファイルを最初から作成する方法を学びました。さらに、ドキュメントを使用してJavaPDFAPIの詳細を学ぶことができます。ご不明な点がございましたら、フォーラムからお気軽にお問い合わせください。