私はちょうど PS->PDF 変換をカバーしています... (その逆のあなたのフレーズは、まったく同じファイル [ PDF- >PS- >PDF] ですが、任意のPS ファイルの一般的な変換方向です。それは正しいですか?)
まず第一に、ほとんどのps2pdf
場合、シェルスクリプトはシェルスクリプトにすぎず、実際の作業を行うためにいくつかのデフォルトパラメーターを使用して内部的に Ghostscript コマンドを使用します。ps2pdf
はるかに使いやすいです。Ghostscript にはさらに多くのオプションがありますが、習得するのはより困難です。 ps2pdf
Ghostscript を使用していた場合に可能だった多くの潜在的な制御が奪われます。(いくつかのパラメーターをps2pdf
-- で微調整できますが、実際の Ghostscript コマンドを実行するのにかなり近づいています...)
第 2 に、PS 入力ファイルがどの程度正確に調整されているかを正確に把握していないと、適切なアドバイスを提供することは困難です。PS は、使用するフォントを埋め込んでいますか? それらはどのタイプのフォントですか?等
第三に、Ghostscript は多くの追加のパワーとコントロールを獲得し、PDF の出力に関して、過去数年間でいくつかのバグや弱点が取り除かれました。では、システムにインストールされている Ghostscript のバージョンはどれですか? ps2pdf
( Ghostscript を呼び出すことを忘れないでください。ローカルにインストールされたgs
実行可能ファイルがないと機能しません。)
PDF からテキストをコピーできない原因の 1 つとして、最終的に使用されて PDF ファイルに埋め込まれたフォント タイプ (およびエンコード) が考えられます。結果として得られる PDF について、どのフォントの詳細を教えていただけますか? (pdffonts your.pdf
調べてみてください -- pdffontsは、あなたが言及した Poppler utils の一部でもあります。)
PS->PDF 変換用にこの (完全な) Ghostscript コマンドを試して、どこに移動するかを確認してください。
gs \
-o output.pdf \
-sDEVICE=pdfwrite \
-dPDFSETTINGS=/prepress \
-dHaveTrueTypes=true \
-dEmbedAllFonts=true \
-dSubsetFonts=false \
-c ".setpdfwrite <</NeverEmbed [ ]>> setdistillerparams" \
-f input.ps