5

「pdftops」を使用して.pdfファイルを.psファイルに変換し、「ps2pdf」を逆のプロセス(poppler-utils)に使用しています。問題は、.ps ファイルから .pdf ファイルを作成すると、テキストは問題ないように見えますが、コピーしようとすると、文字が非常に奇妙になります (文字が壊れているようです)。これらのツールを他のファイルで長い間使用しましたが、うまく機能しました。私も「pdftohtml -xml」で.xmlファイルを作成してみましたが、テキストはOKです(文字は正しく抽出されています)。

  1. 変換に関してどのような問題が考えられますか? 「pdftops」と「ps2pdf」を使用する場合、変更が必要なオプションがいくつかありますか?
  2. .xml 出力を作成する場合、.xml ファイルから .pdf ファイルを作成する方法はありますか?

編集:「pdffonts original.pdf」の出力 pdffonts_output_originalpdf

「roundtripped.pdf」の出力 pdffonts_output_roundtrippedpdf

4

1 に答える 1

6

私はちょうど PS->PDF 変換をカバーしています... (その逆のあなたのフレーズは、まったく同じファイル [ PDF- >PS- >PDF] ですが、任意のPS ファイルの一般的な変換方向です。それは正しいですか?)

まず第一に、ほとんどのps2pdf場合、シェルスクリプトはシェルスクリプトにすぎず、実際の作業を行うためにいくつかのデフォルトパラメーターを使用して内部的に Ghostscript コマンドを使用します。ps2pdfはるかに使いやすいです。Ghostscript にはさらに多くのオプションがありますが、習得するのはより困難です。 ps2pdfGhostscript を使用していた場合に可能だった多くの潜在的な制御が奪われます。(いくつかのパラメーターをps2pdf-- で微調整できますが、実際の G​​hostscript コマンドを実行するのにかなり近づいています...)

第 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
于 2012-05-28T13:16:53.893 に答える