Масштабирование TCanvas
Можно взять то, что сформировано для печати, перевести в битмап, а затем этот битмап вывести в нужном месте.
Проблема в том, что при выводе на принтер, размеры канваса получаются довольно большими (примерно 2500*3500), а надо чтобы на экране полный лист показывался, который на печать пойдет.
Проблема в том, что при выводе на принтер, размеры канваса получаются довольно большими (примерно 2500*3500), а надо чтобы на экране полный лист показывался, который на печать пойдет.
Посмотри хелп по методу Canvas->StretchDraw - эта фигня как раз и занимается масштабированием. Также можешь использовать обычный Canvas->CopyRect - где SourceRect - весь размер канваса - а DestRect - это размер области куда ты хочешь вывести изображение. Если DestRect отличается от SourceRect - тогда происходит автоматическое масштабирование изображения.
Посмотри хелп по методу Canvas->StretchDraw - эта фигня как раз и занимается масштабированием. Также можешь использовать обычный Canvas->CopyRect - где SourceRect - весь размер канваса - а DestRect - это размер области куда ты хочешь вывести изображение. Если DestRect отличается от SourceRect - тогда происходит автоматическое масштабирование изображения.
CopyRect работает, огромное спасибо!
CopyRect работает, огромное спасибо!
Вот, блин, не успел обрадоваться, так Билдеровский хелп меня обломал, нельзя, говорит со свойством Canvas класса TPrinter использовать методы CopyRect, StretchDraw и Draw.
C++Builder canvases use device-dependent bitmaps to implement the Draw, StretchDraw, or CopyRect methods. Because of this, you can’t use these methods with most printers.
А как же тогда скопировать то, что на TPrinter::Canvas нарисовано?