| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 480 人关注过本帖
标题:VFP如何获取PDF文件的页数
只看楼主 加入收藏
shschy
Rank: 2
等 级:论坛游民
帖 子:87
专家分:20
注 册:2022-3-13
结帖率:33.33%
收藏
已结贴  问题点数:1 回复次数:7 
VFP如何获取PDF文件的页数
网上搜到以下方式,但无法实现。
1)请问如何在VFP里看对应ole的全称,比如EXCEL和WORD比较常见,PDF类的如何查看?


* 创建OLE对象连接到Adobe Acrobat
loOleObject = Createobject("Acrobat.Application")
loOleObject.ConnectToNewObject("Adobe Acrobat Ex 9.0 Type Library")
 
* 使用OLE对象打开PDF文件
lcFilePath = "D:\单据.pdf"
loOleObject.Open(lcFilePath)
 
* 获取PDF文档的页数
lnPageCount = loOleObject.GetNumPages()
 
* 显示页数
? "PDF页数: " , lnPageCount
 
* 关闭OLE对象
loOleObject.Close()
DESTROY loOleObject
搜索更多相关主题的帖子: 获取 文件 ole PDF VFP 
2024-06-01 14:15
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:708
专家分:2848
注 册:2018-3-13
收藏
得分:1 
试试
oo = CreateObject('AcroExch.PDDoc')
oo.Open(GetFile('pdf'))
? oo.GetNumPages()


这家伙很懒,啥也没留下
2024-06-01 16:42
shschy
Rank: 2
等 级:论坛游民
帖 子:87
专家分:20
注 册:2022-3-13
收藏
得分:0 
感谢 csyx指点,请进一步指点
看到您的回复,知道VFP可以调用类似对象访问PDF,上网搜AcroExch,获得以下信息。
但是没有具体详细参数,比如要打开一个pdf文件,并显示,无法做到。
参试:oAcrobatApp = CREATEOBJECT("AcroExch.App")
      oAcrobatApp.GetAVDoc("D:\单据.pdf") &&报错
      oAcrobatApp.show  &&可以显示

网上搜到
AcroExch是Adobe Acrobat的一个组件,它提供了一系列的API,可以用于控制和操作PDF文件。下面是一些常用的API:
1. AVDocOpen:打开一个PDF文件并返回一个AVDoc对象。
2. AVPageViewNew:创建一个新的AVPageView,用于显示PDF文件中的一页。
3. PDPageAcquirePage: 获取PDF页面并返回一个PDDoc对象。
4. PDDocOpen:打开一个PDF文档并返回一个PDDoc对象。
5. PDPageDrawContentsToWindow:将PDF页面内容绘制到指定的窗口中。
6. PDPageGetContents:获取指定PDF页面的内容。
7. AVDocClose:关闭一个AVDoc对象。
8. PDPageRelease:释放指定PDF页面。
9. PDDocClose:关闭一个PDDoc对象。
10. AVPageViewRelease:释放指定的AVPageView对象。
2024-06-01 20:47
nbwww
Rank: 8Rank: 8
等 级:贵宾
威 望:11
帖 子:333
专家分:810
注 册:2021-1-9
收藏
得分:1 
不清楚楼主具体的应用场景   
https://bbs.bccn.net/viewthread.php?tid=505200&highlight=pdf   
你可以看下这个贴6楼发的示例  
可以解决预览、打印等常用功能  
 页码当然也可以获取
2024-06-02 09:56
nbwww
Rank: 8Rank: 8
等 级:贵宾
威 望:11
帖 子:333
专家分:810
注 册:2021-1-9
收藏
得分:0 
当然现在有很多新的库 控件来解决
如吹版发的WebView2 其他如Miniblink等都可以

2024-06-02 10:00
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:708
专家分:2848
注 册:2018-3-13
收藏
得分:0 
不是想获取总页数吗,怎么又变成显示pdf了?

程序代码:
Local app as AcroExch.App
Local oo1 as AcroExch.AVDoc
Local oo2 as AcroExch.PDDoc

cc = GetFile('pdf')

oo1 = CreateObject('AcroExch.AVDoc')
oo1.Open(cc, '')
app = CreateObject('AcroExch.App')
app.Show()
oo2 = oo1.GetPDDoc()
? cc + ' 共有 ' + Transform(oo2.GetNumPages()) + ''




这家伙很懒,啥也没留下
2024-06-02 19:43
凝聚双眼
Rank: 2
等 级:论坛游民
帖 子:36
专家分:32
注 册:2023-12-1
收藏
得分:1 
有控件可以上传,测试一下吗?
2024-06-03 09:10
shschy
Rank: 2
等 级:论坛游民
帖 子:87
专家分:20
注 册:2022-3-13
收藏
得分:0 
回复 6楼 csyx
感谢版主指点,获得页数已经实现。谢谢!主要是看到版主提供的方法可以在VFP上调用WPS的PDF组件,很想再深入了解一下“AcroExch.PDDoc”。所以跟着提问,如果能有进一步学习“AcroExch.PDDoc”资料,十分感谢!
2024-06-04 11:16
快速回复:VFP如何获取PDF文件的页数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042956 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved