Commit 91ecd1a8 authored by Alexander.Trofimov's avatar Alexander.Trofimov

pageOptions -> pageSetup

parent 68664c45
...@@ -1637,8 +1637,8 @@ ...@@ -1637,8 +1637,8 @@
var maxRows = this.model.getRowsCount(); var maxRows = this.model.getRowsCount();
var lastC = -1, lastR = -1; var lastC = -1, lastR = -1;
var activeRange = printOnlySelection ? this.activeRange : null; var activeRange = printOnlySelection ? this.activeRange : null;
var bFitToWidth = pageOptions.asc_getFitToWidth(); var bFitToWidth = false;
var bFitToHeight = pageOptions.asc_getFitToHeight(); var bFitToHeight = false;
if (null === activeRange) { if (null === activeRange) {
range = new asc_Range(0, 0, maxCols, maxRows); range = new asc_Range(0, 0, maxCols, maxRows);
...@@ -1687,226 +1687,228 @@ ...@@ -1687,226 +1687,228 @@
if (pageSetup instanceof asc_CPageSetup) { if (pageSetup instanceof asc_CPageSetup) {
pageWidth = pageSetup.asc_getWidth(); pageWidth = pageSetup.asc_getWidth();
pageHeight = pageSetup.asc_getHeight(); pageHeight = pageSetup.asc_getHeight();
pageOrientation = pageSetup.asc_getOrientation(); pageOrientation = pageSetup.asc_getOrientation();
} bFitToWidth = pageSetup.asc_getFitToWidth();
bFitToHeight = pageSetup.asc_getFitToHeight();
var pageLeftField, pageRightField, pageTopField, pageBottomField; }
if (pageMargins instanceof asc_CPageMargins) {
pageLeftField = pageMargins.asc_getLeft(); var pageLeftField, pageRightField, pageTopField, pageBottomField;
pageRightField = pageMargins.asc_getRight(); if (pageMargins instanceof asc_CPageMargins) {
pageTopField = pageMargins.asc_getTop(); pageLeftField = pageMargins.asc_getLeft();
pageBottomField = pageMargins.asc_getBottom(); pageRightField = pageMargins.asc_getRight();
} pageTopField = pageMargins.asc_getTop();
pageBottomField = pageMargins.asc_getBottom();
if (null == pageGridLines) { }
pageGridLines = c_oAscPrintDefaultSettings.PageGridLines;
} if (null == pageGridLines) {
if (null == pageHeadings) { pageGridLines = c_oAscPrintDefaultSettings.PageGridLines;
pageHeadings = c_oAscPrintDefaultSettings.PageHeadings; }
} if (null == pageHeadings) {
pageHeadings = c_oAscPrintDefaultSettings.PageHeadings;
if (null == pageWidth) { }
pageWidth = c_oAscPrintDefaultSettings.PageWidth;
} if (null == pageWidth) {
if (null == pageHeight) { pageWidth = c_oAscPrintDefaultSettings.PageWidth;
pageHeight = c_oAscPrintDefaultSettings.PageHeight; }
} if (null == pageHeight) {
if (null == pageOrientation) { pageHeight = c_oAscPrintDefaultSettings.PageHeight;
pageOrientation = c_oAscPrintDefaultSettings.PageOrientation; }
} if (null == pageOrientation) {
pageOrientation = c_oAscPrintDefaultSettings.PageOrientation;
if (null == pageLeftField) { }
pageLeftField = c_oAscPrintDefaultSettings.PageLeftField;
} if (null == pageLeftField) {
if (null == pageRightField) { pageLeftField = c_oAscPrintDefaultSettings.PageLeftField;
pageRightField = c_oAscPrintDefaultSettings.PageRightField; }
} if (null == pageRightField) {
if (null == pageTopField) { pageRightField = c_oAscPrintDefaultSettings.PageRightField;
pageTopField = c_oAscPrintDefaultSettings.PageTopField; }
} if (null == pageTopField) {
if (null == pageBottomField) { pageTopField = c_oAscPrintDefaultSettings.PageTopField;
pageBottomField = c_oAscPrintDefaultSettings.PageBottomField; }
} if (null == pageBottomField) {
pageBottomField = c_oAscPrintDefaultSettings.PageBottomField;
if (c_oAscPageOrientation.PageLandscape === pageOrientation) { }
var tmp = pageWidth;
pageWidth = pageHeight; if (c_oAscPageOrientation.PageLandscape === pageOrientation) {
pageHeight = tmp; var tmp = pageWidth;
} pageWidth = pageHeight;
pageHeight = tmp;
var arrResult = []; }
if (0 === maxCols || 0 === maxRows) {
// Ничего нет, возвращаем пустой массив var arrResult = [];
return null; if (0 === maxCols || 0 === maxRows) {
} else { // Ничего нет, возвращаем пустой массив
var pageWidthWithFields = pageWidth - pageLeftField - pageRightField; return null;
var pageHeightWithFields = pageHeight - pageTopField - pageBottomField; } else {
var leftFieldInPt = pageLeftField / vector_koef; var pageWidthWithFields = pageWidth - pageLeftField - pageRightField;
var topFieldInPt = pageTopField / vector_koef; var pageHeightWithFields = pageHeight - pageTopField - pageBottomField;
var rightFieldInPt = pageRightField / vector_koef; var leftFieldInPt = pageLeftField / vector_koef;
var bottomFieldInPt = pageBottomField / vector_koef; var topFieldInPt = pageTopField / vector_koef;
var rightFieldInPt = pageRightField / vector_koef;
if (pageHeadings) { var bottomFieldInPt = pageBottomField / vector_koef;
// Рисуем заголовки, нужно чуть сдвинуться
leftFieldInPt += this.cellsLeft; if (pageHeadings) {
topFieldInPt += this.cellsTop; // Рисуем заголовки, нужно чуть сдвинуться
} leftFieldInPt += this.cellsLeft;
topFieldInPt += this.cellsTop;
var pageWidthWithFieldsHeadings = (pageWidth - pageRightField) / vector_koef - leftFieldInPt; }
var pageHeightWithFieldsHeadings = (pageHeight - pageBottomField) / vector_koef - topFieldInPt;
var pageWidthWithFieldsHeadings = (pageWidth - pageRightField) / vector_koef - leftFieldInPt;
var currentColIndex = (null !== activeRange) ? activeRange.c1 : 0; var pageHeightWithFieldsHeadings = (pageHeight - pageBottomField) / vector_koef - topFieldInPt;
var currentWidth = 0;
var currentRowIndex = (null !== activeRange) ? activeRange.r1 : 0; var currentColIndex = (null !== activeRange) ? activeRange.c1 : 0;
var currentHeight = 0; var currentWidth = 0;
var isCalcColumnsWidth = true; var currentRowIndex = (null !== activeRange) ? activeRange.r1 : 0;
var currentHeight = 0;
var bIsAddOffset = false; var isCalcColumnsWidth = true;
var nCountOffset = 0;
var bIsAddOffset = false;
while (true) { var nCountOffset = 0;
if (currentColIndex === maxCols && currentRowIndex === maxRows) {
break; while (true) {
} if (currentColIndex === maxCols && currentRowIndex === maxRows) {
break;
var newPagePrint = new asc_CPagePrint(); }
var colIndex = currentColIndex, rowIndex = currentRowIndex; var newPagePrint = new asc_CPagePrint();
newPagePrint.indexWorksheet = indexWorksheet; var colIndex = currentColIndex, rowIndex = currentRowIndex;
newPagePrint.pageWidth = pageWidth; newPagePrint.indexWorksheet = indexWorksheet;
newPagePrint.pageHeight = pageHeight;
newPagePrint.pageClipRectLeft = pageLeftField / vector_koef; newPagePrint.pageWidth = pageWidth;
newPagePrint.pageClipRectTop = pageTopField / vector_koef; newPagePrint.pageHeight = pageHeight;
newPagePrint.pageClipRectWidth = pageWidthWithFields / vector_koef; newPagePrint.pageClipRectLeft = pageLeftField / vector_koef;
newPagePrint.pageClipRectHeight = pageHeightWithFields / vector_koef; newPagePrint.pageClipRectTop = pageTopField / vector_koef;
newPagePrint.pageClipRectWidth = pageWidthWithFields / vector_koef;
newPagePrint.leftFieldInPt = leftFieldInPt; newPagePrint.pageClipRectHeight = pageHeightWithFields / vector_koef;
newPagePrint.topFieldInPt = topFieldInPt;
newPagePrint.rightFieldInPt = rightFieldInPt; newPagePrint.leftFieldInPt = leftFieldInPt;
newPagePrint.bottomFieldInPt = bottomFieldInPt; newPagePrint.topFieldInPt = topFieldInPt;
newPagePrint.rightFieldInPt = rightFieldInPt;
for (rowIndex = currentRowIndex; rowIndex < maxRows; ++rowIndex) { newPagePrint.bottomFieldInPt = bottomFieldInPt;
var currentRowHeight = this.rows[rowIndex].height;
if (!bFitToHeight && currentHeight + currentRowHeight > pageHeightWithFieldsHeadings) { for (rowIndex = currentRowIndex; rowIndex < maxRows; ++rowIndex) {
// Закончили рисовать страницу var currentRowHeight = this.rows[rowIndex].height;
break; if (!bFitToHeight && currentHeight + currentRowHeight > pageHeightWithFieldsHeadings) {
} // Закончили рисовать страницу
if (isCalcColumnsWidth) { break;
for (colIndex = currentColIndex; colIndex < maxCols; ++colIndex) { }
var currentColWidth = this.cols[colIndex].width; if (isCalcColumnsWidth) {
if (bIsAddOffset) { for (colIndex = currentColIndex; colIndex < maxCols; ++colIndex) {
newPagePrint.startOffset = ++nCountOffset; var currentColWidth = this.cols[colIndex].width;
newPagePrint.startOffsetPt = (pageWidthWithFieldsHeadings * newPagePrint.startOffset); if (bIsAddOffset) {
currentColWidth -= newPagePrint.startOffsetPt; newPagePrint.startOffset = ++nCountOffset;
} newPagePrint.startOffsetPt = (pageWidthWithFieldsHeadings * newPagePrint.startOffset);
currentColWidth -= newPagePrint.startOffsetPt;
if (!bFitToWidth && currentWidth + currentColWidth > pageWidthWithFieldsHeadings && }
colIndex !== currentColIndex) {
break; if (!bFitToWidth && currentWidth + currentColWidth > pageWidthWithFieldsHeadings &&
} colIndex !== currentColIndex) {
break;
currentWidth += currentColWidth; }
if (!bFitToWidth && currentWidth > pageWidthWithFieldsHeadings && currentWidth += currentColWidth;
colIndex === currentColIndex) {
// Смещаем в селедующий раз ячейку if (!bFitToWidth && currentWidth > pageWidthWithFieldsHeadings &&
bIsAddOffset = true; colIndex === currentColIndex) {
++colIndex; // Смещаем в селедующий раз ячейку
break; bIsAddOffset = true;
} else { ++colIndex;
bIsAddOffset = false; break;
} } else {
} bIsAddOffset = false;
isCalcColumnsWidth = false; }
if (pageHeadings) { }
currentWidth += this.cellsLeft; isCalcColumnsWidth = false;
} if (pageHeadings) {
currentWidth += this.cellsLeft;
if (bFitToWidth) { }
newPagePrint.pageClipRectWidth = Math.max(currentWidth, newPagePrint.pageClipRectWidth);
newPagePrint.pageWidth = if (bFitToWidth) {
newPagePrint.pageClipRectWidth * vector_koef + (pageLeftField + pageRightField); newPagePrint.pageClipRectWidth = Math.max(currentWidth, newPagePrint.pageClipRectWidth);
} else { newPagePrint.pageWidth =
newPagePrint.pageClipRectWidth = Math.min(currentWidth, newPagePrint.pageClipRectWidth); newPagePrint.pageClipRectWidth * vector_koef + (pageLeftField + pageRightField);
} } else {
} newPagePrint.pageClipRectWidth = Math.min(currentWidth, newPagePrint.pageClipRectWidth);
}
currentHeight += currentRowHeight; }
currentWidth = 0;
} currentHeight += currentRowHeight;
currentWidth = 0;
if (bFitToHeight) { }
newPagePrint.pageClipRectHeight = Math.max(currentHeight, newPagePrint.pageClipRectHeight);
newPagePrint.pageHeight = if (bFitToHeight) {
newPagePrint.pageClipRectHeight * vector_koef + (pageTopField + pageBottomField); newPagePrint.pageClipRectHeight = Math.max(currentHeight, newPagePrint.pageClipRectHeight);
} newPagePrint.pageHeight =
newPagePrint.pageClipRectHeight * vector_koef + (pageTopField + pageBottomField);
// Нужно будет пересчитывать колонки }
isCalcColumnsWidth = true;
// Нужно будет пересчитывать колонки
// Рисуем сетку isCalcColumnsWidth = true;
if (pageGridLines) {
newPagePrint.pageGridLines = true; // Рисуем сетку
} if (pageGridLines) {
newPagePrint.pageGridLines = true;
if (pageHeadings) { }
// Нужно отрисовать заголовки
newPagePrint.pageHeadings = true; if (pageHeadings) {
} // Нужно отрисовать заголовки
newPagePrint.pageHeadings = true;
newPagePrint.pageRange = new asc_Range(currentColIndex, currentRowIndex, colIndex - 1, rowIndex - 1); }
if (bIsAddOffset) { newPagePrint.pageRange = new asc_Range(currentColIndex, currentRowIndex, colIndex - 1, rowIndex - 1);
// Мы еще не дорисовали колонку
colIndex -= 1; if (bIsAddOffset) {
} else { // Мы еще не дорисовали колонку
nCountOffset = 0; colIndex -= 1;
} } else {
nCountOffset = 0;
if (colIndex < maxCols) { }
// Мы еще не все колонки отрисовали
currentColIndex = colIndex; if (colIndex < maxCols) {
currentHeight = 0; // Мы еще не все колонки отрисовали
} else { currentColIndex = colIndex;
// Мы дорисовали все колонки, нужна новая строка и стартовая колонка currentHeight = 0;
currentColIndex = (null !== activeRange) ? activeRange.c1 : 0; } else {
currentRowIndex = rowIndex; // Мы дорисовали все колонки, нужна новая строка и стартовая колонка
currentHeight = 0; currentColIndex = (null !== activeRange) ? activeRange.c1 : 0;
} currentRowIndex = rowIndex;
currentHeight = 0;
if (rowIndex === maxRows) { }
// Мы вышли, т.к. дошли до конца отрисовки по строкам
if (colIndex < maxCols) { if (rowIndex === maxRows) {
currentColIndex = colIndex; // Мы вышли, т.к. дошли до конца отрисовки по строкам
currentHeight = 0; if (colIndex < maxCols) {
} else { currentColIndex = colIndex;
// Мы дошли до конца отрисовки currentHeight = 0;
currentColIndex = colIndex; } else {
currentRowIndex = rowIndex; // Мы дошли до конца отрисовки
} currentColIndex = colIndex;
} currentRowIndex = rowIndex;
}
arrResult.push(newPagePrint); }
}
} arrResult.push(newPagePrint);
}
return arrResult; }
};
WorksheetView.prototype.drawForPrint = function ( drawingCtx, printPagesData ) { return arrResult;
};
WorksheetView.prototype.drawForPrint = function(drawingCtx, printPagesData) {
var isAppBridge = (undefined != window['appBridge']); var isAppBridge = (undefined != window['appBridge']);
if ( null === printPagesData ) { if (null === printPagesData) {
// Напечатаем пустую страницу // Напечатаем пустую страницу
drawingCtx.BeginPage( c_oAscPrintDefaultSettings.PageWidth, c_oAscPrintDefaultSettings.PageHeight ); drawingCtx.BeginPage(c_oAscPrintDefaultSettings.PageWidth, c_oAscPrintDefaultSettings.PageHeight);
drawingCtx.EndPage(); drawingCtx.EndPage();
} } else {
else { drawingCtx.BeginPage(printPagesData.pageWidth, printPagesData.pageHeight);
drawingCtx.BeginPage( printPagesData.pageWidth, printPagesData.pageHeight ); drawingCtx.AddClipRect(printPagesData.pageClipRectLeft, printPagesData.pageClipRectTop,
drawingCtx.AddClipRect( printPagesData.pageClipRectLeft, printPagesData.pageClipRectTop, printPagesData.pageClipRectWidth, printPagesData.pageClipRectHeight ); printPagesData.pageClipRectWidth, printPagesData.pageClipRectHeight);
if ( isAppBridge ) { if (isAppBridge) {
window['appBridge']['dummyCommandUpdate'](); window['appBridge']['dummyCommandUpdate']();
} }
...@@ -1919,43 +1921,46 @@ ...@@ -1919,43 +1921,46 @@
// Сменим visibleRange для прохождения проверок отрисовки // Сменим visibleRange для прохождения проверок отрисовки
this.visibleRange = range; this.visibleRange = range;
if ( isAppBridge ) { if (isAppBridge) {
window['appBridge']['dummyCommandUpdate'](); window['appBridge']['dummyCommandUpdate']();
} }
// Нужно отрисовать заголовки // Нужно отрисовать заголовки
if ( printPagesData.pageHeadings ) { if (printPagesData.pageHeadings) {
this._drawColumnHeaders( drawingCtx, range.c1, range.c2, /*style*/ undefined, offsetX, printPagesData.topFieldInPt - this.cellsTop ); this._drawColumnHeaders(drawingCtx, range.c1, range.c2, /*style*/ undefined, offsetX,
this._drawRowHeaders( drawingCtx, range.r1, range.r2, /*style*/ undefined, printPagesData.leftFieldInPt - this.cellsLeft, offsetY ); printPagesData.topFieldInPt - this.cellsTop);
this._drawRowHeaders(drawingCtx, range.r1, range.r2, /*style*/ undefined,
printPagesData.leftFieldInPt - this.cellsLeft, offsetY);
} }
if ( isAppBridge ) { if (isAppBridge) {
window['appBridge']['dummyCommandUpdate'](); window['appBridge']['dummyCommandUpdate']();
} }
// Рисуем сетку // Рисуем сетку
if ( printPagesData.pageGridLines ) { if (printPagesData.pageGridLines) {
this._drawGrid( drawingCtx, range, offsetX, offsetY, printPagesData.pageWidth / vector_koef, printPagesData.pageHeight / vector_koef ); this._drawGrid(drawingCtx, range, offsetX, offsetY, printPagesData.pageWidth / vector_koef,
printPagesData.pageHeight / vector_koef);
} }
if ( isAppBridge ) { if (isAppBridge) {
window['appBridge']['dummyCommandUpdate'](); window['appBridge']['dummyCommandUpdate']();
} }
// Отрисовываем ячейки и бордеры // Отрисовываем ячейки и бордеры
this._drawCellsAndBorders( drawingCtx, range, offsetX, offsetY ); this._drawCellsAndBorders(drawingCtx, range, offsetX, offsetY);
if ( isAppBridge ) { if (isAppBridge) {
window['appBridge']['dummyCommandUpdate'](); window['appBridge']['dummyCommandUpdate']();
} }
var drawingPrintOptions = { var drawingPrintOptions = {
ctx: drawingCtx, printPagesData: printPagesData ctx: drawingCtx, printPagesData: printPagesData
}; };
this.objectRender.showDrawingObjectsEx( false, null, drawingPrintOptions ); this.objectRender.showDrawingObjectsEx(false, null, drawingPrintOptions);
this.visibleRange = tmpVisibleRange; this.visibleRange = tmpVisibleRange;
if ( isAppBridge ) { if (isAppBridge) {
window['appBridge']['dummyCommandUpdate'](); window['appBridge']['dummyCommandUpdate']();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment