web-dev-qa-db-ja.com

Imagemagickを使用してPDFをマージする方法(解決の問題)

Imagemagickを使用して2つの.pdfファイルをマージしようとすると

convert pdf1.pdf pdf2.pdf temp.pdf

結果のtemp.pdfファイルの解像度は非常に低いようです。ソースファイルと同じ解像度を維持するにはどうすればよいですか?

42
jraja

バーンの言う通りですが、pdftkが機能しない場合は、ghostscriptを試してください。

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=temp.pdf pdf1.pdf pdf2.pdf
54
Sebastian Liem

Imagemagickの変換コマンドは通常、画像ファイルをある形式から別の形式に変換するために使用されます。この場合、2つの「画像」(PDF)を単一のファイルに出力する前に、実際にソートの内部変換を実行している可能性があります。

PDF Toolkit(pdftk)の代わりに使用することを検討することをお勧めします http://www.accesspdf.com/pdftk/

ウェブサイトの例から、これは次のように単純でなければなりません。

pdftk pdf1.pdf pdf2.pdf cat output temp.pdf
21
Richard

マージするすべてのファイルが同じフォルダーにある場合:

convert -density 150 $(ls -rt *pdf) output.pdf

引数-density 150は、マージされたPDFの品質を維持します。

19
juda

私はいつもこれを行う方法を忘れており、検索するときに最初にこの質問を見つけます。

convert -density 600 file1.pdf file2.pdf -resize 50% new.pdf

リンクされた例の密度は144ですが、ピクセル化されていないように見えるほど高くはありません。

http://web.archive.org/web/20130311071316/http://studio.imagemagick.org/pipermail/magick-users/2009-September/022958.html

8
Leslie Pajuelo

Linuxを実行している場合は、解像度を操作せずに連結するpdfuniteを提供するpopplerを試すこともできます。

5
haytona

解像度とテキストをそのままにして2つのpdfファイルを結合する方法は見つかりませんでしたが、高解像度のpngファイルに変換する方法を見つけました。

pdftoppm -f 1 -l 1 -aa yes -aaVector yes -png -r 300 page.pdf > tmp1.png
pdftoppm -f 2 -l 2 -aa yes -aaVector yes -png -r 300 page.pdf > tmp2.png
convert tmp1.png tmp2.png +append -quality 100 page.png

これにより、page.pdfの最初の2ページが取得され、高解像度のpngファイルが並べて結合されます。

最終行を

convert tmp1.png tmp2.png +append -quality 100 page.pdf

私が後でpngtopnm、pnmtops、ps2pdfをいじり回した後でわかったように、pdfドキュメント出力が生成されます。

0
Barry Dmytro