Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

METHODES D'IMPRESSION - MISE EN PAGE - APERCU ...


Information sur la source

Catégorie :Imprimante Source .NET ( DotNet ) Classé sous : impression, apercu, page Niveau : Initié Date de création : 26/01/2004 Vu / téléchargé: 23 550 / 4 318

Note :
9,25 / 10 - par 4 personnes
9,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
Il s'agit de techniques que j'ai apprises au travers d'un ouvrage écrit par l'excellent programmeur Karli Watson, membre du Wrox Team.
Cet exemple, conçu à ma sauce montre comment imprimer le contenu d'un RichTextBox, comment n'imprimer que le texte sélectionné par le biais de la boîte de dialogue imprimer, comment gérer l'impression sur plusieurs pages, comment récupérer les préférences de mise en page, comme les marges, définies par l'utilisateur sur la boîte de dialogue mise en page et aussi comment afficher un aperçu avant impression...

Plusieurs contrôles sont nécessaires comme l'indispensable PrintDocument dont les gestionnaires PrintPage() et BeginPrint() gèrent l'essentiel des tâches d'impression.

BeginPrint() ne se produit qu'une fois, au début de l'impression. C'est donc ici qu'on effectue les tâches de traitement de chaîne avant de commander l'impression.

EXTRAIT:
private string[] lignes;
...
char[] saut = {'\n'};
lignes = Page.SelectedText.Split(saut);

Dans cet exemple Page est le contrôle RichTextBox. Le texte qu'il contient est d'abord fractionné (Split()), en tableau de chaînes au niveau du saut de ligne ('\n').
L'impression quant à elle est gérée par PrintPage(), une fois toutes les préférences recensées:
...
int x =e.MarginBounds.Left;
int y =e.MarginBounds.Top;

//Dessine chaque ligne
while(lignesImprime < lignes.Length)
{
      e.Graphics.DrawString(lignes[lignesImprime++], new Font("Arial",10), Brushes.Black, x, y);
y += 15;
...
Les marges étant définies selon les choix utilisateurs sur la boîte Mise en Page (x et y), la méthode DrawString() permet de dessiner (Imprimer) chaque ligne fractionnée (...DrawString(lignes[lignesImprime++]...), selon la police définie.

L'aperçu est très simple. On utilise un PrintPreviewDialog rattaché au PrintDocument à l'aide de sa propriété Document et on commande l'affichage de l'aperçu:
dlgApercu.ShowDialog();

Voilà, personnellement j'ai toujours trouvé que l'impression était une tâche délicate. Mais décortiqué comme cela, la vie devient plus simple...

Hope this help !!
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de Keoden le 02/11/2004 22:52:45

Sympa :)

Je débute et j'avoue que c pas toujours facile de trouver de la doc clair.
Le code est assez simple et bien commenté :). Ca va bien m'aider pour le ptit prog que je veux faire.

ps : j ai remarque que tu as oublié de lancer la méthode d'apercu qd on clique sur l'icone apercu de la barre d'outils . =) ( le case 23 de ton switch )
Sinon tout roule ^^
merci

signaler à un administrateur
Commentaire de RM50Man le 18/02/2005 23:42:33

il est bien ton code!!!!!!

signaler à un administrateur
Commentaire de bhuguenin le 14/03/2005 23:20:03

Vraiment parfait avec le PDF !!!

signaler à un administrateur
Commentaire de PhoeniXX52 le 09/04/2005 17:14:47

Impecable, ca m'a bien servis ton code merci beaucoup !!

PS: Pourquoi quand on note qqch dans le richtextbox puis qu'on fait un aperçu ou qu'on imprime tout se réaligne sur la gauche ?


A ++.

Encore MERCI !

signaler à un administrateur
Commentaire de Bidou le 23/04/2005 13:40:34 administrateur CS

Ca m'a été utile aussi.
Merci !

signaler à un administrateur
Commentaire de theclear le 08/11/2005 10:08:14

Salut,

merci pour ce code il confirme ce que j'avais trouvé sur d'autres sites mais cela ne fonctionne pas avec mon imprimante: Datamax M-4206. Au lieu de m'imprimer les différentes pages de mon document, il m'imprime la première page autant de fois qu'il y a de pages dans mon document.

Pourtant si je fais un document de plusieurs pages avec le bloc notes de windows ca fonctionne très bien. Je ne comprend pas pourquoi!

Si quelqu'un a une idée merci de m'aider.

signaler à un administrateur
Commentaire de marcel6566 le 18/09/2006 00:01:35

Vraiment bien ton source. ET bravo pour le pdf.

Marcel

signaler à un administrateur
Commentaire de kiramus le 31/10/2006 16:35:27

Hello, sympa ce code pour imprimer du texte mais quelqu'un sait-il comment imprimer le contenu d'un datagridview contenant une liste d'objets, et ce simplement ?

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Imprimante / Configuration de la page [ par zouzounet ] Bonjour,J'ai un petit soucis avec une impression dans un prog.J'utilise du GDI+ pour tracer un tableau, que je rempli de texte (toujours avec GDI+) et Impression + Mise en forme [ par PhoeniXX52 ] Bonjour, J'ai un petit souci pour imprimer du texte provenant d'un richtextbox en couleur ou gras. Quelqu'un a t'il une solution pour moi ? Voil&#22 Apercu avant impression [ par emmanuel9 ] Bonjour, En faite j'ai trois panel, un avec un camembert, un avec des graphes et un avec du texte. Donc j'ai trois objets Graphics. Et dans l'apercu Impression De plusieurs pages [ par PhoeniXX52 ] Bonjour, Je recherche &#224; imprimer un document sur plusieurs page. Ca &#224; l'air de fonctionner pas mal mais le prob c'est qu'il imprime tout su SUPER URGENT !!! Impression ... [ par PhoeniXX52 ] Bonjour tout le monde, Je suis en train de d&#233;velopper un prog avec Visual Studio 2005 beta2. Ou je g&#232;re l'impression provenant d'une requ&# apercu avant impression + scroll molette souris [ par Blacknight91 ] Bonjour,Je voudrais savoir si l'on peut associer l'&#233;v&#233;nement de roulette de la souris avec le control printPreviewControl afin de pouvoir fa Control dans apercu avant impression [ par wally88 ] Bonjour, je souhaiterais imprimer / mettre dans l'apercu un control ou au moin sa valeur.J'ai trouvé ceci pour c#.net : <a target="_blank" title="http [impression d'etiquette] site web [ par youb42 ] bonjour, &nbsp;&nbsp;&nbsp; Je dois realiser une page web qui permette d'imprimer des etiquettes. Je dispose de toutes les infos dont j'ai besoin (pa Imprimante installée ? [ par Blacknight91 ] Bonjour, Quand j'utilise le controle "printPreviewControl" pour cr&#233;&#233; l'apercu avant l'impression, une erreur se produit car aucune imprimant apercu avant impression [ par hay2006 ] salut,je voudrais savoir quel composant utiliser pour afficher un apercu avant impression pour imprimer un formulaire et commment l'implémenter .merci


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.