-1

ファイル自体の内容をテキスト形式で実際にダンプする方法を探しています。例: 辞書オブジェクトは必要ありません。ある種の抽出戦略オプションは必要ありません。itextsharp が解析に使用するのと同じテキスト ドキュメントが必要なだけです...文字列または文字列ビルダーとしての全体を...

これまでのところ、ツールを使用してこれを行う方法をまだ見つけていません...私の問題は、動的PDFをC#アプリケーションに読み込もうとしていることです...そして、それらの動的PDFができないことは誰もが知っていますiTextSharp によって解析されます (AcroForm と AcroFields は常に空になります)。したがって、ファイル全体の実際のテキスト ダンプを取得できれば、それがどのように見えるかを確認し、この特定のタスクのために自分で解析できると考えました (例: make受信できることがわかっている各ドキュメントのクラスを作成し、見たものに基づいてそこにマップを作成します)。

誰かがそれを手伝ってくれたり、C# で PDF の XML ソースを抽出する方法を見つけたり (LiveCycle の [XML ソース] タブをクリックするようなもの) を手伝ってくれたりしたら、大歓迎です。

ありがとう!

マット

4

3 に答える 3

2

生のテキスト形式で各ページの実際の演算子とコマンドを探している場合は、次のコードを試してください。

    var reader = new PdfReader("test.pdf");
    int intPageNum = reader.NumberOfPages;
    for (int i = 1; i <= intPageNum; i++)
    {
        byte[] contentBytes = reader.GetPageContent(i);
        File.WriteAllBytes("page-" + i + ".txt", contentBytes);
    }
    reader.Close();
于 2012-12-11T19:36:49.630 に答える
1

ファイル自体の内容をテキスト形式で実際にダンプする方法を探しています。例: 辞書オブジェクトは必要ありません。ある種の抽出戦略オプションは必要ありません。itextsharp が解析に使用するのと同じテキスト ドキュメントが必要なだけです...文字列または文字列ビルダーとしての全体を...

残念ながら、itextsharp が解析に使用するデータはまだテキストではありません。そのデータの演算子は何らかのテキスト形式で与えられますが、実際のグリフは完全に任意のアドホック エンコーディングで与えられる場合があります。そうは言っても、使用中のコンポーネントにとって最も単純なソリューションであるため、多くの場合、いくつかの標準エンコーディングが使用されます。ただし、一般的にはそれを当てにすることはできません。VahidN による回答は、そのコンテンツの開始点にアクセスする方法を示しています。ただし、彼が抽出したページ コンテンツ データに は、さまざまなオブジェクトに含まれるリソースへの参照のみが含まれていることも珍しくありません。

私の問題は、動的PDFをC#アプリケーションに読み込もうとしていることです...そして、それらの動的PDFをiTextSharpで解析できないことは誰もが知っています(AcroFormとAcroFieldsは常に空になります)、

これは、実際にはまったく別のタスクが手元にあるかのように聞こえます。動的フォームとそのコンテンツはページ コンテンツの一部ではなく、別の XML フォーム アーキテクチャ ストリームに格納されます。

iText in Action, 2nd editionの第 8 章では、XFA ストリーム データにアクセスする方法についていくつかの情報を提供しています

XFA ストリームを簡単に操作するために、iText XML Worker プロジェクトも参照してください。

于 2012-12-12T12:03:00.173 に答える