CLASSE D'IMPRESSION BASIQUE (GÉNÈRE AUSSI UN APERÇU)

sarl_adc Messages postés 141 Date d'inscription lundi 3 novembre 2003 Statut Membre Dernière intervention 20 octobre 2005 - 2 juil. 2004 à 08:59
maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009 - 19 avril 2005 à 21:55
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/24177-classe-d-impression-basique-genere-aussi-un-apercu

maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009
19 avril 2005 à 21:55
Ravi de savoir que cette source est utile et utilisée

Normalement, l'impression se lance en appellant la fonction

laclass.GenePrintOut(1)

qui te lance l'impression d'une copie. Si tu regarde la fin du code de cette fonction, tu y verra le printer.enddoc
:)
jekifvb6 Messages postés 156 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 18 septembre 2006
19 avril 2005 à 12:15
Ca y est, j'ai trouvé la soluce
Tout simplement
Printer.EndDoc
(merci jotrash ;-)
Excusez moi pour ce post imtempestif, reconnais avoir été un peu impatient sur ce coup.
Bon code à tous...
jekifvb6 Messages postés 156 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 18 septembre 2006
19 avril 2005 à 12:06
Bonjour/bonsoir tout le monde,
la source de maitredede m'a bien appris tout un tas de truc.
J'ai écrit ce bout de code dans mon appli (toute simple):

CommonDialog2.ShowPrinter
Printer.PaintPicture Picture2.Image, 0, 0, 13350, 15680

Cela commande une impression (document en file d'attente de l'impression) mais celle-ci ne s'effectue qu'à la fermeture de la form. Je reste pour l'instant perplexe face à ce pb. Il doit me manquer une ligne de code au moins, pour vider le buffer d'impression, mais je ne la trouve pas.

merci d'avance et merci à maitredede.
maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009
26 janv. 2005 à 19:25
Tu pourrais me passer les modifs que tu a fait pour intégrer les polices svp ?
sarl_adc Messages postés 141 Date d'inscription lundi 3 novembre 2003 Statut Membre Dernière intervention 20 octobre 2005
26 janv. 2005 à 17:18
Courrier c'est la police de base, ça devrait être bon normalement.
Mais si tu dis que ton export PDF fonctionne, alors le pb vient soir de l'imprimante, soit des pilotes, soit d'autre chose, mais y'a des chances (d'après moi) que ton code n'y soit pour rien dans ce pb...
Michel_Me Messages postés 2 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 26 janvier 2005
26 janv. 2005 à 17:05
En fait je veux utiliser Courier.
Je pense que l'imprimante la connait. C'est une brother1450
sarl_adc Messages postés 141 Date d'inscription lundi 3 novembre 2003 Statut Membre Dernière intervention 20 octobre 2005
26 janv. 2005 à 16:32
Peut être que ton imprimante ne reconnait pas ces polices.
Ca m'est arrivé chez certains de mes clients de voir des impressions qui sortaient de partout très bien et sur une seule imprimante, la police ou les marges changeaient.

Essaye sur une autre imprimante...
Michel_Me Messages postés 2 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 26 janvier 2005
26 janv. 2005 à 16:24
J'ai utiler ce code en permettant l'utilisation de plusieurs police dans addtext.
Mon probleme est que sur le preview, tout est OK, en impression redirgée vers un fichier pdf idem.
Par contre, si l'impression est dirigrée sur l'imprimante, le changement de police ne se fait pas.

En connaissez vous la raison ?
maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009
1 sept. 2004 à 16:35
C un problème que j'ai aussi quand j'imprime des factures. J'utilise une classe de mise en forme qui ensuite imprime avec cette classe d'impression.

