Почему установка ширины и высоты страниц для печати не применяется?

У меня есть этот код для установки различных параметров печати:

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 игнорируется.

Другие вопросы по тегам