def testParallelConstruction(self): "Test that TTFont can be used for different documents at the same time" ttfAsciiReadable = rl_config.ttfAsciiReadable try: rl_config.ttfAsciiReadable = 1 doc1 = PDFDocument() doc2 = PDFDocument() font = TTFont("Vera", "Vera.ttf") self.assertEquals(font.splitString('hello ', doc1), [(0, b'hello ')]) self.assertEquals(font.splitString('hello ', doc2), [(0, b'hello ')]) self.assertEquals( font.splitString(u'\u0410\u0411'.encode('UTF-8'), doc1), [(0, b'\x80\x81')]) self.assertEquals( font.splitString(u'\u0412'.encode('UTF-8'), doc2), [(0, b'\x80')]) font.addObjects(doc1) self.assertEquals( font.splitString(u'\u0413'.encode('UTF-8'), doc2), [(0, b'\x81')]) font.addObjects(doc2) finally: rl_config.ttfAsciiReadable = ttfAsciiReadable
def testAddObjects(self): "Test TTFont.addObjects" # Actually generate some subsets ttfAsciiReadable = rl_config.ttfAsciiReadable try: rl_config.ttfAsciiReadable = 1 doc = PDFDocument() font = TTFont("Vera", "Vera.ttf") font.splitString('a', doc) # create some subset internalName = font.getSubsetInternalName(0, doc)[1:] font.addObjects(doc) pdfFont = doc.idToObject[internalName] self.assertEquals(doc.idToObject['BasicFonts'].dict[internalName], pdfFont) self.assertEquals(pdfFont.Name, internalName) self.assertEquals(pdfFont.BaseFont, "AAAAAA+BitstreamVeraSans-Roman") self.assertEquals(pdfFont.FirstChar, 0) self.assertEquals(pdfFont.LastChar, 127) self.assertEquals(len(pdfFont.Widths.sequence), 128) toUnicode = doc.idToObject[pdfFont.ToUnicode.name] self.assert_(toUnicode.content != "") fontDescriptor = doc.idToObject[pdfFont.FontDescriptor.name] self.assertEquals(fontDescriptor.dict['Type'], '/FontDescriptor') finally: rl_config.ttfAsciiReadable = ttfAsciiReadable
def testParallelConstruction(self): "Test that TTFont can be used for different documents at the same time" doc1 = PDFDocument() doc2 = PDFDocument() font = TTFont("TestFont", "luxiserif.ttf") self.assertEquals(font.splitString("ab", doc1), [(0, "\0\1")]) self.assertEquals(font.splitString("b", doc2), [(0, "\0")]) font.addObjects(doc1) self.assertEquals(font.splitString("c", doc2), [(0, "\1")]) font.addObjects(doc2)
def testParallelConstruction(self): "Test that TTFont can be used for different documents at the same time" doc1 = PDFDocument() doc2 = PDFDocument() font = TTFont("TestFont", "luxiserif.ttf") self.assertEquals(font.splitString(u'hello ', doc1), [(0, 'hello ')]) self.assertEquals(font.splitString(u'hello ', doc2), [(0, 'hello ')]) self.assertEquals(font.splitString(u'\u0410\u0411'.encode('UTF-8'), doc1), [(0, '\x80\x81')]) self.assertEquals(font.splitString(u'\u0412'.encode('UTF-8'), doc2), [(0, '\x80')]) font.addObjects(doc1) self.assertEquals(font.splitString(u'\u0413'.encode('UTF-8'), doc2), [(0, '\x81')]) font.addObjects(doc2)
def no_longer_testAddObjectsResets(self): "Test that TTFont.addObjects resets the font" # Actually generate some subsets doc = PDFDocument() font = TTFont("Vera", "Vera.ttf") font.splitString('a', doc) # create some subset doc = PDFDocument() font.addObjects(doc) self.assertEquals(font.frozen, 0) self.assertEquals(font.nextCode, 0) self.assertEquals(font.subsets, []) self.assertEquals(font.assignments, {}) font.splitString('ba', doc) # should work
def testParallelConstruction(self): "Test that TTFont can be used for different documents at the same time" doc1 = PDFDocument() doc2 = PDFDocument() font = TTFont("TestFont", "luxiserif.ttf") self.assertEquals(font.splitString(u'hello ', doc1), [(0, 'hello ')]) self.assertEquals(font.splitString(u'hello ', doc2), [(0, 'hello ')]) self.assertEquals( font.splitString(u'\u0410\u0411'.encode('UTF-8'), doc1), [(0, '\x80\x81')]) self.assertEquals(font.splitString(u'\u0412'.encode('UTF-8'), doc2), [(0, '\x80')]) font.addObjects(doc1) self.assertEquals(font.splitString(u'\u0413'.encode('UTF-8'), doc2), [(0, '\x81')]) font.addObjects(doc2)
def testParallelConstruction(self): "Test that TTFont can be used for different documents at the same time" ttfAsciiReadable = rl_config.ttfAsciiReadable try: rl_config.ttfAsciiReadable = 1 doc1 = PDFDocument() doc2 = PDFDocument() font = TTFont("Vera", "Vera.ttf") self.assertEquals(font.splitString('hello ', doc1), [(0, b'hello ')]) self.assertEquals(font.splitString('hello ', doc2), [(0, b'hello ')]) self.assertEquals(font.splitString(u'\u0410\u0411'.encode('UTF-8'), doc1), [(0, b'\x80\x81')]) self.assertEquals(font.splitString(u'\u0412'.encode('UTF-8'), doc2), [(0, b'\x80')]) font.addObjects(doc1) self.assertEquals(font.splitString(u'\u0413'.encode('UTF-8'), doc2), [(0, b'\x81')]) font.addObjects(doc2) finally: rl_config.ttfAsciiReadable = ttfAsciiReadable
def testAddObjects(self): "Test TTFont.addObjects" # Actually generate some subsets doc = PDFDocument() font = TTFont("TestFont", "luxiserif.ttf") font.splitString('a', doc) # create some subset internalName = font.getSubsetInternalName(0, doc)[1:] font.addObjects(doc) pdfFont = doc.idToObject[internalName] self.assertEquals(doc.idToObject['BasicFonts'].dict[internalName], pdfFont) self.assertEquals(pdfFont.Name, internalName) self.assertEquals(pdfFont.BaseFont, "AAAAAA+LuxiSerif") self.assertEquals(pdfFont.FirstChar, 0) self.assertEquals(pdfFont.LastChar, 127) self.assertEquals(len(pdfFont.Widths.sequence), 128) toUnicode = doc.idToObject[pdfFont.ToUnicode.name] self.assert_(toUnicode.content != "") fontDescriptor = doc.idToObject[pdfFont.FontDescriptor.name] self.assertEquals(fontDescriptor.dict['Type'], '/FontDescriptor')
def testAddObjectsEmpty(self): "TTFont.addObjects should not fail when no characters were used" font = TTFont("Vera", "Vera.ttf") doc = PDFDocument() font.addObjects(doc)