ใช้ Ghostscript เพื่อแปลง PDF หลายหน้าเป็น JPG เดี่ยวหรือไม่


15

ฉันรู้ว่า Ghostscript สามารถแปลง PDF เป็น JPG และในกรณีของ PDF แบบหลายหน้าสามารถริพแต่ละหน้าเป็น JPG เดี่ยว ๆ ได้ แต่เป็นไปได้ไหมที่จะตัดมันเป็นหนึ่ง JPG เพื่อให้หน้าเว็บวางอยู่ด้านล่างซึ่งกันและกันเช่นครึ่งบนของ JPG คือหน้า 1 ส่วนครึ่งล่างเป็นหน้า 2 หรือไม่ หรือฉันต้องใช้โปรแกรมอื่น (และ ImageMagick ทำสิ่งนี้ได้ไหม) เพื่อรวมหน้า JPG เป็นภาพเดียว?

คำตอบ:


17

ใช่คุณจะต้องแปลงหน้า PDF แต่ละหน้าให้เป็นไฟล์ JPG เดียว (Ghostscript สามารถทำได้)

จากนั้นต่อไฟล์ JPG ที่เป็นผลลัพธ์โดยใช้โปรแกรมอื่น ( ImageMagickหรือGraphicsMagicสามารถทำได้โดยใช้montageคำสั่งย่อย)

ฉันไม่ได้ตระหนักถึงซอฟต์แวร์ใด ๆ ที่สามารถทำได้ในครั้งเดียว

การแปลง PDF เป็น JPG (พร้อม Ghostscript): คุณจะต้องแน่ใจว่าได้ผลลัพธ์ที่ดีที่สุด ดังนั้นให้แน่ใจว่าคุณปรับแต่งตัวเลือก commandline เพื่อให้เหมาะกับคุณ ฉันจะเริ่มต้นด้วยสิ่งนี้:

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

สิ่งนี้จะสร้าง JPG ที่เรียกว่าpdffile-001.jpeg , pdffile-002.jpgเป็นต้นพารามิเตอร์ * -dJPEGQ = 95 "ตั้งค่า" คุณภาพ JPEG "เป็น 95% โดยใช้ความละเอียดที่" 600x600 dpi "คุณอาจต้องเพิ่มเพิ่มเติม ควบคุมขนาดหน้าของผล JPG ในกรณีที่ค่าเริ่มต้นของ Ghostscript ของคุณไม่ตรงกับความต้องการของคุณ:

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -dPDFFitPage ^
    -dFIXEDMEDIA ^
    -dDEVICEWIDTHPOINTS=800 ^
    -dDEVICEHEIGHTPOINTS=600 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

หรือ

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -dPDFFitPage ^
    -dFIXEDMEDIA ^
    -sDEFAULTPAPERSIZE=a4 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

หลายต่อเดียว JPG-เย็บด้วยmontage(ImageMagick หรือ GraphicsMagick):montageคำสั่ง (ใช้ในตัวอย่างนี้คือ ImageMagick) ช่วยให้คุณควบคุมรูปแบบการปูกระเบื้อง หากคุณใช้เช่น-tile 4x3คุณจะได้รับเค้าโครงการวางหน้านี้:

1  2  3  4    
5  6  7  8    
9 10 11 12    

คุณสามารถใช้คำสั่งนี้เพื่อต่อรวม JPG แต่ละอันเข้าด้วยกันเป็น 12 อัน:

montage ^
    -border 0  ^
    -tile 4x3  ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg  ^
    c:/path/to/final.jpg

แน่นอนว่าmontageมีพารามิเตอร์เพิ่มเติมอีกหลายโหลที่อนุญาตให้คุณกำหนดพื้นหลังระยะห่างออฟเซ็ตการตกแต่งป้ายกำกับการหมุนการครอบตัดคำบรรยายภาพ ฯลฯ สำหรับอินพุตและ JPG ที่ได้


