Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PDF
PDF Forum d'entraide sur la gestion dynamique de documents PDF avec PHP. Exemples : PDFLib, eZPdf, PhpToPdf... Avant de poster -> FAQ PDF et Cours PDF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/12/2010, 11h12   #1
Membre du Club
 
Avatar de tavarlindar
 
Inscription : janvier 2007
Messages : 238
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 238
Points : 57
Points : 57
Par défaut FPDF-MYSQL multi langues

Bonjour à tous,

Je cherche désespérément à construire un document PDF à partir de données enregistrées en UTF8 dans mysql.

Après m’être battu pour pouvoir enregistrer dans mysql des données en diverses langues (français, anglais, .. . et russe et chinois) et être capable de les réafficher dans un page php, je souhaite pouvoir utiliser ces données et établir des documents pdf.

Actuellement, j’arrive donc à stocker en base les données comme elle on été saisies dans un formulaire. Si on regarde le contenu de la base (via phpmyadmin), les datas sont dans la langue utilisée. Si c’est du chinois, le contenu en Chinois.

Pour ce qui est de langues pas trop exotiques (français, anglais, allemand), en utilisant FPDF, à priori pas de soucis. Par contre pour le russe et le chinois … le pdf ne m’affiche qu’une succession de « ?????? »

Pour récupérer le résultat d’une requête, je fais :
Code :
1
2
 
$pdf->Cell(45,10,html_entity_decode($transfert['date_heure_arrivee_t']),1,0,'L');//largeur,hauteur,text,bordure(0ou1ouLTRB))
Où $transfert['date_heure_arrivee_t'] est le résultat d’une requête mysql (formatage en UTF-8)

Ma question : comment afficher dans un pdf des données qui peuvent être dans n’importe quelle langue ?
J’ai lu que la génération de PDF est un peu particulier, dans la mesure ou on peut embarquer ou non le jeu de police. Le problème, c’est que je ne peux pas savoir à l’avance dans quelle langue est stockée la donnée en base de données. En d’autres termes, si je spécifie une police de caractère, celle-ci doit être universelle. Est-ce que cela existe ?

J’utilise actuellement FPDF 1.6. Il existe une class dérivée tFPDF. Mais j’ai du loupé une étape.
J’ai téléchargé tFPDF, mais je ne dois pas l’utiliser correctement, car j’obtiens les mêmes résultats qu’avec FPDF.

En vous remerciant par avance pour votre aide,

Bien à vous
Tavar
__________________
Mieux vaut penser avant d'agir que d'agir en rêvant.
tavarlindar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2010, 00h27   #2
Membre du Club
 
Avatar de tavarlindar
 
Inscription : janvier 2007
Messages : 238
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 238
Points : 57
Points : 57
Bonsoir,

A priori, j'ai bien avancé. Après avoir parcouru plusieurs librairies, je suis revenu sur tFPDF. En partant de données stockées en base en UTF-8, j'arrive à afficher le résultat de requête en utilisant mysql_query("SET NAMES 'utf8'");
Cela fonctionne avec de nombreuses langues dont le russe et autres langues nordiques. (tests fait rapidement)

Code :
1
2
3
4
5
6
7
8
require('../include/tfpdf.php');
...
mysql_query("SET NAMES 'utf8'");
 
$pdf->AddFont('DejaVu','','DejaVuSansCondensed.ttf',true);
$pdf->SetFont('DejaVu','',10);
 
$pdf->Cell(160,4,$transfert['num_vol_t'],0,1,'L',0);//largeur,hauteur,text,bordure(0ou1ouLTRB)
Seul le chinois résiste !

D'où ma question : connaissez vous une police ttf universelle ? si oui où la télécharger ?

En parcourant le net et en étudiant PCPDF, j'ai vu qu'il existe stsongstdlight, mais je n'ai que le fichier stsongstdlight.php que n'arrive pas transformer en stsongstdlight.ttf
si je mets :
Code :
1
2
 
$pdf->AddFont('stsongstdlight','','stsongstdlight.php',true);
le message d'erreur suivant apparait :

Citation:
Can't open file /usr/local/www/vhosts/nom_du_site/httpdocs/include/font/unifont/stsongstdlight.php
par avance merci à celui ou celle qui pourra m'aider.

Tavar

une réponse possible est la police arialuni

Code :
1
2
3
 
$pdf->AddFont('ARIALUNI','','ARIALUNI.ttf',true);
$pdf->SetFont('ARIALUNI','',10);
Tavar
__________________
Mieux vaut penser avant d'agir que d'agir en rêvant.
tavarlindar est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h41.


 
 
 
 
Partenaires

Hébergement Web