[WPF 学习] 7.2 模板打印

利用FlowDocument进行模板打印

xaml

    <DockPanel >
        <Button  Content="Preview"  Margin="15" Click="Button_Click_1" DockPanel.Dock="Bottom" Height="76"/>
        <FlowDocumentPageViewer VerticalAlignment="Top" Width="300" Name="fd" BorderBrush="Blue" BorderThickness="2">

            <FlowDocument PagePadding="38" >
                <Paragraph TextAlignment="Center">
                    <Run  FontFamily="宋体" FontWeight="Bold">酒店名称:</Run> [HotelName]
                </Paragraph>
                <BlockUIContainer>
                    <Line X1="0" Y1="0" X2="800" Y2="0" Stroke="Black"/>
                </BlockUIContainer>
                <Paragraph>
                    <Run FontWeight="Bold">日期:</Run> [Date]
                </Paragraph>

            </FlowDocument>
        </FlowDocumentPageViewer>

    </DockPanel>

代码


        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            var filename = @"test.xaml";
            using (FileStream fs = new FileStream(filename, FileMode.OpenOrCreate))
            {
                XamlWriter.Save(fd.Document, fs);
            }

            var sts = File.ReadAllText(filename);
            sts = sts.Replace("[HotelName]", "NaradaHotel")
                   .Replace("[Date]", DateTime.Now.ToLongDateString());

            var d = ((IDocumentPaginatorSource)XamlReader.Parse(sts)).DocumentPaginator;
            PrintDialog pd = new PrintDialog();
            pd.PrintDocument(d, "test");


        }

用String.Replace进行替换,不知道也没有其他办法?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值