FDF und PDF zusammenführen

31/03/2011 - 09:11 von Rutt | Report spam
Hallo NG'ler,

ich habe folgende Aufgabenstellung und bin mir nicht sicher ob dies
rein mit Access bzw. VBA zu lösen ist.

Es liegt mir ein FDF (Formulardaten) und das zugehörige PDF (Formular)
vor. Durch Zusammenführung beider soll eine PDF-Datei (inkl.
integrierter Formulardaten) erzeugt werden.

Rahmenbedingung:
- keine externen Tools (egal ob Freeware oder kostenpflichtig)
- keine zusàtzlichen (PDF-)Druckertreiber
- keine unzuverlàssige Sendkey's-Befehle

Ich habe als Ansatz schon mal mit DDE experimentiert, z.B. so:

...
'Name FDF-Datei
sPDF = Chr(34) & PDFDoc & Chr(34)

'Acrobat-Exe finden:
sExe = String(255, 0)
FindExecutable sPDF, vbNullString, sExe
sExe = Left(sExe, InStr(1, sExe, vbNullChar) - 1)
If InStr(1, sExe, "acrobat") = 0 And InStr(1, sExe, "acrord32") 0 Then
MsgBox "Kein Acrobat oder -Reader gefunden", vbCritical
Exit Sub
End If
sExe = Chr(34) & sExe & Chr(34)
Shell sExe, vbNormalFocus

'Name Ausgabedatei
xPDF = Chr(34) & Left(PDFDoc, Len(PDFDoc) - 4) & "neu.pdf" &
Chr(34)

iChan = DDEInitiate("acroview", "control") 'DDE initialisieren
DDEExecute iChan, "[DocOpen(" & sPDF & ")]" 'PDF/FDF öffnen
DDEExecute iChan, "[DocSave(" & xPDF & ")]" 'PDF speichern
...

Die letzte Zeile (DDEExecute iChan, "[DocSave) verursacht einen
allgemeinen DDE-Fehler.
Ich denke mal, dass das an dem Kommando "DocSave" liegt der so nicht
unterstützt wird. Einige Befehle setzten wohl eine Acrobat-
Installation voraus. Habe aber nur den Reader.

Übrigens, manuell wàre das kein Problem:
Doppelklick auf das FDF, das zugehörige PDF inkl. Formulardaten wird
geöffnet, dann gehe ich auf "Speicher unter", wàhle den neuen Namen
aus und fertig!

Für den Benutzer soll das alles unsichtbar von statten gehen (via
Fernsteuerung mit VBA), also FDF auswàhlen, klick auf eine
Schaltflàche, fertig ist die zusammengeführte PDF-Datei.

Für Tipps wàre ich sehr dankbar.

Viele Grüße
Holger
 

Lesen sie die antworten

#1 Ahmed Martens
31/03/2011 - 19:51 | Warnen spam
Hallo Holger,

Am Thu, 31 Mar 2011 00:11:38 -0700 (PDT) schrieb Rutt:


Übrigens, manuell wàre das kein Problem:
Doppelklick auf das FDF, das zugehörige PDF inkl. Formulardaten wird
geöffnet, dann gehe ich auf "Speicher unter", wàhle den neuen Namen
aus und fertig!



wenn es mit einem Doppelklick funktioniert, dann öffne doch einmal die
Datei mit ShellExecute:

In einem Modulkopf:

'ShellExecute
'

Private Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation _
As String, ByVal lpFile As String, ByVal lpParameters _
As String, ByVal lpDirectory As String, ByVal nShowCmd _
As Long) As Long

Als Prozedur:

' Mit dieser Funktion kann irgendein Shell-Prozess gestartet werden,
sofern
' der übergebene Name mit einer Anwendung verknüpft ist. Er wirkt wie
ein
' Hyperlink-Pfad. Der übergebene Pfadname ist der Name des Pfades, der
beim
' Start der Applikation als Start-Pfad verwendet werden soll.

' Beispiel: Nix = StartDoc("C:\Eigene Dateien\Test.doc", "C:\")
' Beispiel: Nix = StartDoc("C:\Eigene Dateien\Test.bmp", "C:\")
' Beispiel: Nix = StartDoc("http://www.microsoft.com", "C:\")
' Beispiel: Nix = StartDoc("mailto:", "C:\")
' Beispiel: Nix = StartDoc("mailto: ?subject=ObdAdr ",
"C:\")

Function StartDoc(ByVal docName As String, Optional ByVal PathName As
String = "C:\")

Const SW_SHOWNORMAL = 1

On Error GoTo StartDoc_Error

StartDoc = ShellExecute(Application.hWndAccessApp, "Open", docName,
"", PathName, SW_SHOWNORMAL)
Exit Function

StartDoc_Error:
MsgBox "Error: " & Err & " " & Error
Exit Function
End Function

Und jetzt einfach wie im Beispiel erlàutert.

Gruß Ahmed

Antworten bitte nur in der Newsgroup

Ähnliche fragen