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 :

[WPF] Imprimer sur plusieurs pages une ListBox


Sujet :

C#

  1. #1
    Membre averti
    Avatar de UNi[FR]
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2002
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juin 2002
    Messages : 340
    Points : 448
    Points
    448
    Par défaut [WPF] Imprimer sur plusieurs pages une ListBox
    Bonjour,

    je souhaiterais savoir comment imprimer sur plusieurs pages une ListBox ??

    voilà le code que j'ai fait mais il n'imprime que sur une seule page donc si la ListBox contient trop d'éléments ca ne va pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
                if (print == true)
                {
                    double height = 0;
                    StackPanel _stck = new StackPanel();
                    _stck.HorizontalAlignment = HorizontalAlignment.Center;
                    Rectangle a = new Rectangle();
                    a.Width = 530;
                    a.Height = 300;
                    a.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
                    a.Fill = new VisualBrush(this.stckHeader as Visual);
                    //a.Stretch = Stretch.UniformToFill;
                    Size sizeGrid = a.DesiredSize;
                    Point ptGrid = new Point(0, height);
                    a.Arrange(new Rect(ptGrid, sizeGrid));
                    _stck.Children.Add(a);
                    height += a.Height;
     
                    PageContent _pc = new PageContent();
                    for (int i = 0; i < Liste.Items.Count; i++)
                    {
                        // OffreProductItem -> UserControl
                        OffreProductItem _opi = (Liste.Items[i] as OffreProductItem);
     
                        a = new Rectangle();
                        a.Width = 500;
                        a.Height = 175;
                        a.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
                        a.Fill = new VisualBrush(_opi as Visual);
                        sizeGrid = a.DesiredSize;
                        Point ptgrid2 = new Point(0, height);
                        a.Arrange(new Rect(ptgrid2, sizeGrid));
                        _stck.Children.Add(a);
                        height += a.Height;
                    }
     
                    pDialog.PrintVisual(_stck as Visual, "impression");
                }
    merci d'avance pour votre aide

  2. #2
    Membre averti
    Avatar de UNi[FR]
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2002
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juin 2002
    Messages : 340
    Points : 448
    Points
    448
    Par défaut
    voici un exemple sur 1 page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
                this.m_tbm = inMTBM;
                switch (this.m_view)
                {
                    default:
                    case PrintingView.Vertical:
                        this.m_width = 96 * 8.5;
                        this.m_height = 96 * 11;
                        break;
                    case PrintingView.Horizontal:
                        this.m_width = 96 * 11;
                        this.m_height = 96 * 8.5;
                        break;
                }
     
                FixedDocument fixedDocument = new FixedDocument();
                fixedDocument.DocumentPaginator.PageSize = new Size(this.m_width, this.m_height);
     
                PageContent _pg = new PageContent();
                FixedPage fixedPage = new FixedPage();
                fixedPage.Background = Brushes.White;
                UIElement visual = null;
                visual = this.CreateVisual();
     
                FixedPage.SetLeft(visual, 0);
                FixedPage.SetTop(visual, 0);
     
                double pageWidth = this.m_width;
                double pageHeight = this.m_height;
     
                fixedPage.Width = pageWidth;
                fixedPage.Height = pageHeight;
     
                fixedPage.Children.Add((UIElement)visual);
     
                Size sz = new Size(this.m_width, this.m_height);
                fixedPage.Measure(sz);
                fixedPage.Arrange(new Rect(new Point(), sz));
                fixedPage.UpdateLayout();
     
                ((IAddChild)_pg).AddChild(fixedPage);
     
                fixedDocument.Pages.Add(_pg);
     
                return fixedDocument;
    il suffit ensuite de créer d'autres PageContent _pg = new PageContent(); et de les ajouter via fixedDocument.Pages.Add(_pg);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Imprimer sur plusieurs pages d'un pdf en java
    Par vanoiia dans le forum Documents
    Réponses: 0
    Dernier message: 13/09/2014, 22h49
  2. Imprimer sur plusieurs pages
    Par Fabthebug dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 02/06/2008, 17h32
  3. Imprimer sur plusieur page avec un framset
    Par HWICE dans le forum Webdesign & Ergonomie
    Réponses: 0
    Dernier message: 28/05/2008, 22h50
  4. imprimer une diapositive sur plusieurs page
    Par Flow_75 dans le forum Powerpoint
    Réponses: 1
    Dernier message: 15/07/2007, 03h21
  5. [VB 2005] imprimer sur plusieurs pages
    Par michel71 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 17/06/2006, 21h30

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