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