Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1564to1568
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Bookmarks PDF

VBA Bookmarks PDF
05.07.2017 10:33:54
chris
Hallo zusammen. Kann mir jemand helfen?
Ich bin dabei PDF Dateien zu mergen. Dabei muss ich diverse Bookmarks setzen.
Alles schon erledigt (siehe Code). Allerdings scheitert es im weiteren Verlauf an den Ebenen der Bookmarks. Diese sollen kategorisch eingeteilt werden. Leider weiß ich nicht wie ich dies über den Code lösen soll. Ich habe auch online keine passende Lösung gefunden..
hier mein Code:

Sub book()
Dim Exch As Object
Dim AVDocu As Object
Dim AVPageView As Object
Dim PDDocu As Object
Dim PDPage As Object
Dim PDText As Object
Dim strArgument2 As String
Dim PDBookmark As Object
Dim numPages As Integer
Dim bFile As Boolean
Dim bShow As Boolean
Dim iPageNumber As Integer
Dim ii As Long, jj As Long, iii As Long
Set Exch = CreateObject("AcroExch.App")
Set AVDocu = CreateObject("AcroExch.AVDoc")
Set PDDocu = CreateObject("AcroExch.PDDoc")
strArgument2 = ("\\ERPA-SERVER\ERPA-Updates\ERPA-Standards\KatalogDE\Erpa_Katalog_DE.pdf")
AVDocu.Open strArgument2, strArgument2
Debug.Print bShow
bShow = Exch.Show()
Debug.Print bShow
Set PDDocu = AVDocu.GetPDDoc
numPages = PDDocu.GetNumPages()
Debug.Print numPages
Set AVPageView = AVDocu.GetAVPageView
Dim bookmarkstr(1000) As String
Dim JSO As Boolean
Dim jsoo As Object
Dim gPdDoc As Acrobat.CAcroPDDoc
Dim indexB As Integer
indexB = 0
Dim indexC As Integer
indexC = 0
For ii = 0 To 500
If ii = 0 Then GoTo hier
If Cells(ii, 4).Value = "standard" Or Cells(ii, 4).Value = "alias" Then
bookmarkstr(indexB) = Range("G" & indexC)
bookmarkstr(indexB + 1) = Range("G" & indexC) & "_2"
End If
hier:
indexB = indexB + 2
indexC = indexC + 1
Next ii
Dim strTempArray() As String
Dim j As Integer
Dim i As Integer
For i = 0 To UBound(bookmarkstr)
If bookmarkstr(i)  "" Then
ReDim Preserve strTempArray(j)
strTempArray(j) = bookmarkstr(i)
j = j + 1
End If
Next
For iii = 0 To numPages - 1
JSO = AVDocu.GetAVPageView.Goto(iii)
'Create BookMark Object
Set PDBookmark = CreateObject("AcroExch.PDBookmark", "")
'execute the menu item
Exch.MenuItemExecute ("NewBookmark")
'set bookmark title
JSO = PDBookmark.GetByTitle(PDDocu, "Unbenannt")
JSO = PDBookmark.SetTitle(strTempArray(iii))
JSO = PDDocu.Save(PDSaveFull, strArgument2)
Next iii
Exch.MenuItemExecute ("Save")
PDDocu.Close
AVDocu.Close (0)
Exch.Exit
Set Exch = Nothing
Set PDDocu = Nothing
Set AVDocu = Nothing
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Crosspost ohne Hinweis
05.07.2017 14:01:40
mmat
Hi,
also wenn ich das richtig kapiert habe, dann soll das anstelle einer flachen Gliederung durch Bookmarks eine hierarchische werden?
Das ist eigentlich kein VBA-Problem, hier gilt es rauszufinden, wie der korrekte Befehl für die Software lautet, mit der die PDF's erzeugt werden. Die Frage sollte der Produktsupport beantworten.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige