在 Java 中合并 EPS、PostScript (PS) 和 XPS 文档
使用 Aspose.Page for Java 以编程方式将多个 EPS、PostScript (PS) 和 XPS 文件合并为单个多页 PDF 文档。无需依赖 Adobe Acrobat、Distiller 或 Windows 原生打印实用程序,即可在不同文档格式之间无缝合并单独的矢量图形、打印文件或页面流。
Aspose.Page for Java 提供专用的渲染设备 (PdfDevice、ImageDevice) 和保存选项,用于将多个输入文件转换并合并为统一的输出流。
- 要将独立的矢量图形和 EPS 插图合并为一个整合的 PDF 文档集,请使用
PsDocument.mergeToPdf()方法。 - 要将多个文件的 PostScript 打印作业和报告合并为一个可打印的 PDF 文件,请使用
PsDocument.mergeToPdf()方法。 - 要将不同的 XPS 文件、发票或批量页面输出合并为一个 XPS 或 PDF 包,请使用
XpsDocument.merge()方法。
将多个 EPS 文件合并为单个 PDF
将多个独立的 EPS 矢量图形文件合并为一个多页 PDF 文档。
import com.aspose.page.eps.PsDocument;
import com.aspose.page.eps.device.PdfSaveOptions;
import com.aspose.page.eps.device.PdfDevice;
import java.io.FileOutputStream;
public class MergeEpsFilesToPdf {
public static void main(String[] args) throws Exception {
// Define array of input EPS files to merge
String[] epsFiles = new String[] {
"C:/Project/Input/graphic1.eps",
"C:/Project/Input/graphic2.eps",
"C:/Project/Input/graphic3.eps"
};
// Initialize output stream for the merged PDF
FileOutputStream outStream = new FileOutputStream("C:/Project/Output/merged_eps_output.pdf");
// SOpen the first EPS document as the base document
PsDocument baseDocument = new PsDocument(epsFiles[0]);
// Configure PDF save options
PdfSaveOptions options = new PdfSaveOptions();
options.setJpegQualityLevel(100);
// Merge additional EPS files and save to PDF stream
baseDocument.mergeToPdf(outStream, epsFiles, options);
outStream.close();
System.out.println("EPS files successfully merged into a single PDF document.");
}
}将多个 PostScript (PS) 文档合并为单个 PDF
使用自定义字体搜索路径和选项,将多个多页 PostScript 文件合并为一个整合的 PDF 流。
import com.aspose.page.eps.PsDocument;
import com.aspose.page.eps.device.PdfSaveOptions;
import java.io.FileOutputStream;
public class MergePsFilesToPdf {
public static void main(String[] args) throws Exception {
// Specify list of PS files
String[] psFiles = new String[] {
"C:/Project/Input/report_part1.ps",
"C:/Project/Input/report_part2.ps"
};
FileOutputStream outStream = new FileOutputStream("C:/Project/Output/merged_report.pdf");
// Load base PS document
PsDocument basePsDoc = new PsDocument(psFiles[0]);
// Set options and configure font folders if custom fonts are used
PdfSaveOptions options = new PdfSaveOptions();
options.setAdditionalFontsFolders(new String[] { "C:/Project/Fonts/" });
// Merge files to PDF
basePsDoc.mergeToPdf(outStream, psFiles, options);
outStream.close();
System.out.println("PostScript documents merged to PDF successfully.");
}
}将多个 XPS 文档合并为单个 XPS 文件
将不同的 XPS 包或生成的发票页面合并为一个多页 XPS 文件。
import com.aspose.page.xps.XpsDocument;
public class MergeXpsFiles {
public static void main(String[] args) throws Exception {
// Open base XPS document
XpsDocument baseDocument = new XpsDocument("C:/Project/Input/document1.xps");
// Define array of additional XPS documents to append
String[] xpsFilesToMerge = new String[] {
"C:/Project/Input/document2.xps",
"C:/Project/Input/document3.xps"
};
// Execute merge operation and save output
baseDocument.merge(xpsFilesToMerge, "C:/Project/Output/merged_document.xps");
baseDocument.close();
System.out.println("XPS documents merged into a single XPS package successfully.");
}
}安装和设置
将 Aspose.Page for Java 添加到您的 Maven:
Package Manager Console Command
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-page</artifactId>
<version>Latest</version>
</dependency>
FAQ
1. 我可以直接将 XPS 文档合并为 PDF,而不是 XPS 吗?
可以。您可以使用 XpsDocument 加载 XPS 文档,并使用 PdfDevice 将其与辅助文件一起渲染,从而直接根据 XPS 输入创建合并的 PDF 文件。
2. Aspose.Page 在合并 PS 或 EPS 文件时如何处理缺失的字体?
如果输入的 EPS/PS 文件引用了自定义字体,您可以使用 PdfSaveOptions.setAdditionalFontsFolders() 提供其位置。如果字体缺失,Aspose.Page 会使用内置的默认字体替换逻辑来完成渲染,而不会抛出致命异常。
3. 在批量处理大型文件集时,是否能够保持内存使用效率?
可以。Aspose.Page 在 PDF 设备执行期间按顺序处理输入页面流,从而能够以较低的内存开销高效地合并大型企业打印作业。