Win32Exception stampando un documento

martedì 04 marzo 2008 - 20.06

buzzlightyear Profilo | Newbie

In un programma faccio uso di un printDocument per stampare un documento di più pagine.

Ho ottenuto un'eccezione di questo tipo, di cui non riesco a trovare riscontro su internet:

************** Exception Text **************
System.ComponentModel.Win32Exception: The system cannot find the file
specified
at
System.Drawing.Printing.StandardPrintController.OnEndPrint(PrintDocument
document, PrintEventArgs e)
at
System.Windows.Forms.PrintControllerWithStatusDialog.OnEndPrint(PrintDocume
nt document, PrintEventArgs e)
at System.Drawing.Printing.PrintController.Print(PrintDocument
document)
at System.Drawing.Printing.PrintDocument.Print()

eccetera

a cosa è dovuta?

Anonimo Profilo | Senior Member

Ciao,
da quel che ho visto significa che non riesce a trovare qualcosa (penso il documento da stampare).
Però servirebbe tutto il testo dell'eccezione + relativa riga/righe di codice incriminate che compaino nell'eccezione, così possiamo capire meglio quello che è successo!

buzzlightyear Profilo | Newbie

allora l'eccezione si verifica al comando

pd.Print()

dove pd è il PrintDocument.

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Questa è invece l'evento di stampa, che a questo punto suppongo sia la causa dell'errore...

Grazie per l'aiuto

Anonimo Profilo | Senior Member

Dovresti per favore postare l'intero messaggio dell'eccezione perchè alla fine ti dice in che riga di codice si è verificata e posta anche il codice incriminato, perchè così ti posso dire ben poco.

Comunque per non crashare l'applicazione (che quando devi consegnare qualcosa ad un cliente è sempre imbarazzante) avvolgi il tutto con un blocco try catch così che non devi riavviare l'applicazione ogni volta.

Ciao e scusa se non ti posso aiutare ma capisci che vedendo poche righe di codice che "DOVREBBE" lanciare un'eccezione e poco altro non posso indovinare per magia

buzzlightyear Profilo | Newbie

************** Exception Text **************
System.ComponentModel.Win32Exception: The system cannot find the file
specified
at
System.Drawing.Printing.StandardPrintController.OnEndPrint(PrintDocument
document, PrintEventArgs e)
at
System.Windows.Forms.PrintControllerWithStatusDialog.OnEndPrint(PrintDocume
nt document, PrintEventArgs e)
at System.Drawing.Printing.PrintController.Print(PrintDocument
document)
at System.Drawing.Printing.PrintDocument.Print()
at iCopy.Printer.Print(Int16 copies) in D:\...\iCopy.vb:line 652
at iCopy.appControl.Copy(Int16 copies, Boolean preview, Int16 Scaling,
Boolean MultiplePages) in D:\...\iCopyControl.vb:line 306
at iCopy.mainFrm.ScanMultiplePages_Click(Object sender, EventArgs e) in
D:\...\mainfrm.vb:line 223
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs
e)
at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e,
ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e,
ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons
button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&
m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg,
IntPtr wparam, IntPtr lparam)


l'eccezione è lì, alla riga pd.print() che poi richiama l'evento printpage del print document.

Questa è la routine in cui si verifica l'eccezione, alla riga 652 che è pd.Print():

Public Sub Print(Optional ByVal copies As Short = 1) If _images.Count = 0 Then Throw New ArgumentException("No images in image buffer") pd.PrinterSettings.Copies = copies pd.Print() End Sub

Anonimo Profilo | Senior Member

Mi dispiace non rieso a venircene a capo... sarà che magari ho sempre usato poco il print document ma davvero non so che dirti.
Ci sarà sicuramente qualcuno qui più esperto di me che saprà aiutarti, e anche per questo che ti ho detto di postare codice e eccezione.

Scusa, stavolta non posso esserti d'aiuto.

Ciao.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5