2010-08-26 18 views
25

यह शायद आपके साथ भी हुआ - कभी-कभी जब आप किसी वेब पेज से किसी टेक्स्ट को अपने समृद्ध टेक्स्ट ई-मेल ड्राफ्ट में अपने पसंदीदा वेबमेल क्लाइंट में कॉपी करते हैं, तो आप इस तथ्य से नापसंद करते हैं कि टुकड़ा का एक अलग फ़ॉन्ट/आकार/वजन .. यह किसी भी तरह शैली को याद करता है (अक्सर छवियों, जब चयनित)। इसके मुकाबले यह कैसे है यदि आप इसे अपने पसंदीदा टेक्स्ट एडिटर में विम जैसे पेस्ट करते हैं, तो कोई HTML नहीं है, केवल सादा पाठ है?एक्स 11 क्लिपबोर्ड एकाधिक डेटा स्वरूपों को कैसे संभालता है?

alt text

ऐसा लगता है कि क्लिपबोर्ड विभिन्न प्रारूपों में चयनित डेटा रखता है। किसी भी प्रारूप में डेटा का उपयोग कैसे कर सकता है (प्रोग्रामेटिक रूप से या कुछ उपयोगिता के साथ)? एक्स 11 क्लिपबोर्ड कैसे काम करता है?

+1

+1 अच्छा प्रश्न। मैं भी इसके बारे में उत्सुक हूँ। – alternative

+0

मुझे थोड़ी देर के लिए एक विचार था, कि ब्राउज़र भी अपना स्वयं का क्लिपबोर्ड बनाए रखता है, लेकिन इसका मतलब यह होगा कि यह केवल उस ब्राउज़र ऐप प्रक्रिया के अंदर ही काम करेगा, जो मामला नहीं है। – mykhal

उत्तर

21

ऐप जिसे आप विज्ञापित प्रारूपों से कॉपी करते हैं (ज्यादातर एमआईएम प्रकारों द्वारा पहचाना जाता है) यह प्रदान कर सकता है। आपके द्वारा पेस्ट किए गए ऐप को अपना पसंदीदा प्रारूप चुनना है और स्रोत एप से अनुरोध करना है।

कारण आपको हस्तांतरित सभी स्टाइल जानकारी नहीं दिखाई दे सकती है कि ऐप्स दोनों एक सामान्य प्रारूप का समर्थन नहीं करते हैं जिसमें स्टाइल जानकारी शामिल है।

आप समस्याएं भी देख सकते हैं क्योंकि उदाहरण के लिए कोई ऐप HTML पेस्ट करने का प्रयास कर सकता है, लेकिन वास्तव में सभी HTML को संभालने में सक्षम नहीं है। या ऐप्स छोटी हो सकती हैं, या इस बात से सहमत नहीं हो सकती कि किसी विशेष MIME प्रकार का वास्तव में क्या अर्थ है।

लगभग सभी ऐप्स सादे पाठ को कॉपी और पेस्ट कर सकते हैं, लेकिन इसके अलावा यह स्पर्श और जाना है। यदि आपको समझ में नहीं आता है, तो आप एक बग बनाम ऐप को दर्ज कर सकते हैं।

आप देख सकते हैं कि यदि आप उस ऐप से बाहर निकलते हैं जिसे आप कॉपी कर रहे हैं, तो आप अब पेस्ट नहीं कर सकते हैं। (जब तक आप "क्लिपबोर्ड प्रबंधक" या कुछ नहीं चला रहे हैं।) ऐसा इसलिए है क्योंकि कोई डेटा वास्तव में स्रोत ऐप छोड़ देता है जब तक गंतव्य ऐप पेस्ट करने के लिए प्रारूप के लिए नहीं पूछता। "क्लिपबोर्ड प्रबंधक" हैं जो किसी भी समय डेटा की प्रतिलिपि बनाने और स्टोर करने के लिए तत्काल डेटा मांगते हैं, इसलिए आप स्रोत ऐप से बाहर निकलने के बाद पेस्ट कर सकते हैं, लेकिन उनके पास डाउनसाइड्स हैं (यदि डेटा विशाल है, या 10 प्रारूपों में पेश किया गया है, आदि) ।)

यदि आपके पास pygtk इंस्टॉल है, तो निम्न पायथन कोड वर्तमान में कॉपी किए गए डेटा के लिए उपलब्ध प्रारूप दिखाएगा। यह ऐप ctrl + c प्रतिलिपि डेटा दिखाता है, मध्य-क्लिक ईस्टर अंडे नहीं। (http://freedesktop.org/wiki/Specifications/ClipboardsWiki देखें)

#!/usr/bin/python 

import gtk; 
clipboard = gtk.clipboard_get() 
print("Current clipboard offers formats: " + str(clipboard.wait_for_targets())) 
+0

बहुत उपयोगी जानकारी के लिए धन्यवाद (मुझे डर था कि उत्तर में टी कोड [ईओ] एनएस शामिल होगा यदि सी कोड की रेखाएं ..) अब मुझे आश्चर्य है कि utf-16le एन्कोडिंग में फ़ायरफ़ॉक्स (utf-8 वेब पेज) से टेक्स्ट/एचटीएमएल डेटा क्यों कॉपी किया गया है .. – mykhal

+0

एक प्रकार का अनुवर्ती: http://askubuntu.com/questions/427704/how- कैन-ए-एडिट-द-सोर्स-ऑफ-एचटीएमएल-इन-द-क्लिपबोर्ड। वास्तव में क्लिपबोर्ड से समृद्ध पाठ लाने की कोशिश करने पर कोई सुझाव? मैं बफर बनाने के तरीके को समझने के लिए बहुत आलसी हूं। –

-1

अधिकांश क्लिपबोर्ड सिस्टम डेटा के कई प्रारूपों के संग्रहण की अनुमति देते हैं। उदाहरण के लिए एडोब एआईआर सादे टेक्स्ट, समृद्ध टेक्स्ट, बिटमैप, और मनमाने ढंग से बाइनरी डेटा स्ट्रीम के लिए प्रत्येक ओएस क्लिपबोर्ड को पढ़ेगा।

इन सभी को लागू करने के लिए यह प्रत्येक ऐप तक है। मुझे यकीन है कि एक्स 11 वहां हर दूसरे ओएस/शैल के लिए एक बहुत ही समान विधि का उपयोग करता है।

+1

और वास्तव में यह कैसे करता है, और हम विभिन्न प्रारूपों तक कैसे पहुंच सकते हैं, यह सवाल है;) – mykhal

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