diff --git a/src/clj_htmltopdf/options.clj b/src/clj_htmltopdf/options.clj index ce598ff..014033a 100644 --- a/src/clj_htmltopdf/options.clj +++ b/src/clj_htmltopdf/options.clj @@ -24,6 +24,12 @@ (.attr element "rel" "stylesheet") (.attr element "href" (str href)))) +(defn append-meta-tag! + ^Element [^Element parent name content] + (let [element (.appendElement parent "meta")] + (.attr element "name" (str name)) + (.attr element "content" (str content)))) + (def default-options {:logging? false :base-uri "" @@ -126,10 +132,19 @@ (sequential? additional-styles) (append-stylesheet-link-tags! parent additional-styles) (string? additional-styles) (append-stylesheet-link-tags! parent [additional-styles])))) +(defn append-doc-meta-tags! + [^Element parent options] + (let [{:keys [author keywords subject title]} (:doc options)] + (if author (append-meta-tag! parent "author" author)) + (if keywords (append-meta-tag! parent "keywords" keywords)) + (if subject (append-meta-tag! parent "subject" subject)) + (if title (append-meta-tag! parent "title" title)))) + (defn inject-options-into-html! [^Document doc options] (let [head-tag (-> doc (.select "head") (.first)) styles (:styles options)] + (if (:doc options) (append-doc-meta-tags! head-tag options)) (if (:page options) (append-style-tag! head-tag (page-options->css (:page options)))) (cond (sequential? styles) (append-stylesheet-link-tags! head-tag styles)