ใน GIMP ฉันสามารถนำเข้า. pdf และใช้ GUI เพื่อทำให้แบน (ถ้าทำด้วยเลเยอร์จำนวนมาก) โดยเลือก "Flatten Image" ในเมนูแบบเลื่อนลง "รูปภาพ" จากนั้นฉันสามารถส่งออก. pdf ด้วยชื่อไฟล์ใหม่
ฉันต้องการทำสิ่งนี้โดยอัตโนมัติ มีวิธีทำผ่านเทอร์มินัลไหม?
ใน GIMP ฉันสามารถนำเข้า. pdf และใช้ GUI เพื่อทำให้แบน (ถ้าทำด้วยเลเยอร์จำนวนมาก) โดยเลือก "Flatten Image" ในเมนูแบบเลื่อนลง "รูปภาพ" จากนั้นฉันสามารถส่งออก. pdf ด้วยชื่อไฟล์ใหม่
ฉันต้องการทำสิ่งนี้โดยอัตโนมัติ มีวิธีทำผ่านเทอร์มินัลไหม?
คำตอบ:
ผมพบว่าทั้ง 2 วิธีผ่านทาง Google ในหัวข้อนี้หัวข้อ: Re: คลี่ไฟล์ PDF ที่ใช้ระบบปฏิบัติการยูนิกซ์บรรทัดคำสั่ง
วิธี # 1 - ใช้การแปลงของ Imagemagick:$ convert orig.pdf flattened.pdf
หมายเหตุ:มีการรายงานคุณภาพเพื่อให้เป็นเช่นนั้นด้วยวิธีการนี้
วิธีที่ # 2 - การใช้ pdf2ps -> ps2pdf:$ pdf2ps orig.pdf - | ps2pdf - flattened.pdf
หมายเหตุ:วิธีการนี้ถูกรายงานเพื่อรักษาคุณภาพของภาพ
$ convert -density 150 {original,flattened}.pdf
ถ้าคุณต้องการที่จะรักษาพื้นที่ดิสก์คุณสามารถใช้-type Grayscale
หรือ-monochrome
หรืออะไรทำนองนั้น
Ghostscript (gs) ทำงานได้ดีกว่าpdf2ps
และconvert
สำหรับฉัน คุณภาพลดน้อยลงและขนาดไฟล์เล็ก
gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite \
-sColorConversionStrategy=/LeaveColorUnchanged \
-dAutoFilterColorImages=true \
-dAutoFilterGrayImages=true \
-dDownsampleMonoImages=true \
-dDownsampleGrayImages=true \
-dDownsampleColorImages=true \
-sOutputFile=document_flat.pdf document_original.pdf
พบได้ที่นี่: http://zeroset.mnim.org/2015/01/07/flatten-pdfs-with-ghostscript/
แม้ว่าการแปลงจะทำให้ไฟล์มีขนาดเท่ากันฉันก็พบว่ามันช้า
วิธี ps2pdf pdf2ps เร็วขึ้น แต่ฉันสังเกตเห็นว่ามันเป็นการเพิ่มขนาดไฟล์
pdftk เป็นสิ่งที่ดีเพราะมันไม่เพียง แต่รวดเร็ว แต่ยังคงขนาดไฟล์ที่คล้ายกัน
นี่คือสิ่งที่ฉันใช้เพื่อทำให้แบนไดเรกทอรีจำนวนมาก
function pdfflatten () {
pdftk "$1" output "$2" flatten
}
export pdfflatten
alias pdfflattenDIR='mkdir flattenedPDFs; for i in `seq $(ls *.pdf | wc -l)`; do a=`ls *.pdf | head -$i | tail -1`; pdfflatten "$a" flattenedPDFs/"$a"; done'