質問

小規模なプロジェクトの場合、PDF ファイルを解析し、その特定の部分 (単純な文字の連鎖) を取得する必要があります。これを行うためにPythonを使用したいのですが、いくつかの方法で私が望むことを実行できるライブラリをいくつか見つけました。

しかし、いくつか調べた結果、PDF ファイルの実際の構造は何なのか疑問に思いました。オンラインのどこかに仕様や説明があるかどうか知っている人はいますか?Adobe でリンクを見つけましたが、リンクが切れているようです:(

役に立ちましたか?

解決

Adobe の参考資料へのリンクは次のとおりです。

http://www.adobe.com/devnet/pdf/pdf_reference.html

ただし、PDF はプレゼンテーションのみを目的としており、構造ではないことを知っておく必要があります。解析は簡単ではありません。

他のヒント

初めて PDF を使い始めたとき、次のことに気づきました。 PDF リファレンス ナビゲートするのが非常に難しい。ファイル構造の概要は構文にあり、アドビがドキュメント構造と呼んでいるのはファイル構造ではなくオブジェクト構造であることを理解するのに役立つかもしれません。それは構文にもあります。演算子の説明は付録 A に隠されており、コンテンツ ストリームで何が起こっているかを理解するのに非常に役立ちます。カラースペースの操作に苦労したことがある場合は、グラフィックスにそれが隠されていることがわかります。これらのヒントが、あなたが私よりも早く物事を見つけるのに役立つことを願っています。

Windowsを使用している場合は、 pdftron CosEdit オブジェクトの構造を参照して理解することができます。ファイルを確認することはできますが、保存することはできない無料のデモが利用可能です。

私が見つけたのは、 GNU PDF 入門 構造を理解するのに役立ちます。読みやすい内容が含まれています PDF ファイルの例 彼らは完全に詳細に説明しています。

その他の役立つリンク:

  • PDF 簡潔な本 長くて役立つ写真が付いています。
  • PDF の中身についての紹介 は、それほど詳しくはありませんが、簡単な概要を示し、多くの写真が含まれているプレゼンテーションです。

こちらが生です PDF 1.7のリファレンス, 、そしてここに記事があります PDF の構造を説明する ファイル。Vim を使用している場合、 pdftkプラグイン これは、ドキュメントを生の状態よりもわずかに少ない形式で探索するための良い方法です。 pdftk ユーティリティ自体 (およびその GPL ソース) は、ドキュメントを分解する優れた方法です。

私もほぼ同じことをやろうとしています。PDF リファレンスは非常に読みにくい文書です。 このチュートリアル より良いスタートだと思います。

これは少し光を当てるのに役立つかもしれません:(PDF32000.book 11ページより)

PDF 構文は、図 1 に示すように 4 つの部分として考えると最もよく理解できます。

• オブジェクト。PDF ドキュメントは、基本的な種類のデータ オブジェクトの小さなセットから構成されるデータ構造です。サブ条項7.2、「語彙規則」は、オブジェクトやその他の構文要素を作成するために使用される文字セットについて説明しています。7.3 節「オブジェクト」では、オブジェクトの構文と重要なプロパティについて説明します。サブ条項7.3.8、「Stream Objects」は、最も複雑なデータ型であるストリームオブジェクトの完全な詳細を提供します。

• ファイル構造。PDFファイル構造は、PDFファイルにオブジェクトの保存方法、アクセス方法、および更新方法を決定します。この構造は、オブジェクトのセマンティクスから独立しています。サブ節7.5「ファイル構造」は、ファイル構造について説明しています。サブ条項7.6、「暗号化」は、不正アクセスからドキュメントの内容を保護するためのファイルレベルのメカニズムを説明しています。

• 文書構造。PDFドキュメント構造は、PDFドキュメントのコンポーネントを表すために基本オブジェクトタイプを使用する方法を指定します。ページ、フォント、注釈など。サブ条項7.7、「ドキュメント構造」は、ドキュメント全体の構造について説明しています。後の条項は、コンポーネントの詳細なセマンティクスに対処します。

• コンテンツ ストリーム。PDFコンテンツストリームには、ページまたは他のグラフィカルエンティティの外観を説明する一連の命令が含まれています。これらの命令は、オブジェクトとしても表されますが、ドキュメント構造を表すオブジェクトとは概念的に異なり、個別に説明されています。サブ条項7.8、「コンテンツストリームとリソース」は、PDFコンテンツストリームとそれに関連するリソースについて説明します。

PDF ファイルをナビゲートするには、一時的な努力以上の努力が必要なようです。

Python を使用して PDF を解析したい場合は、こちらをご覧ください。 PDFマイナー. 。これは、これまでのところ PDF ファイルを解析するための最良のライブラリです。

Didier は PDF を解析するツールを持っています。

http://didierstevens.com/files/software/pdf-parser_V0_4_3.zip

またはここ:

http://blog.didierstevens.com/programs/pdf-tools/ これには、いくつかの関連する PDF 分析ツールがカタログ化されています。

別のツールは次のとおりです。

http://mshahzadlatif.wordpress.com/2011/09/28/view-pdf- Structure-using-adobe-acrobat-or-a-free-tool-named-pdfxplorer/

PDF はレイアウト指向の構造をしているため、PDF からテキストを抽出するのは困難です。ご覧いただけます。 ドキュメントとソースコード CPAN でかろうじて成功した試みの様子 (私の実装は Perl で行われています)。PDF データ構造は非常にクールでよく設計されていますが、読むよりも書くほうが簡単です。

手がかりを得る 1 つの方法は、空白のページで構成される PDF ファイルを作成することです。私のコンピュータには CutePDF Writer があり、1 ページの空白の Wordpad ドキュメントを作成しました。.pdf ファイルに印刷し、メモ帳を使用して .pdf ファイルを開きます。

次に、このファイルのコピーを使用して、重要と思われるテキストの行またはブロックを削除し、Acrobat Reader で再読み込みします。実用的な 1 ページの PDF ドキュメントを作成するのに必要な情報がいかに少ないかに驚かれるでしょう。

コードから PDF フォームを作成するためのスプレッドシートを作成しようとしています。

PDF ファイルの詳細と構造について読み始めるには、PDF リファレンス マニュアルが必要です。バージョン 1.7 から始めることをお勧めします。

Windowsでは無料ツールを使用しました PDF アナライザー PDF ファイルの内部構造を確認します。これは、リファレンスマニュアルを読むときに理解するのに役立ちます。

enter image description here

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top