Example usage for org.jsoup.nodes DataNode toString

List of usage examples for org.jsoup.nodes DataNode toString

Introduction

In this page you can find the example usage for org.jsoup.nodes DataNode toString.

Prototype

@Override
    public String toString() 

Source Link

Usage

From source file:com.jaspersoft.android.jaspermobile.data.repository.report.page.HtmlPageCreator.java

@Override
@NonNull//from w ww  .  j  a v a 2 s  .c o m
public ReportPage create() throws Exception {
    String range = pageRequest.getRange();
    PageRange pageRange = PageRange.parse(range);

    ReportExportOptions options = ReportExportOptions.builder()
            .withFormat(ReportFormat.valueOf(pageRequest.getFormat())).withPageRange(pageRange).build();

    ReportExport export = execution.export(options);
    ReportExportOutput output = export.download();

    InputStream reportExport = output.getStream();
    InputStream customScript = context.getAssets().open("rest-report.js");

    try {
        Reader reader = new InputStreamReader(customScript);
        Template template = Mustache.compiler().compile(reader);

        int pageIndex = Integer.valueOf(range) - 1;
        Map<String, Object> data = new HashMap<>();
        data.put("jasperPrintName", execution.getExecutionId());
        data.put("pageIndex", pageIndex);
        data.put("isPro", server.isProEdition());
        String customJs = template.execute(data);

        DataNode indexHeadScript = DataNode.createFromEncoded("<script>" + customJs + "</script>", "");

        Document document = Jsoup.parse(reportExport, Charset.defaultCharset().name(), "");
        Elements head = document.getElementsByTag("head");
        head.append(indexHeadScript.toString());

        byte[] exportContent = document.toString().getBytes(Charset.forName("UTF-8"));
        return new ReportPage(exportContent, output.isFinal());
    } finally {
        IOUtils.closeQuietly(reportExport);
        IOUtils.closeQuietly(customScript);
    }
}