Damit lande ich im CGI_CreatePDFCallback(success, Result.s)
In Result.s sind dann das PDF als binäre Daten enthalten.
Frage: wie kann ich die Binärdaten in eine Datei speichern?
Wenn ich einfach WriteString() nehme, sind die Daten verändert und das PDF defekt.
Das gleiche Problem bei dem Umweg über PokeS() und WriteData():
Code: Alles auswählen
Procedure CGI_CreatePDFCallback(success, Result.s)
Protected *mem
; Überprüfen, ob der Callback erfolgreich war
If success
; Öffne die Datei zum Schreiben (binär)
If CreateFile(0, "myDocument.pdf", #PB_Ascii )
; Schreibe die Daten aus Result in die Datei
; WriteString(0, Result)
*mem = AllocateMemory(Len(Result))
PokeS(*mem, 0, Result, Len(Result), #PB_String_NoZero | #PB_Ascii)
WriteData(0, *mem, 0, Len(Result))
; Exportiere die Datei als PDF
ExportFile(0, "application/pdf", #PB_LocalFile)
; Schließe die Datei
CloseFile(0)
Else
Debug "Fehler: Datei konnte nicht erstellt werden."
EndIf
Else
Debug "Fehler: Callback nicht erfolgreich."
EndIf
EndProcedure