打印的问题,不解决我就完蛋了(200分)

  • 主题发起人 poorness
  • 开始时间
P

poorness

Unregistered / Unconfirmed
GUEST, unregistred user!
我要打印一个套打格式的报表,宽为11×5。5 英寸的报表,
用的打印机是Epson LQ300K的,可是该款的打印机不支持自定义纸张的大小,
所以每次总是一张纸打一半,然后从下一张纸开始
在DELPHI中定义也不行,我是QUICKREP 做的报表
请问该如何解决,请大虾多帮忙

 
打印机不支持是什么意思
你在控制面板 打印机设置 把默认纸张改为自定义 和你的quickrep中的大小一致再试试
 
据我所知Epson LQ300K支持自定义纸张的大小的!
可能你使用的系统是WIN2K,故在设置中看不到自定义纸张这一栏....
你可在控制面板 打印机设置 文件->服务器属性中添加你的自定义纸张的大小就可以在程序中使用了
 
可以调整呀,控制面板---打印机---右击--属性---纸张,最后一项就是自定义呀
我用的就是LQ300K,但必须将纸张与程序里设定的一样
如果实在不行,换别的驱动,1600K,1800K都行
 
我以前也遇到同样的问题,如下解决;
你可在控制面板->打印机设置->文件->服务器属性中添加你的自定义纸张的大小
然后设置QReport的纸张和控制面板中打印机的纸张相同就可以解决你的问题了。
 
我按你们说的设置了,服务器属性中添加了自定义纸张,
我把程序了设置成这个值,但是我则样在WIN2000 打印机属性中把纸张类型该为我自定义的大小
如果不该,还是不行啊
请多指点
 
你将打印机的驱动程序换成Epson LQ300K II 试试.
 
我有換成LQ1600K4 不行
 
TPrinterSetupDialog 这个不行吗?
那就用这个:
BOOL SetPrinter(
HANDLE hPrinter, // handle to printer object
DWORD Level, // structure level
LPBYTE pPrinter, // pointer to array containing printer data
DWORD Command // printer-state command
);

 
换REPORT MACHINE
 
win2000就很麻烦啊,打印的设置少了,呵呵
 
請問
我在quickrep的beforePrint 中添加如下設定,自定義的代碼為什麼還是不能按我
設置的紙長走紙
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;
i:integer;
begin
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;
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERLENGTH;
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERWIDTH;
pDMode^.dmPaperSize := 256;
pDMode^.dmPaperLength := 1347;
pDMode^.dmPaperWidth := 2695;
ResetDC(Printer.Handle,pDMode^);
end;
請大蝦幫忙
 
多人接受答案了。
 
顶部