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

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

Connectez-vous pour commenter.

Réponse acceptée

Kojiro Saito
Kojiro Saito le 7 Fév 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 commentaires
Takehide Kimura
Takehide Kimura le 7 Fév 2022
ご教示いただきありがとうございます。
無事に解決することができました。
とても勉強になりました。
この度はありがとうございました。
Kojiro Saito
Kojiro Saito le 8 Fév 2022
解決して良かったです。exportgraphicsのPDFでの文字化けについて開発部門にも伝えておきます。
差し支えなければ回答の「採用」をお願いします。

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 印刷と保存 dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!