Exporter (0) Imprimer
Développer tout

PrintDocument.Print, méthode

Démarre le processus d'impression du document.

Espace de noms : System.Drawing.Printing
Assembly : System.Drawing (dans system.drawing.dll)

public void Print ()
public void Print ()
public function Print ()

Type d'exceptionCondition

InvalidPrinterException

L'imprimante désignée dans la propriété PrinterSettings.PrinterName n'existe pas.

Spécifiez la sortie à imprimer en gérant l'événement PrintPage et en utilisant Graphics inclus dans PrintPageEventArgs.

Utilisez la propriété PrinterSettings.PrinterName pour spécifier l'imprimante à utiliser pour imprimer le document.

La méthode Print imprime le document sans utiliser une boîte de dialogue d'impression. Utilisez PrintDialog lorsque vous souhaitez donner à l'utilisateur la possibilité de choisir les paramètres d'impression.

RemarqueRemarque

Si une exception qui n'est pas gérée par la méthode Print est levée pendant l'impression, l'impression du document est abandonnée.

Dans l'exemple de code suivant, le fichier spécifié dans la ligne de commande est imprimé sur l'imprimante par défaut.

RemarqueRemarque

Il est nécessaire que chaque ligne corresponde à la largeur de page.

Utilisez les espaces de noms System.ComponentModel, System.Drawing, System.Drawing.Printing, System.IO et System.Windows.Forms pour cet exemple.

public class PrintingExample 
{
    private Font printFont;
    private StreamReader streamToPrint;
    static string filePath;


    public PrintingExample() 
    {
        Printing();
    }

    // The PrintPage event is raised for each page to be printed.
    private void pd_PrintPage(object sender, PrintPageEventArgs ev) 
    {
        float linesPerPage = 0;
        float yPos =  0;
        int count = 0;
        float leftMargin = ev.MarginBounds.Left;
        float topMargin = ev.MarginBounds.Top;
        String line=null;
            
        // Calculate the number of lines per page.
        linesPerPage = ev.MarginBounds.Height  / 
           printFont.GetHeight(ev.Graphics) ;

        // Iterate over the file, printing each line.
        while (count < linesPerPage && 
           ((line=streamToPrint.ReadLine()) != null)) 
        {
           yPos = topMargin + (count * printFont.GetHeight(ev.Graphics));
           ev.Graphics.DrawString (line, printFont, Brushes.Black, 
              leftMargin, yPos, new StringFormat());
           count++;
        }

        // If more lines exist, print another page.
        if (line != null) 
           ev.HasMorePages = true;
        else 
           ev.HasMorePages = false;
    }

    // Print the file.
    public void Printing()
    {
        try 
        {
           streamToPrint = new StreamReader (filePath);
           try 
           {
              printFont = new Font("Arial", 10);
              PrintDocument pd = new PrintDocument(); 
              pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
              // Print the document.
              pd.Print();
           } 
           finally 
           {
              streamToPrint.Close() ;
           }
       } 
       catch(Exception ex) 
       { 
           MessageBox.Show(ex.Message);
       }
    }
  
    // This is the main entry point for the application.
    public static void Main(string[] args) 
    {
       string sampleName = Environment.GetCommandLineArgs()[0];
       if(args.Length != 1)
       {
          Console.WriteLine("Usage: " + sampleName +" <file path>");
          return;
       }
       filePath = args[0];
       new PrintingExample();
    }
}


public class PrintingExample
{
    private Font printFont;
    private StreamReader streamToPrint;
    private static String filePath;

    public PrintingExample()
    {
        Printing();
    } //PrintingExample

    // The PrintPage event is raised for each page to be printed.
    private void pd_PrintPage(Object sender, PrintPageEventArgs ev)
    {
        float linesPerPage = 0;
        float yPos = 0;
        int count = 0;
        float leftMargin = ev.get_MarginBounds().get_Left();
        float topMargin = ev.get_MarginBounds().get_Top();
        String line = null;

        // Calculate the number of lines per page.
        linesPerPage = ev.get_MarginBounds().get_Height() / 
            printFont.GetHeight(ev.get_Graphics());

        // Iterate over the file, printing each line.
        while ((count < linesPerPage && 
            (line = streamToPrint.ReadLine()) != null)) {
            yPos = topMargin + count * printFont.GetHeight(ev.get_Graphics());
            ev.get_Graphics().DrawString(line, printFont, Brushes.get_Black(),
                leftMargin, yPos, new StringFormat());
            count++;
        }

        // If more lines exist, print another page.
        if (line != null) {
            ev.set_HasMorePages(true);
        }
        else {
            ev.set_HasMorePages(false);
        }
    } //pd_PrintPage
    
    // Print the file.
    public void Printing()
    {
        try {
            streamToPrint = new StreamReader(filePath);
            try {
                printFont = new Font("Arial", 10);
                PrintDocument pd = new PrintDocument();
                pd.add_PrintPage(new PrintPageEventHandler(pd_PrintPage));

                // Print the document.
                pd.Print();
            }
            finally {
                streamToPrint.Close();
            }
        }
        catch (System.Exception ex) {
            MessageBox.Show(ex.get_Message());
        }
    } //Printing

    // This is the main entry point for the application.
    public static void main(String[] args)
    {
        String sampleName = Environment.GetCommandLineArgs()[0];
        if (args.length != 1) {
            Console.WriteLine(("Usage: " + sampleName + " <file path>"));
            return;
        }
        filePath = args[0];
		new PrintingExample();
    } //main
} //PrintingExample

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft