首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF:打印FlowDocument

WPF:打印FlowDocument
EN

Stack Overflow用户
提问于 2009-12-31 02:10:29
回答 1查看 6K关注 0票数 3

我在试着打印一张FlowDocument。在花了一天的大部分时间尝试多个页面后,我失败了,选择了更简单的页面,但我现在无法解释文本不能输出到页面的原因。我想这一定是我给雪盲设计的。下面有两个表,在这两个表上都放置一个转换器,这表明这些值是通过FlowDocument的DataContext填充的。

代码语言:javascript
复制
<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>

使用以下命令打印文档:

代码语言:javascript
复制
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");
}

我对此有点束手无策,我看不出有什么问题。如果有人能给我点启发我会很感激的。

EN

回答 1

Stack Overflow用户

发布于 2009-12-31 04:49:18

这本身并不是一个真正的答案,但是你可以使用FlowDocumentReader吗?Printing a Windows Foundation Presentation FlowDocument说,它已经在Ctrl-P上预先连接了打印内容(并公开了一个" Print“方法),你可以试试这个:...that

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1981585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档