Hello @ tous,
voilà maintenant 3 jours que je galère sur un problème avec GDI+ ...
Je veux imprimer des champs sur une page, et l'utilisateur peut indiquer la position en mm de ces champs ...
J'ai donc un printDocument, associé à un boup de code de test :
( J'ai mis "OriginAtMargins" à true ... donc je trace en partant de 0 )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { e.Graphics.DrawRectangle(Pens.Red, 0, 0, e.MarginBounds.Width, e.MarginBounds.Height); // e.Graphics.PageUnit = GraphicsUnit.Pixel; // e.Graphics.DrawRectangle(Pens.Green, 0, 0, e.MarginBounds.Width, e.MarginBounds.Height); }
Avec ce code, je me retrouve avec un gros carré Rouge qui fait bien toute la surface hors-marges ... et un tout petit vert ?!!
Et je suis en train de me demander pourquoi ?
Est ce que le "PageUnit" des "MarginBounds" et autres Rect n'est pas le pixel ?
( dans ce cas, c'est quoi ? ... le WorldUnit ??? )
Comment convertir de l'unité utilisée au pixel ? ...
Je pensais que le fait de changer d'unité dans le PageUnit allait automatiquement faire que je lirais des infos dans cette unité ... ?!
Voilà, c'est simple à utiliser, mais là je voudrais pouvoir placer précisément des objets, et que ça marche avec toutes les imprimantes, l'aperçu ...
Merci,
@+
Seb.
Partager