获得元数据| JavaScript的API解决方案
如何从“名称”表中读取字体元数据?
您可以使用 AsposeFontgetInfo函数从“名称”表或Opentype字体中读取记录。
相应的枚举用于指示来自数组的记录的每个值。该功能返回这些枚举的名称。
因此,
ttfnametablenameID和
ttfnametableplatformid用于nameId
和platformId
,
ttfnametablemacplatformspecificid,,
ttfnametablemsplatformspecificid或
ttfnametabledableababledeplatformspecificid用于platformSpecificid
和
ttfnametableMaclanguageId或
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>
如何获取解决方案?
如果要拥有库,请转到 Java 版 Aspose.FontScript产品页。在这里,您会发现解决方案给您的更多机会。您可以从那里下载免费试用版或在那里购买产品。
如果您剩下任何麻烦或问题,请随时在 aspose.font.product family 免费支持论坛的部分中发布它们,并在几个小时内我们的支持团队为您清除所有内容。
另外,请检查我们的 FONT元数据跨平台应用程序,以充分了解功能以及API可用于创建您自己的应用程序的方式。