同事问有没有批量把word和excel 转PDF的工具,要在原目录下生成pdf,网上应该有很多这类工具。自己想做个小工具,先用python,使用win32com,结果有的文档没有转换,问题一堆,最后还是使用最简单的VBS来实现,缺点没有界面不知道执行进度。

转换时,将这个脚本放在包含word/excel的根目录下,双击运行就可以了。

wsToPdf.vbs

dim ObjFSO,ObjWS,currentDir
dim fileCount,word_count,excel_count,delCount,logfile
filecCount = 0
word_count = 0
excel_count = 0
delCount = 0Set ObjWS = WScript.CreateObject("wscript.shell")
currentDir = ObjWS.CurrentDirectory
logfile = currentDir & "\log.txt"data = "是否开始对根目录下包含的所有文档进行文档转化?" & vbCrLf & vbCrLf _& "文档根目录为:" & vbCrLf & vbCrLf _& currentDir & vbCrLf & vbCrLf _& "转化日志再根目录下:log.txt"res = Msgbox(data,4+32+256,"Word/Excel 转换 PDF")
if res = 7 thenSet ObjWS = nothingWScript.quit
end ifSet ObjFSO = CreateObject("Scripting.FileSystemObject") '--开始搜索Word\Excel文档
SearchFolder objFSO,currentDirdata = "Word/Excel 转换 PDF 完成。" & vbCrLf &  vbCrLf & " 清理临时文件:" & delCount & vbCrLf & vbCrLf & "Word 转 PDF:" & word_count & vbCrLf & vbCrLf & "Excel 转 PDF:" & excel_count
msg = Msgbox(data,0+64+0,"Word/Excel 转换 PDF")Set ObjFSO = Nothing
Set ObjWS = Nothing'--查找目录
sub SearchFolder(objFSO,folderPath)Set ObjFolder = objFSO.GetFolder(folderPath)Set SubFolders = ObjFolder.SubFoldersSet files = ObjFolder.filesFor Each file In filesext = lcase(objFSO.GetExtensionName(file))if ext="doc" or ext="docx" or ext="xls"  or ext="xlsx" Thenif InStr(file,"~")= 0 ThenfileCount = fileCount + 1src = ObjFolder & "\" & file.nameif InStr(ext,"do")> 0 Thenword_count = word_count + 1msg = WordToPdf(word_count,src)elseexcel_count = excel_count + 1msg = ExcelToPdf(excel_count,src)end ifwriteLog objFSO,fileCount, msgelsedelCount = delCount + 1src = ObjFolder & "\" & file.nameobjFSO.DeleteFile srcwriteLog objFSO,delCount, src & "被删除"end ifelseIf lcase(ext)="pdf" Then'delCount = delCount + 1'src = ObjFolder & "\" & file.name'objFSO.DeleteFile src'writeLog objFSO,delCount, src & "被删除"end ifNextFor Each subFolder In SubFoldersSearchFolder objFSO,subFolder.pathNext
end sub'--word 转 pdf
function WordToPdf(n,src)On Error Resume NextwdExportFormatPDF = 17if n >0 ThenSet oWord = WScript.CreateObject("Word.Application")Set oDoc = oWord.Documents.Open(src)pdf = Left(src,InStrRev(src,".")) & "pdf"oDoc.SaveAs pdf,wdExportFormatPDFIf Err.Number ThenWordToPdf = src & " 转换pdf失败。" & Err.Description'MsgBox "err:" & Err.DescriptionelseWordToPdf = src & " 转换为pdf完成。"End IfoDoc.CloseoWord.Quitend ifSet oDoc = NothingSet oWord = NothingOn Error Goto 0
end function'--excel 转 pdf
function ExcelToPdf(n,src)On Error Resume Nextif n >0 ThenSet oExcel = WScript.CreateObject("Excel.Application")Set oWb = oExcel.Workbooks.Open(src)pdf = Left(src,InStrRev(src,".")) & "pdf"oExcel.displayalerts=falseoWb.ExportAsFixedFormat xlTypePDF,pdf,0,1,1,,,0oExcel.displayalerts=false '--不出现保存提示框If Err.Number ThenExcelToPdf = src & " 转换pdf失败。" & Err.DescriptionelseExcelToPdf = src & " 转换为pdf完成。"End IfoWb.CloseoExcel.Quitend ifSet oWb = NothingSet oExcel = NothingOn Error Goto 0
end function'--写转换日志
sub writeLog(fs,n,data)data = n & "、" & date() & " " & Hour(Now) & ":" & Minute(Now) & ":" & Second(Now) & ":" & dataif (fs.FileExists(logfile)) thenset f =fs.opentextfile(logfile,8)f.writeline dataf.closeelseset f=fs.opentextfile(logfile,2,true)f.writeline dataf.closeend ifset f = nothing
end sub

