Vba 从PDF书签检索页码?

Vba 从PDF书签检索页码?,vba,pdf,adobe,Vba,Pdf,Adobe,我用VBA编写了一个代码来打印PDF文档的指定页码。我试图找到一种方法来检索每个PDF书签的页码和名称,以便将数据插入Excel并打印。我有多个PDF文件,其中报告编号本身就是书签。我无法通过VBA访问书签。但是,我已经能够搜索文档并将页码返回到Excel中。这很耗时,因为所有PDF都保存为图像,必须转换。我对VBA很在行,但我对Java脚本没有任何经验。我也尝试过用顶级书签分割文件,但没有成功。文件另存为错误的书签名称。有人能提供解决方案吗 Public Sub PrintPDFPartial

我用VBA编写了一个代码来打印PDF文档的指定页码。我试图找到一种方法来检索每个PDF书签的页码和名称,以便将数据插入Excel并打印。我有多个PDF文件,其中报告编号本身就是书签。我无法通过VBA访问书签。但是,我已经能够搜索文档并将页码返回到Excel中。这很耗时,因为所有PDF都保存为图像,必须转换。我对VBA很在行,但我对Java脚本没有任何经验。我也尝试过用顶级书签分割文件,但没有成功。文件另存为错误的书签名称。有人能提供解决方案吗

Public Sub PrintPDFPartial(strFileName As String, intBeginPage As Integer, 
intEndPage As Integer)

'This works but requires Adobe Acrobat Standard
Dim AcroApp As AcroApp
Dim AcroAVDoc As AcroAVDoc
Dim AcroPDDoc As AcroPDDoc
Set AcroApp = CreateObject("AcroExch.App")
Set AcroAVDoc = CreateObject("AcroExch.AVDoc")
Const POSTSCRIPT_LEVEL = 2
If AcroAVDoc.Open(strFileName, vbNull) <> True Then
    Exit Sub
End If
Set AcroAVDoc = AcroApp.GetActiveDoc
Set AcroPDDoc = AcroAVDoc.GetPDDoc
AcroAVDoc.printPages intBeginPage - 1, intEndPage - 1, POSTSCRIPT_LEVEL, 
True, False
AcroAVDoc.Close True
AcroApp.Exit
Set AcroDoc = Nothing
Set AcroApp = Nothing

End Sub


Sub Printpartial()

Dim strFileName As String
Dim intBeginPage As Integer, intEndPage As Integer, pPage As Integer
weld = Range("Weld").Column
lrow = Cells(Rows.Count, weld).End(xlUp).Row
For i = 5 To lrow

search = Cells(i, weld)
FileType = Range("FileType")
report = Range("SearchFor").Column
iName = Cells(i, report)
Filepath = Range("File_Path")
pPage = Range("N" & i)

strFileName = (Filepath & iName & "." & FileType)
intBeginPage = pPage

intEndPage = pPage

Call PrintPDFPartial(strFileName, pPage, pPage)
Next i
End Sub
Public Sub-PrintPDFPartial(strFileName作为字符串,intBeginPage作为整数,
intEndPage(作为整数)
“这是可行的,但需要Adobe Acrobat标准
将AcroApp设置为AcroApp
将AcroAVDoc的尺寸设置为AcroAVDoc
将AcroPDDoc变为AcroPDDoc
设置AcroApp=CreateObject(“AcroExch.App”)
设置AcroAVDoc=CreateObject(“AcroExch.AVDoc”)
常量POSTSCRIPT_级别=2
如果AcroAVDoc.Open(strFileName,vbNull)为True,则
出口接头
如果结束
设置AcroAVDoc=AcroApp.GetActiveDoc
设置AcroPDDoc=AcroAVDoc.GetPDDoc
AcroAVDoc.printPages intBeginPage-1,intEndPage-1,POSTSCRIPT_级别,
真假
AcroAVDoc.Close为真
应用程序退出
设置AcroDoc=Nothing
设置AcroApp=Nothing
端接头
子打印部分()
将strFileName设置为字符串
Dim intBeginPage为整数,intEndPage为整数,pPage为整数
焊缝=范围(“焊缝”)。列
lrow=单元格(行数,焊缝)。结束(xlUp)。行
对于i=5至lrow
搜索=单元(i,焊接)
文件类型=范围(“文件类型”)
报告=范围(“搜索”)。列
iName=单元(i,报告)
文件路径=范围(“文件路径”)
pPage=范围(“N”和“i”)
strFileName=(Filepath&iName&“&FileType)
intBeginPage=pPage
intEndPage=pPage
调用PrintPDFPartial(strFileName,pPage,pPage)
接下来我
端接头

请在您的问题中包含代码,谢谢。这与Javascript有什么关系?Ben,我没有任何代码要添加。我在寻求建议。没有一个VBA与我的问题直接相关。如果你愿意,我仍然可以添加。谷歌搜索结果中提到了js代码。我对此一无所知,“我用VBA写了一段代码”应该是什么意思?