php – 不能用tcpdf生成pdf
发布时间:2020-12-13 13:59:49 所属栏目:PHP教程 来源:网络整理
导读:在我的网站上,用户可以打印(以pdf格式)他接受的nda 由于某种原因我无法显示pdf 这里的逻辑 首先重写规则 .htaccessRewriteRule ^nda/?$ndapdf.php?useSessionUser=1 [L] 然后php ?php$html = file_get_contents("/lib/nda.txt");$html = str_replace("##user
在我的网站上,用户可以打印(以pdf格式)他接受的nda
由于某种原因我无法显示pdf 这里的逻辑 首先重写规则 .htaccess RewriteRule ^nda/?$ndapdf.php?useSessionUser=1 [L] 然后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,false,""); $pdf->lastPage(); $pdf->Output("/home/comp/pdf/nda/$currentUser.pdf","F"); header("Content-Type: application/pdfn"); read("/home/comp/pdf/nda/$currentUser.pdf"); 我得到: “TCPDF错误:无法包含字体定义文件:AveriaSans-light” 字体是:ll / fonts / -rw-r--r-- 1 root root 85084 2011-11-02 17:51 AveriaSans-Light.ttf 谢谢
我认为问题是,TCPDF的目录缓存和字体(驻留在文件夹中的路径存储在常量K_PATH_MAIN中,默认情况下是TCPDF目录)不能由您的Web服务器写入.不要将自己的字体目录与TCPDF内部使用的字体混淆.
fonts目录必须是可写的,因为addTTFfont首先转换TTF文件,并将转换的输出写入fonts目录.如果稍后将SetFont与“AveriaSans-light”一起使用,则会尝试包含这些文件,如果未找到,则会尝试使用“无法包含字体定义文件”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |