Я написал код в VBA для печати указанных номеров страниц документа PDF. Я пытаюсь найти способ получить номер страницы и имя каждой закладки PDF, чтобы я мог вставить данные в Excel и распечатать. У меня есть несколько файлов PDF, в которых сам номер отчета является закладкой. Я не смог получить доступ к закладке через VBA. Однако я смог найти документы и вернуть номер страницы в Excel. Это занимает много времени, потому что все PDF-файлы сохраняются в виде изображения и должны быть преобразованы. Я очень хорошо разбираюсь в VBA, но у меня нет опыта работы со скриптом Java. Я также попытался разбить файлы по закладке Top Level, но безуспешно. Файлы сохраняются как неправильные имена закладок. Кто-нибудь может предложить решение?
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