From f5c90c8714413507c93068ba1bd6a035838e9beb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20d=27Herbais=20de=20Thun?= Date: Mon, 4 Dec 2023 14:24:05 +0100 Subject: [PATCH] Fix PDF transform (#2850) --- crates/typst-pdf/src/pattern.rs | 6 ++++-- tests/ref/visualize/pattern-simple.png | Bin 0 -> 343 bytes tests/typ/visualize/pattern-simple.typ | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 tests/ref/visualize/pattern-simple.png create mode 100644 tests/typ/visualize/pattern-simple.typ diff --git a/crates/typst-pdf/src/pattern.rs b/crates/typst-pdf/src/pattern.rs index 965ce370a..906100665 100644 --- a/crates/typst-pdf/src/pattern.rs +++ b/crates/typst-pdf/src/pattern.rs @@ -1,7 +1,7 @@ use ecow::eco_format; use pdf_writer::types::{ColorSpaceOperand, PaintType, TilingType}; use pdf_writer::{Filter, Finish, Name, Rect}; -use typst::layout::{Abs, Transform}; +use typst::layout::{Abs, Ratio, Transform}; use typst::util::Numeric; use typst::visualize::{Pattern, RelativeTo}; @@ -73,7 +73,9 @@ pub(crate) fn write_patterns(ctx: &mut PdfContext) { resources_map.finish(); tiling_pattern - .matrix(transform_to_array(*transform)) + .matrix(transform_to_array( + transform.post_concat(Transform::scale(Ratio::one(), -Ratio::one())), + )) .filter(Filter::FlateDecode); } } diff --git a/tests/ref/visualize/pattern-simple.png b/tests/ref/visualize/pattern-simple.png new file mode 100644 index 0000000000000000000000000000000000000000..ac473a7560e2f063d56aef6a169734abc2ba530d GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^6+rxqg&9b`QH!|*q$C1-LR^9L|NsBbpFi*B=H}|^ zYGY#~ARxfc&#%7h=W3wbFHaZ8kcwMxXD;MD>>$A6Ec5Sv<5G`jE035iX?id3YGm=W zCS`iff%A(LtF^taN&Ij;F~#P4nd`DC{=1U`=9;bWlMY#4+SOyB8K@^;7_=zn9f-(# zR-!li^3FGY%QsoiJ@u_bYxm{-Pc2qnT6?G6d3%v{$*QMzDXX5Ay$Cs7yQ1ZAfdt>- zL<^qwhXyijXq+2fe2>l9X3p4fWLdC^PT{GLAp$3ZU0{X zZuO~eve43;!l1=djOV#2W0-?%gIJ+Neea1qHH;