IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

printDocument Page Break


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut printDocument Page Break
    Bonjour

    Je crois avoir bien compris que pour generer une nouvelle page dans un prindocument, il n'y a pas d'autre solutiion que de sortir de l'event PrintPage et de seter le flag HasMorePage a true !

    Mais je n'ai pas encore bien compris le design qui permet d'eviter de faire un code spagetti avec cette methode


    Exemple

    Je dois imprimer une serie de document structurés comme suit :

    Adresse
    Entete

    A) Texte variable en fonction du correspondant

    B) Tableau variable en fonction du correspondant

    Texte de cloture de document

    En fonction des elements de A et B le document peut tenir sur une ou plusieurs pages

    La formule la plus simple evidement ce serait de pouvoir avancer de maniere sequentielle en calculant la position dans la page et le cas echéant generer un NewPage

    Tandis que la methode de l'event oblige de memoriser tout l'environnement afin de retomber au bon enroit au prochain appel

    Je trouve cela tres fastidieux ou alors il y a une meilleure méthode que je n'ai pas encore assimilée ?

    Des suggestions ?

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    e.newpage et continuer sans sortir ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    e.newpage et continuer sans sortir ?
    Tu a déja réussi ca ?

    Comment ?

    En tout cas je n'ai pas de e.newpage chez moi

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    ah
    je viens de vérifier, si j'ai déjà fait ca, ca doit etre dans une autre vie, ou la nuit quand je dors ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    apparemment même msdn dit qu'il faut faire hasmorepages = true et utiliser un compteur pour savoir où on en est ...

    si vraiment tu veux faire en une seule fois, tu créés des bitmaps de la taille de la feuille, tu les créés tous dans une boucle et dans le printpage tu fait des e.graphics.Drawimage() de toute la collection d'image générée précédemment
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    si vraiment tu veux faire en une seule fois, tu créés des bitmaps de la taille de la feuille, tu les créés tous dans une boucle et dans le printpage tu fait des e.graphics.Drawimage() de toute la collection d'image générée précédemment
    Plus brico tu meurs

    Mais gerer le hasmorepage est tout aussi m...

    Ce qui me chipote c'est que je comprends pas le concept qui fait qu'un newpage n'existe pas (ce serait si simple) et que lon soit contraint de gerer la reentrance de l'event PrintPage qui engendre facilement du spaghetti si n'y fait pas particulierement attention !

Discussions similaires

  1. Problème firefox et page-break-before
    Par Magicdemon dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 16/05/2007, 16h42
  2. [2.1.2] Eviter page break au milieu d'un 'row'
    Par FredKéKé dans le forum BIRT
    Réponses: 2
    Dernier message: 14/05/2007, 13h01
  3. Page break pour un Print ?
    Par sperron dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 14/06/2006, 15h48
  4. page-break
    Par manutudescends dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 07/02/2006, 17h28
  5. [HTML] Utilisation du page-break-inside
    Par Kitano dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 01/03/2005, 10h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo