2012-01-14 165 views
6

有人可以告訴我我做錯了什麼嗎?我需要由TCPDF生成的PDF格式的Arial字體。 首先我試過使用: 1)我從Windows字體caltalog中獲取Arial並將其放入TCPDF目錄中。 2)接下來,我在劇本中寫道:TCPDF中的特定字體pdf

$fontname = $pdf->addTTFfont('../lib/tcpdf/arial.ttf', '', '', 32); 

後,在TCPDF /字體出現在3個文件(arial.ctg.z,arial.php和arial.z)。我認爲一切正常,但如果在TCPDF我通過使用該字體:在文件

$pdf->SetFont('arial', '', 16); 

字體的確是宋體,但沒有具體的拋光唱(ąęłżńź)

我也試過自己準備的字體: 我下載ttf2afm和makefontuni.php腳本然後在命令行中我這樣寫道:

ttf2ufm -a arial.ttf 
php -q makefontuni.php arial.ttf arial.ufm 

該命令給我也3個文件(arial.ctg.z,arial.php和arial.z),但最終情況和以前一樣。

我已經承認的所有數據寫入到PDF是UTF-8和TCPDF結構是這樣的:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'utf-8', false); 

我不知道我做錯了。 :(

回答

3

無需添加任何字體,使用DEJAVU Sans字體具有所有的UTF-8字符的內置和TCPDF有它已經..

$pdf->SetFont('dejavusans', '', 14, '', true); 

http://www.tcpdf.org/examples/example_001.phps

+2

是的,你是對的,但我需要Arial字體不dejavusans,這裏是問題 – Karol85 2012-01-14 09:46:07

+0

@Miro Markaravanes:它適用於特殊字符,但不顯示大膽的效果。 – 2017-06-17 08:04:54

0

嗯,你確定你的Arial有所有的UTF-8字符嗎? 我按照這裏的指令http://www.tcpdf.org/fonts.php 它的工作。我遇到的問題是,我只能添加Regular字體 - 只要我加入粗體或斜體,然後改變從另一個角度看,所有角色都變成了圓點。

所以目前我只使用我的Regular字體,而對於粗體我使用'dejavusans'(感謝Miro)。 我的代碼:

$fontname = $pdf->addTTFfont('/lib/tcpdf/fonts/myfont-Regular.ttf','TrueTypeUnicode',''); 
$pdf->SetFont($fontname, '', 8, '', true); 
13

如果你想使用,當你生成的文件自定義字體使用此工具

http://www.xml-convert.com/en/convert-tff-font-to-afm-pfa-fpdf-tcpdf

只是將它們移動到/ fonts目錄,並使用相同的名稱他們已經設置了font-name屬性。

+0

感謝您的支持! – Mati 2015-06-10 08:18:23

+0

我只是想添加2個文件需要添加到庫.php和.z – mujaffars 2015-08-14 09:29:24

+0

哇。它比'TCPDF_FONTS :: addTTFfont'更好。我試圖使用addTTFfont,但字體不起作用。當我替換我的字體的.z和.php文件時,它可以工作。 – 2016-03-26 14:20:59

0

我有同樣的錯誤,我是能夠固定它放在旁邊,德系後:

$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $fontname = $pdf->addTTFfont('tcpdf/fonts/arial.ttf', '', '', 32); $pdf->SetFont('arial', '', 16);

0

我認爲這將幫助你解決的人品問題。

$pdf->SetFont('freeserif', '', 12); 

上面支持UTF-8字符的font-family。

1
$fontname = TCPDF_FONTS::addTTFfont(FCPATH.'/assets/css/fonts/arial-unicode-ms.ttf'); 

這是我用來包含自定義字體到TCPDF。您只需要該字體的.ttf文件。將其添加到您在服務器上選擇的文件夾中,並運行一次該代碼。 (我第一次運行它出口)然後你可以評論這一行,字體會在那裏。

爲了將它添加到出口商你應該把它添加爲字體:

$pdf->addFont('your-font-name', '', 10, '', false); 

如果你希望它是默認:

$pdf->setFont('your-font-name', '', 10, '', false); 

如果你不知道什麼是在PDF中使用的字體的實際名稱:

echo $fontname; 

這會給你在字體中使用的特定名稱導出的文件。

一旦運行該命令後,TCPDF將在其字體文件夾中創建所需的所有文件,並且現在就可以使用了。

如果您想重新添加相同的字體(修改過),您需要刪除tcpdf/fonts/your-font-name中的字體文件。並再次運行此命令重新添加它們。