วิธีแปลง PDF เป็นรูปภาพ?


327

ฉันต้องการแปลงหน้า PDF เป็นรูปภาพ มีภาพพื้นหลังพร้อมข้อความที่เขียนดังนั้นเมื่อฉันบันทึกเป็นภาพภาพพื้นหลังเท่านั้นที่ได้รับการบันทึก

มีซอฟต์แวร์ใดที่เหมือนกันเพื่อให้สามารถแปลงหน้าให้เป็นรูปภาพได้ทั้งหมด?


เห็นได้ชัดว่ามันเป็นไปได้ด้วย inkscape: stackoverflow.com/a/15484727/32453
rogerdpack

คำตอบ:


299
  1. ติดตั้งImageMagick

  2. การใช้เทอร์มินัลที่เป็นที่ตั้งของ PDF:

    • สำหรับเอกสารฉบับเต็ม:

      convert -density 150 input.pdf -quality 90 output.png
      
    • สำหรับหน้าเดียว:

      convert -density 150 input.pdf[666] -quality 90 output.png
      

โดย:

  • สามารถเลือก PNG, JPG หรือ (จริง) รูปแบบภาพอื่น ๆ ได้

  • -density xxxจะตั้งค่า DPI เพื่อxxx(ทั่วไปคือ 150 และ 300)

  • -quality xxxจะตั้งค่าการบีบอัดเป็นxxxรูปแบบไฟล์ PNG, JPG และ MIFF (100 หมายถึงไม่มีการบีบอัด)

  • [666]จะแปลงเฉพาะหน้า 667 เป็น PNG (หมายเลขที่เป็นศูนย์[0]จะเป็นหน้า 1)

  • ตัวเลือกอื่น ๆ ทั้งหมด (เช่นตัด, สีเทา, ฯลฯ ) สามารถดูได้ในเว็บไซต์ของภาพเมจิก


2
คำตอบก็คือทำงานได้ แต่ความละเอียดต่ำมาก ดังนั้นในปัจจุบันยังไม่มีคำตอบที่เป็นประโยชน์ บางทีถ้าการแปลงมีพารามิเตอร์บางอย่างที่สามารถระบุได้อาจมีการเปลี่ยนแปลง
Elijah Lynn

48
คำตอบนี้คือaskubuntu.com/a/50180/11929
Elijah Lynn

6
คุณสามารถเปลี่ยนความหนาแน่นได้โดยเพิ่ม-density 300พารามิเตอร์
OHLÁLÁ

4
ใครก็ตามสามารถยืนยันได้ว่าการระบุความหนาแน่นทำให้ "ดี" เหมือนกับคำตอบอื่น ๆ ที่นี่หรือไม่? ImageMagick เรียกร้องให้ "ghostscript" เพื่อแปลงจาก pdf เป็น png เช่น: gs -q NOPROMPT ...-sDEVICE=pngalpha -r150x150 -sOutputFile=/var/tmp/Yf%d -f/var/tmp/L -f/var/tmp/Fic1และถ้าคุณได้รับconvert: no images defined output.pngหมายความว่าคุณไม่ได้ติดตั้ง ghostscript ...
rogerdpack

4
การแยกวิเคราะห์ PDF ใน imagemagick ถูกปิดใช้งาน - bugs.archlinux.org/task/59778 - สามารถเปิดใช้งานด้วยตนเองโดยแก้ไข/etc/ImageMagick-7/policy.xmlไฟล์และลบออกPDFจาก<policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />
Jezor

393

คุณสามารถใช้pdftoppmในการแปลง PDF เป็น PNG:

pdftoppm input.pdf outputname -png

สิ่งนี้จะแสดงผลแต่ละหน้าในรูปแบบ PDF โดยใช้รูปแบบoutputname-01.pngโดย01เป็นดัชนีของหน้า

แปลงหน้าเดียวของ PDF

pdftoppm input.pdf outputname -png -f {page} -singlefile

เปลี่ยน{page}เป็นหมายเลขหน้า มันจัดทำดัชนีไว้ที่ 1 ดังนั้น-f 1จะเป็นหน้าแรก

การระบุความละเอียดของภาพที่แปลงแล้ว

ความละเอียดเริ่มต้นสำหรับคำสั่งนี้คือ 150 DPI การเพิ่มขนาดไฟล์จะทำให้ทั้งไฟล์มีขนาดใหญ่ขึ้นและมีรายละเอียดมากขึ้น

