如何用dephi4动态设置打印纸张大小?(50分)

  • 主题发起人 何诗兴
  • 开始时间

何诗兴

Unregistered / Unconfirmed
GUEST, unregistred user!
在打印时如何根据打印内容动态设置纸张大小,特别是纸张高度.
 
这个困难点, 不过可以:

1. 打印前用TprintDialog控件选择纸张大小.
2. 通过Printer.canvas控制输出画面的大小
3. 输出到Printer的时候自己控制输出的大小
 
已讨论过无数次
 
TprintDialog控件除了选打印机就是设置纸张,用法和WORD97没什么不同啊.

最好的方法是:
使用大富翁的问题检索.省点分.(给我就不要省)
 
我现在要求动态改变打印长度的情形是:用户要求打印一个类似于清单的东西,但清单长度不定,少则1条记录,多则上百条记录,每天打印量很大,用户为了节省纸张,要求每次都连续打印,中间不用换页,每个单据打到何处,纸张就停在何处,后面的空间打印下一个单据,我用QUICKREP,TPrint都试过,但都不行,每次打印完后都换页.我现在想如果能动态设置打印纸张高度,我就可以在每次打印前根据打印的条数自动设置打印纸的高度,从而表面上打印机打印结束后并不换页,请同仁们帮我解决这个问题.谢谢!
 
不用 TPrinter, 请试试 AssignPrn 两个范例。

procedure TForm1.From_Delphi1_Demos_Doc_TextEdit_MdiEdit;
var
Line: Integer;
PrintText: System.Text;
begin

AssignPrn(PrintText);
Rewrite(PrintText);
Printer.Canvas.Font := Memo1.Font;
for Line := 0 to Memo1.Lines.Count - 1do

Writeln(PrintText, Memo1.Lines[Line]);
System.Close(PrintText);
end;


procedure TForm1.From_Help_AssignPrn_Example;
var
MyFile: TextFile;
begin

AssignPrn(MyFile);
try
Rewrite(MyFile);
Writeln(MyFile, 'Print this text');
finally
System.CloseFile(MyFile);
end;

end;

 
接受答案了.
 
顶部