打印带有嵌入 PNG/JPG 的宽幅 SVG 图像

Printing wide SVG image with embedded PNG/JPG

我正在努力寻找打印宽幅 SVG 图像的方法。这是一个常见问题,所以让我解释一下我的具体问题。

图像很宽,所以我需要将它(海报时尚)平铺在大约 5 或 6 张 A4 纸上(实际数量并不重要)。我的第一个问题是我的 Firefox 或 Chrome 浏览器中的默认打印对话框,在 Windows 下,不允许我缩放图像高度以适应页面高度,同时也将图像宽度分布到多个页面.

其他人建议使用 Inkscape 转换为 PDF 格式,因为 Acrobat reader 中的“打印”对话框对平铺有更好的支持。嗯,确实如此,但 Inkscape 不处理嵌入图像(例如 PNG 或 JPG)。更糟糕的是,它会生成巨大的方形错误标记,上面写着 "Linked image not found"。这些也保留在生成的 PDF 中,因此无法使用。

有很多在线工具声称可以将 SVG 转换为 PDF。我尝试了一些并且 none 处理了嵌入的图像。他们只是被丢弃了。

所以,我基本上是在寻找将宽幅 SVG 图像打印到一系列水平页面上并保留任何嵌入的 PNG/JPG 图像的方法。

[编辑] 部分在线结果:
zamzar -- 丢弃的图像
cloudconvert -- 简单使用 inkscape
convertio——最好的,但图像上的不透明度被忽略
在线-convert.com -- 图像被丢弃
pdfresizer -- 简单使用 inkscape
freefileconvert -- 简单使用 inkscape
onlineconvertfree -- 基本 SVG 失败
pdfaid -- 基本 SVG

严重失败

[编辑 2] 下面是几行代码,显示了一个基于 Internet 的嵌入式 PNG 参考。此设计旨在在后续 SVG 形状下方提供微弱的背景图像。因此不透明度为 12%。

<defs>
    <pattern id="img2" width="50%" height="100%" >
        <image xlink:href="https://clipartart.com/images/tree-branch-clipart-png-4.png" x="0" y="0" width="50%" height="100%" />
    </pattern>
</defs>


<rect width="100%" height="100%" fill="url(#img2)" fill-opacity="0.12" />

我有时间对此进行进一步试验(因此通过卸荷浪费打印纸)。

1) Inkscape 故意不支持 "security reasons" 的 Internet 图像引用(例如 http)。如前所述,它在加载的 SVG 视图中放置了一个可怕的错误标记,我找不到编辑它的方法。因此,它可以保存在任何 PDF 版本中。

2) 如果我下载图像的本地副本并将它们的 http:// 引用更改为等效的 file:///(是的,3 个斜杠),那么它们将被接受。

3) 这允许保存 PDF 副本,但如果任何图像具有不透明度(例如背景图像),那么它就会丢失并且在 PDF 中完全不透明。这可能是转换问题或 PDF 限制 -- 我不知道。

4) 因为我有图像的本地副本,所以可以更改它们以实现所需的任何模糊度 "at source"。

5) Acrobat 打印对话框有一个海报选项,用于平铺宽幅图像的页面。确保没有添加 'cut marks' 或 'labels',您可以设置一个 'Tile scale' 以将高度保持在一页内,并且它会根据宽度将其扩展到尽可能多的页面。在缩放的基础上,它选择 landscape/portrait 本身并忽略您自己的任何选择。

所以,有问题吗?是的,Acrobat 'Overlap' 设置是个谜,在输出的一张或两张相邻的工作表上留下了薄薄的白色边距。我无法将此边距的宽度或一张或两张纸上的外观与此设置相关联。

通过“首选项”按钮,我可以进入普通的打印机首选项对话框,我可以在其中请求 'Borderless printing'。这不仅没有解决问题,反而使相关性更加神秘。