如何打印到下一页溢出的字符串?

时间:2018-05-11 20:17:43

标签: c# database visual-studio printing

我正在尝试打印一个长列表,首先我测量了字符串,通过它,我防止从页面的左侧溢出但是,我不能在页面的末尾做那件事。它没有通过下一页。我该怎么做 ?代码:

    private void button27_Click(object sender, EventArgs e)
    {
        listele();
        printDialog1.Document = printDocument1;
        if (printDialog1.ShowDialog() == DialogResult.OK)
        {
            printDocument1.Print();
        }
    }

    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {

        Font printFont = new Font("Arial", 10);
        Graphics gf = e.Graphics;
        SizeF sf = gf.MeasureString(textBox1.Text,printFont, 320);
        gf.DrawString(textBox1.Text, printFont, Brushes.Black,new RectangleF(new Point(60, 60), sf),StringFormat.GenericTypographic);

    }

我添加了截图以便更好地理解。谢谢SS1

1 个答案:

答案 0 :(得分:0)

使用Graphics简单地打印文本不是您的最佳选择。如你所知,你需要处理很多事情。为您的工作选择一个更好的工具。您可以使用大量第三方工具,但如果您更喜欢使用内置工具,请尝试使用RLDC报告。

在工具箱中,在表单上放置ReportReportViewer并隐藏它们。或者,您可以在代码中创建它们,而不是将它们添加到UI中。

接下来,浏览TextBox中的行(或更好地说明这些行的来源),然后在DataTable中输入一行。然后将DataTable分配给DataSource的{​​{1}}属性。如果您Report中的行的来源是TextBox对象,例如IEnumerable,则您不需要上述步骤,您可以直接将其分配给List<>属性DataSource

最后,渲染Report中的Report并打印出来。

这是Walkthrough: Printing a Local Report without Preview