IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Fichier TTF correspondant à sa police


Sujet :

Langage Delphi

  1. #1
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    749
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 749
    Points : 500
    Points
    500
    Par défaut Fichier TTF correspondant à sa police
    bonjour a tous,

    Je suis obligé lors de la création d'un document (PDF) de définir le nom de son fichier *.tff associé pour avoir la fonte en gras ou italique...

    Par exemple:
    le nom générique pour la police "Arial" est " arial.ttf ",
    le nom associé pour la police "Arial Italique" est " ariali.ttf ",
    le nom associé pour la police "Arial Gras" est " arialbd.ttf "...

    Mon problème est de retrouver les noms des polices associées a un nom de police générique.

    Mes recherches sur net ont étés infructueuse, ici aussi ..

    j'ai peut être trouvé une petite function en VB et si une âme ayant un peu de temps savait me la traduire cela me permettrai de l'essayer ..

    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    Option Explicit
     
    Private Declare Function CreateScalableFontResource Lib "gdi32" _ 
       Alias "CreateScalableFontResourceA" _
      (ByVal fHidden As Long, _
       ByVal lpszResourceFile As String, _
       ByVal lpszFontFile As String, _
       ByVal lpszCurrentPath As String) As Long
     
    Private Sub Command1_Click()
     
       Dim TTFontFile As String
     
      'get the font name for Arial Bold
      'be sure to verify that this font exists on your system
       TTFontFile = "C:\Windows\Fonts\anb_____.TTF"   
     
       Label1.Caption = GetFontName(TTFontFile)
     
    End Sub
     
     
    Public Function GetFontName(FileNameTTF As String) As String
     
       Dim hFile As Integer
       Dim Buffer As String
       Dim FontName As String
       Dim TempName As String
       Dim iPos As Integer
     
      'Build name for new resource file in a temporary file, and call the API.
       TempName = App.Path & "\~TEMP.FOT"
     
       If CreateScalableFontResource(1, _
                                     TempName, _
                                     FileNameTTF, _
                                     vbNullString) Then
     
         'The name sits behind the text "FONTRES:"
          hFile = FreeFile
     
          Open TempName For Binary Access Read As hFile
     
             Buffer = Space(LOF(hFile))
             Get hFile, , Buffer
             iPos = InStr(Buffer, "FONTRES:") + 8
             FontName = Mid(Buffer, iPos, _
                            InStr(iPos, Buffer, vbNullChar) - iPos)
     
          Close hFile
     
          Kill TempName
     
        End If
     
      'Return the font name
       GetFontName = FontName
     
    End Function


    Mais si quelqu'un a une idée.. je suis aussi preneur .

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 878
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 878
    Points : 15 310
    Points
    15 310
    Par défaut
    Citation Envoyé par petitcoucou31 Voir le message
    (...) j'ai peut être trouvé une petite function en VB et si une âme ayant un peu de temps savait me la traduire cela me permettrai de l'essayer ..
    Perds pas ton temps avec ça, ce code installe une police en partant du .TTF.

    Citation Envoyé par petitcoucou31 Voir le message
    (...) Mais si quelqu'un a une idée.. je suis aussi preneur .
    À voir...
    Et aussi ici, qui ressemble à ton besoin (c'est pas gagné...)

    Et enfin, en bas de cette page, le script VBS fonctionne.
    À partir de la liste créée (exemple chez moi :
    Arial (TrueType),ARIAL.TTF
    Arial Bold (TrueType),ARIALBD.TTF
    Arial Bold Italic (TrueType),ARIALBI.TTF
    Arial Italic (TrueType),ARIALI.TTF
    Courier New (TrueType),COUR.TTF
    Courier New Bold (TrueType),COURBD.TTF
    Courier New Bold Italic (TrueType),COURBI.TTF
    Courier New Italic (TrueType),COURI.TTF
    ), tu devrais peut-être trouver ton bonheur.

    Bon courage,

  3. #3
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 764
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 764
    Points : 13 386
    Points
    13 386
    Par défaut
    Citation Envoyé par petitcoucou31 Voir le message
    Je suis obligé lors de la création d'un document (PDF) de définir le nom de son fichier *.tff associé pour avoir la fonte en gras ou italique...
    Ce qui parait surprenant lorsqu'on parle de police de base telle qu'Arial qu'on retrouve sur tous les systèmes
    L'insertion du TTF dans le PDF est nécessaire lors d'utilisation de polices exotiques qui ont de fortes chances d'être absentes du système cible.

  4. #4
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    749
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 749
    Points : 500
    Points
    500
    Par défaut
    merci a vous deux ,

    Je vais regardé ce que tu m'indiques JIPETE...

    Pour répondre a AndNotOr, on c'est peut être mal compris.
    j'utilise un "composant" qui me permet de générer mes pages PDF directement depuis mon application (un genre de Tcanvas pour PDF) et j'ai donc besoin d'utiliser diverse police présente sur le pc.

    Mais je dois charger (par mon application) ces polices pour les utiliser lors de la création du pdf et ceci a partir de leur nom (*.ttf).
    Cela est facile quand on utilise la police "normale" puisque leur nom est connu, mais impossible pour la même police en gras par exemple, puisque je ne connais pas le nom de cette même police en gras (bien sur de manière automatique).

    je vous tiens au courant pour la suite.

Discussions similaires

  1. retrouver le fichier TTF correspondant à une police de caractère.
    Par Lelio1407 dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 07/12/2010, 16h06
  2. Réponses: 2
    Dernier message: 02/12/2008, 16h19
  3. Réponses: 0
    Dernier message: 04/01/2008, 15h00
  4. Récupérer le nom du fichier spool correspondant à un job
    Par chtiot dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 23/02/2004, 20h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo