Crates.io | xmp-writer |
lib.rs | xmp-writer |
version | 0.3.0 |
source | src |
created_at | 2023-02-21 16:45:41.462777 |
updated_at | 2024-09-30 13:41:38.602459 |
description | Write XMP metadata, step by step. |
homepage | |
repository | https://github.com/typst/xmp-writer |
max_upload_size | |
id | 790867 |
size | 111,406 |
Write XMP metadata, step by step.
[dependencies]
xmp-writer = "0.3"
XMP is an ISO standard specifying a metadata format for files, originally developed by Adobe. It is either embedded into files (e.g. PDF, JPEG, TIFF) or stored in a separate "side-car" file.
This crate provides a simple API to write XMP metadata. Start by creating
a new XmpWriter
, then add entries to it. Finally, call XmpWriter::finish
to
get the XMP metadata as a byte vector. Some properties contain a complex data type like a
struct or an array. In this case, the writer returns a new struct that can be used to
write the data. The reference to the struct must be dropped before the writer can be used
again.
use xmp_writer::{LangId, DateTime, XmpWriter};
let mut writer = XmpWriter::new();
writer.creator(["Martin Haug"]);
writer.title([(Some(LangId("de")), "Titel"), (None, "Title")]);
writer.num_pages(3);
writer.pdf_keywords("Keyword1, Keyword2");
writer.description([(None, "Description")]);
writer.date([DateTime::date(2021, 11, 06)]);
let mut colors = writer.colorants();
colors.add_colorant().swatch_name("Red");
colors.add_colorant().swatch_name("Green");
drop(colors);
writer.creator_tool("xmp-writer 0.3.0");
println!("{}", std::str::from_utf8(&writer.finish(None)).unwrap());
This crate forbids unsafe code and has no dependencies.
This crate is dual-licensed under the MIT and Apache 2.0 licenses.