Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - vb.net - stampa word da exe condiviso
Forum - C# / VB.NET - vb.net - stampa word da exe condiviso

Avatar
eurostar_italia (Normal User)
Rookie


Messaggi: 33
Iscritto: 01/08/2011

Segnala al moderatore
Postato alle 18:22
Domenica, 13/07/2014
salve,

ho un banale exe situato in un pc (chiamiamolo 1) in rete,con la cartella condivisa.
accedo a questo pc da un altro (chiamiamolo pc2) e dalla cartella condivisa lancio l'exe.
questo genera la stampa di un file word presente sempre nella cartella condivisa.
ho due quesiti :

2) perchè la stampa mi genera un errore ?
in pratica nonostante mi riconosca la stampante del pc che sto usando,cmq non stampa.
può essere perchè la stampa cmq si riferisce al modulo che è sul pc1?
grazie
questo è il codice che uso per la stampa
codice:
Codice sorgente - presumibilmente VB.NET

  1. PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  2. 'importo i dati dalla schermata di inserimento
  3. Dim nome AsString = UCase(dataentry.TextBox1.Text)
  4.  
  5.  
  6. 'CONTROLLO ESISTENZA DEL MODELLO WORD SU CUI SCRIVERE NEL PC
  7.  
  8. If IO.File.Exists(Application.StartupPath & "\prova.docx") = FalseThen
  9.             MsgBox("IL FILE RICHIESTO PER LA STAMPA NON ESISTE " & vbCrLf & "CONTATTARE IL RESPONSABILE DEL SOFTWARE")
  10. Application.Exit()
  11.  
  12. EndIf
  13.  
  14. 'APERTURA FILE E SCRITTURA NEI BOOKMARK DEI VALORI
  15.  
  16. Dim objword AsNew Microsoft.Office.Interop.Word.Application
  17.         objword.Visible = False
  18.         objword.Documents.Open(Application.StartupPath & "\prova.docx")
  19.  
  20.         objword.Selection.Font.Bold = True
  21.         objword.Selection.Font.Size = 15
  22.  
  23. Dim printdialog AsNewPrintDialog
  24. Dim result AsDialogResult = printdialog.ShowDialog
  25.  
  26.  
  27.         objword.ActiveDocument.Bookmarks.Item("NOME").Select()
  28.         objword.Selection.Text = nome
  29.         objword.Selection.Bookmarks.Add("NOME")
  30.  
  31.  
  32. If (result = DialogResult.OK) Then
  33.                        objword.PrintOut()
  34. EndIf
  35.  
  36.         objword.ActiveDocument.PrintOut(Background:=True)
  37.      
  38.  
  39.  
  40. 'CONTROLLO EFFETTUAZIONE STAMPA E CHIUSURA FILE
  41.  
  42. If MsgBox("STAMPA ESEGUITA CORRETTAMENTE ?", vbYesNo) = vbYes Then
  43.  
  44.  
  45. objword.Documents.Close(SaveChanges:=Nothing)
  46.             objword.Quit()
  47.  
  48. Application.Exit()
  49. Else
  50. Try
  51. Catch ex AsException
  52.                 MsgBox(ex.Message)
  53.                 objword.Documents.Close(SaveChanges:=Nothing)
  54.                 objword.Quit()
  55. EndTry
  56. EndIf
  57. EndSub


nb. le versioni di office variano dalla 2007 alla 2010 sui pc in oggetto
ho usato un interop.word 12.0

Ultima modifica effettuata da eurostar_italia il 13/07/2014 alle 18:23
PM Quote
Avatar
eurostar_italia (Normal User)
Rookie


Messaggi: 33
Iscritto: 01/08/2011

Segnala al moderatore
Postato alle 20:48
Domenica, 13/07/2014
aggiungo il codice dell'errore che esce fuori

************** Testo dell'eccezione **************
System.Runtime.InteropServices.COMException (0x800A1066): Comando fallito
in Microsoft.Office.Interop.Word.Documents.Close(Obje ct& SaveChanges, Object& OriginalFormat, Object& RouteDocument)
in WindowsApplication1.riepilogodati.Button2_Click(Ob ject sender, EventArgs e)
in System.Windows.Forms.Control.OnClick(EventArgs e)
in System.Windows.Forms.Button.OnClick(EventArgs e)
in System.Windows.Forms.Button.OnMouseUp(MouseEventAr gs mevent)
in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
in System.Windows.Forms.Control.WndProc(Message& m)
in System.Windows.Forms.ButtonBase.WndProc(Message& m)
in System.Windows.Forms.Button.WndProc(Message& m)
in System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
in System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

PM Quote
Avatar
eurostar_italia (Normal User)
Rookie


Messaggi: 33
Iscritto: 01/08/2011

Segnala al moderatore
Postato alle 8:12
Martedì, 15/07/2014
ho provato anche a inserire la libreria 14 per office 2010 ,ma niente continua l'errore.
qualcuno che ha qualche idea =?

PM Quote