基本的に、PDF をテキストに変換してから、Python のライブラリを使用してそのテキストの一部を分析およびクリッピングしています。Python の「クリッピング」は、実際にはテキストを別々のファイルに分割するのではなく、文字列抽出のための開始文字と終了文字の位置を持っているだけです。例えば:
the quick brown fox jumped over the lazy dog
私のpythonコードは、 4 、 9 を指定して「クイック」を切り取る可能性があります。次に、GUIプログラムにC#を使用しており、Pythonによって割り当てられたこれらの値を取得しようとしていますが、ほとんどの場合うまくいきます。PDFをテキストファイルに変換した光学式文字認識プログラムには、C#側のカウントを変更するいくつかの奇妙なUTF文字が含まれていたようです。
PDF-txt 変換の奇数文字には、"f" と "i" の文字の代わりに "fi" の文字が含まれます (他の文字も大きなファイルである可能性があります)。これは 1 文字であり、Python (および Notepad++) はこの 3 文字の位置を考慮します。
C#: "fi" の長さ = 1 文字。
Python/Notepad++: "fi" の長さ = 3 文字。
これが最終的に行うことは、文字数の違いによるオフセット クリップを提供することです。Python(Linux)で実行してクリッピングを完璧に出力しようとしたときに言ったように、テキストファイルをWindowsに転送すると、Notepad ++はそれらが正しい位置であることを確認します。C# は実際には "fi" を 1 文字としてカウントし、Notepad++ や Python は何らかの理由で 3 文字としてカウントします。
この不一致を Python 側または C# 側から橋渡しする方法が必要です。