如何通过java或javascript在客户端打印出任何文本内容

How to print out any text content at client side by java or javascript?

本文关键字:任何 文本 打印 客户端 java 何通过 javascript      更新时间:2023-09-26

我有一个用Java编码的Web应用程序。我需要通过选择打印机在客户端打印出文本内容(不是网页)。我可以使用 Java 在服务器端做到这一点,但我应该如何在客户端克服?

我应该更喜欢javascript还是applet?我可以让解决方案在所有打印机中选择一台打印机吗?

提前感谢...

您可以使用

小程序进行客户端打印。

public void paint(Graphics g) {
    TextArea display = new TextArea(1, 80);
    try {
        PrintService printService = getPrintService("printerName");
        if(printService == null)
            printService = PrintServiceLookup
                .lookupDefaultPrintService();
        printData(printService , "Printing text");
        g.drawString(
                " 'n The Print was Successfull..  ",
                10, 10);
    } catch (Exception e) {
        System.out.println("Exception was thrown. Exception is 't : " + e);
    }
}

将文本打印到选定的打印设备

private boolean printData(PrintService printService , String printText) {
    try {
        SimpleDoc doc;
        doc = new SimpleDoc(printText.getBytes(),
                javax.print.DocFlavor.BYTE_ARRAY.AUTOSENSE, null);
        DocPrintJob job = printService.createPrintJob();
        job.print(doc, new HashPrintRequestAttributeSet());
        System.out.println("Job sent to printer succesfully");
        return true;
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
}

此代码用于在所有打印机中选择打印机

private PrintService getPrintService(String name) {
    PrintService pService = null;
    if (name == null || name.trim().length() == 0)
        return null;
    PrintService pServices[] = PrintServiceLookup.lookupPrintServices(null, null);;
    int i = 0;
    do {
        if (i >= pServices.length)
            break;
        String pServiceName = pServices[i].getName();
        if (name.equalsIgnoreCase(pServiceName)) {
            pService = pServices[i];
            break;
        }
        i++;
    } while (true);
    return pService;
}`

打印机选择在操作系统中。我不知道你是否可以用Java做到这一点,但我知道事实上你不能用JavaScript做到这一点。