私の考えでは、仕事を達成する最良の方法は、グラフィカルユーザーインターフェイスプログラムを使用するのではなく、bashスクリプトのコレクション(Unix / Linux環境など)を使用することです。したがって、プログラミングの基本的な知識があれば、 GUIプログラムがあなたに提供できるより多くのことをするため。
最初に、使用できるコマンドラインのような最小限のUnixをインストールできます。
Cygwinには大量のソフトウェアパッケージが含まれているため、私の好みはCygwinです。
PDFインストールから画像を抽出する場合、pdfimages pdfimagesは、PDFファイルから画像を抽出するためのオープンソースのコマンドラインユーティリティです。poppler-utilsおよびxpdf-utilsの一部として無料で入手でき、多くのLinuxディストリビューションにデフォルトで含まれています。
$ pdfimages file.pdf foo
この使用法では、接頭辞として「foo」を使用した一連の番号付き画像が生成されます。
実際に使用$ mkdir temp $ mkdir temp / jpg
一時ディレクトリ内にjpgという名前の一時フォルダーを作成するには
$ pdfimages -j file.pdf temp/jpg/foo
一時フォルダーにいくつかのfooXXXX.jpgイメージがあるとしましょう。
あなたの場合、fooXXXX.jpgの写真がありました。
変換(ImageMagickのコマンドライン)を使用して1つのPDFを生成できるようになりました
ImageMagick http://www.imagemagick.org/をダウンロードするか、Cygwinパッケージマネージャーを使用してインストールします
変換ドキュメントをご覧ください(お気に入りの検索エンジンで「ImageMagick convert」と入力してください)
だから、あなたはあなたの写真を1つのPDFファイルに変換するためにあなたが書く必要があることを理解しています
$ convert -compress jpeg temp/*.jpg my_output_file.pdf
それだけです... ;-)しかし、このソリューションは拡張することができます...
スキャンされた写真が本から来たと想像してみましょう... 1ファイルは実際には本の2ページです...
10個のファイルがある場合...ブックに20ページある場合...そして、PDFにも20ページあるようにします。
したがって、1つのファイルに含まれる画像を分割して、ページごとに2つのファイルを作成する必要があります。
ファイルがtemp / foo0001.jpgで、temp2 / foo0001a.jpg(左ページ)とtemp2 / foo0001b.jpg(右ページ)の2つのファイルがあるとします。
temp2ディレクトリを作成します(スリットされたファイルが保存される場所)
$ mkdir temp2
$ mkdir temp2/jpg
テキストエディタを使用してsplit_jpg_minw.shという名前のファイルを作成します(Emacs、VI、またはWindowsアプリケーションを使用する場合は、メモ帳またはメモ帳++を使用できます)
minimal_width=1500
minimal_width_ignore=10
rm temp2/jpg/*.jpg
for f in temp/jpg/*.jpg
do
f2=$(basename $f)
read -r width height <<< $( convert $f -format "%w %h" info:)
width2=$(( ${width} / 2 ))
height2=${height}
if [ $width -gt $minimal_width ]; then
echo "split $f ${width}x${height} to 2 files ${width2}x${height2}"
convert $f -crop ${width2}x${height2}+0+0 +repage temp2/jpg/${f2%%.*}a.jpg
convert $f -crop ${width2}x${height2}+$width2+0 +repage temp2/jpg/${f2%%.*}b.jpg
else
if [ $width -gt $minimal_width_ignore ]; then # ignore if with < 10px
echo "copy $f ${width}x${height} (don't split because width<$minimal_width)"
cp $f temp2/jpg/$f2
else
echo "ignore $f ${width}x${height} width=$width<minimal_width_ignore=$minimal_width_ignore"
fi
fi
do
width = 1500pxは、ファイルを分割する(または分割しない)制限です
- 1500pxを超える幅のファイルは分割されます
- 1500px未満の幅のファイルは分割されません
このスクリプトを実行可能にする
$ chmod +x split_jpg_minw.sh
(タブキーを使用してファイルの名前をオートコンプリートできます)
スクリプトを実行する
$ ./split_jpg_minw.sh
分割されたファイルはtemp2 / jpgフォルダーにあります
新しい「分割」ファイルを生成します。
$ convert -compress jpeg temp2/*.jpg my_output_file_splitted.pdf
チェーンにさらに多くのオプションを追加して、bashスクリプトを使用してPDFファイルを作成できます。
制限はありません...スクリプトを習得するだけです(ただし、一部のコードサンプルは書籍よりもはるかに役立つ場合があります)
たとえば、G'MICなどのコマンドラインツールを使用して、PDFファイルを生成する前に画像にフィルターを適用できます(たとえば、モアレパターンを削除したり、ノイズを低減したりできます)。