Mettre une font personnalisée dans un PDF

Cette manipulation est valable à partir d'Ametys 4.2.

Toutes les occurences entre crochets sont à remplacer par vos valeurs.

Dossier fonts

Créer un dossier fonts dans le projet sous WEB-INF/param dans lequel vous y mettez vos différentes polices de caractères.

Fichier fop-user-config.xml

Créer le fichier fop-user-config.xml suivant dans le dossier WEB-INF/param :

fop-user-config.xml

<fop version="1.0"> 
    <renderers> 
        <renderer mime="application/pdf"> 
            <fonts> 
                <font 
                    kerning="yes" 
                    embed-url="./fonts/[MA-FONT]-REGULAR.TTF"> 
                    <font-triplet name="[MaFont]" style="normal" weight="normal"/> 
                </font>
                <font 
                    kerning="yes" 
                    embed-url="./fonts/[MA-FONT]-BOLD.TTF"> 
                    <font-triplet name="[MaFont]" style="normal" weight="bold"/> 
                </font>
                <font 
                    kerning="yes" 
                    embed-url="./fonts/[MA-FONT]-ITALIC.TTF"> 
                    <font-triplet name="[MaFont]" style="italic" weight="normal"/> 
                </font>
                <font 
                    kerning="yes" 
                    embed-url="./fonts/[MA-FONT]-BOLDITALIC.TTF"> 
                    <font-triplet name="[MaFont]" style="italic" weight="bold"/> 
                </font> 
            </fonts> 
        </renderer>
    </renderers> 
</fop> 

Il faut bien évidemment remplacer les fichiers TTF par les bons et faire correspondre les attributs namestyle et weight. L'attribut name cité dans le fichier sera celui utilisé pour récupérer la police dans l'attribut font-family en CSS.

Font light
Pour déclarer une font light, il ne faut pas mettre weight="light" mais weight="100".

Prise en compte

Dû à l'intégration d'un nouveau fichier XML, il est nécessaire de redémarrer le serveur pour tout ajout ou modification du fichier fop-user-config.xml.