Migration and maintaining investment summary and review
This walk-through illustrates taking a classic document that has a controlled print experience and works only in Internet Explorer and making it work with ScriptX.Services in any browser on any platform using the minimum amount of development effort and making as few changes as possible (though more changes might be desirable).
Previously : Stage 2 - Printing with ScriptX.Services
The final document is:
<html>
<head>
<title>MeadCo's ScriptX</title>
</head>
<body>
<!-- MeadCo Security Manager -->
<object id="secmgr" viewastext style="display:none"
classid="clsid:5445be81-b796-11d2-b931-002018654e2e">
<param name="GUID" value="3cfd70e2-f38f-4ab2-95f4-4ce4c1e39497" />
<param name="PATH" value="https://licenses.meadroid.com/download/{3cfd70e2-f38f-4ab2-95f4-4ce4c1e39497}/mlf" />
<param name="REVISION" value="0" />
<param name="PerUser" value="true">
</object>
<!-- MeadCo ScriptX -->
<object viewastext id="factory" style="display:none"
classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814">
</object>
<div style="font:bold 32pt courier new; text-align: justify; letter-spacing: -1px">
For nearly 20 years MeadCo's ScriptX - now installed on many millions of Windows PCs - has enabled document
authors to script print-time attributes such as margin sizes, orientation, HTML & standard headers and
footers, paper source, target printer, prompt-free printing and much more ... <br><br>
-> -> -></div>
<!-- new UI -->
<div>
<button id="btn-print">Print</button> <button id="btn-preview">Preview</button>
</div>
<!-- jquery for UI/DOM -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3/dist/jquery.min.js"></script>
<!-- Add.on to scriptx.services compatibility -->
<script src="//cdn.jsdelivr.net/npm/scriptxprint-html@1/dist/meadco-scriptxservices.min.js"
data-meadco-license="3cfd70e2-f38f-4ab2-95f4-4ce4c1e39497"
data-meadco-server="http://127.0.0.1:41191"
data-meadco-license-path="warehouse"
data-meadco-license-revision="0"
data-meadco-syncinit="true"
>
</script>
<!-- leave current script as is, it will work .. to minimise effort -->
<script>
function initView() {
// WARNING: use of .enhancedFormatting requires a license with Enhanced Formatting enabled.
factory.printing.enhancedFormatting.allPagesHeader =
"<div><center><img src='http://services.meadroid.com/images/sx-header.png'></center></div>";
factory.printing.enhancedFormatting.allPagesFooter =
"<div><center><img src='http://services.meadroid.com/images/sx-footer-final.png'></center></div>";
// Remove the above two lines if testing with a license without Enhanced Formatting enabled.
factory.printing.SetMarginMeasure(2) // set inches
factory.printing.header = ""
factory.printing.footer = ""
factory.printing.leftMargin = 1.0
factory.printing.topMargin = 1.5
factory.printing.rightMargin = 1.0
factory.printing.bottomMargin = 1.5
}
</script>
<!-- new UI script -->
<script type="text/javascript">
$(window).on("load",function() {
initView();
$("#btn-print").click(function() {
factory.printing.Print();
});
$("#btn-preview").click(function() {
factory.printing.Preview();
});
});
</script>
</body>
</html>
If the additions made to provide an on document UI are excluded, a few lines of code have been added to achieve use from anywhere:
<!-- Add.on to scriptx.services compatibility -->
<script src="//cdn.jsdelivr.net/npm/scriptxprint-html@1/dist/meadco-scriptxservices.min.js"
data-meadco-license="3cfd70e2-f38f-4ab2-95f4-4ce4c1e39497"
data-meadco-server="http://127.0.0.1:41191"
data-meadco-license-path="warehouse"
data-meadco-license-revision="0"
data-meadco-syncinit="true"
>
</script>
And it is arguable that is one line made readable by using several lines.
However, as with the document we started with, there is no error checking, no ensuring that the license is available. The code runs synchronously which is now deprecated and there is no prompt when printing.
Improving the code and starting to deal with these issues will be the subject of the next article.