VBS word/excel 转 PDF相关推荐

  1. word excel转pdf,pdf合并,插入页码

    word excel转pdf,pdf合并,插入页码 将word转换为pdf,excel转换为pdf.pdf合并及在最终的pdf中添加页码 word转换为pdf String wordPath = &q ...

  2. Java准确获取Word/Excel/PPT/PDF的页数(附Word页数读不准的处理办法)

    Java准确获取Word/Excel/PPT/PDF的页数(附Word页数读不准的处理办法) 1.需求背景 2.环境准备工作 2.1 JACOB介绍及安装 2.2 Microsoft Office W ...

  3. jacob电脑重启后word/excel转pdf是0KB问题解决方法

    问题现象:使用jacob将word/excel转换为pdf时,服务器重启后,必须重新登录下桌面,才可转换pdf 成功,否则转换的pdf文件直接是0KB. 1.确保所用电脑的office本身可以将wor ...

  4. C#编写ASP.NET Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/PPT/PDF的页数)6 -将项目部署到IIS,及常见错误解决方案

    C#编写ASP.NET Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/PPT/PDF的页数)6 -将项目部署到IIS,及常见错误解决方案 1.前言 2.安 ...

  5. php word excel转pdf文件怎么打开,php office文件(word/excel/ppt)转pdf文件,pptpdf

    php office文件(word/excel/ppt)转pdf文件,pptpdf 把代码放到了github上,点击进入 前阶段有个项目用到了线上预览功能, 关于预览office文件实现核心就是,把o ...

  6. JAVA读取WORD,EXCEL,POWERPOINT,PDF文件的方法

    OFFICE文档使用POI控件,PDF可以使用PDFBOX0.7.3控件,完全支持中文,用XPDF也行. java2word 是一个在java程序中调用 MS Office Word 文档的组件(类库 ...

  7. 【aspose】 word/excel转pdf,实现在线预览文件功能

    项目场景: 需求描述:上传附件后,可实现在线预览,这里就会存在一个问题,很多附件的类型是没法在线预览的,点击就会下载.除pdf/jpg/jpeg等,于是技术方案定,将word/excel等类型的文件转 ...

  8. 性能优化之通过Aspose组件将Word/Excel/PPT/PDF转成HTML文件,解决大附件预览性能问题

    在最近的一个项目中,遇到一个非常棘手的性能问题,场景是这样的:有PC端和手机端两个应用,用户在PC端上传的附件,如word,Excel,pdf等,当用户出差或不在电脑边上时,上传的附件在手机端能够打开 ...

  9. vue预览word,excel,pptx,pdf文件

    vue预览word,excel,pptx,pdf文件 1.做word,excel,pptx的预览,要先确定文件路径访问是通过域名的url来预览,不可以通过IP的url来访问 先把文件路径的url进行u ...

  10. HTML批量转换jpg,万能文件转换工具(word,excel,powerpiont,PDF,TXT,JPG,HTML互转)

    All Office Converter Platinum v6.1 官方简体中文注册版是一款易于使用和专业的文件转换工具.它可以高质量的支持批量转换文件,网页和图像,以改善工作效率.有了这个强大的转 ...

最新文章

  1. android 手势放缩_AIR Android:放大与缩小手势
  2. word顶部有一道线_为什么顶角线不会过时?文章内容告诉你
  3. oracle 监听主机,Oracle 监听
  4. java packetmaster_TCP中间件_java_server
  5. xshell复制粘贴
  6. Solution : Cannot add new node – Rule SQL Server Database Services feature state failed.
  7. 【C++】 C++标准模板库(十二) 迭代器和STL
  8. bootstrap 悬浮固定_CST Tech Tips - 流式细胞术中如何固定和通透细胞?
  9. js数字转中文大写支持负数
  10. 判断星座PHP,php根据日期判断星座的函数分享_PHP教程
  11. 【转】经典SQL语句大全
  12. linux常用指令_Linux常用指令
  13. OpenShift 之 Quarkus(3)用独立的Prometheus监控Quarkus应用
  14. Python字符串串联
  15. Vue知识点笔记(基础篇)
  16. C语言汉诺塔递归算法实现
  17. 1017 怪盗基德的滑翔翼(最长上升子序列扩展)
  18. 淮安万达机器人_淮安万博机器人 万达上班时间【输入网址YB7888.vip】angmi_PP视频搜索-PP视频-原PPTV聚力视频...
  19. git 删除git管理_使用Git管理多媒体文件
  20. 利益相关者在敏捷项目管理中有什么用?

热门文章

  1. 苹果手机怎么验证app_苹果序列号查询 未验证怎么办?
  2. 达尔优EM915镜面板游戏鼠标拆机教程
  3. System mem和AGP mem和video mem
  4. CSMA/CD总线以太网和交换式以太网
  5. matlab预测股价,股价模拟、以雅虎新浪网易数据挖掘、股价预测工具箱(fantuanxiaot的Alpha版本)...
  6. python编写函数输出自除数_728. 自除数(Python)
  7. 远程手机控制开关应用
  8. zookeeper入门篇
  9. 汉字一、二级字库的汉字与unicode编码(十六进制)对照表,按照unicode的顺序排列
  10. (原創) 如何設計除頻器? (SOC) (Verilog) (MegaCore)