打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Putpdf--神奇的转换工具

我们在之前的推文中已经介绍过了stata15的新命令“putdocx”,它可以让我们用stata去创建docx文件---《玩转stata15-putdocx导入图表》《putdocx+wordconvert-将实证结果输出到Word(.docx)文档》《使用putdocx输出list的结果》《Putdocx输出list结果(二)》

但是有同学问了,那如果我想直接通过stata把结果输出到PDF文件呢?当然你可以用putdocx命令将结果输出到docx文件,然后可以用我们以前发布的命令“wordconvert”(爬虫俱乐部又出新命令了--wordconvert转换你的word文件)将docx转换成pdf文件。除此之外其实有一个和“putdocx”用法非常类似的命令---“putpdf”,它可以帮你很好地解决这个问题。请看爬虫君给你具体举几个栗子吧。

一、输出文本内容

clear

putpdf begin  //创建新的PDF文件

putpdf paragraph   //开始一段新的文本

putpdf text ('实证结果展示Empirical Results'),linebreak  //输完文字后另起一行

putpdf text ('实证结果展示Empirical Results'),bold bgcolor(yellow) linebreak  //加粗字体,底色为黄色

putpdf paragraph,halign(center)  //重新开始一段新的文本,使内容居中

putpdf text ('实证结果展示Empirical Results'),underline font('',14,blue) italic linebreak  //添加文字的下划线,字号为14,颜色为蓝色

putpdf text ('实证结果展示Empirical Results'),font('MV Boli',16,red) linebreak  //字体为”MV Boli”,字号为16,颜色为红色

putpdf save text.pdf,replace  //保存为text.pdf

注:其中halign()代表的是对齐方式,center表示居中,默认是halign(left)。

输出结果如下:

二、同时输出多个图表至一个PDF文件中

1

1.输出1-10行list结果

例如我们想要auto数据中make price mpg 这三个变量的前10行的list的结果 ,程序如下:

clear

cd E:\

sysuse auto,clear

cap putpdf save E:\实证结果展示.pdf, replace

putpdf begin  

putpdf paragraph,halign(center)  //段落居中对齐

putpdf text ('表 1: 前10行样本'),bold

putpdf table tbl2 = data('make price mpg') in 1/10,varnames

其中,后缀”varnames”表示将变量名作为列标题名。

输出结果如下:

2

输出11-20行的list的结果

绘制完成第一个表格,我们利用putpdf pagebreak进行换页,然后继续对11-20行的数据进行操作:

putpdf pagebreak  //换页

putpdf paragraph,halign(center)  //段落居中对齐

putpdf text ('表 2: 11-20行样本'),bold

putpdf table tbl2 = data('make price mpg') in 11/20, ///

    varnames width(5) halign(center) border(all,,blue)  //设置表格的宽度为5英寸,所有的边框线为蓝色

forv row =2(2)11{

forv col=1/3{

putpdf table tbl2(`row',`col'),bgcolor(lightblue)  //使指定单元格底色为浅蓝色

    }

}

forv col=1/3{

putpdf table tbl2(1,`col'),bold bgcolor(blue) font(,,white)  //使指定单元格底色为蓝色,并且字体色为白色

}

输出结果如下:

3

插入stata图表

接下来如果我们想要将操作得到的stata图表结果导出,我们可以这样做:

putpdf pagebreak  

tw(scatter mpg weight if foreign==0) ///

    (scatter mpg weight if foreign==1,msymbol(sh))

graph export auto.png  //将绘制出的图表保存为png格式

putpdf paragraph, halign(center)  

putpdf text ('行驶里程与车重关系'),bold  //输入标题,并加粗

putpdf paragraph, halign(center)

putpdf image auto.png, width(4)  //插入图片,设置其宽度为4英寸

输出结果如下:

4

输出表格结果

第四个表格的内容为国产车和进口车的描述统计数据,我们根据这两个变量,绘制一个表格,程序如下:

statsby total=r(N) average=r(mean) Max=r(max) Min=r(min),  ///

    by(foreign):sum mpg

rename foreign Origin

putpdf paragraph,halign(center)

putpdf text ('国内与国外分别的汇总统计数据'),bold

putpdf table tbl1 = data('Origin total average Max Min'), varnames 

在我们得到国产车和进口车的汇总统计结果后,使用statsby命令收集统计信息,方便在下面的程序中使用,并创建一个表格tbl1。

输出结果如下:

可是我们发现输出结果不够美观,所以在上面程序的基础上再做一些修饰:

putpdf table tbl1 = data('Origin total average Max Min'), ///

   varnames border(start, nil) border(end, nil) ///

   border(insideV, nil) border(insideH, nil)

forv row =1/3{

forv col=1/5{

putpdf table tbl1(`row',`col'),halign(right)

    }

}

forv i=1/5{

putpdf table tbl1(1,`i'),border(bottom,single,black)

}

putpdf save 实证结果展示.pdf,replace

其中,我们可以使用border(bordername ,nil)命令,消除指定位置的边框线。第一个循环是指定到每一个单元格,都使其右对齐(默认为左对齐)。第二个循环是指定到第一行的各个单元格,使其都显示出下边框线。

输出结果如下:

 经过以上一系列的操作之后,我们就在一个PDF文件中同时导入了4个图表,并分页显示。

以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

                      文字编辑:王   明

技术总编:刘贝贝



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
LaTeX新人教程,30分钟从完全陌生到基本入门
iText 生成PDF全攻略
Ginseng shows benefits in cancer treatment
Inaugural Address
Java POI 生成PDF文档,很给力!
lua的调试器技术
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服