TPrinter *prin = Printer();
prin->BeginDoc();
StringGrid1->PaintTo(prin-Canvas,10,10);
prin->EndDoc();
Печать TStringGrid через TPrint
Код:
Надо что бы нормальный размер таблици получался.
Цитата: iRain
При нажатии кнопки рисуется TStringGrid на канве TPrinter, и выводится на печать. Только одна проблема! размер таблици получается очень маленький. Вот код:
Надо что бы нормальный размер таблици получался.
Код:
TPrinter *prin = Printer();
prin->BeginDoc();
StringGrid1->PaintTo(prin-Canvas,10,10);
prin->EndDoc();
prin->BeginDoc();
StringGrid1->PaintTo(prin-Canvas,10,10);
prin->EndDoc();
Надо что бы нормальный размер таблици получался.
Проблема здесь в разнице разрешений экрана и принтера, а точнее в разнице dpi (точек на дюйм). То, что на экране выглядит нормальным, на принтере может быть очень маленьким.
Выход, допустим с помощью Windows GDI функции GetDeviceCaps получить свойства принтера, такие как разрешение принтера, и промасштабировать таблицу в соответствии с этими размерами.
Цитата: iRain
При нажатии кнопки рисуется TStringGrid на канве TPrinter, и выводится на печать. Только одна проблема! размер таблици получается очень маленький. Вот код:
Надо что бы нормальный размер таблици получался.
Код:
TPrinter *prin = Printer();
prin->BeginDoc();
StringGrid1->PaintTo(prin-Canvas,10,10);
prin->EndDoc();
prin->BeginDoc();
StringGrid1->PaintTo(prin-Canvas,10,10);
prin->EndDoc();
Надо что бы нормальный размер таблици получался.
Поставь какой-нибудь генератор отчетов Например