「AppleScriptの穴」Blogアーカイブ本の作成作業には、大量のAppleScriptが使用されています。編集や執筆といった地味で地道な作業には、自動化のテクノロジーを投下しないととてもやっていられません。
「生きた事例」としてそれらをどのように使っているかをご紹介します。
・指定フォルダ以下にあるMDとPagesをソートしてPDFに書き出して連結 v4(連続複数出力可能、末尾空白ページ削除)
MarkdownによるPDF書籍の作成時にはなくてはならないScriptです。指定フォルダ以下のMarkdownとPages書類をすべてSpotlightで取得し、順次デスクトップにPDFで書き出しを行い、それらを連結します。PDFは記事単位で生成され、明示的な空白ページ(1ページの空白書類)以外の連結時には最終ページが空白であるかのチェックを行い、空白時には削除したうえで連結します。
「連続複数出力可能」というのは、複数の書籍の順次出力をサポートしているという意味です。Book1こと「AppleScript最新リファレンス」とBook2こと「最新事情がわかるAppleScript 10大最新技術」を同時に作成したので(作成期間が実質1か月ちょっとでしぬかと思いました)、その時に両方とも同時に全記事のPDF出力を行えるよう開発。複数の書籍のフォルダを指定して順次出力を行います。さすがにこれはBlogに載せていません。
電子書籍の執筆中は執筆しながら体裁を確認し、出力用のツールScriptも開発して「筆者」「編集者」「デザイナー」「開発者」という1人で何役もこなして目が回っていましたが、ツール類は一度作れば作業効率を大幅に上げたまま別の仕事(Blogアーカイブ本、とか)に使用できるのでたいへんに役立っています。自分が「原稿を書くだけの人」だったら、バイトを雇ったりしないととてもやっていられません。
また、これにInDesignの書類やPDF原稿を含めるように機能追加してもいいわけで、非常に拡張しやすく、システム化のためのベースとして活用したいところです。
・Skimのcurrent page indexをNumbers上のセルに転送してカーソル移動
PDFのTOCのデータをNumbers書類上に作成するさいに使用しています。Skimで現在表示中のページ番号をNumbersの表中の選択中のセルに文字列で転送し、Numbers上のカーソルを下方向に1つ移動させます。いいかげんTOCのデータ作成も全自動化したいところですが、PDF上で確認しつつ半自動で作成しています。それでも、すべて手作業で行うよりははるかに労力を削減できています。
・Numbersの最前面の書類からデータを取り出して指定PDFのTOCを作成する v2.scptd
Numbers上に作成したTOC(PDFしおり)データから実際に指定のPDFに階層構造つきTOCを作成するAppleScriptです。「TOCなしの数百ページのPDFなんか読みたくない」「TOCつけろ」という読者の方のありがたいアドバイスにより実戦投入。いまのバージョンはNumbersの表中の選択中のセルからデータを取得しているので、選択しなくても大丈夫なように、、、、書き換えておきます。こうして、作業上問題が発生しそうな箇所はつねにアップデートしています。
・現在表示中のページをJPEG画像で書き出す
Skim用のAppleScriptです。販売サイトに掲載する表紙などの紹介画像を作成するさいに、Skimで表示中のPDFから表示中のページの内容をJPEG画像としてデスクトップに生成します。このあたりを自動化していないと、サンプルページの掲載だけでも相当手間がかかります。
・PDFから指定ページ以降を削除
販売物を掲載したあとに、「お試し版」PDFを作成する段階で使用します。指定PDFから指定ページ以降をすべて削除するものです。これでおおよそ削除しておいてから、Adobe Acrobatで編集してTOCのうちページが存在しないものを削除したり、こまかいページの削除を行なっています。