Apache Batik SVG 到 PDF - 输出 PDF 的大小不正确
Apache Batik SVG to PDF - Output PDF is Incorrect Size
我正在尝试将 SVG
文件转换为 PDF
以便嵌入到另一个 PDF
文档中。我正在使用 batik 转码器,传入 SVG
的字节并返回 PDF
的数据。
我的主要 PDF 文档和传递到转码器的 SVG
文件的尺寸均为:
width="602.8" height="763.8"
但是从 SVG
生成的输出 PDF
文件较小。因此,当嵌入到我们的主文档中时,生成的 SVG
PDF 不会像我期望的那样占用我们主 PDF 中所有可用的 space,因为它的尺寸较小。如何强制输出 pdf 具有与主文档/输入相同的尺寸 SVG
.
经过进一步研究,我找到了解决方案。我们使用 PDFBox 作为我们的 pdf 操作工具,默认情况下文档的 DPI 为 72。
另一方面,Batik 在将 SVG 转码为 PDF 文件时使用 96 的 DPI。这使得输出文件略小于主 PDFBox 生成的文档。要将 Batik 切换到默认支持 PDFBox 的 DPI,我们必须将像素到毫米的转换从 96dpi 更改为 72dpi。
我们可以向 PDFTranscoder 添加转码提示,如下所示:
transcoder.addTranscodingHint(PDFTranscoder.KEY_PIXEL_UNIT_TO_MILLIMETER,
(25.4f / 72f));
其中 (25.4f / 72f) 等于 72dpi。这将替换默认的 96dpi (25.4f / 96f)
我正在尝试将 SVG
文件转换为 PDF
以便嵌入到另一个 PDF
文档中。我正在使用 batik 转码器,传入 SVG
的字节并返回 PDF
的数据。
我的主要 PDF 文档和传递到转码器的 SVG
文件的尺寸均为:
width="602.8" height="763.8"
但是从 SVG
生成的输出 PDF
文件较小。因此,当嵌入到我们的主文档中时,生成的 SVG
PDF 不会像我期望的那样占用我们主 PDF 中所有可用的 space,因为它的尺寸较小。如何强制输出 pdf 具有与主文档/输入相同的尺寸 SVG
.
经过进一步研究,我找到了解决方案。我们使用 PDFBox 作为我们的 pdf 操作工具,默认情况下文档的 DPI 为 72。
另一方面,Batik 在将 SVG 转码为 PDF 文件时使用 96 的 DPI。这使得输出文件略小于主 PDFBox 生成的文档。要将 Batik 切换到默认支持 PDFBox 的 DPI,我们必须将像素到毫米的转换从 96dpi 更改为 72dpi。
我们可以向 PDFTranscoder 添加转码提示,如下所示:
transcoder.addTranscodingHint(PDFTranscoder.KEY_PIXEL_UNIT_TO_MILLIMETER,
(25.4f / 72f));
其中 (25.4f / 72f) 等于 72dpi。这将替换默认的 96dpi (25.4f / 96f)