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 custom size}
if PaperType=6 then
begin
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERSIZE Or DM_PAPERLENGTH
Or DM_PAPERWIDTH;
pDMode^.dmPaperSize := DMPAPER_USER;
pDMode^.dmPaperWidth := SetIni.CustomDefinPagerWidth;
pDMode^.dmPaperLength := SetIni.CustomDefinPagerHeight;
end else
begin
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERSIZE;
pDMode^.dmPaperSize := PaperSet[PaperType];
end;
end;
{设定纸张来源}
pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
pDMode^.dmDefaultSource := DMBIN_AUTO;
//i := pDMode^.dmLogPixels;
GlobalUnlock(hDMode);
end;
Printer.Orientation := poPortrait;
Printer.Copies := iCopies;
Printer.PrinterIndex := Printer.PrinterIndex;
with Re do
begin
SelectAll;
SelAttributes.Size := PrnSize;
Paragraph.Numbering := nsNone;
Paragraph.FirstIndent := PrnLeft;
Paragraph.RightIndent := PrnLeft;
Print('XX');
end;请问用以上打印方法,怎么样能实现双面打印或用其它方法也行,请高手指点。
Printer.GetPrinter(Device, Driver, Port, hDMode);
if hDMode <> 0 then
begin
pDMode := GlobalLock(hDMode);
if pDMode <> nil then
begin
{Set to custom size}
if PaperType=6 then
begin
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERSIZE Or DM_PAPERLENGTH
Or DM_PAPERWIDTH;
pDMode^.dmPaperSize := DMPAPER_USER;
pDMode^.dmPaperWidth := SetIni.CustomDefinPagerWidth;
pDMode^.dmPaperLength := SetIni.CustomDefinPagerHeight;
end else
begin
pDMode^.dmFields := pDMode^.dmFields or DM_PAPERSIZE;
pDMode^.dmPaperSize := PaperSet[PaperType];
end;
end;
{设定纸张来源}
pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
pDMode^.dmDefaultSource := DMBIN_AUTO;
//i := pDMode^.dmLogPixels;
GlobalUnlock(hDMode);
end;
Printer.Orientation := poPortrait;
Printer.Copies := iCopies;
Printer.PrinterIndex := Printer.PrinterIndex;
with Re do
begin
SelectAll;
SelAttributes.Size := PrnSize;
Paragraph.Numbering := nsNone;
Paragraph.FirstIndent := PrnLeft;
Paragraph.RightIndent := PrnLeft;
Print('XX');
end;请问用以上打印方法,怎么样能实现双面打印或用其它方法也行,请高手指点。
With DevMode^ Do
Begin
dmFields:=dmFields or DM_DUPLEX;
dmPrintQuality:=DMDUP_HORIZONTAL;
end;这样就是打印双面了.