前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SAS-RTF合并之告别空白页

SAS-RTF合并之告别空白页

作者头像
Setup
发布2020-06-02 11:20:19
2.2K0
发布2020-06-02 11:20:19
举报

日前,小编亲眼目睹了RTF合并删空白页的痛苦,数百页的文档穿插着无数无规律的空白页,删一页电脑卡半分钟。既然用了小编写的宏程序,又让小编亲眼目睹了删空白页的痛苦,那么就安排了一下,来解决一下这个问题,让合并后的RTF再无空白页。

相关文章

SAS-如何简单快捷的实现RTF合并

SAS-RTF的合并【完善篇】

SAS-文本转化成RTF编码

如上三篇,是小编关于RTF合并相关的历史推文,随着时间的变化,程序也在不断的更新,功能也逐步趋于完善。那么今天本文将用四行代码告别空白页,再也不用手动删除空白页了。

正文

空白页

先来看一下空白页,如上图中第6、8为空白页,第13页把脚注挤到了下一页。那么显然合并完正确的RTF不应该是这样子的。于是小编用UE打开了RTF,找到了产生空白页位置的代码。

RTF编码

根据小编多年编程的经验并掐指一算得知,一定有RTF编码影响这空白页。既然有了这个方向,那么小编就在RTF编码中观察与测试,发现了在删除\sect空白页就消失了,于是第一句告别空白页的代码产生了。

代码语言:javascript
复制
data want;
    set want;
    line=tranwrd(line,'\sect\sectd\linex0\endnhere\sbknone\pgwsxn16837\pghsxn11905\lndscpsxn\headery720\footery1440\marglsxn1440\margrsxn1440\margtsxn720\margbsxn1440','');
run;

如果对want数据集不了解,那么这里小编来解释一下,Want为小编RTF合并后RTF编码存放的最终数据集,变量line存放了所有合并后RTF的编码。这一步是删掉那一串编码(需要强调,基于template可能不同,这句代码可能有出入,小编手中测试文档有限,并不能确认我这行代码能通用,但能确认的是你一定有类似这行代码的存在的,而且在删除\sect后能解决部分空白页)。这句编码可能会产生部分空白页,但是解决的范围是很受限制的。仍然有大量空白页存在。显然这句话编码还有其他帮凶。

RTF编码

于是继续探索发现,将目光移动到前一句编码的上几行时,眼光一亮,\par在RTF中是换行符的存在。那么空白页背后的元凶是否有它一份,于是经过一番尝试后,得出了如下代码。

代码语言:javascript
复制
data want;
    set want;
    line=tranwrd(line,'\sect\sectd\linex0\endnhere\sbknone\pgwsxn16837\pghsxn11905\lndscpsxn\headery720\footery1440\marglsxn1440\margrsxn1440\margtsxn720\margbsxn1440','');
    line=tranwrd(line,'}\par}{\page\par}','}}{\page}');
    line=tranwrd(line,'\pard{\par}{\pard\plain\qc{','\pard{}{\pard\plain\qc{');
    line=tranwrd(line,'}\par}','}}');
run;

在加完这几行代码后,运行合并程序,再也没有空白页了。如果对RTF合并不了解,可以看本文前的专辑。

添加位置

程序下载

公众号回复:RTF合并V3.0,获取V3.0免费宏包及V1.0源码。V2.0是给表格添加索引,基于大家用的template可能都不一样,索引就没有提供源码,添加索引的方法在小编历史推文中有介绍。或者用小编的V3.0中的IndexYN将文档名作为索引进行添加。如需想将表格标题添加索引,可联系小编进行私人订制。

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

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

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

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

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