summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Haug <mhaug@live.de>2022-09-25 21:37:22 +0200
committerMartin Haug <mhaug@live.de>2022-09-25 21:37:22 +0200
commit680cc9aa93f46807754e9cb771e7942f610b0c72 (patch)
tree4c0eb0dfe78d42489de9cc91d0201ebc1ccabb27 /src
parentb14274d1e44050ab977b2a31e69590080898996b (diff)
Do not upset Acrobat
Diffstat (limited to 'src')
-rw-r--r--src/export/pdf/page.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/export/pdf/page.rs b/src/export/pdf/page.rs
index 708eafad..1b1bec92 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.