用连续纸张打印时,当打印完一页的时候, 打印机开始走纸,不让走纸,各位大侠有什么高见,请赐教?(200分)

  • 主题发起人 主题发起人 duguqiubai
  • 开始时间 开始时间
D

duguqiubai

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在使用的是Epson stylus color 1520k打印机,我在用连续纸打印较长的图形时,我在程序里设置的页长,但当打印完一页的时候, 打印机开始走纸,大约18mm,我需要连续打印,不走纸,请问有什么办法?是不是在哪里需要设置,此打印机支持的自定义纸张最大长度大约是1米多,不能满足需要。因此我把较长的图形分段打印。或者自定义纸张可以设置更长。
 
怎么没人回答,我使用Windows API的StartPage 和EndPage,但走纸。可能是页面的顶部空白和底部空白设置的问题。怎么能让页面的顶部空白和底部空白为零,各位有什么高见。
 
我也在想辦法解決﹐我想標簽﹐也是走紙。
 
我也在想辦法解決﹐我打標簽﹐也是走紙。不過每次只走0。1cm

 
98下可以, 2000好象不行。
我贴一段代码:
procedure TForm1.Button1Click(Sender: TObject);
var
Device : array[0..255] of char;
Driver : array[0..255] of char;
Port : array[0..255] of char;
hDMode : THandle;
PDMode : PDEVMODE;
begin
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.GetPrinter(Device, Driver, Port, hDMode);
if hDMode <> 0 then
begin
pDMode := GlobalLock(hDMode);
if pDMode <> nil then
begin

{Set to legal}
pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;
pDMode^.dmPaperSize := DMPAPER_LEGAL;
{Set to custom size}
pDMode^.dmFields := pDMode^.dmFields or
DM_PAPERSIZE or
DM_PAPERWIDTH or
DM_PAPERLENGTH;
pDMode^.dmPaperSize := DMPAPER_USER;
pDMode^.dmPaperWidth := 100 {SomeValueInTenthsOfAMillimeter};
pDMode^.dmPaperLength := 100 {SomeValueInTenthsOfAMillimeter};
{Set the bin to use}
pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
pDMode^.dmDefaultSource := DMBIN_MANUAL;
GlobalUnlock(hDMode);
end;
end;
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.begin
Doc;
Printer.Canvas.TextOut(100,100, 'Test 1');
Printer.EndDoc;
end;

 
其实非常简单,打印前算好图形的大小,设置纸张,每打印一页后就需要重新计算设置一下。(直接让打印机不走纸在windows下是不可能的。)。
 
我也遇到同样的问题,可以在打印机中把你要打印的尺寸设成默认,然后程序中也设成默认
问题解决,不知道你们的行不行!
如果不行,希望告知解决方法!
 
后退
顶部