delphi memo 查找字符 下行插入_VBA实践+用编程代码为PDF文档插入书签

9177bdbdb85ce8bf1606915010a56d67.png

VBA实践+为PDF文档插入书签

声明:文章仅供参考,尝试请注意备份文件

作用:打开pdf文档,查找到指定字符串,然后插入书签

以下代码先设置一个待查找字符串,用findtext方法查找,然后用createchild方法插入书签。代码的运行环境为Win8.1,Word2010 VBA,Acrobat Pro DC,在本机测试成功。

使用到的主要方法为AVDoc.FindText和BookMark.createChild。

AVDoc.FindText有4个参数:

  1. szText,要查找的字符串
  2. bCaseSensitive,是否区分大小写,正数为区分,0为不区分
  3. bWholeWordsOnly,是否匹配整个单词,正数为匹配,0为不匹配
  4. bReset,查找开始的位置,正数则从第一页开始,0则从当前页开始

BookMark.createChild有3个参数

  1. cName,用户在导航面板中看到的书签的名称。
  2. cExpr,单击书签时要执行的表达式,为JavaScript
  3. nIndex,(可选)在书签的子数组中,创建新子书签的基于0的索引。默认值为0。
Sub Pdf添加书签()
'https://www.mrexcel.com/board/threads/create-pdf-bookmarks-while-combinding-files-with-vba-in-excel.847138/
'http://pharma-sas.com/how-to-add-multiple-levels-of-bookmark-into-pdf-via-vba/
'为某书添加书签
Dim App As New Acrobat.AcroApp
Dim PDoc As New Acrobat.AcroPDDoc, AVDoc As New Acrobat.AcroAVDoc
Dim Jso As Object
Dim BMark As Object '不能声明为Acrobat.AcroPDBookmark,否则createchild方法不可用。
Dim PFile As String, WordTF As String, PageNum As Long

PFile = "F:userdataDesktop提取PDF数据-需要修改客户需求2模具工业标准件目录.pdf" '要插入书签的pdf文件
WordTF = "A 型定位环"

If PDoc.Open(PFile) Then
    Set Jso = PDoc.GetJSObject
    Set AVDoc = PDoc.OpenAVDoc("")  '获得一个可见文档
    Jso.bookmarkroot.Remove '移除原有的所有书签
End If

If AVDoc.FindText(WordTF, 0, 0, 1) Then '从第一页开始,如果找到了字符串WordTF一次
    PageNum = AVDoc.GetAVPageView.GetPageNum '获得当前页码
    Set BMark = Jso.bookmarkroot '设置书签根对象
    BMark.createChild WordTF, "this.pageNum=" & PageNum, 0 '创建一个书签
    PDoc.Save 1, PFile
End If

PDoc.Close
App.CloseAllDocs
App.Hide
App.Exit
Set AVDoc = Nothing
Set PDoc = Nothing
Set App = Nothing
Set BMark = Nothing
Set Jso = Nothing
End Sub
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值