QTP对PDF的操作

1、首先需要安装Adobe Acrobat,而不是Adobe Reader

2、理解AcroExch.App 、AcroExch.AVDoc、AcroExch.PODoc

   App 主要管理应用级别的对象信息,比如说Acrobat对象的窗口、大小等

   AVDoc对象主要管理Acrobat视图级别的操作

   PODoc对象主要管理Acrobat文档级别的对象操作

具体可以参考如下链接:

http://livedocs.adobe.com/acrobat_sdk/9.1/Acrobat9_1_HTMLHelp/wwhelp/wwhimpl/js/html/wwhelp.htm?&accessible=true

 

'*************************************************************'
'函数/过程名称:GetNumPdf()
'函数/过程的目的:统计PDF文件的页数
'假设:无
'输入:无
'返回值:无
'创建者:lee
'创建时间:2010/10/11
'修改者:
'修改原因:
'修改时间:
'*************************************************************'
Function GetNumPdf(filename)
 Dim GetDoc
 '调用PDF的COM组件(PDDoc对Acrobat文档级别的对象进行操作)
 Set GetDoc = CreateObject ("AcroExch.PDDoc")
 '打开PDF文件并获取页面数目
 If GetDoc.open(filename) Then
  GetNumPdf = GetDoc.GetNumPages()
  Set GetDoc = Nothing
 Else 
  MsgBox "不存在"
 End If
End Function
Dim pagenum
pagenum = GetNumPdf ("D:\2010最新实木复合地板十大品牌.pdf")
MsgBox "2010最新实木复合地板十大品牌.pdf 总页数为 " & pagenum

 

 

#########################################################

QTP检查PDF中是否存在某段文本

#########################################################

'*************************************************************'
'函数/过程名称:CheckText()
'函数/过程的目的:查看PDF文件中是否的包含某段文字
'假设:无
'输入:无
'返回值:无
'创建者:lee
'创建时间:2009/12/11
'修改者:
'修改原因:
'修改时间:
'*************************************************************

Function CheckText(obj,text)
  flag = obj.FindText(text,true,true,false)
  CheckText = flag
End Function

 

Dim AcroApp, AcroAVDoc
Dim gPDFPath
gPDFPath = "d:\2010最新实木复合地板十大品牌.pdf"

Set AcroApp = CreateObject( "AcroExch.App" )
AcroApp.Show()
Set AcroAVDoc = CreateObject( "AcroExch.AVDoc" )

If AcroAVDoc.Open( gPDFPath, "" ) Then
 

msgbox "查找文本——生活家——" +CStr(CheckText(AcroAVDoc,"生活家"))

End If
AcroApp.CloseAllDocs()
AcroApp.Exit()
Set AcroApp = Nothing

 

自己运行时,被测对象【2010最新实木复合地板十大品牌.pdf】中存在“生活家”三个字,如下图,因此运行后的,结果应该为  【查找文本——生活家——True】

QTP对PDF的操作
 

你可能感兴趣的:(测试,Excel,Office,pdf,qtp)