На мой взгляд, лучший способ добиться этой цели - не использовать программу с графическим интерфейсом пользователя, а использовать набор сценариев bash (как в среде Unix/Linux), поэтому, если у вас есть некоторые базовые знания в области программирования, вы сможете делать гораздо больше вещей, которые программа GUI может предоставить вам.
Вы можете сначала установить минимальную Unix-подобную командную строку, которую вы можете использовать
Я предпочитаю 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 в папке temp.
В вашем случае у вас когда-либо были изображения fooXXXX.jpg.
Теперь вы можете сгенерировать один PDF с помощью convert (командная строка из ImageMagick)
Поэтому скачайте ImageMagick http://www.imagemagick.org/ или установите его с помощью диспетчера пакетов Cygwin
Взгляните на документацию по конвертации (наберите "ImageMagick convert" в вашей любимой поисковой системе)
Таким образом, вы понимаете, что для преобразования ваших фотографий в один файл PDF вам придется написать
$ convert -compress jpeg temp/*.jpg my_output_file.pdf
Это все... ;-) но это решение можно расширить ...
Давайте представим, что отсканированные изображения пришли из книги ...
1 файл на самом деле 2 страницы вашей книги ...
так что если у вас есть 10 файлов ... в вашей книге 20 страниц ... и вы хотите, чтобы в вашем PDF тоже было 20 страниц.
Таким образом, вам нужно разделить изображение, содержащееся в одном файле, чтобы сделать 2 файла для каждой страницы.
Допустим, у вас есть файл temp/foo0001.jpg, у вас будет 2 файла: temp2/foo0001a.jpg (левая страница) и temp2/foo0001b.jpg (правая страница)
Создайте каталог temp2 (куда будут идти ваши слитые файлы)
$ mkdir temp2
$ mkdir temp2/jpg
Создайте файл с именем split_jpg_minw.sh с помощью текстового редактора (Emacs, VI или, если вы предпочитаете приложение Windows, вы можете использовать Notepad или Notepad++)
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 - это предел для разделения файла (или нет)
- файл с шириной более 1500 пикселей будет разделен
- файл шириной менее 1500 пикселей не будет разделен
Сделайте этот скрипт исполняемым
$ chmod +x split_jpg_minw.sh
(вы можете использовать клавишу табуляции для автозаполнения имени файла)
Запустить скрипт
$ ./split_jpg_minw.sh
Разделенные файлы будут в папке temp2/jpg
Создайте новый "разделенный" файл.
$ convert -compress jpeg temp2/*.jpg my_output_file_splitted.pdf
Вы можете добавить гораздо больше параметров в свою цепочку для создания PDF-файла с использованием сценариев bash.
Там нет предела ... вы просто должны изучить сценарии (но некоторые примеры кода иногда гораздо полезнее, чем книги)
Например, вы можете применить фильтр к вашим изображениям перед созданием файла PDF (например, для удаления узора Муара или для уменьшения шума) с помощью инструментов командной строки, таких как G'MIC.