This example illustrates how to load the MRT report template from the server side and send it to the client. First of all, you should add Stimulsoft modules and other required modules to the project. This can be done using the require() standard function:
var http = require("http");
var fs = require('fs');

// Stimulsoft Reports module
var Stimulsoft = require("stimulsoft-reports-js");

For the correct rendering of reports and accurate calculation of the sizes of all elements, you should load the fonts you are going to use. In this example, the Roboto-Black font is used, load it using a special addOpentypeFontFile() static method. The font will be loaded and added to the internal font collection:
// Loading fonts
Stimulsoft.Base.StiFontCollection.addOpentypeFontFile("report/Roboto-Black.ttf");

Next, you should define the accept() function that will process requests to the server and output the desired result at a specific URL address - an HTML page, script and style files, a rendered report:
function accept(req, res) {
    //Send index.html
    if (req.url == "/") {
        res.writeHeader(200, { "Content-Type": "text/html" });
        res.end(fs.readFileSync("index.html"));
    }
    //Send style.css
    else if (req.url == "/stimulsoft.viewer.office2013.whiteblue.css") {
        res.writeHeader(200, { "Content-Type": "text/css" });
        res.end(fs.readFileSync("node_modules/stimulsoft-reports-js/Css/stimulsoft.viewer.office2013.whiteblue.css"));
    }
    //Send reports.js
    else if (req.url == "/stimulsoft.reports.js") {
        res.writeHeader(200, { "Content-Type": "text/javascript" });
        res.end(fs.readFileSync("node_modules/stimulsoft-reports-js/Scripts/stimulsoft.reports.js"));
    }
    //Send viewer.js
    else if (req.url == "/stimulsoft.viewer.js") {
        res.writeHeader(200, { "Content-Type": "text/javascript" });
        res.end(fs.readFileSync("node_modules/stimulsoft-reports-js/Scripts/stimulsoft.viewer.js"));
    }
    //Send report
    else if (req.url == "/getReport") {
        // Creating new report
        var report = new Stimulsoft.Report.StiReport();
        // Loading report template
        report.loadFile("SimpleList.mrt");
        // Renreding report
        report.renderAsync(function () {
            // Saving rendered report to JSON string
            var reportJson = report.saveDocumentToJsonString();

            //Send report
            res.end(reportJson);
        });
    }
}

All is ready, start the server and specify the required port, in this case, 8888:
console.log("Static file server running at http://localhost:" + 8888 + "/\nCTRL + C to shutdown");
//The HTTP server run on port 8888
http.createServer(accept).listen(8888);

In the screenshot below you can see the result of the sample code:

Loading a Report from the Server-Side

By using this website, you agree to the use of cookies for analytics and personalized content. Cookies store useful information on your computer to help us improve efficiency and usability. For more information, please read the privacy policy and cookie policy.