如题。

解决方案 »

  1.   

    printdialog只能方便的去取得一些参数,并没有对打印机进行任何设置。
      

  2.   

    请参看tprintdialog.printrage的帮助文档,应该对你有帮助的。
      

  3.   

    var
    aprinter : TPrinter;
      i : integer;
    begin
     aprinter := TPrinter.Create;
    // aPrinter.PageHeight := 240;
    // aPrinter.PageWidth := 240;
    SetPageWidth(210, aPrinter);
    SetPageHeigth(290, aPrinter);
     aPrinter.BeginDoc;
     for i := 0 to richedit1.Lines.Count -1 do
     begin
       if (i+ 1) mod 20 = 0 then
        aPrinter.NewPage;
     aPrinter.Canvas.TextOut(100, (i mod 20) * 50, richedit1.Lines[i + 1]);
     end;
    PrintDialog1.FromPage := 1;
    PrintDialog1.ToPage := 1;
    PrintDialog1.PrintRange :=  prSelection;
    PrintDialog1.Execute; aprinter.enddoc;
     aPrinter.Free;