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

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

Как распечатать программно файл печати (PLT, PRN)?


jeka_t ©   (2005-09-19 18:47:00) 

Подскажите пожалуйста, как можно отправить файл печати созданный ранее (PRN, LPT) на распечатку?


Leonid Troyanovsky   (2005-09-20 12:33:00) [1]


> Bonjovy   (20.09.05 12:08) [8]
> Причём это русский текст не печатает, а жаль.


Почему не печает?
Попробуй ему CharToOem.

--
Regards, LVT.


jeka_t   (2005-09-20 12:30:00) [2]

УРА!!!!!!!!!!!!!!!!!!!!!!!!
Шикарно получилось,
Спасибо огромное...
Моим эмоциям нет границ и улыбка просто не сходит с моего лица...
Очень окуратно, класно получилось...
Ещё раз спасибочки....


Bonjovy   (2005-09-20 12:08:00) [3]

Причём это русский текст не печатает, а жаль.


Leonid Troyanovsky   (2005-09-20 11:39:00) [4]


> jeka_t   (20.09.05 11:20) [6]

> Но он работает с текстом, а я хочу с файлом...


with TFileStream.Create (..) do
   try
      SetLength(s, Size);
      ReadBuffer(s[1], Length(s));
   finally
     Free;
  end;
  WriteRawStringToPrinter('HP', s);


--
Regards, LVT.


jeka_t   (2005-09-20 11:20:00) [5]

Нашел такой вариант:
uses WinSpool;

procedure WriteRawStringToPrinter(PrinterName:String; S:String);
var
 Handle: THandle;
 N: DWORD;
 DocInfo1: TDocInfo1;
begin
 if not OpenPrinter(PChar(PrinterName), Handle, nil) then
 begin
   ShowMessage('error ' + IntToStr(GetLastError));
   Exit;
 end;
 with DocInfo1 do begin
   pDocName := PChar('test doc');
   pOutputFile := nil;
   pDataType := 'RAW';
 end;
 StartDocPrinter(Handle, 1, @DocInfo1);
 StartPagePrinter(Handle);
 WritePrinter(Handle, PChar(S), Length(S), N);

 EndPagePrinter(Handle);
 EndDocPrinter(Handle);
 ClosePrinter(Handle);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 WriteRawStringToPrinter('HP', 'Test This');
end;

Но он работает с текстом, а я хочу с файлом...


Leonid Troyanovsky   (2005-09-20 11:00:00) [6]


> jeka_t   (20.09.05 10:35) [4]
> Да тот же принтер...
> В FARе работает все класно, а вот с командой, беда...
> А есть ли другая функция? или компонент, с помощью кторого
> можно распечатать?


В fare работает, а в cmd.exe нет? Слабо верится.
Кста, указывать надо порт принтера, если принтеров несколько.
Для принтеров псевдонимы указаны в свойствах, закладка Ports.

--
Regards, LVT.


jeka_t   (2005-09-20 10:35:00) [7]

Да тот же принтер...
В FARе работает все класно, а вот с командой, беда...
А есть ли другая функция? или компонент, с помощью кторого можно распечатать?


Anatoly Podgoretsky   (2005-09-20 10:33:00) [8]

Принтер должен быть с той же системой команд.


jeka_t   (2005-09-20 10:18:00) [9]

Неа, виснит машина...
У меня 3 принтера и он не разумеет что от него хотят..


Anatoly Podgoretsky   (2005-09-19 20:55:00) [10]

copy /b file prn


Наверх

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