उच्च संकल्प के साथ छवि के लिए पीडीएफ कन्वर्ट


328

मैं convertएक इमेज (JPEG या PNG) में पीडीएफ लेने के लिए कमांड लाइन प्रोग्राम का उपयोग करने की कोशिश कर रहा हूं । यहाँ पीडीएफ में से एक है जिसे मैं बदलने की कोशिश कर रहा हूं।

मैं चाहता हूं कि कार्यक्रम अतिरिक्त श्वेत-स्थान को ट्रिम कर दे और एक उच्च गुणवत्ता वाली छवि लौटाए जिसे सुपरस्क्रिप्ट को आसानी से पढ़ा जा सके।

यह मेरा वर्तमान सर्वश्रेष्ठ प्रयास है । जैसा कि आप देख सकते हैं, ट्रिमिंग ठीक काम करता है, मुझे बस संकल्प को थोड़ा तेज करने की आवश्यकता है। यह वह कमांड है जिसका मैं उपयोग कर रहा हूं:

convert -trim 24.pdf -resize 500% -quality 100 -sharpen 0x1.0 24-11.jpg

मैंने निम्नलिखित सचेत निर्णय लेने की कोशिश की है:

  • इसे बड़ा आकार दें (संकल्प पर कोई प्रभाव नहीं है)
  • गुणवत्ता को यथासंभव उच्च बनाएं
  • का उपयोग करें -sharpen(मैं मूल्यों की एक श्रृंखला की कोशिश की है)

किसी भी सुझाव कृपया अंतिम PNG / JPEG उच्च में छवि का संकल्प प्राप्त करने पर बहुत सराहना की जाएगी!


मुझे नहीं पता, आप भी लिंक की कोशिश कर सकते हैं ...
karnok

1
इसे भी देखें: askubuntu.com/a/50180/64957
डेव जार्विस

यदि आप एक मैक पर हैं, तो "स्क्रिप्ट करने योग्य छवि प्रसंस्करण प्रणाली" के लिए मैन पेजsips देखें। यह एक कमांड लाइन छवि संपादक है जो मैकओएस, पीडीएफ और कई अन्य छवि प्रकारों पर काम करता है।
घटि

@ghoti sips केवल पीडीएफ फाइल के पहले पेज को एक इमेज में बदल देगा।
बेंविगी

जवाबों:


386

ऐसा प्रतीत होता है कि निम्नलिखित काम करता है:

convert           \
   -verbose       \
   -density 150   \
   -trim          \
    test.pdf      \
   -quality 100   \
   -flatten       \
   -sharpen 0x1.0 \
    24-18.jpg

यह बाईं छवि में परिणाम है । मेरे मूल आदेश ( दाईं ओर की छवि ) के परिणाम से इसकी तुलना करें :

  

( वास्तव में दोनों के बीच के अंतर को देखें और सराहें, प्रत्येक पर राइट-क्लिक करें और "न्यू टैब में ओपन इमेज ..." का चयन करें ।)

निम्नलिखित तथ्यों को भी ध्यान में रखें:

  • दाईं ओर की खराब, धुंधली छवि का फ़ाइल साइज़ 1.941.702 बाइट्स (1.85 MByte) है। 16-बिट RGB रंग स्थान का उपयोग करते हुए इसका रिज़ॉल्यूशन 3060x3960 पिक्सेल है।
  • बाईं ओर बेहतर, तेज छवि का फ़ाइल आकार 337.879 बाइट्स (330 kByte) है। 8-बिट ग्रे कलर स्पेस का उपयोग करते हुए इसका रिज़ॉल्यूशन 758x996 पिक्सल है।

इसलिए, आकार बदलने की आवश्यकता नहीं है; -densityझंडा जोड़ें । घनत्व मूल्य 150 अजीब है - दोनों दिशाओं में एक बदतर दिखने वाली छवि में मूल्यों की एक श्रृंखला की कोशिश कर रहा है!


