2010-08-02 6 views
0

J'essaie de compter le nombre de fois qu'une chaîne existe dans un fichier pdf. J'ai utilisé le code ci-dessous, mais il se passe en boucle infinie. Le problème est après avoir trouvé la chaîne après la dernière page, il revient à la première page et répète toutes les étapes à nouveau. Quelqu'un at-il une solution à ce problème. Toute aide serait appréciée.compter une chaîne dans le fichier pdf en utilisant QTP

Merci siva

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() 

Répondre

0

Je ne pense pas que cela est lié à qtp il doit faire avec l'API Acrobat, une recherche rapide retour this link to the API.

Il semble que le problème est que vous utilisez un booléen pour bReset, la documentation dit:

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

Alors bReset devrait être une longue pas une valeur booléenne.

bReset: Si un nombre positif, la recherche commence sur la première page du document. Si 0, il commence sur la page en cours.

Dans VBScript False est 0 et True est -1, alors quand vous envoyez True il se pourrait que ce n'est pas considéré comme un nombre positif, essayez d'utiliser 1 à la place.

Questions connexes