แก้ไข: (ฉันต้องการให้คำแนะนำนี้แล้วในคำตอบเดิมของฉัน แต่ลืมไปแล้ว)montageโดยค่าเริ่มต้นจะใช้ขนาดไทล์ 120x120 พิกเซล หากคุณต้องการรักษาขนาดหน้าต้นฉบับสำหรับแต่ละไทล์คุณต้องเพิ่ม-geometryใน commandline สมมติว่าคุณมีหน้า A4 (= 595x852 pt) ใน PDF ของคุณและคุณต้องการเก็บไว้ แต่ยังเพิ่มระยะห่าง 11pt เป็นแนวนอนและ 22 pt ในทิศทางแนวตั้งของการเรียงต่อกัน (รวมถึงเส้นขอบ / กรอบสีเทาเข้ม 4pt รอบแต่ละแผ่น) ให้ทำสิ่งนี้:

montage ^
    -border 4 ^
    -tile 4x3 ^
    -geometry 595x842+11+22 ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg ^
    c:/path/to/final.jpg

แก้ไข 2: (พลาดคำแนะนำสำคัญอีกข้อหนึ่ง) หากคุณไม่ต้องการสูญเสียคุณภาพของภาพที่ดีในระหว่างกระบวนการเย็บ / ตัดต่อซึ่งการแปลง PDF เป็น JPG ของคุณได้สร้างขึ้นแล้วให้เพิ่ม-quality 100พารามิเตอร์ใน commandline ของคุณเช่นนี้ :

montage ^
    -border 4 ^
    -tile 4x3 ^
    -geometry 595x842+11+22 ^
    -quality 100 ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg ^
    c:/path/to/final.jpg

ขอบคุณสำหรับคำตอบ. ฉันไม่เห็นรูปทรงเรขาคณิตใน ImageMagick 6.9.9 นอกจากนี้คุณภาพของภาพรวมยังคงแย่มากฉันไม่สามารถอ่านคำใด ๆ
Geek

2

เนื่องจาก ImageMagick มีการสนับสนุน GhostScript ในตัวคุณสามารถทำสิ่งทั้งหมดได้ในครั้งเดียว:

montage -tile 5 thispdfis25pages.pdf tiledoverview.jpg

ซึ่งจะใช้เวลาทุกหน้าและสร้าง jpeg ยาว ๆ ของพวกเขาแบบ end-to-end


1
แต่สิ่งนี้จะไม่ให้ JPG คุณภาพสูงแก่คุณเพราะมันจะใช้ Ghostscript พร้อมการตั้งค่าเริ่มต้น (และสิ่งเหล่านี้ค่อนข้างดีสำหรับการส่งออก JPG) การทำมันใน 2 ขั้นตอน (และตรวจสอบหน้า JPG ของคุณก่อน) ให้การควบคุมที่ดีที่สุดและมันยังให้ผลผลิต JPG ที่ค่อนข้างดีด้วย)
Kurt Pfeifle

คุณสามารถเปลี่ยนการตั้งค่า Ghostscript โดยใช้การตั้งค่า -density ของ ImageMagick สำหรับ PDF และรับผลลัพธ์ที่ดี อย่าเคาะ IM หากคุณไม่ทราบวิธีใช้ตัวเลือก
erjiang

1
k .: เฮ้ฉันไม่ได้เคาะ ImageMagick และฉันรู้วิธีใช้ตัวเลือกแม้จะใช้โปรไฟล์สี ICC ... แต่คุณไม่สามารถส่งตัวเลือก Ghostscript ทั้งหมดไปยังการตัดต่อได้ ความคิดเห็นของฉันเรียกว่าคำสั่งแนะนำของคุณซึ่งไม่ได้-densityพูดถึง
Kurt Pfeifle

บังเอิญฉันอ่านที่อื่นเพื่อให้ ImageMagick แปลงจาก PDF เป็น PS ภายในแล้ว PS เป็น PNG เมื่อคุณเรียกใช้ด้วยวิธีนี้ดังนั้นจึงเป็นอีกเหตุผลหนึ่งที่ไม่ควรทำเช่นนี้ (สอง Conversion => คุณภาพต่ำและช้ากว่า)
อิบราฮิม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.