2012-09-06 30 views
10

मुझे लगता है कि घोस्टस्क्रिप्ट यह पता लगाने में असमर्थ है कि नौकरी रंग या ग्रेस्केल है या नहीं। मैं पीएनजी को प्रिंट जॉब्स के रूपांतरण के लिए घोस्टस्क्रिप्ट का उपयोग करता हूं, लेकिन मुझे नौकरी के रंग के बारे में जानकारी रखने की भी आवश्यकता है, इसलिए मुझे पिक्सेल को पिक्सेल से फिर से खोजना नहीं है।घोस्टस्क्रिप्ट रंग का पता लगाने

उत्तर

16

ए (अपेक्षाकृत नया) घोस्टस्क्रिप्ट डिवाइस inkcov (आपको घोस्टस्क्रिप्ट v9.05 या नए की आवश्यकता है) विश्वसनीय रूप से पता लगा सकता है कि कोई पीडीएफ पृष्ठ रंग का उपयोग करता है या नहीं।

यह प्रत्येक एकल पृष्ठ के लिए अलग से सीएमवाईके स्याही के लिए स्याही कवरेज प्रदर्शित करता है (आरजीबी रंगों के लिए, यह आंतरिक रूप से सीएमवाईके रंग स्थान पर एक मूक रूपांतरण करता है)। ,

gs                  \ 
    -o color-or-grayscale-test.pdf          \ 
    -sDEVICE=pdfwrite             \ 
    -g5950x2105               \ 
    -c "/F1 {10 80 moveto /Helvetica findfont 64 scalefont setfont} def" \ 
    -c "F1       (100% 'pure' black) show showpage" \ 
    -c "F1 .5 .5 .5 setrgbcolor (50% 'rich' rgbgray) show showpage" \ 
    -c "F1 .5 .5 .5 0 setcmykcolor (50% 'rich' cmykgray) show showpage" \ 
    -c "F1 .5   setgray  (50% 'pure' gray)  show showpage" 

सभी पृष्ठों मानव आँख करने के लिए प्रकट करते हैं बिल्कुल किसी भी रंग का उपयोग नहीं करने के लिए पृष्ठों:

की जांच करेंगे और अपने कार्यों का प्रदर्शन करने के लिए, पहले Ghostscript की मदद से एक उदाहरण पीडीएफ उत्पन्न 2 और 3 वास्तव में रंग से अपने स्पष्ट ग्रे मानों को मिलाते हैं। लेकिन रंगों में से कोई भी सीधे दिखाई नहीं देता है (जब तक कि आपका मॉनिटर पूरी तरह से गलत समायोजित न हो)। जिसके परिणामस्वरूप पीडीएफ पृष्ठों पर

देखो (वेब ​​के माध्यम से आसान प्रदर्शन के लिए पीएनजी के लिए परिवर्तित):

4 PDF pages without directly visible color

Prepress उद्योग में, 'अमीर' अश्वेतों या भूरे रंग अक्सर इस्तेमाल किया जाता है। मुहावरे 'अमीर' काले या भूरे रंग का उपयोग इस तथ्य को व्यक्त करने के लिए किया जाता है कि ये रंग पूरी तरह से काले टोनर या स्याही से नहीं बने होते हैं, लेकिन रंगों के मिश्रित घटक होते हैं ताकि उन्हें अधिक शानदार और अधिक संतृप्त दिखाई दिया जा सके।

अब प्रत्येक पृष्ठ के स्याही कवरेज की जाँच करें:।

gs -o - -sDEVICE=inkcov color-or-grayscale-test.pdf 
[...] 
Page 1 
    0.00000 0.00000 0.00000 0.05040 CMYK OK 
Page 2 
    0.05401 0.05401 0.05401 0.05401 CMYK OK 
Page 3 
    0.05799 0.05799 0.05799 0.00000 CMYK OK 
Page 4 
    0.00000 0.00000 0.00000 0.04541 CMYK OK 

(संबंधित रंग चैनल के लिए 100% स्याही कवरेज के लिए १.००,००० नक्शे का मान तो परिणाम की पहली पंक्ति में 0.05040 पेज क्षेत्र के 5.04 % का मतलब काली स्याही से आच्छादित है) इसलिए Ghostscript के inkcov द्वारा दिए गए परिणाम वास्तव में उम्मीद से एक है:।

  • पृष्ठों 1 + 4 सी (सियान), एम (मैजंटा), वाई के किसी भी (पीला उपयोग न करें) रंग, लेकिन केवल के (काला)।
  • पेज 2 + 3 सी (सियान), एम (मैजेंटा), वाई (पीला) रंगों का स्याही उपयोग करते हैं, लेकिन कोई भी (काला) बिल्कुल नहीं।

अब के मूल पीडीएफ के सभी पृष्ठों DeviceGray colorspace उपयोग करने के लिए परिवर्तित करते हैं:

gs        \ 
    -o only-black-ink.pdf   \ 
    -sDEVICE=pdfwrite    \ 
    -dColorConversionStrategy=/Gray \ 
    -dProcessColorModel=/DeviceGray \ 
    color-or-grayscale-test.pdf 

...और फिर स्याही कवरेज की जांच करें:

gs -q -o - -sDEVICE=inkcov only-black-ink.pdf | grep -v Page 
    0.00000 0.00000 0.00000 0.05040 CMYK OK 
    0.00000 0.00000 0.00000 0.05401 CMYK OK 
    0.00000 0.00000 0.00000 0.05799 CMYK OK 
    0.00000 0.00000 0.00000 0.04541 CMYK OK 

फिर से, सफलतापूर्वक रंग रूपांतरण के मामले में अपेक्षित परिणाम!

+0

यदि आपको प्रिंट फ़ाइल के लिए टोनर कवरेज का अनुमान लगाने की आवश्यकता है तो यह भी एक त्वरित तरीका है। –

+0

यदि किसी को रूबी में ऐसा करने की ज़रूरत है, तो यहां एक मणि https://rubygems.org/gems/pdf_colored_pages है जो पृष्ठ संख्या (जैसे 1,3,4) या एक रेंज स्ट्रिंग जैसे '1,3' -4 ', ghostscript inkcov आउटपुट पार्सिंग द्वारा। – RedRoosterMobile

1

एक नया आउटपुट डिवाइस ने इस उत्तर को पुराना प्रस्तुत किया है, स्वीकृत उत्तर देखें।


2011 तक, फ़ाइल को आउटपुट देखने के लिए रास्टरराइज़ करने की आवश्यकता थी। चूंकि पीडीएफ/पीएस फ़ाइल के दिखने के बारे में एक विवरण है, जैसा कि रास्टरराइज्ड किया जाता है। भले ही आप ghostscipt के साथ ऐसा कर सकें, मुझे यकीन है कि इसे पहले फ़ाइल को रास्टराइज/व्याख्या करने की आवश्यकता होगी, फिर आउटपुट को देखें, इसलिए यदि आपके पास पीएनजी है तो आप इसे स्वयं भी कर सकते हैं, जो प्रोसेसिंग से कम सीपीयू गहन होगा जीएस के साथ फिर से फाइल करें।

+0

... और मुझे पूरा यकीन है कि आपका कथन * "आप यह नहीं कर सकते" * लगभग एक साल पहले तक सही था, लेकिन यह अब नहीं है :-) - तो कृपया हटाएं (या संपादित करें) आपका उत्तर, इससे पहले कि वह डाउनवॉटेड हो जाए ... :-) –

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