automation - स्क्रिप्ट के साथ पोस्टस्क्रिप्ट फ़ॉन्ट नाम में ttf/woff/woff2 फ़ाइल का नाम बदलें



applescript rename (1)

मैं कई फोंट के साथ काम करने वाला एक टाइपोग्राफर हूं जो गलत या अपूर्ण फाइलनामों के पास है I मैं मैक पर हूं और हेज़ल , एप्पल स्क्रिप्ट और स्वचालक वर्कफ़्लो का उपयोग कर रहा हूं, इन फ़ाइलों का नाम बदलने के लिए प्रयास करना * मुझे फॉन्ट के मौजूदा फ़ाइल नाम बदलने के लिए एक स्क्रिप्ट की आवश्यकता है, woff woff2 में फ़ॉन्ट, woff , मुझे उपकरण ( fc-scan / fontconfig , TTX , आदि) का पता है जो मुझे पोस्टस्क्रिप्ट नाम-मान को प्राप्त कर सकते हैं, लेकिन मुझे अपने उद्देश्यों के लिए एक स्क्रिप्ट कोड को प्रोग्राम करने की आवश्यकता नहीं है। मैंने केवल एक देखे गए डायरेक्टरी को सेटअप करने में कामयाब किया है जो स्क्रिप्ट चला सकते हैं, जब कुछ पैरामीटर से मेल खाने वाली कोई भी फाइलें जोड़ दी जाती हैं।

* स्पष्ट करने के लिए, मैं केवल फाइल नाम को बदलने के बारे में बात कर रहा हूं, फ़ॉन्ट के अंदर संग्रहीत वास्तविक नामों पर नहीं । अगर मैं संभव हो तो किसी भी संगत भाषा या स्क्रिप्ट के वर्कफ़्लो की स्क्रिप्ट के लिए खुले हूँ, उदाहरण के लिए, इस पोस्ट के संदर्भ में osascript को शेल स्क्रिप्ट के अंदर osascript माध्यम से osascript

StackExchange पोस्ट मैं परामर्श किया है:
ओटीएफ या टीटीएफ फ़ाइल से फ़ॉन्ट का नाम कैसे प्राप्त करें?
ओएस एक्स में पोस्टस्क्रिप्ट टीटीएफ फ़ॉन्ट का नाम कैसे प्राप्त करें?
फ़ॉन्ट का नाम कैसे बदलें?
मैकोज़ में फ़ाइलों को स्वचालित रूप से बदलना

अन्य:
https://github.com/dtinth/JXA-Cookbook/wiki/Using-JavaScript-for-Automation
https://github.com/fonttools/fonttools
https://github.com/devongovett/fontkit
https://www.npmjs.com/package/rename-js
https://opentype.js.org/font-inspector.html
http://www.fontgeek.net/blog/?p=343
https://www.lantean.co/osx-renaming-fonts-for-free

संपादित करें: अनुरोध द्वारा निम्नलिखित को जोड़ा गया
1) कुछ खास विशिष्ट वेबफॉन्ट का स्क्रीनशॉट, यह बताते हुए कि फ़ॉन्ट परिवार और शैली के नामों के लिए फार्म फ़ील्ड्स अक्सर अधूरे, रिक्त या अवैध वर्ण होते हैं।
2) वफ़ फाइल को दर्शाया गया ( बेस 64 के रूप में भी)। एडवांस में आप सभी को धन्यवाद!


चूंकि आपने अपने प्रश्न में स्वचालक का उल्लेख किया है, मैंने सोचा कि मैं उस फाइल का नाम बदलने के लिए कोशिश करूँगा और इसका समाधान करूँगा, साथ ही फ़ॉन्ट नाम पाने के लिए मानक मैक बैश के साथ। उम्मीद है, यह एक पूरी प्रोग्रामिंग भाषा सीखना धड़कता है।

