Private Shared Sub RegisterFont(ByVal contentFontName As String)

Dim fontDestination = Path.Combine(GetFolderPath(SpecialFolder.Fonts), contentFontName)
'C:\Windows\Fonts 부분과 그 안에 폰트가 설치되어 있는지 확인하는 코드

If Not File.Exists(fontDestination) Then
'해당 경로에 파일이 존재하지 않다면 
File.Copy(Path.Combine(Directory.GetCurrentDirectory(), contentFontName), fontDestination)
'파일을 복사해서 C:\Windows\Fonts 부분에 넣어준다.

Dim fontCol As PrivateFontCollection = New PrivateFontCollection()
fontCol.AddFontFile(fontDestination)
Dim actualFontName = fontCol.Families(0).Name

AddFontResource(fontDestination)

Registry.SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts", actualFontName, contentFontName, RegistryValueKind.String)
'레지스트리에 폰트를 등록시켜주는 부분
End If

End Sub

RegisterFont(폰트 이름.ttf)

해당 방식은 프로그램 경로에 폰트 파일이 같이 있어야 합니다.

복사했습니다!