Ich möchte nur die in der Datei pdfforge.dll angebote Funktion zum
Zusammenfügen von PDF-Dateien nutzen. Wenn der PDF-Creator nicht
installiert ist funtioniert jedoch nicht die Registrierung der Datei.
Welche Komponenten müssen installiert sein um die pfdforge.dll nutzen zu
können ?
Vielen Dank schon mal
Thomas
Hi,
Hallo Robin,
erst mal vielen Dank ! Also dass die beiden
dll-Dateien benötige habe ich auch schon rausbekommen. Ich hatte noch
nicht geschrieben, dass ich Sache unter VBA programmieren möchte. Also
müsste ich doch die Datei itextsharp.dll verwenden - ist das richtig ?
Wenn
ich es richtig verstanden habe ist die Datei itext.dll für die
java-Programmierung und die Datei itextsharp.dll für c-Programmierung.
Jetzt
meine Frage wie kann ich die Dateien registrieren ? Mit regsvr32.exe
kommt immer eine Fehlermeldung. da es eine .net-dlll ist muss ich wohl
regasm.exe verwenden.
Aber wie und mit welchen Parametern rufe ich
die Datei auf ? Woher weiss ich den richtigen Pfad usw. ? Kann mir da
noch jemand weiter helfen ?
Gruß Thomas !
Hallo Philip,
ich verwende ja schon den folgenden VBA-Code, um PDF-Dateien miteinander zu verbinden und es funktioniert ja auch.
Meine
Frage geht nunaber dahin wie ich die beiden benötigten Dateien
registrieren kann, falls der PDF-Creator nicht installiert ist !
Private Sub cmdMerge_Click()
Dim PDF As Object
Dim SourceFileNames()
Dim PDFF$, I&, Eing&
Set PDF = CreateObject(“pdfforge.pdf.pdf”)
ReDim Preserve SourceFileNames(I)
SourceFileNames(0) = ufMail.Tag
PDFanh:
PDFF$ = Browse(&H4200, “weitere PDF-Datei auswählen, die dem Gutachten angefügt werden soll:”, ActiveDocument.Path)
If PDFF$ <> “” Then
I = I + 1
ReDim Preserve SourceFileNames(I)
SourceFileNames(I) = PDFF$
Else
Exit Sub
End If
Eing& = MsgBox(“Noch eine weiteres PDF-Dokument anfügen ?”, vbQuestion + vbYesNo + vbDefaultButton2)
If Eing = vbYes Then GoTo PDFanh
If I = 0 Then Exit Sub
ufMail.Tag = Left(ufMail.Tag, (Len(ufMail.Tag) - 4)) & “kpl” & Right(ufMail.Tag, 4)
PDF.MergePDFFiles_2 (SourceFileNames), ufMail.Tag, False
AddStatus "Die ausgewählten PDF-Dateien wurden angehängt und in der Datei " & ufMail.Tag & " gespeichert"
cmdMerge.Enabled = False
End Sub
Hallo,
aus VBA heraus geht das leider nicht so einfach, da VBA nichts mit .Net-Klassen anfangen kann. Man müsste sich einen COM-Wrapper für die pdfforge.dll bauen (in einer .Net-Sprache), der die gewünschten Funktionen per COM/ActiveX zur Verfügung stellt. Das ist auch nicht soo schwierig, wenn man weiß, wie es geht, aber ist halt nicht von uns implementiert.
Vermutlich ist es das einfachste, eine kleine .Net anwendung zu schreiben, die mehrere PDF-Dateien zusammenfügen kann und dafür die pdfforge.dll verwendet und die dann aus dem script aufzurufen.
Viele Grüße,
Philip
Ah, da war ich selbst kurz auf dme Holzweg und habe die COM-Klassen im Projekt vergessen und übersehen.
Der Aufruf ist hier auf meinem Rechner:
regasm “C:\Program Files (x86)\PDFCreator\PlugIns\pdfforge\pdfforge.dll” /codebase
Mit angepasstem Pfad sollte es dann gehen.
Viele Grüße,
Philip
Hallo Philip,
regasm wird doch aber nicht automatisch gefunden, sondern ich muss doch den Pfad dahin mit angeben.
Auf meinem Rechner ist das der Pfad:
c:\windows\Microsoft.net\Framework\v2.0.50727
Nun scheint doch der Pfad von der Version abzuhängen und ich kann doch nicht automatisch davon ausgehen, dass er immer so heißt. Kann ich den Pfad irgendwo in der Registry auslesen? Also mein Installationsprogramm muss doch automatisch die Registrierung übernehmen !
Gruß und vielen Dank
Thomas !