私は持っているPDFファイル、そのテキストはevinceでは正しく表示されますが、テキストが検索されたり、ファイル外でコピー&ペーストされたりした場合は表示されません。たとえば、「external transport.」は、次のようにコピー&ペーストされます。
2D/28:93 /89:4758/9/.5:
私はpdfファイルを作成しましたPDFファイルのオリジナルバージョン正しく動作するには、
gs -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile=example.pdf original.pdf
このコマンドは、PDF ファイル内のさまざまな問題 (特に Windows で作成された PDF ファイル内のフォントの問題) を修復するための一般的な方法です。
- なぜコマンドが問題を引き起こすのでしょうか? PDF の問題を修正する一般的な方法として、コマンドをどのように変更すればよいでしょうか?
- 正しいテキストを検索してコピーし、外部に貼り付けることができるように、現在のバージョンの PDF ファイルをどのように修復すればよいでしょうか。実際に修復したいファイルは、同じ方法で作成され、追加の変更が加えられています。変更を維持できるように修復したいと考えています。
ありがとう。
答え1
Stack Overflowでいくつか読んで、役に立つ投稿をいくつかしました(1、2、3) は、PDF ファイルに埋め込まれた特定のフォントに問題があることを示唆しているようです。元のファイルでは次のフォントが使用されています:
$ pdffonts original.pdf
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
KPSHBO+Wingdings TrueType Custom yes yes no 5 0
KNQZHK+Arial TrueType Custom yes yes no 9 0
YLWHHJ+TimesNewRoman TrueType Custom yes yes no 13 0
HWNDJR+ArialBlack TrueType Custom yes yes no 17 0
QQRMEC+TimesNewRoman,Bold TrueType Custom yes yes no 21 0
この問題の原因はおそらく Wingdings フォントにあると推測していますが (確実ではありませんが)、おそらくこのフォントはシステム上にはインストールされていないのでしょう。少なくとも、リストされているフォントの中で、私のシステムでは見つからないのはこのフォントだけです。
$ fc-list | grep -f <(pdffonts original.pdf | grep -oP '\+\K[A-Z][a-z]+') | awk '{print $1}'
/usr/share/fonts/TTF/times.ttf:
/usr/share/fonts/TTF/arialbd.ttf:
/usr/share/fonts/TTF/ariblk.ttf:
/usr/share/fonts/TTF/arialbi.ttf:
/usr/share/fonts/TTF/ariali.ttf:
/usr/share/fonts/TTF/timesi.ttf:
/usr/share/fonts/TTF/timesbd.ttf:
/usr/share/fonts/TTF/timesbi.ttf:
/usr/share/fonts/TTF/arial.ttf:
残念ながら、Wingdingsフォントをダウンロードしようとしましたここ、次に実行しました:
unzip wingdings.zip
sudo cp Wingdings\ Regular.ttf /usr/share/fonts/TTF/Wingdings.ttf
fc-cache
フォントはインストールされるはずですが、gs
コマンドはまだ機能しません。おそらく、このフォントをまったく処理できないのgs
でしょうpdfwrite
。そのため、ファイルを正しく変換する方法があるかどうかはわかりませんgs
。おそらく、この問題のないオリジナルを使用するのが唯一の選択肢でしょう。