1

質問が私のものと同じである多くのサイトや投稿を見つけましたが、それらすべてに共通しているように見えるのは、人々が特定の場所に新しいテキストを挿入する方法の例を挙げて答えていることです. 私が制御できない別のプログラムによって生成された PDF ドキュメントがあり、クライアントがサインオンするための行がありますが、その行は絶対的な位置にないため、AssureSign と呼ばれるサービスが正しく機能しません。署名欄の位置を知る必要があります。そのため、署名欄の位置を見つけてその情報を assuresign システムに送信する新しいプログラムを作成する必要があります。

これは本当に簡単なはずですが、何らかの理由で取得できません

4

3 に答える 3

1

iText (Sharp) のパーサー パッケージを利用して、特定のテキストの位置を見つけることができます。ただし、そのパッケージの主な使用例はテキスト位置検出ではなくテキスト抽出であるため、独自の RenderListener を実装する必要があります。

たとえば、単語の個々の文字が任意の順序で別々に入力される可能性があるなど、考えているほど簡単ではありません。

PS:

ただし、最初に、署名の行が文字で構成されているか(質問が暗示しているように)、それが描かれたパスであるかどうかを確認する必要があります。さらに、その行がドキュメント内で一意であるかどうかを確認する必要があります。

前者の場合、必要な RenderListener 実装は、RenderText メソッドで処理するために転送された TextRenderInfo オブジェクトを検査する必要があります。そのテキスト コンテンツに署名行を構成する一意の文字が含まれている場合、この TextRenderInfo の位置データを保存する必要があります。行の文字が一意でない場合は、それらを一意にする追加の基準を見つける必要があります。たとえば、先行する文字列や、ドキュメント内でそれらの文字が最後に出現するという事実などです。

後者の場合、現時点ではパスを報告しないため、パーサー パッケージの機能を多少拡張する必要があります。iText メーリング リストによると、そのような拡張機能が ToDo リストに含まれています。

于 2012-10-13T19:39:18.660 に答える
0

この質問は、あなたが達成したいこととは直接関係していませんが、間接的に関係しています

JCISは、VBを使用しているにもかかわらず、特定のテキストを見つけるという非常に困難なタスクを示す優れたアプリケーションを投稿しました。vb> c#コンバーターに接続するほど簡単ではありませんが、翻訳可能である必要があります。これは、あなたが思うかもしれない達成するのは簡単な作業のように思えるかもしれませんが、PDFはドキュメント形式ではなく、技術的には表示形式です。これら2つの違いは、これが非常に長いプロセスになる理由です。

于 2012-10-18T13:48:20.183 に答える
-1

まず、単語だけが英語の場合はパースを簡単に見つけることができますが、ドキュメントが英語でない場合は、言語のフォントを正確にUNICODEで理解する必要があります。

于 2012-10-16T08:58:18.233 に答える