2011-05-31 12 views
30

का उपयोग करके पीडीएफ को फसल करना मैं प्रोग्रामर नहीं हूं, लेकिन सीखना चाहता हूं कि घोस्टस्क्रिप्ट का उपयोग करके पीडीएफ कैसे फसल करें।Ghostscript 9.01

मैंने अपनी मशीन में घोस्टस्क्रिप्ट 9.01 स्थापित किया है।

कृपया विशिष्ट निर्देशांक के साथ एक पीडीएफ फसल करने के लिए मुझे चरण-दर-चरण प्रक्रिया (घोस्टस्क्रिप्ट का आह्वान करने से शुरू) का मार्गदर्शन करें।

मैं घोस्टस्क्रिप्ट के लिए भी नया हूं।

उत्तर

57

सबसे पहले, ध्यान दें कि पीडीएफ के लिए माप इकाई पोस्टस्क्रिप्ट के समान ही है: इसे बिंदु [pt] कहा जाता है।

72 points == 1 inch == 25.4 millimeters 

मान लें कि आपके पास A4 का पृष्ठ आकार है। फिर मीडिया आयाम हैं:

595 points width == 210 millimeters 
842 points height == 297 millimeters 

मान लिया जाये कि आप बंद फसल हैं:

gswin32c.exe     ^
    -o cropped.pdf    ^
    -sDEVICE=pdfwrite   ^
    -c "[/CropBox [24 72 559 794]"^
    -c " /PAGES pdfmark"   ^
    -f uncropped-input.pdf 

या लिनक्स पर:

left edge: 24 points == 1/3 inch ~= 8.5 millimeters 
    right edge: 36 points == 1/2 inch ~= 12.7 millimeters 
    top edge: 48 points == 2/3 inch ~= 17.0 millimeters 
bottom edge: 72 points == 1 inch ~= 25.4 millimeters 

फिर अपने Ghostscript कमांडलाइन (Windows पर) यह है

gs        \ 
    -o cropped.pdf     \ 
    -sDEVICE=pdfwrite    \ 
    -c "[/CropBox [24 72 559 794]" \ 
    -c " /PAGES pdfmark"   \ 
    -f uncropped-input.pdf 

हालांकि, यह सभी प्रकार के पीडीएफ [1] के लिए भरोसेमंद काम नहीं कर सकता है। उन मामलों में आप वैकल्पिक रूप से इन आदेशों की कोशिश करनी चाहिए:

gswin32c.exe    ^
    -o cropped.pdf   ^
    -sDEVICE=pdfwrite  ^
    -dDEVICEWIDTHPOINTS=595 ^
    -dDEVICEHEIGHTPOINTS=842 ^
    -dFIXEDMEDIA    ^
    -c "24 72 translate"  ^
    -c " 0 0 535 722 rectclip"^
    -f uncropped-input.pdf 

या

gs       \ 
    -o cropped.pdf    \ 
    -sDEVICE=pdfwrite   \ 
    -dDEVICEWIDTHPOINTS=595 \ 
    -dDEVICEHEIGHTPOINTS=842 \ 
    -dFIXEDMEDIA    \ 
    -c "24 72 translate"  \ 
    -c " 0 0 535 722 rectclip" \ 
    -f uncropped-input.pdf 

[^]: अधिक विशिष्ट होना करने के लिए: यह पीडीएफ़ जो आने के लिए काम नहीं करेगा अपने स्वयं के /CropBox के साथ पहले से ही विशिष्ट मानों को परिभाषित किया गया है। इसके आस-पास एक गंदे हैक सभी पृष्ठों के लिए स्ट्रिंग /CropBox को बदलने के लिए है जहां यह उपरोक्त जीएस कमांड चलाने से पहले एक टेक्स्ट एडिटर के साथ /cROPBoX (या समान केस-चेंजिंग) के लिए वांछित है। केस-चेंज प्रभावी रूप से फसलबॉक्स सेटिंग को "डिसमम्स" करता है (मौजूदा xref तालिका को अमान्य करने वाले किसी भी पीडीएफ ऑब्जेक्ट ऑफसेट को बदलने के बिना) तो इसे अब पीडीएफ प्रस्तुतकर्ताओं द्वारा नहीं माना जाता है।

+0

आपकी त्वरित प्रतिक्रिया के लिए बहुत बहुत धन्यवाद। यह मेरी आवश्यकताओं को पूरा करता है। – AMER

+3

यदि आपको पता नहीं है कि मूल पीडीएफ के आयाम क्या हैं, तो आप 'gs -sDEVICE = bbox -f uncropped-input.pdf' – simonb

+4

@jolly swagman का प्रयास कर सकते हैं: नहीं, क्षमा करें, नहीं-नहीं-नहीं! 'Bbox' डिवाइस ** नहीं ** मूल पीडीएफ के 'आयाम' को इंगित करता है। यह इंगित करता है कि प्रत्येक पृष्ठ पर (आभासी) बॉक्स जिसमें मुद्रित या देखे गए पृष्ठ पर सभी अंक होंगे। एक आदेश जो प्रत्येक पृष्ठ के लिए आयाम ('मीडियाबॉक्स') प्राप्त करने के लिए काम करेगा: 'pdfinfo -box some.pdf'। –

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