📅  最后修改于: 2023-12-03 15:15:53.721000             🧑  作者: Mango
iText-N-up 是一个功能强大的 Java 库,用于将 PDF 文件进行 N-up(多页合并)编排,从而在打印纸张上节省空间,并提高打印效率。这有助于将多个页面组织在一个页面中,以便更好地利用打印能力。iText-N-up 提供了丰富的功能和灵活的选项,使得对于各种 N-up 布局的处理变得简单而灵活。
以下示例演示了如何使用 iText-N-up 对一个 PDF 文件进行 2-up 编排,并输出到另一个文件中:
import com.itextpdf.io.IOException;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.element.Table;
import com.itextpdf.nd4j.converter.pdf.DocConverter;
public class NupExample {
public static void main(String[] args) {
String inputFile = "input.pdf";
String outputFile = "output.pdf";
try {
// 加载输入 PDF 文件
PdfReader reader = new PdfReader(inputFile);
PdfDocument pdfDoc = new PdfDocument(reader);
// 创建输出 PDF 文件
PdfWriter writer = new PdfWriter(outputFile);
PdfDocument outputPdf = new PdfDocument(writer);
// 创建文档对象
Document document = new Document(outputPdf);
// 设置 2-up 编排
Table table = new Table(2);
for (int i = 1; i <= pdfDoc.getNumberOfPages(); i++) {
// 添加输入 PDF 页面到表格中
table.addCell(new Paragraph().add(new DocConverter().convertToElements(pdfDoc.getPage(i))));
}
// 将表格添加到文档中
document.add(table);
// 关闭文档
document.close();
System.out.println("N-up 编排完成!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
要使用 iText-N-up,首先需要在项目中添加 iText-N-up 的依赖。可以从 iText 官方网站 下载最新版本的 iText,并将 iText-N-up JAR 文件添加到项目的依赖中。
<dependencies>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>7.1.15</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-io</artifactId>
<version>7.1.15</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-layout</artifactId>
<version>7.1.15</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>layout4j</artifactId>
<version>2.0.1</version>
</dependency>
</dependencies>
iText-N-up 是一个功能强大且易于使用的 Java 库,可以帮助程序员更好地处理 PDF 文件的 N-up 编排需求。它提供了丰富的功能和灵活的选项,使得实现各种 N-up 布局变得非常简单。无论是在节省打印纸张空间还是提高打印效率方面,iText-N-up 都是一个不可或缺的工具。