ในใจของฉันวิธีที่ดีที่สุดในการทำงานคือไม่ใช้โปรแกรมส่วนต่อประสานกราฟิกกับผู้ใช้ แต่ใช้ชุดสคริปต์ทุบตี (เช่นในสภาพแวดล้อม 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 โดยใช้การแปลง (บรรทัดคำสั่งจาก ImageMagick)
ดังนั้นดาวน์โหลด ImageMagick http://www.imagemagick.org/หรือติดตั้งโดยใช้ตัวจัดการแพ็คเกจ Cygwin
ดูเอกสารประกอบการแปลง (พิมพ์ "ImageMagick แปลง" ในเครื่องมือค้นหาที่คุณชื่นชอบ)
ดังนั้นคุณเข้าใจว่าการแปลงรูปภาพเป็นไฟล์ 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 (ที่ไฟล์ slitted ของคุณจะไป)
$ 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 เป็นข้อ จำกัด ในการแบ่งไฟล์ (หรือไม่)
- ไฟล์ที่มีความกว้างมากกว่า 1500px จะถูกแยกออก
- ไฟล์ที่มีความกว้างต่ำกว่า 1500px จะไม่ถูกแยกออก
ทำให้สคริปต์นี้ทำงานได้
$ chmod +x split_jpg_minw.sh
(คุณสามารถใช้ปุ่มแท็บเพื่อเติมชื่อไฟล์โดยอัตโนมัติ)
เรียกใช้สคริปต์
$ ./split_jpg_minw.sh
ไฟล์ที่ได้รับการแยกจะอยู่ในโฟลเดอร์ temp2 / jpg
สร้างไฟล์ "splitted" ใหม่
$ convert -compress jpeg temp2/*.jpg my_output_file_splitted.pdf
คุณสามารถเพิ่มตัวเลือกเพิ่มเติมให้กับเชนของคุณเพื่อสร้างไฟล์ PDF โดยใช้ bash scripting
ไม่มีขีด จำกัด ... คุณเพียงแค่ต้องเรียนรู้การเขียนสคริปต์ (แต่บางตัวอย่างโค้ดมีประโยชน์มากกว่าหนังสือ)
ตัวอย่างเช่นคุณสามารถใช้ตัวกรองกับรูปภาพของคุณก่อนที่จะสร้างไฟล์ PDF (เพื่อลบเช่นรูปแบบMoiréหรือเพื่อลดเสียงรบกวน) โดยใช้เครื่องมือบรรทัดคำสั่งเช่น G'MIC