UbuntuデスクトップでPDFにフォントを全部埋め込みたいcups-pdf

Ubuntu16.04で試しています。

前回2記事ではFoxitReaderやMasterPDFEditorでPDFを編集してみましたが、もうひと手間必要でした。PDFを当然他の方、デバイスに渡したりする必要があるかと思いますが、その際にFontがPDFに埋め込まれていない場合に、別の環境では類似のフォントが利用されるわけですが、それがちょっと予想外のフォントが表示されることはよくありますよね。

そんな場合はフォントをPDFに埋め込む必要がありますが、その手順の防備録です。もっとスマートな方法も当然あるかとは思いますがご容赦ください。

CUPS-PDFという無料ツールを使って印刷する、という方法で検証してみます。

まずインストール

以下のコマンドでOKと思います。

$ sudo apt-get install cups-pdf

使い方は簡単で、印刷時にプリンタ一覧に「PDF」が出てくるかと思いますので、PDFを選ぶとホームディレクトリにPDFフォルダができているかと思いますので、そちらにPDFが出力されます。

実験

適当に空のPDFをLibreOfficeDrawなどでつくります。その後Foxitで適当に書き込んでみます。sample.pdfとします。

こちらが字体です。「株式会社」です。

フォント埋め込みなしPDF

でフォントの埋め込み状況を確認してみます

$ pdffonts sample.pdf

出力は以下で、embがyesになっていればフォント埋め込みです。ここではnoになっていますね。

name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
NotoSansCJKJPRegular                 CID TrueType      UniGB-UCS2-H     no  no  no      44  0

このPDFをたとえば他のデバイスで見てみます。ここではGoogleDriveにコピーしてそこでみてみます。すると見事にフォントが大きく変わっちゃってます。明朝風になってますね。

フォント埋め込みなしPDFGoogleDrive上

cups-pdfを通してみる


Foxitにもどってcups-pdfで一度別のPDFに出力しなおします。「PDF」を選んでPrintです。

CUPS-PDF利用

ホームフォルダ直下のPDFフォルダにjob・・・というファイルがこっそり出来ていますので適当に理ネームしてsample2.pdfとしてpdffontsを実行してみます。

name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
[none]                               Type 3            Custom           yes no  no      12  0

正直これがベストかはわかりませんが、とりあえずembはyesになっています。これを再度GoogleDriveでみてみます。

フォント埋め込みありPDFGoogleDrive上

今度はそれらしくなりましたね。万が一フォントが予想通りじゃない、、とお困りでしたらお試しください。

ちなみMasterPDFEditorはちゃんとフォント埋め込んでくれますね。。