自定义纸张大小

I

import

Unregistered / Unconfirmed
GUEST, unregistred user!
这样吧,用Delphi举个例子吧,以下程序将打印机纸张设为:114mm*190mm:
procedure PreparePrinter;
var
aDevice: array[0..CCHDEVICENAME-1] of Char;
aDriver: array[0..MAX_PATH-1] of Char;
aPort: array[0..31] of Char;
hDevMode: THandle;
pDevMode: PDeviceMode;
begin
// 获取打印机DeviceMode的句柄
Printer.GetPrinter(aDevice, aDriver, aPort, hDevMode);
if hDevMode <> 0 then
begin
// 获取指向DeviceMode的指针
pDevMode := GlobalLock(hDevMode);
if pDevMode <> nil then
begin
pDevMode^.dmPaperSize := DMPAPER_USER;
pDevMode^.dmPaperLength := 1140;
pDevMode^.dmPaperWidth := 1900;
pDevMode^.dmFields := pDevMode^.dmFields or DM_PAPERSIZE;
pDevMode^.dmFields := pDevMode^.dmFields or DM_PAPERLENGTH;
pDevMode^.dmFields := pDevMode^.dmFields or DM_PAPERWIDTH;
ResetDC(Printer.Handle, pDevMode^);
GlobalUnlock(hDevMode);
end;
end;
end;
用修改
DeviceMode的方法的话,只是改变你程序中的打印机设置,不会影响其他程序打印的。
 

Similar threads

I
回复
0
查看
666
import
I
I
回复
0
查看
572
import
I
I
回复
0
查看
578
import
I
I
回复
0
查看
601
import
I
顶部