• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

km92

[Ajuda] Carregar e usar font

8 mensagens neste tópico

Boas!

Preciso de saber como faço para carregar uma font de uma pasta para a poder utilizar no programa, visto que a mesma não existe no computador onde quero usar o programa.

Há alguma maneira de fazer isto?

Desde já agradeço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá,

Tens aqui um exemplo bastante simples:

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        IO.File.Copy("c:\Ayuma2yk.ttf", "c:\windows\fonts\Ayuma2yk.ttf", True)
        FontUtil.InstallFont("Ayuma2yk.ttf")
    End Sub

End Class


Public Class FontUtil

    Private Declare Function AddFontResource Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFileName As String) As Long
    Private Declare Function RemoveFontResource Lib "gdi32" Alias "RemoveFontResourceA" (ByVal lpFileName As String) As Long

    ''' <summary>
    ''' Instala a fonte no sistema
    ''' </summary>
    ''' <param name="FileName">Nome do Ficheiro</param>
    Public Shared Function InstallFont(ByVal FileName As String) As Boolean
        InstallFont = AddFontResource(FileName) <> 0
    End Function

    ''' <summary>
    ''' Desinstala a fonte no sistema
    ''' </summary>
    ''' <param name="FileName">Nome do Ficheiro</param>
    Public Shared Function UninstallFont(ByVal FileName As String) As Boolean
        UninstallFont = RemoveFontResource(FileName) <> 0
    End Function

End Class

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei até que ponto isso será boa pratica, dependendo da forma como for utilizador. Se eu fosse utilizador de tal programa e viesse a descobrir que o programa me anda a instalar coisas no computador que eu não quero, não sei se ia gostar. Sim, é uma fonte, nada de mais, mas se a aplicação não for nada relacionada com desenho tipo Photoshop ou até mesmo o Word que instalam várias fontes (aqui não tenho nada contra) acho má politica a aplicação fazer isso sem o consentimento do utilizador.

E por um lado, se é uma fonte para ser usada no interface, então ai é que sou mais apologista que deves usar as fontes que vem com o sistema operativo que foram criadas com esse propósito. Permitindo assim um sistema consistente entre diversas aplicações. É só uma sugestão, sem saber qual o propósito da tua aplicação, a quem se destina e os requisitos. Mas penso que poderás evitar isso...

De qualquer forma, penso que a solução do jpaulino seja a única que podes usar. Se o que pretendes é ter a font na pasta da aplicação e carrega-la on-demand, penso que isso não é possível, mas não tenho a certeza.

E depois de ler isto tudo, reparei que o jpaulino também colocou código para eliminar a fonte. Bem, se a apagares depois de o programa terminar, talvez faça menos mal... Mas só mais uma nota, se a aplicação for para correr no Windows Vista, penso que precisas de privilégios de administrador para instalar fontes, mas mais uma vez, não tenho a certeza.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei até que ponto isso será boa pratica, dependendo da forma como for utilizador. Se eu fosse utilizador de tal programa e viesse a descobrir que o programa me anda a instalar coisas no computador que eu não quero, não sei se ia gostar. Sim, é uma fonte, nada de mais, mas se a aplicação não for nada relacionada com desenho tipo Photoshop ou até mesmo o Word que instalam várias fontes (aqui não tenho nada contra) acho má politica a aplicação fazer isso sem o consentimento do utilizador.

E por um lado, se é uma fonte para ser usada no interface, então ai é que sou mais apologista que deves usar as fontes que vem com o sistema operativo que foram criadas com esse propósito. Permitindo assim um sistema consistente entre diversas aplicações. É só uma sugestão, sem saber qual o propósito da tua aplicação, a quem se destina e os requisitos. Mas penso que poderás evitar isso...

Concordo! Se for uma fonte especial para um logotipo(por exemplo) é preferivel criar a imagem e usa-la do que instalar fontes.

E depois de ler isto tudo, reparei que o jpaulino também colocou código para eliminar a fonte. Bem, se a apagares depois de o programa terminar, talvez faça menos mal... Mas só mais uma nota, se a aplicação for para correr no Windows Vista, penso que precisas de privilégios de administrador para instalar fontes, mas mais uma vez, não tenho a certeza.

Nunca testei no Vista. Ainda não uso.  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Penso que é exactamente isso que ele procura, mas não fazia ideia que era possível. Boa cena :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora