比如我有下面的几行字        XX酒楼序号   菜名    数量
 1     牛肉    1
 2     猪舌头  1   怎么向'HP1020'这部打印机直接打印出来

解决方案 »

  1.   


    implementation
    uses Printers;
    {$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      Printers.Printer.SetPrinter('HP1020','HP1020','LPT1',0);{打印机名字,驱动,端口等,自查,我是用虚拟打印机测试的}
      Printers.Printer.BeginDoc;
      Printers.Printer.Canvas.TextOut(10,10,'打印这一行字');
      Printers.Printer.EndDoc;
    end;
      

  2.   

    打印机的指令集你得先看看,然后组织数据,比如加上切纸等等,最后发送出去。下代码供参考:users   Printers;var   ptext
    begin
      Printer.Canvas.Font.Charset:=GB2312_CHARSET;
      Assignprn(PText);
      Rewrite(PText);
      Printer.Canvas.Font.Name:='隶书';
      Printer.Canvas.Font.Size:=14;
      writeln(Ptext,'       XX酒楼');
      Printer.Canvas.Font.Name:='黑体';
      Printer.Canvas.Font.Size:=8;
      writeln(Ptext,'');
      writeln(Ptext,'序号  菜名    数量');
      write(Ptext,printlog);
      writeln(Ptext,'--------------------------------');
      write(ptext,' 合计:'+money.text+'元');
      CloseFile(Ptext);
      checkinsert.Close;
    end;
      

  3.   

    implementation
    uses Printers;
    {$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      Printer.PrinterIndex := 0;{网络打印机也是要安装在你本地的操作系统中的,直接使用顺序试试吧}
      Printers.Printer.BeginDoc;
      Printers.Printer.Canvas.TextOut(10,10,'打印这一行字');
      Printers.Printer.EndDoc;
    end;
      

  4.   


    uses Printers;
    {$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      Printer.PrinterIndex := Printer.Printers.IndexOf('打印机名字');
      Printers.Printer.BeginDoc;
      Printers.Printer.Canvas.Font.Size := 40;
      Printers.Printer.Canvas.TextOut(300,300,'打印测试');
      Printers.Printer.EndDoc;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Self.ComboBox1.Items.Assign(Printer.Printers);
    end;