def get_installed_fonts(): def callback(font, tm, fonttype, names): names.append(font.lfFaceName) return True fontnames = [] hdc = win32gui.GetDC(None) win32gui.EnumFontFamilies(hdc, None, callback, fontnames) win32gui.ReleaseDC(hdc, None) return fontnames
def get_system_fonts(): def callback(font, tm, fonttype, names): names.append(font.lfFaceName) return True fontnames = [] hdc = None try: hdc = win32gui.GetDC(None) win32gui.EnumFontFamilies(hdc, None, callback, fontnames) finally: if hdc: win32gui.ReleaseDC(hdc, None) hdc = None fontnames.sort() return fontnames
import win32gui def callback(font, tm, fonttype, names): names.append(font.lfFaceName) return True fontnames = [] hdc = win32gui.GetDC(None) win32gui.EnumFontFamilies(hdc, None, callback, fontnames) print("\n".join(fontnames)) win32gui.ReleaseDC(hdc, None)
logfont.lfUnderline, logfont.lfStrikeOut, logfont.lfCharSet, logfont.lfOutPrecision, logfont.lfClipPrecision, logfont.lfQuality, logfont.lfPitchAndFamily), gui.GetTextExtentPoint32( hdc, '12345'), _gui_font2.width('12345') _gdip_font2 = gdip.Font.from_logfont(hdc, logfont) print '2.------', _gdip_font2.ptr except: import traceback traceback.print_exc() return True try: gui.EnumFontFamilies(win_none.GetDC().GetSafeHdc(), None, enum_fonts, None) _gui_font2 = GUI.Font(family=u'文泉驿等宽微米黑', size=17) _gui_font3 = GUI.Font(family='Noto Sans Mono CJK SC Regular', size=17) _gui_font4 = ui.CreateFont({ 'name': 'Noto Sans Mono CJK SC Regular', 'height': -17, 'weight': 400 }) print _gui_font2.width(u'12345文'), _gui_font3.width(u'12345文') hdc = win_none.GetDC().GetSafeHdc() gui.SelectObject(hdc, _gui_font4.GetSafeHandle()) print gui.GetTextExtentPoint32(hdc, u'12345文文') gui.SelectObject(hdc, _gui_font3._win_font.GetSafeHandle()) print gui.GetTextExtentPoint32(hdc, u'12345文') print _gui_font3._win_gdip_font.ptr, _gui_font2._win_gdip_font.ptr print _gui_font2.width(u'文泉驿等宽微米黑'), _gui_font2.width(
else: t+="t" c="" if font.lfCharSet == win32con.OEM_CHARSET: c="OEM" elif font.lfCharSet == win32con.ANSI_CHARSET: c="ANSI" elif font.lfCharSet == win32con.SYMBOL_CHARSET: c="SYMBOL" else: c=str(font.lfCharSet) l.append("%r : %s %s" % (font.lfFaceName, c, t)) return True param=[] # arbitrary object, not None win32gui.EnumFontFamilies(hdc, None, callback, param) story.ul(*l) win32print.ClosePrinter(h) story.h2("EnumPrinters()") "http://aspn.activestate.com/ASPN/docs/ActivePython/2.4/pywin32/win32print__EnumPrinters_meth.html" l=[p for p in win32print.EnumPrinters( win32print.PRINTER_ENUM_LOCAL,None,1)] \