使用PrintDBGridEh组件进行打印,如何把纸张设置为横行输出? 问题如上. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 将打印机的打印方向设置为横向就行了procedure TForm1.Button1Click(Sender: TObject);var//Printer.SetPrinter(); ADevice, ADriver, APort: String; ADeviceMode: THandle; DevMode: PDeviceMode;begin//set page 方向 if ADeviceMode = 0 then begin Printer.PrinterIndex := Printer.PrinterIndex; Printer.GetPrinter(PChar(ADevice), PChar(ADriver), PChar(APort), ADeviceMode); end; if ADeviceMode <> 0 then begin DevMode := GlobalLock(ADeviceMode); try //打印方向 DevMode^.dmFields := DevMode^.dmFields or DM_ORIENTATION; DevMode^.dmOrientation := DMORIENT_LANDSCAPE;// DMORIENT_PORTRAIT://横向// DMORIENT_LANDSCAPE: //纵向 finally GlobalUnlock(ADeviceMode); end; end else raise Exception.Create('不能设置打印属性'); PrintDBGridEh1.Preview;end; 楼上的楼上的办法有点复杂。在EhLib的帮助中,专门对纸张横纵向的设置做了代码示例,代码我记不清了,您查看一下帮助,我记得代码很短。 自己写的一个DLL 静态调用没有问题,动态调用老是出错,请高手帮忙! 类似TADOTable组件的属性问题 数据库更新问题 求助:请问如何用程序动态改变另一个窗口的图标 100分求识别数字英文的OCR源码 主机发信号,客户机执行,但是客户机不知道主机什么时候发信号(环境互联网) 有没有办法可以把选定的字改变字体? 关于文本存储的问题 请问怎样在自己的程序里面更改别的程序的菜单。 有关程序图标的问题 哪位知道怎样来捕获socket的异常处理!!!!!!!!!!!! 怎样在Delphi表格中以交叉表显示数据,高分求助。在线等待!!!急!!!
var
//Printer.SetPrinter();
ADevice, ADriver, APort: String;
ADeviceMode: THandle;
DevMode: PDeviceMode;
begin
//set page 方向
if ADeviceMode = 0 then
begin
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.GetPrinter(PChar(ADevice), PChar(ADriver), PChar(APort), ADeviceMode);
end; if ADeviceMode <> 0 then
begin
DevMode := GlobalLock(ADeviceMode);
try
//打印方向
DevMode^.dmFields := DevMode^.dmFields or DM_ORIENTATION;
DevMode^.dmOrientation := DMORIENT_LANDSCAPE;
// DMORIENT_PORTRAIT://横向
// DMORIENT_LANDSCAPE: //纵向 finally
GlobalUnlock(ADeviceMode);
end;
end
else
raise Exception.Create('不能设置打印属性'); PrintDBGridEh1.Preview;
end;