मैं पहले से ही How to determine string height in PostScript? में इस का जवाब दे दिया है, लेकिन यह यहाँ भी उपयोगी है।
बस जोड़ने को pipitas जवाब:
/textheight {
gsave % save graphic context
{
100 100 moveto % move to some point
(HÍpg) true charpath pathbbox % gets text path bounding box (LLx LLy URx URy)
exch pop 3 -1 roll pop % keeps LLy and URy
exch sub % URy - LLy
}
stopped % did the last block fail?
{
pop pop % get rid of "stopped" junk
currentfont /FontMatrix get 3 get % gets alternative text height
}
if
grestore % restore graphic context
} bind def
/jumpTextLine {
textheight 1.25 mul % gets textheight and adds 1/4
0 exch neg rmoveto % move down only in Y axis
} bind def
विधि को उम्मीद है कि कुछ फॉन्ट पहले से ही निर्धारित है। यह चयनित फ़ॉन्ट (setfont
) और इसके आकार (scalefont
) पर काम करता है।
मैं (HÍpg) का उपयोग सबसे बड़ी सीमांकन बॉक्स संभव पाने के लिए, बल अपरकेस वर्णों और "रेखा से नीचे" अक्षरों का उपयोग। नतीजा काफी अच्छा है।
वैकल्पिक दृष्टिकोण चुरा dreamlax के जवाब से - कुछ फोंट charpath
ऑपरेटर का समर्थन नहीं करते।
सहेजा जा रहा है और ग्राफिक संदर्भ बहाल जगह में वर्तमान बिंदु रहता है, तो यह आपके दस्तावेज़ के "प्रवाह" पर कोई प्रभाव पड़ता है।
आशा है कि मैंने मदद की है।
स्रोत
2011-08-19 14:08:37
यह भी हो, तो मैट्रिक्स में किसी भी वाई कतरनी काम नहीं करेगा। यदि '/ FontMatrix 5 मिलता है 'शून्य नहीं है, तो एक ग्लिफ की ऊंचाई इसकी चौड़ाई पर निर्भर करेगी। –
अधिक फ़ॉन्ट प्रकारों के लिए काम करने के लिए आपको FontBBox का उपयोग करने की आवश्यकता है: http://stackoverflow.com/questions/8296322/how-to-determine-height-and-depth-of-a-postscript-font/19263342#19263342 –