77
इनपुट फ़ाइल से पहलेdensity आने के लिए पैरामीटर थोड़ा विशेष है । जैसा कि पीडीएफ एक वेक्टर आधारित फ़ाइल प्रारूप है, जिसमें पिक्सेल की (बहुत) धारणा नहीं होती है, यह कुछ ऐसा कहता है जैसे "पृष्ठ 12 इंच से 8 इंच" है। यदि आप पिक्सेल चाहते हैं, तो आप यह बताने के लिए सेटिंग का उपयोग करते हैं कि आप आउटपुट में कितने पिक्सेल प्रति इंच चाहते हैं। ई। जी। 150 के साथ आपको परिणामी छवि में 8x150 = 1200 तक 12x150 = 1800 पिक्सेल मिलेंगे। यह भी पिक्सल की मात्रा पैनापन, इसके विपरीत, संपीड़न आदि सेटिंग्स पर काम कर रहे हैं। density
डैनियल श्नाइलर

8
इसका परिणाम मैक ओएस पर काली पृष्ठभूमि में हो सकता है (देखें stackoverflow.com/questions/10934456/… )। इसे ठीक करने के लिए, जोड़ें -flatten
रॉल्फ

2
मुझे मैक ओएस पर एक काली पृष्ठभूमि मिली, जब मैंने पीडीएफ को पीएनजी में बदलने की कोशिश की, -फ्लैट को हल किया।
ओला

4
वाह! बस का इस्तेमाल किया -densityऔर -flatten(एक और पीडीएफ के लिए) एक पीडीएफ के आकार को कम करने के लिए विकल्प। -flattenविकल्प वास्तव में कुल आकार को कम करने में एक बहुत मदद करता है। मेरे मामले में, दृश्य गड़बड़ी के बिना।
परवस

2
-densityध्वज की संभावना उच्च मूल्यों पर भी बुरा परिणाम देगा यदि आरंभिक चित्र की गुणवत्ता कि तुलना में कम था।
परवस

152

व्यक्तिगत रूप से मुझे यह पसंद है।

convert -density 300 -trim test.pdf -quality 100 test.jpg

यह फ़ाइल के आकार से दोगुना है, लेकिन यह मुझे बेहतर लगता है।

-density 300 डीपीआई सेट करता है जिसे पीडीएफ में प्रस्तुत किया गया है।

-trim किसी भी किनारे के पिक्सेल को हटाता है जो कोने के पिक्सेल के समान रंग का होता है।

-quality 100 JPEG संपीड़न गुणवत्ता को उच्चतम गुणवत्ता पर सेट करता है।

जैसे चीजें -sharpenपाठ के साथ अच्छी तरह से काम नहीं करती हैं क्योंकि वे आपके फ़ॉन्ट रेंडरिंग सिस्टम को बदल देती हैं।

अगर आप वास्तव में चाहते हैं कि इसका उपयोग यहां पर किया जाए और संभवतः कुछ ऐसा ही एक बड़ा डीपीआई मूल्य जो targetDPI * scalingFactor आपके द्वारा इरादा / आकार में पीडीएफ को प्रस्तुत करेगा।

Imagemagick.org पर मापदंडों के विवरण यहां दिए गए हैं


इसका आकार ज्यादातर दोगुना है क्योंकि आउटपुट घनत्व दोगुना हो गया है और jpg कम्प्रेशन क्वालिटी अधिकतम पर सेट की गई है (इसलिए ज्यादा कम्प्रेशन नहीं)।
रिविमे

उपयोग convertकरने से हमें पता चलेगा कि कितने पृष्ठ परिवर्तित हुए हैं?
किरण रेड्डी

उह, यह निश्चित रूप से जाने का रास्ता है। उस स्रोत घनत्व को टकराएं और निकालें -sharpen। गुणवत्ता बहुत हद तक चूक से बेहतर है और जिस तरह से अधिक प्राकृतिक है -sharpen
जोशुआ पिंटर

