पीडीएफ को इमेज में कैसे बदलें?


326

मुझे पीडीएफ पृष्ठों को छवियों में परिवर्तित करने की आवश्यकता है। कुछ पाठ के साथ एक पृष्ठभूमि छवि है, इसलिए जब मैं इसे छवि के रूप में सहेजता हूं तो केवल पृष्ठभूमि छवि बच गई।

क्या कोई ऐसा सॉफ़्टवेयर उपलब्ध है जिससे पूरा पृष्ठ छवि में बदला जा सके?


जाहिरा तौर पर यह
अक्सस्केप के

जवाबों:


299
  1. Imagemagick स्थापित करें ।

  2. एक टर्मिनल का उपयोग करना जहां पीडीएफ स्थित है:

    • पूर्ण दस्तावेज़ के लिए:

      convert -density 150 input.pdf -quality 90 output.png
      
    • एक पृष्ठ के लिए:

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

जिससे:

  • पीएनजी, जेपीजी या (वस्तुतः) किसी भी अन्य छवि प्रारूप को चुना जा सकता है।

  • -density xxxxxx(150 और 300 आम हैं) के लिए DPI सेट करेगा ।

  • -quality xxxxxxPNG, JPG और MIFF फ़ाइल फॉर्मेट्स के लिए संपीड़न सेट करेगा (100 का अर्थ है कोई संपीड़न नहीं)।

  • [666]केवल 667 वें पृष्ठ को PNG में परिवर्तित कर देगा (शून्य-आधारित क्रमांकन ऐसा [0]1 पृष्ठ है)।

  • अन्य सभी विकल्प (जैसे ट्रिमिंग, ग्रेस्केल, आदि) इमेज मैजिक की वेबसाइट पर देखे जा सकते हैं ।


2
जैसा काम करता है उसका जवाब है लेकिन संकल्प बहुत खराब है। इसलिए वर्तमान में एक उत्तर नहीं है जो उपयोगी है। शायद अगर कन्वर्ट में कुछ पैरामीटर हैं जो निर्दिष्ट किए जा सकते हैं तो यह बदल सकता है।
एलिजा लिन

48
यह उत्तर बहुत अधिक गुणवत्ता वाला है askubuntu.com/a/50180/11929
एलिजा लिन

6
आप जोड़कर घनत्व बदल सकते हैं -density 300पैरामीटर
OHLÁLÁ

4
तो क्या कोई इस बात की पुष्टि कर सकता है कि निर्दिष्ट घनत्व इसे "उतना ही अच्छा" बनाता है जितना कि यहाँ अन्य उत्तर हैं या नहीं? अनुयायियों के लिए एक नोट के रूप में, इमेजमैजिक "घोस्टस्क्रिप्ट" को कॉल करता है, जो वास्तव में पीडीएफ से पीएनजी एक्स में परिवर्तित होता है: 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इसका मतलब है कि आपके पास
भूतस्क्रिप्ट

4
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

392

आप pdftoppmPDF को PNG में बदलने के लिए उपयोग कर सकते हैं :

pdftoppm input.pdf outputname -png

यह पृष्ठ के सूचकांक होने के outputname-01.pngसाथ, प्रारूप का उपयोग करके पीडीएफ में प्रत्येक पृष्ठ को आउटपुट करेगा 01

पीडीएफ के एक पृष्ठ को परिवर्तित करना

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

पृष्ठ {page}संख्या में परिवर्तन । यह 1 पर अनुक्रमित है, इसलिए -f 1पहला पृष्ठ होगा।

परिवर्तित छवि के संकल्प को निर्दिष्ट करना

इस कमांड का डिफ़ॉल्ट रिज़ॉल्यूशन 150 DPI है। इसे बढ़ाने से बड़े फ़ाइल आकार और अधिक विवरण दोनों प्राप्त होंगे।

परिवर्तित पीडीएफ के संकल्प को बढ़ाने के लिए, विकल्प जोड़ें -rx {resolution}और -ry {resolution}। उदाहरण के लिए:

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

