在我的网站上,用户可以打印(以pdf格式)他接受的nda
由于某种原因我无法显示pdf
由于某种原因我无法显示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/pdf\n"); 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”一起使用,则会尝试包含这些文件,如果未找到,则会尝试使用“无法包含字体定义文件”.
原文地址:https://www.jb51.cc/php/139467.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。