|
<< Нажмите, чтобы показать Содержание >>
|
Этот компонент похож на TRVPrint, но:
▪его можно использовать для рисования на любой канве (Canvas) страниц любого размера, не ограниченного размерами страниц принтера; однако аналогичную функциональность можно реализовать с помощью TRVPrint.VirtualPrinter;
▪он содержит документ, а не ссылку на него.
Модуль [VCL/FMX] RVReport / fmxRVReport.
Синтаксис
TRVReportHelper = class(TCustomRVPrint)
TObject
TPersistent
TComponent
1.Загрузите документ в RVReportHelper.RichView.
2.Инициализируйте форматирование (Init). Задайте ширину страницы и канву.
3.Форматируйте документ постранично с помощью FormatNextPage. Страницы могут иметь разную высоту.
4.Рисуйте страницы на канве с помощью DrawPage или DrawPageAt. Если нужно получать позиции гиперссылок и закладок, используйте события OnDrawHyperlink и OnDrawCheckpoint.
Пример (рисование документа в метафайле)
procedure TForm1.DrawToMetafile(rvh: TRVReportHelper;
wmf: TMetafile; Width: Integer);
const VERYLARGEVALUE = $FFFFFFF;
var Canvas: TMetafileCanvas;
begin
rvh.IgnorePageBreaks := True;
rvh.Init(Self.Canvas, Width);
while rvh.FormatNextPage(VERYLARGEVALUE) do;
wmf.Width := Width;
wmf.Height := rvh.GetLastPageHeight;
Canvas := TMetafileCanvas.Create(wmf, 0);
rvh.DrawPage(1,Canvas,True,rvh.GetLastPageHeight);
Canvas.Free;
end;
У некоторых канв могут возникать проблемы с рисованием сложного содержимого (особенно при создании PDF или метафайлов). В этом случае можно использовать следующие свойства:
TRVReportHelper не поддерживает колонтитулы.
Если вам нужно хранить, используйте класс TRVReportHelperWithHeaderFooters (или
СРВ-Редактор (ScaleRichView)).
▪Demos\*\Assorted\Graphics\ToImage\
▪Demos\*\Assorted\Printing\ReportHelper\