2009-05-21 55 views
4

在11月問this question之後,我對ReportLab非常滿意我所有的python pdf生成需求。任何人都可以推薦一個支持OpenType(.OTF)的Python PDF生成器嗎?

然而,事實證明,雖然ReportLab的將使用常規的TrueType(TTF)字體,它不支持OpenType字體(OTF)字體。

一個我工作電流小部件是要需要使用一些OpenType字體,所以不幸的是,剛剛的ReportLab從正在運行的刪除自身。

誰能推薦一個Python的OpenType兼容PDF生成器?

它並不需要有想象力 - 我只需要能夠UTF-8文本拖放到頁面。


更新:OpenType字體,roughtly,有兩種形式:TrueType字體樣式和PostScript風格的基礎上,他們如何存儲字形輪廓。 ReportLab只支持TypeType風格。在Windows上,事實證明,您可以通過擴展名來區分它們:TrueType和TrueType樣式的OpenType是.TTF,OpenType和PostScript樣式都是.OTF。

所以,我的真正的問題是,誰能推薦一個支持雜項文件字體的Python的PDF生成器?

回答

4

那種依賴... OpenType的目的是擴展TrueType(和uses the general structure of TrueType internally) - 以至於有些人在reportlab中有reported success using OpenType fonts;我想這一切都取決於您是否有任何特殊的OTF特徵來使用字體。

事實上,一些名字提到comments in the TTFontFile class source for reportlab的OpenType,所以它可能是值得一試。


編輯:評論引用一個錯誤消息,幾乎總結了reportlab不能支持OTF字體的情況。 OTF字體可以以多種格式存儲輪廓數據(請參閱上面的維基百科鏈接)。在這種情況下,字體似乎使用了CFF格式,reportlab在其字體解析器中專門檢查了哪種格式,並且哪個reportlab特別拒絕了錯誤消息「不支持postscript大綱」。

這幾乎結束了我的字體和PDF生成器的專業知識。抱歉!期待看到任何替代方案的建議。


編輯2:好了,看着文檔Django的,我看他們引用另一個完整的PDF API:pdflib。我沒有使用PDFlib的直接經驗,它不是免費的(無論是價格還是許可證)。我也發現他們的文檔很煩人,因爲我不能在沒有下載整個bloomin軟件包的情況下看到英文API(不知道是否有免費試用或什麼)。儘管如此,我確實看過德國的文檔,這些文檔是神祕的免費下載。我的第二大學德語確實讓我意識到他們聲稱支持帶有postscript大綱的unicode和8位OpenType字體。

我對他們有興趣嗎?不要:-)希望有人使用和愛他們會糾正我,因爲我再說一次,我沒有親身體驗過他們。如果您的預算允許並且所有其他方式都失敗,則可能是一種選擇

+0

嗯,這就是我的想法,但每次我手上的系統崩潰了我一個OTF文件。我懷疑那些正在崩潰的是Type1下的那些? – 2009-05-21 23:02:26

+0

具體而言,我在每個嘗試使用的.otf文件中都收到「postscript outlines are not supported」錯誤。 – 2009-05-21 23:05:18

4

如果reportlab具有本機OTF支持,但所有大多數人真正需要的是特定OpenType字體的TrueType版本,那將會很好。我使用這個fontforge腳本將我需要的字體轉換爲TrueType以獲得完美結果。

http://www.se.eecs.uni-kassel.de/~thm/OpenOffice.org/bugs.html

#!/usr/bin/fontforge 
# Quick and dirty hack: converts a font to truetype (.ttf) 
Print("Opening "+$1); 
Open($1); 
Print("Saving "+$1:r+".ttf"); 
Generate($1:r+".ttf"); 
Quit(0); 
相關問題