diff --git a/news.d/48.1/fixes-print-empty-page b/news.d/48.1/fixes-print-empty-page new file mode 100644 index 0000000..496fcce --- /dev/null +++ b/news.d/48.1/fixes-print-empty-page @@ -0,0 +1 @@ +Printed pages don't contain anything or garbled output. This is a temporary workaround for , using the cairo renderer for the rotation and scaling of the image in the print preparation. \ No newline at end of file diff --git a/src/widgets/image/printing.rs b/src/widgets/image/printing.rs index 475884b..4e3624d 100644 --- a/src/widgets/image/printing.rs +++ b/src/widgets/image/printing.rs @@ -1,4 +1,4 @@ -// Copyright (c) 2023-2024 Sophie Herold +// Copyright (c) 2023-2025 Sophie Herold // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -42,8 +42,16 @@ impl LpImage { .add_to_snapshot(&snapshot, scale, &render_options); let node = snapshot.to_node()?; - let renderer = self.root()?.renderer()?; - Some(renderer.render_texture(&node, None)) + let renderer = gsk::CairoRenderer::new(); + renderer + .realize_for_display(&gdk::Display::default()?) + .ok()?; + + let texture = renderer.render_texture(&node, None); + + renderer.unrealize(); + + Some(texture) } }