From fc0c623fb1dfcf2c4068b8b4c83089d3804074b9 Mon Sep 17 00:00:00 2001 From: tjj021 Date: Thu, 10 Sep 2020 14:28:29 +0800 Subject: [PATCH 1/2] Added support for Blend Mode parameter --- src/reportlab/pdfgen/canvas.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/reportlab/pdfgen/canvas.py b/src/reportlab/pdfgen/canvas.py index 4a6ab3cb9..5b577a881 100755 --- a/src/reportlab/pdfgen/canvas.py +++ b/src/reportlab/pdfgen/canvas.py @@ -141,6 +141,7 @@ class ExtGState: OP=False, op=False, OPM=0, + BM='/Normal', ) def __init__(self): @@ -588,6 +589,9 @@ def _getCmShift(self): if bleedW: bw -= bleedW return bw + + def setBlendMode(self, v): + self._extgstate.set(self,'BM',v) def showPage(self): """Close the current page and possibly start on a new page.""" From 5836a8d744bdeefae32250c1d9b8f32da554a838 Mon Sep 17 00:00:00 2001 From: tjj021 Date: Thu, 10 Sep 2020 14:30:37 +0800 Subject: [PATCH 2/2] Fix unicode encoding exception --- src/reportlab/pdfbase/rl_codecs.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/reportlab/pdfbase/rl_codecs.py b/src/reportlab/pdfbase/rl_codecs.py index f83e516dc..2bd81be19 100644 --- a/src/reportlab/pdfbase/rl_codecs.py +++ b/src/reportlab/pdfbase/rl_codecs.py @@ -997,7 +997,10 @@ def _makeCodecInfo(name,encoding_map,decoding_map): ### Codec APIs class Codec(codecs.Codec): def encode(self,input,errors='strict',charmap_encode=codecs.charmap_encode,encoding_map=encoding_map): - return charmap_encode(input,errors,encoding_map) + try: + return charmap_encode(input,errors,encoding_map) + except Exception as e: + return (input.encode('utf-8'),len(input)) def decode(self,input,errors='strict',charmap_decode=codecs.charmap_decode,decoding_map=decoding_map): return charmap_decode(input,errors,decoding_map)