Mega Code Archive

 
Categories / VB.Net Tutorial / WPF
 

Print Custom Page

<Window x: Class="Printing.PrintCustomPage"     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     Title="PrintCustomPage" Height="300" Width="300">     <StackPanel>       <TextBox Name="txtContent" Margin="3" TextWrapping="Wrap" VerticalScrollBarVisibility="Visible">         this is a test       </TextBox>       <Button Grid.Row="1" Margin="3" Padding="5" Click="cmdPrint_Click" VerticalAlignment="Top">Print</Button>     </StackPanel> </Window> //File:Window.xaml.vb Imports System Imports System.Collections.Generic Imports System.Text Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Data Imports System.Windows.Documents Imports System.Windows.Input Imports System.Windows.Media Imports System.Windows.Media.Imaging Imports System.Windows.Shapes Imports System.Globalization Namespace Printing   Public Partial Class PrintCustomPage     Inherits System.Windows.Window     Public Sub New()       InitializeComponent()     End Sub     Private Sub cmdPrint_Click(sender As Object, e As RoutedEventArgs)       Dim printDialog As New PrintDialog()       If printDialog.ShowDialog() = True Then         Dim visual As New DrawingVisual()         Using dc As DrawingContext = visual.RenderOpen()           Dim text As New FormattedText(txtContent.Text, CultureInfo.CurrentCulture, FlowDirection.LeftToRight, New Typeface("Calibri"), 20, Brushes.Black)           text.MaxTextWidth = printDialog.PrintableAreaWidth / 2           Dim point As New Point(100, 100)           dc.DrawText(text, point)           dc.DrawRectangle(Nothing, New Pen(Brushes.Black, 1), New Rect(200, 200, 50, 50))         End Using         printDialog.PrintVisual(visual, "A Custom-Printed Page")       End If     End Sub   End Class End Namespace