From 72c5b42a30128c07c83fc9281b705a6c2a139103 Mon Sep 17 00:00:00 2001 From: Eric Biedert Date: Mon, 1 Apr 2024 22:37:05 +0200 Subject: [PATCH] Fix patterns with spacing in PDF (#3793) --- crates/typst-pdf/src/pattern.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/typst-pdf/src/pattern.rs b/crates/typst-pdf/src/pattern.rs index 0829ef32d..6dfb0f666 100644 --- a/crates/typst-pdf/src/pattern.rs +++ b/crates/typst-pdf/src/pattern.rs @@ -73,7 +73,9 @@ pub(crate) fn write_patterns(ctx: &mut PdfContext) { resources_map.finish(); tiling_pattern .matrix(transform_to_array( - transform.pre_concat(Transform::scale(Ratio::one(), -Ratio::one())), + transform + .pre_concat(Transform::scale(Ratio::one(), -Ratio::one())) + .post_concat(Transform::translate(Abs::zero(), pattern.spacing().y)), )) .filter(Filter::FlateDecode); } @@ -82,7 +84,7 @@ pub(crate) fn write_patterns(ctx: &mut PdfContext) { /// A pattern and its transform. #[derive(Clone, PartialEq, Eq, Hash)] pub struct PdfPattern { - /// The transform to apply to the gradient. + /// The transform to apply to the pattern. pub transform: Transform, /// The pattern to paint. pub pattern: Pattern,