0

我有关于学生帐户的报告,是否可以将其打印到默认的物理打印机或软件打印机(如 BioPDF 打印机)以及如何在 C# 中格式化我的文本。

我正在使用 WPF 使用 C# 编写我的代码。我很抱歉,因为我不知道在这个问题中提供什么样的信息,请耐心等待;)。

//===================编辑===========================

PrintDialog printDialog = new PrintDialog();
       if (printDialog.ShowDialog().GetValueOrDefault(false))
       {
           printDialog.PrintVisual(listBox1, this.Title);
       }

// 我正在尝试打印 ListBox 的内容,但问题是我在视觉中使用的是阿拉伯语

<ListView HorizontalAlignment="Left" Margin="503,73,0,98" Name="listBoxEPayed" Width="410" MouseDoubleClick="listBoxEPayed_MouseDoubleClick">
            <ListView.View>
                <GridView>
                    <GridView.Columns>
                        <GridViewColumn Header="الرقم" Width="50" DisplayMemberBinding="{Binding Path=ReportID}" />
                        <GridViewColumn Header="محرر الفاتوره" Width="100" DisplayMemberBinding="{Binding Path=UserName}" />
                        <GridViewColumn Header="قيمة المبلغ" Width="75" DisplayMemberBinding="{Binding Path=Cashamount}" />
                        <GridViewColumn Header="التاريخ" Width="120" DisplayMemberBinding="{Binding Path=Date}" />
                    </GridView.Columns>
                </GridView>
            </ListView.View>
        </ListView>

//打印的结果是所有字符都被打乱了。请注意,我正在使用 bioPDF 打印机软件测试打印页面的布局。结果似乎在这张照片中在此处输入图像描述

4

1 回答 1

1

选项 1:使用 WPF 表单打印出来。以下代码片段来自 SO question(在一页上打印 WPF 窗口

PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog().GetValueOrDefault(false))
{
    printDialog.PrintVisual(this, this.Title); 
}

问题是,窗户可能不适合一张纸。


选项 2:将您的数据绑定到报告解决方案,如 Chrystal Reports(现在由 SAP 拥有,有一个免费版本)、Active Reports、DevExpress 或其他报告解决方案。一些可用的报告组件非常昂贵,但为了获得高质量的结果,它们物有所值。

于 2012-06-19T20:00:39.643 回答