[PDF et ODBC]

Résolu
styvodiabolo Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   -  
eman4you Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Voilà le souci :
Pour fabriquer mes pdf (à l'aide de la classe FPDF) j'utilise des données tirées de deux bases de données.
Avant je tirais les données d'une base SQL Server et d'une autre base de données : Mysql.

Depuis un petit moment, un souci se pose :
Maintenant pour me connecter à la base SQL Server, j'utilise un odbc (avant je faisait un mssql_connect) mais depuis que je l'utilise (l'odbc) mes pdf me renvoient des caractères bizarres qui ne ressemblent à rien.

Question : Y'a-t-il réellement un conflit entre ODBC et PDF ou ais-je oublié quelque chose ? (En sachant que dans le reste de mon application j'utilise l'odbc pour tirer d'autres valeurs de la base SQL Server et là y' pas de souci -> c'est seulement pour les pdf le souci).

Merci d'avance.
A voir également:

16 réponses

eman4you Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   45
 
Pour ODBC, tu dois préciser la famille de caractères en provenance de la base.

Ton probleme vient des parametres lorsque tu crees ta connexio ODBC.

En effet, ODBC est prévu pour tous les caractères, accentués ou pas, UNICODE, etc...
alors faut indiquer au driver quels caractères sont présents en base
1
styvodiabolo Messages postés 44 Date d'inscription   Statut Membre Dernière intervention  
 
Mes recherches sont restées sans succès, saurais tu m'aiguiller pour que je puisse changer la famille de caractères ?
0
eman4you Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   45
 
* essaie de créer une table en spécifiant l'encodage utf8

* ajoute des car. accentués

* récupère ces meme car. accentués


------------------------------------------------------------------
0
eman4you Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   45
 
Autre approche :

Juste avant la génération du PDF :

Remplace les car. en provenance de la base
par une chaine "hard-codée" dans ton code

???

Ces car. accentués apparaissent dans le PDF ???
0

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

Posez votre question
styvodiabolo Messages postés 44 Date d'inscription   Statut Membre Dernière intervention  
 
arf, 1000 excuses mais je ne vois pas trop la démarche à suivre, puisses tu m'expliciter davantage stp ?
0
eman4you Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   45
 
Publie la ligne de code qui appelle FPDF stp (ou quelques lignes autour c mieux)
0
styvodiabolo Messages postés 44 Date d'inscription   Statut Membre Dernière intervention  
 
Petit bout de code pour le pdf :
require('./../fpdf/fpdf.php');
require_once('./../inc/Connexion.php');
cnx();
$pdf=new FPDF('L');
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetLeftMargin(1);
$pdf->Ln(3);
$pdf->SetFont('Arial','',9);
$pdf->Cell(10,10,"oui");
$pdf->Output();
decnx();

Partie de code pour la fonction odbc_connect (Connexion.php)
$GLOBALS['conn'];
function cnx($host = '***', $username = '***', $password = '***', $db = '***') {
$connection_string = "DRIVER={SQL SERVER};SERVER=".$host.";DATABASE=".$db.";";
$conn = odbc_connect($connection_string, $username, $password);
if(!$conn) {
echo "Impossible d'établir une connexion au serveur ".$host."<br>";
exit;
}
$GLOBALS['conn']=$conn;
}
function decnx() {
@odbc_close($GLOBALS['conn']);
}
0
eman4you Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   45
 
ok :

AVANT LE $pdf->Output();

mets tout plein de caractères accentués et
regarde le resultat dans le PDF

exemple :

$pdf->Cell(4,4,"ôh les bô caractères accentués");

$pdf->Cell(8,8,"aéàéèàéàé");

etc....

essayes avec des cellules différentes.

Ca passe dans le PDF ?????
0
styvodiabolo Messages postés 44 Date d'inscription   Statut Membre Dernière intervention  
 
le souci est que le $pdf->Cell(10,10,"oui"); me sort un pdf incompréhensible donc avec les 2 autres cellules c'est toujours aussi illisible.
0
eman4you Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   45
 
donc le problème ne vient pas des caractères accentués ....................................
......................

....................
0
styvodiabolo Messages postés 44 Date d'inscription   Statut Membre Dernière intervention  
 
Non non, 1000 excuses si je me suis mal exprimé.
Juste si je pouvais voir mes pdf ça serait d'enfer.
Avec le bout de code, vois tu pourquoi je n'arrive même pas à voir le mot "oui" ?
Merci à toi.
0
eman4you Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   45
 
C'est illisile car il manque la police Arial (dans ce cas,
comme ta ligne $pdf->SetFont('Arial','',9); l'indique)

Cette police de caractères doit etre copié sur le serveur sur lequel tourne la page php qui utilise FPDF


Pour installer FPDF, il faut copier le fichier fpdf.php et le dossier font/ à la racine du répertoire

Il te manque les fonts, donc FPDF ne sait pas comment générér les vecteurs du PDF
0
eman4you Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   45
 
0
styvodiabolo Messages postés 44 Date d'inscription   Statut Membre Dernière intervention  
 
Comment cela se fait-il sachant qu'avant d'utiliser l'odbc j'étais avec mssql_connect et là y'avais aucun souci tant au niveau de l'appli qu'au niveau des pdf ?
Et donc juste en changeant les fonctions mssql_... par les fonctions odbc_... l'appli tourne bien mais une fois arrivé au pdf ça foire.
Pourquoi ça ? Merci.
0
styvodiabolo Messages postés 44 Date d'inscription   Statut Membre Dernière intervention  
 
C'est bon, j'ai la solution (un peu étrange) :
De part le require, j'importais un fichier avec des fonctions à l'intérieur.
Mais là, depuis que je n'iporte plus -> j'écris le code des fonctions (importées) dans le script principal et ça marche.
Maintenant, j'ai le souci des accents mais je me suis rappelé une fonction qui peut les gérer -> utf8_decode("une chaine avec accents"); et là pas de souci :).

Un grand merci à toi evan4you.
Bonne continuation.
Tchao.
0
eman4you Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   45
 
Bravo, bien joué !

Happy coding man!
0