19

मैं pdftoppmप्रारंभिक छवि प्राप्त करने के लिए कमांड लाइन पर उपयोग करता हूं , आमतौर पर 300 डीपीआई के संकल्प के साथ, इसलिए pdftoppm -r 300, फिर convertट्रिमिंग और पीएनजी रूपांतरण करने के लिए उपयोग करता हूं।


1
Imagemagick का उपयोग नहीं करते समय, यह समाधान एक पारदर्शी रूपांतरण की भावना में सबसे अधिक लगता है। pdftoppmजेपीईजी और पीएनजी का उत्पादन भी कर सकता है।
एरॉन ब्रिक

19

आम तौर पर मैं मूल रिज़ॉल्यूशन में 'pdfimages' के साथ एम्बेडेड छवि को निकालता हूं, फिर ImageMagick के कन्वर्ट को आवश्यक प्रारूप में उपयोग करें:

$ pdfimages -list fileName.pdf
$ pdfimages fileName.pdf fileName   # save in .ppm format
$ convert fileName-000.ppm fileName-000.png

यह सबसे अच्छा और सबसे छोटा परिणाम फ़ाइल उत्पन्न करता है।

नोट: हानिपूर्ण JPG एम्बेडेड छवियों के लिए, आपको -j का उपयोग करना होगा:

$ pdfimages -j fileName.pdf fileName   # save in .jpg format

हाल ही में पॉपलर के साथ आप -all का उपयोग कर सकते हैं जो कि jpg के रूप में हानिरहित और png के रूप में दोषरहित है

थोड़ा प्रदान किए गए विन प्लेटफॉर्म पर आपको हाल ही में (0.37 2015) 'poppler-use' बाइनरी डाउनलोड करना था: http://blog.alivate.com.au/poppler-windows/


बस एक मामूली सुधार: पहले कोड ब्लॉक में दूसरी कमान के साथ शुरू pdftoppm नहीं होना चाहिएpdfimages
सत्यनारायण राव

नहीं, पुराने pdfimages निकाले गए चित्रों को pdftoppm की तरह ppm पर सहेजता है, और pdftoppm के पास कभी-भी-विकल्प नहीं था। वर्तमान pdfimages सीधे नोट में बताए अनुसार PNG और JPG को बचा सकता है
Valerio

13

जब यह PNGs और JPGs में बड़ी-बड़ी PDF को बैच करता है, तो मैं इसे तेजी से और अधिक स्थिर रूप से प्राप्त करता हूं, जो अंतर्निहित gs(उर्फ घोस्टस्क्रिप्ट) कमांड का convertउपयोग करता है।

आप के आउटपुट में कमांड देख सकते हैं convert -verboseऔर वहां कुछ और ट्वीक संभव हैं (वाईएमएमवी) जो सीधे पहुंच के लिए मुश्किल / असंभव है convert

हालाँकि, अपने ट्रिमिंग और शार्पिंग का उपयोग करना कठिन होगा gs, इसलिए, जैसा कि मैंने कहा, YMMV!


10

यह आपको अच्छे परिणाम भी देता है:

exec("convert -geometry 1600x1600 -density 200x200 -quality 100 test.pdf test_image.jpg");

7

यहां लिनक्स उपयोगकर्ता: मैंने convertकमांड-लाइन उपयोगिता (पीडीएफ से पीएनजी के लिए) की कोशिश की और मैं परिणामों से खुश नहीं था। मैंने पाया कि यह बेहतर है, बेहतर परिणाम के साथ:

  • pdftk के साथ पीडीएफ़ पृष्ठ को निकालें
    • उदाहरण के लिए: pdftk file.pdf cat 3 output page3.pdf
  • खुले (आयात) कि पीडीएफ के साथ GIMP
    • महत्वपूर्ण: आयात को या Resolutionसे बदलें100300600 pixel/in
  • में GIMPपीएनजी (.png के लिए परिवर्तन फाइल एक्सटेंशन) के रूप में निर्यात

