Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

PDF Erstellung und Bearbeitung über VBA

Begonnen von MiHa, November 18, 2016, 14:07:47

⏪ vorheriges - nächstes ⏩

MiHa

Hallo Forengemeinde,

ich bräuchte mal wieder eure Hilfe und zwar versuche ich derzeit einige Funktionen rund um PDF Erstellung und Bearbeitung in eins meiner Programme zu integrieren.

Ich nutze Access 2016, die Datenbank soll später von einem Server durch mehrere User abgefragt werden können.

Meine erste Funktion soll X-beliebige Daten die durch einen Dialog ausgewählt werden, in PDF umwandeln/ konvertieren. Hierzu bestand die Idee die entsprechenden Dateien per PDF-Druck erstellen zu lassen und in einen entsprechenden Ordner abzuspeichern.
Wenn ich jetzt z.B. durch:
Dim strDruckername As String
strDruckername = Chr(34) & "Adobe PDF" & Chr(34)
Call ShellExecute(0, "printto", Datenpfad, strDruckername, "", SW_HIDE)


Eine Datei ausgewählt habe dessen Pfad in der Variablen steht, wird diese Datei zwar geöffnet und der Drucker ,,Adobe PDF" ausgewählt, doch dann stoppt es an dieser Stelle auch. Ich müsste nun wissen, wie ich z.B. dann den Pfad der zieldatei angeben kann, zugleich den OK Befehl des sich geöffneten Druckerfenster bestätigen könnte. Als weiterer Punkt müsste die dafür geöffnete Datei wieder geschlossen werden, ohne dass man auswählen muss ob man diese speichern will oder nicht.

In einem zweien Schritt würde ich gerne verschiedene (oben erstellte) PDF-Dateien zusammenlegen.
Hierzu hatte ich eine Funktion von ,,Lebans" gefunden (ConvertReportToPDF), hier stehen viele Funktionen zur Verfügung, von denen ich im Endeffekt die ,,MergePDFDocuments" Funktion benötigen würde. Ich hatte nun auch versucht diese Funktion in meinem Programm einzupflegen, doch bekomme ich dabei durchgehend die Information, dass die Lib die StrStorage.dll-Datei nicht finden würde, wobei ich eigentlich nichts anders mache als die Beispieldatei.

Würde mich über Hilfe Freuen.

Gruß
Michael Hassels

markusxy

#1
Zitat von: MiHa am November 18, 2016, 14:07:47
Ich müsste nun wissen, wie ich z.B. dann den Pfad der zieldatei angeben kann, zugleich den OK Befehl des sich geöffneten Druckerfenster bestätigen könnte.

Das geht nicht. Die printto Methode hat ja keinen Parameter für einen Zielpfad.
Die Lösungen sind Treiber, die einen fixen Ausgabeordner ermöglichen. In der Regel haben die erzeugten Dateien dann einen fixen Namen oder bekommen den Namen der original Datei.
So z.B. die Druckertreiber von Pixelplanet, Adobe und viele mehr. Damit könnte das funktionieren.
Dann gibt es noch professionelle Lösungen wie Universal Document Converter und noch viele mehr. Da kannst du den ganzen Prozess sauber per Code steuern.

Für das zusammenfügen von Dateien gibt es Lösungen von Adobe, ab der Standard Version. Kostenlos geht z.B. mit Debenu quick Library. Der Vorteil - Debenu entwickelt professionell und unterstützt auch die aktuellsten Versionen von PDF - da würde ich eher zu so einer Lösung tendieren - außer dein Code muss nicht funktionieren.

LG Markus

PhilS

Zitat von: MiHa am November 18, 2016, 14:07:47
...., doch bekomme ich dabei durchgehend die Information, dass die Lib die StrStorage.dll-Datei nicht finden würde, wobei ich eigentlich nichts anders mache als die Beispieldatei.
Hast du denn die DLL im Pfad bzw. sie explizit geladen?
Allerdings stimme ich Markus zu, dass du vielleicht nach aktuelleren Bibliotheken schauen solltest.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

MiHa

Hallo zusammen,

danke erstmal für die Infos.

Das mit den fixen Ordnern wäre ja so kein Problem, da kann ich entsprechend Datein verschieben oder löschen notfalls
Ich werde mal schauen was sich mit den Adobe alles so werkeln lässt.

Die Funktion zum zusammenfügen habe ich gefunden, die ist hier in einem beitrag erklärt:
http://www.utteraccess.com/forum/index.php?showtopic=1984093&st=0&p=2221145&#entry2221145

Gruß
Michael

DF6GL

Hallo,

schau Dir mal den PDFCreator und oder FreePDF  an. Beide können entspr. ferngesteuert (eingestellt) werden und haben teilweise VBA-Beispiele.