to allow non-ascii characters, encode strings as utf-16-be (big endian) and escape backslashes and parenthesis
This commit is contained in:
parent
317a0ee7f2
commit
5a1f0701a3
2 changed files with 10 additions and 1 deletions
|
@ -7,6 +7,7 @@ CHANGES
|
||||||
|
|
||||||
- replace -x and -y option by combined option -s (or --pagesize) and use -S
|
- replace -x and -y option by combined option -s (or --pagesize) and use -S
|
||||||
for --subject
|
for --subject
|
||||||
|
- correctly encode and escape non-ascii metadata
|
||||||
|
|
||||||
0.1.5
|
0.1.5
|
||||||
-----
|
-----
|
||||||
|
|
|
@ -518,7 +518,15 @@ def valid_size(string):
|
||||||
# is both, type str and type bytes (only the case in python2)
|
# is both, type str and type bytes (only the case in python2)
|
||||||
def pdf_embedded_string(string):
|
def pdf_embedded_string(string):
|
||||||
if type(string) is str and type(string) is not bytes:
|
if type(string) is str and type(string) is not bytes:
|
||||||
string = string.encode("utf8")
|
# py3
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
# py2
|
||||||
|
string = string.decode("utf8")
|
||||||
|
string = b"\xfe\xff"+string.encode("utf-16-be")
|
||||||
|
string = string.replace(b'\\', b'\\\\')
|
||||||
|
string = string.replace(b'(', b'\\(')
|
||||||
|
string = string.replace(b')', b'\\)')
|
||||||
return string
|
return string
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
|
|
Loading…
Reference in a new issue