Visual Studio C# anteprima di stampa.

di il
9 risposte

Visual Studio C# anteprima di stampa.

Gent.mi,

effettuo regolarmente l'anteprima e relativa stampa con PrintDocument e PrintPreviewDialog.
Quando lavoravo su VBnet, all'anteprima di stampa era incorporato Print Options e gradirei sapere se è possibile avere lo stesso anteprima sul C#.
Allego una foto di Print Options.
Anticipatamente ringrazio, saluto.
Domenico
Allegati:
10207_55a8e23ea17d61de7bf6c52946e7b6a8.jpg
10207_55a8e23ea17d61de7bf6c52946e7b6a8.jpg

9 Risposte

  • Re: Visual Studio C# anteprima di stampa.

    Pacifico437 ha scritto:


    Quando lavoravo su VBnet, all'anteprima di stampa era incorporato Print Options e gradirei sapere se è possibile avere lo stesso anteprima sul C#.
    Al netto della differenza nella sintassi, usare C# al posto di VB.NET in questo caso è indifferente: le funzionalità di cui usufruisci sono quelle offerte dalle classi del .NET Framework, che sono utilizzabili da qualsiasi linguaggio che abbia un compilatore compatibile con il CLR di .NET e pertanto prescindono dal linguaggio utilizzato.

    Quello che facevi in VB.NET quindi puoi farlo anche in C#: è sufficiente scrivere il codice usando la sintassi di questo al posto dell'altra.

    Certo, bisogna poi conoscere la sintassi C#, ma questo è un altro problema... se è questo il problema.

    Ciao!
  • Re: Visual Studio C# anteprima di stampa.

    Gent.mo Alka,

    ringrazio della disponibilità e tempestività, trovo soddisfacente che anche sul C# è fattibile.
    Purtroppo ho perso tutti i lavori fatti con il Vbnet a causa di uno sbalzo di corrente che mi ha distrutto l'HardDisk e per non ricadere ho inserito un stabilizzatore.
    In rete non sono stato all'altezza di trovare il codice e se puoi fare una cortesia di fornire.
    Fiducioso di una gradita collaborazione e mi scuso se approfitto, cordialmente saluto.
    Domenico.
  • Re: Visual Studio C# anteprima di stampa.

    E l'immagine che hai postato dove l'hai presa se si è "bruciato" tutto?
  • Re: Visual Studio C# anteprima di stampa.

    Gent.mo Oregon,

    l'immagine l'ho presa da una foto scannerizzata a suo tempo.
    Ringrazio per la gradita attenzione. Saluto.
    Domenico.
  • Re: Visual Studio C# anteprima di stampa.

    Https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.printpreviewdialog?view=net-5.0
    In VB.Net:
    
    ' Declare the dialog.
    Friend WithEvents PrintPreviewDialog1 As PrintPreviewDialog
    
    ' Declare a PrintDocument object named document.
    Private WithEvents document As New System.Drawing.Printing.PrintDocument
    
    ' Initalize the dialog.
    Private Sub InitializePrintPreviewDialog()
    
        ' Create a new PrintPreviewDialog using constructor.
        Me.PrintPreviewDialog1 = New PrintPreviewDialog
    
        'Set the size, location, and name.
        Me.PrintPreviewDialog1.ClientSize = New System.Drawing.Size(400, 300)
        Me.PrintPreviewDialog1.Location = New System.Drawing.Point(29, 29)
        Me.PrintPreviewDialog1.Name = "PrintPreviewDialog1"
    
        ' Set the minimum size the dialog can be resized to.
        Me.PrintPreviewDialog1.MinimumSize = New System.Drawing.Size(375, 250)
    
        ' Set the UseAntiAlias property to true, which will allow the 
        ' operating system to smooth fonts.
        Me.PrintPreviewDialog1.UseAntiAlias = True
    End Sub
    
    Private Sub Button1_Click(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles Button1.Click
    
        If (TreeView1.SelectedNode IsNot Nothing) Then
    
            ' Set the PrintDocument object's name to the selectedNode
            ' object's  tag, which in this case contains the 
            ' fully-qualified name of the document. This value will 
            ' show when the dialog reports progress.
            document.DocumentName = TreeView1.SelectedNode.Tag
        End If
    
        ' Set the PrintPreviewDialog.Document property to
        ' the PrintDocument object selected by the user.
        PrintPreviewDialog1.Document = document
    
        ' Call the ShowDialog method. This will trigger the document's
        '  PrintPage event.
        PrintPreviewDialog1.ShowDialog()
    End Sub
    
    Private Sub document_PrintPage(ByVal sender As Object, _
        ByVal e As System.Drawing.Printing.PrintPageEventArgs) _
            Handles document.PrintPage
    
        ' Insert code to render the page here.
        ' This code will be called when the PrintPreviewDialog.Show 
        ' method is called.
    
        ' The following code will render a simple
        ' message on the document in the dialog.
        Dim text As String = "In document_PrintPage method."
        Dim printFont As New System.Drawing.Font _
            ("Arial", 35, System.Drawing.FontStyle.Regular)
    
        e.Graphics.DrawString(text, printFont, _
            System.Drawing.Brushes.Black, 0, 0)
    
    End Sub
    
    In C#.Net:
    
    // Declare the dialog.
    internal PrintPreviewDialog PrintPreviewDialog1;
    
    // Declare a PrintDocument object named document.
    private System.Drawing.Printing.PrintDocument document =
        new System.Drawing.Printing.PrintDocument();
    
    // Initalize the dialog.
    private void InitializePrintPreviewDialog()
    {
    
        // Create a new PrintPreviewDialog using constructor.
        this.PrintPreviewDialog1 = new PrintPreviewDialog();
    
        //Set the size, location, and name.
        this.PrintPreviewDialog1.ClientSize = 
            new System.Drawing.Size(400, 300);
        this.PrintPreviewDialog1.Location = 
            new System.Drawing.Point(29, 29);
        this.PrintPreviewDialog1.Name = "PrintPreviewDialog1";
        
        // Associate the event-handling method with the 
        // document's PrintPage event.
        this.document.PrintPage += 
            new System.Drawing.Printing.PrintPageEventHandler
            (document_PrintPage);
    
        // Set the minimum size the dialog can be resized to.
        this.PrintPreviewDialog1.MinimumSize = 
            new System.Drawing.Size(375, 250);
    
        // Set the UseAntiAlias property to true, which will allow the 
        // operating system to smooth fonts.
        this.PrintPreviewDialog1.UseAntiAlias = true;
    }
    
    private void Button1_Click(object sender, System.EventArgs e)
    {
    
        if (TreeView1.SelectedNode != null)
    
            // Set the PrintDocument object's name to the selectedNode
            // object's  tag, which in this case contains the 
            // fully-qualified name of the document. This value will 
            // show when the dialog reports progress.
        {
            document.DocumentName = TreeView1.SelectedNode.Tag.ToString();
        }
    
        // Set the PrintPreviewDialog.Document property to
        // the PrintDocument object selected by the user.
        PrintPreviewDialog1.Document = document;
    
        // Call the ShowDialog method. This will trigger the document's
        //  PrintPage event.
        PrintPreviewDialog1.ShowDialog();
    }
    
    private void document_PrintPage(object sender, 
        System.Drawing.Printing.PrintPageEventArgs e)
    {
    
        // Insert code to render the page here.
        // This code will be called when the PrintPreviewDialog.Show 
        // method is called.
    
        // The following code will render a simple
        // message on the document in the dialog.
        string text = "In document_PrintPage method.";
        System.Drawing.Font printFont = 
            new System.Drawing.Font("Arial", 35, 
            System.Drawing.FontStyle.Regular);
    
        e.Graphics.DrawString(text, printFont, 
            System.Drawing.Brushes.Black, 0, 0);
    }
    
    Solo per confermare quello che dice oregon, quello che puoi fare in VB.Net lo puoi fare in C#, basta sapere come si scrive.
  • Re: Visual Studio C# anteprima di stampa.

    Solo per confermare quello che dice oregon,
    Lo ha detto Alka ma io sono d'accordo ... e aggiungo che sono contro i dischi che si bruciano al primo problema elettrico
    Sarò fortunato, io ho avuto PC che si sono spenti mille volte "malamente" e sono ancora vivi ...

    Comunque .... questa è la continuazione di questa richiesta

    https://www.forumexcel.it/forum/threads/visual-studio-c-perfezionare-la-stampa-del-datagridview.42028/#post-335530

    praticamente con l'aggiunta del disco bruciato ...
  • Re: Visual Studio C# anteprima di stampa.

    Gent.mi Rubik e Oregon,

    Purtroppo sono sfortunato è la seconda volta che capita ed ora uso un Hard Disk esterno per archivio dati.

    Il codice l'ho provato ed appare regolarmente PrintDocument mentre avrei gradito che apparisse Print Options come la figura che avevo allegato. Al momento effettuo regolarmente la stampa usando PrintDocument e PrintPreviewDialog.
    Non fa nulla e ringrazio per la gradita attenzione.
    Domenico.
  • Re: Visual Studio C# anteprima di stampa.

    oregon ha scritto:


    Solo per confermare quello che dice oregon,
    Lo ha detto Alka ma io sono d'accordo ... e aggiungo che sono contro i dischi che si bruciano al primo problema elettrico
    Sarò fortunato, io ho avuto PC che si sono spenti mille volte "malamente" e sono ancora vivi ...

    Comunque .... questa è la continuazione di questa richiesta

    https://www.forumexcel.it/forum/threads/visual-studio-c-perfezionare-la-stampa-del-datagridview.42028/#post-335530

    praticamente con l'aggiunta del disco bruciato ...
    Scusa una svista...
    Combatto con pc personali e della mia azienda, da più di 30 anni, ad oggi non ho mai perso un bit per colpa degli HDD, anche perché nelle rare occasioni che hanno smesso di funzionare, hanno dato allarmi preventivi e riconoscibli, dando il tempo per rimediare. Pur avendo avuto questa fortuna, nei pc con dati personali frutto di ore di lavoro, tengo due HDD dove duplico tutto quello che ritengo importante, inoltre eseguo dei backup saltuari anche su HDD USB.
  • Re: Visual Studio C# anteprima di stampa.

    Pacifico437 ha scritto:


    Gent.mi Rubik e Oregon,

    Purtroppo sono sfortunato è la seconda volta che capita ed ora uso un Hard Disk esterno per archivio dati.

    Il codice l'ho provato ed appare regolarmente PrintDocument mentre avrei gradito che apparisse Print Options come la figura che avevo allegato. Al momento effettuo regolarmente la stampa usando PrintDocument e PrintPreviewDialog.
    Non fa nulla e ringrazio per la gradita attenzione.
    Domenico.
    Puoi postare un codice minimale in VB.Net, che fa quello che vuoi, e che non riesci a fare in C#?
Devi accedere o registrarti per scrivere nel forum
9 risposte