将 SVG 文件转换为 PDF 后留下的白色渐变伪像

White gradient artifacts left over after converting an SVG file to PDF

我有一个条形图的 SVG 文件,我需要将其转换为 PDF。条形图是在 matplotlib 中制作的,保存为 PDF 并导入到 Inkscape 中。我使用 Inkscape 为图形添加注释,然后将其导出回 PDF 以用于最终文档。

这是进入 Inkscape 的 PDF 文件的样子

在图的其他地方添加文本并保存为 PDF 后,我得到了带有这些白线的相同图:

这些不是典型的 PDF 渲染伪像,仔细检查会发现它们具有渐变。

我认为这是 SVG 文件的产物。我使用了在线 SVG 到 PDF 转换器,但线条仍然存在。此外,我使用这种方法制作我所有的图形,从 Matplotlib 到 Inkscape 到 PDF,我没有遇到任何其他图形的问题。

我发现 Inkscape 会在您导入其阴影类型与任何预设 Inkscape 模式不同的条形图时执行此操作。当我从 R 编程语言和 excel 导入图形时,我已经看到了这个确切的问题,所以我认为它不是 Matplotlib 特有的。但是,我不知道根本原因,因为我经常遇到这个问题,所以我将分享我在遇到此问题时通常采用的解决方法。一个不一定比另一个好,这取决于我使用的情况。

选项 1) 在其他程序(Gimp、Photoshop、Powerpoint...)中将 PDF 转换为 .png 位图图像,然后将图像嵌入 Inkscape。进行更改,然后从 Inkscape 导出为 PDF。这样做的缺点是图形将不再是矢量图。使用选项 2 或 3 将其保留为矢量图。

选项 2) 将 pdf 导入 Inkscape,取消 pdf 对象的组合,删除条形图中剥离的填充,然后使用 Inkscape 制作的填充重新创建填充。在最坏的情况下,我实际上在 Inkscape 中制作了自定义条形图模式以与我之前的模式完全匹配。这个过程是痛苦的。

选项 3) 创建覆盖工件的形状,从形状中移除边框线并使用滴管使它们与良好部分的颜色完全相同。

就像我说的,这些不是为了避免问题而对问题的学术理解,但我希望它可以帮助您完成任务。