Печать диаграмм
В элементе управления диаграммы для Windows Forms можно распечатать изображение диаграммы.Для этого используется свойство Printing элемента управления диаграммы.Этот объект выводит на печать все составляющие элемента управления диаграммы в текущем представлении данных, кроме полос прокрутки.
Можно открыть диалоговое окно печати или выполнить печать в фоновом режиме.Свойство PrintDocument в объекте Printing позволяет задавать свойства печати, в том числе поля страницы.
Настраиваемая печать
Чтобы распечатать изображение диаграммы в документе, содержащем другие элементы, вызовите метод PrintPaint в пределах объекта PrintPageEventHandler.Методу PrintPaint необходимо передать свойство Graphics из объекта PrintPageEventArgs, а также объект Rectangle, который определяет положение изображения диаграммы в документе.
В следующем коде показана печать документа со строкой текста, затем печатается изображение диаграммы, а затем другая строка текста.
' Create new PrintDocument
Dim pd As New System.Drawing.Printing.PrintDocument()
' Add the event handler, and then print
AddHandler pd.PrintPage, AddressOf pd_PrintPage
' Print the document
pd.Print()
...
Private Sub pd_PrintPage(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
' Create and initialize print font
Dim printFont As New System.Drawing.Font("Arial", 10)
' Create Rectangle structure, used to set the position of the chart
Dim myRec As New System.Drawing.Rectangle(10, 30, 150, 150)
' Draw a line of text, followed by the chart, and then another line of text
ev.Graphics.DrawString("Line before chart", printFont, Brushes.Black, 10, 10)
chart1.Printing.PrintPaint (ev.Graphics, myRec)
ev.Graphics.DrawString("Line after chart", printFont, Brushes.Black, 10, 200)
End Sub
// Create new PrintDocument
System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument();
// Add a PrintPageEventHandler for the document
pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
// Print the document
pd.Print();
...
private void pd_PrintPage(object sender, PrintPageEventArgs ev)
{
// Create and initialize print font
System.Drawing.Font printFont = new System.Drawing.Font("Arial", 10);
// Create Rectangle structure, used to set the position of the chart Rectangle
myRec = new System.Drawing.Rectangle(10, 30, 150, 150);
// Draw a line of text, followed by the chart, and then another line of text
ev.Graphics.DrawString("Line before chart", printFont, Brushes.Black, 10, 10);
chart1.Printing.PrintPaint (ev.Graphics, myRec);
ev.Graphics.DrawString("Line after chart", printFont, Brushes.Black, 10, 200);
}