मुझे नहीं पता कि आपका वर्कफ़्लो कितना है, इसलिए मैं आपको किसी भी विचलन को छोड़ दूँगा लेकिन यहां एक फ़ॉन्ट फाइल का चयन करने की एक विधि है और सेवाओं से, फ़ाइल का नाम बदलकर फ़ॉन्ट के पोस्टस्क्रिप्ट नाम ... ऐप्पल के मेटाडेटा पर आधारित, विशेष रूप से "com_apple_ats_name_postscript" । यह फ़ॉन्ट फाइल पर टर्मिनल से 'mdls' का उपयोग करके पुनर्प्राप्त किए गए डेटा के टुकड़ों में से एक है पोस्टस्क्रिप्ट नाम पर ध्यान केंद्रित करने के लिए, name_postscript के लिए आउटपुट को grep करें यहां सादगी के लिए, मैं चयनित फ़ाइल के पथ को बाहर कर दूंगा।

फ़ॉन्ट का नाम अधिग्रहण

इसलिए ... यह आदेश चल रहा है ...

mdls GenBkBasBI.ttf | grep-A1 name_postscript

... इस आउटपुट को उत्पन्न करता है, जिसमें फॉन्टबुक का पोस्टस्क्रिप्ट नाम होता है। जीआरपी में 'ए 1' पाया जाता है और पहली पंक्ति के बाद, जो कि वास्तविक फ़ॉन्ट नाम वाला एक है।

com_apple_ats_name_postscript  = (
    "GentiumBookBasic-BoldItalic"

कुछ और बाश (tr, पूंछ) के साथ इसे साफ करें ...

tr -d \  | tail -n 1 | tr -d \"

क्रम में, ये पट्टी रिक्त स्थान, आखिरी को छोड़कर सभी रेखाएं, और उद्धरण चिह्न तो पहले 'tr' उदाहरण के लिए, बैकस्लैश के बाद एक अतिरिक्त जगह है।

एक पंक्ति में, यह इस तरह दिखता है ...

mdls GenBkBasBI.ttf | grep -A1 name_postscript | tr -d \  | tail -n 1 | tr -d \" 

... और यह पैदा करता है ...

GentiumBookBasic-BoldItalic

अब, यहां कार्यप्रवाह है जिसमें उपरोक्त बाश कमान शामिल है। मुझे इस प्रश्न के जवाब से चर उपयोग के लिए विचार मिला ...

एप्पल ऑटोमेटेटर "इमेजेज़ से नया पीडीएफ" इसी फाइलनाम को बनाए रखते हुए

स्वचालन कार्यप्रवाह

स्वचालक कार्यप्रवाह स्क्रीनशॉट

शीर्ष पर; 'फाइंडर' में सेवा 'चयनित फाइलों या फ़ोल्डर्स' प्राप्त होती है

  1. चयनित खोजक आइटम प्राप्त करें

यह (या निर्दिष्ट करें ...) परीक्षण की अनुमति देने के लिए है। इसे एक सेवा के रूप में उपयोग करके इसे हटा दिया गया है

  1. वेरिएबल के मूल्य सेट करें (फाइल)

यह याद रखना है कि आप किस फ़ाइल का नाम बदलना चाहते हैं

  1. शेल स्क्रिप्ट चलाएं

यह वह जगह है जहां हम बाश सामान का उपयोग करते हैं। $ F चयनित / निर्दिष्ट फ़ाइल है मैं जो भी कारण से 'zsh' चला रहा हूं आप इसे जो भी चल रहे हैं उसे सेट कर सकते हैं, संभवतः 'बीश'

  1. वेरिएबल के मूल्य सेट करें (टेक्स्ट)

एक चर में बाश आउटपुट असाइन करें। इसका उपयोग नए फ़ाइल नाम के लिए अंतिम क्रिया द्वारा किया जाएगा।

  1. वैरिएबल का मूल्य (फाइल) प्राप्त करें

नाम बदलने के लिए निर्दिष्ट / चयनित फ़ाइल को याद करें

  1. खोजक आइटम नाम बदलें: एकल आइटम नाम दें

मैंने इसे 'बसनाम केवल' पर सेट किया है, इसलिए यह अकेले विस्तार को छोड़ देगा यहां 'एक्शन 4' से 'टेक्स्ट' वैरिएबल दर्ज करें।