Печать на термопринтере Bixolon с использованием JAVA. Страницы не найдены! ошибка

Я пытался использовать термопринтер «Bixolon SRP-F310» и печатать текст с помощью JAVA PrintService. Принтер обнаружен, и при вызове функции печати исключений нет. Я вижу в веб-интерфейсе Cups, что вызывается событие печати. Однако принтер не печатает и появляется сообщение об ошибке «Страницы не найдены!» можно увидеть в веб-интерфейсе Кубков. Любая помощь будет оценена. Я включил скриншот веб-интерфейса Cups и журналы ошибок.

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);
        }
    }
}

Веб-интерфейс Кубков:

Веб-интерфейс Cups, показывающий добавленное задание на печать, но с ошибкой Страницы не найдены!

Журналы ошибок:

http://pastebin.com/kYiKGsSn


person yuva    schedule 04.12.2014    source источник
comment
Вы настроили свой принтер. Например, сбросить его IP-адрес, потому что на этом IP-адресе вы должны передавать данные через CUP.   -  person Naresh Sharma    schedule 29.12.2014
comment
Да я это уже делал, не повезло.   -  person yuva    schedule 15.01.2015


Ответы (2)


Выполните следующие шаги, и, надеюсь, ваша проблема будет решена.

  1. Проверьте IP-адрес вашего принтера, если он совпадает с тем, который вы нажимаете через CUP, тогда все в порядке, иначе вам придется сбросить IP-адрес.
  2. Сброс IP: Нажмите и удерживайте кнопку подачи на термопринтере в течение 2-3 минут, распечатается длинная квитанция с подробной информацией о принтере.

Теперь просто подключите принтер с помощью сетевого кабеля к компьютеру и откройте настройки принтера. Здесь вы можете сбросить IP-адрес принтера в соответствии с руководством для этого принтера.

После установки IP-адреса попробуйте еще раз с сервера подключиться к этому термопринтеру с новым IP-адресом. Если ваш CUPS установлен правильно, он будет работать, в противном случае вам придется проверить CUPS.

Проверьте все эти вещи и дайте мне знать, работает ли это или какое-либо сообщение об ошибке.

person Naresh Sharma    schedule 29.12.2014
comment
Принтер работает нормально, когда я пытаюсь печатать через веб-интерфейс CUPS. Это должно объяснить, что IP установлен правильно. Когда я пытаюсь печатать через свою программу JAVA, я вижу, что выдается команда печати, но принтер не печатает. Я объяснил свою проблему в вопросе. - person yuva; 31.12.2014

Я столкнулся с той же проблемой, что и вы. Вы можете попробовать настроить размер и формат страницы. Попробуйте сделать это.

Вы также можете выполнить простое устранение неполадок, например, используя другой принтер. Если все пойдет хорошо, можно с уверенностью предположить, что с вашим кодом все в порядке, но проблема может быть вызвана драйвером принтера, который вы используете в настоящее время.

person anwar    schedule 15.01.2015
comment
Вы решили свою проблему? Я пробовал драйвер JPOS для альтернативного способа, но мне тоже не повезло. - person yuva; 15.01.2015