2010-11-25 4 views
2

J'ai créé une fonction dans mon programme qui imprime des bitmaps et une image à partir d'une image, mais je veux maintenant imprimer une étiquette avec du texte dedans bien. Ceci est mon code actuel:Impression et impression Aperçu d'un bitmap plus une étiquette avec du texte dedans C#

private void printToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
    if (printDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
    { 
    printDocument1.Print(); 
    } 
} 

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) 
{ 
    e.Graphics.DrawImage(capturebox.BackgroundImage, 0, 0); 
    e.ToString(ExtraNotes.Text); 
    e.Graphics.DrawImage(capturebox.Image, 0, 0);  
} 

Mon libellé s'appelle ExtraNotes, et ma zone d'image est capturebox. Je veux être capable d'imprimer les deux avec le contenu de l'étiquette sur le côté ou sous l'image, cela ne me dérange pas. Je veux aussi être en mesure d'imprimer un aperçu en utilisant une boîte de dialogue d'aperçu avant impression que je ne sais pas comment montrer cela, je peux l'obtenir pour ouvrir mais ne pas montrer les choses que je le veux.

Répondre

1

Je pense que vous vouliez faire:

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) 
{ 
    e.Graphics.DrawImage(capturebox.BackgroundImage, 0, 0); 
    e.DrawString(ExtraNotes.Text, SystemFonts.CaptionFont, Brushes.Black, 10, 10); 
    e.Graphics.DrawImage(capturebox.Image, 0, 0);  
} 

Vous pouvez modifier les corrdinates de l'endroit où vous voulez que le texte aille.

+0

Cela provoque toujours une erreur que printpageeventargs ne contient pas la définition de drawstring ?? –

+0

Ne vous inquiétez pas, j'ai juste dû faire le e.DrawString (ExtraNotes.Text, SystemFonts.CaptionFont, Brushes.Black, 10, 10); à e.Graphics.DrawString (ExtraNotes.Text, SystemFonts.CaptionFont, Brushes.Black, 10, 10); –

+0

Oups; oublié de taper des graphiques. – BeemerGuy