संपादित करें:

जोड़ा गया चित्र, जैसा कि अनुरोध किया गया है Comments। परिवर्तित कमांड का उपयोग किया:

convert -density 300 -trim struct2vec.pdf -quality 100 struct2vec.png

GIMP: 300 डीपीआई (पीएक्स / इन) पर आयातित; पीएनजी संपीड़न स्तर 3 के रूप में निर्यात किया जाता है।

मैंने कमांड लाइन पर GIMP का उपयोग नहीं किया है (नीचे: मेरी टिप्पणी, नीचे)।

pdf2png

यहां छवि विवरण दर्ज करें


1
यदि आपके पास हजारों पृष्ठ हैं तो क्या यह स्वचालित हो सकता है?
JBWhitmore

@JBWhitmore: अच्छा सवाल। निश्चित रूप से यह pdftk कमांड को स्क्रिप्ट करने के लिए सरल होगा, क्योंकि यह पहले से ही कमांड लाइन पर है। मैंने वास्तव में त्वरित Google खोज की, और पाया कि GIMP में एक बैच मोड है (मैंने इसे आज़माया नहीं है, लेकिन ऐसा लगता है कि इसे स्क्रिप्ट के समान होना चाहिए): gimp.org/tutorials/Basic_Batch
Victoria Stuart

1
@JWWitmore इस रूपांतरण को स्वचालित करने के लिए एक उदाहरण स्क्रिप्ट इस प्रश्न / उत्तर पर दिखाया गया है: unix.stackexchange.com/questions/121293/…
tsherwen

1
@tsherwen, अगर मैं उस लिंक को सही ढंग से पढ़ता हूं तो यह है कि कन्वर्ट कमांड को स्वचालित कैसे करें। मैं ऐसा करने के बारे में भ्रमित नहीं हूँ। हालाँकि, यह उत्तर GIMP को चरणों में से एक के रूप में उपयोग करने के लिए कहता है - और न ही यह उत्तर और न ही जुड़ा हुआ पता चलता है कि इसे कैसे स्वचालित किया जाए।
JBWhitmore

1
@JBWhitmore। मैं गलती से सिर्फ सवाल के संदर्भ में सोच रहा था convert। मैंने केवल इस उत्तर के हिस्से को देखा convertऔर आपके स्वचालन टिप्पणी को पढ़ते हुए आपके प्रश्न का उल्लेख किया । इस धागे पर बाद में आपके उत्तर के लिए धन्यवाद, जिसे मैंने उस समाधान के साथ जोड़ा जिससे मैं जुड़ा हुआ था और एक अलग मुद्दे को हल कर रहा था जो मैं कर रहा था।
tsherwen

7

मुझे वास्तव में अच्छी सफलता नहीं मिली convert[अद्यतन मई 2020: वास्तव में: यह मेरे लिए बहुत काम करता है], लेकिन मुझे इसके साथ उत्कृष्ट सफलता मिली है pdftoppm। यहाँ एक पीडीएफ से उच्च-गुणवत्ता वाली छवियों के उत्पादन के कुछ उदाहरण दिए गए हैं:

  1. [उत्पादन प्रति ~ २५ एमबी-आकार की फाइलें] आउटपुट असम्पीडित .tif फ़ाइल प्रारूप ३०० DPI में एक फ़ोल्डर में "चित्र" नामक है, जिसमें फाइलें pg-१.tif , pg-२.tif , pg-३.tif , आदि:

    mkdir -p images && pdftoppm -tiff -r 300 mypdf.pdf images/pg
    
  2. [उत्पादन प्रति ~ 1 एमबी आकार की फाइलें] 300 डीपीआई में .jpg प्रारूप में आउटपुट :

    mkdir -p images && pdftoppm -jpeg -r 300 mypdf.pdf images/pg
    
  3. [उत्पादन प्रति ~ 2 एमबी आकार की फाइलें] उत्पादन में .jpg प्रारूप उच्चतम गुणवत्ता (कम से कम संपीड़न) और अभी भी डीपीआर पर :

    mkdir -p images && pdftoppm -jpeg -jpegopt quality=100 -r 300 mypdf.pdf images/pg
    

