5

MATLAB で単純な Figure を作成して PDF として保存すると、結果の PDF ファイルには豪華な境界ボックスが含まれます。

plot(1,1,'x')
print(gcf, '-dpdf', 'test.pdf');

(アウトプットの比率からして、いつもAページに入れているようです。)

PDFの周りにタイトな境界ボックスを取得する簡単な方法はありますか?

4

2 に答える 2

4

バウンディングボックスは次のようにフォーマットできます

figure(1)
hold on;
plot(1,1,'x')

ps = get(gcf, 'Position');
ratio =  ps(4) / ps(3)
paperWidth = 10;
paperHeight = paperWidth*ratio;


set(gcf, 'paperunits', 'centimeters');
set(gcf, 'papersize', [paperWidth paperHeight]);
set(gcf, 'PaperPosition', [0    0   paperWidth paperHeight]);


print(gcf, '-dpdf', 'test2.pdf');

境界線が小さい場合は、paperpositionプロパティを調整できます。

set(gcf, 'PaperPosition', [-0.5   -0.5   paperWidth+0.5 paperHeight+0.5]);

〜編集〜

Space47の回答で指摘されているように、比率の計算が間違っていたため、修正しました。(@ Space47に感謝します)。

于 2012-08-28T14:18:02.857 に答える