Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Using Print command to save pdf of figure to a different directory

Asked by Thomas Jacobs on 21 Mar 2014
Latest activity Commented on by Joseph Cheng on 22 Mar 2014

Hi,

I have struggled to create a pdf of a figure and put it in a Latex directory for inclusion in an academic paper. I can create the pdf with no difficulty to the present matlab working directory which is C:\Thomas Jacobs\Dropbox\Matlab:

...
h=gcf;
set(h,'Position',[0 0 1200 800]);
set(h,'PaperOrientation','landscape');
set(h,'PaperPositionMode','auto');
print(gcf,'-dpdf','SVGL_2Yr_Annual.pdf');

however, when I try to change the target directory to a Latex subfolder:

...
h=gcf;
set(h,'Position',[0 0 1200 800]);
set(h,'PaperOrientation','landscape');
set(h,'PaperPositionMode','auto');
print(gcf,'-dpdf','C:\Thomas Jacobs\Dropbox\Latex\Research\FHLB Advances\SVGL_2Yr_Annual.pdf');

I get:

>> FHLB_SVGL2_Analysis Error using name (line 102) Cannot create output file 'C:\Thomas Jacobs\Dropbox\Latex\Research\FHLB Advances\SVGL_2Yr_Annual.pdf'

Error in print (line 210) pj = name( pj );

Error in FHLB_SVGL2_Analysis (line 70) print(gcf,'-dpdf','C:\Thomas Jacobs\Dropbox\Latex\Research\FHLB Advances\SVGL_2Yr_Annual.pdf');

This target directory is not in my matlab path and the delay between the creation of the figure on my screen and the program completion makes me wonder if this is some sort of write permission issue. While I have seen many combinations of using other commands like saveas, sprintf, etc., I have not found an exact analogy for my issue on the forum and would appreciate it if one of you could share some further troubleshooting steps for me. Thanks.

Tom

2 Comments

Salaheddin Hosseinzadeh on 21 Mar 2014

Is it a write permission problem? You're suspecting if this is the case! Did you check if you or preferably everyone has full control permission?

Thomas Jacobs on 22 Mar 2014

Salaheddin,

Thanks for the help. It is my own personal machine and my account so I hope this is not an issue, but have no idea if there is some setting Matlab has that I would have to modify. I presented more in the final answer to the question.

Tom

Thomas Jacobs

Products

2 Answers

Answer by Thomas Jacobs on 22 Mar 2014
Accepted answer

Joseph,

Thanks very much for the reply! I was unfamiliar with the movefile command (been years since I was an active user and just getting back in the swing). I played with that command for some time before finally getting it to work. Ultimately tried to write in successive directories failing to C:\ and C:\Users\Thomas Jacobs\Dropbox but all the others worked (odd). The most important part was discovering that I had left the Users directory step out of everything so far. Ultimately, was able to get this print command to work:

print(gcf,'-dpdf','C:\Users\Thomas Jacobs\Dropbox\Latex\Research\FHLB Advances\SVGL_2Yr_Annual');

Probably would not have found it save for the movefile suggestion and all the time I spent trying to get it to work. Proper format for that was:

movefile('SVGL_2Yr_Annual.pdf','C:\Users\Thomas Jacobs\Dropbox\Latex\Research\FHLB Advances');

So, thank you again for your timely assistance and have a good weekend!

Tom

1 Comment

Joseph Cheng on 22 Mar 2014

Good to hear that you were able to figure it out. Cannot believe I missed the Users, however I still try to go to Documents and Settings once and a while to look for my documents.

Thomas Jacobs
Answer by Joseph Cheng on 21 Mar 2014

can you use

...
h=gcf;
set(h,'Position',[0 0 1200 800]);
set(h,'PaperOrientation','landscape');
set(h,'PaperPositionMode','auto');
print(gcf,'-dpdf','SVGL_2Yr_Annual.pdf');
  movefile('SVGL_2Yr_Annual.pdf','C:\Thomas Jacobs\Dropbox\Latex\Research\FHLB Advances\SVGL_2Yr_Annual.pdf')  

If that's the case it might not be a permissions issue.

2 Comments

Salaheddin Hosseinzadeh on 21 Mar 2014

I don't like this, even if it works!

Joseph Cheng on 21 Mar 2014

I don't like it either! I guess I could have suggested trying to fid = fopen a random temp file? But it was something that would test out writing to the directory and I cannot see anything wrong with his command.

Joseph Cheng

Contact us