मल्टी-पेज पीडीएफ को सिंगल जेपीजी में बदलने के लिए घोस्टस्क्रिप्ट का उपयोग कर रहे हैं?


15

मुझे पता है कि घोस्टस्क्रिप्ट पीडीएफ को जेपीजी में बदल सकता है, और बहु-पृष्ठ पीडीएफ के मामले में, प्रत्येक पृष्ठ को एक व्यक्तिगत जेपीजी में चीर सकता है। लेकिन क्या यह संभव है कि उन्हें एक जेपीजी में रिप किया जाए, ताकि पेज एक-दूसरे के नीचे चिपके हों, जैसे जेपीजी का शीर्ष आधा पृष्ठ 1, नीचे आधा पृष्ठ 2 है? या मुझे JPG पेजों को एक इमेज में मिलाने के लिए दूसरे प्रोग्राम का उपयोग करना होगा (और क्या ImageMagick यह कर सकता है?)।

जवाबों:


17

हां, आपको प्रत्येक पीडीएफ पेज को एक ही JPG फाइल में बदलना होगा (घोस्टस्क्रिप्ट वह कर सकता है)।

फिर दूसरे प्रोग्राम ( ImageMagick या GraphicsMagic) का उपयोग करके JPG फ़ाइलों को एक साथ सिलाई कर सकते हैं जो उनके montageउप-कमांडों का उपयोग कर सकते हैं )।

मैं किसी भी सॉफ्टवेयर के बारे में नहीं जानता, जो एक बार में ऐसा कर सकता है।

PDF-to-JPG रूपांतरण (घोस्टस्क्रिप्ट के साथ): आप यह सुनिश्चित करना चाहेंगे कि आपको सर्वोत्तम संभव परिणाम मिले। इसलिए सुनिश्चित करें कि आप कमांडलाइन विकल्पों को ट्विक करें ताकि वे आपके लिए काम करें। मैं इसके साथ शुरू करता हूं :

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

यह JPGs को pdffile-001.jpeg , pdffile-002.jpg आदि बनायेगा । पैरामीटर * -dJPEGQ = 95 "" JPEG क्वालिटी "को 95% पर सेट करता है। यह" 600x600 डीपीआई "के रिज़ॉल्यूशन का उपयोग करता है। यदि आपकी घोस्टस्क्रिप्ट के डिफ़ॉल्ट आपकी आवश्यकताओं के अनुरूप नहीं है, तो परिणामी JPG के पेज को नियंत्रित करें:

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -dPDFFitPage ^
    -dFIXEDMEDIA ^
    -dDEVICEWIDTHPOINTS=800 ^
    -dDEVICEHEIGHTPOINTS=600 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

या

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -dPDFFitPage ^
    -dFIXEDMEDIA ^
    -sDEFAULTPAPERSIZE=a4 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

कई करने के लिए एकल जेपीजी-सिलाई के साथ montage(ImageMagick या GraphicsMagick):montage आदेश (इस उदाहरण में प्रयुक्त ImageMagick है) आप टाइलिंग पैटर्न को नियंत्रित करने के लिए अनुमति देता है। यदि आप उदाहरण के लिए उपयोग करते हैं, तो आपको-tile 4x3यह लेआउट मिलेगा:

1  2  3  4    
5  6  7  8    
9 10 11 12    

आप एक साथ 12 व्यक्तिगत JPGs को एक में सिलाई करने के लिए इस कमांड का उपयोग कर सकते हैं:

montage ^
    -border 0  ^
    -tile 4x3  ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg  ^
    c:/path/to/final.jpg

बेशक, montageकई दर्जन अतिरिक्त पैरामीटर हैं जो आपको इनपुट और परिणामस्वरूप जेपीजी के लिए पृष्ठभूमि, रिक्ति, ऑफ़सेट, सजावट, लेबल, रोटेशन, क्रॉपिंग, कैप्शन आदि निर्धारित करने की अनुमति देते हैं।


