You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Angular项目中禁用Apryse后台加载字体以提升性能

禁用Apryse Web Viewer默认字体加载的解决方案

尝试以下几种方案来彻底禁用默认字体加载,解决性能问题并屏蔽字体缺失错误:

  • 初始化时配置字体加载开关
    在Viewer初始化参数中添加禁用字体加载的配置,同时指定系统内置字体作为默认,避免依赖远程字体:

    // Angular组件中的Viewer初始化代码示例
    import { Viewer } from '@pdftron/webviewer';
    
    ngAfterViewInit() {
      Viewer({
        path: '/lib', // 你的WebViewer资源路径
        disableFontLoading: true, // 禁用默认字体加载逻辑
        fontPreferences: {
          defaultFont: 'Arial', // 指定系统已存在的字体作为默认
          skipFonts: ['all'], // 跳过所有预加载的默认字体
        },
        enableFontPicker: false, // 完全禁用字体选择器(包含底层逻辑)
      }, document.getElementById('viewer'));
    }
    
  • 拦截字体加载事件
    通过监听fontLoading事件,阻止默认的字体加载行为,从根源上中断加载流程:

    const viewerInstance = await Viewer(/* 初始化配置 */);
    const documentViewer = viewerInstance.Core.documentViewer;
    
    documentViewer.addEventListener('fontLoading', (event) => {
      event.preventDefault(); // 阻止默认字体加载
      // 可选:如果需要自定义字体,在这里通过FontManager加载
      // documentViewer.getFontManager().loadFont('your-custom-font-path');
    });
    
  • 禁用依赖字体的功能模块
    如果不需要文本编辑、签名等依赖字体的功能,直接禁用对应的模块,减少字体加载触发场景:

    Viewer({
      disabledElements: ['textTool', 'signatureTool', 'freeTextTool'], // 禁用编辑类工具
      // 或者直接开启只读模式(如果仅需查看/填写基础表单)
      enableReadOnlyMode: true,
    }, document.getElementById('viewer'));
    
  • 屏蔽字体缺失错误
    即使禁用加载,部分场景可能仍会触发字体缺失报错,通过fontMissing事件拦截并处理:

    documentViewer.addEventListener('fontMissing', (event) => {
      event.preventDefault();
      // 设置系统字体作为 fallback,避免报错
      documentViewer.setFallbackFont('Arial');
    });
    

注意:配置项需对应你使用的Apryse Web Viewer版本,部分参数可能随版本略有调整,优先保证初始化时disableFontLoading和fontPreferences的正确设置,这是最直接的禁用方式。

内容的提问来源于stack exchange,提问作者qays ziaey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 18:14:59