Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Stampare un file e consentire di scegliere la stampante.
sabato 04 ottobre 2008 - 19.13
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
lukepet
Profilo
| Junior Member
110
messaggi | Data Invio:
sab 4 ott 2008 - 19:13
Ho una applicazione in cui sto implementando una funzione per attivare la stampa di alcuni file pdf.
Volevo fare in modo che cliccando sul bottone di stampa venga mostrata la finestra per la selezione della stampante e cliccando su OK si avvii la stampa del file.
Ho provato utilizzando l'oggetto PrintDialog ma non riesco a passargli il file pdf da stampare.
Potete suggerirmi le istruzioni da utilizzare, grazie.
jtpsala
Profilo
| Senior Member
206
messaggi | Data Invio:
dom 5 ott 2008 - 11:25
Ciao,
io in una applicazione simile ho fatto in questo modo:
nella mia form ho inserito una finestra di dialogo apri file e un controllo webbrowser.
Quando faccio click sul button1 parte la finestra di dialogo apri file, pesco il mio file .PDF e lo invio al controllo webbrowser per l'apertura (webbrowser1.Navigate())
Dopo di che utilizzo il controllo stampa che visualizza direttamente Acrobat nella WebBrowser.
Ciao.
Giuseppe
lukepet
Profilo
| Junior Member
110
messaggi | Data Invio:
dom 5 ott 2008 - 17:14
Io però avrei l'esigenza di non avviare Acrobat e inviare direttamente il file in stampa senza visualizzarlo.
Sono riuscito ad implementare una cosa del genere avviando un processo "Print", il problema è che la stampa viene inviata direttamente alla stampante predefinita, invece io vorrei che venisse prima visualizzata la finestra per la scelta della stampante.
jtpsala
Profilo
| Senior Member
206
messaggi | Data Invio:
dom 5 ott 2008 - 22:54
Usi vb 2008?
Prova cosi:
aggiungi alla tua form un combobox e nell'evento load del form scrivi questo:
Dim strPrinter As String
For Each strPrinter In Printing.PrinterSettings.InstalledPrinters
ComboBox1.Items.Add(strPrinter)
If strPrinter = strDefaultPrinter Then
ComboBox1.SelectedIndex = ComboBox1.Items.IndexOf(strPrinter)
End If
Next strPrinter
nello spazio dei nomi aggiungi:
Dim prtdoc As New Printing.PrintDocument
Dim strDefaultPrinter As String = prtdoc.PrinterSettings.PrinterName
Cosi dall'elenco della combobox potrai selezionare la stampante che ti interessa che si trova installata sul p.c..
Ciao e fammi sapare.
Giuseppe
lukepet
Profilo
| Junior Member
110
messaggi | Data Invio:
lun 6 ott 2008 - 08:45
io ho utilizzato questo codice, ma non va:
Dim PrintDialog As New PrintDialog
Dim pDoc As Printing.PrintDocument
pDoc = New Printing.PrintDocument()
Dim result As DialogResult = PrintDialog.ShowDialog()
pDoc.PrinterSettings.PrinterName = PrintDialog.PrinterSettings.PrinterName
pDoc.PrinterSettings.PrintFileName = "fileprova.pdf"
PrintDialog.Document = pDoc
If result = DialogResult.OK Then pDoc.Print()
mi stampa un file bianco. Dov'è che sbaglio?
jtpsala
Profilo
| Senior Member
206
messaggi | Data Invio:
lun 6 ott 2008 - 09:23
Fai cosi:
Dim myProcess As Process = New Process
'myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
myProcess.StartInfo.FileName = "file aperto nella dialog"
myProcess.StartInfo.Verb = "Print"
myProcess.StartInfo.UseShellExecute = True
myProcess.Start()
myProcess.WaitForInputIdle()
If myProcess.Responding Then
myProcess.CloseMainWindow()
Else
myProcess.Kill()
End If
End Sub
Fammi sapere ciao.
Giuseppe
lukepet
Profilo
| Junior Member
110
messaggi | Data Invio:
lun 6 ott 2008 - 10:36
Ho letto solo ora il tuo suggerimento comunque sono riuscito a risolvere in questo modo:
Dim PrintDialog As New PrintDialog
Dim result As DialogResult = PrintDialog.ShowDialog()
Dim printer As String = PrintDialog.PrinterSettings.PrinterName
If result = DialogResult.OK Then
Dim PrcProcesso As New Process()
PrcProcesso.StartInfo.FileName = "nomefile.pdf"
PrcProcesso.StartInfo.Verb = "PrintTo"
PrcProcesso.StartInfo.Arguments = Chr(34) + printer + Chr(34)
PrcProcesso.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
PrcProcesso.StartInfo.UseShellExecute = True
PrcProcesso.StartInfo.CreateNoWindow = True
PrcProcesso.Start()
EndIf
Torna su
Stanze Forum
Elenco Threads
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 !