September 7, 2001 - Verifying that the Pages are Print-Ready | WebReference

September 7, 2001 - Verifying that the Pages are Print-Ready

Yehuda Shiran September 7, 2001
Verifying that the Pages are Print-Ready
Tips: September 2001

Yehuda Shiran, Ph.D.
Doc JavaScript

Before sending the document to printing, you need to make sure the pages are ready for printing. You can sample one of the pages by checking its readyState:

if (layoutrect1.contentDocument.readyState == "complete") 
When the page is not ready, you need to install a new event handler that will fire off when the page is ready:

 layoutrect1.contentDocument.onreadystatechange = PrintWhenContentDocComplete;
Microsoft print template loader uses the PrintPrep() function for checking that the pages are ready for printing:

function PrintPrep() {
  if (layoutrect1.contentDocument.readyState == "complete") {
    PrintNow();
  }
  else {
    layoutrect1.contentDocument.onreadystatechange = PrintWhenContentDocComplete;
  }
}
The function PrintWhenContentDocComplete() checks again the readyState of page1, and only then calls PrintNow(). We also need to set the readyState property to null, to make sure the onreadystatechange won't fire off again and again. Here is the whole PrintWhenContentDocComplete() function:

function PrintWhenContentDocComplete() {
  if (layoutrect1.contentDocument.readyState == "complete")	{
    layoutrect1.contentDocument.onreadystatechange = null;
    PrintNow();
  }
}
To learn more about print templates, read Column 89 (Print Templates, Part I) and Column 91 (Print Templates, Part II: TemplatePrinter.) Download Microsoft print template loader.