12

on my site a user can print (in pdf) the nda he accepted for some reason i cannot display the pdf

here the logic

first rewrite the rule

.htaccess RewriteRule ^nda/?$ ndapdf.php?useSessionUser=1 [L] 

then the 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"); 

i get:

"TCPDF ERROR: Could not include font definition file: AveriaSans-light"

the font is: ll /fonts/

-rw-r--r-- 1 root root 85084 2011-11-02 17:51 AveriaSans-Light.ttf 

thanks

2 Answers 2

15

I think the problem is, that the directories cache and fonts of TCPDF (residing in the folder which path is stored in the constant K_PATH_MAIN, by default this is the TCPDF-directory) are not writeable by your webserver. Don't confuse your own fonts-directory with the one used by TCPDF internally.

The fonts directory has to be writeable because addTTFfont first converts the TTF-file and writes the output of the conversion in to the fonts directory. If later on SetFont is used with "AveriaSans-light" it tries to include those files and fails with "Could not include font definition file" if they are not found.

Sign up to request clarification or add additional context in comments.

Comments

2
+100

vstm is right but also maybe because you have

-rw-r--r-- 1 root root 85084 2011-11-02 17:51 AveriaSans-Light.ttf 

with capital L and in your code is lowercase l

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.