是否可以使用VBScript打开文件并读取二进制文件

时间:2018-04-07 16:32:37

标签: vba vbscript

我找到了这个VBA函数,它读取Binary的PDF文件,找出文件中的总页数。有人可以说明我们如何使用VBScript做到这一点。这是VBA代码:

Function GetPageNum(PDF_File As String)
    Dim FileNum As Long
    Dim strRetVal As String
    Dim RegExp
    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
    GetPageNum = RegExp.Execute(strRetVal).Count
End Function

1 个答案:

答案 0 :(得分:3)

你可以这样做:

Function GetPageNum(PDF_File)
    Dim strRetVal 
    Dim RegExp: Set RegExp = CreateObject("VBscript.RegExp")
    RegExp.Global = True
    RegExp.Pattern = "/Type\s*/Page[^s]"

    Dim oFSO: Set oFSO = CreateObject("Scripting.FileSystemObject")
    Dim oFile: Set oFile = oFSO.GetFile(PDF_File)

    If IsNull(oFile) Then
        'TODO: handle file-not-found, etc.
        Exit Function
    End If

    With oFile.OpenAsTextStream()
        strRetVal = .Read(oFile.Size)
        .Close
    End With

    GetPageNum = RegExp.Execute(strRetVal).Count
End Function

我刚试过它,它运作得很好。以下是一个使用示例:

Dim pageNum
pageNum = GetPageNum("Your\PDF\FilePath.pdf")
MsgBox pageNum

希望这有帮助。