Класс TXLSPaginationModel
TXLSPaginationModel строит независимую от вывода последовательность логических страниц для классических диапазонов, листов или книг XLS и современных XLSX
Каждая страница несёт геометрию бумаги, поля, масштаб, полосы строк и столбцов, повторяющиеся заголовки печати, верхние и нижние колонтитулы, политику линий сетки, порядок страниц и размещение рисунков
Методы построения
function Build(Range: IXLSRange): Boolean; overload; function Build(Worksheet: TXLSWorksheet): Boolean; overload; function Build(Workbook: TXLSWorkbook): Boolean; overload; function Build(Range: TXLSXRange): Boolean; overload; function Build(Worksheet: TXLSXWorksheet): Boolean; overload; function Build(Workbook: TXLSXWorkbook): Boolean; overload;
Каждый вызов Build очищает предыдущий результат, исключает скрытые листы книги и применяет область печати листа, когда включено свойство UseWorksheetPageSetup is enabled
Члены логической страницы
| DocumentPageNumber | Номер страницы с отсчётом от 1 по всей книге |
| SheetPageNumber | Номер страницы с отсчётом от 1 внутри принадлежащего листа |
| PageWidth / PageHeight | Размеры бумаги в пунктах после применения ориентации |
| Margins | Левое, правое, верхнее, нижнее, колонтитульное и подвальное поля в пунктах |
| Scale | Разрешённый масштаб листа или «по размеру страницы» от 0,1 до 4 |
| Rows / RowEdges | Фактические строки листа и их координаты страницы сверху вниз |
| Columns / ColumnEdges | Фактические столбцы листа и их координаты страницы слева направо |
| Drawings | Размещение изображений, диаграмм, текстовых полей, фигур и элементов управления с обрезкой по странице |
| PrintComments | Режим отображения примечаний в постраничном выводе; xpcAtEnd добавляет список примечаний (адрес ячейки, автор и текст) под последней строкой данных на финальной странице листа, тогда как xpcNone omits comments |
Рендеринг и метафайлы
RenderPage draws one page into any VCL TCanvas и масштабирует страницу пропорционально в заданные вызывающим границы
RenderPageToBackend draws one page into a TXLSGraphicsBackendрисует одну страницу на любой VCL-объект RenderXlsxCellsToBackend и пропорционально масштабирует страницу в переданные вызывающим кодом границы
CreatePageMetafile возвращает принадлежащий вызывающему коду объект TMetafile, а SavePageAsMetafile записывает одну страницу непосредственно в файл EMF
TXLSPDFExport.CreatePaginationModel возвращает ту же модель, настроенную с параметрами экспортёра по умолчанию для ориентации, полей и высоты строк, и вызывающий код владеет возвращённой моделью
Пример
Pages := TXLSPaginationModel.Create;
try
if Pages.Build(Workbook) then
Pages.SavePageAsMetafile(0, 'FirstPage.emf');
finally
Pages.Free;
end;