J'essaie d'imprimer un FlowDocument. Après avoir passé une bonne partie de la journée à essayer plusieurs pages, j'ai échoué et j'ai opté pour quelque chose de plus simple, mais je suis maintenant incapable d'expliquer quand le texte n'est pas sorti sur la page. Ça doit être quelque chose que je crois avoir dans les neiges. Il y a deux tables ci-dessous, en plaçant un convertisseur sur les deux spectacles que les valeurs sont peuplées par le DataContext du FlowDocument.WPF: Impression d'un 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>
Le document est imprimé à l'aide:
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");
}
Je suis un peu à mon esprit fin à cela, je ne vois pas le problème. J'apprécierais vraiment si quelqu'un pouvait faire la lumière.
J'ai utilisé à peu près le même code ailleurs dans un autre application cependant. J'ai pensé que c'était peut-être quelque chose de vraiment évident mais peut-être pas. :( – Echilon