अधिक स्पष्टीकरण, विकल्प और उदाहरण के लिए, मेरा पूरा जवाब यहां देखें:

/ubuntu/150100/extracting-embedded-images-from-a-pdf/1187844#1187844

सम्बंधित:

  1. [एक पीडीएफ को खोज योग्य पीडीएफ में कैसे मोड़ें w / pdf2searchablepdf] /ubuntu/473843/how-to-turn-a-pdf-into-a-text-searchable-pdf/118781#1187881
  2. क्रॉस से जुड़े:
    1. Linux में कमांड के साथ PDF को JPG में कैसे बदलें?
    2. /unix/11835/pdf-to-jpg-without-quality-loss-gscan2pdf/585574#585574

6

ImageMagick में, आप "supersampling" कर सकते हैं। आप एक बड़े घनत्व को निर्दिष्ट करते हैं और फिर अंतिम आउटपुट आकार के लिए वांछित के रूप में ज्यादा आकार बदलते हैं। अपनी छवि के साथ उदाहरण के लिए:

convert -density 600 test.pdf -background white -flatten -resize 25% test.png


यहां छवि विवरण दर्ज करें

तुलना के लिए पूर्ण संकल्प पर देखने के लिए छवि डाउनलोड करें।

यदि आप आगे की प्रक्रिया करने की उम्मीद कर रहे हैं तो मैं जेपीजी को बचाने की सलाह नहीं देता।

यदि आप चाहते हैं कि आउटपुट इनपुट के समान आकार का हो, तो अपने घनत्व के अनुपात के व्युत्क्रम का आकार 72 तक कर लें। उदाहरण के लिए, -density 288 और -resize 25%। 288 = 4 * 72 और 25% = 1/4

घनत्व जितना बड़ा होगा उतना बेहतर परिणाम होगा, लेकिन यह प्रक्रिया में अधिक समय लेगा।


3

एक और सुझाव यह है कि आप GIMP का उपयोग कर सकते हैं।

बस GIMP में पीडीएफ फाइल लोड करें-> .xcf के रूप में सेव करें और फिर आप जो चाहें इमेज के लिए कर सकते हैं।


9
कमांड लाइन के माध्यम से ऐसा करने का कारण यह है कि मेरे पास हजारों पृष्ठ थे जिन्हें इस प्रक्रिया की आवश्यकता थी।
JBWhitmore

इसके अलावा, जीआईएमपी लोड करने पर पेज को रेंडर करता है , इसलिए जब आप पेज लोड करने के लिए चुनते हैं तो आप रिज़ॉल्यूशन सेट करना चाहेंगे। यदि आप लोड करने पर 100 डीपीआई डिफ़ॉल्ट के साथ शुरू करते हैं तो यह बहुत मायने नहीं रखता कि आप आउटपुट पैरामीटर क्या सेट करते हैं।
कीथ डेविस

1

मैं एक ओपन सोर्स जावा पीडीएफ इंजन का उपयोग करता हूं । चेक कार्यालय डेमो

package image2pdf;

import org.icepdf.core.exceptions.PDFException;
import org.icepdf.core.exceptions.PDFSecurityException;
import org.icepdf.core.pobjects.Document;
import org.icepdf.core.pobjects.Page;
import org.icepdf.core.util.GraphicsRenderingHints;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

public class pdf2image {

