zoukankan      html  css  js  c++  java
  • [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进行替换,不知道也没有其他办法?

  • 相关阅读:
    GitLab-添加SSH Key亲历教程
    java-数组Array的应用总结
    Java-方法的重载和重写
    JSON-相关的工具收藏分享
    java-无重复的排列组合小技能
    Charles安装与使用
    深拷贝浅拷贝
    文件操作
    列表生成式
    非空即真,非零即真
  • 原文地址:https://www.cnblogs.com/catzhou/p/12505216.html
Copyright © 2011-2022 走看看