Using print to export matlab figures to pdf: How to KEEP borders (and not crop them)

7 次查看(过去 30 天)
I am trying to export a matlab figure to a pdf file using print function.
set(gcf, 'InvertHardCopy', 'off', 'PaperType', 'usletter');
print(gcf, 'sample_output', '-dpdf', '-r400');
The output I see is of acceptable quality but the usual white space around figure is cropped in the output. I want to keep the surrounding space.
Any help would be great!

回答(1 个)

Alec Jacobson
Alec Jacobson 2020-10-18
This question has been asked many times with zero answers that I could find. Here's a hacky partial work around for 2D plots where a single axis fills the full figure window. It will add a line from the bottom-left corner to the top-right so when MATLAB crops the figure (without asking) it will have no choice but to leave the everything alone.
% add a white line from corner to corner
hold on;plt(reshape(axis,[],2),'-w');hold off;
% put it in the back
set(gca,'Children',circshift(get(gca, 'Children'),-1));
% print to .eps file
print('foo.eps','-depsc');
Assumes background is white and manipulates the current axis and figure. Would be great to see MATLAB address this problem (or point out an existing solution).

类别

Help CenterFile Exchange 中查找有关 Interactive Control and Callbacks 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by