QuickRep1.PrinterSettings.PaperSize := ?
QuickRep1.Preview;问号代表我想设置为系统默认的打印机的纸张大小,该怎么操作,请大家帮帮忙。在此谢谢。
补充一下,我想用QuickRep1 打印帐单,系统打印机设置好了纸张大小,我想让它以系统的纸张大小进行设置 再打印。
QuickRep1.Preview;问号代表我想设置为系统默认的打印机的纸张大小,该怎么操作,请大家帮帮忙。在此谢谢。
补充一下,我想用QuickRep1 打印帐单,系统打印机设置好了纸张大小,我想让它以系统的纸张大小进行设置 再打印。
解决方案 »
- 希望各位大虾帮我写个正则表达式。
- 在多线程中操作按钮的Enabled值时报错。
- IdUDPServer问题,请高手指点!
- TclientScoket程序出现错误,见图,急急处理.高分重谢
- 给一家公司做软件,大家说说该收多少钱?
- 在Websnap技术中如何,我想自己写“下一条记录”,“保存记录”,该如何写
- PB和DELPH作MIS,那个更好?
- 高分求动态建立sql server 2000数据库的原代码,解决立即给分!
- 怎样保存IDE的设置?
- 在ADOSTOREDPROC中切换两个SQL储存过程的小问题.
- 100分求教:进销存中销售单,退货单以及客户欠款之间的关系问题
- delphi怎么实现半透明不规则窗口呢?
你这里设置纸张大小。要把你纸张实际大小转换以像素为单位的大小。
然后设置就可以了。
我只用用过delphi自带的printer。
下面供参考procedure SetPrinterPaperWidth(Value: Integer); //设置纸张宽度:单位--mm
var
Device : array[0..255] of char;
Driver : array[0..255] of char;
Port : array[0..255] of char;
hDMode : THandle;
PDMode : PDEVMODE;
begin
if Value < 76 then Value := 76; //自定义纸张最小宽度76mm
if Value > 216 then Value := 216; //自定义纸张最大宽度216mm
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.GetPrinter(Device, Driver, Port, hDMode);
if hDMode <> 0 then
begin
PDMode := GlobalLock(hDMode);
if PDMode <> nil then
begin
PDMode^.dmFields := PDMode^.dmFields or DM_PAPERSIZE or
DM_PAPERWIDTH;
PDMode^.dmPaperSize := DMPAPER_USER;
PDMode^.dmPaperWidth := Value * 10; //将毫米单位转换为0.1mm单位
PDMode^.dmFields := PDMode^.dmFields or DMBIN_MANUAL or DM_COLOR;
PDMode^.dmDefaultSource := DMBIN_MANUAL;
PDMode^.dmColor := DMCOLOR_MONOCHROME;
GlobalUnlock(hDMode);
end;
end;
Printer.PrinterIndex := Printer.PrinterIndex;
end;
我估计你可能没有时白我的意思。可能是我说得不够明白。
我的意思是必须用QuickRep 打印。
而且其他方式的打印都合我的要求,唯独用QuickRep 来打印就是不对,不符合我的要求。
我觉得,应该是他的宽度不对,用的是自己的默认宽度,而不是用的系统打印机的默认宽度。