可以实现。
你要会dll.
下面是设置纸张的类型:
var
aDevice,aDriver,aPort:array[0..255] of char;
DeviceHandle:Thandle;
DevMode
DeviceMode;// 指向TDeviceMode 结构的指针
begin
printer:=Tprinter.Create;
printer.Refresh;
printer.GetPrinter(aDevice,aDriver,aPort,Devicehandle);
//首先获取Tprinter的TDeviceMode 结构的句柄
if deviceHandle=0 then
//若handle=0 ,则设备没有装入,设置printer index,再装入
begin
printer.printerIndex:=Printer.PrinterIndex;
printer.GetPrinter(aDevice,aDriver,aPort,Devicehandle);
end;
if deviceHandle=0 then
//若handle=0,则发生错误,产生异常
raise Exception.create('不能初始化TDeviceMode 结构')
else
// 否则用GlobalLock获取TDeviceMode 结构的指针
begin
DevMode:=GlobalLock(DeviceHandle);
with DevMode^do
begin
dmFields:=dmFields or DM_PAPERSIZE;
dmPaperSize:=DMPAPER_A4;
//在这里选择要设置纸张类型,例子中是a4,或可以是DMPAPER_A5,DMPAPER_letter等
end;
end;
//else
if not DeviceHandle=0 then
GlobalUnlock(DeviceHandle);
end;
还有其它的属性:
printer.orientation打印方向
你自己写dll吧.