我知道有很多关于matlab打印问题的问题,但我似乎无法解决这个问题 .
我想打印/保存我的图形,打印尺寸为17x23cm . 分辨率为600dpi .
我试过这个
set(gcf, 'Units', 'centimeters', 'Position', [0 0 17 23], 'PaperUnits', 'centimeters', 'PaperSize', [17 23]);
然后我使用export_fig脚本并执行以下任一操作
export_fig Test.pdf -pdf -transparent;
export_fig Test.pdf -pdf -transparent -r600;
无论哪种方式,我得到一个~14x19厘米的数字 . 分辨率仅为100dpi .
所以我想,对于一个17厘米的数字,600dpi可以是~4,000像素 . 因此,让我们将屏幕上的数字设置为多个像素
set(gcf, 'Units', 'pixels', 'Position', [0 0 4000 5500]);
但这不起作用 . 我假设因为我的显示器不足以支持那么多像素,所以它不会显示 . 然后我不能保存它,因为这个数字甚至没有显示出来 .
我知道我可以在gimp或插画家之后调整大小 . 但我真的不想 .
如何以特定分辨率(600dpi)的特定打印尺寸(17cm)导出/保存pdf / eps图形?
1 回答
使用
export_fig
进行打印将裁剪生成的图形以移除任何空白区域(图形中没有内容的位置) . 因此,输出将小于您指定的Position
.为防止这种情况,您可以使用
-nocrop
选项 .指定分辨率实际上只是为了对光栅图像产生影响,对于像PDF这样的矢量图形格式,这应该不会产生影响 . 您是如何确定PDF的“分辨率”的?
另一种选择是使用内置的
print
函数来创建图像这里的
-loose
选项将确保它使用一个松散的边界框并赢得't crop the empty regions of your figure, resulting in an image of the dimensions you'重新开处方 .