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

 채택된 답변

KSSV
KSSV 2016년 11월 12일

17 개 추천

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

za
za 2017년 6월 2일
Is there a way to save it as pdf with fill page?
Ghost
Ghost 2019년 3월 1일
편집: Ghost 2019년 3월 1일
fig=gcf; % your figure
fig.PaperPositionMode='auto';
print('Name_of_file','-dpdf','-fillpage')
Cyril Justin
Cyril Justin 2019년 11월 20일
How do you save multiple figures on the same pdf?
Marco Torres
Marco Torres 2020년 7월 19일
To save several matlab figures on the same pdf, you can use the report generator toolbox.
Michael Judge
Michael Judge 2021년 4월 9일
@KSSV, Thank you so much for this. It's going to save me and my group so much time.
Saunok Chakrabarty
Saunok Chakrabarty 2022년 1월 20일
Could you explain how you're using screenposition here?

댓글을 달려면 로그인하십시오.

추가 답변 (3개)

Sujay Kadam
Sujay Kadam 2021년 7월 1일
편집: Eric Sargent 2023년 12월 20일

9 개 추천

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

Parth Patel
Parth Patel 2021년 12월 11일
This is the most perfect solution one can find for this problem. Thank you so much :)
Sujay Kadam
Sujay Kadam 2021년 12월 12일
You're welcome! I'm glad you found this helpful.
Md Modassir Firdaus
Md Modassir Firdaus 2022년 9월 19일
Hi Sujay,
How can I change the only font size of legend ? It seems that the font size of every thing is same
Hi Firdaus,
Kindly change in the following line '12' to 'auto'...
figure_property.FontSizeMin= '12';
Katty
Katty 2023년 7월 25일
Hi! Is it possible to generate this same pdf but in a horizontal format?
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.

댓글을 달려면 로그인하십시오.

Richard Quist
Richard Quist 2021년 12월 11일

4 개 추천

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

Ramprakash Ananthapadmanaban
Ramprakash Ananthapadmanaban 2023년 8월 29일
'exportgraphics' function works well and even in subplots. Thanks

댓글을 달려면 로그인하십시오.

Ish Jain
Ish Jain 2019년 9월 9일

0 개 추천

saveas(gcf,'filename.pdf')
!pdfcrop filename.pdf filename.pdf'
pdfcrop is useful if you are saving pdf for latex and you are using Linux.

카테고리

도움말 센터File Exchange에서 Printing and Saving에 대해 자세히 알아보기

태그

질문:

2016년 11월 12일

댓글:

2026년 3월 5일 13:34

Community Treasure Hunt

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

Start Hunting!

Translated by