はじめに
「JavaでExcelファイル⇒PDFファイル(パスワード付)に変換する話」の記事で、ExcelファイルをPDFに変換する方法を紹介しました。
しかし、Windowsで作成したExcelファイルをLinux上でPDF化すると、期待通りの文字列で変換されない場合があります。
それなら、Windowsで使用されている文字フォントをLinuxにコピーして変換するという方法も考えられますが、商用利用や著作権の制約から望ましい選択肢とは言えません。
そこで、今回は商用利用が可能な条件下で、Windowsで作成したExcelファイルをLinux上で期待通りの文字列でPDF化する方法について説明します。
事前準備
本記事は「JavaでExcelファイル⇒PDFファイル(パスワード付)に変換する話」を前提にお話ししますが、純粋にLinuxに新しいフォントを追加したい方にもご参考になるお話になります。
簡単な作業の流れ
1. Google Fontsから文字フォントをダウンロード
2. Glyphr Studioにダウンロードした文字フォントをアップロード
3. Glyphr Studioでフォント名を変更し、ダウンロード
4. 文字フォントファイルをLinuxに反映
作業の詳細
1. Google Fontsから文字フォントをダウンロード
Google Fontsは商用利用可能な文字フォントが多数公開されています。
ここでは、PDF化したいExcelファイルで使用している文字フォントと類似している文字フォントをGoogle Fontsからダウンロードして下さい。
残念ながらExcelで使用している文字フォントと全く同じフォントはGoogle Fontsにはないですが、次に紹介するWEBアプリから好きな文字を追加したり、元の文字を修正したりすることが可能です。
2. Glyphr Studioにダウンロードした文字フォントをアップロード
Glyphr Studioは、文字フォントファイルに文字を追加・編集及び、メタデータなどを編集することができるWEBアプリケーションになります。
ここでは、Google Fontsからダウンロードした文字フォントファイルをGlyphr Studioにアップロードします。
アップロード方法は以下になります。
➀文字フォントファイルをドラッグ&ドロップでアップロード
➁ダウンロード完了後、下画像の画面に遷移
3. Glyphr Studioでフォント名を変更し、ダウンロード
続いて、アップロードした文字フォントファイルの文字フォント名を変更していきます。
文字フォント名の変更理由は、Excelファイルで使用している文字フォント名とGoogle Fontsの文字フォント名は異なるため、文字フォント名を変えずにLinux上でPDF化しても新しい文字フォントが反映されないためです。
本記事では、文字フォント名を「MS PGothic」に変更する例を紹介します。
➀メニューを開き、「Settings」を押下
➁「Font」を押下し、「Font family」を「MS Gothic」に変更
③上部メニューの「File」をから「Export OTF File」を押下し、文字フォントファイルをダウンロード
④文字フォントファイルを開いて、文字フォント名が変更されていることを確認
4. 文字フォントファイルをLinuxに反映
一般的にLinuxの文字フォントを配置するフォルダは、「/usr/share/fonts」になります。 文字フォントの反映方法は以下の通りです。
➀コマンドラインで「# fc-cache -fr」を入力
➁コマンドラインで「# fc-list | grep -i xx」(xxは追加した文字フォント名)を入力し、追加した文字フォントが反映されていることを確認。
今回の場合、以下のように表示されれば、問題なく反映されています。
[user@xx fonts]# fc-list | grep -i MS
/usr/share/fonts/MSGothic-Regular.otf: MS Gothic:style=Regular
Linuxに新しいフォントを追加する手順の説明は以上になります。
PDFへの反映の確認方法は、「JavaでExcelファイル⇒PDFファイル(パスワード付)に変換する話」の記事を参考にPDF化を行って頂き、期待通りの文字フォントが表示されれば、作業完了になります。
感想
本記事を通して、Linuxの文字フォントでお悩みの方が少しでも解決できればいいなと思います。
それにしても「Glyphr Studio」本当に便利ですよね。
文字フォントの追加も可能なので、文字化けが発生した場合、Glyphr Studioで問題のある文字を追加するだけで対応できます。
今回は、本記事に関してSmarBeeを開発する上で私も大変勉強になりました。
今後もSmartBeeチームでは、開発に関する幅広い情報を提供しています。
他にも多彩な記事を用意していますので、ぜひチェックしてみてください。
SmartBee
作業項目や現場情報の一括管理を可能にするクラウドサービスです。
SmartBeeを導入すれば、管理業務の負担が減るばかりでなく、点検現場の状況をリアルタイムで把握でき、ミスやコスト削減につながります。