   public static void main(String[] args) {

      Document document = new Document();
      try {
         document.setFile("C:\\Users\\Dell\\Desktop\\test.pdf");
      } catch (PDFException ex) {
         System.out.println("Error parsing PDF document " + ex);
      } catch (PDFSecurityException ex) {
         System.out.println("Error encryption not supported " + ex);
      } catch (FileNotFoundException ex) {
         System.out.println("Error file not found " + ex);
      } catch (IOException ex) {
         System.out.println("Error IOException " + ex);
      }

      // save page captures to file.
      float scale = 1.0f;
      float rotation = 0f;

      // Paint each pages content to an image and
      // write the image to file
      for (int i = 0; i < document.getNumberOfPages(); i++) {
         try {
         BufferedImage image = (BufferedImage) document.getPageImage(
             i, GraphicsRenderingHints.PRINT, Page.BOUNDARY_CROPBOX, rotation, scale);

         RenderedImage rendImage = image;
         try {
            System.out.println(" capturing page " + i);
            File file = new File("C:\\Users\\Dell\\Desktop\\test_imageCapture1_" + i + ".png");
            ImageIO.write(rendImage, "png", file);
         } catch (IOException e) {
            e.printStackTrace();
         }
         image.flush();
         }catch(Exception e){
             e.printStackTrace();
         }
      }

      // clean up resources
      document.dispose();
   }
}

मैंने भी इमेजमाजिक और पीडीएफटॉप की कोशिश की है , दोनों पीडीएफटॉप और आइसपीडीएफ में इमेजमैजिक की तुलना में एक उच्च रिज़ॉल्यूशन है।


1

कृपया वोटिंग से पहले ध्यान दें, यह समाधान जिम्प के लिए है जिसमें ग्राफिकल इंटरफ़ेस का उपयोग किया गया है, और इमेजमैजिक के लिए कमांड लाइन का उपयोग नहीं किया गया है, लेकिन इसने मेरे लिए एक विकल्प के रूप में पूरी तरह से ठीक काम किया, और यही कारण है कि मुझे यहां साझा करने की आवश्यकता पड़ी।

पीडीएफ दस्तावेजों से किसी भी प्रारूप में छवियों को निकालने के लिए इन सरल चरणों का पालन करें

  1. GIMP छवि हेरफेर कार्यक्रम डाउनलोड करें
  2. स्थापना के बाद प्रोग्राम खोलें
  3. PDF डॉक्युमेंट खोलें, जिसे आप Images से निकालना चाहते हैं
  4. पीडीएफ दस्तावेज़ के केवल उन पृष्ठों का चयन करें जिनसे आप चित्र निकालना चाहते हैं। एन / बी: यदि आपको केवल कवर छवियों की आवश्यकता है, तो केवल पहले पृष्ठ का चयन करें।
  5. उन पृष्ठों को चुनने के बाद खुले पर क्लिक करें, जिनसे आप चित्र निकालना चाहते हैं
  6. फ़ाइल पर क्लिक करेंजब पृष्ठ खुले तो GIMP मेनू
  7. के रूप में निर्यात का चयन करेंफ़ाइल मेनू में
  8. अपने पसंदीदा फ़ाइल प्रकार को एक्सटेंशन बॉक्स के नीचे एक्सटेंशन (बोलो png) चुनें जो पॉप अप करता है।
  9. अपनी इच्छित जगह पर अपनी छवि निर्यात करने के लिए निर्यात पर क्लिक करें ।
  10. आप निर्यात की गई छवि के लिए अपनी फ़ाइल एक्सप्लोरर की जांच कर सकते हैं।

बस इतना ही।

आशा है कि ये आपकी मदद करेगा


प्रश्न एक कमांड लाइन का उपयोग करके इमेजमैजिक के लिए है, न कि जिम्प के लिए ग्राफिकल इंटरफ़ेस का उपयोग करने के लिए।
सिडनी जू

0

PNG फाइल जो आपने जुड़ी है वह वास्तव में धुंधली दिखती है। यदि आपको पीडीएफ पूर्वावलोकन के रूप में उत्पन्न प्रत्येक छवि के लिए अतिरिक्त पोस्ट-प्रोसेसिंग का उपयोग करने की आवश्यकता है, तो आप अपने समाधान के प्रदर्शन को कम कर देंगे।

