Nhiều loại ấn phẩm khác nhau như tạp chí, báo, bài báo nghiên cứu, vv sử dụng bố cục trang nhiều cột. Trong khi tạo các tài liệu như vậy theo chương trình, bạn có thể cần tạo các tệp PDF nhiều cột. Đối với những trường hợp như vậy, bài viết này trình bày cách tạo tệp PDF nhiều cột bằng Java.

API để tạo PDF nhiều cột trong Java

Aspose.PDF dành cho Java là một API thao tác PDF giàu tính năng cho phép bạn tạo các tệp PDF đơn giản cũng như phức tạp từ đầu. Chúng tôi sẽ sử dụng API này để tạo tệp PDF nhiều cột bằng Java. Bạn có thể tải xuống JAR của API hoặc cài đặt nó trong ứng dụng Java của mình bằng cách sử dụng các cấu hình Maven sau.

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

Tạo PDF nhiều cột trong Java

Aspose.PDF for Java giúp bạn tạo tệp PDF nhiều cột dễ dàng hơn. Sau đây là các bước để đạt được điều này.

Mẫu mã sau đây cho thấy cách tạo tệp PDF hai cột bằng Java.

// Tạo một tài liệu mới
Document doc = new Document();

// Chỉ định thông tin lề trái cho tệp PDF
doc.getPageInfo().getMargin().setLeft(40);

// Chỉ định thông tin lề Phải cho tệp PDF
doc.getPageInfo().getMargin().setRight(40);

// Thêm một trang mới và lấy tham chiếu của nó
Page page = doc.getPages().add();

// Tạo một biểu đồ mới
com.aspose.pdf.drawing.Graph graph1 = new com.aspose.pdf.drawing.Graph(500, 2);

// Thêm biểu đồ vào bộ sưu tập paraphraphs
page.getParagraphs().add(graph1);

// Thêm một đường vào biểu đồ
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);

// Tạo biến chuỗi với văn bản chứa nội dung 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>";

// Tạo đoạn văn bản và khởi tạo nó bằng văn bản HTML
HtmlFragment heading_text = new HtmlFragment(s);
page.getParagraphs().add(heading_text);

// Tạo một hộp nổi
FloatingBox box = new FloatingBox();

// Thêm cột trong phần
box.getColumnInfo().setColumnCount(2);
// Đặt khoảng cách giữa các cột
box.getColumnInfo().setColumnSpacing("5");
// Đặt chiều rộng cột
box.getColumnInfo().setColumnWidths("105 105");

// Tạo một đoạn văn bản mới
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);

// Thêm văn bản vào đoạn văn
box.getParagraphs().add(text1);

// Tạo một đối tượng đồ thị để vẽ một đường
com.aspose.pdf.drawing.Graph graph2 = new com.aspose.pdf.drawing.Graph(50, 10);
// Chỉ định tọa độ cho đường thẳng
float[] posArr2 = new float[] { 1, 10, 100, 10 };

// Tạo một dòng
com.aspose.pdf.drawing.Line l2 = new com.aspose.pdf.drawing.Line(posArr2);
// Thêm đường vào biểu đồ
graph2.getShapes().add(l2);

// Thêm dòng vào bộ sưu tập đoạn của đối tượng phần
box.getParagraphs().add(graph2);

// Tạo một đoạn văn bản mới 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.");

// Thêm văn bản vào hộp nổi
box.getParagraphs().add(text2);

// Thêm hộp nổi vào trang
page.getParagraphs().add(box);

// Lưu tệp PDF
doc.save("multicolumn-pdf.pdf");

Sau đây là ảnh chụp màn hình của tệp PDF nhiều cột được tạo bởi Aspose.PDF for Java.

Tạo PDF Java nhiều cột

Nhận giấy phép miễn phí

Bạn có thể sử dụng Aspose.PDF for Java mà không có giới hạn đánh giá bằng cách sử dụng giấy phép tạm thời.

Sự kết luận

Bố cục nhiều cột trong tài liệu PDF được sử dụng cho nhiều loại ấn phẩm khác nhau. Trong bài đăng này, bạn đã học cách tạo tệp PDF nhiều cột từ đầu bằng Java. Bên cạnh đó, bạn có thể tìm hiểu thêm về Java PDF API bằng cách sử dụng tài liệu. Trong trường hợp bạn có bất kỳ câu hỏi nào, vui lòng hỏi qua diễn đàn của chúng tôi.

Xem thêm