如何能解决在WIN2000下LQ1600K不能自定义纸张的问题。(50分)

  • 主题发起人 主题发起人 rockxu
  • 开始时间 开始时间
R

rockxu

Unregistered / Unconfirmed
GUEST, unregistred user!
同上,谢谢!
 
可以自定义纸张的
你打开打印机页面,文件|服务器属性
新定义纸张就可以了!
当打印的时候,你就能选择你所设定的纸张了!
 
var
Device : array[0..cchDeviceName - 1] of Char;
Driver : array[0..(MAX_PATH -1)] of Char;
Port : array[0..32]of Char;
hDMode : THandle;
pDMode : PDevMode;
begin
Printer.GetPrinter(Device,Driver,Port,hDMode);
// 获 取 打 印 机DevMode 结 构 的 句 柄 值, 存 放 在hDMode 中
if hDMode <> 0 then
begin
pDMode := GlobalLock(hDMode);
// 获 取 指 向 打 印 机DevMode 结 构 的// 指 针
if pDMode <> nil then
begin
pDMode^.dmPaperSize := 256;
// 如 果 要 将 当 前 打 印 机 纸 张 变 为 自 定 义dmPaperSize 必 须 设 置 成256
pDMode^.dmPaperLength :=1800;
//18cm
pDMode^.dmPaperWidth := 2600;
//
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERSIZE;
pDMode^.dmFields :=pDMode^.dmFields or DM_PAPERLENGTH;
pDMode^.dmFields :=pDMode^.dmFields or DM_PAPERWIDTH;
{ 以 上 三 条 语 句 是 对 相 应
的dmFields 成 员 进 行 置 位。}
ResetDC(Printer.Handle,pDMode^);
// 设 置 打 印 机 设 备 环 境 句 柄 的 值
GlobalUnlock(hDMode);
end;
end;

end;
 
后退
顶部