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) 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."""