Форум: "WinAPI";
Текущий архив: 2010.02.07;
Скачать: [xml.tar.bz2];
ВнизПечать на матричный EPSON TM-U950 Найти похожие ветки
← →
DmiSbr (2008-12-08 10:16) [0]Добрый день !
Может кто сталкивался с таким чудом (EPSON TM-U950) и смог его победить ? Опробовал несколько способов печати. Печать на ленту происходит нормально (печать в порт LPT1), а вот на подкладной документ (через spoller) не хочет.
Заранее благодарен за любую подсказку.
← →
tesseract © (2008-12-08 10:35) [1]
> через spoller)
Спулер ? Често говоря большее извращение придумать страшно. Все фискальники подкладной документ отдельно добивают после чека, они ещё бывают фискализированные и не очень.
← →
KilkennyCat © (2008-12-08 10:36) [2]http://support.epson.ru/products/manuals/200002/uni-mini-manual.pdf
← →
KilkennyCat © (2008-12-08 10:37) [3]
> tesseract ©
а вдруг он один на всех :)
← →
DmiSbr (2008-12-08 11:52) [4]>tesseract
>Спулер ? Често говоря большее извращение придумать страшно.
Дело в том что, нужно сделать чтобы был выбор: печатать либо только на подкладной документ, либо на ленту. Ничего такого, типа автоматической печати на подкладной документ после чека, не происходит. То есть посылаешь в порт - печатает на ленту. Открываешь блокнот, пишешь текст - печатает на подкладной документ. Но из программы через очередь печатать никак не хочет. Хотя в очереди видно, что документ в очереди появляетя, и так же успешно пропадает.
← →
Сергей М. © (2008-12-08 12:30) [5]
> блокнот.. печатает на подкладной
> документ
> из программы через очередь печатать никак не хочет
Блокнот, надо понимать, - это не программа ?
← →
DmiSbr (2008-12-08 12:42) [6]>Сергей М.
>Блокнот, надо понимать, - это не программа ?
Я имел в виду из моей программы. На всякий случай код:
var
pcbNeeded: DWORD;
FPrinterHandle: THandle;
FJob: PADDJOBINFO1;
Stream: TFileStream;
s: PChar;
begin
if OpenPrinter("Epson950", FPrinterHandle, nil) then
begin
GetMem(FJob, 1024);
AddJob(FPrinterHandle, 1, FJob, 1024, pcbNeeded);
Stream := TFileStream.Create(FJob.Path, fmCreate);
Stream.Write(s, length(s));
Stream.Free;
ScheduleJob(FPrinterHandle, FJob.JobID);
FreeMem(FJob);
ClosePrinter(FPrinterHandle);
end;
← →
Сергей М. © (2008-12-08 13:17) [7]
> имел в виду из моей программы
Stream.WriteBuffer(s^, StrLen(s));
← →
DmiSbr (2008-12-08 14:20) [8]>Stream.WriteBuffer(s^, StrLen(s));
Не-а, не печатает
← →
Сергей М. © (2008-12-08 14:24) [9]И не будет.
В s, судя по приведенному тобой коду, - полная хрень.
← →
DmiSbr (2008-12-08 14:29) [10]Согласен.
Кстати хрень взята с delphiworld.narod.ru
Зы, есть еще варианты, но не лучше.
Может быть есть вариант, который будет работать ?
← →
tesseract © (2008-12-08 14:30) [11]
> Но из программы через очередь печатать никак не хочет.
Ты на него драйвер ставишь ? Жесть. Фискальник он же не принтер, надо курить доки и смотреть на печаться подкладного документа, обычно оптимальный вариант рендерить и бросать на принтер в графическом режиме.
← →
Сергей М. © (2008-12-08 14:42) [12]
> хрень взята с delphiworld.narod.ru
Ты ее процитировал здесь один-в-один ?
← →
DmiSbr (2008-12-08 15:04) [13]>tesseract
Драйвер ставлю. Вообще с такой фигней первый раз столкнулся, потому и руками развел от бессильности. Доки уже пытаюсь курить. С "рендерить и бросать на принтер в графическом режиме" пока не думал.
>Сергей М.
Она ни один-в-один, ни два-в-один не работает. А другого варианта нету
← →
Сергей М. © (2008-12-08 15:41) [14]Один-в-один и не будет. ибо на то и хрень.
А про два-в-один мы ничего не знаем.
← →
tesseract © (2008-12-08 19:24) [15]
> С "рендерить и бросать на принтер в графическом режиме"
> пока не думал.
А подумай, курить придеться в пять раз меньше. Всего одну команду реализовать.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2010.02.07;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c