diff --git a/Cargo.lock b/Cargo.lock index a3abf39c3..c51493f6a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1345,7 +1345,7 @@ dependencies = [ [[package]] name = "krilla" version = "0.3.0" -source = "git+https://github.com/LaurenzV/krilla?rev=5a8af84#5a8af8490a5f908cb5b4cf552037c226f59f0823" +source = "git+https://github.com/LaurenzV/krilla?rev=6136d31#6136d31338eebb1d0e3d213f9be7fa3ce68b877e" dependencies = [ "base64", "bumpalo", @@ -1372,7 +1372,7 @@ dependencies = [ [[package]] name = "krilla-svg" version = "0.3.0" -source = "git+https://github.com/LaurenzV/krilla?rev=5a8af84#5a8af8490a5f908cb5b4cf552037c226f59f0823" +source = "git+https://github.com/LaurenzV/krilla?rev=6136d31#6136d31338eebb1d0e3d213f9be7fa3ce68b877e" dependencies = [ "flate2", "fontdb", diff --git a/Cargo.toml b/Cargo.toml index 1054a44b4..89f6ed95e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,8 +71,8 @@ if_chain = "1" image = { version = "0.25.5", default-features = false, features = ["png", "jpeg", "gif"] } indexmap = { version = "2", features = ["serde"] } kamadak-exif = "0.6" -krilla = { git = "https://github.com/LaurenzV/krilla", rev = "5a8af84", default-features = false, features = ["raster-images", "comemo", "rayon"] } -krilla-svg = { git = "https://github.com/LaurenzV/krilla", rev = "5a8af84" } +krilla = { git = "https://github.com/LaurenzV/krilla", rev = "6136d31", default-features = false, features = ["raster-images", "comemo", "rayon"] } +krilla-svg = { git = "https://github.com/LaurenzV/krilla", rev = "6136d31" } kurbo = "0.11" libfuzzer-sys = "0.4" lipsum = "0.9" diff --git a/crates/typst-pdf/src/convert.rs b/crates/typst-pdf/src/convert.rs index 603c1d917..5a35c2519 100644 --- a/crates/typst-pdf/src/convert.rs +++ b/crates/typst-pdf/src/convert.rs @@ -539,6 +539,11 @@ fn finish( hint: "set the title of the document" ) } + ValidationError::MissingDocumentDate => { + error!(Span::detached(), "{prefix} missing document date"; + hint: "set the date of the document" + ) + } } }) .collect::>(); @@ -549,6 +554,11 @@ fn finish( let span = gc.image_to_spans.get(&i).unwrap(); bail!(*span, "failed to process image"); } + KrillaError::SixteenBitImage(image, _) => { + let span = gc.image_to_spans.get(&image).unwrap(); + bail!(*span, "16 bit images are not supported in this export mode"; + hint: "convert the image to 8 bit instead") + } }, } } diff --git a/crates/typst-pdf/src/image.rs b/crates/typst-pdf/src/image.rs index f8ebbfa4b..084d9e800 100644 --- a/crates/typst-pdf/src/image.rs +++ b/crates/typst-pdf/src/image.rs @@ -29,6 +29,10 @@ pub(crate) fn handle_image( let interpolate = image.scaling() == Smart::Custom(ImageScaling::Smooth); + if let Some(alt) = image.alt() { + surface.start_alt_text(alt); + } + match image.kind() { ImageKind::Raster(raster) => { let (exif_transform, new_size) = exif_transform(raster, size); @@ -56,6 +60,10 @@ pub(crate) fn handle_image( } } + if image.alt().is_some() { + surface.end_alt_text(); + } + surface.pop(); surface.reset_location(); diff --git a/crates/typst-pdf/src/metadata.rs b/crates/typst-pdf/src/metadata.rs index 004d3263f..43199e6db 100644 --- a/crates/typst-pdf/src/metadata.rs +++ b/crates/typst-pdf/src/metadata.rs @@ -53,7 +53,7 @@ pub(crate) fn build_metadata(gc: &GlobalContext) -> Metadata { }; if let Some(date) = date.and_then(|d| convert_date(d, tz)) { - metadata = metadata.modification_date(date).creation_date(date); + metadata = metadata.creation_date(date); } metadata = metadata.text_direction(dir);