見出し画像

書籍データの二次利用 その2 〜PDFから大量の画像を抽出する〜

今回は実際に作業したお仕事を紹介したいと思います。
お仕事の内容はPDFの任意の箇所から画像を抽出することです。

抽出した画像はクライアントが所有するアプリケーションに使われます。
PDFは各ページでレイアウトが共通しています。画像は解像度とファイル名に統一ルールがあります。

内容はそれだけです。
作業的にはたいしたことはありませね。
ただ、
量が、
とにかく、
多い!
PDFは書籍28冊分、対象は736ページ、1ページ内のPNG化する箇所は約10点、総PNG数は約7,500点でした。
めちゃくちゃ多いです。とてもじゃないけど手作業ではやってられません。
この大量の画像作成を効率的に行う方法をご紹介したいと思います。

ちなみにクライアントは大手通信教材メーカーです。
そして僕の立場は孫請けなので版元とは直接やりとりしていません。w
皆様、お仕事お待ちしております。

まず、正攻法でPDFから任意の箇所の画像を抽出するにはどうするか?というと、

1.PDFを画像に変換
2.Photoshopで画像を抽出
3.検証

のような流れではなかろうかと思います。
大変なのは2のPhotoshopでの抽出作業で、1点1点目視で確認しながらの手作業となります。
大量の処理をこの手順でこなすとなるとあまりにも時間がかかります。
そして、検証も1点ずつの目視確認となり大変です。
正攻法で作業した場合の総作業時間数は、1点の作業時間を5分(検証込み)とした場合、
5分×7,500点=37,500分
37,500分を時間に直すと625時間となります。
まじかよ、ってなりますねw
これを作業人月で試算してみます。
DTPオペレーターの1人月の時間を160時間とした時にかかる作業月数は以下のようになります。
625時間÷160時間=約3.9ヶ月
1人で作業=約3.9ヶ月
2人で作業=約2ヶ月
3人で作業=約1.3ヶ月
4人で作業=約1ヶ月
と、なります。
まじかよ、ってなりますねw
これを読んでいるあなたがお勤めの現場ではこの作業1点分の単価はおいくらになるでしょう?w

もちろん、正攻法は却下です!

そんな訳で僕は方法を考えました。
まず、画像の効率的な作成方法です。
大量の画像を効率的に作成するには、作成作業を一括で行うことが有効です。
一括で作成することによって、設定漏れやミスを防ぐことができます。
次に、検証を効率的に行う方法です。
検証すべきポイントは抽出範囲、ファイル名、画像の設定(解像度など)の3つです。
抽出範囲とファイル名は一覧にまとめることによって確認作業の効率化をすることができます。
画像の設定は一括で処理を行うことにより、すべてのファイルを検証する必要は無くなります。
上記を踏まえ以下のような手法を考えました。

1.InDesignにPDFを張り込む。
2.抽出対象にテキストフレームを配置しファイル名を入力。
3.テキストフレーム背面のPDFを抽出し画像を作成。
InDesignを使用した理由はページ物に強く、画像の作成も可能、そしてScriptでの自動処理が可能なためです。
上記の1〜3のそれぞれの工程をScript開発を行い自動で処理を行いました。
このような作業を行うことによるメリットは以下の2点です。
・自動で処理を行うことにより画像の設定(解像度など)の検証は不要となります。
・配置したテキストフレームを確認することにより、抽出範囲とファイル名の検証をまとめて行うことが可能です。
デメリットはScript開発にはある程度時間が必要であるということです。

開発したScriptについて
1.InDesignにPDFを張り込む。
InDesignにページを追加、PDFを張り込み、をPDFのページの数だけ繰り返します。貼魔王みたいな感じですね。
2.抽出対象にテキストフレームを配置しファイル名を入力。
まず、配置パターンを抽出。
レイアウトが共通だったため画像抽出位置はパターン化できました。
次に、CSVを作成。ファイル名などの情報を記載したエクセルを作成し、CSV出力。エクセルなのでサクッと作成できます。
そして、テキストフレームの配置処理。
CSVを読み込み、テキストフレームを作成し、パターン位置に配置し、ファイル名を入力、を繰り返します。
テキストフレームには画像抽出位置だということがわかるように独自の設定をしておきます。
3.テキストフレーム背面のPDFを抽出し画像を作成。
配置したテキストフレームを読み込み、そのフレームの背面のPDFをフレームの範囲のみ抽出、ファイル名を付けたPNG画像を作成、を繰り返します。
上記3つを1週間ほどで開発しました。

結果、作業は1人で2週間ほどで完了しました。
内訳は開発に1週間、作業に1週間ほどでした。

下記は今回の作業内容の割合を画像の点数別にかかる時間を表にしたものです。

上記のグラフでは画像の数が500点から1000点の間に「正攻法」と「自動処理」にかかる時間が逆転します。
このように反復作業は点数が多いほどScript開発を行うメリットがあることが解ります。
今回のような案件をお考えの際にはScriptを取り入れた作業をお勧めいたします。
自動での処理は手作業に比べてとてもスピーディです。
そして、処理内容を間違えることがないので人為的なミスを回避でき、検証作業を簡略化できます。
このようにScript開発を取り入れた作業では納品データの安全をお約束することが可能です。(ただ、Scriptがちゃんとできていればの話ですが。)
ただし、Script開発にはある程度の期間が必要となります(内容によりますが)。
なので全体の作業量を考え、Script開発が合理的か非合理的かの判断が必要になります。

版元の皆様、制作完了後の書籍のPDFはございませんか?
そのPDFもったいないとお思いではありませんか?
せっかく作った書籍です、印刷だけで終わらせず二次利用をお考えになるのはいかがでしょうか。

最後に宣伝ですが、今回ご紹介したような内容の案件はScript開発できる担当者がいれば難なくこなすことが可能かと思います。
もし、いらっしゃらない場合は私がお手伝いすることもできます。
ご所望の際はご連絡いただければと思います。
どうぞ宜しくお願い致します。
ツイッターのダイレクトメッセージからご連絡願います。
https://twitter.com/KappaCauser

下記の動画で実際にどのような流れで作業を行うかを紹介しています。


この記事が気に入ったらサポートをしてみませんか?