Texte avec une police non installée sur le poste

Résolu
cs_Bassman Messages postés 43 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 24 novembre 2005 - 6 oct. 2005 à 13:17
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 - 7 oct. 2005 à 13:44
Bonjour,



je voudrais savoir comment effectuer une mise en forme d'un tritre avec
une police spécifique non installé sur les postes, c'est à dire par
exemple la police braggadocio, n'est pas installée sous windows, et
sous mac elle y est, du coup mon titre du site web sous mac est nikel
et pas sous windows.



c'est pour cela que je cherche un moyen de mettre la police sur le ftp
du site et par une fonction php générer le titre pour qu'il soit
affiché avec la police autant sous mac que windows que linux, sans
l'avoir installé sur l'ordi.



et vu qu'il existe une system makefont pour faire des fonts pour
générer des pdf par rapport au site je me dis que c'est possible de
faire un titre généré avec la police sur le ftp.







merci d'avance pour toutes vos réponse

MiStEr_B@sSm@N

12 réponses

arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
7 oct. 2005 à 13:14
ok, alors

1./ La fonction header(...) doit toujouts être la première instruction envoyée au navigateur. http://fr.php.net/manual/fr/function.header.php
par exemple, tu peux écrire :
<?php
$x=5;
session_start();
header(...);
echo 'blabla';
?>

mais pas

<?php
echo 'blabla';
header(...);
...
?>

2./ Pour positionner l'image que tu as créer avec ta fonction img(), tu dois utiliser un champ image html
...
</html>

3./ Ou alors, tu crées ton image dans un fichier (png par exemple), et tu l'appelles dans ta balise img :
d'une part img.php
// Définition du content-type
header("Content-type: image/png");

// Création de l'image
$im = imagecreate(400, 300);

// Création de quelques couleurs
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);

// Le texte à dessiner
$text = 'Les Goonies';
// Remplacez le chemin par votre propre chemin de police
$font = 'Goonies.ttf';

// Ajout d'ombres au texte
imagettftext($im, 20, 0, 110, 210, $grey, $font, $text);

// Ajout du texte
imagettftext($im, 20, 0, 100, 200, $black, $font, $text);

// Utiliser imagepng() donnera un texte plus claire,
// comparé à l'utilisation de la fonction imagejpeg()
imagepng($im,'img.png');
imagedestroy($im);

et d'autre part test.php :
<html>
...
<?php
if (!file_exists("img.png"))
include("img.php");
?>
...

...
</html>

Arn;o)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
6 oct. 2005 à 13:39
Hello,



avec ça dans ta css :



<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" menu="FALSE" swmodifyreport="TRUE" height="250" width="250"></object>@font-face


{


font-family: "MaPolice";


src: url("http://mon-site.com/polices/mapolice.ttf")


}
cs_Bassman Messages postés 43 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 24 novembre 2005
7 oct. 2005 à 08:12
ca a pas l'air de vouloir fonctionner, ni sous IE ni sous Firefox :(




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">

<HTML>

  <HEAD>

    <TITLE>Essai de police</TITLE>

    <STYLE TYPE="text/css" MEDIA="screen, print">

     @font-face

    {

        font-family: "test";

        src: url("http://mr.bassman.free.fr/polices/Goonies.ttf");

    }

    BODY{ font-family: "test", serif; }

    #unnamed1 {

        font-family: "test", serif;

    }

    </STYLE>

  </HEAD>

  

   


   Goonies

  


  

</HTML>



MiStEr_B@sSm@N
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 oct. 2005 à 09:11
Il faut mettre le nom correct de la police, pas 'test'. Le nom complet (quand tu la regardes avec un font viewer).

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bassman Messages postés 43 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 24 novembre 2005
7 oct. 2005 à 10:25
bon j'ai essayer mais ca pas marché, j'ai trouvé un autre moyen :



Microsoft WEFT



qui permet de générer un fichier .eot






<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">

<HTML>

  <HEAD>

    <TITLE>Essai de police</TITLE>

 

<STYLE TYPE="text/css">

<!-- /* $WEFT -- Created by: Bassman on 07/10/2005 -- */

  @font-face {

    font-family: Goonies;

    font-style:  normal;

    font-weight: 700;

    src: url(GOONIES0.eot);

  }

  H1 {

font-family: Goonies, Arial, sans-serif;

font-size: 36px;

color: #008000;

}

-->

</STYLE>



</HEAD>

  

   Goonies


  

</HTML>






on peut pas directement implémenter un .ttf :( enfin en tout cas ca
marche pas pour moi, si ca fonctionne chez toi dis moi ou est mon
erreur :(, par contre avec le .eot ca marche pas sous Firefox mais IE
ok :(



merci :)




MiStEr_B@sSm@N
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
7 oct. 2005 à 11:30
Tu peux le faire en php, en utilisant une image :

imagettftext($img,$taille,0,$x,$y,$couleur,"FichierPolice.ttf",$texte);
http://fr2.php.net/manual/fr/function.imagettftext.php

Il faut mettre le fichier ttf dans un répertoire accessible au serveur web.

Arn;o)
cs_Bassman Messages postés 43 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 24 novembre 2005
7 oct. 2005 à 12:23
ok merci, c'est nikel ca fonctionne, j'ai pris le script sur le site
mais par contre dès que je le met en fonction ou dans une autres pages
php ou si je met du code HTML avant la balise <? ?> ca me met un
erreur :






L'image « http://localhost/SVO/test.php » ne peut être affichée, car elle contient des erreurs.




MiStEr_B@sSm@N
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
7 oct. 2005 à 12:28
affiche directement http://localhost/SVO/test.php dans ton navigateur, comme ça tu sauras quelle est l'erreur... et doone-nous ton code, sinon on peut pas t'aider ;o)
Au fait, utilises plutôt les balises <?php que <? tout court...

Arn;o)
cs_Bassman Messages postés 43 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 24 novembre 2005
7 oct. 2005 à 12:52
ok donc voila le code pris sur le site :





