如何让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