conv_cmap py3 compat

pull/2/head
cybjit 2014-09-11 23:34:09 +02:00
parent cba5a42ba8
commit ed13f7c47d
2 changed files with 14 additions and 9 deletions

View File

@ -3,7 +3,7 @@
PACKAGE=pdfminer
PYTHON=python2
PYTHON=python
GIT=git
RM=rm -f
CP=cp -f

View File

@ -4,6 +4,8 @@ try:
import cPickle as pickle
except ImportError:
import pickle as pickle
import codecs
import six
## CMapConverter
@ -56,6 +58,7 @@ class CMapConverter(object):
def put(dmap, code, cid, force=False):
for b in code[:-1]:
if six.PY2:
b = ord(b)
if b in dmap:
dmap = dmap[b]
@ -63,7 +66,9 @@ class CMapConverter(object):
d = {}
dmap[b] = d
dmap = d
b = ord(code[-1])
b = code[-1]
if six.PY2:
b = ord(b)
if force or ((b not in dmap) or dmap[b] == cid):
dmap[b] = cid
return
@ -83,8 +88,8 @@ class CMapConverter(object):
return
def pick(unimap):
chars = unimap.items()
chars.sort(key=(lambda (c,n):(n,-ord(c))), reverse=True)
chars = list(unimap.items())
chars.sort(key=(lambda x:(x[1],-ord(x[0]))), reverse=True)
(c,_) = chars[0]
return c
@ -103,7 +108,7 @@ class CMapConverter(object):
if vertical:
code = code[:-1]
try:
code = code.decode('hex')
code = codecs.decode(code, 'hex_codec')
except:
code = chr(int(code, 16))
if vertical:
@ -138,7 +143,7 @@ class CMapConverter(object):
IS_VERTICAL=self.is_vertical.get(enc, False),
CODE2CID=self.code2cid.get(enc),
)
fp.write(pickle.dumps(data))
fp.write(pickle.dumps(data, 2))
return
def dump_unicodemap(self, fp):
@ -146,7 +151,7 @@ class CMapConverter(object):
CID2UNICHR_H=self.cid2unichr_h,
CID2UNICHR_V=self.cid2unichr_v,
)
fp.write(pickle.dumps(data))
fp.write(pickle.dumps(data, 2))
return
# main
@ -175,7 +180,7 @@ def main(argv):
converter = CMapConverter(enc2codec)
for path in args:
print ('reading: %r...' % path)
fp = file(path)
fp = open(path)
converter.load(fp)
fp.close()