0

我正在尝试计算一个字符串在 pdf 文件中存在的次数。我使用了下面的代码,但它正在无限循环中。问题是在最后一页之后找到字符串后,它回到第一页并再次重复所有步骤。有没有人有这个问题的解决方案。任何帮助将不胜感激。

谢谢湿婆

Dim AcroApp, AcroAVDoc  
Dim gPDFPath, bReset, nCount  
gPDFPath = "xyz.pdf"  

Set AcroApp = CreateObject( "AcroExch.App" )  
AcroApp.Show()  
Set AcroAVDoc = CreateObject( "AcroExch.AVDoc" )   
If AcroAVDoc.Open( gPDFPath, "" ) Then  
    AcroAVDoc.BringToFront()  
    bReset = True : nCount = 0  
    Do While AcroAVDoc.FindText( "let", True, True, bReset )   
        bReset = False : nCount = nCount + 1   
        Wait 0, 200  
    Loop   
End If  
AcroApp.CloseAllDocs()  
AcroApp.Exit()  
4

1 回答 1

0

我认为这与 QTP 无关,它与 Acrobat 的 API 有关,快速搜索返回此链接到 API

看起来问题在于您使用的是布尔值 for bReset,文档说:

VARIANT_BOOL FindText(BSTR szText, 
                      long bCaseSensitive, 
                      long bWholeWordsOnly, 
                      long bReset);

所以bReset应该是 long 而不是布尔值。

bReset:如果为正数,则从文档的第一页开始搜索。如果为 0,则从当前页面开始。

在 VBScriptFalse中是 0 和True-1,所以当你发送True它时,它可能不被认为是一个正数,请尝试使用 1 来代替。

于 2010-08-02T07:04:48.057 回答