2013-03-07 60 views
7

我創建了一個使用tcpdf動態創建PDF並將字體嵌入到PDF中的網站。用戶可以選擇一系列標準字體,如Arial,Verdana等。然後系統直接從我的服務器中選擇一種ttf字體,並使用下面的代碼進行嵌入。具有該字體的文本在大多數pdf查看器中都可以看到,但iPad/iPhone's查看器未顯示它。我下載了一個新的(隨機)Arial.ttf版本作爲測試(不知道文件的差異,但它似乎現在顯示正常。TCPDF - 在iPad上查看PDF時不顯示嵌入的ttf字體

我需要爲一些字體做這個,但我正在拍攝在黑暗中有點因爲我不知道字體中的內容可能導致它不被嵌入。有人知道ttf字體中的內容會導致它不被顯示嗎?在其他觀衆和節目中顯示可以嵌入的Acrobat文檔屬性?

感謝

$fontname = $pdf->addTTFfont('/tcpdf/fonts/custom/'.$ttfFile.'.ttf', 'TrueTypeUnicode', '', 32); 

//使用的字體

$pdf->SetFont($fontname, '', $fontPoints, '', 'false'); 
+0

你是什麼意思「不顯示」 - 文本實際上完全不在那裏?你能分享其中的一個PDF文件,以便查看它嗎? – 2013-03-08 16:19:23

+0

嗨,感謝您的回覆,字體在Chrome pdf閱讀器和Safari瀏覽器中可見,但不通過iPhone/iPad上的標準查看器。這裏有一個選擇字體的例子,全部通過大多數觀衆展示,有些在iPhone上丟失。根據Acrobat,它們顯然是「嵌入式子集」,任何想法都會非常有幫助。 http://s316279697.websitehome.co.uk/joe/banner790.pdf – user1916116 2013-03-09 23:32:07

+0

我跑過你的文件,通過卡拉斯pdfToolbox預檢(警告,我隸屬於這家公司),我看到兩個也許是奇怪的事情。首先,你的文件還包含兩個明顯不在頁面上使用的Helvetica字體(並且沒有嵌入)。您的文件還會出現一些使用Palatino字體的錯誤。這是不顯示的字體? – 2013-03-11 12:58:33

回答

2

您的$ subset參數是錯誤的。你將它設置爲'false'(帶引號)。它應該是布爾真實的。

<?php 
      ... 
      // Wrong 
      $pdf->SetFont($fontname, '', $fontPoints, '', 'false'); 

      // Right 
      $pdf->SetFont($fontname, '', $fontPoints, '', true); 
      ... 
    ?> 

它爲什麼會起作用?

因爲它嵌入整個字體,而不僅僅是一個子集。 訣竅是將方法$ pdf-> SetFont()中的參數$ subset設置爲true。

http://www.tcpdf.org/doc/code/classTCPDF.html#a471562985997be1573d387f0aeae6964

PDF正在與

的iPad(IOS 7),iPhone(IOS 7),Windows 7中,MACOSX 10.9。

我的PDF創建環境

的Apache 2的MAC 10.9,PHP 5.3.x,則應TCPDF v6.0.078

文件

Example PDF and a PHP Script to create it

+1

實際上,爲了將整個字體嵌入到文檔中並正確顯示在El Capital Preview,iOS等中,應將$ subset設置爲false(boolean false,而不是引號)。 – 2015-11-02 19:48:03