Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Wie via VBA-Script mehrere PDF-Dateien aus einer PDF-Datei erstellen ?

Begonnen von Tom75, Oktober 29, 2024, 12:43:27

⏪ vorheriges - nächstes ⏩

Tom75

Hallo zusammen,

ich möchte via VBA Schleifen-Script aus einer zu öffnenden PDF-Datei einzelne PDF-Datei erstellen.
Ausgangslage ist, dass die jeweils zu druckenden Seiten und die Dateinamen immer fix sind und im Script selbst stehen sollen.


Ort & Name der zu druckenden PDF-Datei: C:\AVS32\access\Tiergarten.pdf

Seiten                    Dateiname
-----------------        ---------------------
9,30,31                   BAB Hund.pdf
10,32,33,11,34,35    BAB Katze.pdf
12,36,37                 BAB Maus.pdf


Speicher-Pfad für PDF's:  C:\AVS32\access


Wie kann man das per VBA machen ?
Als PDF-Drucker nutze ich i.Ü. PDF24.

Danke für Deine Antwort im Voraus.
Tom

Knobbi38

Hallo Tom,

VBA unterstützt das nicht direkt, aber mit Commandline-Tools wie PDFtk oder CPdf sollte das machbar sein.

Gruß
Knobbi38

Tom75

Unser Admin ist von dem Command-Line-Tool CPdf nicht sonderlich begeistert und gestattet mir auch nicht einen weiteren PDF-Drucker zu installieren.

Was wäre denn der indirekte Weg das in Access mit VBA vielleicht doch gelöst zu bekommen ?

Debus

Hallo Tom,

habt Ihr denn auf den Rechner den Adobe Acrobat (nicht nur den Reader)?  Weil dann könnte man die Bibliothek von Adobe benutzen


Holger

Knobbi38

Warum möchtest du einen neuen PDF-Drucker installieren? Wenn cpdf deinem Admin nicht gefällt, bleibt dir immer noch das Tool PDFtk. Ansonsten kann dir dein Admin ja für das Produkt Acrobat von Adobe ein Abo schenken, damit du deine Aufgabe erfüllen kannst. "Wasch mich, aber mach mich nicht nass" gibt es nicht!

Tools ohne VBA Anbindung zum Splitten von PDF-Dateien gibt es viele, sowohl ONLINE als auch OFFLINE. Die OFFLINE Varianten müssen aber auch installiert werden, z.B. PDFSam Basic. Automatisierung ist dabei aber nicht möglich.


Tom75

Leider steht mir neben PDF24 nur noch der Adobe Reader und Microsoft Print to Pdf zur Verfügung.
Das mit PDFtk hatte ich schon vor einiger Zeit mal probiert, bin aber leider aus nicht mehr bekannten Hindernissen gescheitert.

Na ich muss wohl noch mal mit unserem Admin sprechen, ob da vielleicht doch was mit cpdf wird.
Liesse sich dann damit eine Art Batch-Datei erstellen, die dann nach dem folgenden Schema funktioniert ?

cpdf Tiergarten.pdf 9,30,31 -o Hund.pdf
cpdf Tiergarten.pdf 12,36,37 -o Maus.pdf
.
.
.

Debus

Frag mal ansonsten den Admin ob eventuell eine Bibliothek wie PDFsharp oder iTextSharp damit geht das auch. 


Holger

markusxy

Zitat von: Tom75 am Oktober 29, 2024, 21:37:22Na ich muss wohl noch mal mit unserem Admin sprechen, ob da vielleicht doch was mit cpdf wird.

Warum glaubst du, dass es damit besser wird?
PDF24 bietet eine genaue Dokumentation und ein Forum - alles kostenlos.
Das mindeste was du investieren musst ist deine Zeit.
Professionelle PDF Software mit entsprechenden COM Schnittstellen geht gleich mal in > 1000 Euro pro Entwicklerlizenz und auch damit geht nichts ohne Zeit Investition.  ;)



Debus

Hey soweit ich weiß kannst du aber pdf24 nicht direkt über Vba ansprechen nur über z.B. ShellExecute.

Holger

markusxy

Zitat von: Debus am Oktober 29, 2024, 22:17:04pdf24 nicht direkt über Vba ansprechen

Commandline Befehle gehen per VBA gehen z.B. via Shell Funktion.
Da muss man weder API noch sonstige Windows COM Klassen bemühen, die aber deutlich mehr können.

Knobbi38

@markusxy

Dann kann man auch gleich PDFtk verwenden.

Hallo Tom,

z.B. so

pdftk my.pdf cat 1-5 13-21 24-end output my_edited.pdf
Siehe auch:
https://charlieharvey.org.uk/page/howto_breaking_pdfs_up_into_mutiple_pages


Tom75

Mit der folgenden Zeile öffnet sich zumindest der PDF24 Assistant, doch soll der eigentlich gar nicht erscheinen, aber dafür noch nur festgelegte Seiten gedruckt/gespeichert werden.
Wie kann man das noch ergänzen ?

Shell "C:\Program Files\PDF24\pdf24-DocTool.exe " & "C:\Exporte\Tiergarten.pdf" & " -outputFile " & "C:\Exporte\test2.pdf"

Tom75

Also ich hab mir jetzt mal das Manual angesehen (https://creator.pdf24.org/manual/11/#111-command-line), jedoch nichts passendes gefunden.
Kann von Euch Profis bitte noch mal jemand helfen ?

PhilS

Zitat von: Tom75 am Oktober 30, 2024, 10:35:33Also ich hab mir jetzt mal das Manual angesehen (https://creator.pdf24.org/manual/11/#111-command-line), jedoch nichts passendes gefunden.

Schau dir mal das Argument -join an. - Etwa zu Beginn des letzten Drittels der Seite zu finden:
Zitatpdf24-DocTool.exe -join [-sort] [-bookmarks bookmarksCmd] [-profile profileId] [-outputDir dir] [-outputFile file] file1 [file2] ...

Joins input files to one output file.
-join
Tells the DocTool to join the input files.
...


Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Tom75

Wenn ich das als Fachlaie jetzt nicht falsch verstehe, werden damit alle Seiten eines Dokuments in jeweils 1 Dokument mit 1 Seite erstellt ... oder ?

Was ich möchte ist aber, dass aus 1 PDF-Dokument die Seiten 2,4,9,36 in ein eigenes PDF-Dokument gedruckt werden.