проблем с принтирането
5 отговора
318 прегледа
проблем с принтирането
Здравейте , проблемът ми по точно е че след комадата за принтиране трябва да се отпечатят 2 реда след което принтера да извади още малко хартия за да може да се откъсне отпечатаното и да спре ( става дума за матричен принтер с безконечна хартия) , а в момента след като отпечати ми вади още един лист и тогава спира .принтирането го правя от МЕМО така:
procedure TForm2.Button1Click(Sender: TObject);
VAR
POutput:TextFile;
N:LongInt;
begin
AssignPrn(POutput);
Rewrite(POutput) ;
FOR N := 0 to Memo1.Lines.Count - 1 DO
Writeln(POutput, Memo1.Lines [N]);
closefile(POutput);
END;
И ако може да обясните по подробно , защото съм новобранец в ДЕЛФИ и с една дума няма да разбера
, Благодаря предварително на всеки който помогне.
работя с Делфи 7 ако има значение.
procedure TForm2.Button1Click(Sender: TObject);
VAR
POutput:TextFile;
N:LongInt;
begin
AssignPrn(POutput);
Rewrite(POutput) ;
FOR N := 0 to Memo1.Lines.Count - 1 DO
Writeln(POutput, Memo1.Lines [N]);
closefile(POutput);
END;
И ако може да обясните по подробно , защото съм новобранец в ДЕЛФИ и с една дума няма да разбера
работя с Делфи 7 ако има значение.
Re: проблем с принтирането
Ами това в голяма степен си зависи от самия принтер. Най-лесно можеш да му пратиш още два реда с печат на LF:
Writeln(POutput, #10);
Writeln(POutput, #10);
Друг вариант е да ползваш директно ESCAPE командите, но трябва да видиш в упътването на принтера кои се поддържат.
Mixy
Writeln(POutput, #10);
Writeln(POutput, #10);
Друг вариант е да ползваш директно ESCAPE командите, но трябва да видиш в упътването на принтера кои се поддържат.
Mixy
Re: проблем с принтирането
Почти всички матрични принтери имат функция "Tear off" (названието може да варира в различните марки). Как се включва/изключва ще прочетеш в документацията на принтера.
За дължината на страницата си има esc команда. Начина на задаване ще прочетеш в документацията на принтера
За дължината на страницата си има esc команда. Начина на задаване ще прочетеш в документацията на принтера
Re: проблем с принтирането
чичко Гугъл е щедър по въпроса с Esc кодовете:
[линк]
експериментирането с тях ще ти е полезно. И забавно
чети и дишай по-леко
[линк]
експериментирането с тях ще ти е полезно. И забавно
чети и дишай по-леко
Re: проблем с принтирането
Изпълнението на командата closefile(POutput) (и други подобни - EndDoc) изпълняват и командата "Нова страница". Опитвах се преди време да реша проблема и не можах. Може да звучи странно но си направих една малка програма на Pascal под DOS, на която в команден ред подавам данните за печат и няма проблеми. Възниква само проблема за кирилизацията на принтера и преобразуването на данните в DOS формат, които са преодолими.
Ако не помогнат съветите на колегите, можеш да опиташ с моя метод.
Ако не помогнат съветите на колегите, можеш да опиташ с моя метод.
Re: проблем с принтирането [otkacham]
Само да се похваля ,че си разреших проблема с принтирането.
@TRN просто вместо Аssignprn(POutput) ползвах Assignfile (PrnF,'LPT1');
и след closefileto направо кове на место принтера
с beginDoc i EndDoc пак става , но там трябва да се лъже с дължината на листа ESC 27,67,n - Page length (n lines) .
Лошото е ,че като подава директно на LPTто не може да ползва дривера на принтера и кирилицата става на гъз та видях малко зор с Encodinga
Благодаря на всички които ме открехнаха по въпроса .
Редактирано от otoboto на