分秒必争

个人技术博客,笔记,杂谈之地

« Python标准库的threading.Thread类空调洞里的麻雀 »
Dec
23

利用VBS(SendKey)打造批量任意文件转换成PDF

单位要我把几百个WORD转换成PDF,我日啊,一个个转还不死啊,网上找了很多东西都不能用,经过自己研究,终于发现办法,HOHO,以下是具体实现方法

要实现将任意文件转换成PDF首先需要安装一个PDF打印机,PDF打印机我使用的是TinyPDF,大家可以去这里下载:http://www.greendown.cn/soft/11171.html

接下去要装的就是安装PDF打印机,安装我就不说了,要实现批量,首先要做的是设置PDF打印机,在控制面板中打开打印机和传真,打开后找到TinyPDF,右击属性,然后在常规选项卡中点击打机首选项,在新弹出的对话框中找到输出选项,设置好输入目录,并在覆盖标签中选择直接覆盖不提示如下图所录

设置完成后就须要VBS的帮助了.以下我以WORD批量转换为PDF为实例,你们只要按照这个修改即可,运行脚本后请用鼠标点击下文件夹中的第一个文件,如果来不及点,可以下脚本1处修改成更长时间,哦对了,别忘记把PDF打印机设置成默认打印机,把下面的脚本保存成VBS即可,当然里面的延时会因机器性能不同而产生差异,如果不能估计每个步骤用了多少时间,请把时间设置长一点,以免脚本运行失败
for i=1 to 25 '有几个文件这里循环几次
Dim WshShell
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Wscript.Sleep 800 '1这里延时0.8秒
WshShell.SendKeys "{DOWN}" '按向下箭头
Wscript.Sleep 800 '1这里延时0.8秒
WshShell.SendKeys "{ENTER}" '回车打开文件
Wscrīpt.Sleep 800 '1这里延时0.8秒
WshShell.SendKeys "^p" 'CTRL+p,打印的快捷键
Wscript.Sleep 800 '1这里延时0.8秒
WshShell.SendKeys "{ENTER}" '回车打印文件
Wscript.Sleep 800 '1这里延时0.8秒
WshShell.SendKeys "%{F4}" 'ALT+F4关闭文件
Wscript.Sleep 800 '1这里延时0.8秒
WshShell.SendKeys "%{F4}" 'ALT+F4关闭文件,要用2个关闭是因为打成成PDF后默认会打开PDF文件
Wscript.Sleep 800 '1这里延时0.8秒
WshShell.SendKeys "{ENTER}" '在WORD提示保存的时候,按回车保存
next

Share
« Python标准库的threading.Thread类空调洞里的麻雀 »
  • quote 1.haphic
  • http://www.esloy.com/blog/
  • 我装了 Acrobat, 转换 PDF 还是挺省事儿的.
    另外, 有没有注意到同样是转 PDF, 转完的文件质量和大小却因转换软件不同而不同啊?
    据我观察, 质量最好同时也是文件最小的是 Acrobat 和 OpenOffice. 有些质量不好的能比这大出两倍来.
    分秒必争 于 2008-12-24 AM 11:46:05 回复
    Acrobat确定挺省事的,不过要装这么庞大的软件那可是相当的不划算啊,平常又用不着,所以也就没装,就装了个PDF打印机,就1M左右,PDF阅读的还是ADOBE READER,但只装阅读的基本功能,其它全无,至于文件质量什么的我倒没有对比过
  • 2008-12-23 23:18:54 [Report Spam]  回复该留言
  • quote 2.太牛了
  • 好啊,我也正想着这个问题呢,被你解决了,坚决加分!满满地
    分秒必争 于 2009-1-5 PM 07:49:31 回复
    呵呵,一般般
  • 2009-1-5 16:48:08 [Report Spam]  回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

Channels

Categories

Comments

Previous

Powered By Z-Blog 1.8 Walle Build 100427  Copyright www.djhui.net. Some Rights Reserved. 浙ICP 9017588