Esempio n. 1
0
def readLWFN(path, onlyHeader=False):
	"""reads an LWFN font file, returns raw data"""
	from fontTools.misc.macRes import ResourceReader
	reader = ResourceReader(path)
	try:
		data = []
		for res in reader.get('POST', []):
			code = byteord(res.data[0])
			if byteord(res.data[1]) != 0:
				raise T1Error('corrupt LWFN file')
			if code in [1, 2]:
				if onlyHeader and code == 2:
					break
				data.append(res.data[2:])
			elif code in [3, 5]:
				break
			elif code == 4:
				f = open(path, "rb")
				data.append(f.read())
				f.close()
			elif code == 0:
				pass # comment, ignore
			else:
				raise T1Error('bad chunk code: ' + repr(code))
	finally:
		reader.close()
	data = bytesjoin(data)
	assertType1(data)
	return data
Esempio n. 2
0
def readLWFN(path, onlyHeader=False):
    """reads an LWFN font file, returns raw data"""
    from fontTools.misc.macRes import ResourceReader
    reader = ResourceReader(path)
    try:
        data = []
        for res in reader.get('POST', []):
            code = byteord(res.data[0])
            if byteord(res.data[1]) != 0:
                raise T1Error('corrupt LWFN file')
            if code in [1, 2]:
                if onlyHeader and code == 2:
                    break
                data.append(res.data[2:])
            elif code in [3, 5]:
                break
            elif code == 4:
                with open(path, "rb") as f:
                    data.append(f.read())
            elif code == 0:
                pass  # comment, ignore
            else:
                raise T1Error('bad chunk code: ' + repr(code))
    finally:
        reader.close()
    data = bytesjoin(data)
    assertType1(data)
    return data
def getSFNTResIndices(path):
    """Determine whether a file has a 'sfnt' resource fork or not."""
    try:
        reader = ResourceReader(path)
        indices = reader.getIndices('sfnt')
        reader.close()
        return indices
    except ResourceError:
        return []
Esempio n. 4
0
def getSFNTResIndices(path):
	"""Determine whether a file has a 'sfnt' resource fork or not."""
	try:
		reader = ResourceReader(path)
		indices = reader.getIndices('sfnt')
		reader.close()
		return indices
	except ResourceError:
		return []
Esempio n. 5
0
 def test_read_datafork(self):
     with tempfile.NamedTemporaryFile(delete=False) as tmp:
         tmp.write(TEST_RSRC_FORK)
     try:
         reader = ResourceReader(tmp.name)
         resources = [res for typ in reader.keys() for res in reader[typ]]
         reader.close()
         self.assertExpected(resources)
     finally:
         os.remove(tmp.name)
Esempio n. 6
0
	def test_read_datafork(self):
		with tempfile.NamedTemporaryFile(delete=False) as tmp:
			tmp.write(TEST_RSRC_FORK)
		try:
			reader = ResourceReader(tmp.name)
			resources = [res for typ in reader.keys() for res in reader[typ]]
			reader.close()
			self.assertExpected(resources)
		finally:
			os.remove(tmp.name)
Esempio n. 7
0
	def __init__(self, path, res_name_or_index):
		reader = ResourceReader(path)
		if isinstance(res_name_or_index, basestring):
			rsrc = reader.getNamedResource('sfnt', res_name_or_index)
		else:
			rsrc = reader.getIndResource('sfnt', res_name_or_index)
		if rsrc is None:
			raise ttLib.TTLibError("sfnt resource not found: %s" % res_name_or_index)
		reader.close()
		self.rsrc = rsrc
		super(SFNTResourceReader, self).__init__(rsrc.data)
		self.name = path
Esempio n. 8
0
	def __init__(self, path, res_name_or_index):
		reader = ResourceReader(path)
		if isinstance(res_name_or_index, basestring):
			rsrc = reader.getNamedResource('sfnt', res_name_or_index)
		else:
			rsrc = reader.getIndResource('sfnt', res_name_or_index)
		if rsrc is None:
			raise TTLibError("sfnt resource not found: %s" % res_name_or_index)
		reader.close()
		self.rsrc = rsrc
		super(SFNTResourceReader, self).__init__(rsrc.data)
		self.name = path
Esempio n. 9
0
 def test_read_namedfork_rsrc(self):
     if sys.platform != 'darwin':
         self.skipTest('Not supported on "%s"' % sys.platform)
     tmp = tempfile.NamedTemporaryFile(delete=False)
     tmp.close()
     try:
         with open(tmp.name + '/..namedfork/rsrc', 'wb') as fork:
             fork.write(TEST_RSRC_FORK)
         reader = ResourceReader(tmp.name)
         resources = [res for typ in reader.keys() for res in reader[typ]]
         reader.close()
         self.assertExpected(resources)
     finally:
         os.remove(tmp.name)
Esempio n. 10
0
	def test_read_namedfork_rsrc(self):
		if sys.platform != 'darwin':
			self.skipTest('Not supported on "%s"' % sys.platform)
		tmp = tempfile.NamedTemporaryFile(delete=False)
		tmp.close()
		try:
			with open(tmp.name + '/..namedfork/rsrc', 'wb') as fork:
				fork.write(TEST_RSRC_FORK)
			reader = ResourceReader(tmp.name)
			resources = [res for typ in reader.keys() for res in reader[typ]]
			reader.close()
			self.assertExpected(resources)
		finally:
			os.remove(tmp.name)