[VB.NET]Stampare un documento

giovedì 15 aprile 2004 - 13.38

xonica Profilo | Newbie

la necessità è di stampare il contenuto di una semplice variabile di testo printString.

Su internet ho trovato delle informazioni che mi hanno portato a scrivere questo codice:


code:--------------------------------------------------------------------------------
Dim WithEvents pDoc As Printing.PrintDocument
--------------------------------------------------------------------------------


code:--------------------------------------------------------------------------------
Private Sub btnStampaDoc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStampaDoc.Click
pDoc = New Printing.PrintDocument()
PrintDialog1.Document = pDoc
Dim result As DialogResult = PrintDialog1.ShowDialog()
pDoc.PrinterSettings.PrinterName = PrintDialog1.PrinterSettings.PrinterName
If result = DialogResult.OK Then pDoc.Print()
End Sub
Private Sub pDoc_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles pDoc.PrintPage
e.Graphics.DrawString(printString, New Font("Verdana", 12, FontStyle.Regular), Brushes.Black, e.MarginBounds.Left, e.MarginBounds.Top)
End Sub
--------------------------------------------------------------------------------


Il tutto si traduce che nel momento in cui io premo il bottone btnStampaDoc si apre la finestra che mi fa scegliere la stampante e una volta che lo scelta stampa il documento.

Il problema sta nel fatto che mi stampa una sola pagina anche se il testo e molto più lungo e non posso effettuare l'operazione di stampa di un numero particolare di pagine (es. DA:1 A:3 su 10 pp.)

L'idea MIGLIORE sarebbe avere una procedura che passato il testo mi permetta di stampare il documento con la stampante prescelta, che adatti i margini, che mi permetta di scegliere le pagine da stampare!



STO CERCANDO DELLE GUIDE DEGLI OGGETTI PrintDialog, PrintDocument, PrintPreviewControl, RichTextBox non ho la guida MSDN installata e quella disponibile sul sito è in inglese e ci capisco poco e niente se sapete dove trovare informazioni scrivete sul form THANKS

xonica Profilo | Newbie

NON VOGLIO DIRE UNA FESSERIA MA IL SUGGERIMENTO CHE MI HAI DATO PRODUCE UN'ALTRO EFFETTO CHE IO NON DESIDERO ASSOLUTAMENTE.... MI FA PIU' COPIE DELLA STESSA PAGINA... E ME LE FA ALL'INFINITO .... IL PROBLEMA INVECE E' CHE IL TESTO "contenuto in una variabile" HA PIU' RIGHE DI TESTO PURO CHE NECESSITANO PIU' COPIE.... LA PROCEDURA CHE HO FATTO MI STAMPA SOLO LA PRIMA PAGINA DI TUTTE LE PAGINE CHE DOVREBBE STAMPARE!!!!!!!!!!????

trinity Profilo | Guru

Ciao XONICA,
potrsti essere + chiaro? perchè il testo contenuto in una variabile non lo butti in una tabella di database, setti il campo con longtext e poi lo stampi tramite crystal report , lì a quel punto puoi settare a tuo piacimento la stampa.
Ti crei un file .rpt li associ il campo testo e sul Form per richiamare la stampa prima di tutto inserisci il Crystalreportviewer che ti permette di creare l'anteprima di stampa e stampare successivamente e da codice per richiamarti il report sorgente scrivi questo codice:

Dim stampa As New ReportDocument()
stampa.Load("C:\prova.rpt")
CrystalReportViewer1.ReportSource = stampa

Spero di averti aiutato, se no mi spieghi meglio cosa devi fare.

Ciao
Fabio

ciri Profilo | Newbie

Ma anzichè associare ad un file .rpt una tabella di un database, si puo associare un dataset??

Se si, come?

Grazie.
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