2009-03-07 6 views
4

J'ai un PrintDocument qui a plusieurs pages. Une page de ce document doit avoir une orientation Orientation au lieu de Portrail. Lorsque l'événement PrintPage est déclenché pour chaque page du document ... au tout début de ce gestionnaire d'événements, j'ai défini PrintPageEventArgs.PageSettings.Landscape sur true.Orientation différente dans une page multiple PrintDocument (Comment)

Cela ne fonctionne pas sur cette page ... mais je peux voir que Landscape est défini sur true et pris en compte dans la page NEXT.

Je suppose que d'une manière ou d'une autre ... après que l'événement est déclenché pour une certaine page, vous ne pouvez pas changer l'orientation de la page. C'est plus de moins logique si vous le pensez ... mais COMMENT PUIS-JE METTRE CE DRAPEAU avant que l'ÉVÉNEMENT ne se déclenche dans un document PrintDocument de plusieurs pages?

Remarque: Je ne sais pas à l'avance si la page "suivante" nécessitera une orientation Paysage.

Répondre

6

Je ne suis pas expert en impression dans .NET; cependant en utilisant Reflector; il semble que vous souhaitiez gérer l'événement QueryPageSettings sur PrintDocument. Il ressemble à la méthode privée PrintLoop() de PrintController, invoquera des événements dans cet ordre pour chaque page:

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

Hope this helps.

Questions connexes