test.php =>




<?


// D&#233;finition du content-type


header("Content-type: image/png");





// Cr&#233;ation de l'image


$im = imagecreate(400, 300);





// Cr&#233;ation de quelques couleurs


$white = imagecolorallocate($im, 255, 255, 255);


$grey = imagecolorallocate($im, 128, 128, 128);


$black = imagecolorallocate($im, 0, 0, 0);





// Le texte &#224; dessiner


$text = 'Les Goonies';


// Remplacez le chemin par votre propre chemin de police


$font = 'Goonies.ttf';





// Ajout d'ombres au texte


imagettftext($im, 20, 0, 110, 210, $grey, $font, $text);





// Ajout du texte


imagettftext($im, 20, 0, 100, 200, $black, $font, $text);





// Utiliser imagepng() donnera un texte plus claire, 


// compar&#233; &#224; l'utilisation de la fonction imagejpeg()


imagepng($im);


imagedestroy($im);


?>











juste comme ca ca marche, en suite imaginons que je veuille la centré
ou que ca soit ma banniere (donc j'ai deja une page html avec du code
et un
<?php //le code ci-dessus
?>
par exemple)










<?php


// D&#233;finition du content-type


header("Content-type: image/png");





// Cr&#233;ation de l'image


$im = imagecreate(400, 300);





// Cr&#233;ation de quelques couleurs


$white = imagecolorallocate($im, 255, 255, 255);


$grey = imagecolorallocate($im, 128, 128, 128);


$black = imagecolorallocate($im, 0, 0, 0);





// Le texte &#224; dessiner


$text = 'Les Goonies';


// Remplacez le chemin par votre propre chemin de police


$font = 'Goonies.ttf';





// Ajout d'ombres au texte


imagettftext($im, 20, 0, 110, 210, $grey, $font, $text);





// Ajout du texte


imagettftext($im, 20, 0, 100, 200, $black, $font, $text);





// Utiliser imagepng() donnera un texte plus claire, 


// compar&#233; &#224; l'utilisation de la fonction imagejpeg()


imagepng($im);


imagedestroy($im);


?>











si j'affche ma page http://localhost/SVO/test.php j'ai cette erreur :





L'image « http://localhost/SVO/test.php » ne peut être affichée, car elle contient des erreurs.





cela sous firefox, sous IE j'ai rien juste le cadre habituel quand IE trouve pas l'image avec la petite croix rouge





de meme si je met le code en fonction





img.php =>







<?php


function img() {


// D&#233;finition du content-type


header("Content-type: image/png");





// Cr&#233;ation de l'image


$im = imagecreate(400, 300);





// Cr&#233;ation de quelques couleurs


$white = imagecolorallocate($im, 255, 255, 255);


$grey = imagecolorallocate($im, 128, 128, 128);


$black = imagecolorallocate($im, 0, 0, 0);





// Le texte &#224; dessiner


$text = 'Les Goonies';


// Remplacez le chemin par votre propre chemin de police


$font = 'Goonies.ttf';





// Ajout d'ombres au texte


imagettftext($im, 20, 0, 110, 210, $grey, $font, $text);





// Ajout du texte


imagettftext($im, 20, 0, 100, 200, $black, $font, $text);





// Utiliser imagepng() donnera un texte plus claire, 


// compar&#233; &#224; l'utilisation de la fonction imagejpeg()


imagepng($im);


imagedestroy($im);


}


?>








et dans mon test.php







<?php


include("img.php");


img();


?>






comme ca ca fonctionne, si je rajoute mes div plus rien comme en haut,
meme en faisant un echo (ce qui revient au meme que mettre le html en
dur)



et je rajoute du html apres ma balise php de mon test.php il n'est meme pas affiché que ce soit sous IE ou FireFox



voila tout ce que j'ai testé



MiStEr_B@sSm@N
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
7 oct. 2005 à 13:18
Dans le post précédent, c'est peut-être pas très clair, mais la différence entre 2./ et 3./ c'est :

dans img.php :
2./imagepng($im);
3./imagepng($im,'img.png');

et dans test.php :
2./
3./ (en plus du if(...) include(...))

Arn;o)
cs_Bassman Messages postés 43 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 24 novembre 2005
7 oct. 2005 à 13:33
ok nikel merci BCP Arn;o) tou fonctionne correctement, je te remercie 1000 fois :)



j'ai aussi trouvé une autre fonction du meme style que j'ai adapté avec
le imagettftext, mais celle la prend une image deja faite et rajoute le
text qui peut etre fort interresant et recréé un image qui sera écrite
sur le serv (qui peut peut etre poser des prob si on a pas le bon droit
sur le rep), mais vraiment ce que je voulais faire c'est ce que tu ma
donné Arn;o), je met quand meme le code si ca interrese qqun :)
modifier pour que le texte sois ecris avec une police spécifique sinon
décomenté la ligne (imagestring($im, $po , $posLarg, $posHaut, $text,
$color);//écriture sur l'image //
Ligne par Default) et commentez les 2 lignes précédentes.



img.php =>



arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
7 oct. 2005 à 13:44
Content de t'avoir aider à avancer
a+
Arn;o)
Rejoignez-nous