You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:47:01