2JPEG पीडीएफ फाइल को एक तेज पैनी JPG से जोड़ सकते हैं और एक कॉल में खाली मार्जिन को बदल सकते हैं:

2jpeg.exe -src "C:\In\*.*" -dst "C:\Out" -oper Crop method:autocrop

मूल PNG में धुंधलापन वह है जिसने पहली बार में प्रश्न को प्रेरित किया है, और स्वीकृत उत्तर में PNG बल्कि कुरकुरा है।
JBWhitmore


0

निम्नलिखित अजगर स्क्रिप्ट किसी भी मैक (हिम तेंदुए और ऊपर) पर काम करेगी। यह कमांड लाइन पर तर्कों के रूप में लगातार पीडीएफ फाइलों के साथ उपयोग किया जा सकता है, या आप ऑटोमेटर में एक रन शैल स्क्रिप्ट कार्रवाई में डाल सकते हैं, और एक सेवा (Mojave में त्वरित कार्रवाई) कर सकते हैं।

आप स्क्रिप्ट में आउटपुट छवि का रिज़ॉल्यूशन सेट कर सकते हैं।

स्क्रिप्ट और एक त्वरित कार्रवाई GitHub से डाउनलोड किया जा सकता है।

#!/usr/bin/python
# coding: utf-8

import os, sys
import Quartz as Quartz
from LaunchServices import (kUTTypeJPEG, kUTTypeTIFF, kUTTypePNG, kCFAllocatorDefault) 

resolution = 300.0 #dpi
scale = resolution/72.0

cs = Quartz.CGColorSpaceCreateWithName(Quartz.kCGColorSpaceSRGB)
whiteColor = Quartz.CGColorCreate(cs, (1, 1, 1, 1))
# Options: kCGImageAlphaNoneSkipLast (no trans), kCGImageAlphaPremultipliedLast 
transparency = Quartz.kCGImageAlphaNoneSkipLast

#Save image to file
def writeImage (image, url, type, options):
    destination = Quartz.CGImageDestinationCreateWithURL(url, type, 1, None)
    Quartz.CGImageDestinationAddImage(destination, image, options)
    Quartz.CGImageDestinationFinalize(destination)
    return

def getFilename(filepath):
    i=0
    newName = filepath
    while os.path.exists(newName):
        i += 1
        newName = filepath + " %02d"%i
    return newName

if __name__ == '__main__':

    for filename in sys.argv[1:]:
        pdf = Quartz.CGPDFDocumentCreateWithProvider(Quartz.CGDataProviderCreateWithFilename(filename))
        numPages = Quartz.CGPDFDocumentGetNumberOfPages(pdf)
        shortName = os.path.splitext(filename)[0]
        prefix = os.path.splitext(os.path.basename(filename))[0]
        folderName = getFilename(shortName)
        try:
            os.mkdir(folderName)
        except:
            print "Can't create directory '%s'"%(folderName)
            sys.exit()

        # For each page, create a file
        for i in range (1, numPages+1):
            page = Quartz.CGPDFDocumentGetPage(pdf, i)
            if page:
        #Get mediabox
                mediaBox = Quartz.CGPDFPageGetBoxRect(page, Quartz.kCGPDFMediaBox)
                x = Quartz.CGRectGetWidth(mediaBox)
                y = Quartz.CGRectGetHeight(mediaBox)
                x *= scale
                y *= scale
                r = Quartz.CGRectMake(0,0,x, y)
        # Create a Bitmap Context, draw a white background and add the PDF
                writeContext = Quartz.CGBitmapContextCreate(None, int(x), int(y), 8, 0, cs, transparency)
                Quartz.CGContextSaveGState (writeContext)
                Quartz.CGContextScaleCTM(writeContext, scale,scale)
                Quartz.CGContextSetFillColorWithColor(writeContext, whiteColor)
                Quartz.CGContextFillRect(writeContext, r)
                Quartz.CGContextDrawPDFPage(writeContext, page)
                Quartz.CGContextRestoreGState(writeContext)
        # Convert to an "Image"
                image = Quartz.CGBitmapContextCreateImage(writeContext) 
        # Create unique filename per page
                outFile = folderName +"/" + prefix + " %03d.png"%i
                url = Quartz.CFURLCreateFromFileSystemRepresentation(kCFAllocatorDefault, outFile, len(outFile), False)
        # kUTTypeJPEG, kUTTypeTIFF, kUTTypePNG
                type = kUTTypePNG
        # See the full range of image properties on Apple's developer pages.
                options = {
                    Quartz.kCGImagePropertyDPIHeight: resolution,
                    Quartz.kCGImagePropertyDPIWidth: resolution
                    }
                writeImage (image, url, type, options)
                del page

