前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SAS-如何实现输出字体自由

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

作者头像
Setup
发布2021-12-18 09:45:03
3.8K3
发布2021-12-18 09:45:03
举报

小编今天来分享一下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;

结果展示

双结果展示

总结

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SAS程序分享号号号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档