自己UP一下; 还有 TO johnsonrao(johnson) and TO neilwq(qw) 如何做啊? 用自定义纸张,Windows的打印机设置也要自定义纸张,长宽都要定义得和delphi一样 要怎样实现啊? 帮帮我,谢谢;
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.BeginDoc; Printer.Canvas.TextOut(100,100, 'Test 1'); Printer.EndDoc; end; ========================Try============================
to: xgto(陪我去看流星雨,可以吗? 那可能是你的打印机的设置和报表的合不上,打印机仍然按a4或B5打印。
报表控件是它自代的 QuickRep
to: xgto(陪我去看流星雨,可以吗? 那可能是你的打印机的设置和报表的合不上,打印机仍然按a4或B5打印。 ============================ 为什么这样说? 我的打印机可以用A4 的纸的,我不太明白你说的是什么意思
我的意思是,我自定义了一个打印页面,是
宽 : 350MM
高 : 267MM
预览的时候是好好的,可是打印的时候,它总是只打印出来一大半,其中右边的和下边的它就打印不出来了,为什么呢?
我怎么放纸都不行的,很急的,帮帮我;
还有
TO johnsonrao(johnson) and TO neilwq(qw)
如何做啊?
用自定义纸张,Windows的打印机设置也要自定义纸张,长宽都要定义得和delphi一样
要怎样实现啊?
帮帮我,谢谢;
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.BeginDoc;
Printer.Canvas.TextOut(100,100, 'Test 1');
Printer.EndDoc;
end;
========================Try============================
QuickRep
============================
为什么这样说?
我的打印机可以用A4 的纸的,我不太明白你说的是什么意思
高 : 267MM
应该不是标准尺寸,用Custom Size应该没问题,但你的纸如果只有
宽 : 297MM
高 : 210MM
的话,那就肯定会出现问题。
你把多余的部分看成空白不就可以了我看不见你想要的结果
也看不见你不想要的结果
所以也不知道怎么下手帮你这些年我都没有用QuickRep做打印
使用Excel或Word做打印不亦乐哉
可以
将第一排的portrait 改为landscape试试!
但我在win2000下就打印不出来,(发现win2000没有自定义类型)
? why?
谢谢 [email protected]