PrintHTMLEx

Description (requires ScriptX v7 or later)

This method is an enhanced version of PrintHTML.

Prints either specified HTML text or the HTML document specified by the URL using the current printing settings in the same session context. The method is asynchronous. It returns before the document is downloaded and printed. Notifications are sent to the supplied callback function to give details on progress of processing.

Important note:

The html to be printed must not be 'ScriptX-enabled' - it must not contain an object tag referencing the ScriptX object nor script code that uses that object. Attempting to print html (either specified html text or document specified by url) that contains the ScriptX object can lead to strange errors and failure of the entire printing process, including causing Internet Explorer to stop responding.

PrintHTMLEx should not be used with OwnQueue.

Syntax

printing.PrintHTMLEx(url,prompt,callback,callbackdata)

Parameter Description
url (String) URL/html text to print:
ProtocolPrints
html:// The html is loaded and printed, e.g. html://<html><head><title>Dynamic Printing</title></head><body>Hello world!</body></html>
any other, e.g. http://, https:// or if no protocol specified. The document is downloaded and printed. A relative (to the current page) url may be given.
Note: The target document at 'url' must NOT be 'ScriptX-enabled'.
prompt (Bool) Specifies whether or not the user should be prompted before the download is queued
callback

Specifies the function to call when various events occur during the processing of the queue entry.

Syntax: callback(status,statusData,callbackdata)

StatusDescription
1 The request has been queued.
2 Processing of the request has started.
3 The document is being downloaded. The url is in statusData.
4 Document download has completed. The url of the downloaded document is in statusData.
5 The document is being printed.
6 The request has been completed.
-1 An error has occured, statusData will contain a description.
-2 The entry has been abandoned.
callbackdata Specifies the data to pass to the callback function.

Return Value

Returns false if printing with a prompt and the user cancels the printing.

Applies To

printing

Examples

Check out the source code of the PrintHtml callbacks sample.

The following simple but complete example shows how to print an externally-located document:

<body>

<!-- MeadCo Security Manager - using evaluation license -->
<object viewastext style="display:none"
classid="clsid:5445be81-b796-11d2-b931-002018654e2e"
codebase="smsx.cab#Version=8,3,0,4
">
  <param name="GUID" value="{370000ED-D40C-43D4-B3D3-F2E7D2EFF47D}
">
  <param name="Path" value="sxlic.mlf">
  <param name="Revision" value="0">
</object>

<!-- MeadCo ScriptX -->
<object id="factory" viewastext style="display:none"
classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814">
</object>

<script>
function window.onload() {
  idPrint.disabled = false;
}

function log(s) {
  // use of jquery ...
  $("#logoutput").append(s + "<br />");
}

function jobProgress(status,statusData,myData) {
  switch ( status ) {
    case 1:
      log("Job: " + myData + " has been queued");
      break;

    case 2:
      log("Job: " + myData + " has started");
      break;                    

    case 3:
      log("Job: " + myData + " has started downloading: " + statusData);
      break;   

    case 4:
      log("Job: " + myData + " has downloaded: " + statusData);
      break;   

    case 5:
      log("Job: " + myData + " is printing");
      break;   

    case 6:
      log("Job: " + myData + " has completed");
      break;   

    case -1:
      log("Job: " + myData + " has an error: [" + statusData + "]");
      break;   

    case -2:
      log("Job: " + myData + " is being abandoned");
      break;   

    default:
      log("Job: " + myData + " unknown status: " + status);
      break;                   
  }
}

function PrintHTMLEx(url) {
  factory.printing.PrintHTMLEx(url,false,jobProgress,1);
}
</script>

<input id=idPrint disabled type="button" value="PrintHTMLEx('info.htm')"
 onclick="PrintHTMLEx('info.htm')">

<div>
  <p>Log:</p>
  <div style="width:80%; font-size: 80%" id="logoutput"></div>
</div>
</body>

See Also

PrintHTML, BatchPrintPDFEx