diff --git a/src/clj_htmltopdf/options.clj b/src/clj_htmltopdf/options.clj index da09e80..65f6805 100644 --- a/src/clj_htmltopdf/options.clj +++ b/src/clj_htmltopdf/options.clj @@ -92,18 +92,29 @@ (if-not (string/blank? s) (str \" (string/replace s "\"" "\\\"") \"))) +(defn parse-margin-box-paging-content + [paging-content] + (->> paging-content + (map + #(case % + :page (str "counter(page)") + :pages (str "counter(pages)") + (str (sanitize-margin-box-text %)))) + (string/join " "))) + (defn ->page-margin-boxes-declaration-css [{:keys [margin-box] :as page-options}] (mapv - (fn [[box-name {:keys [text element content] :as box-properties}]] + (fn [[box-name {:keys [text element content paging] :as box-properties}]] [(str "@" (name box-name)) (merge {:content (cond content content text (sanitize-margin-box-text text) - element (str "element(" (name box-name) ")"))} - (dissoc box-properties :text :element :content))]) + element (str "element(" (name box-name) ")") + paging (parse-margin-box-paging-content (if (sequential? paging) paging [paging])))} + (dissoc box-properties :text :element :content :paging))]) margin-box)) (defn ->page-margin-boxes-running-element-css