Oracle Forms 12c如何在项的提示中正确显示勾选符号
Oracle Forms 12c 项提示运行时无法显示Wingdings 2勾选符号解决方法
问题根因
Forms Builder设计时的预览直接调用本地系统的GDI字体渲染逻辑,可以正常识别Wingdings 2字体的字符映射,所以输入P能显示为勾选符号;但运行时Forms的web渲染层默认走Java2D字体逻辑,没有加载到对应字体的映射配置时,会自动fallback到默认的普通字体,最终只显示普通字符P。
配置步骤
按以下顺序操作即可解决:
- 先给Forms应用服务器安装对应字体
- Windows Server环境:将Wingdings 2字体文件
WINGDNG2.TTF复制到服务器的C:\Windows\Fonts目录完成安装 - Linux/Unix Server环境:将
WINGDNG2.TTF上传到$ORACLE_HOME/jdk/jre/lib/fonts目录,执行命令更新JDK字体缓存:cd $ORACLE_HOME/jdk/jre/lib ./../../bin/fc-cache -f
- Windows Server环境:将Wingdings 2字体文件
- 修改Forms字体映射配置
找到Forms域配置路径下的registry.dat文件(典型路径为$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/config/registry.dat,不同小版本号路径中formsapp_12.x.x的版本段略有差异),在文件的字体映射段添加如下配置:
保存文件后,再找到同目录下的Wingdings 2 = Wingdings 2formsweb.cfg,检查fontAliasing参数是否设为true(默认即为true,不要手动改成false),同时确认没有配置全局规则把Wingdings开头的字体强制映射为宋体、微软雅黑等普通中文字体。 - 调整对应项的属性配置
回到Forms Builder中选中目标项,确认/修改以下属性:- Prompt:保持填
P - Prompt Font Name:保持选
Wingdings 2 - Prompt Font Rendering:从默认的
Automatic改为Native,强制运行时用本地原生字体渲染逻辑处理提示内容
- Prompt:保持填
- 重启服务清缓存验证
重启WLS_FORMS托管服务器,清空客户端浏览器的Java缓存和页面缓存后重新访问表单,提示位即可正常显示勾选符号。
补充说明:不建议直接用Unicode勾选符号(☑/√)替代Wingdings 2方案,12c早期版本的Prompt位对多字节Unicode符号的对齐支持有bug,会出现提示文字和项位置偏移、上下错位的问题。
内容的提问来源于stack exchange,提问作者user6186249
相关产品推荐
相关产品推荐

