2012-04-04 18 views
7

का उपयोग कर पीडीएफ से परिवर्तित Jpeg के लिए चौड़ाई मैं जी एस का उपयोग कर रहा जेपीईजी करने के लिए पीडीएफ से रूपांतरण करने के लिए और निम्न आदेश है कि मैं का उपयोग करें -g500x300 परिवर्तित छवि आकार (चौड़ाई x ऊंचाई) सेट करना है।स्थापना ऑटो ऊंचाई/GhostScript

क्या ऊँचाई इनपुट किए बिना चौड़ाई को सेट करने का कोई तरीका है, तो यह चौड़ाई पर आधार को अपने मूल पहलू अनुपात का उपयोग करके ऊंचाई को स्केल करेगा? मुझे पता है कि इसे ImageMagick रूपांतरित करके उपयोग किया जा सकता है जहां आप ऊंचाई पैरामीटर i0e -resize 500x0 पर 0 डालते हैं। मैंने GhostScript के साथ प्रयास किया लेकिन मुझे नहीं लगता कि यह करने का सही तरीका है।

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

सहायता के लिए धन्यवाद!

उत्तर

5

यह पोस्ट बताता है कि ghostscript तेज क्यों है - https://serverfault.com/questions/167573/fast-pdf-to-jpg-conversion-on-linux-wanted, और इसे ठीक करने के लिए एकमात्र कामकाज में छविमैजिक कोड को संशोधित करना शामिल होगा।

दुर्भाग्य से, autodetermined आउटपुट आकार ghostscript द्वारा समर्थित नहीं है। यह मुख्य रूप से उपयोग किया जाता है क्योंकि -g विकल्प वास्तव में डिवाइस आकार निर्धारित करता है जो प्रस्तुत आउटपुट को पकड़ता है, न कि प्रस्तुत आउटपुट स्वयं। -dPDFFitPage स्विच के कारण यह आउटपुट आकार बदल रहा है जो तब डिवाइस आकार से मिलान करने का प्रयास करता है। और यद्यपि आप -dDEVICEHEIGHT=n का उपयोग करके जेपीईजी 'डिवाइस' की ऊंचाई को परिभाषित कर सकते हैं, जो अपरिवर्तित डिफ़ॉल्ट पर डिवाइस चौड़ाई को छोड़ देगा।

हालांकि कुछ हद तक कठिन कामकाज, आप पीडीएफ पेज की चौड़ाई और ऊंचाई प्राप्त करने के लिए भूत-स्क्रिप्ट या छविमैजिक का उपयोग कर सकते हैं। Ghostscript का उपयोग करके ऐसा करने के लिए, Using GhostScript to get page size का उत्तर देखें। फिर पहलू अनुपात को पकड़ने के लिए -g ध्वज सेट करने के लिए आप उचित चौड़ाई की गणना कर सकते हैं। बोनस पॉइंट्स यदि आप यह सब करने के लिए कमांड के एक सेट को समझ सकते हैं :)

4

आप इसे आसानी से करने के लिए एक पोस्टस्क्रिप्ट प्रोग्राम लिख सकते हैं।

 
%! 
% usage: gs -sFile=____.pdf scale.ps 

/File where not { 
    (\n *** Missing source file. \(use -sFile=____.pdf\)\n) = 
    Usage 
} { 
    pop 
}ifelse 

% Get the width and height of a PDF page 
% 
/GetSize { 
    pdfgetpage currentpagedevice 
    1 index get_any_box 
    exch pop dup 2 get exch 3 get 
    /PDFHeight exch def 
    /PDFWidth exch def 
} def 


% 
% The main loop 
% For every page in the original PDF file 
% 
1 1 PDFPageCount 
{ 
    /PDFPage exch def 
    PDFPage GetSize 

% In here, knowing the desired destination size 
% calculate a scale factor for the PDF to fit 
% either the width or height, or whatever 
% The width and height are stored in PDFWidht and PDFHeight 
    PDFPage pdfgetpage 
    pdfshowpage 
} for 

pdfgetpage और pdfshowpage पीडीएफ फाइलों से निपटने के लिए पोस्टस्क्रिप्ट भाषा के लिए आंतरिक Ghostscript एक्सटेंशन हैं: यहाँ एक शुरुआत है।

+0

क्या आप इस कार्यक्रम का उपयोग करने के तरीके पर थोड़ा विस्तृत तरीके से समझा सकते हैं? क्या मुझे एक शेल स्क्रिप्ट बनाने और चलाने की आवश्यकता है? –

+0

इसकी पोस्टस्क्रिप्ट, इसलिए आप इसे पोस्टस्क्रिप्ट दुभाषिया को खिलाते हैं। सटीक होने के लिए, आप इसे Ghostscript में इनपुट फ़ाइल कमांड लाइन तर्क के रूप में पास करते हैं। कार्यक्रम की पहली पंक्ति के रूप में टिप्पणी आपको भी उपयोग देती है। ध्यान दें कि यह एक पूर्ण कार्य कार्यान्वयन नहीं है। – KenS

संबंधित मुद्दे