JPEGファイルのディレクトリを単一のPDFドキュメントに変換する


242

ディレクトリに多数のJPEGファイルがあり、それらをPDFに変換し、それらを連結して単一のドキュメントを作成したい。

これをどのように行うことができますか?

このプロセスは高速になるため、コマンドラインを使用することをお勧めします。

回答:


358

imagemagickパッケージから、convert次のコマンドを使用します。

convert *.jpg pictures.pdf

現在のフォルダー内のすべてのjpgを含む単一のpdfを取得します。

次を使用してIMをインストールします。

sudo apt-get install imagemagick

ソース:stackoverflow

編集:画像に番号が付けられていない場合、画像は特定の順序になりません。10個以上ある場合は、ファイル名の末尾にfilename01.jpg ... filename99.jpgなどを付ける必要があります。適切な順序付けには、先頭にゼロが必要です。100個以上の001 ... 999がある場合。


1
ジョーカーを使用しても機能しなかったため、@ Alexのソリューションを使用する必要がありました。
エウセビウス

2
ワイルドカードを変換してあなたのために動作しない場合@Eusebius、次のようなoneliner使用することができますfor f in *.jpg; do convert "$f" "$f.pdf"; done; pdftk *.pdf cat output final.pdf
エルダーオタク

1
GrphicMagickユーザーが実行する必要がありますgm convert *.jpg pictures.pdf
michaelbn

たぶん私のjpgファイルは大きすぎて多数ありますが、それを実行するとすぐにRAMが大量に消費され、16GBシステムがスワップを開始しました。
ロンジョン

8
このメソッドはnot authorizedエラーになる可能性があることに注意してください。この関連する質問(および回答)を参照してください
ジャニウーシタロ

31
convert `ls -1v` file.pdf
  • このlsは、一度に1つのファイルを「自然な順序」(1,2,3 ...)でリストし、変換を続行します。

1
私はこれを試しましたが、うまくいきませんでした。多数のエラーは、ファイル名にスペースが含まれている可能性があることを示しています。
オタク長老

5
スペースの問題に対処するには、最初にパターン置換を実行します。forThisFile in * .jpg; do mv "$ ThisFile" "$ {ThisFile // / _}"> / dev / null 2>&1; d
サイモンマット

20

私のために働いた(しかし警告!圧縮をオフにし、結果のPDFは大きくなります!):

convert page1.jpg page2.jpg +compress file.pdf

あるいは:

convert -rotate 90 page\*.jpg +compress file.pdf

ubuntuforums.orgから、+compressそれはハングしないように助けます。注:+ compressは圧縮をオフにします。+ compressオプションなしでは、その時点で作業していたマシンが「永遠に」ハングするように見えました(見つけるために永遠に待たなかった)。マイレージはかなり異なる場合があります!RTFMは上imagemagick.orgオプション-compress、多分あなたはあなたのために働く何かを見つけるために問題をぶら下げ/低速の圧縮を持っている場合-compress <タイプ>を試してみます。


13
上記のようにコマンドで+compressオプションを使用しないでくださいconvert!実際にはすべての圧縮が無効になり、元のJPEGの10倍のPDFが作成されます。圧縮オプションを指定しないでください。convert入力圧縮形式(JPEG)を使用します。この場合、サイズの面で最適なオプションファイルです。ソース:http

それは直感的ではありません!S Minddalに感謝します。それは私にとってはうまくいきました。私は、使用していたマシンに圧縮の問題があると推測します。答えを調整します。
gaoithe 14年

2
これ$ converet *.jpg file.pdfよりも小さいファイルサイズでうまく+compress引数
博士号

18

残念ながら、convertPDFに「パック」する前に画質を変更します。そのため、品質の損失を最小限に抑えるには、元jpgのPDF に入れる方がよいため、を使用する必要がありますimg2pdf

私はこれらのコマンドを使用します:

  1. このコマンドは、解像度または品質を損なうことなくpdf、すべてのjpg画像からファイルを作成します。

    ls -1 ./*jpg | xargs -L1 -I {} img2pdf {} -o {} .pdf

  2. このコマンドは、pdfページを1つのドキュメントに連結します。

    pdftk * .pdf catの出力combined.pdf

  3. そして最後に、PDFのスキャン品質を変更しないOCRedテキストレイヤーを追加して、検索可能にします。

    pypdfocr combined.pdf

    を使用する代わりにpypdfocr

    ocrmypdfのcombined.pdfのcombined_ocr.pdf


1
素晴らしい方法!圧縮しない場合の唯一の欠点は、結果の.pdfファイルサイズが非常に大きくなることです(つまり、すべての写真を合わせたよりもわずかに大きくなります)。しかし、あなたが変換している文書が本当に重要なものであるならば、それは価値があります!
Gokul NC

1
これはconvert、「セキュリティポリシー「PDF」で許可されていない操作を実行しようとした」で失敗した後、正常に機能しました。
マティアスブラウン

12

LibreOffice Writerでjpgまたはpngファイルを開き、PDFとしてエクスポートします。

これがpdfをエクスポートする簡単な方法であることを願っています。


はい!LibreOfficeは、画像ファイルをPDFにエクスポートする最良の方法です。私たちは、電子よりインポートされたファイル、オプションのヘッダーとフッターのサイズ変更...に感謝し、ページレイアウトなど、PDF出力の完全な制御を、持っているuser359154巧妙な提案のために!

8

次のソリューションもImageMagickに依存してconvertいますが、もう少し洗練されています。

  • これにより、出力PDFページサイズを同じに保ちながら、すべての画像のサイズを変えることができます(下の例のA4)。
  • 画像をPDFページの中央に配置します。
  • 問題なくPDFを印刷できるように、画像の境界線とPDFページの境界線の間の最小スペースを保証できます。
  • 画像データは変更されません。(したがって、画質は影響を受けません。PDFファイルは画像とほぼ同じファイルサイズであり、後で元の画像を再抽出できますpdfimages -j file.pdf img。)現時点では、これはPNGでのみ機能します。以下の@dma_kのコメントを参照してください。

手順:

  1. この回答のスクリプトを使用して、各画像をA4ページサイズで5%の境界線を持つ独自の1ページPDFファイルに変換します。
  2. 次のように、すべての1ページPDFファイルをPDFtkと連結します。

    pdftk *.pdf cat output out.pdf
    

2
このコマンドは、(少なくともUbuntu 16.04で提供されるバージョンで)画像データ影響を受けることを示しています。convert some.jpg -format pdf -compress jpeg generated.pdf ; pdfimages -j generated.pdf generated.pdf ; diff -sq some.jpg generated.pdf-000.jpg
StéphaneGourichon 16

2
私はGraphicsMagickで遊んでいましたが、画像の再圧縮を実行することに気付きました。PDFページで生成されるJPEG画像の品質は非常に劣ります。そのため、現時点で最も安全な方法はPNG画像を追加することです–それらは正しく挿入されます。この投稿も参照してください。
-dma_k

-3

http://convert-my-image.com/を使用しました。 画像のアーカイブを(同じサイトで異なるページに)提供し、それらを共通のpdfに連結できること


3
この提案には、少なくとも3つの問題があります。(1)画像をWebサイトにアップロードし、結果のPDFをダウンロードするため、時間がかかります。(2)そのWebサイトを運営している人、そのWebサイトに侵入した可能性のある人、および通信中の人にデータを公開します。(3)コマンドラインソリューションではありません。
サンパブロクパー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.