प्रोग्राम को पीडीएफ फाइल में छवियों की DPI कैसे निर्धारित करें?


13

मेरे पास कुछ पीडीएफ फाइलें हैं, जिनका उपयोग करके मैं TIFF फ़ाइलों में विभाजित करना चाहता हूं convert(OCR के माध्यम से tesseract)। यह अब तक बहुत अच्छा काम कर रहा है - सिवाय इसके कि पूरी प्रक्रिया को स्वचालित करने के लिए, मुझे convertआउटपुट की डीपीआई सेट करने की आवश्यकता है । अभी, मैं इस तरह से एक कमांड का उपयोग कर रहा हूं:

convert -density 300 myFile.pdf -depth 8 -background white output-%04d.tiff

... जो 300 डीपीआई में पीडीएफ फाइलों को आउटपुट करता है। हालांकि, कुछ पीडीएफ फाइलों है कम डीपीआई (जैसे 150 डीपीआई) जिसका अर्थ है कि मैं के माध्यम से 300 डीपीआई पर उन्हें उत्पादन नहीं करना चाहती convertइस में कोई अतिरिक्त जानकारी के बिना ज्यादा बड़े TIFF फ़ाइलों बनाता है -।

मुझे पता है कि एडोब एक्रोबैट को खोलकर और "प्रीफ्लाइट" टूल में गड़बड़ करके पीडीएफ फाइल में डीपीआई की जांच करने के तरीके हैं। हालाँकि, क्या कमांड लाइन के माध्यम से किसी विशेष पीडीएफ फाइल की डीपीआई का निर्धारण करने का कोई तरीका है?

जवाबों:


9

मुख्य उत्तर

चूंकि मुझे एक ही तरह की नौकरी में दिलचस्पी है (हालांकि पीडीएफ फाइलों को ओसीआर करने के लिए जरूरी नहीं है, लेकिन उन्हें डीजेवीयू और फिर उन्हें ओसीआर में बदलने के लिए ), मुझे यह सवाल और जवाबों की कमी महसूस हुई (क्योंकि मुझे डीपीआई का अनुमान लगाने की जरूरत थी) पिक्सेल की संख्या के साथ छवियां और फिर आकार का उपयोग आउटपुट के रूप में pdfinfoया अन्य चाल से किया जाता है --- यह उल्लेख नहीं करने के लिए कि पीडीएफ के अंदर की छवियों में भिन्न घनत्व हो सकते हैं आदि)।

बहुत अधिक शोध के बाद, मैंने पाया कि आप निम्नलिखित की तरह pdfimages(पैकेज पॉपलर-बर्तनों से ) का उपयोग कर सकते हैं :

$ pdfimages -list deptest.pdf
page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
   1     0 image     100   100  gray    1   1  image  no         9  0    53    53  169B  14%
   2     1 image     100   100  gray    1   1  ccitt  no   [inline]      53    53  698B  56%

नोटिस x-ppiऔर y-ppiऊपर लिस्टिंग पर। यह उस प्रारूप को भी सूचीबद्ध करता है जिसमें छवियों को पीडीएफ में संग्रहीत किया जाता है, जो शांत होता है (कभी-कभी, यह जेबीआईजी 2 है, कभी-कभी जेपी 2 डी 2 आदि)।

नोट: deptest.pdfऊपर प्रयोग की गई फाइल रिपॉजिटरी सेpdfsizeopt उपलब्ध है

असली क्रिया

उसके बाद, आप बस अपने आप से छवियों को निकाल सकते हैं pdfimagesया उपयोग कर सकते हैं pdftoppm(से भी poppler-utils) कई पृष्ठों में पूरे पृष्ठों को प्रस्तुत करने के लिए जिन्हें आप पसंद कर सकते हैं (जैसे, टिफ़, साथ स्कैनिंग के लिए tesseract)।

आप कुछ इस तरह से उपयोग कर सकते हैं (यह मानते हुए कि आपने एक निर्देशिका बनाई है, imgsजहां आप अपनी छवियां डालेंगे):

pdfimages -png Faraway-PRA.pdf imgs/prefix

फ़ाइलें निर्देशिका के अंदर बनाया जाएगा imgsके साथ शुरू नाम के साथ prefixके रूप में,:

$ ls 
prefix-000.png  prefix-047.png  prefix-094.png  prefix-141.png
prefix-001.png  prefix-048.png  prefix-095.png  prefix-142.png
prefix-002.png  prefix-049.png  prefix-096.png  prefix-143.png
prefix-003.png  prefix-050.png  prefix-097.png  prefix-144.png
(...)

फिर, आप किसी भी सर्जरी को कर सकते हैं जिसे आप अपने जैसे scantailorया जो भी उपकरण पसंद करते हैं उसके साथ फिट देखते हैं।

अधिक प्रत्यक्ष उत्तर

यदि आप केवल एक पीडीएफ फाइल OCR करना चाहते हैं, तो आप एक प्रोग्राम का उपयोग कर सकते हैं जो अच्छी तरह से बनाए रखा गया है और पहले से ही पैक किया गया है, जिसका नाम है ocrmypdf


ध्यान दें कि x-ppi(DPI में x रिज़ॉल्यूशन) और y-ppi(DPI में y रिज़ॉल्यूशन) पुराने संस्करणों पर नहीं दिखाए गए हैं, pdfimagesजो उदाहरण के लिए, Ubuntu 14.04 के साथ आते हैं। उबंटू 18.04 पर क्या उपलब्ध है, हालांकि, इन मूल्यों को शामिल करता है। pdfimages -vमेरी उबंटू 18.04 मशीन शो पर मैं संस्करण 0.62.0, जो है करता है इन सुविधाओं की है।
गेब्रियल स्टेपल्स

@GabrielStaples, इस ओर इशारा करने के लिए धन्यवाद। मुझे लगा कि Ubuntu 14.04 पहले से ही EOL'ed था, लेकिन यह "केवल" इसका मानक समर्थन 2019 के जुलाई के अंत में wiki.ubuntu.com/Releases के
rbrito

4

मुझे इस जानकारी की आवश्यकता थी और बस यहीं मिल गया:

http://www.wizards-toolkit.org/discourse-server/viewtopic.php?t=16110

यह तकनीक ImageMagick का भी उपयोग करती है:

identify -format "%w x %h %x x %y" DAT_1.tif

आउटपुट छवि का आकार और डीपीआई है:

2480 x 3507 300 x 300

यदि आप निर्देशिका में सभी pdfs को संसाधित करने के लिए * .pdf * करना चाहते हैं, तो मैं प्रारूप के अंत में एक नई पंक्ति जोड़ दूंगा। "% wx% h% xx% y \ n"
Hatoru Hansou

2

मैं निम्नलिखित कमांड का उपयोग करता हूं:

convert MyPDF.pdf -print "Size: %wx%h\n" /dev/null

और यह रिटर्न:

Size: 380x380

धन्यवाद - यह पीडीएफ छवियों का आकार प्राप्त करता है (आपके मामले में, 380x380 जैसा कि यह एक वर्ग है)। डीपीआई अलग है। मेरी फाइल पर कि मैं अभी इस कमांड को चलाता हूं, मुझे Size: 595x842डीपीआई (एक्रोबैट में चेकिंग) लगभग 130 है
जेसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.