【问题标题】:C# Printing with Font Styles使用字体样式进行 C# 打印
【发布时间】:2014-08-06 16:41:07
【问题描述】:

我想打印一些这样的文字。

这就是我想要打印文本的方式

我使用的代码是

private void button3_Click(object sender, EventArgs e)
    {
        stringToPrint = "This is how i want to print the text";
        printFont = new Font("Times New Roman", 10);
        pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
        try
        {
            pd.Print();
        }
        catch (Exception e)
        {
        }
    }

void pd_PrintPage(object sender, PrintPageEventArgs ev)
    {
        int charactersOnPage = 0;
        int linesPerPage = 0;

        ev.Graphics.MeasureString(stringToPrint, printFont,
            ev.MarginBounds.Size, StringFormat.GenericTypographic,
            out charactersOnPage, out linesPerPage);

        ev.Graphics.DrawString(stringToPrint, printFont, Brushes.Black,
            ev.MarginBounds, StringFormat.GenericTypographic);

        stringToPrint = stringToPrint.Substring(charactersOnPage);

        ev.HasMorePages = (stringToPrint.Length > 0);

    }

我想将字体从常规更改为粗体,或者为字符串中的某些特定单词添加下划线。

如果有另一种更好的方法来完成这项工作,那么请告诉我我会更改我的代码。 请帮帮我! :)

【问题讨论】:

  • 在打印之前,您是否通过在同一个文件中创建了多个字体样式而取得了成功?
  • 不,如果我这样做了,那就没有问题了!
  • 您是遇到错误,还是只是以相同的字体打印所有问题?
  • 可能是个愚蠢的问题,但既然你已经有了一个表单,为什么不添加一个隐藏的 RichTextControl,添加格式化文本然后打印 RichTextControl 的内容?
  • #菲利普。 RichtextControl 做到了。另一种方法是使用 webBrowser 的 HTML。谢谢。

标签: c# printing


【解决方案1】:

你可以试试:

  printFont  = new Font("Arial", 24,FontStyle.Bold);

唐阮

【讨论】:

  • 这会将他字符串中的所有单词加粗,这不是他想要的。他的问题一点都不简单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-11
  • 1970-01-01
  • 2014-07-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多