File tree Expand file tree Collapse file tree 1 file changed +7
-2
lines changed
Expand file tree Collapse file tree 1 file changed +7
-2
lines changed Original file line number Diff line number Diff line change 2424import binascii
2525import enum
2626import itertools
27+ import logging
2728import re
2829import struct
2930
3233from matplotlib .cbook import _format_approx
3334from . import _api
3435
36+ _log = logging .getLogger (__name__ )
3537
3638# token types
3739_TokenType = enum .Enum ('_TokenType' ,
@@ -129,13 +131,16 @@ def _split(self, data):
129131 zeros -= 1
130132 idx -= 1
131133 if zeros :
132- raise RuntimeError ('Insufficiently many zeros in Type 1 font' )
134+ # this may have been a problem on old implementations that
135+ # used the zeros as necessary padding
136+ _log .info ('Insufficiently many zeros in Type 1 font' )
133137
134138 # Convert encrypted part to binary (if we read a pfb file, we may end
135139 # up converting binary to hexadecimal to binary again; but if we read
136140 # a pfa file, this part is already in hex, and I am not quite sure if
137141 # even the pfb format guarantees that it will be in binary).
138- binary = binascii .unhexlify (data [len1 :idx + 1 ])
142+ idx1 = len1 + ((idx - len1 + 2 ) & ~ 1 ) # ensure an even number of bytes
143+ binary = binascii .unhexlify (data [len1 :idx1 ])
139144
140145 return data [:len1 ], binary , data [idx + 1 :]
141146
You can’t perform that action at this time.
0 commit comments