【问题标题】:Printing a PDF duplex using Java使用 Java 打印 PDF 双面打印
【发布时间】:2014-02-17 11:24:05
【问题描述】:
我有一台连接到 CUPS 的打印机,它支持双面打印,如何通过我的 java 例程将其设置为单面或双面打印?
我尝试使用 ASET add 和 addViewerPreference 使用 itext 库,但没有任何运气。
谁能给点建议?
【问题讨论】:
标签:
java
printing
itext
cups
【解决方案1】:
我创建了一个小的 ChangeViewerPreference 代码示例,它为现有 PDF 添加了查看器首选项:
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.addViewerPreference(PdfName.DUPLEX, PdfName.DUPLEXFLIPLONGEDGE);
stamper.close();
reader.close();
此查看器首选项的可能值为PdfName.SIMPLEX、PdfName.DUPLEXFLIPSHORTEDGE 和PdfName.DUPLEXFLIPLONGEDGE。此代码实施 ISO-32000-1,并适用于已实施 ISO-32000-1 中定义的查看器首选项的所有查看器。对于您在市场上找到的所有观众来说,情况并非如此。也许这就是你没有运气的原因。
您使用哪种工具来呈现 PDF? (请注意,我不知道“ASET 添加”是什么意思,所以您可能需要澄清一下。)
【解决方案2】:
我的ipp-client 库支持设置print job 属性,例如双面打印:
CupsClient cupsClient = new CupsClient("localhost");
IppPrinter ippPrinter = cupsClient.getPrinter("ColorJet_HP");
ippPrinter.printJob(
new File("my-document.pdf"),
documentFormat("application/pdf"),
IppSides.TwoSidedLongEdge
);