Главная страница
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.018 c
14-26686
___ALex___
2003-05-25 14:38
2003.06.09
Дифуравнения


3-26348
kanat
2003-05-20 13:59
2003.06.09
конвертировать в parabox7


1-26506
Апатин Даниил
2003-05-29 16:39
2003.06.09
помогите написать управляющую часть для шифратора


1-26519
anod
2003-05-30 05:15
2003.06.09
Как создать новый класс?


14-26688
Malder
2003-05-25 13:15
2003.06.09
Что у меня с w2k ?