Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Печать. [D7, XP]


Juri ©   (2006-10-02 23:26:00) 

и так полазил в хелпе нашёл как пользоватся PrinеDialog
пытаюсь напечатать то что находится в мемо
Memo1.PaintTo(Handle, 10, 10);
прям как в справке почти).
но вместо того чтоб напечатать мне то что в мемо находится мне печатает маленький уголок в левом верхнем углу... вот в этом в принцепе и проблема помогите подскажите где туплю?


Juri   (2006-10-06 14:28:00) [1]

с этим кодом печать будет производиться только если на компьютере установлен Word может кто знает как напечатать текстовый файл *.rtf не используя Word???


Juri   (2006-10-04 18:34:00) [2]

если кому интересно использовал этот код
var
MyWord : _ApplicationDisp;
FileName : OleVariant;
begin
 if OpenDialog1.Execute then
 begin
   FileName := OpenDialog1.FileName;
   MyWord := CoWordApplication.Create as
       _ApplicationDisp;
   (MyWord.Documents as DocumentsDisp).Open(FileName,EmptyParam,
       EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
       EmptyParam,EmptyParam,EmptyParam);
   (MyWord.ActiveDocument as _DocumentDisp).PrintOut(EmptyParam,
       EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
       EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
       EmptyParam,EmptyParam,EmptyParam);
   MyWord.Quit(EmptyParam,EmptyParam,EmptyParam);
 end;
end;


Juri   (2006-10-04 18:05:00) [3]

это всё хорошо НО палучается печатать текст тока в одном формате то есть всегда один и тот же размер жирность и тп....
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
PrintFile: TextFile;
begin
AssignPrn (PrintFile);
Rewrite (PrintFile);
try
  for I := 0 to Memo1.Lines.Count-1 do
    WriteLn (PrintFile,Memo1.Lines[I])
finally
  CloseFile (PrintFile)
end;
end;


с помощью этого вапще тока 1 строку можно напечатать

With Printer do Begin  BeginDoc; { Начало печати }
Canvas.Font:=label1.font; { Задали шрифт }  
Canvas.TextOut(100,100,'Это тест принтера !!!'); { Печатаем текст }
EndDoc; { Конец печати }
end;


MacroDenS   (2006-10-03 14:32:00) [4]

подробнее и с кусочками кодов здесь: http://delphimaster.ru/cgi-bin/faq.pl?look=1&id=988622422&n=18


Ketmar   (2006-10-03 14:23:00) [5]

>[8] Juri 3-Oct-2006, 14:09
>SetMapMode, SetViewportExtEx  об этом в хелпе
>ничего не нашёл...
не тот хэлп. MSDN -- наше всё.


Джо   (2006-10-03 14:10:00) [6]

Проще всего сделать вот так:

uses Printers;

procedure TForm1.Button1Click(Sender: TObject);
var
 I: Integer;
 PrintFile: TextFile;
begin
 AssignPrn (PrintFile);
 Rewrite (PrintFile);
 try
   for I := 0 to Memo1.Lines.Count-1 do
     WriteLn (PrintFile,Memo1.Lines[I])
 finally
   CloseFile (PrintFile)
 end;
end;


Juri   (2006-10-03 14:09:00) [7]

SetMapMode, SetViewportExtEx  об этом в хелпе ничего не нашёл...


Ketmar   (2006-10-03 14:04:00) [8]

[1] не помогает?


Juri   (2006-10-03 13:59:00) [9]

ну я уже понял что масштабы... можно поподробнее а лучше кусочком кода или хоть чтонибудь за что уцепится чтоб в хелпе поискать


Ketmar   (2006-10-03 13:42:00) [10]

подскажу. масштабы, масштабы...


Juri   (2006-10-03 13:39:00) [11]

что никто не знает?


Juri   (2006-10-02 23:34:00) [12]

может ты понял неправильно.
этот код мне печатает две линии по 2 см каждая которые сопрекасаются в левом верхнем углу...


Juri   (2006-10-02 23:32:00) [13]

а попобробнее как этим пользоватся? а то в хелпе чтот мало толку вижу...


guav   (2006-10-02 23:30:00) [14]

> вот в этом в принцепе и проблема помогите подскажите где
> туплю?

Пиксели на принтере обычно намного меньше мониторных.
Можно их "увеличить", используя функции преобразования координат SetMapMode, SetViewportExtEx и т.п.


Наверх

Титульная страница Поиск, карта сайта Написать письмо