技術書典11がぼちぼちやってきます。技術同人誌作成されている著者の方々もそろそろ締め切りに追われているところではないでしょうか。
技術同人誌作成において最後の壁となるのが印刷所への入稿です。隠しノンブルの追加やフォントの埋め込みといった部分が印刷という分野で求められるので、印刷所にお願いした後で慌てる&調べてみてもよく分からない!と困るケースが多いのではと思います。
これらを補助するために(主に自分用ですが)ツールを作成し、コンテナ化して公開することにしました。
コンテナがやってくれること (フォント埋め込み)
コンテナは入稿直前の最終工程で使用することを想定しています。
Re:VIEW や Re:VIEW Starter など、使っている場合にはほとんどのフォントデータが埋め込み済みにしてくれます。自分もこちらを使用しています。しかし、 Helvetica フォントだけは埋め込みしてくれず課題でした。
隠しノンブルの追加についても、最近ではこれらのツールが補助してくれるためあまり出番はなくなりましたが、多少カスタムができるようなものを持っておきたいと考え、本ツールにいれています。
使い方は、以下の通りです (要 Docker Desktop for Windows)。
“C:\mybook” に入力のファイルがあるとして、処理結果を同場所 output.pdf として出力します。
docker run -v C:\mybook:/doc techlabxe/preprintproc submission input.pdf output.pdf
カレントディレクトリで実行したい場合には以下のコマンドのほうが便利でしょう。
docker run -v %CD%:/doc techlabxe/preprintproc submission input.pdf output.pdf
TCPDF (PHP) や PDF-Lib を検証した結果、どれも Helvetica フォントデータを埋め込みはできなかったため、 Ghostscript にお願いする結果となりました。
フォント埋め込みの結果は冒頭の画像のとおりです。隠しノンブルの追加については以下のサンプルのように、端に各桁が縦に並ぶように配置するものとしています。
今は決め打ちで、ページ端に配置するようにしています。
紙面を端まで使うような場合(トンボデータを必要とする場合) においては、現時点で対応できていません。また、 A5/B5 のサイズのみ対応です。
コンテナがやってくれること(電子版作成)
次に、コンテナが持っている機能として電子版の作成の補助です。
電子版においても、表紙(表・裏) を設定したいじゃないですか。表紙データを PNG で裏表それぞれ作成してこれらを本文と結合する機能を持っています。
使い方は以下の通りです。
表紙表(front.png) と、本文(body.pdf)、裏表紙(back.png) と入力として使用し、 処理結果を同場所 output.pdf として出力します。
docker run -v %CD%:/doc techlabxe/preprintproc ebook front.png body.pdf back.png output.pdf
公開場所
コンテナは、 Docker Hub にてビルド済みのイメージを配布しています。
- https://hub.docker.com/r/techlabxe/preprintproc
またコンテナを生成するソースコードは GitHub にて公開しています。
自由に使用してもらって構いませんが、各自の責任において使って下さい。修正のプルリクエストは受け付けておりますので、何か発見したら送って頂けたらと思います。
さいごに
本コンテナが、技術同人誌作成の最終工程に困っている人の助けになれば幸いです。
余談ですが、今回初めて GitHub と Docker Hub の連携を行い、自動でイメージビルドが設定されるようにしてみました。これは便利ですね。