web-dev-qa-db-ja.com

マルチページを変換PDFからPNGに変換して戻す(Linux)

PDF PNG形式に変換し、Gimpで編集して、マルチページのAcrobatファイルに保存したいドキュメントがたくさんあります。フォームに入力し、スキャンした署名を追加して、入力する必要のある情報を入力する機能により、印刷、署名、スキャンのやり直しを回避できます。

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です。他のパラメーターを試しましたが、重要ではないようです。

誰かがアイデアや代替案を持っているなら、私はそれを感謝します。

27
Marty Fried

「品質パラメータがPNGに適しているかどうかは本当にわかりません。」

PNG出力の場合、-quality設定はJPEGの品質設定(0から100までの整数)とは非常に異なります。

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

  • 最初の数字(十)は(大部分は)zlib圧縮レベルであり、0から9に変わる場合があります。
    (ただし、0の設定には特別な意味があります。これを使用すると、zlib圧縮レベル0ではなく、ハフマン圧縮が得られます。これは多くの場合より優れています...奇妙だが真実。)

  • 2桁目はPNGデータエンコーディングフィルタータイプ(圧縮前)です。

    • 0はなし、
    • 1は「サブ」、
    • 2は「上」です。
    • 3は「平均」、
    • 4は「Paeth」であり、
    • 5は「アダプティブ」です。

実際の意味では:

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

「PDFへの保存に問題があります。一部のファイルのページサイズが間違っています。[...]を見つけることができるすべてのコマンドと手順を試しましたが...いくつかのページは約2インチ幅で指定されているか、8.5x11ですが、他のページは約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 
32
Kurt Pfeifle

Xournal を使用しないのはなぜですか?これは、PDFに注釈を付けるために使用するものです

6
Tim