Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Печать на чековый принтер, очень нужна помощь!!! 
:(
    Опции темы
Prodigy
  Дата 11.5.2007, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 11.5.2007

Репутация: нет
Всего: нет



Привет!

Есть чековый принтер(какой обычно стоит в продуктовых магазинах на кассах),
обычный чек печатаю на принтер нормально, но когда мне нужно печатать продажи за день,
а отчёт там получается большой, печатается приблизительно лента по высоте равная высоте листа А4
и обрезается. Мне нужно чтоб весь отчёт о продажах печатался непрерывно, т.е. чтоб обрезал ленту
только в конце отчёта. Я так понимаю что дело толи в высоте листа толи нужно организовывать многостраничную печть.
Но если многостраничную печать организовывать, то лента чековая будет образаться в конце первой страницы
или нужно изменять высоту листа.

Посоветуйте как организовать непрерывную печать всего отчёта на чековый принтер чтоб лента резалась в конце отчёта,
ибо через неделю сдавать прогу, а я вот наткнулся на грабли и в голову ничего не приходит.
PM MAIL   Вверх
_hunter
Дата 11.5.2007, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



эээ... ответ на такой вопрос очень простой: не посылай команду обрезания чека...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Prodigy
Дата 11.5.2007, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 11.5.2007

Репутация: нет
Всего: нет



_hunter

Я не посылаю команду обрезания вообще, я печатаю через виндовый спулер, когда заканчивается чек, то он сам обрезает.
В предварительном просмотре та же самая история, отображается тоже самое что и печатается... может можно как-то высоту листа изменить?
PM MAIL   Вверх
SenkraD
Дата 11.5.2007, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 4
Всего: 23



Посмотри настройки формы для принтера. Ставиш её на максимальный размер, который те нужен и если печатаеш документ меньшего размера, то он обрезается раньше. Или создавай форму для этого отчёта за день сам в о время выполнения

Это сообщение отредактировал(а) SenkraD - 11.5.2007, 13:27


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Prodigy
Дата 11.5.2007, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 11.5.2007

Репутация: нет
Всего: нет



SenkraD, 
Цитата

если печатаеш документ меньшего размера, то он обрезается раньше


абсолютно верно

проблема в том что настройки у принтера высоты и ширины фиксирование, и изменить их невозможно 80х297, 
хотелось бы програмно, но незнаю как...
PM MAIL   Вверх
_hunter
Дата 11.5.2007, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



Цитата(Prodigy @  11.5.2007,  13:11 Найти цитируемый пост)
Я не посылаю команду обрезания вообще, я печатаю через виндовый спулер, когда заканчивается чек, то он сам обрезает.

а откуда спулер знает что чек закончился? ты EndPage()/EndDoc() вызываеш?

Цитата(Prodigy @  11.5.2007,  13:58 Найти цитируемый пост)
проблема в том что настройки у принтера высоты и ширины фиксирование, и изменить их невозможно 80х297, хотелось бы програмно, но незнаю как...

кроме как от манов по этому принтеру (особенно без указания оного) ты вряд ли узнаеш как это делать...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
SenkraD
Дата 11.5.2007, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 4
Всего: 23



Цитата(Prodigy @  11.5.2007,  13:58 Найти цитируемый пост)
и изменить их невозможно

Что это значит? запрещено?

А програмно есть функция 
Код

BOOL AddForm(
  HANDLE hPrinter,  // handle to printer object
  DWORD Level,      // data-structure level
  LPBYTE pForm      // form information buffer
);


А вообще почитай  в MSDN о "Printing and Print Spooler Functions"

P.S. я щас работаю с TTP 2010 


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Prodigy
Дата 11.5.2007, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 11.5.2007

Репутация: нет
Всего: нет



SenkraD, 

Я правильно понял?

Код

FORM_INFO_1 fi1;
ZeroMemory(&fi1, sizeof(FORM_INFO_1));
fi1.Flags = FORM_PRINTER;
fi1.pName = "myform";
fi1.Size = CSize(80, 500);
::AddForm(hPrinter, 1, reinterpret_cast<LPBYTE>(&fi1));
::SetForm(hPrinter, "myform", 1, reinterpret_cast<LPBYTE>(&fi1));



результата никакова... т.е. высота страницы не изменилась

у меня WTP-150,  но не хотелось бы опускаться до уровня команд принтера...

Это сообщение отредактировал(а) Prodigy - 11.5.2007, 17:05
PM MAIL   Вверх
SenkraD
Дата 11.5.2007, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 4
Всего: 23



Попробуй сменить FORM_PRINTER на FORM_USER и ещё у тебя не заполнен один параметр структуры


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Prodigy
Дата 11.5.2007, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 11.5.2007

Репутация: нет
Всего: нет



Цитата(SenkraD @  11.5.2007,  17:25 Найти цитируемый пост)
Попробуй сменить FORM_PRINTER на FORM_USER и ещё у тебя не заполнен один параметр структуры 


не помогло...  smile 

общем есть возможность выставить 2 формата страницы: 80x297 и 80x3275, второй вариант работает, но до тех пор пока отчет меньше высоты листа. Всё же хотелось бы найти решение, как программно изменить высоту листа...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0597 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.