Bonjour,
je débute en c# et silverlight. Je voudrais, grâce à silverlight, imprimer des informations contenu dans mon objet.
J'utilise un template xaml assez simple (plusieurs zones accueillant chacune leurs élément).
Le problème c'est que si les informations imprimées prennent plus d'une page, elles ne sont pas imprimés.
Pour les informations basiques, cela correspond, mais j'utilise un champ commentaire, qui peut être très long, et donc dépassé la taille maximum.
Voici le bloc concerné par le blocage :
Et voici comment je remplis mon document :
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 <TextBlock Text="Commentaire : " Grid.Row="15" FontSize="18" Margin="0,35,0,0" /> <Border Background="Black" Grid.Row="15" Height="0.5" VerticalAlignment="Bottom" Grid.ColumnSpan="2" /> <TextBlock Name="Commentaire" Grid.ColumnSpan="2" MaxWidth="815" TextWrapping="Wrap" Grid.Row="16" Margin="10,10,0,0" />
Et la méthode PrintTemplate(un peu long, j'ai donc enlever la plupart des propriétés, mais c'est du copier/coller : 1 ligne pour 1 propriété) :
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 void btPrint_Click(object sender, RoutedEventArgs e) { PrintDocument monDocument = new PrintDocument(); monDocument.Print("Fiche_"); btPrint.IsEnabled = true; monDocument.PrintPage += (s, args) => { Voiture maVoiture = this.itmVoitureSelect; PrintPageTemplate monTemplatePrint = PrintableArea.printTemplate(maVoiture); monTemplatePrint.Width = args.PrintableArea.Width; monTemplatePrint.Height = args.PrintableArea.Height; args.PageVisual = monTemplatePrint; }; }
Je suis ouvert à toutes idées (création d'un second template pour le "commentaire" etc...). Il est même possible que j'imprime la partie commentaire dans un document à part, et sans template (uniquement le contenu de commentaire).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public static PrintPageTemplate printTemplate(Voiture maVoiture) { PrintPageTemplate monTemplate = new PrintPageTemplate(); monTemplate.Nom = maVoiture.Nom; monTemplate.Commentaire= maVoiture.Commentaire; return monTemplate; }
Comment faire pour tout imprimer? Faut il ajouter des propiétés dans le xam des manipulations dans la printableArea?
Merci d'avance.
Si ce n'est pas assez clair, ou qu'il manque des élément, n’hésitez pas à me le faire savoir.
Partager