Java以正确的比例打印现有的pdf
Posted
技术标签:
【中文标题】Java以正确的比例打印现有的pdf【英文标题】:Java printing existing pdf with right scaling 【发布时间】:2016-02-24 10:55:10 【问题描述】:我正在尝试打印现有的 PDF。
我已经试过了:java pdfbox printerjob wrong scaling / page format
PDFBox 不适合我,因为我无法正确缩放我的 PDF。
Scaling.SHRINK_TO_FIT
几乎可以工作,但它缺少大约 5 毫米,我无法添加它们,因为 paper.setImageableArea
正在重置它。
我还尝试使用new Paper();
有自己的边距而不使用setSize
,因为我无法获得 DIN A4 纸的尺寸。边距的问题是,如果我得到正确的顶部和左侧尺寸,然后尝试设置高度和宽度,那么它会破坏顶部和左侧位置。
现在我正在寻找一种没有 PDFBox 的免费且简单的解决方案来打印 pdf 文件而不损失质量和缩放。
【问题讨论】:
您是否尝试将其发送到打印机:Desktop.getDesktop().print(...)? 不,但我现在尝试了:Desktop.getDesktop().print(new File(pdfName));
,我得到了这个异常:java.io.IOException: Failed to print C:\Users\test.test\PDF.pdf. Error message: Der angegebenen Datei ist keine Anwendung zugeordnet.
。它是德文的,翻译过来是:提供的文件没有分配给应用程序
您至少需要安装一个PDF阅读器应用程序。
我有 Acrobad Reader DC,但我使用 Firefox 进行查看和打印。
【参考方案1】:
这有点傻,但这里已经是解决方案了:https://***.com/a/35483083/4888475
我的打印页面与 Acrobat 软件的打印页面相同,而不是 Firefox。
【讨论】:
以上是关于Java以正确的比例打印现有的pdf的主要内容,如果未能解决你的问题,请参考以下文章
更新客户的 Stripe 订阅以按比例分配订阅费用的金额(部分金额)