Я пытаюсь получить FlowDocument для печати. Проведя большую часть дня, пробовав несколько страниц, я потерпел неудачу и решил сделать что-то более простое, но теперь я не понимаю, когда текст не выводится на страницу. Я думаю, что это должно быть что-то, что у меня есть снегом. Ниже приведены две таблицы, поместив конвертер на обоих показывает, что значения заполняются через DataContext FlowDocument.WPF: печать FlowDocument
<Table>
<Table.Columns>
<TableColumn Width="Auto"/>
<TableColumn Width="34"/>
<TableColumn Width="Auto"/>
</Table.Columns>
<TableRowGroup>
<TableRow>
<TableCell>
<Paragraph>
<Image Source="{Binding Icon,Converter={StaticResource IconConverter},ConverterParameter=32}" Width="32" Height="32"/>
</Paragraph>
</TableCell>
<TableCell>
<Paragraph>
<TextBlock Text="{Binding Name,Converter={StaticResource dbg}}" TextWrapping="Wrap" TextTrimming="CharacterEllipsis" VerticalAlignment="Center" FontSize="18" Foreground="Black" />
</Paragraph>
</TableCell>
<TableCell>
<Paragraph>
<TextBlock Text="Static text works fine" TextAlignment="Right" />
<TextBlock Text="Static text works here too fine" TextAlignment="Right" />
</Paragraph>
</TableCell>
</TableRow>
</TableRowGroup>
</Table>
<BlockUIContainer>
<Line Stretch="Fill" Stroke="DarkBlue" X2="1"/>
</BlockUIContainer>
Документ печатается с помощью:
PrintDialog dlg = new PrintDialog();
if(dlg.ShowDialog() == true) {
int margin = 5;
Size pageSize = new Size(dlg.PrintableAreaWidth - margin * 2, dlg.PrintableAreaHeight - margin * 2);
FlowDocument document = WPFUtils.LoadFlowDocument(System.IO.Path.Combine(Utils.GetApplicationPath(), "AccountPrintView.xaml"), account); // loads the document from a XAML file
IDocumentPaginatorSource paginator = document as IDocumentPaginatorSource;
paginator.DocumentPaginator.PageSize = pageSize;
dlg.PrintDocument(paginator.DocumentPaginator, "Print output");
}
Я вроде в моих конце остроумия с этим, я не вижу проблемы. Я был бы очень признателен, если бы кто-нибудь мог пролить свет.
Я использовал почти такой же код где-то еще в другом приложение. Я думал, что это может быть что-то действительно очевидное, но, возможно, нет. :( – Echilon