可以向打印机的供应商索取打印机的资料~~可以得到一个Dll文件~~里面有直接向端口写打印机命令的函数~~
你直接调用就可以了~~

解决方案 »

  1.   

    最好是通过打印机厂商提供的Dll~~那里面有足够的函数进行打印~~
      

  2.   

    厂商只提供的打印机的驱动程序,没有提供函数。  我打印机已装好了。在word里,  写字板都可以打印的,在程序里头具体怎样实现
      

  3.   

    你去索要阿~~唉~~
    下星期我就要写那个POS58和TM201的打印函数~~我在等他们给我dll呢~~
    上星期我写完了TM88的~~
    呵呵~~
      

  4.   

    哪里有呀!  厂商卖打印机没有提供。  我用的打印机就是TP POS58
      

  5.   

    直接用 Tprinter可以实现吗?
      

  6.   

    tikkypeng(一两狂死郎之天衣有缝) 
    我用了这种笨方法
            PosHeight:=0;//变量需要声明PosHeight,PosWidth,LineNum,LineWidth,LineHeight
            PosWidth0;
            LineNum:=0;        Printer.BeginDoc;
            Height:=Printer.PageHeight;
            Width:=Printer.PageWidth;
            LineHeight:=Height Div 30;
            LineWidth:=Width Div 5;        Printer.Canvas.Font.Size:=14;
            Printer.Canvas.TextOut(PosWidth,PosHeight,'Emp_Id');
            Printer.Canvas.TextOut(PosWidth+LineWidth,PosHeight,'Emp_Name');        LineNum:=1;
            PosHeight:=(PosHeight+LineHeight);        While Not PrtRs.EOF Do//[red]PrtRs是我自己定义的一个RecordSet变量,用于返回数据集[/red]
            Begin
                    Printer.Canvas.Font.Size:=12;
                    Printer.Canvas.TextOut(PosWidth,PosHeight,PrtRs.Fields['Emp_Id'].Value);
                    Printer.Canvas.TextOut(PosWidth+LineWidth,PosHeight,PrtRs.Fields['Emp_Name'].Value);
                    PosHeight:=PosHeight+LineHeight;
                    LineNum:=LineNum+1;
                    If LineNum>30 Then//[blue]你在这里就可以控制分页了[/blue]
                    Begin
                            Printer.NewPage;//这是分页的语法
                            PosHeight:=0;
                            PosWidth:=0;
                            LineNum:=0;
                    End;                PrtRs.MoveNext;
            End;
            Printer.EndDoc;
      

  7.   

    //  chs0=$1C,$26,$1C,$57,0;//中文(普通)
    //  chs1=$1C,$26,$1C,$57,1;//中文(四倍)
    //  eng=$1C,$2E,$1C,$57,0;//英文(普通)
    //  eng=$1C,$2E,$1C,$57,1;//英文(四倍)
    //  cut=$1B,$69;//切纸
    //  hl=$0A;//换行
    //  cr=$0D];//回车
    //  sp=$1B,$20,2;//字间间隔
    //  lsp=$1B,$32;//行间间隔
    //  hom=$1B,$3C;//行首这里有直接驱动打印机的命令阿~~为什么还要借助别的东西呢??直接向端口发送这些命令就可以了~~
      

  8.   

    但是还有一个问题,就是像素的问题(一个汉字是24*24个点) 3.00(宽)*3.00(高)毫米我用的纸是58毫米,   8点/mm,  384点/行     如果我字段用Printer.Canvas.Font.Size:=12; 用12像素 我该怎样确定我一行打多少个字
                    
      

  9.   

    用printer对象的话,不用换行。只需要计算Canvas上输入文字的位置即可。
    换行的话用 NewPage 。若是用AssignPrn() 写打印端口的话,你Writeln 一个空行即可。直接发打印控制命令,我没试过。
    另外动态设置纸张大小,好象没办法实现(很多书上都有介绍,不过好象都不行)。