Delphi中票据凭证的精确打印 ( 积分: 100 )

  • 主题发起人 主题发起人 cys805
  • 开始时间 开始时间
C

cys805

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在要实现用户自定义纸张打印。想法:在后台建一个表,保存用户‘页面设置’中的参数,表如下。现在是怎么调用这个表来改变打印机的纸张设置?基础不好,代码不会,上来问问?给例子参考佳!
create table PrintFormat
(ModuleID int Null, --模块编号
Printer varchar(2000) not Null default '默认打印机', --打印机
Type varchar(255) not Null default 'A4', --纸张大小
Width dec(12,2) not Null default '21.6', --宽度
Highth dec(12,2) not Null default '14', --高度
direction varchar(255) not Null default '纵向');
--打印方向
多多帮忙!!!!
 
我现在要实现用户自定义纸张打印。想法:在后台建一个表,保存用户‘页面设置’中的参数,表如下。现在是怎么调用这个表来改变打印机的纸张设置?基础不好,代码不会,上来问问?给例子参考佳!
create table PrintFormat
(ModuleID int Null, --模块编号
Printer varchar(2000) not Null default '默认打印机', --打印机
Type varchar(255) not Null default 'A4', --纸张大小
Width dec(12,2) not Null default '21.6', --宽度
Highth dec(12,2) not Null default '14', --高度
direction varchar(255) not Null default '纵向');
--打印方向
多多帮忙!!!!
 
本人对数据库很熟细,对Delphi刚刚学,大家有没有什么好的建议?最近在修改项目代码。请大家多多帮忙!!
 
要用到报表控件,然后对其操作设置
 
给个例子学习一下!
 
可以用API来设定.
procedure InitPrinter(PWidth, PHeight: Short);//初始化纸张的长宽(0.1mm)
var
hDMode: THandle;
PDMode: PDEVMODE;
Device,Driver,Port: array[0..255] of char;
begin
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.GetPrinter(Device, Driver, Port, hDMode);
if hDMode <> 0 then
begin
pDMode := GlobalLock(hDMode);
if pDMode <> nil then
begin
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERSIZE or DM_PAPERWIDTH or DM_PAPERLENGTH;
pDMode^.dmPaperSize := DMPAPER_USER;
pDMode^.dmPaperWidth := PWidth;
pDMode^.dmPaperLength := PHeight;
GlobalUnlock(hDMode);
end;
end;
Printer.PrinterIndex := Printer.PrinterIndex;
end;
然后打印时用Printer类,一个个的Printer.Canvas.TextOut就行了.
 
还是没有人答的满意!
 
后退
顶部