CAD日記

AutoCAD,DXF,DWG,SXFなどCADのことから、仮想通貨や投資関係、PC関係、プログラミング、国内海外旅行情報など何でもござれ。@caddiary

コンピュータ全般

PDFのレイヤ情報を取得する方法

投稿日:

PDFにはレイヤというやっかいな構造があって、非表示のレイヤが印刷されてしまったり、表示されてしまったりという問題をここで報告した。イラレ、フォトショ、CADデータには当たり前にレイヤという構造があるもんだから、電子ペーパーのデファクトスタンダードたるPDFにもレイヤができたのだろう。

本題のPDFのレイヤ情報を取得する方法。
iTextSharpはPDFを書き出すのが得意。読み込むことも一応できるけれども、ページを回転させたり、他のPDFと結合するなんていうファイル全体に関わることができる程度。PDF内のオブジェクト情報(レイヤ、ベクトル情報、文字など)を取得するのはできない。と誰もが思い込んでいるが、実際はできる。PDFの構造を理解した上で、iTextShrapのAPIを駆使すればできるってことを知人が証明してくれた。

以下、PDFからレイヤ情報を取得する方法の概要。
・PdfReaderでPDFファイルを開く
・Optional Content Propertiesを得る
・PDFDictionaryの関節参照からレイヤ情報を得る
・レイヤ以外の情報もあるのでスキップする
 ディクショナリー以外
 タイプがOptional Content Group以外
 名前がない
・名前、表示ON/OFF、表示順番を取得して配列変数に格納

なんてことをソースコードから読み取った。おいらがC#をよく知らんということもあるが、それにしたってなかなか難解なコードだった。アラフィフオヤジが急にプログラムをやってみようったって、一朝一夕にはいかんってことがよくわかりけり。ニッチな目的ではあるが、いつかこれが日の目を見る日があることだろう。

-コンピュータ全般

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

マシン確保する方法をみんな知らなさすぎる

上司あるいは会社がケチなもんだから、用意されたマシン(PCやサーバー)の量と質に問題があるって話をここでよくしている。もちろん無駄に金を使うのはよくないが、

no image

スライドショーアプリを探してたどり着いたのがArtSageだった

同窓会でスライドショーをやろうという発想は去年もあったんだけれども、よさげなアプリがなくて断念していたところ、今年は友人からやってくれという依頼があってここ数週間頭の片隅に残留していたのが今ようやくす …

no image

Androidデジカメ

ニコンCOOLPIX S800c を購入。 本体が35,800 円で、16GB SDHCカードが5,470円だったから、 トータルで41,270円なり。(ヨドバシ価格なので10%ポイント還元あり) 何 …

no image

niftyのメールアドレスはもう使わないと決意したがこれがなかなかたいへんだ

2008年にこんな記事を書いていた。10年後の今でもメインのメールアドレスとしてniftyを使っていたが、ここらで本気で移行しようと決意した。gmailに移行する。当時もgmailはあったがフリーメー …

no image

サーバー移動

この夏の節電対策で、サーバーを廃棄してください。 そんな案内が6月中旬に届いたことから始まった出来事だ。 物理サーバーは電気を食うし熱を発するから、仮想サーバーに 移行してくれということだった。 そん …