Example usage for org.jsoup.select Elements append

List of usage examples for org.jsoup.select Elements append

Introduction

In this page you can find the example usage for org.jsoup.select Elements append.

Prototype

public Elements append(String html) 

Source Link

Document

Add the supplied HTML to the end of each matched element's inner HTML.

Usage

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

@Override
@NonNull//from w w  w  .j a  va 2s  .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);
    }
}