///|
let pdf_metadata_xmp_report_fields : Array[(String, String, String)] = [
("XMP pdf:Keywords", @metadata.pdf_metadata_adobe_namespace, "Keywords"),
("XMP pdf:Producer", @metadata.pdf_metadata_adobe_namespace, "Producer"),
("XMP pdf:Trapped", @metadata.pdf_metadata_adobe_namespace, "Trapped"),
("XMP pdf:Title", @metadata.pdf_metadata_adobe_namespace, "Title"),
("XMP pdf:Creator", @metadata.pdf_metadata_adobe_namespace, "Creator"),
("XMP pdf:Subject", @metadata.pdf_metadata_adobe_namespace, "Subject"),
("XMP pdf:Author", @metadata.pdf_metadata_adobe_namespace, "Author"),
(
"XMP pdf:CreationDate", @metadata.pdf_metadata_adobe_namespace, "CreationDate",
),
("XMP pdf:ModDate", @metadata.pdf_metadata_adobe_namespace, "ModDate"),
("XMP xmp:CreateDate", @metadata.pdf_metadata_xmp_namespace, "CreateDate"),
("XMP xmp:CreatorTool", @metadata.pdf_metadata_xmp_namespace, "CreatorTool"),
("XMP xmp:MetadataDate", @metadata.pdf_metadata_xmp_namespace, "MetadataDate"),
("XMP xmp:ModifyDate", @metadata.pdf_metadata_xmp_namespace, "ModifyDate"),
("XMP dc:title", @metadata.pdf_metadata_dc_namespace, "title"),
("XMP dc:creator", @metadata.pdf_metadata_dc_namespace, "creator"),
("XMP dc:subject", @metadata.pdf_metadata_dc_namespace, "subject"),
("XMP dc:description", @metadata.pdf_metadata_dc_namespace, "description"),
("PDF/UA pdfuaid:amd", @metadata.pdf_metadata_pdfuaid_namespace, "amd"),
("PDF/UA pdfuaid:corr", @metadata.pdf_metadata_pdfuaid_namespace, "corr"),
]
///|
fn pdf_metadata_add_xmp_report_field(
output : Map[String, Json],
metadata : BytesView,
field : (String, String, String),
) -> Unit {
match
pdf_metadata_get_xmp_data(
metadata,
field.1,
pdf_metadata_namespace_fallback_prefix(field.1),
field.2,
) {
Some(value) => output.set(field.0, Json::string(value))
None => ()
}
}
///|
fn pdf_metadata_add_xmp_report_line(
output : Array[String],
tree : @metadata.PdfMetadataXmlTree,
field : (String, String, String),
) -> Unit {
match pdf_metadata_xmltree_get_data_for(field.1, field.2, tree) {
Some(value) => {
output.push(field.0)
output.push(": ")
output.push(value)
output.push("\n")
}
None => ()
}
}