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

これは、Acrobat の API に関係する QTP に関連しているとは思いません。クイック検索でこのリンクが API に返されました。

ブール値を使用していることに問題があるようです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 に答える