ScriptX logotype
  • Getting started
  • Documentation
  • Samples
  • Pricing
Free Trial Downloads
  • Home
  • Getting started
  • Documentation
  • Samples
  • Pricing
developers ›  Knowledge Bank ›  Technical Reference ›  ScriptX.Add-on ›  printing ›  PrintHTML

PrintHTML

Description

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.

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 a 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.

PrintHTML may be used to organize a printing queue in a separate process, in which case the current window may be closed without waiting for pending downloads to complete. See OwnQueue for more details.

Syntax

printing.PrintHTML(url[, prompt = false])

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

Parameter Description
url (String) URL/HTML text to print:
Protocol Prints
html://... html to print ...

The HTML is loaded and printed, e.g. html://<html><head><title>Dynamic Printing</title></head><body>Hello world!</body></html>

Print behaviour is as with ScriptX 7 and earlier unless the content starts with <!DOCTYPE html> in which case modern standards will be enabled. The mode can be forced using html5:// or html4:// - see below.

html5://... html to print ... The HTML is loaded and printed with modern standards enabled.
html4://... html to print ... The HTML is loaded and printed with modern standards disabled, behaviour is as with ScriptX 7 and earlier.
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’.
url4://[http|https]:// The document url is taken as the value following the literal value "url4://" and is downloaded and printed with modern standards disabled, behaviour is as with ScriptX 7 and earlier. A relative (to the current page) URL may not be given.
Note: The target document must NOT be ‘ScriptX-enabled’.
prompt [Optional] (Bool) Specifies whether or not the user should be prompted before the download is queued
Support for "Modern" standards (aka Edge where "Edge" is the IE 11 definition).

Version 8.2 introduces the following:

  • When printing a downloaded document if the host document is in IE 11 edge mode then printHtml() will be enabled to print modern content. If the document does not print properly then change the host document to use an older document mode and printHtml() will then use the pre ScriptX 8 way of working, alternatively:

    • The use of pre ScriptX 8 behaviour can be forced using the url4:// pseudo protocol.

  • When printing dynamic content using the html:// pseudo protocol then the pre ScriptX way of working will be used unless the dynamic content starts with <!DOCTYPE html>, or:

    • The support of modern standards can be forced using the html5:// pseudo protocol.
    • The use of pre ScriptX 8 behaviour can be forced using the html4:// pseudo protocol.

Please note that all jobs in a queue will use the same mode of working. The mode can be changed if the queue is empty. The PrintHtmlEx callback on a job being queued will report the mode of the queue.

Examples

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="{8f351de0-5990-45c3-8fd2-8037b878939f}">
    <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 defer>
    function window.onload() {
        idPrint.disabled = false;
    }

    function PrintHTML(url) {
        factory.printing.PrintHTML(url);
    }
    </script>

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

    </body>


The following example illustrates dynamic creation of the HTML to be printed:


    <!-- 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="{8f351de0-5990-45c3-8fd2-8037b878939f}">
        <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 doPrintDemo() {
        var n;
        var str = "<html><head>";
        str += "<link rel='stylesheet' type='text/css' href='/zeepe/resources/zp_content.css' />";
        str += "<title>ScriptX Dynamic Reports</title></head><body>";

        for (n = 0; n < 10; n++) {
            str += "<p>Dynamically created line number: " + (n + 1) + "</p>";
        }

        str += "<hr /><p>Note that style sheets, scripts, images etc must be referenced by their full url</p>");
        str += "</body></html>";

        factory.printing.header = "ScriptX Dynamic Printing";
        factory.printing.footer = "";
        factory.printing.printHTML("html://" + str);
    }
    </script>

