Приветствую. Среда разработки Delphi. Проблема: есть форма, на форме компонент PageControl, ну а на его закладке другие компоненты. Необходимо распечатать всю информацию, находящуюся ТОЛЬКО на этой закладке компонента PageControl. Облазил весь поисковик да толку мало. Нашёл близкий к правде вариант:
procedure TForm1.Button1Click(Sender: TObject);
var
i, Start, Stop: Integer;
begin
PrintDialog1.Options := [poPageNums, poSelection];
PrintDialog1.FromPage := 1;
PrintDialog1.ToPage := PageControl1.PageCount;
PrintDialog1.MinPage := 1;
PrintDialog1.MaxPage := PageControl1.PageCount;
if not PrintDialog1.Execute then exit;
if PrintDialog1.PrintRange = prAllPages then
begin
Start := PrintDialog1.MinPage - 1;
Stop := PrintDialog1.MaxPage - 1;
end
else //Если выбрано отличное от печати «Всё»
if PrintDialog1.PrintRange = prSelection then
begin
Start := PageControl1.ActivePageIndex;
Stop := Start;
end
else /Если выбрано отличное от «Выделенный фрагмент»
begin
Start := PrintDialog1.FromPage - 1;
Stop := PrintDialog1.ToPage - 1;
end;
//Начало печати
Printer.BeginDoc;
for i := Start to Stop do
begin
PageControl1.Pages[i].PaintTo(Printer.Handle, 10, 10);
if i <> Stop then
Printer.NewPage;
end;
Printer.EndDoc;
end;
НО этот вариант не подходит, т.к. с его помощью на листе бумаги получается очень маленькая картинка без соблюдения масштаба.
Вопрос: как, используя этот вариант (выше), программно задать нормальный масштаб, чтобы результат напечатался на весь лист формата А4 ?
Благодарю.
Социальные закладки