Модератор: Модераторы

Mr.Smart писал(а):Открываете LPT порт как обычный файл и пишете в него данные.
var
  mylpt:TextFile;
begin
 AssignFile(mylpt,'LPT');
 writeln(mylpt,'hello');
AssignFile(mylpt,'/prn'); 
Timid писал(а):то есть как winapi?
...
    if
      OpenPrinter
      (
        PWideChar(szPrinter),
        ph,
        Nil
      )
    then
    begin
      New(pdi);
      with pdi^ do
      begin
        pDocName := PWideChar(ExtractFileName(FFilePatch));
        pOutputFile := nil;
        pDatatype := PWideChar('RAW');
      end;
      PrJob := StartDocPrinter(ph, 1, pdi);
      StartPagePrinter(ph);
      WritePrinter(ph, Pointer(szValue), Length(szValue), pcWritten);
      EndPagePrinter(ph);
      EndDocPrinter(ph);
      ClosePrinter(ph);
      FreeMem(pdi);
    end;
и так далее...
Mr.Smart писал(а):alaken
А зачем так извращаться? Если просто нужно вывести текс на принтер?
ага, что-то вродеalaken писал(а):если просто вывести файл на принтер нужно использовать более простой код
var FPRN:TextFile;
  function OpenLPT(PortN: Integer): Boolean;
  var
    prn: String;
  begin
    if PortN=0 then
  {$IFDEF WINDOWS}
      prn := 'PRN'
    else
      prn := 'LPT'+IntToStr(PortN)+':';
  {$ELSE}
    {$IFDEF UNIX}
      prn := '/dev/lp0'
    else
      prn := '/dev/lp'+IntToStr(PortN-1);
    {$ELSE}
      {$ERROR Unsupported OS}
    {$ENDIF}
  {$ENDIF}
    AssignFile(FPRN,prn);
  {$I-}
    Rewrite(FPRN);
  {$I+}
    Result := (IOResult = 0);
  end;
  procedure Print(s: String);
  begin
{    uses lconvencoding;}
    Write(FPRN, UTF8ToCP866(s));
  end;
  procedure PrintLn(s: String);
  begin
    Print(s + #13#10);
  end;
  procedure CloseLPT;
  begin
    CloseFile(FPRN);
  end;
begin
  if OpenLPT(1) then
  begin
    PrintLn('Проверка печати');
    PrintLn('---------------');
    CloseLPT;
  end;
end;alaken писал(а):пример от v-t-l приведенный выше не предназначен для данной задачи...
net use LPT1: \\win2k\epson
    
    AssignFile(FPRN,prn);
    Rewrite(FPRN);
    Result := (IOResult = 0); всегда выдает false
alaken писал(а):хм, но почему то не работает
- Код: Выделить всё
AssignFile(FPRN,prn);
Rewrite(FPRN);
Result := (IOResult = 0); всегда выдает false
{$I-} // а где это?
  Rewrite(FPRN);
{$I+} // и это?    OpenLPT(1)
    PrintLn('Проверка печати');
    PrintLn('---------------');
    CloseLPT; Сейчас этот форум просматривают: Yandex [Bot] и гости: 1