首页 > 解决方案 > 是否有可能将 PDF 转换为 SVG2?

问题描述

我有一个包含 1 页的 SVG 文档(我们将其命名为 img1.svg)和 PDF 文件(doc1.pdf)。我需要的是插入(缩放、旋转和放置在文档中的某个点)doc1.pdf 到 img1.svg 中。为了实现它,我必须将 doc1.pdf 转换为 doc1.svg(这可以通过 inkscape 轻松完成),然后我可以将 doc1.svg 的内容插入到 img1.svg 中,这很容易。

但是如果 doc1.pdf 包含一些具有 CMYK 颜色空间的元素呢?在这种情况下,inkscape 不会生成正确版本的 doc1.svg。它创建了正确的布局,但颜色现在是 RGB。我知道有可能在 SVG2 规范中使用 CMYK 颜色,并且 inkscape 可以正确导入带有 CMYK 颜色元素的 SVG2 文件。

我的问题是是否有任何软件可以将 PDF 文件转换为 SVG2(保持 CMYK 颜色空间)?

我试过用inkscape和scribus来做,但总是得到RGB输出。

标签: svgghostscriptinkscape

解决方案


您的 SVG 是否总是会显示在浏览器中?如果是这样,您可以选择使用<foreignObject>元素在 SVG 中显示 PDF。

<svg width="400" viewBox="0 0 400 400">

  <foreignObject x="50" y="50" width="300" height="300">
    <body xmlns="http://www.w3.org/1999/xhtml">
      <object type="application/pdf"
        data="sample.pdf" width="300" height="300"></object>
    </body>
  </foreignObject>
  
</svg>

更新

抱歉,我没有正确阅读您的问题。

我知道有可能在 SVG2 规范中使用 CMYK 颜色

你在这里指的是什么?SVG 2 规范将所有颜色问题都交给 CSS3 规范“或其后继者”。CSS3 规范不支持 CMYK 颜色。然而,仍在开发中的 CSS4 规范添加了一个新的颜色函数:device-cmyk(). 然而,目前还没有浏览器支持 AFAIK。

您可能指的icc-color()是 SVG 1.1 中已弃用的功能。并且已从 SVG2 规范中删除。

我只知道一个支持的软件,icc-color()那就是 RenderX。看:

如何在嵌入 html 的 svg 中使用 cmyk?

但在印刷行业领域可能还有其他软件。

我的问题是是否有任何软件可以将 PDF 文件转换为 SVG2(保持 CMYK 颜色空间)?

鉴于上述情况,我将在专门为印刷行业开发的软件中进行搜索(如果您还没有的话)。Stack Overflow 可能不是最好的地方。

另外,您是否尝试过在Graphich Design Stack Exchange中提问?

祝您搜索顺利。


推荐阅读