Appunti di Programmazione

Creative Commons License

Pagina 1 2 3 4 5 6 7 8

Stampare del semplice Testo

Stampare una sola pagina di testo con allineamento sinistro, destro o centrato è un'operazione piuttosto semplice. È sufficiente avere uno scritto da passare alla stampante e decidere il tipo di formattazione desiderata, e il gioco è fatto.

Vediamo come:

Imports System.Drawing.Printing

Public Class Form1

    'definizione di un button
    Private WithEvents Button1 As New Button

    'definizione di un documento di stampa
    Private WithEvents PrintDocument1 As New PrintDocument

    'definizione di un nuovo font
    Private NuovoFont As Font

    'definizione della variabile che contiene il testo
    Dim Testo As String

    'definizione del formato del testo
    Dim CustomFormat As New StringFormat

    'inizializzazione dei componenti Form e Button
    Public Sub New()

        InitializeComponent()

        'imposta la form
        Me.Size = New Size(210, 180)
        Me.Text = "Stampa Testo"

        'imposta il button
        Button1.Size = New Size(100, 30)
        Button1.Location = New Point(51, 58)
        Button1.Text = "Stampa"

        'aggiunge il button alla form
        Me.Controls.Add(Button1)

    End Sub

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

        'stampa diretta del documento senza attivare finestre di dialogo
        PrintDocument1.Print()

    End Sub

    'Inpostazioni iniziali prima dell'avvio del processo di stampa
    Private Sub PrintDocument1_BeginPrint1(ByVal sender As Object, ByVal e As _
    System.Drawing.Printing.PrintEventArgs) Handles PrintDocument1.BeginPrint

        Testo = "Stampare del semplice testo con allineamento sinistro, destro o centrato è " + _
        "un'operazione piuttosto semplice." + " È sufficiente avere uno scritto da passare " + _
        "alla stampante e decidere il tipo di formattazione desiderata e il gioco è fatto."

        NuovoFont = New Font("Times New Roman", 12, FontStyle.Bold, GraphicsUnit.Point)

        'allineamento verticale: vicino (near) al margine superiore
        CustomFormat.LineAlignment = StringAlignment.Near

        'allineamento orizzontale: vicino (near) al margine sinistro
        CustomFormat.Alignment = StringAlignment.Near

    End Sub

    Private Sub PrintDocument1_PrintPage1(ByVal sender As Object, ByVal e As _
    System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

        'disegna il testo da stampare
        e.Graphics.DrawString(Testo, NuovoFont, Brushes.Black, e.MarginBounds, CustomFormat)

    End Sub

    Private Sub PrintDocument1_EndPrint1(ByVal sender As Object, ByVal e _
    As System.Drawing.Printing.PrintEventArgs) Handles PrintDocument1.EndPrint

        'rilascia le risorse occupate dal testo
        NuovoFont.Dispose()
        NuovoFont = Nothing

    End Sub

End Class

Stampa Testo

Considerate che l'enumerazione StringAlignment ha 3 valori possibili:
Near (vicino), Center (al centro) e Far (lontano). Esse sono da riferirsi al tipo di layout: vicino, centrato o lontano dal riferimento.

Se StringAlignment è associato alla proprietà StringFormat.Alignment in un layout da sinistra a destra, allora Near corrisponde ad un allineamento a sinistra e Far a destra.
Viceversa in un layout da destra a sinistra le parti si invertono: a Nearr corrisponde un allineamento a destra e Far a quello a sinistra; il centrato resta invariato.


Se StringAlignment è associato alla proprietà StringFormat.LineAlignment allora i riferimenti in questione sono quello superiore e inferiore, in quanto tale proprietà gestisce l'allineamento verticale dei testi.

Download sorgente "Stampa_Testo.zip" ( 63KB )

Pagina 1 2 3 4 5 6 7 8