///|
let pdf_metadata_xmp_template : String =
#|
#|
#|
#|
#|
#|
#| CREATEDATE
#| MODDATE
#| PRODUCER
#| CREATOR
#| TITLE
#| SUBJECT
#| AUTHOR
#| KEYWORDS
#| TRAPPED
#|
#|
#|
#| CREATEDATE
#| CREATOR
#| MODDATE
#| METADATADATE
#|
#|
#|
#|
#|
#| TITLE
#|
#|
#|
#|
#|
#|
#|
#|
#|
///|
fn pdf_metadata_replace_all(
text : String,
old : String,
new : String,
) -> String {
let mut output = text
if old == "" {
output
} else {
while output.contains(old) {
output = output.replace(old~, new~)
}
output
}
}
///|
fn PdfDocument::pdf_metadata_template_replacements(
self : PdfDocument,
) -> Array[(String, String)] raise @core.PdfError {
let info = fn(name : String) -> String {
self.info_utf8(pdf_metadata_name(name))
}
let creation_date = match info("/CreationDate") {
"" => pdf_metadata_expand_date("now")
value => value
}
let mod_date = match info("/ModDate") {
"" => pdf_metadata_expand_date("now")
value => value
}
[
("CREATEDATE", pdf_metadata_xmp_date(creation_date)),
("MODDATE", pdf_metadata_xmp_date(mod_date)),
("PRODUCER", info("/Producer")),
("CREATOR", info("/Creator")),
("TITLE", info("/Title")),
("SUBJECT", info("/Subject")),
("AUTHOR", info("/Author")),
("KEYWORDS", info("/Keywords")),
("TRAPPED", info("/Trapped")),
("METADATADATE", pdf_metadata_xmp_date(pdf_metadata_expand_date("now"))),
]
}