From dbbdc0a8760ba0833304dad9e6ff6ea6e45cecc7 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 26 Jan 2013 11:17:10 +0530 Subject: [PATCH] PDF Output: Fix regression that caused some svg images to be rendered as black rectangles. Fixes #1105294 (conversion error svg -> kdp _> pdf) --- src/calibre/ebooks/pdf/render/engine.py | 1 + src/calibre/ebooks/pdf/render/graphics.py | 2 +- src/calibre/ebooks/pdf/render/test.py | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/calibre/ebooks/pdf/render/engine.py b/src/calibre/ebooks/pdf/render/engine.py index 1be8613cea..3e9497a3d3 100644 --- a/src/calibre/ebooks/pdf/render/engine.py +++ b/src/calibre/ebooks/pdf/render/engine.py @@ -108,6 +108,7 @@ class PdfEngine(QPaintEngine): def init_page(self): self.pdf.transform(self.pdf_system) + self.pdf.apply_fill(color=(1, 1, 1)) # QPainter has a default background brush of white self.graphics.reset() self.pdf.save_stack() self.current_page_inited = True diff --git a/src/calibre/ebooks/pdf/render/graphics.py b/src/calibre/ebooks/pdf/render/graphics.py index 25e23fcd0b..f24b698350 100644 --- a/src/calibre/ebooks/pdf/render/graphics.py +++ b/src/calibre/ebooks/pdf/render/graphics.py @@ -252,7 +252,7 @@ class GraphicsState(object): 'clip_updated', 'do_fill', 'do_stroke') def __init__(self): - self.fill = QBrush() + self.fill = QBrush(Qt.white) self.stroke = QPen() self.opacity = 1.0 self.transform = QTransform() diff --git a/src/calibre/ebooks/pdf/render/test.py b/src/calibre/ebooks/pdf/render/test.py index a68daea97b..dcd90fa8b6 100644 --- a/src/calibre/ebooks/pdf/render/test.py +++ b/src/calibre/ebooks/pdf/render/test.py @@ -113,7 +113,7 @@ def main(): app tdir = os.path.abspath('.') pdf = os.path.join(tdir, 'painter.pdf') - func = brush + func = full dpi = 100 with open(pdf, 'wb') as f: dev = PdfDevice(f, xdpi=dpi, ydpi=dpi, compress=False)