1

Programme en VB
J'ai besoin d'imprimer un formulaire. Je le dimensionne pour qu'il ait les dimensions d'une feuille A4. Le formulaire est contitué de 5 tableaux et sont utilisés des Lines, Shapes, ImageBox, Label et TextBox
Je remplit les Labels et les textbox avec les infos dont j'ai besoin et au moment de l'impression, formulaire est coupé en fonction de la taille de l'écran (en 800x600 seulement la moitié est visible et en 1780*1024 il manque une partie du bas
Comment faire pour que l'imprimante sorte toujours la même chose quelle que soit la taille de l'écran?
Il doit y avoir une propriété empêchant le programme de redimenssionner la fenêtre quand ses dimensions sont supérieures à celles de l'écran, mais je ne l'ai pas trouvée

Info:
Je n'affiche pas le formulaire quand je le remplit

SVP des idées il me faut pouvoir imprimer avant le 15 mars, merci
Trampoline Powwwweeeeeerrrrrr!
Fier d'être Lyonnais

2

Tu ne peux pas utiliser PrintForm pour imprimer un formulaire plus grand que l'écran. Il te faudra utiliser les fonctions d'impression (Printer.Print etc.). PrintForm est un hack, ça a plein de limitations, et ses résultats sont de qualité affreuse.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

MERCI
Trampoline Powwwweeeeeerrrrrr!
Fier d'être Lyonnais

4

Ca imprime plus joliment en plus mais il faut définir toutes les lignes et tous les textes
Trampoline Powwwweeeeeerrrrrr!
Fier d'être Lyonnais

5

Ok je sais comment tracer des lignes pleines, comment faire des rectangles de couleur et comment écrire du texte.

Comment on fait pour superposer du texte à un autre élément sans que ce dernier soit recouvert par le fond de la police du texte?
Par exemple je veux écrire sur un rectangle rouge. Au lieu d'écrire seulement les lettres, il les affiche sur un rectangle de couleur blanche qui recouvrent mon rectangle rouge. Comment on fait pour mettre le fond de la police transparent?

Autre question dont je n'ai pas trouvé la réponse, comment on fait pour orienter l'écriture. Ecrire de façon à ce qu'il faille tourner la feuille de 90° pour pouvoir lire?
Trampoline Powwwweeeeeerrrrrr!
Fier d'être Lyonnais

6

mrtrampo
a écrit : Par exemple je veux écrire sur un rectangle rouge. Au lieu d'écrire seulement les lettres, il les affiche sur un rectangle de couleur blanche qui recouvrent mon rectangle rouge. Comment on fait pour mettre le fond de la police transparent?

Il doit y avoir une option de style BackColor dans l'objet Printer.Font .
Autre question dont je n'ai pas trouvé la réponse, comment on fait pour orienter l'écriture. Ecrire de façon à ce qu'il faille tourner la feuille de 90° pour pouvoir lire?

Si je me rappelle bien, il suffit de changer Printer.Orientation.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

7

l'orientation c'est pour sépécifier si il doit imprimer en portrait ou en paysage

pour la police je vais essayer
Trampoline Powwwweeeeeerrrrrr!
Fier d'être Lyonnais

8

mrtrampo
a écrit : l'orientation c'est pour sépécifier si il doit imprimer en portrait ou en paysage

Ben oui. C'est bien ça "écrire de façon à ce qu'il faille tourner la feuille de 90° pour pouvoir lire", n'est-ce pas?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

9

K tu l'as pris dans ce sens j'ai pas bien précisé
Je veux en fait orienter la façon d'écrire.
Pouvoir avoir sur une même feuille du texte orienté de 0° et du texte orienté de 90°
Par exemple pour les titres des colonne d'un tableau qui aurait des cases étroites, j'orienterai l'écriture de 90° pour économiser l'espace à l'écran
Trampoline Powwwweeeeeerrrrrr!
Fier d'être Lyonnais

10

J'ai bien peur que ce ne soit pas possible, du moins pas sans passer par l'API Win32. sad
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

11

Vous disposez dans Visual Basic de trois techniques pour l'impression de texte et de graphiques.
* Vous pouvez envoyer les données vers une feuille, puis imprimer cette feuille à l'aide de la méthode PrintForm.
* Vous pouvez envoyer le texte et les graphiques à une imprimante en désignant un membre de la collection Printers comme imprimante par défaut.
* Vous pouvez envoyer le texte et les graphiques à l'objet Printer puis les imprimer à l'aide des méthodes NewPage et EndDoc.
Cette section présente les avantages et les inconvénients de chacun de ces procédés.

Utilisation de la méthode PrintForm
La méthode PrintForm envoie à l'imprimante une image, pixel par pixel, de la feuille spécifiée. Si vous voulez imprimer des données à partir de votre application à l'aide de PrintForm, vous devez d'abord afficher ces données dans une feuille, puis imprimer cette feuille avec la méthode PrintForm, selon la syntaxe suivante :

[form.]PrintForm

En l'absence du nom de la feuille, la feuille en cours est imprimée. intégralement, même si elle n'est que partiellement visible à l'écran. Toutefois, si une feuille contient des graphiques, ceux-ci ne sont imprimés que si la valeur True a été affectée à la propriété AutoRedraw de la feuille. Dès que l'impression est terminée, PrintForm appelle la méthode EndDoc pour libérer l'imprimante.

Vous pouvez, par exemple, envoyer le texte à une imprimante en l'imprimant sur une feuille, puis en appelant PrintForm à l'aide des instructions suivantes :

Print "Voici un texte."
PrintForm

