pdf.pdf-fonts.venice Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of venice Show documentation
Show all versions of venice Show documentation
Venice, a sandboxed Lisp implemented in Java.
;;;; __ __ _
;;;; \ \ / /__ _ __ (_) ___ ___
;;;; \ \/ / _ \ '_ \| |/ __/ _ \
;;;; \ / __/ | | | | (_| __/
;;;; \/ \___|_| |_|_|\___\___|
;;;;
;;;;
;;;; 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)
;; ensure the fonts are available when loading this file
(->> ["OpenSans-Regular.ttf"
"OpenSans-Italic.ttf"
"JetBrainsMono-Regular.ttf"]
(docoll (fn [r]
(when-not (io/classpath-resource? r)
(throw (ex :VncException
"Font classpath resource '~{r}' not found!"))))))
(def text (str/lorem-ipsum :paragraphs 1))
; define the template
(def template
"""
Venice PDF Fonts
Example
Sans Serif
${= (kira/escape-xml text) }$
Serif
${= (kira/escape-xml text) }$
Open Sans
${= (kira/escape-xml text) }$
Open Sans Italic
${= (kira/escape-xml text) }$
JetBrains Mono
${= (kira/escape-xml text) }$
""")
; create a Lorem Ipsum text block
(def data { :text (str/lorem-ipsum :paragraphs 1) } )
; Evaluate the template, render, and save it.
(->> data
(kira/eval template ["${" "}$"])
(pdf/render)
(io/spit "fonts-example.pdf"))
)