获得元数据| JavaScript的API解决方案

如何从“名称”表中读取字体元数据?

您可以使用 AsposeFontgetInfo函数从“名称”表或Opentype字体中读取记录。

相应的枚举用于指示来自数组的记录的每个值。该功能返回这些枚举的名称。

因此, ttfnametablenameIDttfnametableplatformid用于nameIdplatformId

ttfnametablemacplatformspecificid,, ttfnametablemsplatformspecificidttfnametabledableababledeplatformspecificid用于platformSpecificid

ttfnametableMaclanguageIdttfnametablemslanguageId用于languageId值。

获取元数据的例子

  1. 创建一个“FileReader”。
  2. 运行 AsposeFontGetInfo 函数。
  3. 接下来,如果 json.errorCode 为 0,则可以获取结果数据。如果 json.errorCode 参数不等于 0,则表示文件中存在错误,错误信息将包含在 json.errorText 中。
  4. 生成的 json 对象包含 records 数组。每条记录包含 NameIdPlatformIdPlatformSpecificIdLanguageIdInfo 字段,其中包含字体 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>

如何获取解决方案?

如果要拥有库,请转到 Java 版 Aspose.FontScript产品页。在这里,您会发现解决方案给您的更多机会。您可以从那里下载免费试用版或在那里购买产品。

如果您剩下任何麻烦或问题,请随时在 aspose.font.product family 免费支持论坛的部分中发布它们,并在几个小时内我们的支持团队为您清除所有内容。

另外,请检查我们的 FONT元数据跨平台应用程序,以充分了解功能以及API可用于创建您自己的应用程序的方式。

Have any questions about Aspose.Font?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.