Save a figure as pdf

1.479 Ansichten (letzte 30 Tage)
friet
friet am 12 Nov. 2016
Bearbeitet: Eric Sargent am 20 Dez. 2023
I have figures and I am using the command below to save it as pdf. Is there any way to save it directly as pdf instead of saving as .ps and convert to .pdf.
print(figure(i), '-append', '-dpsc2', 'E:\myfigure.ps');
Thanks

Akzeptierte Antwort

KSSV
KSSV am 12 Nov. 2016
saveas(gcf,'myfigure.pdf')
Or
set(gcf,'Units','inches');
screenposition = get(gcf,'Position');
set(gcf,...
'PaperPosition',[0 0 screenposition(3:4)],...
'PaperSize',[screenposition(3:4)]);
print -dpdf -painters epsFig
The first two lines measure the size of your figure (in inches). The next line configures the print paper size to fit the figure size. The last line uses the print command and exports a vector pdf document as the output.
  6 Kommentare
Michael Judge
Michael Judge am 9 Apr. 2021
@KSSV, Thank you so much for this. It's going to save me and my group so much time.
Saunok Chakrabarty
Saunok Chakrabarty am 20 Jan. 2022
Could you explain how you're using screenposition here?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

Sujay Kadam
Sujay Kadam am 1 Jul. 2021
Bearbeitet: Eric Sargent am 20 Dez. 2023
Update: Starting in R2021b, you can use exportgraphics to directly create PDF files containing multiple figures:
% append each of the figures to output.pdf
for i=1:numFigs
exportgraphics(figure(i), 'output.pdf', 'Append', true);
end
(Original Answer prior to R2021b)
May be this has already been answered somewhere else, but I thought I would share what I usually do for generating plots in pdf format. Run the following code after generating a figure:
clear figure_property;
figure_property.units = 'inches';
figure_property.format = 'pdf';
figure_property.Preview= 'none';
figure_property.Width= '8'; % Figure width on canvas
figure_property.Height= '11'; % Figure height on canvas
figure_property.Units= 'inches';
figure_property.Color= 'rgb';
figure_property.Background= 'w';
figure_property.FixedfontSize= '12';
figure_property.ScaledfontSize= 'auto';
figure_property.FontMode= 'scaled';
figure_property.FontSizeMin= '12';
figure_property.FixedLineWidth= '1';
figure_property.ScaledLineWidth= 'auto';
figure_property.LineMode= 'none';
figure_property.LineWidthMin= '0.1';
figure_property.FontName= 'Times New Roman';% Might want to change this to something that is available
figure_property.FontWeight= 'auto';
figure_property.FontAngle= 'auto';
figure_property.FontEncoding= 'latin1';
figure_property.PSLevel= '3';
figure_property.Renderer= 'painters';
figure_property.Resolution= '600';
figure_property.LineStyleMap= 'none';
figure_property.ApplyStyle= '0';
figure_property.Bounds= 'tight';
figure_property.LockAxes= 'off';
figure_property.LockAxesTicks= 'off';
figure_property.ShowUI= 'off';
figure_property.SeparateText= 'off';
chosen_figure=gcf;
set(chosen_figure,'PaperUnits','inches');
set(chosen_figure,'PaperPositionMode','auto');
set(chosen_figure,'PaperSize',[str2num(figure_property.Width) str2num(figure_property.Height)]); % Canvas Size
set(chosen_figure,'Units','inches');
hgexport(gcf,'filename.pdf',figure_property); %Set desired file name
Warning: Style sheets will not be supported in a future release.
  6 Kommentare
Katty
Katty am 25 Jul. 2023
Hi! Is it possible to generate this same pdf but in a horizontal format?
Sujay Kadam
Sujay Kadam am 25 Jul. 2023
Hi,
You may want to change the values in the following lines:
figure_property.Width= '8'; % Figure width on canvas
figure_property.Height= '11'; % Figure height on canvas
If the width is larger than the height, the resulting plots would have a more horizontal aspect ratio.
For example,
figure_property.Width= '16'; % Figure width on canvas
figure_property.Height= '9'; % Figure height on canvas
would produce plots that would be suitable for a typical computer screen.

Melden Sie sich an, um zu kommentieren.


Richard Quist
Richard Quist am 11 Dez. 2021
In R2021b and later you can use exportgraphics to directly create PDF files containing multiple figures:
% append each of the figures to output.pdf
for i=1:numFigs
exportgraphics(figure(i), 'output.pdf', 'Append', true);
end
  1 Kommentar
Ramprakash Ananthapadmanaban
'exportgraphics' function works well and even in subplots. Thanks

Melden Sie sich an, um zu kommentieren.


Ish Jain
Ish Jain am 9 Sep. 2019
saveas(gcf,'filename.pdf')
!pdfcrop filename.pdf filename.pdf'
pdfcrop is useful if you are saving pdf for latex and you are using Linux.

Kategorien

Mehr zu Printing and Saving finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by