Java中精准布局的点阵快速打印

4
我想知道在Java中有哪些实用的方法可以构建适用于EPSON点阵打印机的报表。目前,我正在使用LX300+II型号进行测试。
我知道有两种基本的使用方法:
1.作为打字机,将原始ASCII数据直接输出到并行端口。
2.图形打印,使用图形字体和精确定位。
如何同时使用快速打印字体(由1提供)和精确定位(由2提供)?
我知道这是可能的,因为几年前,我曾经为EPSON FX 2180制作过报表,其中包括安装在Windows中的本地打印字体驱动程序。这允许我在这里完全做到我想要的。
现在,我正在使用JasperReports进行图形报表,并且工作正常,但我确实有一些需要在点阵打印机上打印并且速度也要快的报表。 有什么替代方案吗?
3个回答

2

1

如果您想在点阵打印机上快速打印,您需要使用“纯文本”模式。以下代码适用于我:

try {
    // LPT1 is the printer port
    try (FileWriter out = new FileWriter("LPT1:")) {
        out.write("String1\nString2\nString3\n");
        out.flush();
    }
} catch (IOException e) {
}

我应该用什么替换“LPT1:”?我应该在哪里查找名称? - William Wino

0

//使用打印机点阵打印Java代码

String bill = "your text";

InputStream br = new ByteArrayInputStream(bill.getBytes());
BufferedReader in = new BufferedReader(new InputStreamReader(br));
String line;
//if you use windows
FileWriter out = new FileWriter("////IP Printer//printer name");
//if you use linux you can try SMB:(samba)
while((line = in.readLine()) != null)
{  
    System.out.println("line"+line);
    out.write(line);
    out.write(0x0D);  CR
    out.write('\n');
    writer.println(line);
}
out.close();
in.close();
writer.close();

//这对我有效...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接