我是这个论坛的新手。有人知道如何在发送到像microsoft xps打印机这样的打印机时保持字符串格式吗?我的代码如下:
String uniPQtyToPFormat = "%1$-20s%5s%25s\r\n";
String unitPrice="1000.00x";
String numberOfUnits="1.00";
String totalPrice="10000000.00";
String formattedUniPQtyToP=String.format(uniPQtyToPFormat,unitPrice,StringUtils.center(numberOfUnits,10),totalPrice);
当我在文本文件中打印 formattedUniPQtyToP 行时,格式保存完好,正如我所料。它在文本文件中显示为:
1000.00x 1000.00x 10000000.00
但是,当我打印 formattedUniPQtyToP 时,总价格会转到下一行,而不是与unitPrice和numberOfUnits保持同一行,如下所示:
1000.00x 1000.00x
10000000.00
要将字符串打印到xps打印机,我使用以下代码:
while (measurer.getPosition() < charIterator.getEndIndex()) {
int next=measurer.nextOffset(wrappingWidth);
int limit=next;
if(limit<=text.length()){
for(int i=measurer.getPosition();i<next;i++){
char c=text.charAt(i);
if(c=='\n'){//to break text into line in case there are many lines
limit=i+1;
break;
}
}
}
TextLayout layout = measurer.nextLayout(wrappingWidth,limit,false);
pen.y += layout.getAscent();
float dx = layout.isLeftToRight() ? 0 : (wrappingWidth - layout.getAdvance());
layout.draw(graphics2d, pen.x + dx, pen.y);
pen.y += layout.getDescent() + layout.getLeading();
}
我欢迎任何帮助或暗示。 帕特里克