我一直在使用Apache fop xsl-fo转换器来pdf用于打印目的,但是当我尝试打印横向pdf时,打印机制试图将横向pdf转换为纵向并以纵向打印。
我还试图通过pdfbox进行打印,但它也无法正常工作。
所以我的问题是,我能否在打印前明确指定页面方向,并防止打印机制在打印前将横向pdf变为纵向。
代码:
ExampleFO2JPSPrint pjs = new ExampleFO2JPSPrint();
pjs.printFOOldStyle(PathUtility.getInstance().getFileByPath("cache/cache.xsl"),
printService);
FO2PDF obj = new FO2PDF();
obj.main(PathUtility.getInstance().getFileByPath("cache/cache.xsl"),
PathUtility.getInstance().getFileByPath("out/ResultFO2PDF.pdf"));
这段代码能够生成正确的pdf方向,但问题在于此打印代码。
PDDocument doc = PDDocument.load(
PathUtility.getInstance().getFileByPath("out/ResultFO2PDF.pdf"));
//doc.print(pj);
//doc.silentPrint(pj);
pj.defaultPage();
pj.setCopies(1);
pj.setPrintService(printService);
pj.setPageable(doc);
pj.print();
doc.close();
生成以下print pdf。如果我将它发送到我不发送的A4打印机,并且我发送到的打印机无法识别方向并以纵向模式打印,那么它看起来很好,因此文本的方向错误。 / p>
有没有办法在发送到printjob之前指定打印文件的方向?