用Java实现精确排版的点阵快速打印

用Java实现精确排版的点阵快速打印,java,printing,reporting,legacy,dot-matrix,Java,Printing,Reporting,Legacy,Dot Matrix,我想知道Java中存在什么样的为EPSON点阵打印机构造报表的实用方法。此时,我正在使用LX300+II模型 我知道使用这台打印机基本上有两种方法: 作为打字机,直接将原始ASCII数据输出到并行端口 图形打印,具有图形字体和精确定位 如何使用快速打印字体(由1提供)和精确定位字体(由2提供) 我知道这是可能的,因为几年前,我为EPSON FX 2180做了报告,其中包括安装在Windows中的本机打印字体的驱动程序。这正是我想要的 现在我使用JasperReports进行图形报告,效果很好,但

我想知道Java中存在什么样的为EPSON点阵打印机构造报表的实用方法。此时,我正在使用LX300+II模型

我知道使用这台打印机基本上有两种方法:

  • 作为打字机,直接将原始ASCII数据输出到并行端口
  • 图形打印,具有图形字体和精确定位
  • 如何使用快速打印字体(由1提供)和精确定位字体(由2提供)

    我知道这是可能的,因为几年前,我为EPSON FX 2180做了报告,其中包括安装在Windows中的本机打印字体的驱动程序。这正是我想要的

    现在我使用JasperReports进行图形报告,效果很好,但我确实有一些报告需要用点阵打印机打印,而且速度也很快。
    有什么替代方案?

    可以满足您的需要?

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

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

    //用打印机点阵进行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();
    
    //它对我有用…

    我应该用什么来替换“LPT1:”?我应该在哪里找名字?