That is correct. In this case the programmer had wrapped the initialization of the PDFControl in a using statement something like this:
private void OnInitializePrint()
{
using(PdfControl pdfControl = new PdfControl)
{
(m_printDocument.PrintController as PdfPrintController).PdfControl = pdfControl;
// other initilialization
}
}
So effectively the pdfControl still existed because there was a reference held to it by the member variable m_printDocument. But the PdfControl.Dispose() method had been called upon exiting the using statement block. This caused the PdfControl.Reference to be cleared, which then led to the error in PdfControl.NeedGraphic (I think that is the method name)
Thanks Julian.