pdf.pdf-images.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)
(load-module :xchart)
;; ensure XChart and PDF libs are available when loading this file
(xchart/check-required-libs)
(pdf/check-required-libs)
(defn chart []
(xchart/to-bytes-with-dpi
(xchart/xy-chart
{ "a" { :x [0.0 3.0 5.0 7.0 9.0]
:y [0.0 8.0 12.0 9.0 8.0] }
"b" { :x [0.0 2.0 4.0 6.0 9.0]
:y [2.0 9.0 7.0 3.0 7.0] }
"c" { :x [0.0 1.0 3.0 8.0 9.0]
:y [1.0 2.0 4.0 3.0 4.0] } }
{ :title "Area Chart"
:render-style :area
:legend { :position :inside-ne }
:x-axis { :title "X" :decimal-pattern "#0.#" }
:y-axis { :title "Y" :decimal-pattern "#0.#" }
:theme :xchart } )
:png
300))
; define the template
(def template
"""
Venice PDF Images
Example
""")
(def data { :title "Hello, world" } )
; evaluate the template, render, and save it
(-<> data
(kira/eval template ["${" "}$"] <>)
(pdf/render <> :resources { "/chart_1.png" (chart) })
(io/spit "image-example.pdf" <>))
)