Moim zdaniem najlepszym sposobem na osiągnięcie tego zadania nie jest użycie graficznego programu interfejsu użytkownika, ale użycie kolekcji skryptu bash (jak w środowisku Unix / Linux), więc jeśli masz podstawowe umiejętności programowania, będziesz w stanie aby robić o wiele więcej rzeczy, które może zapewnić program GUI.
Możesz najpierw zainstalować minimalną linię poleceń uniksową, której możesz użyć
preferuję Cygwin, ponieważ zawiera ogromną ilość oprogramowania.
Jeśli chcesz wyodrębnić obraz z instalacji PDF, pdfimages pdfimages to narzędzie wiersza polecenia typu open source do wyodrębniania obrazów z plików PDF. Jest dostępny bezpłatnie jako część poppler-utils i xpdf-utils i jest domyślnie dołączany do wielu dystrybucji Linuksa.
$ pdfimages file.pdf foo
To użycie tworzy serię ponumerowanych obrazów z przedrostkiem „foo”.
Użyj w rzeczywistości $ mkdir temp $ mkdir temp / jpg
aby utworzyć tymczasowy folder o nazwie jpg w katalogu tymczasowym
$ pdfimages -j file.pdf temp/jpg/foo
Powiedzmy, że masz teraz kilka zdjęć fooXXXX.jpg w folderze tymczasowym.
W twoim przypadku miałeś kiedyś zdjęcia fooXXXX.jpg.
Możesz teraz wygenerować jeden plik PDF za pomocą konwersji (wiersz poleceń z ImageMagick)
Pobierz ImageMagick http://www.imagemagick.org/ lub zainstaluj go za pomocą menedżera pakietów Cygwin
Przejrzyj dokumentację konwersji (wpisz „ImageMagick convert” w swojej ulubionej wyszukiwarce)
Więc rozumiesz, że aby przekonwertować zdjęcia do jednego pliku PDF, musisz napisać
$ convert -compress jpeg temp/*.jpg my_output_file.pdf
To wszystko ... ;-), ale to rozwiązanie można rozszerzyć ...
Wyobraźmy sobie, że zeskanowane obrazy pochodzą z książki ... 1 plik to tak naprawdę 2 strony książki ...
więc jeśli masz 10 plików ... twoja książka miała 20 stron ... i chciałbyś, aby twój PDF miał również 20 stron.
Musisz podzielić obraz zawarty w jednym pliku, aby utworzyć 2 pliki dla każdej strony.
Załóżmy, że Twój plik to temp / foo0001.jpg, będziesz mieć 2 pliki temp2 / foo0001a.jpg (lewa strona) i temp2 / foo0001b.jpg (prawa strona)
Utwórz katalog temp2 (do którego zmieszczą się twoje wycięte pliki)
$ mkdir temp2
$ mkdir temp2/jpg
Utwórz plik o nazwie split_jpg_minw.sh za pomocą edytora tekstu (Emacs, VI lub jeśli wolisz aplikację Windows, możesz użyć Notatnika lub 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
szerokość = 1500px to limit podziału pliku (lub nie)
- plik o szerokości ponad 1500 pikseli zostanie podzielony
- plik o szerokości poniżej 1500 pikseli nie zostanie podzielony
Spraw, by ten skrypt był wykonywalny
$ chmod +x split_jpg_minw.sh
(możesz użyć klawisza tab, aby automatycznie uzupełnić nazwę pliku)
Uruchom skrypt
$ ./split_jpg_minw.sh
Podzielone pliki będą w folderze temp2 / jpg
Wygeneruj nowy „podzielony” plik.
$ convert -compress jpeg temp2/*.jpg my_output_file_splitted.pdf
Możesz dodać znacznie więcej opcji do swojego łańcucha, aby utworzyć plik PDF za pomocą skryptów bash.
Nie ma ograniczeń ... musisz tylko nauczyć się skryptowania (ale niektóre próbki kodu są czasem znacznie bardziej przydatne niż książki)
Na przykład, możesz zastosować filtr do swoich zdjęć przed wygenerowaniem pliku PDF (aby usunąć na przykład wzór Moiré lub aby zredukować szum) za pomocą narzędzi wiersza poleceń, takich jak G'MIC