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

使用MS Mincho字体生成SAS ODS PDF文件不可搜索问题咨询

问题根因

PDF无法搜索的核心原因是默认SAS ODS PDF输出时没有正确嵌入MS Mincho字体的可搜索字符信息,部分场景下会把文字渲染为矢量路径/位图,丢失文本元数据。你需要补充以下配置:

需补充的配置项

  • ODS PDF输出参数新增强制字体嵌入、禁用TrueType字体转路径的配置
    你原来的ods pdf语句需要额外添加embedfonts=yes和notruetype=no参数,确保字体的字符编码信息被完整嵌入PDF,而不是只输出字形路径
  • 若输出包含日文/中文等CJK字符,需额外提前注册MS Mincho到SAS字体库,避免SAS无法匹配字体编码规则

修改后的完整可运行代码

/* 提前注册MS Mincho字体到SAS字体库,避免字体映射出错 */
proc fontreg mode=all;
    fontpath "C:\Windows\Fonts"; /* 对应你的系统字体存放目录 */
run;

proc template;
   define style styles.smaller;
   parent = styles.printer;
      class fonts from fonts / 
            'TitleFont2' = ("MS Mincho",10pt,Bold Italic)
            'TitleFont' = ("MS Mincho",11pt,Bold Italic)
            'StrongFont' = ("MS Mincho",8pt,Bold)
            'EmphasisFont' = ("MS Mincho",8pt,Italic)
            'FixedEmphasisFont' = ("MS Mincho",7pt,Italic)
            'FixedStrongFont' = ("MS Mincho",7pt,Bold)
            'FixedHeadingFont' = ("MS Mincho",7pt,Bold)
            'BatchFixedFont' = ("MS Mincho",5pt)
            'FixedFont' = ("MS Mincho",7pt)
            'headingEmphasisFont' = ("MS Mincho",9pt,Bold Italic)
            'headingFont' = ("MS Mincho",9pt,Bold)
            'docFont' = ("MS Mincho",8pt);
      class Table from Output /
            rules = ALL
            cellpadding = 2pt     /* Reduced from 4pt to 2pt */
            cellspacing = 0.25pt
            borderwidth = 0.75pt;
   end;
run;

/* 新增embedfonts和notruetype参数,确保输出文本可搜索 */
ods pdf file="test.pdf" style=styles.smaller embedfonts=yes notruetype=no;

proc print data=sashelp.class;
run;

ods pdf close;

额外验证点

如果修改后还是无法搜索,检查:

  • 你安装的MS Mincho是TrueType(.ttf/.ttc)版本,不是老式位图字体版本
  • SAS运行进程有权限读取系统字体目录下的MS Mincho字体文件

内容的提问来源于stack exchange,提问作者Jolly J

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:09:01