1

サーマルプリンター「Bixolon SRP-F310」を使用して、JAVA の PrintService を使用してテキストを印刷しようとしています。プリンターが検出され、印刷機能の呼び出し中に例外はありません。Cups の Web インターフェイスで、印刷イベントが呼び出されていることがわかります。ただし、プリンターは印刷せず、「ページが見つかりません!」というエラー メッセージが表示されます。カップのウェブインターフェースで見ることができます。どんな助けでも大歓迎です。Cups Web インターフェイスのスクリーンショットとエラー ログを含めました。

import javax.print.*;
import java.util.Arrays;
import java.util.List;

public class Printer {
    static Printer INSTANCE;

    public static void main(String[] args) {
        INSTANCE = new Printer();

        List<PrintService> services = INSTANCE.getServicesByName("BIXOLON_SRP-F310");
        if(services == null) {
            throw new RuntimeException("No printer services available");
        }
        INSTANCE.printServices(services);

        try {
            INSTANCE.print(services.get(0), "Hello");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public List<PrintService> getServicesByName(String serviceName) {
        //Find printer service by name
        AttributeSet aset = new HashAttributeSet();
        aset.add(new PrinterName(serviceName, null));
        return Arrays.asList(PrintServiceLookup.lookupPrintServices(null, aset));
    }

    public void print(PrintService service, String printData) throws Exception {
        if(service == null) {
            throw new Exception("Service is not valid");
        }
        if(printData == null) {
            throw new Exception("Nothing to print");
        }

        PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
        pras.add(new Copies(1));
        pras.add(new PrinterResolution(180,180,PrinterResolution.DPI));

        DocPrintJob job = service.createPrintJob();
        DocAttributeSet das = new HashDocAttributeSet();
        das.add(new PrinterResolution(180,180,PrinterResolution.DPI));

        byte[] desc = printData.getBytes();
        Doc doc = new SimpleDoc(desc, DocFlavor.BYTE_ARRAY.AUTOSENSE, das);

        try {
            job.print(doc, pras);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void printServices(List<PrintService> services) {
        System.out.println("Printer Services found:");
        for (PrintService service : services) {
            System.out.println("\t" + service);
        }
    }
}

カップの Web インターフェイス:

追加された印刷ジョブを示す Cups の Web インターフェイスですが、エラーが発生しています

エラーログ:

http://pastebin.com/kYiKGsSn

4

2 に答える 2

1

次の手順を実行してください。問題が解決されることを願っています。

  1. プリンターの IP を確認して、CUP を介してヒットしているのと同じ場合は問題ありません。それ以外の場合は、IP をリセットする必要があります。
  2. IP のリセット: サーマル プリンターのフィード ボタンを 2 ~ 3 分間押すと、プリンターに関する詳細情報が記載された長いレシートが印刷されます。

プリンタを LAN ケーブルで PC に接続し、プリンタ設定を開きます。ここで、その微粒子プリンターのマニュアルに従って、プリンターの IP をリセットできます。

IP を設定したら、サーバーから再試行して、新しい IP でそのサーマル プリンターをヒットします。CUPS が正しくインストールされていれば動作しますが、それ以外の場合は CUPS を確認する必要があります。

これらすべてのことを確認し、それが機能するか、エラー メッセージがあればお知らせください。

于 2014-12-29T14:15:52.390 に答える
0

私はあなたとまったく同じ問題に直面しています。ページのサイズとフォーマットを設定してみてください。そうしてみてください。

別のプリンターを使用するなど、簡単なトラブルシューティングを行うこともできます。問題がなければ、コードに問題はないと考えて差し支えありませんが、現在使用しているプリンター ドライバーが問題の原因である可能性があります。

于 2015-01-15T09:47:34.577 に答える