La méthode PrintForm constitue de loin le procédé le plus facile d'impression à partir d'une application. Toutefois, la résolution des données envoyées à l'imprimante étant celle de l'écran de l'utilisateur (généralement égal à 96 points par pouce), les résultats seront décevants si la résolution de l'imprimante est nettement supérieure (300 points par pouce sur la plupart des imprimantes laser). Les résultats peuvent varier en fonction des objets de votre feuille.

Pour plus d'informations reportez-vous à la section « PrintForm, méthode » du Manuel de référence du langage.

Utilisation de la collection Printers
La collection Printers est un objet qui contient toutes les imprimantes accessibles dans le système d'exploitation. La liste en est identique à celle de la boîte de dialogue Imprimantes ou du Panneau de configuration de Windows. Chaque imprimante de la collection est identifiée à l'aide d'un index unique qui commence par 0 et que vous pouvez utiliser pour y faire référence.

Quelle que soit la méthode d'impression utilisée, toutes les données imprimées à partir d'une application Visual Basic sont acheminées vers l'objet Printer, qui représente initialement l'imprimante par défaut spécifiée dans le Panneau de configuration de Windows. Vous pouvez toutefois sélectionner n'importe quel membre de la collection Printers comme imprimante par défaut.

Sélectionnez une imprimante de la collection à l'aide de la syntaxe suivante :

Set Printer = Printers(n)

Les instructions ci-dessous impriment le nom de périphérique de toutes les imprimantes du système d'exploitation dans la fenêtre Exécution :

Private Sub Command1_Click()
Dim x As Printer
For Each x In Printers
Debug.Print x.DeviceName
Next
End Sub

Note Vous ne pouvez pas créer de nouvelles instances de l'objet Printer dans le code ou supprimer directement des imprimantes dans la collection Printers. Pour ajouter ou supprimer des imprimantes dans votre système, utilisez le Panneau de configuration de Windows.

Utilisation de l'objet Printer
L'objet Printer est une zone de dessin non liée à un périphérique, dans laquelle vous pouvez utiliser les méthodes Print, PSet, Line, PaintPicture et Circle pour créer du texte et des graphiques. Ces méthodes s'emploient de la même manière que dans une feuille ou dans un contrôle PictureBox. L'objet Printer possède en outre toutes les propriétés de police de caractères décrites plus haut dans ce chapitre. Une fois que vous avez placé toutes vos données dans l'objet Printer, envoyez le résultat à l'imprimante à l'aide de la méthode EndDoc. Lorsque vous fermez une application, celle-ci appelle automatiquement la méthode EndDoc qui envoie toutes les données en attente vers l'objet Printer.

L'objet Printer assure une qualité d'impression optimale sur un grand nombre d'imprimantes, car Windows traduit le texte et les graphiques provenant de la zone de dessin de l'objet Printer (indépendante du périphérique), puis les adapte au mieux à la résolution et aux caractéristiques de l'imprimante. L'objet Printer permet également d'imprimer des documents de plusieurs pages à l'aide de la méthode NewPage.

Le principal inconvénient de l'objet Printer est la quantité de code nécessaire pour obtenir de bons résultats. Par ailleurs, l'envoi d'images bitmap dans l'objet Printer prend du temps et peut donc ralentir l'application.


moi j'ai utilisé la dernière solution.

12

Ca c'est une expiquation complète! (Sans vouloir te vexer kevin)
C'est compliqué d'utiliser les API de windows dans un programme? parce que je pensais afficher une bitmap avec le texte de travers au lieu d'avoir à faire pivoter le texte par programme.

Je pense aussi zougege84 que la 3ème solution est la plus valeur la plus sûre.

Merci à vous deux
Trampoline Powwwweeeeeerrrrrr!
Fier d'être Lyonnais

13

Cette "explication complète" est un copier-coller du manuel de VB que tu es censé avoir lu... Et il n'y a pas un mot sur l'affichage de texte orienté différemment, donc je ne vois pas en quoi ça répond à ta question.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

14

Rien ne t'empêchait de faire un copier coller de ton manuel
J'ai pas lu le manuel VB parce que quand je demande où je peux en trouver un PERSONNE NE REPOND alors je me démerde avec les trucs du style "Apprennez VB en 21 jours" etc
Maintenant si tu as à proposer un manuel VB intéréssant je suis prêt à le prendre

Et je rappelle que l'origine du topic était de me renseigner sur les autres types d'impression que PrintForm
Donc si ZouZouGeGe a jugé que son expliquation apportait des infos en plus des tiennes, il a eu raison de le mettre

De plus, un mec qui est dans le même cas que moi tombe directement sur une expliquation des techniques d'impression au lieu qu'elles soient disséminées en plusieurs posts sur plusieurs topics.

Mais il est vrai que le derinère question que j'ai posée reste sans réponse
Trampoline Powwwweeeeeerrrrrr!
Fier d'être Lyonnais

15

oh oh oh on se calme !
je rentre pas dans votre jeu...
je suis d'accord qu'un copier collé et nul à chier et déplorable au niveau des droits d'auteur mais j'ai vu cette question intéressante 5min avant que je parte et je pense que mrtrampo voulait peut-etre une réponse avnt que je revienne c'est à dire une semaine plus tard.

maintenant si tu veux imprimer de cote certaines portions de texte va falloir utiliser les textbox, je vois pas d'autres solutions...

au fait moi j'ai passé plus de une semaine avant de tomber sur cette page alors soit je suis débile soit elle est pas indiquée directement, d'ailleurs je la retrouve plus...