TTF फ़ाइल में किस यूनिकोड कोडपॉइंट को परिभाषित किया गया है?


11

मुझे सत्यापन की एक प्रक्रिया को स्वचालित करने की आवश्यकता है जो यूनिकोड के पात्रों में उनके लिए एक वास्तविक प्रकार फ़ॉन्ट फ़ाइल में परिभाषित वास्तविक ग्लिफ़ हैं। मैं ऐसा करने के आसपास कैसे जाऊँ? जब मैं किसी टेक्स्ट एडिटर में .ttf फाइल खोलता हूं, तो मुझे जो संख्या मिल रही है, उसके बारे में जानकारी प्राप्त करने के लिए मैं प्रतीत नहीं कर सकता।

जवाबों:


7

मुझे एक पायथन लाइब्रेरी, फोंटटूल ( पीपीआई ) मिली , जिसका उपयोग इसे थोड़ा अजगर स्क्रिप्टिंग के साथ करने के लिए किया जा सकता है।

यहाँ एक सरल स्क्रिप्ट है जो उन सभी फॉन्टों को सूचीबद्ध करती है जिनमें ग्लिफ़ निर्दिष्ट है:

#!/usr/bin/env python3

from fontTools.ttLib import TTFont
import sys

char = int(sys.argv[1], base=0)

print("Looking for U+%X (%c)" % (char, chr(char)))

for arg in sys.argv[2:]:
    try:
        font = TTFont(arg)

        for cmap in font['cmap'].tables:
            if cmap.isUnicode():
                if char in cmap.cmap:
                    print("Found in", arg)
                    break
    except Exception as e:
        print("Failed to read", arg)
        print(e)

पहला तर्क कोडपॉइंट (0x के साथ दशमलव या हेक्सा) और बाकी में देखने के लिए फ़ॉन्ट फ़ाइलें हैं।

मैं इसे .ttcफ़ाइलों के लिए काम करने की कोशिश नहीं कर रहा था (इसके लिए कुछ अतिरिक्त पैरामीटर की आवश्यकता है)।

नोट: मैंने पहली बार otfinfo टूल की कोशिश की, लेकिन मुझे केवल मूल बहुभाषी विमान वर्ण मिला (<= U + FFFF)। अजगर स्क्रिप्ट विस्तारित विमान अक्षर ठीक पाता है।


6

otfinfo का वादा दिखता है:

-u, --unicode
  Print each Unicode code point supported by the font, followed by
  the glyph number representing that code point (and, if present,
  the name of the corresponding glyph).

उदाहरण के लिए DejaVuSans-Bold फ्लिग लिगचर (:) के बारे में जानता है:

$ otfinfo -u /usr/share/fonts/TTF/DejaVuSans-Bold.ttf |grep ^uniFB02
uniFB02 4899 fl

यह उपकरण वास्तव में वही है जो मुझे चाहिए, लेकिन यह ट्रू टाइप फ़ॉन्ट के साथ काम करने के लिए प्रतीत नहीं होता है, केवल ओपन टाइप लोग हैं।
सानूउ

यह ttf के साथ भी काम करता है। ऊपर मेरा उदाहरण देखें। ( विकिपीडिया के अनुसार ttf एक विशेष प्रकार का OpenType फ़ॉन्ट है।)
michas

हम्म ... मेरे otfinfo के संस्करण (2.92) को -u विकल्प बिल्कुल नहीं लगता है। आपके द्वारा कौन सा संस्करण उपयोग किया जा रहा है?
सानू ०

मैंने अपने टेक्सलीव पैकेज से "otfinfo (LCDF typetools) 2.104" का उपयोग किया ।
माइक डे

@Sanuuu, -uविकल्प में प्रकट नहीं होता है --help, लेकिन अभी भी मौजूद है। हालाँकि (कम से कम डेबियन 2.105 बिल्ड में) यह केवल मूल विमान (U + FFFF तक) की सूची लगता है। -gविकल्प विस्तारित विमानों के बारे में जानता है, लेकिन यह सभी फ़ॉन्ट के लिए काम नहीं करता।
Jan Hudec
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.