ne peut pas générer de pdf avec tcpdf
sur mon site, un utilisateur peut imprimer (en format pdf) de la ldn, il a accepté
pour une raison que je ne peut pas afficher le pdf
ici la logique
première réécrire la règle
.htaccess
RewriteRule ^nda/?$ ndapdf.php?useSessionUser=1 [L]
puis le php
<?php
$html = file_get_contents("/lib/nda.txt");
$html = str_replace("##user##", $_SESSION["currentUser"]);
$html = str_replace("##date##", date("Y-m-d h:i:s"));
require("/lib/web/tcpdf/config/lang/eng.php");
require("/lib/web/tcpdf/tcpdf.php");
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, "UTF-8", false);
$pdf->SetCreator("mysite");
$pdf->SetAuthor("author_name");
$pdf->SetTitle("NDA");
$pdf->SetSubject("Accepted NDA");
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, "", PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, "", PDF_FONT_SIZE_DATA));
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->setLanguageArray(array("w_page" => ""));
$fontname = $p->addTTFfont("/fonts/AveriaSans-light.ttf", "TrueTypeUnicode", "", 32);
$pdf->SetFont("arial", "", 10);
$pdf->AddPage();
$pdf->writeHTML($html, true, false, true, false, "");
$pdf->lastPage();
$pdf->Output("/home/comp/pdf/nda/$currentUser.pdf", "F");
header("Content-Type: application/pdf\n");
read("/home/comp/pdf/nda/$currentUser.pdf");
j'obtiens:
"TCPDF ERREUR: impossible d'inclure les polices du fichier de définition: AveriaSans-lumière"
la police est: ll /fonts/
-rw-r--r-- 1 root root 85084 2011-11-02 17:51 AveriaSans-Light.ttf
grâce
source d'informationauteur Xin Qian Ch'ang | 2011-11-13
Vous devez vous connecter pour publier un commentaire.
Je pense que le problème, c'est que les répertoires
cache
etfonts
de TCPDF (résidant dans le dossier dont le chemin est stocké dans la constanteK_PATH_MAIN
par défaut c'est le TCPDF-répertoire) ne sont pas accessible en écriture par le serveur. Ne confondez pas votre proprefonts
-répertoire avec celui utilisé par TCPDF en interne.La
fonts
répertoire doit être accessible en écriture, caraddTTFfont
convertit tout d'abord la TTF fichier et écrit le résultat de la conversion dans lafonts
répertoire. Si plus tard,SetFont
est utilisé avec "AveriaSans-lumière", il essaie d'inclure ces fichiers et ne parvient pas à "ne Pouvait pas inclure les polices du fichier de définition de" si ils ne sont pas trouvés.vstm est droit, mais aussi peut-être parce que vous avez
avec capital de L et dans votre code est l minuscule