如何讓Times在linux下打印? 我有debian wheezy linux,ghostscript,cups,mscorefonts的安裝。 但是,當我打印時,我得到時間太寬,比較窗口一個字母間距太寬。linux下的Ghostscript:時間太寬
任何方法來解決這個問題?
從相同的Java小程序和Win和Lin打印完成。 Lin變體使用Times字體的Postscript,Win變體的postscript使用TimesNewRomanPSMT字體。 只是替換字體名稱會改變它,但不會改變輸出中的任何內容。
=================
Debian的喘息,Debian的擠壓,Ubuntu的納蒂檢查爲Linux操作系統。 大部分支票都在Debian Wheezy中。
的ghostscript: 安裝:9.02〜DFSG-2 太陽的Java6的JRE: 安裝:6.26-1 杯-PDF打印機。
PPD是PDF.ppd:
*PCFileName: "CUPS-PDF.PPD"
*Manufacturer: "Generic"
*Product: "(CUPS v1.1)"
*ModelName: "Generic CUPS-PDF Printer"
*ShortNickName: "Generic CUPS-PDF Printer"
*NickName: "Generic CUPS-PDF Printer"
*1284DeviceID: "MFG:Generic;MDL:CUPS-PDF Printer;DES:Generic CUPS-PDF Printer;CLS:PRINTER;CMD:POSTSCRIPT;"
打印結果Comparsion:http://piccy.info/code2/1652248/4b2c3b10f5316f9836496af5501892d1/
我有Linux系統上Times New Roman字體!用於windows的PDF是在linux上用linux機器上生成的postscript源碼生成的ghostscript生成的。
例如,看看右上角,其中寫0401060。 的Windows PostScript代碼:
%%IncludeResource: font TimesNewRomanPS-BoldMT
F /F1 0 /256 T /TimesNewRomanPS-BoldMT mF
/F1S53 F1 [83 0 0 -83 0 0 ] mFS
F1S53 Ji
4292 333 M (0401060)[42 42 42 42 42 42 0]xS
N 367 367 M 1192 367 I K
N 1667 367 M 2492 367 I K
51282 VM?
Linux的PostScript代碼:
10.0 29 F
<303430313036> 37.44 526.0 52.0 S
10.0 29 F
<30> 6.24 541.0 62.0 S
N
,你可以看到,它選擇尺寸10.0字體#29。字體#29是 /時間加粗ISOF
和,最壞的事情,它已經寫了兩行 - 所以問題是在java < =>杯連接器的某處。
================== 「Same Java Applet」是Internet銀行應用程序iBank2。
「泰晤士報」是由Ghostscript的代入雨雲,不TimesNewRoman:
./Init/Fontmap.GS:/Times-Roman /NimbusRomNo9L-Regu ;
./Init/Fontmap.GS:/Times-Italic /NimbusRomNo9L-ReguItal ;
./Init/Fontmap.GS:/Times-Bold /NimbusRomNo9L-Medi ;
./Init/Fontmap.GS:/Times-BoldItalic /NimbusRomNo9L-MediItal ;
./Init/Fontmap.GS:/TimesNewRoman /TimesNewRomanPSMT ;
./Init/Fontmap.GS:/TimesNewRoman,Bold /TimesNewRomanPS-BoldMT ;
./Init/Fontmap.GS:/TimesNewRoman,Italic /TimesNewRomanPS-ItalicMT ;
./Init/Fontmap.GS:/TimesNewRoman,BoldItalic /TimesNewRomanPS-BoldItalicMT ;
通過印刷產生(順便說一句,你在Windows上使用的Ghostscript所有,或爲您的打印有通過本機的打印機驅動程序會?) 在Windows上,我將PostScript本機驅動程序打印到.ps文件。
所以它本身不是Ghostscript問題......但它可能來源於Win/Lin系統上不同的Java版本+配置。 它看起來像在打印java的問題,但這並不取決於java版本 - 都安裝了最新的java6。
PostScript很可能是由您的Java小程序生成的,而Ghostscript在完成打印過程時只是它的消費者。 通常情況下,我只是想確保它使用TimesNewRoman字體作爲Times one,而不是Nimbus。 而我沒有做到這一點。
ISOF宏:
/ISOF {
dup findfont dup length 1 add dict begin {
1 index /FID eq {pop pop} {D} ifelse
} forall /Encoding ISOLatin1Encoding D
currentdict end definefont
} BD
這裏被切斷的啓動文件,並生成產生的PDF:http://datacompboy.ru/u/smpl.tar.bz2
如果是這樣,那麼在Windows拷貝fontfile到Linux操作系統。
它已經是windows文件的副本。 msttcorefonts與使用windows分發的一樣。
因爲在生成postscript文件已經0401060拆分爲兩行,這意味着,該Java小程序正在打印時發現,字體太寬,並在生成時分裂...所以問題是 - 如何在系統中替換Times字體那麼,java打印會找到TimesNewRoman而不是Nimbus,並生成正確的輸出?
@datacompboy:您正在使用哪個版本的Linux?安裝了哪個版本的Ghostscript?哪個版本的Java?您要打印哪種打印機型號?哪個「驅動程序」(== PPD文件)是您的CUPS用於本打印機的?你能提供兩種不同結果的截圖嗎? 「你打印的一些Java小程序是什麼? - 請問你是如此善良,並編輯你的問題來添加這個信息? – 2011-06-19 16:16:50
我已經在你的問題上添加了答案。 – datacompboy 2011-06-21 14:04:46
我推薦使用純Java解決方案:看在iText上它產生了一個更高級別的PDF控件,並且比postscript和杯子更便攜。 – Pindatjuh 2011-06-21 14:13:20