You can position the chart starting position using the HScrollBar1 property. So basically you advance the scrollbar by the number of records you display per page. You can use code similar to that below.
' This routine prints a chart by invoking the chart objects DocPrintPage method
Public Sub PrintPage(ByVal charview As ChartView, ByVal sender As Object, ByVal e As System.EventArgs)
If Not (charview Is Nothing) Then
If printobj Is Nothing Then
printobj = New ChartPrint(charview)
printobj.DoPrintDialog()
Else
printobj.PrintChartView = charview
End If
' SO INSTEAD OF CALLING the FOLLOWING LINE
' printobj.DocPrintPage(sender, e)
' USE THE HScrollBar1.Value PROPERTY TO ADVANCE THE CHART A PAGE AT A TIME
Dim i As Integer
Dim spcchart As SPCChartBase = charview
For i = 0 To spcchart.ChartData.CurrentNumberRecords - 1 Step spcchart.ChartData.NumRecordsPerChart
spcchart.HScrollBar1.Value = i
spcchart.RebuildChartUsingCurrentData()
printobj.DocPrintPage(sender, e)
Next
End If
End Sub 'PrintPage
Similar code for C#
public void PrintPage(ChartView charview, object sender, System.EventArgs e)
{
if (charview != null)
{
if (printobj == null)
{
printobj = new ChartPrint(charview);
printobj.DoPrintDialog();
}
else
printobj.PrintChartView = charview;
SPCChartBase spc = (SPCChartBase)charview;
for (int i = 0; i < spc.ChartData.CurrentNumberRecords; i += spc.ChartData.NumRecordsPerChart)
{
spc.HScrollBar1.Value = i;
spc.RebuildChartUsingCurrentData();
printobj.DocPrintPage(sender, e);
}
}
}