【发布时间】:2026-02-24 06:45:01
【问题描述】:
我们的应用程序会下载并呈现外部的自定义内容,其中包括自定义的专有字体。对于 Web、桌面和 Android,我们只需使用嵌入了字体的外部 SWF 文件。为什么这种方法不适用于 iOS 是有技术意义的,但我找不到任何替代方法。这根本不可能吗?我希望不是这样,因为这意味着我们的应用程序无法在 iOS 上使用 AIR 移动技术。
埃里克
编辑详情:
让我更详细地介绍一下这个过程。在服务器上上传 PDF。然后,我们从 PDF 中解析和提取内容,包括每页的字体。这些字体通常是内容所有者完全自定义和专有的,因为它们存储数学符号和其他非标准字符。当我们提取这些字体时,我们将字体分配给一个唯一标识符,将其嵌入,并将其编译为 SWF。当客户端请求该内容时,我们有一个字体列表。我们下载所有包含这些字体的 SWF 文件,然后加载并注册这些字体。这是我们正在下拉的 SWF 示例。这是被拉下的已编译 SWF 的全部内容。
package {
import flash.display.Sprite;
import flash.text.Font;
import flash.system.Security;
public class F9471cf2d10924f87820ae61a30dd4b8f extends Sprite
{
[Embed(source='TempF9471cf2d10924f87820ae61a30dd4b8f.swf',symbol='F9471cf2d10924f87820ae61a30dd4b8f')]
public static var F9471cf2d10924f87820ae61a30dd4b8f:Class;
public function F9471cf2d10924f87820ae61a30dd4b8f()
{
Security.allowDomain("*");
Security.allowInsecureDomain("*");
Font.registerFont(F9471cf2d10924f87820ae61a30dd4b8f);
}
}
}
我们没有将这些字体的集合预先存储在任何库中。这都是动态生成的内容,因此我们需要能够按需下载和注册字体,而无需事先了解字体。
【问题讨论】: