Почему установка ширины и высоты страниц для печати не применяется?
У меня есть этот код для установки различных параметров печати:
private void ConfigureByCustomerForPrinting()
{
_xlSheet.PageSetup.PrintArea = "A1:" +
GetExcelTextColumnName(
_xlSheet.UsedRange.Columns.Count) +
_xlSheet.UsedRange.Rows.Count;
_xlSheet.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape;
_xlSheet.PageSetup.FitToPagesWide = 1;
_xlSheet.PageSetup.FitToPagesTall = 100;
_xlSheet.PageSetup.Zoom = false;
_xlSheet.PageSetup.LeftMargin = _xlApp.Application.InchesToPoints(0.5);
_xlSheet.PageSetup.RightMargin = _xlApp.Application.InchesToPoints(0.5);
_xlSheet.PageSetup.TopMargin = _xlApp.Application.InchesToPoints(0.5);
_xlSheet.PageSetup.BottomMargin = _xlApp.Application.InchesToPoints(0.5);
_xlSheet.PageSetup.HeaderMargin = _xlApp.Application.InchesToPoints(0.5);
_xlSheet.PageSetup.FooterMargin = _xlApp.Application.InchesToPoints(0.5);
}
Когда лист генерируется, он учитывает значение альбомной ориентации, но, как видно ниже:
... хотя ширина (ширина) и высота (высота) установлены на 1 и 100 соответственно, это не выбранная кнопка-переключатель. Вместо этого устанавливается и выбирается "Настроить на - % нормальный размер". Зачем? Я считаю, что это, вероятно, хорошо, но пользователь хочет установить 1 и 100.
1 ответ
Решение
Вам нужно установить Zoom
собственность на false
перед сетами FitToPagesWide
а также FitToPagesTall
:
_xlSheet.PageSetup.Zoom = false;
_xlSheet.PageSetup.FitToPagesWide = 1;
_xlSheet.PageSetup.FitToPagesTall = 100;
Из MSDN:
Если свойство Zoom имеет значение True, свойство FitToPagesWide игнорируется.
Если свойство Zoom имеет значение True, свойство FitToPagesTall игнорируется.