Ich habe eine sehr grundlegende WPF Form, die ichSchriftgröße Änderungen im Druck wpf
<Grid x:Name="grid">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Text="Name" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="0" Grid.Row="0"/>
<TextBox Text="Name" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="1" Grid.Row="0" Height="60" x:Name="NameTb" Width="200" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto"/>
<TextBlock Text="ID" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="0" Grid.Row="1"/>
<TextBox Text="ID" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="1" Grid.Row="1" x:Name="IdTb" Height="60" Width="200" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto"/>
<TextBlock Text="Description" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="0" Grid.Row="2"/>
<TextBox Text="Description" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="1" Grid.Row="2" x:Name="DscTb" Height="60" Width="200" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto"/>
<Button Content="Print" Grid.Column="1" Grid.Row="3" Width="150" Height="30" Click="Print_Click"/>
</Grid>
und die Code-behind drucken mag ist:
private void Print_Click(object sender,RoutedEventArgs e)
{
WebBrowser wb = new WebBrowser();
bool PrintFired = true;
StringBuilder printString = new StringBuilder("<head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'></head>");
printString.Append("<table border='0' margin-right ='20'><tr><td><b><font size='3'>" +"Name" + "</font>></b></td><td> </td><td>");
//printString.Append(explanation.EngagementName);
printString.Append("<font size='3'>" + NameTb.Text + "</font>");
printString.Append("</td></tr><tr><td></td></tr>");
printString.Append("<tr><td><b><font size='3'>" + "ID" + "</font></b></td><td> </td><td>");
printString.Append("<font size='3'>" + IdTb.Text + "</font>");
printString.Append("</td></tr><tr><td></td></tr>");
printString.Append("<tr><td valign ='top'><b><font size='3'>" + "Description" + "</font></b></td><td> </td><td>");
printString.Append("<font size='3'>" + DscTb.Text + "</font>");
printString.Append("</td></tr></table>");
wb.NavigateToString(printString.ToString());
var d = new System.Windows.Threading.DispatcherTimer();
d.Interval = TimeSpan.FromMilliseconds(250);
d.Tick += new EventHandler((sender1, args) =>
{
if (PrintFired == true && ((mshtml.IHTMLDocument2)(wb.Document)).readyState != "loading")
{
PrintFired = false;
mshtml.IHTMLDocument2 doc = wb.Document as mshtml.IHTMLDocument2;
doc.execCommand("Print", true, null);
d.Stop();
}
});
d.Start();
}
Das Problem ist, wenn ich Eingang große Menge von Text in das Beschreibungsfeld (oder irgendein anderes Feld) reduziert sich die Schriftgröße im Druck.
PS- Sie müssen dies nicht drucken, Sie können es als PDF speichern.
könnten Sie einige weitere Details geben? Wie lang ist der Text und wie kann der Unterschied aussehen? Ich habe keine Änderungen der Schriftgröße bemerkt. – lukbl
@lukbl Nicht viel von einem Text füllt es tatsächlich, bis Sie eine Bildlaufleiste sehen –