Öffnen und Zusammenführen mehrerer PDF-Dateien mit VBA
Ich versuche zu öffnen, drei pdf-Dateien, um diese zusammenzuführen. Wir erstellen eine Reihe von Dateien, die auf einer monatlichen basis, die sind alle gekennzeichnet durch "ticker".
Habe ich drei Quelldateien:
RootDoc = Root-Datei, produziert monatlich variable mit dem Namen: "[variable ticker] + [static RootDoc anfügen].pdf"
DefDoc = Statische Datei, variable filename, "[variable ticker] + [static DefDoc anfügen].pdf"
NotesDoc = Eine Datei, die sich nicht ändern, müssen einbezogen werden in alle docs.
Ich bin stecken, wie merge entsprechend unter den folgenden Bedingungen:
1) Die Anzahl der ticker-markierten Dateien in die Ordner, die jeden Monat variieren.
2) Die RootDoc und DefDoc von den gleichen ticker muss gekoppelt werden, zusammen, als Sie enthalten, ticker-spezifische Informationen. Der Ticker mit den beiden Dateien, aber unterscheiden sich in Zeichen-Länge von einem Satz von Dateien für den nächsten.
3) ich habe ein footer-format gespeichert in von Adobe, der angewendet werden muss, um alle docs. (dies ist nicht notwendig, wäre aber schön zu haben, ich kann das außerhalb von VBA wenn nötig)
Hier ist, was ich habe, so weit, mit Notationen auskommentiert Klarheit:
With Application
.DisplayAlerts = False
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
Dim Filename, Pathname, PRODname, Defname As String
Dim RootDoc, NotesDoc, DefDoc As AcroPDDoc
Dim stp1, stp2, stp3, mergefile As Variant
Pathname = "H:\apps\xp\Desktop\PROD CHECK\Expanded LT"
'PRODname = "*[static RootDoc append].pdf"
Filename = Dir(Pathname & "\" & PRODname)
'Defname = "*[static DefDoc append].pdf"
Set RootDoc = CreateObject("AcroExch.PDDoc")
Set NotesDoc = CreateObject("AcroExch.PDDoc")
Set DefDoc = CreateObject("AcroExch.PDDoc")
'stp1 = NotesDoc.Open("[unchanging file name and location]")
Do While Filename <> ""
'stp2 = RootDoc.Open(Pathname & "\" & Filename)
'stp3 = DefDoc.Open("[location]" & "\" & Defname)
'mergefile = RootDoc.InsertPages([I want to insert all of DefDoc into RootDoc after page 0])
'mergefile = RootDoc.InsertPages([I want to insert all of NotesDoc after the last page of RootDoc])
DefDoc.Close SaveChanges:=False
'RootDoc = [Apply Saved Footer]
RootDoc.Close SaveChanges:=True
Filename = Dir()
Loop
With Application
.DisplayAlerts = True
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
InformationsquelleAutor Corey | 2015-04-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist diese Frage über die Suche nach pdf-Dateien Zusammenführen mit Ihren Dateinamen oder über das Zusammenführen von PDF-Dateien mithilfe von Acrobat-API über VBA?
In Fall müssen Sie die besten zu finden workflow-dann nehme ich an, sollten Sie alle Dateien im Ordner und finden Sie den finden, der "ticker" mit dem Namen mithilfe von regulären Ausdrücken (siehe dieses tolle Antwort, reguläre Ausdrücke in VBA und dieses tutorial auf passende Dateinamen verwenden von regulären Ausdrücken in VBA).
Den Fall, Sie sind auf der Suche für einen richtigen Weg, um die Verwendung von Acrobat API zum Zusammenführen von Seiten aus einem pdf-Dokumenten in ein anderes, dann sollten Sie prüfen, die online-Dokumentation für Acrobat API (siehe Javascript /Javascript für Acrobat... /Javascript-API/Doc /InsertPages Abschnitt) und diese Beispiel VB-code.
Der Grund, warum ich ' m denken, in VBA ist, dass es andere scripts, die ich habe, laufen auf der Quell-excel-Dokumente in pdf konvertieren.
Es ist nicht ganz klar für mich, aber wenn Sie scheint, sollten Sie zuerst 1) finden Sie alle PDF-Dateien in den angegebenen Ordner (wie in diesem mrexcel.com/forum/excel-questions/... ) und dann 2) - Prozess jede Datei im Ordner und verschmelzen mit 2 anderen?
Ich bin in der Lage, erstellen Sie eine Liste aller Dateinamen und Verzeichnisse verwendet werden, die in einem Satz von 3 Spalten. Ich denke mit einer For-Each-Schleife für den Bereich der Zeilen und dann die Spalte offsets öffnen Sie jede Datei. Ich bin immer noch unklar, wie Sie word merge-Vorgang.
InformationsquelleAutor Eugene