Bonjour;


Je cherche à automatiser l'impression de plusieurs images et j'ai eu des problèmes :

voila mon code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 List<image> images = GetImagesToPrint(currentPageToPrint);
et pour lancer l'impression j'ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
                PrintDocument PrintDoc = new PrintDocument();
                PrintDialog DPrint = new PrintDialog();
                PrintDoc.PrintPage += new PrintPageEventHandler(_PrintDoc_PrintPage);
                PrinterSettings settingPrinter = new PrinterSettings();
                settingPrinter.FromPage = 0;
                settingPrinter.ToPage = doc.PageCount;
                settingPrinter.MaximumPage = doc.PageCount;
                settingPrinter.MinimumPage = 1;
                DPrint.PrinterSettings = settingPrinter;
                DPrint.Document = PrintDoc;
                PrintDoc.Print();
et event
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 void _PrintDoc_PrintPage(object sender, PrintPageEventArgs e)
        {
 
            e.HasMorePages = true;
                       int RenderDPI = 200;
             foreach (System.Drawing.Image image in PDFPages)
              {
                  /* code pour adapter la taille de image*/
                   e.Graphics.DrawImage(image, 0, 0);
                    image.Dispose();
               }
             e.HasMorePages = false;
 
        }
Erreur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
System.OutOfMemoryException: Mémoire insuffisante.
   à System.Drawing.Graphics.CheckErrorStatus(Int32 status)
   à System.Drawing.Graphics.DrawImage(Image image, Int32 x, Int32 y)
   à PDFViewer.PDFUtil._PrintDoc_PrintPage(Object sender, PrintPageEventArgs e) dans c:\Users\MS-Dev\Desktop\PdfViewerUI\PdfViewerUI\PDFViewer\PDFUtil.cs:ligne 306
   à System.Drawing.Printing.PrintDocument.OnPrintPage(PrintPageEventArgs e)
   à System.Drawing.Printing.PrintDocument._OnPrintPage(PrintPageEventArgs e)
   à System.Drawing.Printing.PrintController.PrintLoop(PrintDocument document)
   à System.Drawing.Printing.PrintController.Print(PrintDocument document)
   à System.Drawing.Printing.PrintDocument.Print()
   à PDFViewer.PDFUtil.PrintPDF() dans c:\Users\MS-Dev\Desktop\PdfViewerUI\PdfViewerUI\PDFViewer\PDFUtil.cs:ligne 209
   à PDFViewer.PDFViewer.tsPrint_Click(Object sender, EventArgs e) dans c:\Users\MS-Dev\Desktop\PdfViewerUI\PdfViewerUI\PDFViewer\PDFViewer.cs:ligne 34
   à System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   à System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
   à System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   à System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   à System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   à System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   à System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   à System.Windows.Forms.Control.WndProc(Message& m)
   à System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   à System.Windows.Forms.ToolStrip.WndProc(Message& m)
   à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Si il y'a une autre manière de lancer l'impression je suis preneur


Merci d'avance