Print an image with a fixed size

7 views (last 30 days)
Rudolf
Rudolf on 27 Sep 2011
Hello everyone,
I would like to print an emf-file with a fixed size of 21x12cm:
hFig = figure;
set(hFig, 'PaperUnits', 'centimeters');
set(hFig, 'PaperSize', [21 12]);
print(hFig,'-dmeta','testfile');
But the created image has only the size of 13.4x10.1cm! Why it doesn't work?
Many thanks in advance for your help!

Accepted Answer

Patrick Kalita
Patrick Kalita on 27 Sep 2011
You should use the 'PaperPosition' property to adjust the output size, not 'PaperSize'. However, even if you make that change, you'd find that it still doesn't work. There's a bug report about it: http://www.mathworks.com/support/bugreports/231161.
While the print command doesn't give you the correct size when exporting to an EMF-file, the File -> Export Setup... dialog will get it right. If you don't have too many figures to export, that might be something check out.
  1 Comment
Rudolf
Rudolf on 27 Sep 2011
Hello Patrick, Thank you for the hints!
But even if I use Export Setup... dialog I get wrong size image (19.0 x 10.9 cm). The possible reason is the resolution of my desktop: 106 dpi instead of default value 96 dpi.

Sign in to comment.

More Answers (1)

Rudolf
Rudolf on 27 Sep 2011
Btw, I found another workaround:
style = hgexport('factorystyle');
style.Width = '21';
style.Height = '12';
style.Units = 'centimeters';
style.ApplyStyle = '1';
hgexport(hFig,'-clipboard',style,'applystyle', true);
drawnow;
but there is still this issue with a desktop resolution...

Products

Community Treasure Hunt

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

Start Hunting!

Translated by