【发布时间】: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。谢谢。