设置图片
Image image = Image.FromFile(@"C:\a.jpg");
Clipboard.SetImage(image);
richTextBox1.Paste();文本打印
PrintDialog printDialog = new PrintDialog();
PrintDocument documentToPrint = new PrintDocument();
printDialog.Document = documentToPrint;
if (printDialog.ShowDialog() == DialogResult.OK)
{
StringReader reader = new StringReader(richTextBox1.Text);
documentToPrint.PrintPage += new PrintPageEventHandler(DocumentToPrint_PrintPage);
documentToPrint.Print();
}
private void DocumentToPrint_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
StringReader reader = new StringReader(richTextBox1.Text);
float LinesPerPage = 0;
float YPosition = 0;
int Count = 0;
float LeftMargin = e.MarginBounds.Left;
float TopMargin = e.MarginBounds.Top;
string Line = null;
Font PrintFont = this.richTextBox1.Font;
SolidBrush PrintBrush = new SolidBrush(Color.Black);
LinesPerPage = e.MarginBounds.Height / PrintFont.GetHeight(e.Graphics);
while (Count < LinesPerPage && ((Line = reader.ReadLine()) != null))
{
YPosition = TopMargin + (Count * PrintFont.GetHeight(e.Graphics));
e.Graphics.DrawString(Line, PrintFont, PrintBrush, LeftMargin, YPosition, new StringFormat());
Count++;
}
if (Line != null)
{
e.HasMorePages = true;
}
else
{
e.HasMorePages = false;
}
PrintBrush.Dispose();
}这段代码只打印richtextbox中的文本,但是如何打印richtextbox中的文本和图像呢?
发布于 2012-06-17 20:49:38
我认为,你需要重写函数DocumentToPrint_PrintPage来渲染带有文本和图像的rtf到e.Graphics。现在,该函数仅呈现来自RichTextBox.Text.的文本
您需要读取RichTextBox.rtf,然后像e.Graphics.DrawString一样对其进行解析和绘制(对于文本为docs,对于图像为e.Graphics.DrawImage
https://stackoverflow.com/questions/11070876
复制相似问题