|
|
在WIN2000/XP下添加自定义纸张的Delphi源代码 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
//////////////////////////// // 武汉探索电脑工作室 // // http://tansuo.51.net // ////////////////////////////
//增加规格自定义纸张 //PaperName: 自定义纸张名称 //PaperWidth: 纸张的宽度,以0.1mm为单位 //PaperLength: 纸张的高度,以0.1mm为单位 procedure TDM.AddCustomPaper(const PaperName: string; PaperWidth, PaperLength:integer); var PrintDevice, PrintDriver, PrintPort : array[0..255] of Char; hDMode : THandle; hPrinter : THandle; FormInfo : TFormInfo1; begin Printer.GetPrinter(PrintDevice, PrintDriver, PrintPort, hDMode); OpenPrinter(PrintDevice, hPrinter, nil); if hPrinter = 0 then raise Exception.Create('联接打印机失败!');
with FormInfo do begin Flags := FORM_USER; pName := PChar(PaperName); Size.cx := PaperWidth*100; Size.cy := PaperLength*100; ImageableArea.Left := 0; ImageableArea.Top := 0; ImageableArea.Right := PaperWidth*100; ImageableArea.Bottom := PaperLength*100; end;
//修改纸型,如果没有就新增 if not SetForm(hPrinter, PChar(PaperName), 1, @FormInfo) then AddForm(hPrinter, 1, @FormInfo);
ClosePrinter(hPrinter); end;
//删除自定义规格纸张 //PaperName: 自定义纸张名称 procedure TDM.DeleteCustomPaper(const PaperName: string); var PrintDevice, PrintDriver, PrintPort : array[0..255] of Char; hDMode : THandle; hPrinter : THandle; begin Printer.GetPrinter(PrintDevice, PrintDriver, PrintPort, hDMode); OpenPrinter(PrintDevice, hPrinter, nil); if hPrinter = 0 then raise Exception.Create('联接打印机失败!'); DeleteForm(hPrinter, PChar(PaperName)); ClosePrinter(hPrinter); end;
|
|
相关文章:相关软件: |
|