All Downloads are FREE. Search and download functionalities are using the official Maven repository.

pdf.pdf-tables.venice Maven / Gradle / Ivy

;;;;   __    __         _
;;;;   \ \  / /__ _ __ (_) ___ ___
;;;;    \ \/ / _ \ '_ \| |/ __/ _ \
;;;;     \  /  __/ | | | | (_|  __/
;;;;      \/ \___|_| |_|_|\___\___|
;;;;
;;;;
;;;; Copyright 2017-2024 Venice
;;;;
;;;; Licensed under the Apache License, Version 2.0 (the "License");
;;;; you may not use this file except in compliance with the License.
;;;; You may obtain a copy of the License at
;;;;
;;;;     http://www.apache.org/licenses/LICENSE-2.0
;;;;
;;;; Unless required by applicable law or agreed to in writing, software
;;;; distributed under the License is distributed on an "AS IS" BASIS,
;;;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;;;; See the License for the specific language governing permissions and
;;;; limitations under the License.

(do
  (ns test)

  (load-module :kira)

  ;; ensure PDF libs are available when loading this file
  (pdf/check-required-libs)



  (defn format-birth-date [s] (if (string? s) s (time/format s "yyyy-MM-dd")))

  ; define the template
  (def template
     """
     
     
       
         
       

       
         
Venice PDF Tables
Example
${ (doseq [[last first city gender age birth] persons] }$ ${ ) }$
${= (kira/escape-xml last) }$ ${= (kira/escape-xml first) }$ ${= (kira/escape-xml city) }$ ${= (kira/escape-xml gender) }$ ${= (kira/escape-xml age) }$ ${= (kira/escape-xml birth test/format-birth-date) }$
${ (doseq [[last first city gender age birth] persons] }$ ${ ) }$
${= (kira/escape-xml last) }$ ${= (kira/escape-xml first) }$ ${= (kira/escape-xml city) }$ ${= (kira/escape-xml gender) }$ ${= (kira/escape-xml age) }$ ${= (kira/escape-xml birth test/format-birth-date) }$
${ (doseq [[last first city gender age birth] persons] }$ ${ ) }$
${= (kira/escape-xml last) }$ ${= (kira/escape-xml first) }$ ${= (kira/escape-xml city) }$ ${= (kira/escape-xml gender) }$ ${= (kira/escape-xml age) }$ ${= (kira/escape-xml birth test/format-birth-date) }$
""") (def data { :persons [ [ "Last Name" "First Name" "City" "Gender" "Age" "Birthdate" ] [ "Meier" "Peter" "Bern" "m" 42 (time/local-date 1977 10 1) ] [ "Schmid" "Hans" "Luzern" "m" 56 (time/local-date 1963 8 12) ] [ "Winter" "Maria" "Aarau" "f" 23 (time/local-date 1996 4 8) ] [ "Halter" "Carla" "Zürich" "f" 9 (time/local-date 2010 9 28) ] ] } ) ; evaluate the template, render, and save it (->> data (kira/eval template ["${" "}$"]) (pdf/render) (io/spit "tables-example.pdf")) )




© 2015 - 2024 Weber Informatics LLC | Privacy Policy