纵向 打印 和 横向打印 的区别?(10分)

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

delhpi

Unregistered / Unconfirmed
GUEST, unregistred user!
打印内容由纵向改成横向,在打印内容的坐标上需要做什么调整吗?还是只要设置打印方向就行了?
我没有分了,只有11分,我给10
 
设置纸张。。
 
只要交换 纸张的 宽 和长 就行了?
 
横向 纵向 打印

横向 纵向 进纸
有何区别,我指 写代码时,有何区别?
 
代码上应该没有什么区别,就是在设置打印时会不一样
 
我想实现设置打印份数的功能,按钮中的代码如下,但在fineprint中,看打印预览,显示的还是1页。我用其他软件,以及WORD试,只要设置了打印X份,fineprint中,都显示X页。
我的代码为何不对?
假设要在程序用代码设置 各种打印信息如
1、指定 打印输出的特定打印机(不一定是默认的)
2、纸张类型(用标准纸张时)
3、纸张大小(自定义时)
4、打印方向
5、打印份数
我想请教,这个打印流程是如何的?
是不是:
1、进行各个设置
2、printer.begin
Doc;
3、写实际要打印的内容
4、printer.EndDoc;
请大家帮忙。
富翁名称: delhpi
专 家 分: 6
可用积分: 15
给14分。
procedure TForm1.BtnChkPrnClick(Sender: TObject);
begin
SetCopies(3);
printer.begin
Doc;
printer.Canvas.TextOut(100,100,'测试');
printer.EndDoc;
end;

//这个是设置打印份数的代码
procedure SetCopies(Copies: Integer);
var
ADevice, ADriver, APort: String;
ADeviceMode: THandle;
DevMode: PDeviceMode;
begin
SetLength(ADevice, 255);
SetLength(ADriver, 255);
SetLength(APort, 255);
{ If ADeviceMode is zero, a printer driver is not loaded. Therefore,
setting PrinterIndex forces the driver to load. }
if ADeviceMode = 0 then
begin
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.GetPrinter(PChar(ADevice), PChar(ADriver), PChar(APort), ADeviceMode);
end;

if ADeviceMode <> 0 then
begin
DevMode := GlobalLock(ADeviceMode);
try
DevMode^.dmFields := DevMode^.dmFields or DM_Copies;
DevMode^.dmCopies := Copies;
finally
GlobalUnlock(ADeviceMode);
end;
end
else
raise Exception.Create('Could not set printer copies');
end;
 
多人接受答案了。
 
后退
顶部