24
बहुत बहुत धन्यवाद। इमेजमागिक या ग्राफिक्समैगिक की तुलना में बहुत बेहतर गुणवत्ता!
dAnjou

7
pdftoppm कन्वर्ट की तुलना में बहुत तेज़ है
zuo

4
यह वास्तव में इमेजमैजिक की तुलना में बहुत बेहतर है। Imagemagick ने वास्तव में मेरे मामले में अप्रत्याशित तरीके से रंगों को बदल दिया!
NoBackingDown

13
यह अच्छा है!, लेकिन -r 300जब आप उन्हें एक ही मूल्य पर सेट करना चाहते हैं, तो स्वतंत्र रूप से x और y प्रस्तावों को निर्दिष्ट करने के बजाय लिखना थोड़ा आसान है ।
14

2
मुझे इमेजमैगिक की तुलना में pdftoppm के साथ बहुत अधिक सफलता मिली।
माइकल हेस

22

IIRC GIMP PDF का उपयोग करने में सक्षम है, अर्थात उन्हें छवियों में परिवर्तित करना। इसलिए यदि आप अभी चित्रों को संपादित करना चाहते हैं - GIMP आपका मित्र है।


जीआईएमपी वास्तव में पीडीएफ खोल सकता है, प्रत्येक पृष्ठ एक परत के रूप में। "निर्यात के रूप में" का चयन केवल वर्तमान परत को बचाने के लिए लगता है, लेकिन आप निर्यात करने के बाद परत को आसानी से हटा सकते हैं और "निर्यात के रूप में" फिर से चला सकते हैं।
डेन डस्केलस्कु

12

वर्तमान में स्वीकृत जवाब काम करता है लेकिन एक आउटपुट में परिणाम होता है जो आकार में बड़ा होता है और गुणवत्ता हानि से ग्रस्त होता है।

यहां दिए गए जवाब में विधि एक आउटपुट में परिणाम देती है जो आकार में इनपुट के बराबर होती है और गुणवत्ता के नुकसान से ग्रस्त नहीं होती है।

TLDR - उपयोग pdfimages:pdfimages -j input.pdf output

लिंक किए गए उत्तर का हवाला देते हुए:

यह स्पष्ट नहीं है कि आपको "गुणवत्ता हानि" से क्या मतलब है। इसका मतलब बहुत सारी अलग-अलग चीजें हो सकती हैं। आप चित्रण के लिए कुछ नमूने पोस्ट कर सकते हैं? शायद खराब गुणवत्ता और अच्छी गुणवत्ता वाले संस्करणों में से एक ही अनुभाग काट लें (आगे की गुणवत्ता के नुकसान से बचने के लिए पीएनजी के रूप में)।

शायद आपको -densityउच्च डीपीआई में रूपांतरण करने के लिए उपयोग करने की आवश्यकता है :

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

(आप आवश्यक कर सकते हैं -units PixelsPerInchया -units PixelsPerCentimeterयदि आवश्यक हो। मेरी प्रति ppi में चूक कर सकती है।)

अद्यतन: जैसा कि आपने बताया, gscan2pdf(जिस तरह से आप इसका उपयोग कर रहे हैं) केवल pdfimages( पॉपलर से ) के लिए एक आवरण है । इनपुट के रूप में पीडीएफ दिए pdfimages जाने पर वही काम नहीं convertकरता है।

convert पीडीएफ लेता है, इसे कुछ संकल्प में प्रस्तुत करता है, और परिणामी बिटमैप को स्रोत छवि के रूप में उपयोग करता है।

pdfimagesएम्बेडेड बिटमैप छवियों के लिए पीडीएफ के माध्यम से दिखता है और हर एक को एक फ़ाइल में निर्यात करता है। यह बस पीडीएफ में किसी भी पाठ या वेक्टर ड्राइंग कमांड को अनदेखा करता है।

