レイヤーとは何か
PDF は 1 つのファイルに重なり合う複数の図面を持たせ、閲覧者が切り替えられるようにできます。この仕組みはオプショナルコンテンツと呼ばれ、切り替え可能な単位がオプショナルコンテンツグループ(OCG)です。CAD やイラスト系のツールは常用しています。寸法、ハッチング、補助線、修正雲、言語違い、印刷専用のトンボなどです。
多くの PDF にはひとつもありません。それが普通であり、このツールはエラーを出すのではなく、そのことをはっきり伝えます。
切り替えは本当に再描画する
ツリー上のスイッチはいずれも pdf.js のオプショナルコンテンツ構成の表示状態を変更し、ページを再描画します。つまり表示されているのは、そのレイヤーをオンにした閲覧者が実際に見る状態であり、シミュレーションではありません。
ラジオボタングループも尊重されます。/RBGroups は同時に 1 つしか表示できないレイヤーの集合を宣言しており、あるメンバーをオンにすると他はオフになります。ビューアーと同じ挙動です。
オブジェクトグラフが教えてくれること
pdf.js が報告するのは名前と表示状態だけです。それ以外は /OCProperties から直接読む必要があり、そこにこそ意外な事実があります。
/D /BaseState—/OFFなら/ONに挙がったグループ以外はすべて非表示で始まります。/D /Locked— ビューアーが閲覧者に切り替えさせないレイヤーです。/D /AS— 使用条件の辞書。印刷時・書き出し時・一定倍率を超えた時にレイヤーが自分で消えるのは、この仕組みによります。- 各グループの
/Usage—/Print /PrintState /OFFは本物の落とし穴です。画面では正しく見えるのに、紙にはまったく出ません。 /Intent—/Viewではなく/Design用途のグループは、通常のビューアーからは完全に無視されます。- どのページが各グループを参照しているか。
/Resources /Properties、/OCを持つフォーム XObject、/OCを持つ注釈を調べて求めます。どこからも参照されないグループは、宣言されていてもインクを一滴も置きません。
統合
現在の表示状態を焼き込んだコピーを書き出せます。各ページのコンテンツストリームをたどり、非表示グループの /OC … BDC … EMC の区間を削除します(入れ子のマークコンテンツを数えて正しい EMC を対応づけます)。非表示のフォーム XObject と注釈も一緒に落とし、/OCProperties を削除します。
その主張は描画によって確認されます。選んだ設定で元ファイルを描画し、統合後のファイルをそのまま描画して、ページごとの最大ピクセル差を報告します。両者がファイル本来の既定表示と同一なら、何かを変えたかのように匂わせず、そのまま同一だと伝えます。
プライバシー
ファイルの読み取り・切り替え・書き出しはすべてブラウザー内で完結します。アップロードは行われません。
Tiny Online Tools







