PDFFromTemplate
Ukázka vytvoření PDF souboru ze šablony.
Popis
Z nastavených parametrů a proměnných vytvoří PDF soubor ze šablonydeclare function FileExistsOnHdd dll "ActualDocument" (string): boolean declare function GetLastErrorMessage dll "ActualDocument" (): string declare function LoadBase64FromFile dll "ActualDocument" (string): string declare function Now dll "ActualDocument" (): date declare function PDFCreateGenerator dll "PDFGen" (): integer declare function PDFGetLastErrorCode dll "PDFGen": integer declare function PDFGetLastErrorMessage dll "PDFGen": string declare function PDFGetPropertyString dll "PDFGen" (integer, string): string declare function PDFSaveToBase64 dll "PDFGen" (integer): string declare function SaveBase64ToFile dll "ActualDocument" (string, string): integer declare procedure ExportFromTemplatesExt dll "ActualDocument" (string, string, var integer, pointer) declare procedure FileDelete dll "ActualDocument" (string) declare procedure GetEnter dll "ActualDocument" (string) declare procedure GetTemp dll "ActualDocument" (string) declare procedure MTBShellExecute dll "ActualDocument" (string) declare procedure PDFClear dll "PDFGen" (integer) declare procedure PDFFree dll "PDFGen" (integer) declare procedure PDFLoadReportFromBase64 dll "PDFGen" (integer, string) declare procedure PDFPreview dll "PDFGen" (integer) declare procedure PDFSetPropertyBoolean dll "PDFGen" (integer, string, boolean) declare procedure PDFSetPropertyString dll "PDFGen" (integer, string, string) declare procedure PDFSetValueBoolean dll "PDFGen" (integer, string, boolean) declare procedure PDFSetValueCurrency dll "PDFGen" (integer, string, currency) declare procedure PDFSetValueDate dll "PDFGen" (integer, string, date) declare procedure PDFSetValueInteger dll "PDFGen" (integer, string, integer) declare procedure PDFSetValueString dll "PDFGen" (integer, string, string) script PDFFromTemplate (): Boolean var s: string GeneratorPDF: integer Enter: string Temp: string FileName: string sPDFBase64: string sTemplateBase64: string BasicText: string HeaderText: string FooterText: string TemplateFileName: string RC: integer begin GetEnter(Enter) GetTemp(Temp) FileName := Temp + "\PDFGen_Demo.pdf" TemplateFileName := Temp + "\PDFTemplate.fr3" ExportFromTemplatesExt("Attachments\Žádanka o servis\ZadankaServis.fr3", TemplateFileName, RC, actualdocument) sTemplateBase64 := LoadBase64FromFile(TemplateFileName) FileDelete(TemplateFileName) HeaderText := "Hlavička základního PDF" FooterText := "Patíčka základního PDF" BasicText := "Beruška" + Enter + Enter BasicText += "Beruško, půjč mi jednu tečku," + Enter BasicText += "třeba tu, co máš na zadečku." + Enter BasicText += "Musím ji napsat za větou," + Enter BasicText += "ať se mi slova nepletou." + Enter GeneratorPDF := PDFCreateGenerator() if GeneratorPDF = 0 then write("Nepodařilo se vytvořit objekt pro generování PDF (" + PDFGetLastErrorMessage() + " - " + PDFGetLastErrorCode()) return end PDFSetPropertyString(GeneratorPDF, "title", "PDFGen_Demo") PDFSetPropertyString(GeneratorPDF, "author", "Testovací skript") PDFSetPropertyString(GeneratorPDF, "subject", "Demo použití PDFGen") PDFSetPropertyString(GeneratorPDF, "creator", "enTeam") PDFSetPropertyString(GeneratorPDF, "keywords", "PDFGen, Demo") PDFSetValueBoolean(GeneratorPDF, "DoProvozu", false) PDFSetValueCurrency(GeneratorPDF, "Schvalovatel", 158.48) PDFSetValueString(GeneratorPDF, "PocetKm", 125469) PDFSetValueString(GeneratorPDF, "ZadankaCislo", "Žádanka 01") PDFSetValueString(GeneratorPDF, "Nejdrive", "za týden") PDFSetValueString(GeneratorPDF, "Lokace", "Za horou 15") PDFSetValueDate(GeneratorPDF, "Nejpozdeji", Now()) PDFSetValueString(GeneratorPDF, "ZavadyNaVozidle", BasicText) // nahrání šablony reportu PDFLoadReportFromBase64(GeneratorPDF, sTemplateBase64) // možnost získat seznam proměnných uvedených na šabloně včetně typu a formátování v CSV s := PDFGetPropertyString(GeneratorPDF, "ReportVariablesAsCSV") write(s) // přepínač pro možnost zobrazení všech proměných na použité šabloně PDFSetPropertyBoolean(GeneratorPDF, "ShowVariablesName", true) // možnost zobrázení náhledu reportu bez ukládání do BASE64 PDFPreview(GeneratorPDF) // uložení reportu do PDF v BASE64 sPDFBase64 := PDFSaveToBase64(GeneratorPDF) PDFFree(GeneratorPDF) if SaveBase64ToFile(FileName, sPDFBase64) = 1 then if FileExistsOnHdd(FileName) then MTBShellExecute(FileName) end end end