本人从没有搞过这样的事情,请各位有像发票、特快专递、货单等套打经验的朋友,请介绍一下这方面的经验。有例子请发到 拜托了各位大哥。
解决方案 »
- 用CopyMemory考贝二维数组会不会出错,有无更好的放法?
- 退出Delphi时报错:"Access violaton at address 03041C10.read of address 03041C10",这是为什么呀?
- 怎样做才能使窗体的关闭按钮失效?
- 如何关机!(我写了一个自动关机的程序,可以无法调用关机函数)。
- 已经找到 句柄 FindWindowEX 粘贴 怎么写呢
- 如何制作考试软盘?急!急!急!100分大奖
- command contains unrecognized phrase/keyword
- 求救呀~~只剩一个问题解决不了,想完成任务回家呀。。各位请进,小问题一个
- 求救:只能给28分了。DELPHI5.0如何获取硬盘序列号?请给以详细说明和代码。谢谢!!!
- ADO害死我了:空记录或冷不丁就出EOF和BOF错误,装了DELPHI的ADO的补丁也不行,请高手指点!
- TNMUDP控件发送了 简单文本 和 图片 如何接收?
- 发票连续打印问题 急呀!在线等分不够再加
Var
PrnDevice, PrnDriver, PrnPort: Array[0..255] Of Char;
PrnHandle: THandle;
PrnMode: PDeviceMode;
Begin
Result:= False; { 设定打印参数 }
Try
Printer.GetPrinter(PrnDevice, PrnDriver, PrnPort, PrnHandle);
Except
MessageBox(Application.Handle, '无法获取系统打印机信息!', '系统信息',
MB_OK + MB_ICONERROR);
Exit;
End; If PrnHandle = 0 Then
Begin
MessageBox(Application.Handle, '无法获取系统打印机信息!', '系统信息',
MB_OK + MB_ICONERROR);
Exit;
End
Else
Begin
PrnMode:= GlobalLock(PrnHandle);
With PrnMode^ Do
Begin
//打印份数
dmFields:= dmFields Or dmCopies;
dmCopies:= 1; //打印方向
dmFields:= dmFields Or dmOrientation;
dmOrientation:= DMORIENT_PORTRAIT; //纸张类型为用户自定义
dmFields:= dmFields Or dmPaperSize;
dmPaperSize:= DMPAPER_USER; //纸宽,单位为0.1mm
dmFields:= dmFields Or dmPaperWidth;
dmPaperWidth:= PaperWid; //纸长,单位为0.1mm
dmFields:= dmFields Or dmPaperLength;
dmPaperLength:= PaperLen; dmFields:= dmFields Or PrnMode^.dmLogPixels;
dmLogPixels:= 300; ResetDC(Printer.Handle, PrnMode^);
End;
End; { 开始打印 }
Try
Printer.Canvas.Font.Name:= SysInfo.PrnFont;
Printer.Canvas.Font.Size:= SysInfo.PrnSize; Printer.BeginDoc; { 税务登记号 }
Printer.Canvas.TextOut(pstX_RegNO, pstY_RegNO, str_RegNO); { 收款单位 }
Printer.Canvas.TextOut(pstX_Payee, pstY_Payee, str_Payee); { 付款单位 }
Printer.Canvas.TextOut(pstX_Payer, pstY_Payer, str_Payer);
Printer.Canvas.TextOut(pstX_PayerID, pstY_PayerID, str_PayerID); { 经营项目 }
Printer.Canvas.TextOut(pstX_Item1, pstY_Item1, str_Item1);
Printer.Canvas.TextOut(pstX_Charge1, pstY_Charge1, str_Charge1); Printer.Canvas.TextOut(pstX_Item2, pstY_Item2, str_Item2);
Printer.Canvas.TextOut(pstX_Charge2, pstY_Charge2, str_Charge2); Printer.Canvas.TextOut(pstX_Item3, pstY_Item3, str_Item3);
Printer.Canvas.TextOut(pstX_Charge3, pstY_Charge3, str_Charge3); Printer.Canvas.TextOut(pstX_Item4, pstY_Item4, str_Item4);
Printer.Canvas.TextOut(pstX_Charge4, pstY_Charge4, str_Charge4); Printer.Canvas.TextOut(pstX_Item5, pstY_Item5, str_Item5);
Printer.Canvas.TextOut(pstX_Charge5, pstY_Charge5, str_Charge5); { 金额合计 }
Printer.Canvas.TextOut(pstX_Total, pstY_Total, str_Total); Printer.EndDoc;
Result:= True;
Except
MessageBox(Application.Handle,
'无法处理打印信息,请确定打印机驱动程序安装正确!', '系统信息', MB_OK +
MB_ICONERROR);
Exit;
End;
End;