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;