From 680cc9aa93f46807754e9cb771e7942f610b0c72 Mon Sep 17 00:00:00 2001 From: Martin Haug Date: Sun, 25 Sep 2022 21:37:22 +0200 Subject: [PATCH] Do not upset Acrobat --- src/export/pdf/page.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/export/pdf/page.rs b/src/export/pdf/page.rs index 708eafadf..1b1bec927 100644 --- a/src/export/pdf/page.rs +++ b/src/export/pdf/page.rs @@ -223,6 +223,7 @@ impl<'a> PageContext<'a> { self.content.set_fill_color([f(c.r), f(c.g), f(c.b)]); } Color::Cmyk(c) => { + self.reset_fill_color_space(); self.content.set_fill_cmyk(f(c.c), f(c.m), f(c.y), f(c.k)); } } @@ -237,6 +238,10 @@ impl<'a> PageContext<'a> { } } + fn reset_fill_color_space(&mut self) { + self.state.fill_space = None; + } + fn set_stroke(&mut self, stroke: Stroke) { if self.state.stroke != Some(stroke) { let f = |c| c as f32 / 255.0; @@ -251,6 +256,7 @@ impl<'a> PageContext<'a> { self.content.set_stroke_color([f(c.r), f(c.g), f(c.b)]); } Color::Cmyk(c) => { + self.reset_stroke_color_space(); self.content.set_stroke_cmyk(f(c.c), f(c.m), f(c.y), f(c.k)); } } @@ -266,6 +272,10 @@ impl<'a> PageContext<'a> { self.state.stroke_space = Some(space); } } + + fn reset_stroke_color_space(&mut self) { + self.state.stroke_space = None; + } } /// Encode a frame into the content stream.