目前在做个测试项目,需要把窗口显示出来的内容全部打印出来,打印大小以图片model.jpg为准,因窗口显示内容较多,所以有滚动条,采用滚动控件,加Cavans,将显示内容加到容器里,代码如下
窗口界面代码:
<Window x:Class="ocr识别演示.BussLiecence"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="BussLiecence" FontSize="8" Height="768" Width="1366" WindowState="Maximized" WindowStyle="None" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="135*"/>
<ColumnDefinition Width="405*"/>
<ColumnDefinition Width="65*"/>
<ColumnDefinition Width="62*"/>
<ColumnDefinition Width="12*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="9*"/>
<RowDefinition Height="160*"/>
<RowDefinition Height="3*"/>
<RowDefinition Height="11*"/>
<RowDefinition Height="7*"/>
</Grid.RowDefinitions>
<ScrollViewer Grid.Column="1" Grid.Row="1" >
<Canvas x:Name="grid" Width="{Binding ActualWidth, ElementName=image, Mode=OneWay}" Height="{Binding ActualHeight, ElementName=image, Mode=OneWay}">
<Image x:Name="image" Source="image/model.jpg" />
<TextBox x:Name="Scope" HorizontalAlignment="Left" BorderThickness="0" Height="34" TextWrapping="Wrap" Text="经营范围" VerticalAlignment="Top" Width="554" Foreground="Red" Canvas.Left="169" Canvas.Top="241" VerticalContentAlignment="Center"/>
<TextBox x:Name="RegisteredFund" BorderThickness="0" HorizontalAlignment="Left" Height="15" TextWrapping="Wrap" Text="注册资金" VerticalAlignment="Top" Width="97" Foreground="Red" Canvas.Left="369" Canvas.Top="223" VerticalContentAlignment="Center"/>
<TextBox x:Name="Name" BorderThickness="0" HorizontalAlignment="Left" Height="15" TextWrapping="Wrap" Text="名称" VerticalAlignment="Top" Width="554" Foreground="Red" Canvas.Left="169" Canvas.Top="111" VerticalContentAlignment="Center"/>
<TextBox x:Name="Address" BorderThickness="0" HorizontalAlignment="Left" Height="15" TextWrapping="Wrap" Text="地址" VerticalAlignment="Top" Width="396" Foreground="Red" Canvas.Left="169" Canvas.Top="130" VerticalContentAlignment="Center"/>
<TextBox x:Name="Type" BorderThickness="0" HorizontalAlignment="Left" Height="15" TextWrapping="Wrap" Text="类别" VerticalAlignment="Top" Width="396" Foreground="Red" Canvas.Left="169" Canvas.Top="148" VerticalContentAlignment="Center"/>
<TextBox x:Name="RegNum" BorderThickness="0" HorizontalAlignment="Left" Height="15" TextWrapping="Wrap" Text="注册号" VerticalAlignment="Top" Width="554" Foreground="Red" Canvas.Left="169" Canvas.Top="296" VerticalContentAlignment="Center"/>
<TextBox x:Name="textBox" Height="59" Canvas.Left="320" TextWrapping="Wrap" Text="TextBox" Canvas.Top="716" Width="195"/>
<TextBox x:Name="textBox1" Height="19" Canvas.Left="169" TextWrapping="Wrap" Text="TextBox" Canvas.Top="651" Width="297"/>
</Canvas>
</ScrollViewer>
<Button x:Name="button1" Grid.Column="2" Grid.Row="3" Click="button1_Click" >
<Button.Background>
<ImageBrush ImageSource="image/btPrint.png"/>
</Button.Background>
</Button>
</Grid>
</Window>
窗口后台代码:
namespace ocr识别演示
{
/// <summary>
/// BussLiecence.xaml 的交互逻辑
/// </summary>
public partial class BussLiecence : Window
{
public BussLiecence()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
//this.grid.Measure(new Size(1075, 1520));
this.grid.Arrange(new Rect(new Point(0, 0), new Size(grid.ActualWidth, grid.ActualHeight)));
PrintDialog printDialog = new PrintDialog();
printDialog.PrintVisual(this.grid, "申请书");
}
}
}