如何在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
相关产品推荐
相关产品推荐

