Page 1 of 1

Dynamic Pdf Download

Posted: Thu Jan 04, 2018 12:05 pm
by sivaguru
I am trying to achieve Pdf download with database connectivity using Java script.Currently pdf has downloaded shows template only,data not rendering. Kindly help us to solve this problem asap.
I used this sample code

Code: Select all

<script>
  var report = new Stimulsoft.Report.StiReport();
      // Load report from url
      report.loadFile("http://atandra/sample_report.mrt");
      // Render report
      report.render();
     var settings = new Stimulsoft.Report.Export.StiPdfExportSettings();
    // Create an PDF service instance.
    var service = new Stimulsoft.Report.Export.StiPdfExportService();
 
    // Create a MemoryStream object.
    var stream = new Stimulsoft.System.IO.MemoryStream();
    // Export PDF using MemoryStream.
    service.exportTo(report, stream, settings);
 
    // Get PDF data from MemoryStream object
    var data = stream.toArray();
    // Get report file name
    var fileName = String.isNullOrEmpty(report.reportAlias) ? report.reportName : report.reportAlias;
    // Save data to file
    Object.saveAs(data, fileName + ".pdf", "application/pdf");
     </script>

Re: Dynamic Pdf Download

Posted: Fri Jan 05, 2018 10:25 am
by HighAley
Hello.

You should use the async methods.
Please, look at this code:

Code: Select all

var pdfSettings = new Stimulsoft.Report.Export.StiPdfExportSettings();
var pdfService = new Stimulsoft.Report.Export.StiPdfExportService();
var stream = new Stimulsoft.System.IO.MemoryStream();
report.renderAsync(function () {
    pdfService.exportToAsync(function () {
        var data = stream.toArray();
        var blob = new Blob([new Uint8Array(data)], { type: "application/pdf" });
        if (window.navigator && window.navigator.msSaveOrOpenBlob) {
            var fileName = (report.reportAlias == null || report.reportAlias.trim().length == 0) ? report.reportName : report.reportAlias;
            window.navigator.msSaveOrOpenBlob(blob, fileName + ".pdf");
        }
        else {
            var fileUrl = URL.createObjectURL(blob);
            window.open(fileUrl);
        }
    }, report, stream, pdfSettings);
}, false);
Thank you.