如何用VBScript实现二进制读取PDF并获取页数?附VBA参考代码
先直接给你答案:VBScript完全支持以二进制方式打开和读取文件,和VBA的操作逻辑高度相似,只是在语法细节上有一点点区别。
关于二进制文件读取的说明
在VBScript里,你同样可以用Open语句搭配For Binary模式打开文件,再通过Get语句读取二进制内容,和你熟悉的VBA操作几乎一致。
转换后的VBScript版PDF页数获取函数
你提供的VBA思路非常实用——通过读取PDF二进制内容,用正则匹配页面标记来统计页数,这个逻辑可以直接移植到VBScript中。下面是完整的可运行代码:
Function GetPageNum(PDF_File) Dim FileNum Dim strRetVal Dim RegExp Dim matches ' 初始化正则表达式 Set RegExp = CreateObject("VBscript.RegExp") RegExp.Global = True RegExp.Pattern = "/Type\s*/Page[^s]" ' 以二进制模式打开文件 FileNum = FreeFile Open PDF_File For Binary As #FileNum ' 分配足够空间存储文件内容 strRetVal = Space(LOF(FileNum)) ' 读取全部文件内容 Get #FileNum, , strRetVal ' 关闭文件释放资源 Close #FileNum ' 执行正则匹配并返回页数 Set matches = RegExp.Execute(strRetVal) GetPageNum = matches.Count End Function ' 调用示例(直接运行的话可以取消注释) ' WScript.Echo GetPageNum("C:\你的文件路径\test.pdf")
转换时的几个关键点
- VBScript不需要给函数参数指定类型(比如VBA里的
PDF_File As String),直接写参数名就行 - 新增了
matches变量来接收正则匹配的结果,最后返回匹配项的数量就是PDF的总页数 - 一定要记得用
Close #FileNum关闭文件,避免占用系统资源
内容的提问来源于stack exchange,提问作者red
相关产品推荐
相关产品推荐

