2011-11-13 44 views
12

trên trang web của một người sử dụng có thể in (trong pdf) các nda ông chấp nhận đối với một số lý do tôi không thể hiển thị pdfkhông thể tạo pdf với TCPDF

đây logic

đầu tiên viết lại quy tắc

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

thì 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"); 

tôi nhận được:

"TCPDF LỖI: Không thể bao gồm tập tin định nghĩa font chữ: AveriaSans-ánh sáng"

font là: ll/fonts/

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

nhờ

Trả lời

15

Tôi nghĩ vấn đề là , rằng các thư mục cachefonts của TCPDF (nằm trong thư mục đường dẫn được lưu trữ trong hằng số K_PATH_MAIN, theo mặc định đây là thư mục TCPDF) không thể ghi bởi webserv của bạn er. Đừng nhầm lẫn của riêng bạn fonts -directory với một được sử dụng bởi TCPDF nội bộ.

Thư mục fonts phải được ghi vì trước tiên addTTFfont chuyển đổi tệp TTF và ghi kết quả chuyển đổi vào thư mục fonts. Nếu sau này trên SetFont được sử dụng với "AveriaSans-light", nó sẽ cố gắng bao gồm các tệp đó và không thành công với "Không thể bao gồm tệp định nghĩa phông chữ" nếu chúng không được tìm thấy.

2

vstm là đúng, nhưng cũng có lẽ bởi vì bạn có

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

với vốn L và trong mã của bạn là chữ thường l

+1

bản sao xấu và dán –

Các vấn đề liên quan