打印单页报告(wpf c#program)的最快选项是什么

打印单页报告(wpf c#program)的最快选项是什么,c#,wpf,reporting-services,rdl,C#,Wpf,Reporting Services,Rdl,我正在开发一个wpf c#计划来管理一所学校。用户有时必须为单个学生打印证书。例如,该学生在我们学校学习的证明,或其津贴金额的证明 关于这些报告,有: 固定文本 关于学生的动态信息,如他的名字等 对于这个任务,我构建了RDL,它可以达到这个目的,但是用户要求更快的速度 我的问题是:RDL(使用报表服务器)是完成此任务的正确方法吗?或者有其他更快的选项吗?我使用流程文档来实现这样的简单打印功能。您可以向文档中添加XAML元素,就像在窗口中以编程方式创建XAML一样。使用相同的布局控件(网格、堆栈面

我正在开发一个wpf c#计划来管理一所学校。用户有时必须为单个学生打印证书。例如,该学生在我们学校学习的证明,或其津贴金额的证明

关于这些报告,有:

  • 固定文本
  • 关于学生的动态信息,如他的名字等
  • 对于这个任务,我构建了RDL,它可以达到这个目的,但是用户要求更快的速度


    我的问题是:RDL(使用报表服务器)是完成此任务的正确方法吗?或者有其他更快的选项吗?

    我使用
    流程文档
    来实现这样的简单打印功能。您可以向文档中添加XAML元素,就像在窗口中以编程方式创建XAML一样。使用相同的布局控件(网格、堆栈面板等)排列所有其他控件(文本段落、图像等),打印FlowDocument时,它将根据各种因素(如打印机对话框中选择的纸张大小)被“流”到页面中

    免责声明:这是匆忙复制/粘贴的,但它应该让您了解它的工作原理

    // Show the print dialog
    var dlg = new PrintDialog();
    if (!dlg.ShowDialog().GetValueOrDefault())
    {
        // User cancelled
        return;
    }
    
    // Create and initialise the FlowDocument
    _doc = new FlowDocument();
    _doc.FontFamily = new FontFamily("Arial");
    _doc.FontSize = 14;
    
    // Add a paragraph of text
    var para = new Paragraph(new Run("My paragraph....."))
    {
        FontSize = 14,
        Foreground = new SolidColorBrush(Colors.Black),
        Margin = new Thickness(0,0,0,12)
    };
    _doc.Blocks.Add(para);
    
    // Add an image
    var para = new Paragraph();
    var img = new Image
    {
        Source = bitmapSource, 
        HorizontalAlignment = HorizontalAlignment.Center, 
        Margin = new Thickness(0,0,0,12)
    };
    para.Inlines.Add(img);
    _doc.Blocks.Add(para);
    
    // Print
    var documentPaginator = ((IDocumentPaginatorSource)_doc).DocumentPaginator;
    dlg.PrintDocument(documentPaginator, "My print job");
    
    在我的应用程序中,我将所有这些都包装在一个类中(因为我有一些地方需要打印功能)。该类在其构造函数中创建和初始化FlowDocument,并提供各种方法,如“AddParagation()”、“AddImage()”,以及用于指定页边距、字体、字体大小等的不同重载


    最后的文档分页器位是我的实现的简化版本,但它可能足以满足您的需要。(我创建了一个自定义文档分页器,可以在每页上设置页眉和页脚)。

    非常感谢。我从这个方法开始,试图制作一张打印纸。我确信我必须检查这个方法,看看它是否允许不预览的即时打印,导出到html或docx,等等。