0

画像を設定する

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();
}

このコードはリッチテキストボックスにテキストを印刷するだけですが、リッチテキストボックスにテキストと画像を印刷するにはどうすればよいですか?

4

1 に答える 1

0

DocumentToPrint_PrintPagertfをe.Graphicsテキストと画像でレンダリングするための関数を書き換える必要があると思います。今、関数はからのテキストのみをレンダリングしますRichTextBox.Text.

から読み取り、解析して、テキストの場合は( docs ) 、画像の場合は( docsRichTextBox.rtf ) のように描画する必要がありますe.Graphics.DrawStringe.Graphics.DrawImage

于 2012-06-17T12:49:37.753 に答える