Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB.NET 4.0] Stampare un grafico (chart)

    Ciao,

    non riesco a stampare un grafico popolato da un DataTable.
    Dopo svariate ricerche ho notato che molti usano chart1.Printing
    ma a me non riconosce proprio il metodo "Printing"
    infatti mi sottolinea chart1.Printing dicendo: "'Printing' non è un membro di 'System.Web.UI.DataVisualization.Charting.Chart'".

    Questo il mio codice per stampare:
    codice:
        Protected Sub bttPrintChart_Click(sender As System.Object, e As System.EventArgs) Handles bttPrintChart.Click
    
            Dim pd As New System.Drawing.Printing.PrintDocument()
            ' Add the event handler, and then print 
            AddHandler pd.PrintPage, AddressOf pd_PrintPage
            ' Print the document 
            pd.Print()
        End Sub
    
        Private Sub pd_PrintPage(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
            ' Create and initialize print font 
            Dim printFont As New System.Drawing.Font("Arial", 10)
            ' Create Rectangle structure, used to set the position of the chart 
            Dim myRec As New System.Drawing.Rectangle(10, 30, 150, 150)
            ' Draw a line of text, followed by the chart, and then another line of text 
            ev.Graphics.DrawString("Line before chart", printFont, Brushes.Black, 10, 10)
            chart1.Printing.PrintPaint(ev.Graphics, myRec)
            ev.Graphics.DrawString("Line after chart", printFont, Brushes.Black, 10, 200)
        End Sub
    Ho provato anche mettendo il grafico all'interno di un Panel e stamparmi il panel, ma del grafico stampa solo i bordi e non il contenuto
    Giudica i tuoi successi dagli sforzi che hai dovuto compiere per superarli

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ho provato con un controllo Chart in una Windows form e funziona.
    Il codice è lo stesso del tuo:

    Dim gr As Graphics = e.Graphics
    Chart1.Printing.PrintPaint(gr, New Rectangle(0, 0, 500, 500))


    Parlo di Windows Form perchè nel controllo utilizzato nelle web form non esiste la proprietà Printing
    Pietro

  3. #3
    Quindi non ho capito.. cosa devo fare?
    Giudica i tuoi successi dagli sforzi che hai dovuto compiere per superarli

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da ivan86
    Quindi non ho capito.. cosa devo fare?
    veramente non ho capito io dove possa essere il problema


    ps. Ma stai utilizzando una pagina web aspx o un Windows form?
    Pietro

  5. #5
    Il problema è che non riconosce il .Printing

    Sto utilizzando aspx per il FE e aspx.vb separato da aspx per il BE
    Giudica i tuoi successi dagli sforzi che hai dovuto compiere per superarli

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Allora, secondo me stai sbagliando aproccio.
    In una pagina web non si usa il metodo System.Drawing.Printing.PrintDocument.
    Eventualmente, si potrebbe utilizzare in una intranet per stampare nella stampante di rete.

    Io creerei una pagina aspx, opportunamente formattata per la stampa e lascerei all'utente scegliere i comandi di stampa del browser che usa.

    Un grafico, alla fine dei conti, non è altro che una immagine. Se l'utente non riesce a stamparla, è perchè ha configurato il suo browser per non stampare immagini

    Di più non so.

    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.