Компонент
TPreview

Этот компонент является бесплатным и распространяется в исходных кодах. Использование в коммерческих целях не запрещено, однако требует наличия ссылок на авторские права в технической документации коммерческого проекта. 
Доступная версия 3.0
Вы можете скачать ее и протестировать. В данный момент ведется работа над очередной версией компонента, в которой будут устранены все ошибки, замеченные в результате тестирования различными пользователями. 
Особенности установки:
Я получил очень много писем примерно следующего содержания: "Не могу скомпилировать пакет. Возникает фатальная ошибка - не найден файл DsgnIntf.pas. ...". Дело в том, что этот файл - один из файлов Delphi, но почему-то его скомпилированный аналог DsgnIntf.dcu отсутствует в папке $(DELPHI)\Lib\, а путь к его расположению ($(DELPHI)\Source\Toolsapi\) не прописан в среде Delphi. Я советую просто скопировать файл DsgnIntf.pas в папку $(DELPHI)\Lib\ И все прекрасно скомпилируется. 
На будующее хочу сказать, что в папке $(DELPHI)\Source\Toolsapi\ находятся и другие файлы, пути к которым также не прописаны. Эти файлы необходимы для программирования дизайн-тайм объектов (редакторов свойств, редакторов компонентов, экспертов и т.д.)

  Описание:

 
  Компонент TPreview предназначен для вывода информации на принтер с возможностью ее предварительного просмотра. Компонент является хорошей альтернативой стандартного объекта TPrinter, так как по сравнению с ним обладает следующими преимуществами: 

  1. Вся информация, выводимая на принтер, прорисовывается при помощи объектного свойства TPaper. Оно является аналогом TCanvas, содержит практически все те же методы с теми же названиями и параметрами, плюс дополнительные возможности рисования регионов, градиентных заливок и т.д.; 
  2. Информация храниться в векторной форме, что позволяет просматривать результат в окне предварительного просмотра при любом масштабе;
  3. Все координаты задаются не в пикселях, а выбранных метрических единицах;
  4. Результат всегда корректно отображается при любом формате бумаги и разрешении принтера;
  5. Возможность задания стандартных и  собственных форматов бумаги;
  6. Удобное и настраиваемое окно предварительного просмотра, которое к тому же может быть переопределено пользователем;
  7. Многостраничная поддержка;
  8. Сохранение и загрузка в файлы содержимого в векторной форме с различными опциями;
  9. Экспорт страниц в различные графические форматы.


Компонент позволяет легко сформировать приложение, которое должно выводить на принтер произвольного типа информацию. Окно предварительного просмотра позволяет изменять масштаб на любое значение в определенных пределах. Увеличение количества страниц не приводит к увеличению выделенной памяти.

Демонстрационный пример - окно предварительного просмотра




 
почта