0

आप इसे लिबरऑफिस ड्रा में कर सकते हैं (जो आमतौर पर उबंटू में पूर्वस्थापित होता है ):

  1. LibreOffice ड्रा में पीडीएफ फाइल खोलें।
  2. उस पृष्ठ पर स्क्रॉल करें जिसकी आपको आवश्यकता है।
  3. सुनिश्चित करो पाठ / छवि तत्व सही तरीके से रखे गए हैं। यदि नहीं, तो आप उन्हें पृष्ठ पर समायोजित / संपादित कर सकते हैं।
  4. शीर्ष मेनू: फ़ाइल> निर्यात ...
  5. नीचे-दाएं मेनू में आपको आवश्यक छवि प्रारूप का चयन करें। मैं पीएनजी की सलाह देता हूं।
  6. अपनी फ़ाइल को नाम दें और सहेजें पर क्लिक करें।
  7. विकल्प विंडो दिखाई देगी, जिससे आप रिज़ॉल्यूशन और आकार समायोजित कर सकते हैं।
  8. ठीक क्लिक करें, और आप कर रहे हैं।

0

मैंने pdf2image का उपयोग किया है । एक साधारण अजगर पुस्तकालय जो आकर्षण की तरह काम करता है।

पहले गैर लाइनर मशीन पर पॉप्लर स्थापित करें । आप सिर्फ ज़िप डाउनलोड कर सकते हैं। प्रोग्राम फाइल्स में अनज़िप करें और मशीन पाथ में बिन जोड़ें।

उसके बाद आप इस तरह से अजगर वर्ग में pdf2image का उपयोग कर सकते हैं:

from pdf2image import convert_from_path, convert_from_bytes
images_from_path = convert_from_path(
   inputfile,
   output_folder=outputpath,
   grayscale=True, fmt='jpeg')

मैं अजगर के साथ अच्छा नहीं हूं, लेकिन इसका निर्वासन करने में सक्षम था। बाद में आप फ़ाइल इनपुट और आउटपुट पैरामीटर के साथ exe का उपयोग कर सकते हैं। मैंने इसे C # में इस्तेमाल किया है और चीजें ठीक चल रही हैं।

छवि गुणवत्ता अच्छी है। ओसीआर ठीक काम करता है।


-1

यह वास्तव में एक मैक पर पूर्वावलोकन के साथ करने के लिए बहुत आसान है। आपको बस इतना करना है कि फाइल को प्रीव्यू में खोलें और एक पीएनजी या जेपीईजी के रूप में सेव (या एक्सपोर्ट) करें लेकिन सुनिश्चित करें कि आप उच्च गुणवत्ता की छवि प्राप्त करने के लिए विंडो के नीचे कम से कम 300 डीपीआई का उपयोग करें।


6
यदि आपके पास हजारों पृष्ठ हैं तो क्या यह स्वचालित हो सकता है?
JBWhitmore
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.