2015-04-27 218 views
6

我想將自定義字體添加到使用TCPDF生成的PDF中。我可能會錯過一些東西,但the docs似乎已過時。他們引用addTTFfont()函數,但我認爲它已被棄用,並且不再存在於最新版本的TCPDF中。如何在TCPDF中添加自定義字體?

我讀,我需要轉換的ttf文件,並把它在字體文件夾,所以我跑:

php/tcpdf/tools/tcpdf_addfont.php -i php/font/rumpelstiltskin-webfont.ttf 

,它生成的這些文件現在都在字體文件夾:

rumpelstiltskinwebfont.ctg.z 
rumpelstiltskinwebfont.z 
rumpelstiltskinwebfont.php 

然後我試圖添加的字體:

$pdf->addFont('rumpelstiltskin'); 
$pdf->SetFont('rumpelstiltskin', '', 14, '', false); 

,但我得到一個錯誤:

TCPDF ERROR: Could not include font definition file: rumpelstiltskin 
+0

也許你必須給addFont函數文件的完整路徑。看起來它沒有找到該文件。 – Loopo

+0

@Loopo這不是它需要的完整路徑,而是你靠近。我正在使用字體的名稱,它需要文件名。感謝評論,它幫助我弄清楚了。 –

+0

我認爲你可以這樣做: http:// stackoverflow。com/questions/5263588/how-to-implement -font-fonts-in-tcpdf – Ulugov

回答

9

我想出了我的問題,我幾乎在那裏。

這裏是一個一步一步:

首先使用tcpdf_addfont.php工具中的字體TCPDF工具文件夾轉換您的字體:

php/tcpdf/tools/tcpdf_addfont.php -i php/font/rumpelstiltskin-webfont.ttf 

這將生成所需的文件,並把它們放在TCPDF字體文件夾。檢查字體文件夾並複製字體的名稱,在我的情況下它是rumpelstiltskinwebfont

在代碼中設置字體使用的字體文件的名稱,並寫了一行文字:

$pdf->SetFont('rumpelstiltskinwebfont', '', 14, '', false); 
$pdf->Write(0, 'Fill text', '', 0, '', true, 0, false, false, 0); 

就是這樣。希望這可以幫助某人。 :)

+1

解決了我的問題;) – Hafez

0

another question得到了這個答案,併爲我解決。你只需要使用第一個參數,即字體文件的路徑。使用TTF和OTF字體。

它生成一個名稱字符串與$pdf->SetFont($fontname, '', $font_size);

希望它可以幫助使用。


最新版本TCPDF使用addTTFfont()方法自動轉換成字體格式TCPDF。例如:

// convert TTF font to TCPDF format and store it on the fonts folder 
$fontname = TCPDF_FONTS::addTTFfont('/path-to-font/FreeSerifItalic.ttf', 'TrueTypeUnicode', '', 96); 

// use the font 
$pdf->SetFont($fontname, '', 14, '', false); 

有關更多信息和示例,請檢查TCPDF Fonts documentation page

注意:一旦字體已被轉換,TCPDF不再需要TTF文件或上述呼叫addTTFfont()