Speker Deck に日本語PDFをアップロードするとTranscriptが文字化けするという問題に悩まされていた。

下記のPostScriptを経由する方法で解決できた。

ただ問題があって macOS の Preview App では PostScript を処理できなくなっている。

プレビューアプリ(Preview.app)からAdobeが開発した印刷用のページ記述言語「PostScript(.ps)」と「Encapsulated PostScript(.eps)」表示/PDF変換機能のサポートを終了

Apple、macOS 14 SonomaでPostScriptとEPSファイルをPDFへ変換する機能を削除。これによりAdobeのAcrobatなどでPDFファイルを印刷できなくなっているので注意を。

Install ghostscript

これを解決するためには ghostscript を入れる。

$ brew install ghostscript

Use ps2pdf

ghostscript をいれると ps2pdf コマンドが使えるようになる。

$ ps2pdf 日本語含むPDFファイル.ps

Upload to Speaker Deck

日本語含むPDFファイル.pdf が生成されるので、それを Speaker Deck にアップロードすれば、Transcriptが文字化けせず、日本語が正しく表示された。

めでたしめでたし。

追記

この問題が再現するPDFファイルにたいして、PSファイルに変換した後にまたPDFに下記戻せば、壊れていないPDFが生成できるのでは?って思ってやってみたけど、駄目だった。

$ pdf2ps broken.pdf
$ ps2pdf broken.pd

上記のコマンドで生成されたPDFをspeekerdeckにアップロードしてもTranscriptが文字化けする。