2017-01-19 6 views
0

PDFファイルからテキストを読み込み、その後、Pythonを使用して同じテキストを別のPDFに書き戻そうとしています。テキストが読み込まれた後、私はコンソールにそれを印刷した文字列の表現は次のとおりです。合字でPDFファイルを読み書きする?

Officially, it’s called 

しかし、私はこのテキスト文字列のrepr()を印刷するとき、私は以下を参照してください。

O\xef\xac\x83cially, it\xe2\x80\x99s called 

これは私にとって意味のあるものです。これらはPDFの記号の合字です。つまり\ xef \ xac \ x83は 'ff'の合字を表します。問題は、私はReportLabのライブラリを使用して、PDFにこの文字列を記述する際に下図のように、PDFファイルは、所定の位置に黒のシンボルを持っていることです。

enter image description here

これが唯一の特定の合字で発生します。私は、PDFに書き込む文字列にこれらの合字が含まれていないか、またはそれらのすべてを置き換える効率的な方法があるように、私ができることが何であるか疑問に思っています。

+1

ここではどのフォントを使用していますか? 'ffi'合字を含んでいますか? – usr2564301

答えて

0

あなたの入力は正しいと思われますが、の出力には文字が表示されていますが、それがあるフォントを使用してください。 ここで使用しているフォントは、それを含んでいない標準のArialフォントです。

(主にお使いのプラットフォームに応じて、これらのいくつかはオープンソースです)ヒント:

  • はArial UnicodeのMS
  • ルシーダグランデ
  • Calibri
  • カンブリア
  • コーベル
  • ドロイドサンズ/ドロイドセリフ
  • Helvetica Neue
  • Ubuntuの

あなたが望んでいない、またはフォントを変更するには、できないならば、PDFにテキストを書き込む前に、あなたのプログラムでプレーンな文字ffiとシーケンス\xef\xac\x83を交換してください。 (そしてあなたが言及した他の特定の合字についても同様です。)

0

私がやったことは、文字を自分のテキストファイルからコピーして、その上で.replaceを実行することでした。つまりstr.replace( 'ff'、 'ff') - これが同じに見える場合は同じです。左側のパラメータは合字で、右側のパラメータは2つのfです。また、# - - コーディング:utf-8 - - を忘れないでください。

関連する問題