ぽんぽこ日記

プログラミング、読書、日々の生活

PDF

PDFの文書構造を取り出す

今回は、PDF文書の目次情報を取得する方法について記します。アウトラインそのものはPDFカタログの「Outlines」から取得できます。このエントリは木構造になっているので、深さ優先で、「First」項目をスキャンし、木をスキャンし終わったら「Next」項目をス…

アジア言語圏のPDFのテキスト抽出 3

フォント情報から文字コードを得る方法です。まず、Font情報はそのフォントを使用するページのResourceとして登録されているので、その情報を取り出します。 CGPDFPageRef page; // page ページオブジェクトを取得。。。 CGPDFDictionaryRef pageDict = CGPD…

アジア言語圏のPDFのテキスト抽出 - 2

前回の続きです。ponpoko1968.hatenablog.com PDFの文字列描画命令は、TJ、Tj演算子のオペランド文字列のエンコードとキャラクタセットは、先だって実行されたTmオペレータのフォントの指定に従っています。 たとえば、 /C2_0 1 Tf 0 Tc 4.093 0 Td <0DFA0F6…

プリレンダリングした画像イメージを圧縮形式でキャッシュする方法

意外と日本語のエントリが少ないのでメモ。PDFページの表示など、レンダリングして画像イメージを生成するのに非常に時間がかかってユーザビリティを損ねる場合、あらかじめプリレンダリングした画像イメージをキャッシュとして置いておきたい。しかしiOSデ…

アジア言語圏のPDFのテキスト抽出

この手のアプリ作っている人には既知のことなんだろうけど、このあたりでアジア言語圏で作られたPDFから抽出したテキストが文字化けするという話題があって、下記の方法で一応解決できたぽいのでメモ。 "TJ"や"Tj"のオペレータコールバックから、 static voi…

ScanSnap

買いました。前評判通りすばらしい製品で、読み取り速度が速いので、なんでもスキャンしたくなります。 問題はその後の整理。スキャンしたドキュメントはOCRによる文字情報がついたPDF形式で保存されるので、Macの場合、spotlightで全文検索すればだいたい見…