Trong suy nghĩ của tôi, cách tốt nhất để đạt được công việc không phải là sử dụng chương trình giao diện người dùng đồ họa mà là sử dụng tập hợp bash script (như trong môi trường Unix / Linux), vì vậy nếu bạn có một số kiến thức cơ bản về lập trình, bạn sẽ có thể để làm nhiều thứ hơn nữa mà chương trình GUI có thể cung cấp cho bạn.
Trước tiên bạn có thể cài đặt một dòng lệnh Unix tối thiểu mà bạn có thể sử dụng
Sở thích của tôi là Cygwin vì nó chứa một lượng lớn phần mềm.
Nếu bạn muốn trích xuất hình ảnh từ bản cài đặt PDF thì pdfimages pdfimages là một tiện ích dòng lệnh mã nguồn mở để trích xuất hình ảnh từ các tệp PDF. Nó được cung cấp miễn phí như một phần của poppler-utils và xpdf-utils và được bao gồm theo mặc định với nhiều bản phân phối Linux.
$ pdfimages file.pdf foo
Việc sử dụng này tạo ra một loạt các hình ảnh được đánh số với "foo" làm tiền tố.
Sử dụng trong thực tế $ mkdir temp $ mkdir temp / jpg
để tạo một thư mục tạm thời có tên jpg trong thư mục tạm thời
$ pdfimages -j file.pdf temp/jpg/foo
Giả sử bây giờ bạn có một số hình ảnh fooXXXX.jpg trong thư mục tạm thời.
Trong trường hợp của bạn, bạn đã từng có hình ảnh fooXXXX.jpg.
Bây giờ bạn có thể tạo một tệp PDF bằng cách sử dụng convert (một dòng lệnh từ ImageMagick)
Vì vậy, tải xuống ImageMagick http://www.imagemagick.org/ hoặc cài đặt nó bằng trình quản lý gói Cygwin
Hãy xem tài liệu chuyển đổi (nhập "ImageMagick convert" trong công cụ tìm kiếm yêu thích của bạn)
Vì vậy, bạn hiểu rằng để chuyển đổi hình ảnh của bạn thành một tệp PDF, bạn sẽ phải viết
$ convert -compress jpeg temp/*.jpg my_output_file.pdf
Đó là tất cả ... ;-) nhưng giải pháp này có thể được mở rộng ...
Hãy tưởng tượng rằng những hình ảnh được quét đến từ một cuốn sách ... 1 tập tin thực tế là 2 trang trong cuốn sách của bạn ...
vì vậy nếu bạn có 10 tệp ... sách của bạn có 20 trang ... và bạn muốn bản PDF của mình cũng có 20 trang.
Vì vậy, bạn cần chia hình ảnh chứa trong một tệp để tạo 2 tệp cho mỗi trang.
Giả sử tệp của bạn là temp / foo0001.jpg bạn sẽ có 2 tệp temp2 / foo0001a.jpg (trang bên trái) và temp2 / foo0001b.jpg (trang bên phải)
Tạo thư mục temp2 (nơi các tệp được rạch của bạn sẽ đi)
$ mkdir temp2
$ mkdir temp2/jpg
Tạo một tệp có tên split_jpg_minw.sh bằng trình soạn thảo văn bản (Emacs, VI hoặc nếu bạn thích ứng dụng Windows, bạn có thể sử dụng Notepad hoặc 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 là giới hạn để chia một tệp (hoặc không)
- một tệp có chiều rộng trên 1500px sẽ bị chia
- một tệp có chiều rộng dưới 1500px sẽ không bị chia
Làm cho tập lệnh này được thực thi
$ chmod +x split_jpg_minw.sh
(bạn có thể sử dụng phím tab để tự động điền tên của tệp)
Chạy kịch bản
$ ./split_jpg_minw.sh
Các tệp được chia sẽ nằm trong thư mục temp2 / jpg
Tạo tập tin "tách" mới.
$ convert -compress jpeg temp2/*.jpg my_output_file_splitted.pdf
Bạn có thể thêm nhiều tùy chọn hơn vào chuỗi của mình để tạo tệp PDF bằng cách sử dụng tập lệnh bash.
Không có giới hạn ... bạn chỉ cần học kịch bản (nhưng một số mẫu mã đôi khi hữu ích hơn nhiều so với sách)
Ví dụ: bạn có thể áp dụng bộ lọc cho ảnh của mình trước khi tạo tệp PDF (để xóa ví dụ mẫu Moiré hoặc để giảm nhiễu) bằng cách sử dụng các công cụ dòng lệnh như G'MIC