違いを見つけよう:視覚的な違いをPDFワークフローの自動化に活かす
新しいタブで開きますスタイリッシュに透明性を保つ
前回のブログ記事「プリプレスPDFにおける透明度の理解」では、グラフィックが豊富なPDFにおける透明度の仕組みについて解説しました。今回の記事では、その理論を実践に活かし、プリプレスワークフローにおいてこうしたファイルをどのように扱うべきかについて探っていきます。
を使用したオブジェクトが重なり合う場合、レンダリング時には、すべての入力色に基づいて結果の色を計算する必要があります。 これは、PDF がモニター上で表示される場合や印刷される場合、および透明度を使用しない結果 PDF に変換される場合(透明度のフラット化)の 2 つの異なる状況で発生する可能性があります。
前者の場合、計算は出力デバイスの解像度およびその色空間内で、ピクセル単位で行われます。この処理は複雑になることもありますが、PDF仕様書において数学的に明確に定義されています。
2つ目のケースはまったく異なります。この場合、結果は透明度がフラット化されたPDFファイルとなります。1つ目のケースと同様に、ページ全体(あるいは少なくとも透明度を使用しているすべての領域)を画像に変換するのが、最も単純な方法です。しかし、ページ全体に対してこの処理を行うと、ファイルサイズが非常に大きくなったり、画質が低下したりしてしまいます。 もしエンジンが透過処理が施されている領域だけをラスタライズしてしまうと、フラット化された領域とフラット化されていない領域の間に目に見える境界線が生じてしまいます。そのため、高度な透過処理フラット化エンジンは、ラスタライズを避け、可能な限り多くのベクターオブジェクトを保持することを目指しており、元のオブジェクトが部分的に重なっている場合には、多くの場合、新しいベクターオブジェクトを作成します。 この処理は、出力デバイス上で行われる処理よりもはるかに複雑であり、フラット化エンジンは、複雑さを抑えるために賢明な方法でラスタライズを行うべきか、それとも新しいオブジェクトを作成すべきかを判断する必要があります。
ここでは、新しいオブジェクトがどのように作成されるかを示す、ごく簡単な例を紹介します。この簡単な例では、3つの元のオブジェクトから6つの新しいオブジェクトが生成されます。
入力ファイル:0.5の透明な青い円、その手前に0.5の透明な黄色い三角形、さらにその手前に赤い正方形
透明度の平坦化の結果:赤い四角形はそのまま残り、他の2つのオブジェクトは、色ごとに1つずつ、計6つの新しいオブジェクトに変換されます。
透明効果を多用したデザイン用PDFでは、結果として数千もの新しいオブジェクトが生成されることがあります。
つまり、透明度の高いページをフラット化すると、その領域は完全にラスタライズされるか、あるいははるかに複雑な内部構造を持つことになります。後者の場合、レンダリング性能が低下し、プリフライトや色変換、および同様の処理が複雑化します。
結論として、PDFファイルにおける透明度の平坦化は常に避けるべきであり、透明度の計算は出力デバイスでのみ行うべきであると言えます。
残念ながら、何らかの要因や他者によって、透明度をフラット化せざるを得ない状況もあります。例えば、PDF/X-1a や PDF/X-3 は、公開された当時(今世紀初頭)、透明度がまだ定義されていなかったため、透明度をサポートしていません。 もし誰かにこれらの規格のいずれかへの変換を強いられた場合、フラット化を行わざるを得ません。PDF/X-4は透明度を許可する最初のPDF規格であるため、それ以前の規格では ~すべき 使用しないでください。
しかし、複雑さが増すことだけが問題ではありません。フラット化によって元のデータ(ベクトルや画像)から新しいオブジェクトが生成される際、情報が失われてしまいます:
最も顕著な例はテキストです。文字は通常、アウトライン化されたベクターオブジェクト(または画像)に変換されるため、PDFからテキストをコピーしたり、検索したり、テキスト読み上げ機能を利用したりすることはできなくなります(結果にOCRが適用されていない限り)。
例えば画像に関連付けられているすべてのオブジェクトレベルのメタデータは、透明度の平坦化によってその画像が新しい画像に変換された場合、利用できなくなります。
ページオブジェクトを他の構造(主にアクセシビリティのためのタグ付け、レイヤー、ブックマークなど)に関連付けるためにコンテンツストリーム内に設定されたマーカーは、透明度のフラット化処理中にコンテンツストリーム内でこれらのマーカーを維持することが不可能なため、機能しなくなります。
タグやブックマークが失われることは理想的ではありませんが、印刷を目的としたPDFであれば許容できる場合もあります。しかし、レイヤーに関しては通常、さらに深刻な問題となります。レイヤーは「処理ステップ」規格の構成要素だからです。 透明度のフラット化処理中に(コンテンツストリーム内の)マーカーが削除されるため、ページ上のオブジェクトは(レイヤーがドキュメントレベルで定義されていることから)レイヤーに関連付けられなくなります。その結果、ビューアを使用すればドキュメント内のレイヤーは依然として確認できますが、ページ上のオブジェクトとの関連性が失われているため、実質的に役に立たなくなってしまいます。
レイヤーを使用して刷後工程に関する多くの情報を指定する「処理手順ファイル」は、透明部分のフラット化を行うと使用できなくなります。例えば、裁断線が他のページコンテンツと統合されてしまいます。
ただし、pdfToolbox 16 では「処理ステップ」の問題に対する解決策が用意されています。 当社のソフトウェアの新バージョンでは、部分的なフラット化が可能になりました。組み込みの透明度フラット化機能により、入力ファイルからオブジェクト(例えば、「処理ステップ」レイヤー上のすべてのオブジェクト)をフィルタリングし、残りのオブジェクトをフラット化した後、フィルタリングされたオブジェクトをページの上部に再び配置することができるようになりました。 特に「Processing Steps」の場合、これらのレイヤー上のすべてのオブジェクトはページコンテンツの上に配置する必要があり、そもそも透明度を持たせてはならないため、これは非常に有効なアプローチです。
「処理ステップ」のサンプルファイルの一つを見てみましょう:
1. レイヤーが機能するオリジナルファイル
一部のオブジェクトには透明度が設定されています。レイヤーを使用してコンテンツを分離でき、その表示/非表示をインタラクティブに変更することができます。
2. 通常の透明度フラット化を行った結果、レイヤーが機能しなくなった
3. pdfToolbox 16 による透明度のフラット化の結果 – 処理手順:オブジェクトは変更されず、レイヤーも機能しますが、PDFでは透明度が適用されなくなりました