図をpdfにて出力す​る際に生じる日本語の​文字化けについて

22 views (last 30 days)
Takehide Kimura
Takehide Kimura on 5 Feb 2022
Commented: Kojiro Saito on 8 Feb 2022
ラベルに日本語を含む図を作成し、
「exportgraphics」を用いてpdf形式にて図を保存することを試みています。
しかし、出力されたpdfファイルを開くと
図のラベルの日本語が「#######」と表示され、正しく記載されません。
この問題を解決する方法はありますでしょうか。
なお、MATLABのバージョンはR2021aです。
ご教示いただけますと幸いです。
  2 Comments
Kojiro Saito
Kojiro Saito on 7 Feb 2022
OSはWindowsでしょうか?それともMacやLinuxでしょうか?
また、MATLABで現在使用しているフォント名を教えて下さい。
s = settings;
s.matlab.fonts.codefont.Name
でリターンされる値のActiveValueが現在使用しているフォント名です。
Takehide Kimura
Takehide Kimura on 7 Feb 2022
コメント頂きありがとうございます。
OSはmacで
ActiveValueは 'Monospaced'
になります。

Sign in to comment.

Accepted Answer

Kojiro Saito
Kojiro Saito on 7 Feb 2022
Macの場合、exportgraphicsでPDFにするとフォントの種類によっては埋め込みがうまくいかないようです。R2021bでも同様の症状が発生しました。Windowsでは起こりませんでした。
2つワークアラウンドをご提示します。
(1) Figureを画像ファイルで保存してから再度読み込んでexportgraphicsをかける
exportgraphics(gcf,'out.png')
img = imread('out.png');
exportgraphics(gcf, 'out.pdf')
PNGにしてからimreadで読み込んでexportgraphicsでPDFにしています。日本語ラベルも表示されるようになります。
デメリットは、PDFのファイルサイズが約380KBほどに大きくなってしまうことと、日本語ラベルが画像として埋め込まれているので、PDFのキーワード検索でヒットしなくなるということです。
(2) FigureをsaveasまたはprintでPDFに保存する
saveasprintでもFigureをPDFファイルに保存することができます。
saveas(gcf, 'out.pdf')
% または
print(gcf,'out','-dpdf')
デメリットは、exportgraphicsのようにPDFの余白がタイトになっていないところで、必要に応じて調整する必要があります。
【ドキュメント】余白を最小限にしたプロットの保存を参考にPDFの余白を変更できます。
fig = gcf;
fig.PaperPositionMode = 'auto'
fig_pos = fig.PaperPosition;
fig.PaperSize = [fig_pos(3) fig_pos(4)];
print(gcf,'out','-dpdf')
  2 Comments
Takehide Kimura
Takehide Kimura on 7 Feb 2022
ご教示いただきありがとうございます。
無事に解決することができました。
とても勉強になりました。
この度はありがとうございました。
Kojiro Saito
Kojiro Saito on 8 Feb 2022
解決して良かったです。exportgraphicsのPDFでの文字化けについて開発部門にも伝えておきます。
差し支えなければ回答の「採用」をお願いします。

Sign in to comment.

More Answers (0)

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!