2016-11-23 12 views
1

現在、複数のサーバーにフォントをインストールしようとしています。スクリプトを使用してフォントをコピーしてサーバーにインストールすることができましたが、を使わずにフォントにアクセスできるようにする必要があります。Python版のAddFontResource()

私はWindowsのAddFontResource()を見つけましたが、これはC++を使っていますが、PythonやPowershellにも同じ機能がありますか?

(私がチェックし、インストールを行うにはPythonやPowerShellを使用してきた。)

答えて

3

あなたはwin32apiライブラリを使用してみましたか?これは、TTFフォントファイルのインストールたとえば​​

windll.gdi32.AddFontResource()と組み合わせて使用​​することができSendMessage()機能があります。

import win32api 
import ctypes 
import win32con 


ctypes.windll.gdi32.AddFontResourceA("C:\\Path\\To\\Font\\font.ttf") 
win32api.SendMessage(win32con.HWND_BROADCAST, win32con.WM_FONTCHANGE) 
+2

をレガシー[A] NSIのAPIを避けてください。不必要にパスを制限しています。パスにはUnicode文字を含めることができますが、Python 3では書かれたコードは機能しません。 'gdi32 = ctypes.WinDLL( 'gdi32');' 'gdi32.AddFontResourceW ' argtypes =(ctypes.c_wchar_p); '' gdi32.AddFontResourceW(r "C:\ Path \ To \ Font \ font.ttf") ' Python 2のctypesが '' mbcs ''コーデックを使ってバイト列パスを自動的に変換できるようにする 'argtypes'を定義しました。完全な文字の範囲には、 'u" "'リテラルを使用します。 – eryksun