Ich hab an anderer Stelle in diesem Forum schon nachgefragt, aber bin nicht wirklich schlauer geworden.
Aktueller Stand der Makroprogrammierung:
Ich habe ein Array befüllt mir Wertepaaren "Formularfeldbezeichnung -> Value".
Derzeit erzeuge ich mir mittels
Code: Alles auswählen
sFDF = "%FDF-1.2 " & Chr(13) & _
"" & Chr(13) & _
"1 0 obj" & Chr(13) & _
"<<" & Chr(13) & _
"/Version /1.3 " & Chr(13) & _
"/Encoding /utf8 " & Chr(13) & _
"/FDF " & Chr(13) & _
"<<" & Chr(13) & _
"/Fields [" & Chr(13)
i = 0
do while oFields(i, 0) <> ""
if oFields(i, 3) <> "" then
sFDF = sFDF & "<<" & chr(13) & "/V(" & oFields(i, 4) & ")" & chr(13)
sFDF = sFDF & "/T(" & oFields(i, 3) & ")" & chr(13) & ">>" & chr(13)
end if
i = i + 1
loop
i = 0
do while oFieldsProj(i, 0) <> ""
if oFieldsProj(i, 2) <> "" then
sFDF = sFDF & "<<" & chr(13) & "/V(" & oFieldsProj(i, 1) & ")" & chr(13)
sFDF = sFDF & "/T(" & oFieldsProj(i, 2) & ")" & chr(13) & ">>" & chr(13)
end if
i = i + 1
loop
sFDF = sFDF & _
">>] " & Chr(13) & _
">> " & Chr(13) & _
"/F (Angebotsschein.pdf)>>" & Chr(13) & _
">>" & Chr(13) & _
"endobj " & Chr(13) & _
"trailer " & Chr(13) & _
"<<" & Chr(13) & _
"/Root 1 0 R" & Chr(13) & _
">>" & Chr(13) & _
"%%EOF"
sAngebot = sPath & GetPathSeparator & "Angebote/Angebot-" & sAngebotsNr & "-" & sFirmenname & ".pdf"
sAngebotUrl = converttourl(sAngebot)
i = FreeFile()
Open sPath & "/tmp.fdf" For Output As i
Print #i, sFDF
Close #i
sConv = sPICONV & " -f utf-8 -t latin1 " & sPath & "/tmp.fdf -o " & sPath & "/tmp1.fdf"
Shell (sConv,1)
REM - Erstellen des Angebot-PDFs
sPdfTk = sPPDFTK & " " & sPath & "/Angebotsschein.pdf fill_form " & sPath & _
"/tmp1.fdf output '" & sPath & "/Angebote/Angebot-" & sAngebotsNr & "-" & sFirmenname & ".pdf' flatten"
Shell (sPdfTk,1)
Ich kann später im Makro bei der Erstellung des Mails auf das entsprechende Angebot zugreifen und mir so mit den anderen Informationen mein Mail zusammenbauen, welches ich dann per Thunderbird/Icedove versende.
ABER!!!
Diese Lösung funktioniert auf Linux, und mit mir am Rechner als Admin. Ich möchte das gerne im Büro an andere Kollegen auch weitergeben, welche verschiedene Windows-Versionen und auch Mac OSX 10.5.8 und höher im Einsatz haben. Es gibt keine einheitliche OS-Richtlinie.
Gibt es eine Lösung, die rein mit Libreoffice ein PDF-Formular befüllen kann, sodass ich mir die beiden Shell-Aufrufe sparen kann?
Das Problem dabei ist, das PDF-Formular ändert sich von Auftrag zu Auftrag, und es wird, wenn ich es in LO öffne nicht korrekt dargestellt. Die Formatierung leidet, es sind die Felder an anderen Stellen und auch sonst sind einige Teile des Formulares verschoben...
Ich habe zwei Bilder angehängt. Eines, wie der Angebotsschein mit pdftk ausgefültt ausschaut (und ausschauen sollte), und eines, wie er ausschaut, wenn das PDF-Formular mit LO geöffnet und abgespeichert wurde.
Ideen?
lg xundeenergie