PDFFromTemplate

Ukázka vytvoření PDF souboru ze šablony.

Popis

Z nastavených parametrů a proměnných vytvoří PDF soubor ze šablony
declare 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