2012-11-30 15 views
5

मैं पीपीएलए भाषा का उपयोग सीधे लेबल को प्रिंट करने के लिए पीआरएलए भाषा का उपयोग करता हूं जो सीधे अरगोक्स ओएस -214 पर प्रिंट करता है।अरगोक्स ओएस 214 में शब्द लपेटें पाठ - पीपीएलए

मैं लंबे ग्रंथों को कैसे लपेट सकता हूं?

क्या मुझे गणना करना है या क्या कोई ऐसा कार्य है जो मेरे लिए करता है?

यदि मुझे गणना करना है, तो क्या आपको यह करने के बारे में कोई सुझाव है?

उत्तर

3

PPLA language manual में शब्द लपेटने के लिए लंबे समय तक कोई फ़ंक्शन नहीं है, इसलिए आपको प्रिंटर पर आदेश भेजने से पहले लाइन ब्रेक डालने के लिए स्वयं को गणना करना होगा।
यह कैसे करें प्रोग्रामिंग भाषा द्वारा निर्भर करता है जिसका आप उपयोग कर रहे हैं; उदाहरण के लिए PHP भाषा में wordwrap function है जो आपके लिए यह कर सकता है (वर्डवाप फ़ंक्शन का सी स्रोत कोड here है, लाइन 803 पर)।
एक शब्द रैपिंग एल्गोरिथ्म का एक सरल विवरण wikipedia पर पाया जा सकता:

SpaceLeft := LineWidth 
for each Word in Text 
    if (Width(Word) + SpaceWidth) > SpaceLeft 
     insert line break before Word in Text 
     SpaceLeft := LineWidth - Width(Word) 
    else 
     SpaceLeft := SpaceLeft - (Width(Word) + SpaceWidth) 

सबसे पहले, आप शब्दों में पाठ विभाजित करने के लिए है, लेकिन मुझे लगता है कि यह आपके लिए एक समस्या नहीं है, इसलिए मैं आगे विस्तार नहीं करूंगा।
LineWidth लेबल चौड़ाई के रूप में गणना की जानी चाहिए बाएं और दाएं मार्जिन चौड़ाई।
मान लीजिए कि आपके टेक्स्ट के लिए आप एक निश्चित-चौड़ाई (गैर आनुपातिक) फ़ॉन्ट का उपयोग कर रहे हैं, तो आप LineWidth को वर्णों की चौड़ाई से विभाजित करके कई वर्णों में परिवर्तित कर सकते हैं (या बस टेक्स्ट की एक लंबी पंक्ति प्रिंट करके और फिर मुद्रित होने वाले वर्णों की संख्या गिनती है); इस तरह प्रत्येक शब्द की लंबाई इसके पात्रों की संख्या से मेल खाती है।
अन्यथा, यदि आप आनुपातिक फ़ॉन्ट का उपयोग कर रहे हैं, तो प्रत्येक शब्द चौड़ाई की गणना करना अधिक कठिन होता है, जब तक कि आप प्रत्येक वर्ण की चौड़ाई को नहीं जानते।
एक विचार लेबल के उसी पिक्सेल आकार के साथ एक छवि का उपयोग कर सकता है, केवल प्रिंटिंग अनुकरण करने के लिए और लाइन ब्रेक डालने के लिए गणना करने के लिए, लेकिन इसके लिए प्रत्येक शब्द की पिक्सेल चौड़ाई की गणना करने के लिए एक फ़ंक्शन होना आवश्यक है (इसके लिए PHP में उदाहरण imagettfbbox function है), और प्रिंटर और पीसी पर बिल्कुल वही फ़ॉन्ट का उपयोग करने के लिए।
ध्यान रखें कि आपको लेबल चौड़ाई से अधिक लंबे शब्दों को संभालना भी पड़ सकता है; इस मामले में आपको बस LineWidth पर शब्द को विभाजित करना होगा और अगली पंक्ति पर जारी रखना होगा।