【问题标题】:Apache Batik SVG to PDF - Output PDF is Incorrect SizeApache Batik SVG 到 PDF - 输出 PDF 的大小不正确
【发布时间】:2018-05-10 07:55:24
【问题描述】:

我正在尝试将 SVG 文件转换为 PDF 以嵌入到另一个 PDF 文档中。我正在使用蜡染转码器,传入 SVG 的字节并返回 PDF 的数据。

我的主要 PDF 文档和传入转码器的 SVG 文件的尺寸均为:

width="602.8" height="763.8"

但是,从SVG 生成的输出PDF 文件更小。因此,当嵌入到我们的主文档中时,生成的SVG PDF 不会像我预期的那样占用我们主 PDF 中的所有可用空间,因为它具有较小的尺寸。如何强制输出 pdf 具有与主文档/输入 SVG 相同的尺寸。

【问题讨论】:

  • pdf 将以 72 dpi 呈现,但 pdf 格式是矢量。所以,你可以调整它的大小。质量将相同

标签: java pdf svg pdfbox batik


【解决方案1】:

因此,经过进一步研究,我找到了解决方案。我们使用 PDFBox 作为我们的 pdf 处理工具,默认情况下使用 72 的 DPI 处理文档。

另一方面,Batik 在将 SVG 转码为 PDF 文件时使用 96 的 DPI。这使得输出文件略小于 PDFBox 生成的主文档。要将 Batik 切换到默认支持 PDFBox 的 DPI,我们必须将像素到 mm 的转换从 96dpi 更改为 72dpi。

我们可以向我们的 PDFTranscoder 添加转码提示,如下所示:

transcoder.addTranscodingHint(PDFTranscoder.KEY_PIXEL_UNIT_TO_MILLIMETER,
(25.4f / 72f));

其中 (25.4f / 72f) 等于 72dpi。这将替换 96dpi (25.4f / 96f) 的默认 dpi

【讨论】:

    猜你喜欢
    • 2016-08-30
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    相关资源
    最近更新 更多