กำลังค้นหาความละเอียดของภาพในไฟล์ PDF?


15

ฉันมีปัญหาในการให้ผู้ใช้บางคนสร้างไฟล์ PDF ที่มีขนาดใหญ่มาก ในทางกลับกันฉันมี PDF ที่ส่งจากเครื่องแฟกซ์ของเราที่มีขนาดเล็กมากและสามารถพิมพ์ได้ คำถามของฉันคือ

  • มีวิธีใดบ้างที่ฉันสามารถค้นหาความละเอียด (DPI) ของ PDF ฉันค้นหาในอินเทอร์เน็ตไม่พบคำตอบใด ๆ ตรวจสอบคุณสมบัติของไฟล์ข้อมูลนี้ไม่ได้ถูกเก็บไว้อย่างน้อยในกรณีของฉัน
  • ความละเอียดที่เหมาะสมที่สุดในการแปลงไฟล์ข้อความให้เป็นรูปภาพ PDF คืออะไร 96dpi, 300dpi หรือมากกว่า?
  • คำถามสนุก ฉันสามารถปรับขนาด PDF ที่สแกนด้วย dpi ที่มีความละเอียดสูงเป็น dpi ที่เล็กลงได้ไหม

ฉันรู้ว่าคำตอบบางอย่างอาจไม่สามารถใช้งานได้เนื่องจากฉันค้นหาข้อมูลทางอินเทอร์เน็ตแล้ว

หมายเหตุ: PDF ของฉันเป็นรูปภาพข้อความทั้งหมดเป็นรูปภาพ ฉันคุ้นเคยกับสิ่งที่คุณสามารถทดลองได้ด้วย primoPDF (ฟรี)

คำตอบ:


18

คำตอบ slhck และความคิดเห็น scruss' สมควรที่จะได้รับการปรับปรุง: pdfimagesตอนนี้ (อย่างน้อยตั้งแต่รุ่น 0.26.5) explicitely รายการและx-ppi y-ppiนี่คือตัวอย่างผลลัพธ์:

$ pdfimages -list example.pdf 
page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
   1     0 image    2244  2244  cmyk    4   8  image  no       215  0   301   301  418K 2.1%
   2     1 image     900   600  rgb     3   8  image  no       324  0  1524  1525 35.5K 2.2%

บน Debian (Wheezy) และ Fedora (23) pdfimagesเป็นส่วนหนึ่งของpoppler-utilsแพ็คเกจ


ของฉันว่างเปล่าหมด
theonlygusti

8

ฉันรู้ว่าคุณไม่ต้องการดึงข้อมูลภาพออกมา แต่นี่อาจเป็นวิธีเดียวที่จะค้นหาความละเอียดดั้งเดิม


ใน * ระวังถ้าคุณติดตั้งImageMagick identifyและXpdf 1 :

pdfimages -j test.pdf test && for file in $(find . -name "test*.jpg"); do identify "$file"; done

test.pdfไฟล์ PDF ที่คุณป้อนอยู่ที่ไหน ไฟล์ที่ส่งออกจะมีการเขียนtest-000.jpg, test-001.jpgฯลฯ นี่จะทำให้ขนาดเดิมของรูปภาพที่มีอยู่ทั้งหมดของ PDF 2นั้น

ตัวอย่างผลลัพธ์สำหรับไฟล์ PDF ที่มีภาพใหญ่เพียงภาพเดียว:

./test-000.jpg JPEG 2500x1961 2500x1961+0+0 8-bit DirectClass 1.022MB 0.000u 0:00.000

1) Windows มีสิ่งเหล่านี้เช่นกัน แต่สคริปต์จะแตกต่างกันอย่างแน่นอน
2) โปรดทราบว่ารูปภาพไม่ได้นำข้อมูล DPI มาใช้จริงๆ พูดง่าย ๆ : นั่นเป็นเพียงสิ่งที่ใช้สำหรับการพิมพ์และรูปภาพไม่จำเป็นต้องมี DPI โดยธรรมชาติ


ความละเอียดที่เหมาะสมที่สุดในการแปลงไฟล์ข้อความให้เป็นรูปภาพ PDF คืออะไร 96dpi, 300dpi หรือมากกว่า?

โดยทั่วไปสิ่งที่คุณต้องการพิมพ์ควรมีขนาด 300dpi หรือมากกว่า เครื่องพิมพ์ส่วนใหญ่จะรองรับความละเอียดสูงกว่าด้วย


2
เวอร์ชันของ pdfimages (บางทีอาจจะมากกว่าที่ผ่านมากว่าคำถามเดิม) จากโครงการ poppler โครงการมีรายชื่อpdfimages -list test.pdfตัวเลือก: แทนที่จะส่งไฟล์ออกรายการนี้จะแสดงขนาดและประเภทของรูปภาพ ยังไม่ได้ให้ความละเอียดกับคุณอย่างชัดเจน แต่หลีกเลี่ยงการสร้างไฟล์เอาต์พุต
scruss

1
@scruss ในฐานะเวอร์ชั่น 0.34.0 pdfimages -listให้ข้อมูลที่ชัดเจนx-ppiและy-ppiมีข้อมูลอื่น ๆ อีกมากมาย
Skippy le Grand Gourou

@SkippyleGrandGourou: จริง ๆ แล้วตอนนี้ประมาณห้าปีหลังจากถามคำถาม PDFimages ยังไม่สามารถใช้ความละเอียด / ขนาดนั้นกับภาพที่แยกออกมา
scruss