Also check out a ScriptX print HTML sample.

  • Knowledge Bank
  • 'How To' Guides
    • ScriptX.Services
      • Introduction
      • Getting started
      • Evaluate with modern code
      • Maintaining investment in current code
        • Stage 1: Adding UI
        • Stage 2: Printing with ScriptX.Services
        • Stage 3: Summary and review
        • Stage 4: Error reporting
        • Stage 5: Prompted printing
        • Stage 6: Preparing for advanced uses
        • Stage 7: WaitForSpoolingComplete
        • Stage 8: Recommendations for some common issues
      • Printing with the API
      • MeadCoScriptXJS Library
      • Installing ScriptX.Services
        • For Windows PC
        • For On Premise Devices hosted on Windows Server
        • For On Premise Devices hosted on Windows 10/11
        • Configure options For On Premise Devices
        • Cloud
      • Orchestrator
      • Debugging
      • License deployment
        • For Windows PC
        • For On Premise Devices
      • Samples
        • Configure for Windows PC
        • Configure for On Premise
        • Configure for Cloud
    • Security Manager
      • Deploying a license or revision
    • ScriptX.Add-on
      • Introduction
      • Installing ScriptX on client PCs
      • Basic printing with ScriptX
      • Advanced printing features
      • Backwards compatibility
      • How to check if ScriptX is installed
      • License deployment
      • Quick start with Visual Studio
        • ASP.NET MVC
        • ASP.NET Web Forms
      • Nuget Packages
        • MeadCoScriptXJS Library
        • Installer helpers
        • ASP.NET WebForms Controls
        • Helpers for ASP.NET MVC
      • Client-side printing samples
  • Technical Reference
    • ScriptX.Services
      • Web service API
        • Service Description
          • (GET)
        • Licensing
          • licensing (GET)
          • licensing (POST)
          • licensing/ping (GET)
        • Printer
          • settings (GET)
          • current (GET)
          • current (PUT)
          • connection (PUT)
          • connection (DELETE)
        • PrintHtml
          • settings (GET)
          • deviceinfo (GET)
          • htmlPrintDefaults (GET)
          • print (POST)
          • status (GET)
          • download (GET)
          • canceljob (PUT)
        • PrintPdf
          • print (POST)
          • status (GET)
          • download (GET)
        • PrintDirect
          • print (POST)
      • Orchestrator API
        • v1
          • GET
        • v2
          • PUT
          • GET
      • ScriptX.Services compatibility roadmap
    • Security Manager
      • How it works
      • License Expiry
      • Testing for a valid license
      • About the license file (.mlf)
        • LICENSE
        • APPLICENSE
        • TITLE
        • DOMAINS
        • DOMAIN
        • PERMISSION
      • API
        • Apply
        • License
        • result
        • validLicense
    • ScriptX.Add-on
      • factory
        • baseUrl
        • ComponentVersionString
        • IsUniqueIDAvailable
        • OnDocumentComplete
        • relativeUrl
        • ResetUniqueID
        • ScriptXVersion
        • SecurityManagerVersion
        • Shutdown
        • UniqueID
      • printing
        • AddPrinterConnection
        • BatchPrintPDF
        • BatchPrintPDFEx
        • bottomMargin
        • collate
        • copies
        • currentPrinter
        • DefaultPrinter
        • disableUI
        • duplex
        • duplex2
        • EnumJobs
        • EnumPrinters
        • footer
        • GetJobsCount
        • GetMarginMeasure
        • header
        • headerFooterFont
        • IsSpooling
        • IsTemplateSupported
        • leftMargin
        • onafterprint
        • onbeforeprint
        • onbeforeunload
        • onpagesetup
        • onuserpagesetup
        • onuserprint
        • onuserprintpreview
        • orientation
        • OwnQueue
        • pageHeight
        • PageSetup
        • pageWidth
        • paperSize
        • paperSource
        • paperSource2
        • portrait
        • Preview
        • Print
        • printBackground
        • printer
        • PrintHTML
        • PrintHTMLEx
        • PrintPDF
        • PrintSetup
        • printToFileName
        • RemovePrinterConnection
        • rightMargin
        • SetMarginMeasure
        • SetPageRange
        • SetPreviewZoom
        • SetPrintScale
        • Sleep
        • templateURL
        • topMargin
        • TotalPrintPages
        • unprintableBottom
        • unprintableLeft
        • unprintableRight
        • unprintableTop
        • WaitForSpoolingComplete
      • printerControl
        • attributes
        • Bins
        • Forms
        • isLocal
        • isNetwork
        • isShared
        • Jobs
        • location
        • name
        • Pause
        • port
        • Purge
        • Resume
        • serverName
        • shareName
        • status
      • Job
        • Delete
        • Pause
        • Restart
        • Resume
      • enhancedFormatting
        • allFooterHeight
        • allHeaderHeight
        • allPagesFooter
        • allPagesHeader
        • extraFirstFooterHeight
        • extraFirstPageFooter
        • firstFooterHeight
        • firstHeaderHeight
        • firstPageFooter
        • firstPageHeader
        • pageRange
        • printingPass
      • rawPrinting
        • printer
        • printDocument
        • printString
    • Change and history logs
    • Articles
      • v1.15.x ScriptX Client Library
      • Dialogs with ScriptX.Services
      • Accessing protected content
      • Long term servicing (LTS)
 
ScriptX logotype
Home Getting started Documentation Samples Contact us

© 2025 Mead & Co Limited.

Follow us:
LinkedIn   GitHub
X

Warning:

This ScriptX.Add-on sample can only be viewed using Internet Explorer.