【问题标题】:PDFBox: How to prevent pdf pages from being auto rotated before print?PDFBox:如何防止 pdf 页面在打印前自动旋转?
【发布时间】:2017-05-26 15:08:26
【问题描述】:

我正在尝试使用 PDFbox 库打印 PDF。但生成的打印件旋转了 90 度。页面尺寸为 70mm x 17mm,但打印长度为 17mm x 70mm。

String filename = dest; 
    PDDocument document = PDDocument.load(new File (filename));

    PrintService myPrintService = PrintServiceLookup.lookupDefaultPrintService();
    PrinterJob job = PrinterJob.getPrinterJob();
    job.setPageable(new PDFPageable(document));
    job.setPrintService(myPrintService);
    if(job.printDialog())
        job.print();
    document.close();

谢谢。

【问题讨论】:

    标签: java pdf printing pdfbox


    【解决方案1】:

    您可以将Orientation 枚举传递给PDFPageable 构造函数:

    job.setPageable(new PDFPageable(document, Orientation.PORTRAIT) );
    

    由于您使用的是非标准纸张,Orientation.AUTO 的默认方向值将较短的边缘解释为顶部和底部。

    【讨论】:

    • 我遇到了一个错误。它说没有这样的功能 setPageable(arg1, arg2);
    • 是的,您将它传递给 PDFPageable 构造函数 - 现在已修复代码
    • 哪个问题?原始问题还是编译问题?如果是方向,尝试传递Orientation.PORTRAIT
    • 我的意思是原始问题不是编译问题。所以在使用 PORTRAIT 之后有一个变化。这是使用 protrait i.imgur.com/SLb3ENK.pngi.imgur.com/IQ20YGm.png 之前和之后的图像。横向方向没有效果,但纵向至少旋转了图像。
    • 我怀疑这是 issues.apache.org/jira/browse/PDFBOX-3117 中提到的问题。有一个解决方法,但需要下载PDFPageable的源代码复制并更改它,请参阅链接中的最后一条评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 2014-11-27
    相关资源
    最近更新 更多