Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.09;
Скачать: CL | DM;

Вниз

Печать   Найти похожие ветки 

 
zsv   (2003-05-29 08:24) [0]

Здравствуйте, мастера. Помогите пожалуйста...

У меня такая проблема:
Нужно вывести на печать текст из Memo, из нескольких Edit и следом же - рисунок из Image.

Текст лучше печатать через файл, т.к. в этом случае печать работает и на матричном принтере и на лазерном.
AssignPrn(PrintText);
Rewrite(PrintText); и т.д.
Но картинку я могу только через BeginDoc - EndDoc.
А в этом случае я должен закрыть файл и печатать картинку.
Происходит выгрузка страницы из принтера, а мне это не нужно!

Печать для матричного я делаю, если все печатаю между BeginDoc - EndDoc.
Но в этом случае все не работает на лазерном принтере.

Что делать?


 
zsv   (2003-05-29 08:26) [1]

Я ошибся, у меня Delphi5


 
Palladin ©   (2003-05-29 08:45) [2]

Код давать не хочешь, значит вешатся...


 
zsv   (2003-05-29 08:52) [3]

Даю код:
try
with Printer do
begin
Canvas.Font := Memo1.Font;
BeginDoc;
Canvas.TextOut(10,10,RxLabel1.Caption+IntToStr(Num));
inc(y,40);
for Line := 0 to Memo1.Lines.Count - 1 do
If Memo1.Lines[Line]<>"" then
begin
Canvas.TextOut(10,y,Memo1.Lines[Line]);
inc(y,30);
end;

If Edit1.Text <> "" then
begin
if (CheckBox1.Checked) and (CheckBox6.Checked) then
Canvas.TextOut(x,y,Edit1.Text+" *")
else Canvas.TextOut(x,y,Edit1.Text);
inc(y,30);
end;

If Edit2.Text <> "" then
begin
if (CheckBox2.Checked) and (CheckBox6.Checked) then
Canvas.TextOut(x,y,Edit2.Text+" *")
else Canvas.TextOut(x,y,Edit2.Text);
inc(y,30);
end;

If Edit3.Text <> "" then
begin
if (CheckBox3.Checked) and (CheckBox6.Checked) then
Canvas.TextOut(x,y,Edit3.Text+" *")
else Canvas.TextOut(x,y,Edit3.Text);

inc(y,30);
end;

If Edit4.Text <> "" then
begin
if (CheckBox4.Checked) and (CheckBox6.Checked) then
Canvas.TextOut(x,y,Edit4.Text+" *")
else Canvas.TextOut(x,y,Edit4.Text);
inc(y,30);
end;

If Edit5.Text <> "" then
begin
if (CheckBox5.Checked) and (CheckBox6.Checked) then
Canvas.TextOut(x,y,Edit5.Text+" *")
else Canvas.TextOut(x,y,Edit5.Text);
inc(y,30);
end;
//EndDoc;

If Image1.Visible then
begin
Bmp := TBitmap.Create;
try
Bmp.LoadFromFile(test[num].picture);
with Printer do
begin
Canvas.Draw(x,y,bmp);
end;
finally
Bmp.Free;
end;
end;

EndDoc;
end;

except
end;

Так работает для лазерного, а матричный лепит все в одну строку и не печатает картинку...


 
zsv   (2003-05-29 08:53) [4]

Даю код:
try
with Printer do
begin
Canvas.Font := Memo1.Font;
BeginDoc;
Canvas.TextOut(10,10,RxLabel1.Caption+IntToStr(Num));
inc(y,40);
for Line := 0 to Memo1.Lines.Count - 1 do
If Memo1.Lines[Line]<>"" then
begin
Canvas.TextOut(10,y,Memo1.Lines[Line]);
inc(y,30);
end;

If Edit1.Text <> "" then
begin
if (CheckBox1.Checked) and (CheckBox6.Checked) then
Canvas.TextOut(x,y,Edit1.Text+" *")
else Canvas.TextOut(x,y,Edit1.Text);
inc(y,30);
end;

If Edit2.Text <> "" then
begin
if (CheckBox2.Checked) and (CheckBox6.Checked) then
Canvas.TextOut(x,y,Edit2.Text+" *")
else Canvas.TextOut(x,y,Edit2.Text);
inc(y,30);
end;

If Edit3.Text <> "" then
begin
if (CheckBox3.Checked) and (CheckBox6.Checked) then
Canvas.TextOut(x,y,Edit3.Text+" *")
else Canvas.TextOut(x,y,Edit3.Text);

inc(y,30);
end;

If Edit4.Text <> "" then
begin
if (CheckBox4.Checked) and (CheckBox6.Checked) then
Canvas.TextOut(x,y,Edit4.Text+" *")
else Canvas.TextOut(x,y,Edit4.Text);
inc(y,30);
end;

If Edit5.Text <> "" then
begin
if (CheckBox5.Checked) and (CheckBox6.Checked) then
Canvas.TextOut(x,y,Edit5.Text+" *")
else Canvas.TextOut(x,y,Edit5.Text);
inc(y,30);
end;
//EndDoc;

If Image1.Visible then
begin
Bmp := TBitmap.Create;
try
Bmp.LoadFromFile(test[num].picture);
with Printer do
begin
Canvas.Draw(x,y,bmp);
end;
finally
Bmp.Free;
end;
end;

EndDoc;
end;

except
end;

Так все работает на лазерном, а матричный лепит все в одну строку и не печатает картинку.


 
Salvator ©   (2003-05-29 09:55) [5]

Просто выведи текст в Word, там можно печатать и на лазернике и на матричном!


 
zsv   (2003-05-29 10:00) [6]

А можно пример?
Я еще этого не делал.


 
zsv   (2003-05-29 10:02) [7]

И мне же нужно, чтобы сразу за текстом печаталась картинка...


 
Salvator ©   (2003-05-29 10:09) [8]

Сейчас я без Delphi, но по памяти постараюся!
На форму кидаешь WordApplication и WordDocument из палитры Server.

На кнопке печати пишешь примерно такой код:

WordApplication1.Disconnect;
WordApplication1.Connect;
WordApplication1.Documents.add(EmptyParam,EmptyParam);
WordApplication1.Visible:=True;
// соединение с сервером и открытие стандартного документа

WordApplication1.Selection.InsertAfter(var S:string;);
// читаешь строки в компоненте Memo и заносишь их в Word построчно точно также для Edit;

Если что не понятно напиши мне на мыло, отвечу когда доберусь до Delphi!






Страницы: 1 вся ветка

Текущий архив: 2003.06.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
4-26834
Donpager
2003-03-28 20:55
2003.06.09
Как запустить программу от имени другово юзера?


14-26787
Карлсон
2003-05-23 20:33
2003.06.09
что с монитором?


14-26706
Michelin
2003-05-20 20:53
2003.06.09
Помогите разобраться с компонентами в Delphi.


8-26624
Lex.
2003-02-25 21:17
2003.06.09
MP3


6-26647
Equillibrium
2003-04-08 04:23
2003.06.09
Kak v delphi BANNER sdelat