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的主要内容,如果未能解决你的问题,请参考以下文章

按比例缩放 HTML 以完全适合 PDF A4 大小

更新客户的 Stripe 订阅以按比例分配订阅费用的金额(部分金额)

PDF的电子发票,怎么缩小打印?

用altium designer 如何按1:1比例输出PCB图?

如何以编程方式填充现有的 PDF 文档 [关闭]

如何在ggplot中实现绝对百分比比例?