打印/保存和导出之间的差异

问题描述 投票:0回答:2

我正在Matlab中做一些绘图,但是当导出为pdf时,我没有在屏幕上看到相同的结果。特别是,我试图将白色边缘添加到图例中。

leg1 = legend(names);
set(leg1,'EdgeColor',[1 1 1]);

[使用“文件->另存为-> Out.pdf时”,边缘为白色,但是当我使用saveas(gca,'Out.pdf')print -dpdf Out.pdf时,边缘为黑色。使用导出功能时,Matlab在做什么?如何从命令行获得相同的结果?


编辑

请注意,这是示例代码:

plot(rand(10,1))
leg1 = legend('Data');
set(leg1,'EdgeColor',[1 1 1]);
print -dpdf Out.pdf

pdf文件显示以下内容:“在此处输入图像描述”

显然不是预期的数字,它与Matlab显示的数字不同。当我使用“文件->另存为”选项时,标签的边缘会正确显示。

matlab matlab-figure
2个回答
2
投票

从“文件->另存为”保存时,它将运行mfile filemenufcn

您可以从命令行直接调用它:

filemenufcn ( figHandle, 'FileSaveAs' )

很遗憾,Mathworks不允许您传递文件名直接保存...

您可以调查该功能,以查看该功能在保存之前对图形的作用。

FYI:在最新的Matlab(R2015a)中,实际保存为pdf的最终代码为hgexport。 (这是一个p代码文件,但确实有一些基本帮助)您可以在命令行中直接调用它。

您还应该查看export_fig,这是将图形导出到文件的出色工具。


0
投票

恐怕其他答案并不能真正回答问题。这是您将白线/文本“打印”到文件的方式:运行

set(gcf, 'InvertHardCopy', 'off');

使用print命令之前。

但是,对于您的特定情况,由于您只是试图隐藏框的边框,因此更好的方法是

legend boxoff

legend('boxoff')

来源:https://www.mathworks.com/matlabcentral/answers/102484-why-does-my-white-text-become-black-in-my-figure-when-printing-to-an-emf-file-in-matlab-7-5-r2007b

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.