首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将SVG转换为PNG和PDF命令行

将SVG转换为PNG和PDF命令行
EN

Stack Overflow用户
提问于 2018-05-30 06:06:44
回答 1查看 1.9K关注 0票数 1

我有一个SVG文件,我想将其转换为在PDF中使用。

它在我的浏览器(chrome、edge、firefox)上呈现得很好。文件可在此处获得:https://gist.github.com/acourdavault/329b8670517e0716cd38eab202e2ca0e

它包括渐变

我尝试了magick,inkskape,librsvg2把它转换成png或者pdf。最大的问题是不支持stop-color和stop-color-opacity

注意,这里只有inkscape给出了这条消息,其他转换器没有给出任何信息,即使是冗长的,但结果是可怕的‘bash

** (inkscape:648850):警告**:未实现样式属性SP_PROP_STOP_COLOR: value:#ffa500

** (inkscape:648850):警告**:未实现的样式属性SP_PROP_STOP_OPACITY:值: 0.59999999999999998

** (inkscape:648850):警告**:未实现样式属性SP_PROP_STOP_COLOR: value:#ffff00 `

PDF (保持格式矢量)将是理想的,我想,但我需要能够从命令行运行这个

你知道为什么,这不起作用以及如何修复它吗?

备注:我使用SVG类,但样式在SVG本身的样式§中

解决方案

ccprog提供的解决方案

我移动了svg xml顶部的defs,我使用fill=url(#gradientid)来声明渐变,而不是类。我替换了类中的停止颜色和停止不透明度的定义,以便在停止标记中内联它们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-30 08:16:04

这里的问题是,除了浏览器之外,各种渲染器都不能很好地支持样式表。您需要内联所有样式才能使其正常工作

个人广告:我已经为该任务编写了一个节点模块:。您可以使用write__加载文件、执行inline任务并将其写回。然后,可以在从回调中派生的进程中完成PDF转换。

第二个问题是说明使用后的渐变。根据规范,它是完全有效的,但是librsvg不喜欢它。Inkscape会做得很好。(如果系统上存在Inkscape或librsvg,magick将使用其中之一进行渲染,因此这是多余的。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50593661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档