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 !

Sujet : Imprimer sous VB.Net; questions multiples [ Archives Visual Basic / Graphique ] (ORTHROS)

samedi 24 septembre 2005 à 13:55:06 | Imprimer sous VB.Net; questions multiples

ORTHROS

 

Problème 1

J'utilise VB.Net et pour l'impression la syntaxe e.Graphics.DrawString(….)

Malheureusement, le texte à imprimer ne contient pas sur une seule page et j'ai beau chercher, je n'arrive pas à trouver la syntaxe permettant de passer automatiquement à la page suivante lorsque le texte est hors limite du document.

Pour l'instant j'utilise l'astuce qui consiste à constituer autant de String que nécessaire pour imprimer ces string sur différents documents grâce à If "la string 1 a N lignes" then "on remplit la string 2 pour l'imprimer sur le doc 2" …. Etc.

Je trouve ça très lourd et ça m'agace. Si quelqu'un pouvait me donner le code permettant de passer l'impression automatiquement sur la page suivante, ça serait sympa.

Problème 2

Mon deuxième soucis est l'impossibilité (du moins je le suppose) de ne pas pouvoir modifier par visualisation avant impression le document à imprimer. En outre, le document imprimé ne peut pas être Save pour être ré ouvert comme le ferait un DocumentWord.doc

Peut-être seriez-vous capable de me donner des astuces à ce sujet ?

Problème 3

Je me suis donc naturellement intéressé à l'impression sur Word

Après avoir lu diverses choses sur le forum, j'ai trouvé comment insérer des variables grâce aux signets. Cependant il y a un truc qui m'énerve : lorsque Word est déjà ouvert, le document suivant est correctement créé mais la fenêtre reste dans la barre d'outil et elle ne s'ouvre pas automatiquement pour se mettre en premier plan. Un clic est donc nécessaire pour voir le doc. Y a-t-il moyen de forcer cette fenêtre à se mettre en premier plan ?

Problème 4

Toujours sur Word, je développe sous Word 2002 et je dois me débrouiller pour que l'impression fonctionne aussi sous Word 1997. Conformément à ce que j'ai lu, j'ai remplacé

"Ref Word"

"Dim Word as new Word.Application"

par

Dim Word as new Object

"Word = CreateObject("Word.Application")"

Quid alors de l'insertion des signets et notamment de "Dim objrange As Word.Range" ?

Je vous remercie d'avance des réponses que vous pourriez apporter et qui, je l'espère, seront suffisamment claire pour mon niveau de compréhension. En effet, j'ai appris le VB cet été en lisant "VB.Net pour les Nuls". Vous ne serez donc pas étonné par le niveau "débutant-plancher" de mes questions.


samedi 24 septembre 2005 à 17:27:07 | Re : Imprimer sous VB.Net; questions multiples

felsfr

Réponse acceptée !
Probleme 1

Dans ta procedure appelante

Private Sub   etc..........//////

'on suppose que tu as une liste de films selon le format
'titre_a_imprimer(nr_film)
'de titre_a_imprimer(0) à titre_a_imprimer(X)
'et tu veux imprimer un titre de film par ligne

PrintPreviewDialog1.Document = PrintDocument1
nr_film = 0                                'n° du 1er film à afficher
nombre_films=X-1                  'le nombre total de film à imprimer
PrintPreviewDialog1.ShowDialog()

End Sub



Private
Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

Dim align_centre As New StringFormat
align_centre.Alignment = StringAlignment.Center
Dim position_Y_mini As Integer = 0         'ta marge haute
Dim position_X As Integer = 0                  'ta marge gauche
Dim position_Y As Integer = 0
Dim ligne_actuelle As Integer = 0             'la 1ere ligne de la page
Dim lignes_par_page As Integer = 54      'nombre de lignes par page(en fait tu calcules en fonction de la police)
Dim interligne As Integer = 5                     ' en fonction de la police aussi, ici c'est un exemple
Dim police_taille As Integer = 10

'tant qu'on ne depasse pas le bas de page et qu'il reste des données a imprimer
While
(ligne_actuelle < lignes_par_page) And (nr_film < nombre_films)
   'on calcule le Y de la ligne à afficher
   position_Y = position_Y_mini + (interligne * ligne_actuelle)
   'on affiche le titre du film
   e.Graphics.DrawString(titre_a_imprimer(nr_film), New Font("arial", police_taille), Brushes.Black, position_X , position_Y , Align_centre)
   'on passe au film suivant
   nr_film = nr_film + 1
   'qu'on affichera sur la ligne suivante
   ligne_actuelle = ligne_actuelle + 1
