मुझे पीडीएफ पृष्ठों को छवियों में परिवर्तित करने की आवश्यकता है। कुछ पाठ के साथ एक पृष्ठभूमि छवि है, इसलिए जब मैं इसे छवि के रूप में सहेजता हूं तो केवल पृष्ठभूमि छवि बच गई।
क्या कोई ऐसा सॉफ़्टवेयर उपलब्ध है जिससे पूरा पृष्ठ छवि में बदला जा सके?
मुझे पीडीएफ पृष्ठों को छवियों में परिवर्तित करने की आवश्यकता है। कुछ पाठ के साथ एक पृष्ठभूमि छवि है, इसलिए जब मैं इसे छवि के रूप में सहेजता हूं तो केवल पृष्ठभूमि छवि बच गई।
क्या कोई ऐसा सॉफ़्टवेयर उपलब्ध है जिससे पूरा पृष्ठ छवि में बदला जा सके?
जवाबों:
Imagemagick स्थापित करें ।
एक टर्मिनल का उपयोग करना जहां पीडीएफ स्थित है:
पूर्ण दस्तावेज़ के लिए:
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 पृष्ठ है)।
अन्य सभी विकल्प (जैसे ट्रिमिंग, ग्रेस्केल, आदि) इमेज मैजिक की वेबसाइट पर देखे जा सकते हैं ।
-density 300पैरामीटर
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इसका मतलब है कि आपके पास
/etc/ImageMagick-7/policy.xmlफ़ाइल को संपादित करके और इससे हटा दिया जा सकता PDFहै<policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />
आप 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
-r 300जब आप उन्हें एक ही मूल्य पर सेट करना चाहते हैं, तो स्वतंत्र रूप से x और y प्रस्तावों को निर्दिष्ट करने के बजाय लिखना थोड़ा आसान है ।
IIRC GIMP PDF का उपयोग करने में सक्षम है, अर्थात उन्हें छवियों में परिवर्तित करना। इसलिए यदि आप अभी चित्रों को संपादित करना चाहते हैं - GIMP आपका मित्र है।
वर्तमान में स्वीकृत जवाब काम करता है लेकिन एक आउटपुट में परिणाम होता है जो आकार में बड़ा होता है और गुणवत्ता हानि से ग्रस्त होता है।
यहां दिए गए जवाब में विधि एक आउटपुट में परिणाम देती है जो आकार में इनपुट के बराबर होती है और गुणवत्ता के नुकसान से ग्रस्त नहीं होती है।
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(किस प्रारूप बिटमैप पीडीएफ उपयोग कर रहा था पर निर्भर करता है) कदम।मैंने इस कमांड को एक पीडीएफ पर आज़माया था जिसे मैंने जेपीईजी छवियों के अनुक्रम से खुद बनाया था। निकाले गए जेपीईजी स्रोत छवियों के समान बाइट-फॉर-बाइट थे। आप इससे उच्च गुणवत्ता प्राप्त नहीं कर सकते।
यदि आपके पीडीएफ़ स्कैन किए गए हैं, तो छवियां पहले से ही पीडीएफ के हिस्से के रूप में संग्रहीत हैं। आपको बस उनके साथ निकालने की आवश्यकता होगी pdfimages:
pdfimages my-file.pdf prefix
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" जोड़ने के लिए प्रकट होता है और इसे रोकने का कोई तरीका नहीं है।
यदि आप केवल PDF के किसी विशिष्ट पृष्ठ को PNG में बदलना चाहते हैं, तो आप इस तरह pdftkसे convert( ऊपर वर्णित ) पाइप कर सकते हैं :
pdftk document.pdf cat 12 output - | convert - document-page-12.png
मास्टर पीडीएफ एडिटर (पृष्ठ 2.2) में यह विकल्प है। पीडीएफ फाइल खोलें और फिर फाइल> एक्सपोर्ट टू इमेजेज पर जाएं। यह एक संवाद प्रस्तुत करता है जहाँ आप आउटपुट के विभिन्न विकल्पों को परिभाषित कर सकते हैं। अत्यंत उपयोगी। आशा है कि यह जानकारी मदद करती है।