Stampa selezione

giovedì 19 novembre 2009 - 10.26

bolla111 Profilo | Senior Member

ciao a tutti
ho creato un programmino che sulla sinistra ha un treeview contenenti i nomi dei file contenuti in alcune cartelle...cliccando su un singolo nome, nella parte destra del programma, appare il testo contenuto nel file...
poi ho messo un tasto di stampa per stampare il file; quello che non riesco a fare è implementare la stampa per selezione...ho settato l'impostazione del printdialog: allowselection=true...ma anche se lo seleziono mi stampa completamente il file...probabilmente x il modo in cui ho fatto il codice, ma non so risolvere il problema...qlcn mi può aiutare?
grazie

codice:
Dim pd As New PrintDialog() pd.AllowSelection = True If (pd.ShowDialog() = DialogResult.OK) Then Try streamToPrint = New StreamReader(nomefile) Try printFont = New Font("Arial", 10) Dim pd1 As New PrintDocument() AddHandler pd1.PrintPage, AddressOf pd_PrintPage pd1.PrinterSettings = pd.PrinterSettings pd1.Print() Finally streamToPrint.Close() End Try Catch ex As Exception MessageBox.Show(ex.Message) End Try End If

Brainkiller Profilo | Guru

>settato l'impostazione del printdialog: allowselection=true...ma
>anche se lo seleziono mi stampa completamente il file...probabilmente
>x il modo in cui ho fatto il codice, ma non so risolvere il problema...qlcn
>mi può aiutare?
>grazie

Ciao,
non l'ho mai utilizzato ma mi par di capire che questa proprietà ti pemette di sapere se è stato scelto Selezione oppure no, quello che vai a stampare poi è di competenza tua. Quindi tu devi capire effettivamente cosa è selezionato e mandare in stampa solo quello.

David De Giacomi | <empty>
http://blogs.dotnethell.it/david/

bolla111 Profilo | Senior Member

la proprietà allowselection=true permette solo di attivare, nella finestra di stampa, l'opzione che permettere di scegliere soltanto la selezione...ma con questo codice stampa lo stesso tutto il file...non so dove devo dirgli che deve stampare solo la selezione...

Brainkiller Profilo | Guru

>la proprietà allowselection=true permette solo di attivare, nella
>finestra di stampa, l'opzione che permettere di scegliere soltanto
>la selezione...ma con questo codice stampa lo stesso tutto il
>file...non so dove devo dirgli che deve stampare solo la selezione...

streamToPrint = New StreamReader(nomefile)

Con questa riga qui, tu stai dicendo, stampa tutto il file.
Invece dovresti fare una roba del tipo

se è attivo AllowSelection stampi solo un pezzo del file se no stampi tutto con la riga sopra

Per stampare solo la selezione usando questo stesso sistema devi creare un file temporaneo contenente solo la selezione del tipo:

streamToPrint = New StreamReader(nomefile_temporaneo_con_la_sola_selezione)

David De Giacomi | <empty>
http://blogs.dotnethell.it/david/

bolla111 Profilo | Senior Member

grazie della tua risposta..l'ho letta solo ora..cmq ero riuscito da solo...cmq quello che volevo evitare era creare un file temporaneo da stampare..ma alla fine ho fatto così..come l'hai spiegato tu...
l'altra cosa che mi mancava era la condizione dell'if per decidere se stampare tutto il testo o soltanto la selezione...ho usato questa:
if pd.PrinterSettings.PrintRange = PrintRange.Selection then

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