@scruss ที่จริงแล้วดูเหมือนว่าความละเอียดที่กำหนดโดยpdfimagesสามารถปิดค่อนข้าง (เช่นเมื่อภาพมีขนาดใหญ่กว่าพื้นที่ที่มองเห็นในรูปแบบ PDF ที่ผลิตโดยscribus) ( แต่น่าเสียดายที่ผมไม่ได้มีเวลาที่จะยื่นรายงานข้อผิดพลาดในขณะนี้.)
สกิปปี้ le Grand gourou

4

ด้วยเหตุผลบางอย่าง pdfimages รุ่นล่าสุดที่ฉันสามารถอัพเกรดใน CentOS ของฉันคือรุ่น 3.04

ดังนั้นฉันไม่มีตัวเลือก - รายการตามที่ระบุไว้ในคำตอบก่อนหน้า อย่างไรก็ตามภาพทดสอบที่สร้างขึ้นจาก pdfimages ตามคำตอบของ slhck นั้นมีคำตอบที่ต้องการ!

ระบุ -verbose ทดสอบ-0000.jpg | มากกว่า

Image: test-0000.jpg  
Format: JPEG (Joint Photographic Experts Group JFIF format)  
Mime type: image/jpeg  
Class: DirectClass  
Geometry: 6600x5100+0+0  
Resolution: 600x600  
Print size: 11x8.5

ดังนั้น dpi จะถูกแสดงอย่างชัดเจนในบรรทัดที่ 6 โดยใช้ตัวเลือก -verbose ในคำสั่ง ident

ดังนั้นคำตอบของ slhck สามารถแก้ไขได้ดังต่อไปนี้

pdfimages -j test.pdf การทดสอบ && สำหรับไฟล์เป็น $ (ค้นหา. -name "test * .jpg"); ระบุ -verbose "$ file" | awk 'NR == 6'; เสร็จแล้ว

ในบันทึกอื่นฉันพยายามเรียกใช้

ระบุ -verbose test.pdf

Format: PDF (Portable Document Format)  
Mime type: application/pdf  
Class: DirectClass  
Geometry: 792x612+0+0  
Resolution: 72x72  
Print size: 11x8.5  

ดูเหมือนว่า Imagemagick จะถือว่า 72dpi เสมอและข้อมูลที่พิมพ์ในที่นี้ดูเหมือนจะไม่ถูกต้อง


1

ไฟล์ PDF ไม่ได้มีความละเอียดโดยธรรมชาติแต่ละภาพแรสเตอร์ภายใน (ถ้ามี) จะมีความละเอียดของตัวเอง ฉันไม่รู้วิธีง่ายๆในการแยกหมายเลขเดียวสำหรับความละเอียดเฉลี่ย / โมดัลของภาพ XObjects แบบฝัง


โดยวิธีที่ฉันไม่สนใจในการดึงข้อมูลภาพจาก pdf ฉันแค่อยากรู้ว่าอะไรคือความละเอียดในการสแกนและถ้ามันสูงมากโดยไม่จำเป็นจะต้องการหลีกเลี่ยงมันในอนาคต
hk_

@Dave: จริง ๆ แล้วฉันหมายถึงการดึงข้อมูลเกี่ยวกับภาพที่ฝังไม่แยกภาพ แต่คำตอบของ slhckอาจช่วยแก้ปัญหาของคุณได้
RedGrittyBrick

1

สิ่งนี้ใช้ได้กับไฟล์ PDF ที่สร้างจาก Kyocera mfp ...ซึ่งอาจใช้ได้กับรูปภาพแบบเต็มหน้าเท่านั้นเช่นการสแกน

  1. เปิดไฟล์ PDF ที่มี Reader-
  2. ไฟล์> คุณสมบัติแท็บคำอธิบายขนาดหน้า ตัวอย่างของฉันบอกว่า 8.5x11.0 ใน

  3. เปิดไฟล์ PDF พร้อมโปรแกรมแก้ไขข้อความ (แผ่นจดบันทึก) ค้นหา/widthและ/height

  4. ใช้ความสูงและความกว้างและหารด้วยความสูงและความกว้างของหน้า (นิ้ว)

ตัวอย่าง:

5100/8.5=600
6600/11.0=600

PDF ของฉันถูกสแกนด้วยความละเอียด 600x600

คุณสามารถข้าม 2 ขั้นตอนแรกหากคุณรู้ขนาดเอกสาร (โดยทั่วไปคือ A4 คือ 8.27x11.69)


0

เพื่อตอบจุดที่สองของคุณนอกเหนือจากการพูดถึง @slhck เกี่ยวกับเครื่องพิมพ์ dpi แล้ว 300dpi ยังเป็นหมายเลขที่น้อยที่สุดที่แนะนำสำหรับ OCR ด้วยขนาดแบบอักษรเท่ากับ 10 + pt

นอกจากนี้หน้าจอแล็ปท็อป 4K ขนาด 15 นิ้วที่ทันสมัยมีเพียง 280PPi เท่านั้นดังนั้นหากคุณต้องการดู A4 ทั้งหน้าจอ (แนวนอน) จะไม่มีการสแกนจุดที่สูงกว่า ~ 320 dpi เพราะเอกสารใด ๆ ที่สูงกว่านั้นจะเป็น ลดขนาดลงแน่นอนว่านี่ไม่สำคัญว่าคุณวางแผนที่จะซูมเข้าหรือไม่

เพื่อตอบสองประเด็นอื่น ๆ อย่างน้อยทุกวันนี้คุณสามารถใช้ Acrobat Pro เพื่อตรวจสอบ DPI ของภาพและความละเอียดและคุณสามารถแก้ไขได้เช่นกัน

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