Hallo zusammen,
auch ich versuche mich an das Thema ZUGFeRD mit Zusammenhang mit dem AMYUNI Drucker Treiber. Ich habe AMYUNI PDF Creator, dort kann man die Ausgang PDF auf das Format PDF/A-3u einstellen.
Als Ergebnis bekommt man eine PDF Datei wo ein Platz für eine XML Datei reserviert ist.
Die XML Datei im ZUGFeRD Format kann ich separat erstellen. Mein Problem ist, wie ich die XML Datei mit der PDF Datei im XBase verheiraten kann. Hat da jemand Erfahrung und so etwas realisiert hat?
ZUGFeRD mit AMYUNI PDF Creator, wie schiebt man dem PDF eine XML unter?
Moderator: Moderatoren
-
- Rekursionen-Architekt
- Beiträge: 226
- Registriert: Mo, 15. Apr 2019 16:19
- Hat sich bedankt: 16 Mal
- Danksagung erhalten: 4 Mal
Re: ZUGFeRD mit AMYUNI PDF Creator, wie schiebt man dem PDF eine XML unter?
Hallo Eugen,
ich habe mich selbst erst vor kurzem mit diesem Thema beschäftigt.
In der Dokumentation von Amiuny steht eigentlich alles drin was du beachten musst.
https://www.amyuni.com/WebHelp/Amyuni_D ... upport.htm
In Xbase verwende ich folgende funktionen, um die Werte zu setzem
Anschließend lässt sich auch die Xml Datei einbilden. Hierfür verwende ich folgende funktion:
Du musst den Code nur etwas auf deine Bedürfnisse anpassen.
Hoffe das hilft dir weiter
ich habe mich selbst erst vor kurzem mit diesem Thema beschäftigt.
In der Dokumentation von Amiuny steht eigentlich alles drin was du beachten musst.
https://www.amyuni.com/WebHelp/Amyuni_D ... upport.htm
In Xbase verwende ich folgende funktionen, um die Werte zu setzem
Code: Alles auswählen
#DEFINE IO_NODUPLICATES 0x00000001
#DEFINE IO_DOWNSAMPLE 0x00000002
#DEFINE IO_CONVERTTOCMYK 0x00000004
#DEFINE IO_OUTPUTPDFA 0x00000008
#DEFINE IO_XMPMETADATA 0x00000010
#DEFINE IO_OUTPUTPDFA8 0x00000020
#DEFINE IO_NOPRECOMPRESSED 0x00000040
#DEFINE IO_OUTPUTPDFX1 0x00000080
#DEFINE IO_OUTPUTPDFX3 0x00000100
#DEFINE IO_COMPRESSJBIG2 0x00000100 // Allowed Only with PDF/A-1 and PDF/A-3
#DEFINE IO_SIMPOSTSCRIPT 0x80000000
#DEFINE FNO_NoPrompt 0x00000001
#DEFINE FNO_UseFileName 0x00000002
#DEFINE FNO_Concatenate 0x00000004
#DEFINE FNO_DisableCompression 0x00000008
#DEFINE FNO_EmbedFonts 0x00000010
#DEFINE FNO_BroadcastMessages 0x00000020
#DEFINE FNO_PrintWatermark 0x00000040
#DEFINE FNO_MultilingualSupport 0x00000080
#DEFINE FNO_EncryptDocument 0x00000100 // It cannot be used for PDF/A creation
#DEFINE FNO_EmbedStandardFonts 0x00200000
#DEFINE FNO_EmbedLicensedFonts 0x00400000
#DEFINE FNO_Jpeg2000Compression 0x01000000 // Allowed Only with PDF/A-3
#DEFINE FNO_EncryptDocument128 0x40000000 // It cannot be used for PDF/A creation
Code: Alles auswählen
DllCall(hDll, DLL_STDCALL, "EnablePrinter" , hDriver, @P_AMYUNI_LICENCE_NAME, @P_AMYUNI_ACTIVATION)
DllCall(hDll, DLL_STDCALL, "SetImageOptions", hDriver, BOr(IO_OUTPUTPDFA8,IO_XMPMETADATA))
DllCall(hDll, DLL_STDCALL, "SetFileNameOptions", hDriver, BOr(FNO_NoPrompt,FNO_EmbedFonts,FNO_MultilingualSupport,FNO_EmbedStandardFonts,FNO_EmbedLicensedFonts,FNO_Jpeg2000Compression))
DllCall(hDll, DLL_STDCALL, "SetPrinterParamInt", hDriver, "PDFALevel", BOr((256*Asc("B")),3))
DllCall(hDll, DLL_STDCALL, "SetDefaultConfigEx", hDriver)
Code: Alles auswählen
PROCEDURE AttachFileOnPDF(oAD1,cFilePDF,cEmpfaengerEmail)
LOCAL oFRech
LOCAL nHandle
LOCAL cFilename := "ZuGFeRD-invoice.xml"
LOCAL cFilePath := cLocalDataPath+"ZuGFeRD-invoice.xml"
LOCAL cDescription := "Invoice"
LOCAL cMimeType := "application/xml"
LOCAL nDocHandle := 0
DEFAULT cEmpfaengerEmail TO ""
oFRech := ADTOpen("f_rech.adt")
oFRech:IndexName := "f_rech3"
oFRech:SetFilter( 'renr == "'+oAD1:renr:asString+'"' )
oFRech:GoTop()
RechnungZuZugferd(oAD1,oFRech,cEmpfaengerEmail,cFilePath)
oFRech:Close()
nHandle := DllLoad(AM_DLL_FILE)
DllCall(nHandle,DLL_STDCALL,"SetLicenseKeyA",P_AMYUNI_LICENCE_NAME,P_AMYUNI_ACTIVATION)
DllCall(nHandle,DLL_STDCALL,"DocOpen",@nDocHandle,cFilePDF)
DllCall(nHandle,DLL_STDCALL,"DocAddFileAttachmentEx",nDocHandle,cFilename,cFilePath,cDescription,cMimeType,"Alternative")
DllCall(nHandle,DLL_STDCALL,"DocSave",nDocHandle,cFilePDF)
DllUnload( nHandle )
RETURN
Hoffe das hilft dir weiter
Gruß Dominik
Re: ZUGFeRD mit AMYUNI PDF Creator, wie schiebt man dem PDF eine XML unter?
Hallo Dominik,
vielen Dank für Dein Lösung Ansatz, ich werde es morgen ausprobieren.
Allerdings noch eine Frage, wie heißt die DLL (AM_DLL_FILE) die ich anbinden soll?
Gruß Eugen
vielen Dank für Dein Lösung Ansatz, ich werde es morgen ausprobieren.
Allerdings noch eine Frage, wie heißt die DLL (AM_DLL_FILE) die ich anbinden soll?
Gruß Eugen
-
- Rekursionen-Architekt
- Beiträge: 226
- Registriert: Mo, 15. Apr 2019 16:19
- Hat sich bedankt: 16 Mal
- Danksagung erhalten: 4 Mal
Re: ZUGFeRD mit AMYUNI PDF Creator, wie schiebt man dem PDF eine XML unter?
Entschuldige, das ist mir entgangen.
Ich habe eine weitere Include Datei, in der vieles enthalten ist.
Ich habe eine weitere Include Datei, in der vieles enthalten ist.
- Dateianhänge
-
- AmPdf.ch
- (2.6 KiB) 27-mal heruntergeladen
Gruß Dominik