नतीजतन, अगर आपके पास एक पीडीएफ है जो बिटमैप्स की एक श्रृंखला के आसपास सिर्फ एक रैपर है, pdfimagesतो उन्हें निकालने का एक बेहतर काम करेंगे, क्योंकि यह आपको मूल आकार में कच्चा डेटा मिलता है। आप शायद -jविकल्प का उपयोग भी करना चाहते हैं pdfimages, क्योंकि एक पीडीएफ में कच्चा जेपीईजी डेटा हो सकता है। डिफ़ॉल्ट रूप से, pdfimagesसब कुछ PNM प्रारूप में कनवर्ट करता है, और JPEG> PPM> JPEG को परिवर्तित करना एक हानिकारक प्रक्रिया है।

इसलिए कोशिश करें

pdfimages -j file.pdf page

आप या पालन करने के लिए है कि एक के साथ की जरूरत नहीं हो सकता है convertके लिए .jpg(किस प्रारूप बिटमैप पीडीएफ उपयोग कर रहा था पर निर्भर करता है) कदम।

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


8

यदि आपके पीडीएफ़ स्कैन किए गए हैं, तो छवियां पहले से ही पीडीएफ के हिस्से के रूप में संग्रहीत हैं। आपको बस उनके साथ निकालने की आवश्यकता होगी pdfimages:

pdfimages my-file.pdf prefix 

2
यह स्कैन किए गए पीडीएफ़ के लिए सही समाधान है, जैसा कि आप कर सकते हैं, एक कमांड के साथ, मूल jpgs निकालें, और आगे के पुनर्संक्रमण के बिना।
जोस गोमेज़

3

Gm Convert से एक भी पेज gm convert foo.pdf[11] out.pngपाने के लिए, PDF से 12 वां पेज पाने के लिए , [N] (N की पेज संख्या 0 से शुरू होकर) को PDF नाम से जोड़ें।

pdftoppmउपयोग के लिए -f N -singlefile, जहां N एक pdftoppm -f 12 -singlefile foo.pdf outही परिणाम के लिए 1 पर शुरू होने वाली पृष्ठ संख्या है । यह हमेशा आउटपुट फ़ाइलनाम में ".png" जोड़ने के लिए प्रकट होता है और इसे रोकने का कोई तरीका नहीं है।


2

आप -densityविकल्प का उपयोग करके उच्च घनत्व को रूपांतरित और निर्दिष्ट कर सकते हैं ।

जैसे। convert -d 300 foo.pdf bar.png


क्या आप इस बारे में अधिक बता सकते हैं कि घनत्व क्या है और यह क्या कर सकता है?
r --dʒɑ

1
@AgentCool यह क्षैतिज और ऊर्ध्वाधर छवि घनत्व (पीपीआई में) निर्दिष्ट करता है।
अर्जुन

2

यदि आप केवल PDF के किसी विशिष्ट पृष्ठ को PNG में बदलना चाहते हैं, तो आप इस तरह pdftkसे convert( ऊपर वर्णित ) पाइप कर सकते हैं :

pdftk document.pdf cat 12 output - | convert - document-page-12.png

1

मास्टर पीडीएफ एडिटर (पृष्ठ 2.2) में यह विकल्प है। पीडीएफ फाइल खोलें और फिर फाइल> एक्सपोर्ट टू इमेजेज पर जाएं। यह एक संवाद प्रस्तुत करता है जहाँ आप आउटपुट के विभिन्न विकल्पों को परिभाषित कर सकते हैं। अत्यंत उपयोगी। आशा है कि यह जानकारी मदद करती है।


क्या यह मुफ़्त या सशुल्क संस्करण में है? मेरे संस्करण में, विकल्प को बाहर निकाल दिया गया है? क्या इसका मतलब मुझे भुगतान करने की आवश्यकता है? वहाँ एक भुगतान किया संस्करण है?
जोशुआ रॉबिसन

0

पीडीएफ मॉड पीडीएफ फाइलों के सभी या व्यक्तिगत पृष्ठों की छवियों को निर्यात करने की भी अनुमति देता है।

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