เพื่อเพิ่มความละเอียดของการแปลงไฟล์ PDF ให้เพิ่มตัวเลือกและ-rx {resolution} -ry {resolution}ตัวอย่างเช่น:

pdftoppm input.pdf outputname -png -rx 300 -ry 300

24
ขอบคุณมาก. คุณภาพที่ดีขึ้นกว่าด้วย imagemagick หรือ graphicsmagick!
dAnjou

7
pdftoppm เร็วกว่าการแปลงมาก
zuo

4
นี่เป็นสิ่งที่ดีกว่า imagemagick จริงๆ Imagemagick เปลี่ยนสีในแบบที่ฉันคาดไม่ถึง!
NoBackingDown

13
นี่เป็นสิ่งที่ดี! แต่เขียนได้ง่ายกว่า-r 300แทนที่จะระบุความละเอียด x และ y อย่างอิสระเมื่อคุณต้องการตั้งค่าเป็นค่าเดียวกัน
mlc

2
ฉันประสบความสำเร็จมากกว่ากับ pdftoppm มากกว่ากับ imagemagick
Michael Hays

22

IIRC GIMP สามารถใช้ PDF ได้เช่นแปลงเป็นรูปภาพ ดังนั้นหากคุณต้องการแก้ไขภาพในทันที GIMP คือเพื่อนของคุณ


GIMP สามารถเปิด PDF ได้อย่างแน่นอนโดยแต่ละหน้าเป็นเลเยอร์เดียว การเลือก "ส่งออกเป็น" ดูเหมือนจะบันทึกเฉพาะเลเยอร์ปัจจุบัน แต่คุณสามารถลบเลเยอร์ได้อย่างง่ายดายหลังจากการส่งออกและเรียกใช้ "ส่งออกเป็น" อีกครั้ง
Dan Dascalescu

12

คำตอบที่ได้รับการยอมรับในปัจจุบันทำหน้าที่ได้ แต่ส่งผลให้ได้ผลลัพธ์ที่มีขนาดใหญ่กว่าและได้รับความทุกข์ทรมานจากการสูญเสียคุณภาพ

วิธีการในคำตอบที่ได้รับที่นี่ส่งผลให้ผลผลิตซึ่งเทียบเคียงได้กับขนาดของอินพุตและไม่ประสบกับการสูญเสียคุณภาพ

TLDR - การใช้งานpdfimages:pdfimages -j input.pdf output

การอ้างอิงคำตอบที่เชื่อมโยง:

ไม่ชัดเจนว่าคุณหมายถึงอะไรโดย "การสูญเสียคุณภาพ" นั่นอาจหมายถึงสิ่งต่าง ๆ มากมาย คุณช่วยโพสต์ตัวอย่างเพื่ออธิบายได้ไหม อาจตัดส่วนเดียวกันออกจากคุณภาพไม่ดีและรุ่นคุณภาพดี (เป็น PNG เพื่อหลีกเลี่ยงการสูญเสียคุณภาพเพิ่มเติม)

บางทีคุณอาจจำเป็นต้องใช้-densityเพื่อทำการแปลงที่ dpi ที่สูงขึ้น:

convert -density 300 file.pdf page_%04d.jpg

(คุณสามารถเติม-units PixelsPerInchหรือ-units PixelsPerCentimeterถ้าจำเป็นค่าเริ่มต้นการคัดลอกของฉันเป็น ppi)

อัปเดต: ตามที่คุณชี้gscan2pdf(วิธีที่คุณใช้) เป็นเพียงกระดาษห่อสำหรับpdfimages(จากpoppler ) pdfimages ไม่ได้ทำสิ่งเดียวกันกับที่convertทำเมื่อให้ PDF เป็นอินพุต

convert ใช้ PDF ทำให้มีความละเอียดและใช้บิตแมปผลลัพธ์เป็นอิมเมจต้นฉบับ

pdfimagesดู PDF สำหรับภาพบิตแมปที่ฝังตัวและส่งออกแต่ละภาพเป็นไฟล์ มันไม่สนใจคำสั่งการวาดข้อความหรือเวกเตอร์ใด ๆ ใน PDF

