複数ページの PDF を PNG に変換し、その逆も行う (Linux) 質問する

複数ページの PDF を PNG に変換し、その逆も行う (Linux) 質問する

PNG に変換し、Gimp で編集し、複数ページの Acrobat ファイルに保存し直したい PDF ドキュメントがたくさんあります。フォームに記入し、スキャンした署名を追加していますが、印刷、署名、再度スキャンして、入力する必要のある情報を入力できるようにしたいと思っています。

Imagemagick を使用して png ファイルに変換しようとしていますが、問題なく動作するようです。 コマンドを使用しますconvert -quality 100 -density 300x300 multipage.pdf single%d.png
(png に品質パラメータが適切かどうかはよくわかりません)。

しかし、PDF に保存し直すときに問題が発生します。一部のファイルのページ サイズが間違っており、見つけられるすべてのコマンドと手順を試しましたが、常にいくつかの奇妙なサイズがあります。解像度は、特定のズーム レベルで見栄えがよくなるように変化するようですが、いくつかのページが約 2 インチ幅で指定されているか、8.5x11 であるのに他のページが約 35 インチ幅になっています。Gimp のキャンバス サイズと解像度が正しいことを確認し、ファイルに解像度を保存するようにしましたが、問題ないようです。

ファイルを保存するために使用するコマンドは、convert -page letter -adjoin single*.png multipage.pdf他のパラメータも試しましたが、どれも問題ないようです。

何かアイデアや代替案をお持ちの方がいらっしゃいましたら、教えていただけると幸いです。

ベストアンサー1

「PNG の品質パラメータが適切かどうかはよくわかりません。」

PNG 出力の場合、設定は JPEG の品質設定 (単純にから まで-qualityの整数) とはまったく異なります。0100

PNG の場合は 2 つの 1 桁の数字で構成されます。

  • 最初の桁(十の位)は(主に)zlib圧縮レベル0、からまでの範囲になります9
    (ただし、 の設定には0特別な意味があります。これを使用すると、zlib 圧縮レベル 0 ではなく、ハフマン圧縮が行われます。多くの場合、こちらの方が優れています...奇妙ですが本当です。)

  • 2桁目はPNGデータエンコーディングフィルタタイプ(圧縮される前):

    • 0はなし、
    • 1は「サブ」です。
    • 2は「上」、
    • 3は「平均」です。
    • 4は「パエス」であり、
    • 5は「適応型」です。

実際には次のことを意味します:

  • 単色のシーケンスを含むイラストの場合、通常は「なし」フィルター ( -quality 00) が最も適しています。
  • 自然の風景の写真の場合、一般的に「適応型」フィルタリング ( -quality 05) が最適です。

「PDF に保存し直すときに問題が発生しています。一部のファイルのページ サイズが間違っており、見つけられるすべてのコマンドと手順を試しましたが、いくつかのページが約 2 インチ幅で指定されているか、8.5 x 11 であるのに他のページが約 35 インチ幅になっています。」

PNG ファイルが利用できなかったため、さまざまなコマンドを確認するために、異なる寸法のシンプルなファイルをいくつか作成しました (私自身も確信が持てなかったため)。確かに、あなたが使用したのは次のファイルです。

convert -page letter -adjoin single*.png multipage.pdf

すべての PDF ページを (同じ) レター サイズで作成しますが、(異なるサイズの) PNG のサンプルは常に PDF ページの左下隅に配置されます。(PNG が PDF ページ サイズを超える場合は、収まるように縮小されますが、使用可能なページ スペースを埋めるために小さい PNG を拡大することはありません。)

コマンドを次のように変更すると、PNG が各 PDF ページの中央に配置されます。

convert           \
  -page letter    \
  -adjoin         \
   single*.png    \
  -gravity center \
   multipage.pdf

それでもまだ十分でない場合は、パラメータを追加して、文字領域をほぼ埋めるようにスケーリング(比例しない可能性があります)を強制できます-scale '590!x770!'(これにより、ページの各端に 11 pt の境界線が残ります)。

convert              \
  -page letter       \
  -adjoin            \
   single*.png       \
  -gravity center    \
  -scale '590!x770!' \
   multipage.pdf

余分な境界線を削除するには、 を使用します-scale '612!x792!'。 -- PNG のアスペクト比を維持しながら、必要に応じて上方向の拡大のみを行う場合は、 を使用します-scale '590<x770<'

convert              \
  -page letter       \
  -adjoin            \
   single*.png       \
  -gravity center    \
  -scale '590<x770<' \
   multipage.pdf 

おすすめ記事