Различная ориентация в многостраничном PrintDocument (Как сделать) - PullRequest
4 голосов
/ 07 марта 2009

У меня есть PrintDocument, который имеет несколько страниц. Одна страница в этом документе должна иметь ориентацию Landscape вместо Portrail.

Поскольку событие PrintPage вызывается для каждой страницы документа ... в самом начале этого обработчика событий я установил PrintPageEventArgs.PageSettings.Landscape в значение true.

Это не работает на ЭТОЙ странице ... но я вижу, что для Пейзаж установлено значение true и учитывается на СЛЕДУЮЩЕЙ странице.

Я предполагаю, что каким-то образом ... после того, как событие сработало для определенной страницы, вы не можете изменить ориентацию страницы. Это более логично, если подумать ... но КАК МОЖНО УСТАНОВИТЬ ФЛАГ до того, как СОБЫТИЕ сработает в многостраничном PrintDocument?

Примечание: я не знаю заранее, будет ли на следующей странице действительно нужна альбомная ориентация.

1 Ответ

6 голосов
/ 07 марта 2009

Я не специалист по печати в .NET; однако используя Reflector; похоже, что вы можете обработать событие QueryPageSettings в PrintDocument. Похоже, что частный метод PrintLoop () PrintController будет вызывать события в таком порядке для каждой страницы:

  1. QueryPageSettings
  2. StartPage
  3. PrintPage
  4. EndPage

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...