Python matplotlib.dviread.Encoding() Examples
The following are 30
code examples of matplotlib.dviread.Encoding().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
matplotlib.dviread
, or try the search function
.
Example #1
Source File: backend_pdf.py From dnaplotlib with MIT License | 5 votes |
def _write_afm_font(self, filename): with open(filename, 'rb') as fh: font = AFM(fh) fontname = font.get_fontname() fontdict = {'Type': Name('Font'), 'Subtype': Name('Type1'), 'BaseFont': Name(fontname), 'Encoding': Name('WinAnsiEncoding')} fontdictObject = self.reserveObject('font dictionary') self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #2
Source File: textpath.py From coffeegrindsize with MIT License | 5 votes |
def _get_ps_font_and_encoding(texname): tex_font_map = dviread.PsfontsMap(dviread.find_tex_file('pdftex.map')) font_bunch = tex_font_map[texname] if font_bunch.filename is None: raise ValueError( ("No usable font file found for %s (%s). " "The font may lack a Type-1 version.") % (font_bunch.psname, texname)) font = get_font(font_bunch.filename) for charmap_name, charmap_code in [("ADOBE_CUSTOM", 1094992451), ("ADOBE_STANDARD", 1094995778)]: try: font.select_charmap(charmap_code) except (ValueError, RuntimeError): pass else: break else: charmap_name = "" warnings.warn("No supported encoding in font (%s)." % font_bunch.filename) if charmap_name == "ADOBE_STANDARD" and font_bunch.encoding: enc0 = dviread.Encoding(font_bunch.encoding) enc = {i: _get_adobe_standard_encoding().get(c, None) for i, c in enumerate(enc0.encoding)} else: enc = {} return font, enc
Example #3
Source File: textpath.py From coffeegrindsize with MIT License | 5 votes |
def _get_adobe_standard_encoding(): enc_name = dviread.find_tex_file('8a.enc') enc = dviread.Encoding(enc_name) return {c: i for i, c in enumerate(enc.encoding)}
Example #4
Source File: backend_pdf.py From CogAlg with MIT License | 5 votes |
def _write_afm_font(self, filename): with open(filename, 'rb') as fh: font = AFM(fh) fontname = font.get_fontname() fontdict = {'Type': Name('Font'), 'Subtype': Name('Type1'), 'BaseFont': Name(fontname), 'Encoding': Name('WinAnsiEncoding')} fontdictObject = self.reserveObject('font dictionary') self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #5
Source File: backend_pdf.py From coffeegrindsize with MIT License | 5 votes |
def _write_afm_font(self, filename): with open(filename, 'rb') as fh: font = AFM(fh) fontname = font.get_fontname() fontdict = {'Type': Name('Font'), 'Subtype': Name('Type1'), 'BaseFont': Name(fontname), 'Encoding': Name('WinAnsiEncoding')} fontdictObject = self.reserveObject('font dictionary') self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #6
Source File: backend_pdf.py From ImageFusion with MIT License | 5 votes |
def _write_afm_font(self, filename): with open(filename, 'rb') as fh: font = AFM(fh) fontname = font.get_fontname() fontdict = {'Type': Name('Font'), 'Subtype': Name('Type1'), 'BaseFont': Name(fontname), 'Encoding': Name('WinAnsiEncoding')} fontdictObject = self.reserveObject('font dictionary') self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #7
Source File: textpath.py From python3_ios with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _get_ps_font_and_encoding(texname): tex_font_map = dviread.PsfontsMap(dviread.find_tex_file('pdftex.map')) font_bunch = tex_font_map[texname] if font_bunch.filename is None: raise ValueError( ("No usable font file found for %s (%s). " "The font may lack a Type-1 version.") % (font_bunch.psname, texname)) font = get_font(font_bunch.filename) for charmap_name, charmap_code in [("ADOBE_CUSTOM", 1094992451), ("ADOBE_STANDARD", 1094995778)]: try: font.select_charmap(charmap_code) except (ValueError, RuntimeError): pass else: break else: charmap_name = "" warnings.warn("No supported encoding in font (%s)." % font_bunch.filename) if charmap_name == "ADOBE_STANDARD" and font_bunch.encoding: enc0 = dviread.Encoding(font_bunch.encoding) enc = {i: _get_adobe_standard_encoding().get(c, None) for i, c in enumerate(enc0.encoding)} else: enc = {} return font, enc
Example #8
Source File: textpath.py From python3_ios with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _get_adobe_standard_encoding(): enc_name = dviread.find_tex_file('8a.enc') enc = dviread.Encoding(enc_name) return {c: i for i, c in enumerate(enc.encoding)}
Example #9
Source File: backend_pdf.py From Computable with MIT License | 5 votes |
def _write_afm_font(self, filename): with open(filename, 'rb') as fh: font = AFM(fh) fontname = font.get_fontname() fontdict = { 'Type': Name('Font'), 'Subtype': Name('Type1'), 'BaseFont': Name(fontname), 'Encoding': Name('WinAnsiEncoding') } fontdictObject = self.reserveObject('font dictionary') self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #10
Source File: backend_pdf.py From python3_ios with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _write_afm_font(self, filename): with open(filename, 'rb') as fh: font = AFM(fh) fontname = font.get_fontname() fontdict = {'Type': Name('Font'), 'Subtype': Name('Type1'), 'BaseFont': Name(fontname), 'Encoding': Name('WinAnsiEncoding')} fontdictObject = self.reserveObject('font dictionary') self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #11
Source File: textpath.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _get_ps_font_and_encoding(texname): tex_font_map = dviread.PsfontsMap(dviread.find_tex_file('pdftex.map')) font_bunch = tex_font_map[texname] if font_bunch.filename is None: raise ValueError( ("No usable font file found for %s (%s). " "The font may lack a Type-1 version.") % (font_bunch.psname, texname)) font = get_font(font_bunch.filename) for charmap_name, charmap_code in [("ADOBE_CUSTOM", 1094992451), ("ADOBE_STANDARD", 1094995778)]: try: font.select_charmap(charmap_code) except (ValueError, RuntimeError): pass else: break else: charmap_name = "" warnings.warn("No supported encoding in font (%s)." % font_bunch.filename) if charmap_name == "ADOBE_STANDARD" and font_bunch.encoding: enc0 = dviread.Encoding(font_bunch.encoding) enc = {i: _get_adobe_standard_encoding().get(c, None) for i, c in enumerate(enc0.encoding)} else: enc = {} return font, enc
Example #12
Source File: textpath.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _get_adobe_standard_encoding(): enc_name = dviread.find_tex_file('8a.enc') enc = dviread.Encoding(enc_name) return {c: i for i, c in enumerate(enc.encoding)}
Example #13
Source File: backend_pdf.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _write_afm_font(self, filename): with open(filename, 'rb') as fh: font = AFM(fh) fontname = font.get_fontname() fontdict = {'Type': Name('Font'), 'Subtype': Name('Type1'), 'BaseFont': Name(fontname), 'Encoding': Name('WinAnsiEncoding')} fontdictObject = self.reserveObject('font dictionary') self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #14
Source File: textpath.py From neural-network-animation with MIT License | 5 votes |
def _get_adobe_standard_encoding(self): enc_name = dviread.find_tex_file('8a.enc') enc = dviread.Encoding(enc_name) return dict([(c, i) for i, c in enumerate(enc.encoding)])
Example #15
Source File: backend_pdf.py From neural-network-animation with MIT License | 5 votes |
def _write_afm_font(self, filename): with open(filename, 'rb') as fh: font = AFM(fh) fontname = font.get_fontname() fontdict = {'Type': Name('Font'), 'Subtype': Name('Type1'), 'BaseFont': Name(fontname), 'Encoding': Name('WinAnsiEncoding')} fontdictObject = self.reserveObject('font dictionary') self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #16
Source File: textpath.py From matplotlib-4-abaqus with MIT License | 5 votes |
def _get_adobe_standard_encoding(self): enc_name = dviread.find_tex_file('8a.enc') enc = dviread.Encoding(enc_name) return dict([(c, i) for i, c in enumerate(enc.encoding)])
Example #17
Source File: backend_pdf.py From twitter-stock-recommendation with MIT License | 5 votes |
def _write_afm_font(self, filename): with open(filename, 'rb') as fh: font = AFM(fh) fontname = font.get_fontname() fontdict = {'Type': Name('Font'), 'Subtype': Name('Type1'), 'BaseFont': Name(fontname), 'Encoding': Name('WinAnsiEncoding')} fontdictObject = self.reserveObject('font dictionary') self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #18
Source File: backend_pdf.py From matplotlib-4-abaqus with MIT License | 5 votes |
def _write_afm_font(self, filename): with open(filename, 'rb') as fh: font = AFM(fh) fontname = font.get_fontname() fontdict = { 'Type': Name('Font'), 'Subtype': Name('Type1'), 'BaseFont': Name(fontname), 'Encoding': Name('WinAnsiEncoding') } fontdictObject = self.reserveObject('font dictionary') self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #19
Source File: backend_pdf.py From Mastering-Elasticsearch-7.0 with MIT License | 5 votes |
def _write_afm_font(self, filename): with open(filename, 'rb') as fh: font = AFM(fh) fontname = font.get_fontname() fontdict = {'Type': Name('Font'), 'Subtype': Name('Type1'), 'BaseFont': Name(fontname), 'Encoding': Name('WinAnsiEncoding')} fontdictObject = self.reserveObject('font dictionary') self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #20
Source File: textpath.py From Computable with MIT License | 5 votes |
def _get_adobe_standard_encoding(self): enc_name = dviread.find_tex_file('8a.enc') enc = dviread.Encoding(enc_name) return dict([(c, i) for i, c in enumerate(enc.encoding)])
Example #21
Source File: textpath.py From twitter-stock-recommendation with MIT License | 5 votes |
def _get_adobe_standard_encoding(self): enc_name = dviread.find_tex_file('8a.enc') enc = dviread.Encoding(enc_name) return {c: i for i, c in enumerate(enc.encoding)}
Example #22
Source File: backend_pdf.py From python3_ios with BSD 3-Clause "New" or "Revised" License | 4 votes |
def _embedTeXFont(self, fontinfo): _log.debug('Embedding TeX font %s - fontinfo=%s', fontinfo.dvifont.texname, fontinfo.__dict__) # Widths widthsObject = self.reserveObject('font widths') self.writeObject(widthsObject, fontinfo.dvifont.widths) # Font dictionary fontdictObject = self.reserveObject('font dictionary') fontdict = { 'Type': Name('Font'), 'Subtype': Name('Type1'), 'FirstChar': 0, 'LastChar': len(fontinfo.dvifont.widths) - 1, 'Widths': widthsObject, } # Encoding (if needed) if fontinfo.encodingfile is not None: enc = dviread.Encoding(fontinfo.encodingfile) differencesArray = [Name(ch) for ch in enc] differencesArray = [0] + differencesArray fontdict['Encoding'] = \ {'Type': Name('Encoding'), 'Differences': differencesArray} # If no file is specified, stop short if fontinfo.fontfile is None: _log.warning( "Because of TeX configuration (pdftex.map, see updmap option " "pdftexDownloadBase14) the font %s is not embedded. This is " "deprecated as of PDF 1.5 and it may cause the consumer " "application to show something that was not intended.", fontinfo.basefont) fontdict['BaseFont'] = Name(fontinfo.basefont) self.writeObject(fontdictObject, fontdict) return fontdictObject # We have a font file to embed - read it in and apply any effects t1font = type1font.Type1Font(fontinfo.fontfile) if fontinfo.effects: t1font = t1font.transform(fontinfo.effects) fontdict['BaseFont'] = Name(t1font.prop['FontName']) # Font descriptors may be shared between differently encoded # Type-1 fonts, so only create a new descriptor if there is no # existing descriptor for this font. effects = (fontinfo.effects.get('slant', 0.0), fontinfo.effects.get('extend', 1.0)) fontdesc = self.type1Descriptors.get((fontinfo.fontfile, effects)) if fontdesc is None: fontdesc = self.createType1Descriptor(t1font, fontinfo.fontfile) self.type1Descriptors[(fontinfo.fontfile, effects)] = fontdesc fontdict['FontDescriptor'] = fontdesc self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #23
Source File: backend_pdf.py From dnaplotlib with MIT License | 4 votes |
def embedTeXFont(self, texname, fontinfo): msg = ('Embedding TeX font ' + texname + ' - fontinfo=' + repr(fontinfo.__dict__)) matplotlib.verbose.report(msg, 'debug') # Widths widthsObject = self.reserveObject('font widths') self.writeObject(widthsObject, fontinfo.dvifont.widths) # Font dictionary fontdictObject = self.reserveObject('font dictionary') fontdict = { 'Type': Name('Font'), 'Subtype': Name('Type1'), 'FirstChar': 0, 'LastChar': len(fontinfo.dvifont.widths) - 1, 'Widths': widthsObject, } # Encoding (if needed) if fontinfo.encodingfile is not None: enc = dviread.Encoding(fontinfo.encodingfile) differencesArray = [Name(ch) for ch in enc] differencesArray = [0] + differencesArray fontdict['Encoding'] = \ {'Type': Name('Encoding'), 'Differences': differencesArray} # If no file is specified, stop short if fontinfo.fontfile is None: msg = ('Because of TeX configuration (pdftex.map, see updmap ' 'option pdftexDownloadBase14) the font {0} is not ' 'embedded. This is deprecated as of PDF 1.5 and it may ' 'cause the consumer application to show something that ' 'was not intended.').format(fontinfo.basefont) warnings.warn(msg) fontdict['BaseFont'] = Name(fontinfo.basefont) self.writeObject(fontdictObject, fontdict) return fontdictObject # We have a font file to embed - read it in and apply any effects t1font = type1font.Type1Font(fontinfo.fontfile) if fontinfo.effects: t1font = t1font.transform(fontinfo.effects) fontdict['BaseFont'] = Name(t1font.prop['FontName']) # Font descriptors may be shared between differently encoded # Type-1 fonts, so only create a new descriptor if there is no # existing descriptor for this font. effects = (fontinfo.effects.get('slant', 0.0), fontinfo.effects.get('extend', 1.0)) fontdesc = self.type1Descriptors.get((fontinfo.fontfile, effects)) if fontdesc is None: fontdesc = self.createType1Descriptor(t1font, fontinfo.fontfile) self.type1Descriptors[(fontinfo.fontfile, effects)] = fontdesc fontdict['FontDescriptor'] = fontdesc self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #24
Source File: backend_pdf.py From CogAlg with MIT License | 4 votes |
def _embedTeXFont(self, fontinfo): _log.debug('Embedding TeX font %s - fontinfo=%s', fontinfo.dvifont.texname, fontinfo.__dict__) # Widths widthsObject = self.reserveObject('font widths') self.writeObject(widthsObject, fontinfo.dvifont.widths) # Font dictionary fontdictObject = self.reserveObject('font dictionary') fontdict = { 'Type': Name('Font'), 'Subtype': Name('Type1'), 'FirstChar': 0, 'LastChar': len(fontinfo.dvifont.widths) - 1, 'Widths': widthsObject, } # Encoding (if needed) if fontinfo.encodingfile is not None: enc = dviread.Encoding(fontinfo.encodingfile) differencesArray = [Name(ch) for ch in enc] differencesArray = [0] + differencesArray fontdict['Encoding'] = \ {'Type': Name('Encoding'), 'Differences': differencesArray} # If no file is specified, stop short if fontinfo.fontfile is None: _log.warning( "Because of TeX configuration (pdftex.map, see updmap option " "pdftexDownloadBase14) the font %s is not embedded. This is " "deprecated as of PDF 1.5 and it may cause the consumer " "application to show something that was not intended.", fontinfo.basefont) fontdict['BaseFont'] = Name(fontinfo.basefont) self.writeObject(fontdictObject, fontdict) return fontdictObject # We have a font file to embed - read it in and apply any effects t1font = type1font.Type1Font(fontinfo.fontfile) if fontinfo.effects: t1font = t1font.transform(fontinfo.effects) fontdict['BaseFont'] = Name(t1font.prop['FontName']) # Font descriptors may be shared between differently encoded # Type-1 fonts, so only create a new descriptor if there is no # existing descriptor for this font. effects = (fontinfo.effects.get('slant', 0.0), fontinfo.effects.get('extend', 1.0)) fontdesc = self.type1Descriptors.get((fontinfo.fontfile, effects)) if fontdesc is None: fontdesc = self.createType1Descriptor(t1font, fontinfo.fontfile) self.type1Descriptors[(fontinfo.fontfile, effects)] = fontdesc fontdict['FontDescriptor'] = fontdesc self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #25
Source File: backend_pdf.py From twitter-stock-recommendation with MIT License | 4 votes |
def _embedTeXFont(self, fontinfo): _log.debug('Embedding TeX font %s - fontinfo=%s', fontinfo.dvifont.texname, fontinfo.__dict__) # Widths widthsObject = self.reserveObject('font widths') self.writeObject(widthsObject, fontinfo.dvifont.widths) # Font dictionary fontdictObject = self.reserveObject('font dictionary') fontdict = { 'Type': Name('Font'), 'Subtype': Name('Type1'), 'FirstChar': 0, 'LastChar': len(fontinfo.dvifont.widths) - 1, 'Widths': widthsObject, } # Encoding (if needed) if fontinfo.encodingfile is not None: enc = dviread.Encoding(fontinfo.encodingfile) differencesArray = [Name(ch) for ch in enc] differencesArray = [0] + differencesArray fontdict['Encoding'] = \ {'Type': Name('Encoding'), 'Differences': differencesArray} # If no file is specified, stop short if fontinfo.fontfile is None: _log.warning( "Because of TeX configuration (pdftex.map, see updmap option " "pdftexDownloadBase14) the font %s is not embedded. This is " "deprecated as of PDF 1.5 and it may cause the consumer " "application to show something that was not intended.", fontinfo.basefont) fontdict['BaseFont'] = Name(fontinfo.basefont) self.writeObject(fontdictObject, fontdict) return fontdictObject # We have a font file to embed - read it in and apply any effects t1font = type1font.Type1Font(fontinfo.fontfile) if fontinfo.effects: t1font = t1font.transform(fontinfo.effects) fontdict['BaseFont'] = Name(t1font.prop['FontName']) # Font descriptors may be shared between differently encoded # Type-1 fonts, so only create a new descriptor if there is no # existing descriptor for this font. effects = (fontinfo.effects.get('slant', 0.0), fontinfo.effects.get('extend', 1.0)) fontdesc = self.type1Descriptors.get((fontinfo.fontfile, effects)) if fontdesc is None: fontdesc = self.createType1Descriptor(t1font, fontinfo.fontfile) self.type1Descriptors[(fontinfo.fontfile, effects)] = fontdesc fontdict['FontDescriptor'] = fontdesc self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #26
Source File: backend_pdf.py From coffeegrindsize with MIT License | 4 votes |
def _embedTeXFont(self, fontinfo): _log.debug('Embedding TeX font %s - fontinfo=%s', fontinfo.dvifont.texname, fontinfo.__dict__) # Widths widthsObject = self.reserveObject('font widths') self.writeObject(widthsObject, fontinfo.dvifont.widths) # Font dictionary fontdictObject = self.reserveObject('font dictionary') fontdict = { 'Type': Name('Font'), 'Subtype': Name('Type1'), 'FirstChar': 0, 'LastChar': len(fontinfo.dvifont.widths) - 1, 'Widths': widthsObject, } # Encoding (if needed) if fontinfo.encodingfile is not None: enc = dviread.Encoding(fontinfo.encodingfile) differencesArray = [Name(ch) for ch in enc] differencesArray = [0] + differencesArray fontdict['Encoding'] = \ {'Type': Name('Encoding'), 'Differences': differencesArray} # If no file is specified, stop short if fontinfo.fontfile is None: _log.warning( "Because of TeX configuration (pdftex.map, see updmap option " "pdftexDownloadBase14) the font %s is not embedded. This is " "deprecated as of PDF 1.5 and it may cause the consumer " "application to show something that was not intended.", fontinfo.basefont) fontdict['BaseFont'] = Name(fontinfo.basefont) self.writeObject(fontdictObject, fontdict) return fontdictObject # We have a font file to embed - read it in and apply any effects t1font = type1font.Type1Font(fontinfo.fontfile) if fontinfo.effects: t1font = t1font.transform(fontinfo.effects) fontdict['BaseFont'] = Name(t1font.prop['FontName']) # Font descriptors may be shared between differently encoded # Type-1 fonts, so only create a new descriptor if there is no # existing descriptor for this font. effects = (fontinfo.effects.get('slant', 0.0), fontinfo.effects.get('extend', 1.0)) fontdesc = self.type1Descriptors.get((fontinfo.fontfile, effects)) if fontdesc is None: fontdesc = self.createType1Descriptor(t1font, fontinfo.fontfile) self.type1Descriptors[(fontinfo.fontfile, effects)] = fontdesc fontdict['FontDescriptor'] = fontdesc self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #27
Source File: backend_pdf.py From ImageFusion with MIT License | 4 votes |
def embedTeXFont(self, texname, fontinfo): msg = ('Embedding TeX font ' + texname + ' - fontinfo=' + repr(fontinfo.__dict__)) matplotlib.verbose.report(msg, 'debug') # Widths widthsObject = self.reserveObject('font widths') self.writeObject(widthsObject, fontinfo.dvifont.widths) # Font dictionary fontdictObject = self.reserveObject('font dictionary') fontdict = { 'Type': Name('Font'), 'Subtype': Name('Type1'), 'FirstChar': 0, 'LastChar': len(fontinfo.dvifont.widths) - 1, 'Widths': widthsObject, } # Encoding (if needed) if fontinfo.encodingfile is not None: enc = dviread.Encoding(fontinfo.encodingfile) differencesArray = [Name(ch) for ch in enc] differencesArray = [0] + differencesArray fontdict['Encoding'] = \ {'Type': Name('Encoding'), 'Differences': differencesArray} # If no file is specified, stop short if fontinfo.fontfile is None: msg = ('Because of TeX configuration (pdftex.map, see updmap ' 'option pdftexDownloadBase14) the font {0} is not ' 'embedded. This is deprecated as of PDF 1.5 and it may ' 'cause the consumer application to show something that ' 'was not intended.').format(fontinfo.basefont) warnings.warn(msg) fontdict['BaseFont'] = Name(fontinfo.basefont) self.writeObject(fontdictObject, fontdict) return fontdictObject # We have a font file to embed - read it in and apply any effects t1font = type1font.Type1Font(fontinfo.fontfile) if fontinfo.effects: t1font = t1font.transform(fontinfo.effects) fontdict['BaseFont'] = Name(t1font.prop['FontName']) # Font descriptors may be shared between differently encoded # Type-1 fonts, so only create a new descriptor if there is no # existing descriptor for this font. effects = (fontinfo.effects.get('slant', 0.0), fontinfo.effects.get('extend', 1.0)) fontdesc = self.type1Descriptors.get((fontinfo.fontfile, effects)) if fontdesc is None: fontdesc = self.createType1Descriptor(t1font, fontinfo.fontfile) self.type1Descriptors[(fontinfo.fontfile, effects)] = fontdesc fontdict['FontDescriptor'] = fontdesc self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #28
Source File: backend_pdf.py From GraphicDesignPatternByPython with MIT License | 4 votes |
def _embedTeXFont(self, fontinfo): _log.debug('Embedding TeX font %s - fontinfo=%s', fontinfo.dvifont.texname, fontinfo.__dict__) # Widths widthsObject = self.reserveObject('font widths') self.writeObject(widthsObject, fontinfo.dvifont.widths) # Font dictionary fontdictObject = self.reserveObject('font dictionary') fontdict = { 'Type': Name('Font'), 'Subtype': Name('Type1'), 'FirstChar': 0, 'LastChar': len(fontinfo.dvifont.widths) - 1, 'Widths': widthsObject, } # Encoding (if needed) if fontinfo.encodingfile is not None: enc = dviread.Encoding(fontinfo.encodingfile) differencesArray = [Name(ch) for ch in enc] differencesArray = [0] + differencesArray fontdict['Encoding'] = \ {'Type': Name('Encoding'), 'Differences': differencesArray} # If no file is specified, stop short if fontinfo.fontfile is None: _log.warning( "Because of TeX configuration (pdftex.map, see updmap option " "pdftexDownloadBase14) the font %s is not embedded. This is " "deprecated as of PDF 1.5 and it may cause the consumer " "application to show something that was not intended.", fontinfo.basefont) fontdict['BaseFont'] = Name(fontinfo.basefont) self.writeObject(fontdictObject, fontdict) return fontdictObject # We have a font file to embed - read it in and apply any effects t1font = type1font.Type1Font(fontinfo.fontfile) if fontinfo.effects: t1font = t1font.transform(fontinfo.effects) fontdict['BaseFont'] = Name(t1font.prop['FontName']) # Font descriptors may be shared between differently encoded # Type-1 fonts, so only create a new descriptor if there is no # existing descriptor for this font. effects = (fontinfo.effects.get('slant', 0.0), fontinfo.effects.get('extend', 1.0)) fontdesc = self.type1Descriptors.get((fontinfo.fontfile, effects)) if fontdesc is None: fontdesc = self.createType1Descriptor(t1font, fontinfo.fontfile) self.type1Descriptors[(fontinfo.fontfile, effects)] = fontdesc fontdict['FontDescriptor'] = fontdesc self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #29
Source File: backend_pdf.py From neural-network-animation with MIT License | 4 votes |
def embedTeXFont(self, texname, fontinfo): msg = ('Embedding TeX font ' + texname + ' - fontinfo=' + repr(fontinfo.__dict__)) matplotlib.verbose.report(msg, 'debug') # Widths widthsObject = self.reserveObject('font widths') self.writeObject(widthsObject, fontinfo.dvifont.widths) # Font dictionary fontdictObject = self.reserveObject('font dictionary') fontdict = { 'Type': Name('Font'), 'Subtype': Name('Type1'), 'FirstChar': 0, 'LastChar': len(fontinfo.dvifont.widths) - 1, 'Widths': widthsObject, } # Encoding (if needed) if fontinfo.encodingfile is not None: enc = dviread.Encoding(fontinfo.encodingfile) differencesArray = [Name(ch) for ch in enc] differencesArray = [0] + differencesArray fontdict['Encoding'] = \ {'Type': Name('Encoding'), 'Differences': differencesArray} # If no file is specified, stop short if fontinfo.fontfile is None: msg = ('Because of TeX configuration (pdftex.map, see updmap ' 'option pdftexDownloadBase14) the font {0} is not ' 'embedded. This is deprecated as of PDF 1.5 and it may ' 'cause the consumer application to show something that ' 'was not intended.').format(fontinfo.basefont) warnings.warn(msg) fontdict['BaseFont'] = Name(fontinfo.basefont) self.writeObject(fontdictObject, fontdict) return fontdictObject # We have a font file to embed - read it in and apply any effects t1font = type1font.Type1Font(fontinfo.fontfile) if fontinfo.effects: t1font = t1font.transform(fontinfo.effects) fontdict['BaseFont'] = Name(t1font.prop['FontName']) # Font descriptors may be shared between differently encoded # Type-1 fonts, so only create a new descriptor if there is no # existing descriptor for this font. effects = (fontinfo.effects.get('slant', 0.0), fontinfo.effects.get('extend', 1.0)) fontdesc = self.type1Descriptors.get((fontinfo.fontfile, effects)) if fontdesc is None: fontdesc = self.createType1Descriptor(t1font, fontinfo.fontfile) self.type1Descriptors[(fontinfo.fontfile, effects)] = fontdesc fontdict['FontDescriptor'] = fontdesc self.writeObject(fontdictObject, fontdict) return fontdictObject
Example #30
Source File: backend_pdf.py From matplotlib-4-abaqus with MIT License | 4 votes |
def embedTeXFont(self, texname, fontinfo): matplotlib.verbose.report( 'Embedding TeX font ' + texname + ' - fontinfo=' + repr(fontinfo.__dict__), 'debug') # Widths widthsObject = self.reserveObject('font widths') self.writeObject(widthsObject, fontinfo.dvifont.widths) # Font dictionary fontdictObject = self.reserveObject('font dictionary') fontdict = { 'Type': Name('Font'), 'Subtype': Name('Type1'), 'FirstChar': 0, 'LastChar': len(fontinfo.dvifont.widths) - 1, 'Widths': widthsObject, } # Encoding (if needed) if fontinfo.encodingfile is not None: enc = dviread.Encoding(fontinfo.encodingfile) differencesArray = [ Name(ch) for ch in enc ] differencesArray = [ 0 ] + differencesArray fontdict['Encoding'] = \ { 'Type': Name('Encoding'), 'Differences': differencesArray } # If no file is specified, stop short if fontinfo.fontfile is None: warnings.warn( 'Because of TeX configuration (pdftex.map, see updmap ' + 'option pdftexDownloadBase14) the font %s ' % fontinfo.basefont + 'is not embedded. This is deprecated as of PDF 1.5 ' + 'and it may cause the consumer application to show something ' + 'that was not intended.') fontdict['BaseFont'] = Name(fontinfo.basefont) self.writeObject(fontdictObject, fontdict) return fontdictObject # We have a font file to embed - read it in and apply any effects t1font = type1font.Type1Font(fontinfo.fontfile) if fontinfo.effects: t1font = t1font.transform(fontinfo.effects) fontdict['BaseFont'] = Name(t1font.prop['FontName']) # Font descriptors may be shared between differently encoded # Type-1 fonts, so only create a new descriptor if there is no # existing descriptor for this font. effects = (fontinfo.effects.get('slant', 0.0), fontinfo.effects.get('extend', 1.0)) fontdesc = self.type1Descriptors.get((fontinfo.fontfile, effects)) if fontdesc is None: fontdesc = self.createType1Descriptor(t1font, fontinfo.fontfile) self.type1Descriptors[(fontinfo.fontfile, effects)] = fontdesc fontdict['FontDescriptor'] = fontdesc self.writeObject(fontdictObject, fontdict) return fontdictObject