ด้วยเหตุนี้หากสิ่งที่คุณมีในรูปแบบ PDF ซึ่งเป็นเพียงเสื้อคลุมรอบ ๆ ชุดของบิตแมปpdfimagesจะทำงานได้ดีกว่ามากในการแยกไฟล์ออกเพราะจะทำให้คุณได้รับข้อมูลดิบตามขนาดดั้งเดิม คุณอาจต้องการใช้-jตัวเลือกpdfimagesเนื่องจาก PDF สามารถมีข้อมูล JPEG แบบดิบได้ ตามค่าเริ่มต้นpdfimagesแปลงทุกอย่างเป็นรูปแบบ PNM และการแปลง JPEG> PPM> JPEG เป็นกระบวนการสูญเสีย

ดังนั้นลอง

pdfimages -j file.pdf page

คุณอาจจะหรืออาจไม่จำเป็นต้องทำตามนั้นด้วย a convertถึง.jpgขั้นตอน (ขึ้นอยู่กับรูปแบบบิตแมป PDF ที่ใช้)

ฉันลองคำสั่งนี้เป็น PDF ที่ฉันทำด้วยตัวเองจากลำดับของภาพ JPEG JPEG ที่แยกออกมานั้นเป็นแบบไบต์ต่อไบต์เหมือนกับภาพต้นฉบับ คุณไม่สามารถรับคุณภาพที่สูงกว่านั้นได้


8

หากไฟล์ PDF ของคุณถูกสแกนภาพจะถูกเก็บไว้เป็นส่วนหนึ่งของ pdf คุณเพียงแค่ต้องแยกไฟล์เหล่านั้นด้วยpdfimages:

pdfimages my-file.pdf prefix 

2
นี่เป็นโซลูชันที่สมบูรณ์แบบสำหรับไฟล์ PDF ที่สแกนเช่นเดียวกับที่คุณทำได้ด้วยคำสั่งเดียวแยก jpgs ดั้งเดิมและไม่มีการบีบอัดซ้ำเพิ่มเติม
Jose Gómez

3

ในการรับหน้าเดียวจากการแปลงกรัมให้เพิ่ม [N] (ด้วยหมายเลขหน้าเริ่มต้นที่ 0) ไปยังชื่อ PDF คือgm convert foo.pdf[11] out.pngรับหน้าที่ 12 จาก PDF

สำหรับการpdftoppmใช้งาน-f N -singlefileโดยที่ N คือหมายเลขหน้าเริ่มต้นที่ 1 เช่นpdftoppm -f 12 -singlefile foo.pdf outสำหรับผลลัพธ์เดียวกัน ดูเหมือนว่าจะเพิ่ม ".png" ไปยังชื่อไฟล์ที่ส่งออกเสมอและไม่มีทางที่จะหยุดสิ่งนี้ได้


2

คุณสามารถใช้การแปลงและระบุความหนาแน่นที่สูงขึ้นโดยใช้ -densityตัวเลือก

เช่น. convert -d 300 foo.pdf bar.png


คุณสามารถอธิบายเพิ่มเติมเกี่ยวกับความหนาแน่นและสิ่งที่สามารถทำได้อย่างไร
rɑːdʒɑ

1
@AgentCool มันระบุความหนาแน่นของภาพในแนวนอนและแนวตั้ง (เป็น ppi)
Arjun


1

Master PDF Editor (เวอร์ชั่น 2.2) มีตัวเลือกนี้อยู่ในนั้นเปิดไฟล์ PDF จากนั้นไปที่ไฟล์> ส่งออกเป็น> รูปภาพ มันแสดงกล่องโต้ตอบที่คุณสามารถกำหนดตัวเลือกต่าง ๆ สำหรับการแสดงผล มีประโยชน์อย่างยิ่ง หวังว่าข้อมูลนี้จะช่วยได้


นั่นเป็นรุ่นฟรีหรือจ่ายหรือไม่ ในรุ่นของฉันมีตัวเลือกเป็นสีเทาหรือไม่ นั่นหมายความว่าฉันต้องจ่ายเงิน? มีรุ่นจ่ายหรือไม่
Joshua Robison

0

PDF Mod ยังอนุญาตให้ส่งออกรูปภาพของไฟล์ PDF ทั้งหมดหรือหน้าเดียว

  • เปิดไฟล์ PDF ใน PDF Mod
  • เลือกหน้า -
  • แก้ไข> ส่งออกรูปภาพ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.