SAS-如何实现输出字体自由

2021-12-18 09:45:03 浏览数 (1)

小编今天来分享一下SAS输出RTF如何实现字体自由。本文将主要介绍SAS输出RTF实现“中文宋体,英文Times New Roman”的实现方法。在此之前,先来分享一下“宋体”设置失效的解决方案。

设置“宋体”失效

在Style中字体设置为“宋体”,但最终输出的结果字体却是“等线”,针对这种问题其实也很好解决,我们可以将“宋体”替换成“simsun”。

Proc Template中设置Style

中文“宋体”,英文“新罗马”

关于如何实现字体自由,下面我将以如何实现“中文宋体,英文新罗马”为例进行介绍。在网上不乏看到许多这样的提问,但往往是没有结果或是无法实现的。小编实现的思路主要分为3个步骤(【自定义字体】-【安装导入字体】-【设置字体及输出】),其实有了思路后,实现起来真的很简单。

自定义字体

作为一个程序员,逻辑思维是很重要的。既然现有字体不能满足我们的需求,其实我们可以自己来定义或者创建我们所需要的字体。网上可以找到一些免费的字体编辑器,可以用来创作字体。小编在现有宋体字体的基础上将字母/数字/符号替换成了新罗马字体,于是自定义的字体就产生了,小编将其命名为"宋体(Times New Roman)"。

字体编辑器

安装/导入字体

将自定义字体安装在电脑上(大概是小编此处自定义字体的本质是“宋体”与“Times New Roman”的组合,即使别人电脑上没有安装自定义字体也是可以正常显示的),然后将其导入到SAS中。

安装字体

双击打开字体,点击安装即可

导入SAS

代码语言:javascript复制
/*将字体写入SAS注册表中,fontpath 填写字体所在路径*/
proc fontreg mode=all ;
fontpath 'E:日常编程SAS宏程序发开字体设置字体';
run;

设置输出

最后其实就是Proc template设置与ODS输出就可以了。

代码语言:javascript复制
proc template;
  define style tp_rtf;
  parent = styles.rtf;
  replace  fonts /
      "TitleFont2" = ("宋体(Times New Roman)",9pt)
      "TitleFont" = ("宋体(Times New Roman)",9pt)
      "StrongFont" = ("宋体(Times New Roman)",9pt,Bold)
      "EmphasisFont" = ("宋体(Times New Roman)",9pt,Italic)
      "FixedEmphasisFont" = ("宋体(Times New Roman)",9pt,Italic)
      "FixedStrongFont" = ("宋体(Times New Roman)",9pt)
      "FixedHeadingFont" = ("宋体(Times New Roman)",10pt)
      "BatchFixedFont" = ("宋体(Times New Roman)",10pt)
      "FixedFont" = ("宋体(Times New Roman)",9pt)
      "headingEmphasisFont" = ("宋体(Times New Roman)",10pt,Bold Italic)
      "headingFont" = ("宋体(Times New Roman)",10pt,Bold)
      "docFont" = ("宋体(Times New Roman)",9pt);
  replace Header from HeadersandFooters / font = ("宋体(Times New Roman)", 9pt, medium)
      background = _undef_
      protectspecialchars = off;
  replace table from output / font = ("宋体(Times New Roman)", 9pt, medium)
      background = _undef_
      frame = void
      rules = none
      cellspacing = 0.5pt
      cellpadding = 1pt
      outputwidth = 100%;;
  replace cell from output /
      font = ("宋体(Times New Roman)", 9pt, medium) ;
      *定义表头;
      style header /
      backgroundcolor=white
      color=black
      fontweight=bold;
  *定义文件的布局;
  style body from document /
      bottommargin = 15mm
      topmargin = 15mm
      rightmargin = 15mm
      leftmargin = 15 mm;
  end;
run;

结果展示

双结果展示

总结

相信看完前文,实现字体自由已经是一件非常简单的事情了。

sas

0 人点赞