Newsgroup: it.comp.lang.visual-basic
Titolo: Stampa di un file

Ho un file di testo che contiene 2 righe: la prima indica la stampante
che devo usare per stampare, la seconda mi indica un file (con
relativo percorso) che devo stampare.
Come faccio a far stampare proprio quel file?
Mi spiego meglio ho in una variabile il percorso completo del file ho
settato la stampante da usare ma se faccio 
Printer.Print CommonDialog1.FileName
mi stampa il percorso ma non il file.
Mi potreste aiutare per favore?
Grazie Francesco
P.S. Giuro che ho cercato sia in MSDN che nel sito comune ma non ho
trovato quello che fa per me (probabilmente ho cercato male)

 mi stampa il percorso ma non il file.
Ci provo, anche se mi sembra che tu abbia le idee un po' confuse ... :-)
Se vuoi utilizzare l'oggetto printer per stampare devi prima "mettere 
dentro" l'oggetto printer qualcosa!
L'istruzione Printer.print "prova" genera una linea di stampa contenente 
il testo prova.
La tua istruzione Printer.Print CommonDialog1.FileName fa proprio 
questo: commondialog1.filename recupera del testo (il nome del file che 
selezioni) che viene "messo" nell'oggetto Printer e poi stampato.
Se invece vuoi stampare un file l'oggetto Printer non ti serve.
Puoi usare invece l'istruzione API ShellExecute specificando come 
"operazione" da eseguire "print" (Vedi sotto). In questo caso devi avere 
un minimo di confidenza con le API di windows, anche se una ricerca con 
google del tipo "vb stampare file" dovrebbe aiutarti ... ed il tuo file 
deve essere stampabile (se ci clicci sopra col tasto destro appare 
"Stampa"?)
ciao
		maxx
 
http://www.mvps.org/vbnet/index.html?code/shell/shellexecute.htm

"Stampa"?)
Public Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String,
ByVal lpFile As String, ByVal lpParameters As String, ByVal
lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Sub Browse_Click()
    With CommonDialog1
        .Filter = "All files|*.*|Text Files
(*.txt;*.doc;*.rtf)|*.txt;*.doc;*.rtf"
        .FilterIndex = 2
        .Flags = cdlOFNFileMustExist + cdlOFNHideReadOnly
        .DialogTitle = "Select a text file"
        .FileName = ""
        .ShowOpen
        If .FileName <> "" Then
            MsgBox (.FileName)
        End If
    End With
End Sub
Private Sub Command1_Click()
Dim fs, f, s1, s2
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile(CommonDialog1.FileName, 1)
s1 = f.ReadLine
s2 = f.ReadLine
f.Close
Call ShellExecute(hwnd, "print", s2, 0&, 0&, SW_HIDE)
End Sub
1. Domanda
Non ho ben capito a cosa serve hwnd (vedo che funziona), però mi
piacerebbe capirlo
2. Domanda
Come avevo già detto nella prima riga del file ho il nome della
stampante con cui voglio stampare (variabile s1), ho notato che
ShellExecute stampa con la stampante predefinita del sistema.
Quindi per stampare devo settare la stampante predefinita ad s1 oppure
posso sfruttare lpParameters?
E se si come?
3. Domanda
Nel caso che il file non fosse stampabile ho provato e vedo che non
succede niente (penso che ShellExecute ritorni un errore) quindi non è
possibile fare niente?
Grazie ancora per l'aiuto
Ciao Francesco


Chiedo perdono bastava fare una ricerca con Google ed è pieno di
risposte alla mia 2 domanda.
Scusate ancora.
Ciao Francesco

Francesco Naldini wrote:
 >
 > 1. Domanda
 >
 > Non ho ben capito a cosa serve hwnd (vedo che funziona), però mi 
piacerebbe
 >  capirlo
 >
"hwnd
Specifies a parent window. This window receives any message boxes that 
an application produces. For example, an application may report an error 
by producing a message box."
ciao
		maxx

Francesco:
  puoi provare il progetto PrintFil, reperibile sul Sito Comune
o su:    
http://members.xoom.it/flanguasco/
o anche: 
http://www.flanguasco.org
Dovrebbe fare proprio quello che vuoi tu, oppure potresti usarne
solo alcune routines per implementare la tua applicazione.
Ciao e a risentirci.
Franco