2011-06-17 65 views
11

我一直在編寫軟件來解析PDF中的內容,特別是文本分解爲區域。爲此,我需要諸如字形位移,字體寬度上升,下降和字形邊界框等字體度量。簡而言之,PDF中字體定義的FontDescriptor字典中應該可用的度量類型。PDF規範中「base 14」字體的字體指標

不幸的是,FontDescriptor不必被包含在基本字體爲標準字體的「基本14」集合之一的字體中。

我在哪裏可以找到或如何生成基本14種字體的字體指標?

回答

5

在Linux上(也可能在Mac OS X上)您可以輕鬆使用font2afm腳本,該腳本從PostScript或TrueType字體(.pfa,.pfb,.ttf,.otf)創建字體指標文件。

如果您沒有原始可用底座14,則可以使用Ghostscript提供的克隆。這些克隆可能會使用完全不同的字體名稱,但它們只能通過對每個字形使用完全相同的度量來進行克隆。

這裏是一個Ghostscript的命令行,列出你所有的基地14 fontnames:

的Windows:

gswin32c.exe -q -dNODISPLAY -dSAFER -c "systemdict /.standardfonts get == quit" 

的Linux/Unix/Mac的:

gs -q -dNODISPLAY -dSAFER -c "systemdict /.standardfonts get == quit" 

在最近版本的Ghostscript,克隆字體的文件名通常與克隆的fontna匹配我。較早的GS版本可能使用了更加神祕的命名規則。下面是字體名映射到克隆的字體列表:

+===============+========================+==========================+ 
| Base 14 name | Ghostscript name  | Font filename (older GS) | 
+===============+========================+==========================+ 
| Courier  |      |       | 
| standard | NimbusMonL-Regu  | n022003l.pfb    | 
| bold  | NimbusMonL-Bold  | n022004l.pfb    | 
| italic  | NimbusMonL-ReguObli | n022023l.pfb    | 
| bolditalic | NimbusMonL-BoldObli | n022024l.pfb    | 
+---------------+------------------------+--------------------------+ 
| Helvetica  |      |       | 
| standard | NimbusSanL-Regu  | n019003l.pfb    | 
| bold  | NimbusSanL-Bold  | n019004l.pfb    | 
| italic  | NimbusSanL-ReguItal | n019023l.pfb    | 
| bolditalic | NimbusSanL-BoldItal | n019024l.pfb    | 
+---------------+------------------------+--------------------------+ 
| Times-Roman |      |       | 
| standard | NimbusRomNo9L-Regu  | n021003l.pfb    | 
| bold  | NimbusRomNo9L-Medi  | n021004l.pfb    | 
| italic  | NimbusRomNo9L-ReguItal | n021023l.pfb    | 
| bolditalic | NimbusRomNo9L-MediItal | n021024l.pfb    | 
+---------------+------------------------+--------------------------+ 
| Symbol  | StandardSymL   | s050000l.pfb    | 
+---------------+------------------------+--------------------------+ 
| ZapfDingbats | Dingbats    | d050000l.pfb    | 
+---------------+------------------------+--------------------------+ 

您可以(從here遠東)下載從許多地方的Ghostscript的字體的「網。然後運行f.e.這個命令:

font2afm StandardSymL.ttf 

和生成的文件,StandardSymL.afm應該包含的字體度量標準.afm格式符號字體....

1

我確定那些字體指標是廣泛可用的。例如,在我的Ubuntu中,它們在/usr/share/fonts/type1/gsfonts/ - 也許你不認識一些字體名稱,但它們與Helvetica等度量兼容。