获得元数据| JavaScript
Contents
[
Hide
Show
]如何从“name”表中读取字体元数据?
您可以使用 AsposeFontGetInfo 函数从 TrueType 或 OpenType 字体的“name”表中读取记录。
相应的枚举用于指示数组中每个记录的值。该函数返回这些枚举的名称。
因此, TtfNameTableNameId 和
TtfNameTablePlatformId 用于 nameId 和 platformId,
TtfNameTableMacPlatformSpecificId,
TtfNameTableMSPlatformSpecificId,或者
TtfNameTableUnicodePlatformSpecificId 用于 platformSpecificId,以及
TtfNameTableMSLanguageId 用于 languageId 值。
获取元数据的示例
- 创建一个“FileReader”对象。
- 运行 AsposeFontGetInfo 函数。
- 接下来,如果
json.errorCode的值为 0,则可以获取结果数据。如果json.errorCode参数不等于 0,则表示文件中存在错误,错误信息将包含在json.errorText中。 - 生成的 JSON 对象包含一个
records数组。每个记录包含NameId、PlatformId、PlatformSpecificId、LanguageId和Info字段,其中包含字体name表中的信息。
1 var ffileFontGetInfo = function (e) {
2 const file_reader = new FileReader();
3 file_reader.onload = (event) => {
4 const json = AsposeFontGetInfo(event.target.result, e.target.files[0].name);
5 if (json.errorCode == 0) {
6 document.getElementById('output').textContent = "Name records count: " + json.records.length;
7 for (let recordIndex = 0; recordIndex < json.records.length; recordIndex++)
8 document.getElementById('output').textContent += " " + "\n"
9 + "NameId : " + json.records[recordIndex].NameId
10 + "; PlatformId : " + json.records[recordIndex].PlatformId
11 + "; PlatformSpecificId : " + json.records[recordIndex].PlatformSpecificId
12 + "; LanguageId : " + json.records[recordIndex].LanguageId
13 + "; Info : " + json.records[recordIndex].Info;
14 }
15 else document.getElementById('output').textContent = json.errorText;
16 }
17 file_reader.readAsArrayBuffer(e.target.files[0]);
18 }或使用Web Worker:
1<script type="text/javascript">
2
3 /*Create Web Worker*/
4 const AsposeFontWebWorker = new Worker("AsposeFontforJS.js");
5 AsposeFontWebWorker.onerror = evt => console.log(`Error from Web Worker: ${evt.message}`);
6 AsposeFontWebWorker.onmessage = evt => document.getElementById('output').textContent =
7 (evt.data == 'ready') ? 'loaded!' :
8 (evt.data.json.errorCode == 0) ? "Name records count: " + evt.data.json.records.length +
9 evt.data.json.records.reduce((ret, a) => ret +
10 "\nNameId : " + a.NameId
11 + "; PlatformId : " + a.PlatformId
12 + "; PlatformSpecificId : " + a.PlatformSpecificId
13 + "; LanguageId : " + a.LanguageId
14 + "; Info : " + a.Info,"") :
15 `Error: ${evt.data.json.errorText}`;
16
17 /*Event handler*/
18 var ffileFontGetInfo = function (e) {
19 const file_reader = new FileReader();
20 file_reader.onload = (event) => {
21 var transfer = [event.target.result];
22 var params = [event.target.result, e.target.files[0].name];
23 return AsposeFontWebWorker.postMessage({ "operation": "AsposeFontGetInfo", "params": params }, transfer);
24 }
25 file_reader.readAsArrayBuffer(e.target.files[0]);
26 }
27
28</script>如何获取解决方案?
如果您需要此库,请访问 Aspose.Font for JavaScript*。您可以在那里找到该解决方案的更多功能。您可以从那里下载免费试用版或购买完整产品。
如果您还有任何问题或疑问,请随时在 免费支持论坛* 的 Aspose.Font.产品系列* 版块发帖,我们的支持团队将在几个小时内为您解答所有问题。
此外,请查看我们的 字体元数据 跨平台应用程序,以全面了解其功能以及如何使用 API 创建您自己的应用程序。