【问题标题】:White lines in figure after exporting to PDF导出为PDF后图中的白线
【发布时间】:2018-06-12 20:26:30
【问题描述】:

在 MATLAB 2016a 中使用contour(下面的第一个图)绘制了一个二维数据矩阵,然后我以*.emf 格式保存为该图。接下来,我将图形 (emf) 插入到 MS Word 文档中。最后,word 文档被转换为pdf 文件。

我发现图中有很多白线(当为pdf格式时)如下图第二个所示。我的问题是如何删除那些白线?

这里附上代码:

path = 'C:\Users\Administrator\Desktop\';
data = importdata([path, 'lsa2.txt'], ' ', 6);
cdata = data.data;
n = 25;
contourf(cdata,n, 'LineStyle', 'none');
colormap(jet);
axis equal;

数据可以在这里访问:https://www.dropbox.com/s/hzf75qiju6zsy9i/lsa2.txt?dl=0

【问题讨论】:

  • 这是a bug in MATLAB。尽管官方错误跟踪器说它已修复 - 但事实并非如此。有关更多详细信息和解决方法(通常使用 Inkscape 进行后期处理),请参阅 this
  • 如果 Dev-iL 的解决方法太麻烦,只需导出为位图格式(PNG 或 BMP)。如果以 300 dpi 导出,打印在纸上时不会注意到差异。

标签: matlab pdf export matlab-figure vector-graphics


【解决方案1】:

正如我在评论中提到的,这是 MATLAB 导出图形方式的一个错误,正如 Yair AltmanDene Farrell 所解释的那样:

我发现当使用painters 渲染器时会出现这些白线伪影... [which] 是矢量化 (EPS/PDF) 的默认渲染 [format 引擎]格式。

Matlab 导出有两个不同的问题:

1.每个人都注意到的主要事情是补丁被分解成三角形,如果在 illustrator 中检查,每个三角形都是一个单独的路径对象。

2. Matlab 有时会添加无关的“裁剪路径”,即使在断裂路径没有问题的情况下也会产生明显的白线。

ambramson 建议的解决方法如下:

1.将图形保存为.eps 文件(使用print 命令)。
2.使用文本编辑器,将 eps 标题中的行从:

/f/fill ld

到:

/f{GS 1 LW S GR fill}bd

将该行向下移动几行,到 /LW/setlinewidth ld 行的正下方。
从这里开始,您的 eps 文件应该在所有 pdf 查看器上都能正常显示。

【讨论】:

  • 谢谢。但是处理后的eps文件破坏了原图的局部平滑度。我不确定你是否注意到了这个问题。
  • @emberbillow 不确定你的意思。 This 是我完成上述步骤后得到的。您能否在我的图片上标出与您的图片相比有什么问题?
  • 你的图很好,但它是光栅格式的。你可以在这里查看我的结果 (dropbox.com/s/2ulkxd6ww2irtw3/testEPS.eps?dl=0)。
  • 当然,因为这只是我从pdf version 截取的截图。我可以看到你提到的边缘,但我没有在 eps 或 pdf 版本中得到它们。我使用eps2pdf 进行转换。
  • 你的结果很好。你能更详细地了解你是如何得到它的吗?我使用以下代码将图形保存到 eps 文件:print('testEPS', '-depsc')。然后我用Windows记事本替换了你提到的标题行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-03
  • 1970-01-01
  • 2020-12-01
  • 1970-01-01
相关资源
最近更新 更多