让我先描述一下下面的情况:
,

我希望所有的字符突出显示的绿线打印在一列。
字串的字体是单间距信使新的。但是,空间字符似乎不是以单间隔打印的(参见“虚线”行和开头带有空格字符的行)。
要打印字符串,我在JTextPane组件上使用标准:
PrinterJob pj = PrinterJob.getPrinterJob(); 
pj.setPrintable(myTextPane);
pj.print();据我所知,实际上调用了myTextPane的paint()方法。因此,预览应该与字符串的打印版本完全相同。
然而,它没有。预览似乎没有曲解单空间字符(见最后一张图片)。预览看起来和我想要打印的文本完全一样。

如何强制JavaPrintServiceAPI正确打印单间距字符,有什么建议吗?
发布于 2012-01-07 16:15:36
我不认为你能在打印API中解决这个问题。
首先,将“绿色”数字后面的每一行划分为一个左(可能为空)的右子字符串。
在您的JTextArea中,使用align对两列HTML表进行对齐,如中所描述的那样。
作为JTextPane的另一种选择,使用GridLayout of JLabel。给出左列RIGHT_ALIGNMENT和右列LEFT_ALIGNMENT。
使用JLabel进行呈现的两列JTable可能是第三种选择。详情请参见。
https://stackoverflow.com/questions/8744836
复制相似问题