Si j'ai trop de lignes, ma facture descend trop bas... Par contre les en-têtes et pieds de pages appraraissent correctement.
Ma classe de listing intègre un saut de page automatique, avec numérotation automatique des pages, et répétition des têtes de colonnes...
sarl_adc Messages postés 141 Date d'inscription lundi 3 novembre 2003 Statut Membre Dernière intervention 20 octobre 2005
1 sept. 2004 à 16:29
je pense qu'on doit pouvoir tout faire, mais y'a des pbs pour les polices de caractères par ex, les remplissages de textboxes (c'est faisable avec un carré gris derrière par ex, mais pas top) puis surtout les sauts de page, qu'on ne peut pas ou très difficilement définir au cas par cas (quand on a des tableaux pouvant contenir 1 ou plusieurs lignes) et enfin les en-têtes et pieds de page (N) de page, logo du client, etc...)
maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009
31 août 2004 à 18:36
comme quoi ?
sarl_adc Messages postés 141 Date d'inscription lundi 3 novembre 2003 Statut Membre Dernière intervention 20 octobre 2005
31 août 2004 à 08:35
On a eut la même idée.
Mais j'ai pas mal de mise en forme et de tableaux, et à vrai dire j'ai fait le test, mais après avoir vu la galère que c'était et la longueur du code j'ai laissé tomber, surtout que l'impression reste basique, il y a pas mal de choses qu'on ne peut pas imprimer correctement...
maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009
30 août 2004 à 22:22
Ben, récupérer le contenu de chaque champ, et les mettre n forme sur ta feuille... J'en voit pas d'autre à première vue...
sarl_adc Messages postés 141 Date d'inscription lundi 3 novembre 2003 Statut Membre Dernière intervention 20 octobre 2005
30 août 2004 à 11:27
Ouep faut que je trouve une autre solution... mais je n'en ai pas...
Merci quand même !
maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009
30 août 2004 à 11:24
Tu veut mettre des scroll bars sur ta feuille ? ;-)

J'ai quasiment le même genre de problème : je remplis des infos et je doit les imprimer : listing de résumé de factures.
Mon problème : ça tiends pas en largeur...
Solution : je l'ai mis au format paysage...

Autre chose : j'utilise des classes qui fonctionne à peu près pareil, j'ai une classe listing qui me met en forme un tableau sur la page, et j'ai plus qu'à faitre une boucle pour entrer les infos. Ensuite, j'appelle sa méthode pour imprimer, et elle appelle ma classe impression. C'est ma classe listing qui me gère la mise en forme...
Je la mettrait bientôt en ligne...
Mais pour ton formulaire, il faudra à mon avis que tu trouve une autre solution...
sarl_adc Messages postés 141 Date d'inscription lundi 3 novembre 2003 Statut Membre Dernière intervention 20 octobre 2005
30 août 2004 à 08:35
Je prends un exemple type :
J'ai une résolution d'écran de 800x600 pixels
Mon formulaire fait 1200x700 pixels, ce qui fait que l'utilisateur ne voit pas ce qui dépasse de l'écran.

Avec des scrollbars c'est géré en VB, mais pour ce qui est de l'impression, l'objet Printer n'imprime que la partie visible du formulaire, et ainsi mon formulaire de 1200x700 pixels ne pourra jamais être imprimé en entier.

Il y a bien des solutions comme l'utilisation du logiciel Crystal Reports, mais j'utilise déjà et c'est pour parer un bug de Crystal Reports que je veux imprimer directement mon formulaire sans passer par cet outil.

Vala ;-)
maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009
29 août 2004 à 22:04
qu'est-ce que tu apelle sortir un formulaire complet ?
Donne moi un exemple concret...
sarl_adc Messages postés 141 Date d'inscription lundi 3 novembre 2003 Statut Membre Dernière intervention 20 octobre 2005
2 juil. 2004 à 08:59
Moi ce que je ne comprends pas c'est qu'il n'existe apparemment pas de moyen d'imprimer un formulaire complet !
J'ai cherché de partout et pas possible de trouver quoi que ce soit (miss à part l'impression de ce qui est "visible" seulement).

On est donc obligés de passer par 50000 lignes de code et un objet basique Printer pour imprimer pas grand chose.

Enfin ton prog a l'air sympa fonctionnel !
Rejoignez-nous