【发布时间】:2016-07-14 17:14:46
【问题描述】:
我能够使用 PDFBox(版本 1.8.9)创建 PDF,然后使用以下代码将其转换为 PostScript 文件:
DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
StreamPrintServiceFactory[] factories =
StreamPrintServiceFactory.lookupStreamPrintServiceFactories(flavor,
DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType());
if (factories.length == 0) {
throw new PrinterException("No PostScript factories available");
}
PDDocument document = pdfGenerator.getDocument();
// Attributes are specified by https://docs.oracle.com/javase/7/docs/api/
// see package javax.print.attribute.standard
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(MediaSizeName.NA_LETTER);
aset.add(new PageRanges(1, document.getNumberOfPages()));
FileOutputStream fos = new FileOutputStream(filePathAndName);
factories[0].getPrintService(fos).createPrintJob().print(
new SimpleDoc(new PDPageable(document), flavor, null), aset);
fos.close();
document.close();
PDPageable 对象似乎不在 PDFBox 2.0 代码中,我没有在迁移文档中看到它指定。如何使用 PDFBox 2.0 将 PDF 文件转换为 PostScript 文件?
谢谢
【问题讨论】:
-
有一个PDFPageable。
-
如果您找到问题的答案,将其作为答案发布会很有帮助。这样,其他人就可以从您的发现中学习。
-
谢谢。我最终做的是使用 PDFBox 读回 PDF 并使用 PDFBox 从 PDF 读取的 x/y 坐标自己写出 post 脚本命令。我不想自学发布脚本命令,但这是我发现可以创建大小合理的发布脚本文件的唯一方法。 PDPageable 类将每个 PDF 页面写为图像,因此后脚本文件比我需要的大很多倍。
标签: pdf pdfbox postscript