2015-05-27 59 views
0

我注意到,使用FPDF/FPDI等PHP生成的文件在向其中添加/嵌入字體時非常成熟。所以我試圖避免這樣做,如果我使用像arial這樣的着名字體家族。未添加字體時的FPDF行爲

假設我只用宋體/宋體,黑體和我註釋掉以下部分,如這在我的構造函數:

// $this->AddFont('Arial', '', 'arial.php'); 
// $this->AddFont('Arial', 'B', 'arialbd.php'); 

什麼是PDF文件的打開在不同計算機上的預期的行爲?

之所以這樣做是:

  1. 我PDF的大小,而不是1Mb的
  2. 10KB我認爲宋體是目前幾乎所有的機器上,如果不是機器應更換與相似的字體的arial字體。使用的字體對於我的文檔不是那麼重要。

這是一種智能方法還是使用未嵌入字體有風險?

我另外請告訴我在這種情況下使用什麼字符集。我之前嵌入的字體已經是ISO-8859-15,能夠使用歐元符號。如果我註釋掉嵌入的字體,除了歐元符號之外,我的Windows機器上的所有內容都以宋體顯示。我懷疑Windows使用Windows字符集,而歐元符號是不同的字符。

請給我一個提示什麼是使用普通字體系列創建PDF文件與FPDF沒有嵌入字體的最佳做法。在這種情況下解釋者使用什麼charset?

+0

當然,如果生成的文檔不包含嵌入字體,那麼生成的文檔就會更小。但請記住,儘管它很可能會顯示(PDF解釋器會選擇一些合適的本地安裝字體),但其外觀可能因系統而異。尤其是當依賴像'Arial'這樣的專有字體時,無處不在。 – arkascha

回答

1

一般而言,生成沒有嵌入字體的PDF文件是一個非常糟糕的主意 - 任何查看器都有自己的策略來顯示您的PDF,並且您根本無法控制PDF文件。這就是說,如果你想生成沒有字體的PDF文件(請不要:-)),PDF有一個標準字體的概念。這些都是任何觀衆應該擁有的字體(你仍然不確定字體是否會呈現完全相同,並且仍然可能存在編碼問題,但是你有更好的戰鬥機會)。這些字體包括:helvetica(常規,粗體,斜體,粗斜體),次(常規,粗體,斜體,粗斜體),快遞(常規,粗體,斜體,粗斜體),符號和zapfdingbats 。總共有14種字體。

是的,Arial比較常見,但Helvetica(非常相似)在這種情況下仍然是一個更好的主意。

+0

我可以證實。我找到了這個文檔:http://www.fpdf.org/en/doc/setfont.htm文檔說:Helvetica或Arial(同義字;無襯線字體)。我真的不知道它是什麼意思,但它對於我來說不是重要的,如果它將是arial,helvetica或另一種無襯線字體。我注意到標準字體使用Windows編碼cp1252(西歐),所以我通過使用'chr(0x80)'解決了歐元符號問題。這樣做最壞的情況是什麼?我相信用戶系統會在最壞的情況下用隨機的無襯線字體替換字體,不是嗎? – steven

+0

真正的印刷工不會滿意於同義詞:-)但它們非常接近。最糟糕的情況是,您讓觀看者「模擬」字體,結果字體看起來不一樣。如果文檔的外觀不是您主要關心的問題,那麼這可能是可以接受的(確保您不必遵守PDF標準,所有PDF標準都需要嵌入字體)。 –