संपादित करें: (मैं यह संकेत पहले से ही अपने मूल उत्तर में देना चाहता था, लेकिन भूल गया।)montageडिफ़ॉल्ट रूप से 120x120 पिक्सल के टाइल आकार का उपयोग करेगा। यदि आप प्रत्येक टाइल के लिए मूल पृष्ठ आकार रखना चाहते हैं, तो आपको-geometryकमांडलाइन मेंजोड़नाहोगा। मान लें किआपके PDF में A4 (= 595x852 pt) पृष्ठ हैं, और आप इसे रखना चाहते हैं, लेकिन क्षैतिज और 22 pt के 11 वें के अंतराल को टाइलिंग की ऊर्ध्वाधर दिशा में जोड़ते हैं (प्लस 4pt मजबूत ग्रे रंग सीमा) - फ़्रेम लाइनें प्रत्येक टाइल के आसपास), ऐसा करें:

montage ^
    -border 4 ^
    -tile 4x3 ^
    -geometry 595x842+11+22 ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg ^
    c:/path/to/final.jpg

EDIT 2: (अभी भी एक और महत्वपूर्ण संकेत याद किया गया है।) यदि आप सिलाई / असेंबल प्रक्रिया के दौरान अच्छी छवि की गुणवत्ता को खोना नहीं चाहते हैं, जिसे आपके पीडीएफ-टू-जेपीजी रूपांतरण ने बनाया था, तो-quality 100अपने कमांडलाइन केलिएपैरामीटरभी जोड़ें।:

montage ^
    -border 4 ^
    -tile 4x3 ^
    -geometry 595x842+11+22 ^
    -quality 100 ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg ^
    c:/path/to/final.jpg

आपके उत्तर के लिए धन्यवाद। मैं ImageMagick 6.9.9 में ज्यामिति परम को नहीं देखता। इसके अलावा, संयुक्त छवि की छवि गुणवत्ता अभी भी भद्दा है, मैं सचमुच इससे एक शब्द भी नहीं पढ़ सकता हूं।
गीक

2

चूंकि ImageMagick में निर्मित GhostScript के लिए समर्थन है, आप एक ही बार में पूरी बात कर सकते हैं:

montage -tile 5 thispdfis25pages.pdf tiledoverview.jpg

जो हर पृष्ठ पर ले जाएगा और उनमें से एक लंबा jpeg एंड-टू-एंड बनाएगा।


1
लेकिन यह आपको उच्च गुणवत्ता वाला JPG नहीं देगा, क्योंकि यह अपनी डिफ़ॉल्ट सेटिंग्स के साथ Ghostscript का उपयोग करेगा (और ये JPG आउटपुट के लिए काफी shi..y हैं)। इसे 2 चरणों में करना (और पहले अपने JPG पृष्ठों की जांच करना) आपको इष्टतम नियंत्रण देता है, और यह आपको अच्छा JPG आउटपुट भी देता है।
कर्ट फ़िफ़ेल

आप PDF के लिए ImageMagick की -density सेटिंग का उपयोग करके घोस्टस्क्रिप्ट सेटिंग्स को बदल सकते हैं और अच्छे परिणाम प्राप्त कर सकते हैं। यदि आप इसके विकल्पों का उपयोग करने के तरीके से अवगत नहीं हैं, तो IM न करें।
erg

1
k .: अरे, मैं ImageMagick दस्तक नहीं दिया। और मुझे पता है कि आईसीसी रंग प्रोफाइल लागू करने के साथ भी इसके विकल्पों का उपयोग कैसे किया जाता है ... लेकिन आप सभी घोस्टस्क्रिप्ट विकल्पों को असेंबल करने के लिए पास नहीं कर सकते । मेरी टिप्पणी आपके सुझाए गए आदेश का उल्लेख करती है , जिसमें उल्लेख नहीं था -density
कर्ट फ़िफ़ले

संयोग से, मैंने SO पर कहीं और पढ़ा है कि ImageMagick आंतरिक रूप से पीडीएफ से PS और फिर PS से PNG में परिवर्तित हो जाता है जब आप इसे इस तरह से लागू करते हैं, तो यह इस तरह से नहीं करने का एक और कारण है (दो रूपांतरण => निम्न गुणवत्ता और धीमी)।
इब्राहिम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.