Одобрение Epson TM-h6000IV Печать Java

Мне нужно печатать на принтер Epson Endorsement TM-h6000iv (версия USB) с Java. Тем не менее, я прочитал руководство без надежды найти что-то может помочь. Я также без надежды меняю настройки принтера! Я пытаюсь использовать этот код java, класс TextPrinter в java для печати.

Основная функция "Печать":

    // ----- start printing ------
public int print(Graphics g, PageFormat pf, int pageIndex) {
    double ww, hh, x, y;
    String s;

    pf = PF; // The PF indicates for defaultPage PF= Pj.defaultPage(); 
    GG = (Graphics2D) g;
    s = "Serif";
    GG.setFont(new Font(s, Font.BOLD, Fy));
    GG.setColor(Color.black);
    GFont = GG.getFont();
    FM = GG.getFontMetrics();

    // Insure printing of ONE page
    if (pageIndex != 0)
        return Printable.NO_SUCH_PAGE;

    ww = pf.getImageableWidth();
    hh = pf.getImageableHeight();
    x = pf.getImageableX();
    y = pf.getImageableY();

    GG.translate(x, y);

    int xpos = 0;
    draw(getLine(10), xpos, 5);//getLine to return line of String from 0-9 this line will return "0123456789"
    draw(getLine(20), xpos, 6);//"01234567890123456789"
    draw(getLine(30), xpos, 7); // etc. 
    draw(getLine(40), xpos, 8);

    int x0 = 0, x1 = (int) ww - 10;
    // GG.drawRect(x0, x0, x1, x1);

    // draw Rectangular 
    GG.drawLine(x0, x0, x1, x0);
    GG.drawLine(x0, x0, x0, x1);
    GG.drawLine(x0, x1, x1, x1);
    GG.drawLine(x1, x1, x1, x0);

    return Printable.PAGE_EXISTS;
}

Однако ожидаемый результат такой же, как на этом изображении:

введите здесь описание изображения

НО, фактический результат такой же, как на этом изображении:

введите здесь описание изображения

Который как вы видите, без границы некоторые символы не отображаются! Где не так в моем Кодексе я не знаю?!

Здесь вы можете увидеть основные свойства этого принтера, который "Одобрение": введите описание изображения  здесь

Извините за это длинное объяснение, НО буду признательна за любую помощь,


person Maheera Jazi    schedule 29.11.2014    source источник
comment
Я бы предложил сначала попробовать сделать этот рисунок на экране, и только когда вы увидите то, что хотите увидеть, изменить его на печать. Дело не в принтере, а в компоновке. Ваш прямоугольник не имеет смысла, и вы вообще не используете метрики шрифта. Как только вы правильно нарисуете рисунок в контексте экранной графики, вы сможете использовать тот же код для печати.   -  person RealSkeptic    schedule 30.11.2014
comment
@RealSkeptic спасибо за ваш комментарий, я действительно попробовал все, что вы предлагаете! Проблема заключалась в том, что принтер не печатает за пределами определенной области, которая составляет почти 50 мм! Я не знаю почему?!! Я также без надежды изменил раскладку принтера!! это сведет меня с ума !!   -  person Maheera Jazi    schedule 30.11.2014
comment
Не уверен, что ты понял, что я сказал. Ваш рисунок неправильный, независимо от того, что делает принтер. Пожалуйста, сначала нарисуйте его на окне, а после того, как вы зафиксируете его на окне, попробуйте распечатать его на принтере. Если это не сработает, отредактируйте свой вопрос и введите новый код.   -  person RealSkeptic    schedule 30.11.2014
comment
Вы изменили PageFormat? Принтер может быть не в состоянии печатать за пределами заданного диапазона   -  person MadProgrammer    schedule 01.12.2014
comment
что вы подразумеваете под PageFormat, пожалуйста? размер? или ориентация? или ImageableArea? Я пересаживаюсь на них всех без надежды!! Принтер не печатает определенную область!! в чем проблема не знаю!!!   -  person Maheera Jazi    schedule 01.12.2014


Ответы (1)


Наконец, моя проблема решена после большой ежедневной головной боли!! Просто я изменил настройку Epson Printer Slip Setting на [92,68] [Height,Length], Тогда все работает идеально. Слава моему Богу!..

person Maheera Jazi    schedule 02.12.2014
comment
Махир, какие коды epson вы использовали, чтобы заставить его печатать на принтере подтверждения вместо принтера чеков? - person grouchomc; 05.01.2020