Amateur d'infographie, je restais sur ma faim avec ma distribution Debian Sarge jusqu'à peu... Je me souviens de mon bon vieux 166MMX avec Win95 et Corel Draw et les centaines de polices disponibles sur les CDs... que je n'ai plus :( J'ai donc fouiné un peu sur l'internet et j'ai trouvé une solution satisfaisante.
Voici la procédure que j'ai suivi avec succès :
1. Configurer sa distribution correctement en suivant par exemple les conseils de cet article - http://www.the-asw.com/articles/2005/08/01/2-comment-avoir-d(...)
2. Récupérer des polices (libres de préférence, mais pas forcément) sur l'internet. Là, c'est fontolino.de qui m'a bien aidé :-p
Oui, mais voilà, sur fontolino, il faut cliquer sur chaque police pour la télécharger, et j'avais pas envie de passer des heures sur le site en question qui comporte plus de 500 polices...
J'ai donc créé des outils adéquats pour récupérer les polices qui sont proposées au téléchargement sous forme de fichier zip. Ces outils sont écrits en PHP et sont à utiliser en ligne de commande. c'est cette procédure que je vais expliquer ici.
Récupérer et installer les polices de Fontolino
1. Télécharger les polices de caractère
Lorsqu'on télécharge les polices "manuellement" depuis fontolino.de, on constate que les urls sont de la forme http://www.fontolino.de/files/download.php?d=123 où d est l'identifiant de la police (ici police n°123)...
J'ai donc commencé par récupérer toutes les polices à l'aide de l'outil dont le code apparait ci-dessous.
<?php
// fichier get_fonts.php
if ($argc != 3)
{
echo "usage: php get_fonts.php first last\nwhere first and last are (included) indexes\n\n";
}
else
{
for($i=$argv[1]; $i<=$argv[2]; $i++)
{
$url = "http://www.fontolino.de/files/download.php?d=".$i;
$name = "font-".$i.".zip";
$command = "wget -q -O $name $url";
echo $command." ...";
exec($command);
echo "ok\n";
}
}
?>
Cet outil est exécuté en ligne de commande [ php get_fonts.php id_debut id_fin ]. Il exécute simplement wget avec les paramètres appropriés pour récupérer les polices et les sauvegarder dans le dossier courant.
Note : dans mon cas, id_debut vaut 1 et id_fin vaut 500.
2. Extraire les fichiers
A ce niveau, on se retrouve avec une série de fichiers zip de la forme font-123.zip. Il faut alors supprimer les fichiers vides (correspondant à des identifiant de police inexistant). On les détectera facilement à l'aide d'un gestionnaire de fichiers en constatant que leur taille est de quelques octets seulement.
L'étape suivante consiste à dézipper tous ces fichiers. J'ai donc utilisé un outil qui se content d'extraire tous les fichiers d'un zip :
<?php
//fichier extract_font_files.php
// ouverture du dossier courant en lecture
if($dir_handle = opendir("."))
{
while($file = readdir($dir_handle))
{
// on ne traite que les fichiers ".zip"
if(strlen($file)>=3 && substr($file,-3)=="zip")
{
echo "Archive file : $file\n";
$zip_file = zip_open($file);
// pour ces fichiers on extrait tout le contenu
while ($zip_entry = zip_read($zip_file))
{
$zipped_file_name = zip_entry_name($zip_entry);
echo "> Font file : $zipped_file_name\n";
// on ouvre le fichier contenu dans le zip et on l'extrait localement
if (zip_entry_open($zip_file, $zip_entry, "r"))
{
$zipped_file_content = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
$new_file_handle = fopen($zipped_file_name, "w");
fwrite($new_file_handle, $zipped_file_content);
fclose($new_file_handle);
zip_entry_close($zip_entry);
}
}
}
}
closedir($dir_handle);
}
?>
Cet outil est exécuté en ligne de commande [ php extract_font_files.php ]. Il extrait simplement tous les fichiers contenus dans tous les zip du répertoire courant.
Remarque : cela pose un problème quant aux licences d'utilisation des différentes polices :la licence se trouve dans un fichier texte inclus dans le zip qui sera écrasé par les fichiers de licence suivants.
3. Installer les polices
On se retrouve maintenant avec un dossier bien rempli, contenant :
- les fichiers zip,
- les fichiers des polices (ttf, otf),
- les fichiers php.
Reste à installer les polices qui nous intéressent... Rien de plus facile : visualiser le dossier à l'aide d'un gestionnaire de fichiers tel que Nautilus permet de prévisualiser les polices et de sélectionner celles qui nous intéressent. On se contentera alors de les copier (utilisateur root) dans un sous-dossier de /usr/share/fonts/truetype/ créé à cet effet, par exemple /usr/share/fonts/truetype/fontolino.de. La réouverture de session devrait suffire à les prendre en compte.
Conclusion
La station GNU/Linux propose maintenant une série de polices de qualité variable mais riche. Il n'y a plus qu'à les utiliser :-p
Cette solution n'est vraisemblablement pas la plus simple ni la plus rapide, elle permettra néanmoins aux utilisateurs familiers du langage PHP d'enrichir leur système.
Ressources
Packages nécessaires à la manipulation :
- wget
- php4
- php4-cli
- php4-common
Liens utiles :
- Configurer ses polices : http://www.the-asw.com/articles/2005/08/01/2-comment-avoir-d(...)
- Fontolino, des polices à télécharger : http://www.fontolino.de
- Documentation php : http://nexen.net
# Bash c'est bien aussi
Posté par Ackira . Évalué à 10.
#téléchargement
for i in `seq 0 100`
do wget -q -O font-${i}.zip http://www.fontolino.de/files/download.php?d=$i
done
#On supprime les fichiers vides
ls -s | awk '{if($1 == 0) system("rm " $2);}'
#on extrait maintenant les zip:
for i in *.zip
do unzip $i
done
C'est bien entendu très leger, à etoffer, les limites se configurent à la main, mais ça fait la meme chose :)
[^] # Re: Bash c'est bien aussi
Posté par benoar . Évalué à 4.
Oui mais tu comprends, le shell ça date de l'âge des dinausores de l'informatique, et il n'y a pas de boite qui fait plein de pub dessus : c'est pas hype.
Donc c'est forcément nul...
</humour>
[^] # Re: Bash c'est bien aussi
Posté par Sébastien Koechlin . Évalué à 4.
[^] # Re: Bash c'est bien aussi
Posté par liberforce (site web personnel) . Évalué à 3.
[^] # Re: Bash c'est bien aussi
Posté par LeBouquetin (site web personnel, Mastodon) . Évalué à 1.
Promis je me mets au shell...
#tracim pour la collaboration d'équipe __ #galae pour la messagerie email __ dirigeant @ algoo
# larabie
Posté par ccomb (site web personnel) . Évalué à 2.
[^] # Re: larabie
Posté par LeBouquetin (site web personnel, Mastodon) . Évalué à 1.
- ttf-larabie-deco > 157 polices
- ttf-larabie-straight > 155 polices
- ttf-larabie-uncommon > 142 polices
En fait, cette manipulation a été initiée lorsque je me suis mis à la recherche de la police AlfredDrake... qu'on trouve notamment sur fontolino.de
#tracim pour la collaboration d'équipe __ #galae pour la messagerie email __ dirigeant @ algoo
# oui mais
Posté par Anonyme . Évalué à 1.
[^] # Re: oui mais
Posté par Patrick Trauquesègues . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.