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