diff --git a/quad/qtest/test-metadata-tester.pdf b/quad/qtest/test-metadata-tester.pdf new file mode 100644 index 00000000..a9edac78 Binary files /dev/null and b/quad/qtest/test-metadata-tester.pdf differ diff --git a/quad/qtest/test-metadata.rkt b/quad/qtest/test-metadata.rkt new file mode 100644 index 00000000..7ab97698 --- /dev/null +++ b/quad/qtest/test-metadata.rkt @@ -0,0 +1,6 @@ +#lang quadwriter + +#:pdf-title "My Life" +#:pdf-author "Roxy Butterick" +#:pdf-subject "pupography" +#:pdf-keywords "cute boxer dog" \ No newline at end of file diff --git a/quad/quadwriter/render.rkt b/quad/quadwriter/render.rkt index 2b1b595a..6eb9e750 100644 --- a/quad/quadwriter/render.rkt +++ b/quad/quadwriter/render.rkt @@ -194,17 +194,15 @@ (or (debug-column-gap) (quad-ref (car qs) :column-gap default-column-gap))) (define (setup-pdf-metadata! qs pdf) - (for ([str (match qs - [(cons q _) - (in-list (for/list ([k (in-list (list :pdf-title - :pdf-author - :pdf-subject - :pdf-keywords))]) - (quad-ref q k)))] - [_ (in-value #f)])] - [pdf-k (in-list '(Title Author Subject Keywords))]) - (hash-set! (pdf-info pdf) pdf-k (or str ""))) ; default val is empty string - (hash-set! (pdf-info pdf) 'Creator (format "Racket ~a [Quad library]" (version)))) + (define kvs + (apply append + (for/list ([k (in-list (list :pdf-title :pdf-author :pdf-subject :pdf-keywords))] + [pdf-k (in-list '(Title Author Subject Keywords))]) + (define str (or (match qs + [(cons q _) (quad-ref q k)] + [_ #false]) "")) ; default val is empty string + (list pdf-k str)))) + (apply hash-set*! (pdf-info pdf) 'Creator (format "Racket ~a [Quad library]" (version)) kvs)) (define (footnote-flow? q) (equal? (quad-ref q 'flow) "footnote"))