End While

'on a atteint le nombre de ligne max
'on regarde s'il y a encore des films (donc une autre page)
If nr_film < nombre_films Then
   e.HasMorePages = True          'il reste des pages
Else
   e.HasMorePages = False         'plus de pages
   'on réinitialise les variables transmises avant le preview
   'car si on print depuis l apercu, les variables ne sont
   'pas réiniatilsées
   nr_film = 0 'n° du 1er film à afficher
End If

End
Sub


samedi 24 septembre 2005 à 17:33:02 | Re : Imprimer sous VB.Net; questions multiples

felsfr


Petite erreur, il faut lire nombre_films=X+1 (de 0 à X en fait) mais je ne sais pas si on peux éditer un Post
 

'on suppose que tu as une liste de films selon le format
'titre_a_imprimer(nr_film)
'de titre_a_imprimer(0) à titre_a_imprimer(X)
'et tu veux imprimer un titre de film par ligne

PrintPreviewDialog1.Document = PrintDocument1
nr_film = 0                                'n° du 1er film à afficher
nombre_films=X-1                  'le nombre total de film à imprimer
PrintPreviewDialog1.ShowDialog()

End Sub


samedi 24 septembre 2005 à 22:04:53 | Re : Imprimer sous VB.Net; questions multiples

ORTHROS

Merci pour la réponse à mon problème n°1, e.HasMorePages = True, c'est effectivement plus cool que mon usine à gaz;

Ce qui me chagrine un peu c'est qu'apparemment, il n'y a pas de saut de page automatique puisqu'on doit tout de même calculer le nombre de ligne ce que je faisais déjà .

samedi 24 septembre 2005 à 22:50:42 | Re : Imprimer sous VB.Net; questions multiples

felsfr

Réponse acceptée !
Effectivement, pas de saut de page automatique puisque l'on est en mode graphique, tout ce qui est hors des limites de la feuille n'est pas imprimé. Mais bon ce système autorise des mises en page complexes, les coordonnées étant en 100eme de pouce.

Quant au problème 2, il est effectivement impossible de modifier le document par visualisation avant impression. La solution serait peut être de créer ton propre aperçu dans un RichTextBox si tu n'utilise que du texte ?




Cette discussion est classé dans : impression, net, vb, word, imprimer


Répondre à ce message

Sujets en rapport avec ce message

Impression sous vb.NET [ par 187bundy ] Salut ;-)J'ai jamais utilisé de fonction d'impression sous vb et encore moins sous vb.NET ... Quelqu'un pourrait me dire comment faire (genre pour imp Impression avec VB.NET [ par ava0275 ] Bonjour ,Voici le topo ce que je veux faire:je fais une appli dans laquelle l utilisateur place des textbox dans un panel pendant l execution.Je voudr Impression sous VB Net 2005 [ par Sismic22 ] Salut à tous! Je travail actuellement sur l'impression. Je rempli un formulaire sous VB, puis un boutton imprimer m'envoie sur la page aperçu avant Impression sous VB Net [ par promethee2003 ] Bonjour, J'ai un petit soucis d'impression sous vb net. Je voudrais savoir si quelqu'un sait comment imprimer une image à l'aide d'un objet PrintDoc Impression en vb.net :o( [ par youil ] Dans une forme j'ai un viewer autocad et je cherche comment faire pour imprimer sont contenu à un endroit précis sur la feuille, tout en gardant la qu Imprimer un Form e, VB.Net [ par vincegod80 ] Bonjour,Je souhaite i:mprimer tout simplement un formulaire en VB.NetEn VB6 on fait :Form1.PrintForm()Printer.EndDoc()Mais en VB.Net ?Merci Impression sous vb.net [ par mika69 ] Comment avoir un aperçu d'un fichier word sous vb.net et d'effectuer l'impression aprés. merci Utilisation du composant permetant le pilotage de word avec vb [ par Waldo2188 ] Bonjour, J'utilise le composant vb Microsoft word 9.0, afin de pouvoir piloter word depuis mon applis vb. En faite je ne fait que imprimer des documen vb.NET + word [ par schlouff ] Bonjour, j'ai crée un programme en VBNET ui ouvre un modele word, ecrit des données dedans et l'enregistre sous un autre nom ( et l'imprime eventuelle Creer document WORD avec vb.net [ par chris81 ] bonjour, comment fait on pour creer un document a partir de vb.net mercihttp://www.correzeweb.comhttp://www.localetv.com


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

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,281 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é.