Skip to content

anggadedysaputro/jasper_nodejs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jasper_nodejs

Generate JasperReports from Node.js using Jasper Server Compiled Binary.

✨ Features

  • Compile .jrxml to .jasper
  • Export report to PDF / HTML / XLS / etc
  • Support parameters
  • Support database connection (Postgresql, Mysql, json comming soon)
  • Works with pure Node.js or frameworks (AdonisJS, Express, etc)

☕ Java Requirement

This package requires Java (JRE or JDK) to be installed.

Supported Versions

  • Java 8

Check Java installation

java -version

🐧 Java Linux Installation (Ubuntu / Debian)

Install Java

sudo apt update
sudo apt -y install openjdk-8-jdk

🪟 Java Windows Installation

Install Java

https://www.java.com/en/download/manual.jsp

📦 Installation

npm install jasper_nodejs

Example Usage:

import ReportService from "jasper_nodejs";

const reportService = new ReportService();

const outputDir = app.makePath("tmp/reports"); // specify the directory where the generated report files will be saved (app.makepath is adonisjs)

const fileName = `${cuid()}`;
const formatType = "pdf";
// output filename
const pdfPath = path.join(outputDir, fileName);

// Ensure the directory exists
if (!fs.existsSync(outputDir)) fs.mkdirSync(outputDir, { recursive: true });

try {
  const outputFile = await reportService
    .export({
      // you may use the .jrxml extension; the .jasper file is generated by compiling the .jrxml template
      reportFile: app.makePath("resources/reports/jadwal.jasper"),
      // If you want to use a custom output filename, do NOT pass the path of the
      // directory you created.
      // Instead, append an additional path segment.
      // The last path segment (which does NOT exist as a directory)
      // will be treated by Jasper as the output filename.
      outputDir: pdfPath,
      // e.g view, print, pdf, rtf,  xls,  xlsMeta, xlsx, docx, odt, ods, pptx,  csv,  csvMeta,  html, xhtml, xml, jrprint
      format: "pdf",
      // Parameters defined here will be forwarded to Jasper reports and can be accessed using $P{idproduct}. if you need jsonb parameter you can use like this
      params: {
        idproduct: 3,
        details: {
          price: 5000,
          expired: "2025-12-31",
        },
      },
      db: {
        // e.g. postgres
        dbname: "your_database_name",
        // e.g. localhost
        host: "your_database_host",
        // e.g postgres, mysql
        driver: "postgres",
        // e.g default PostgreSQL port 5433
        port: "your_database_port",
        // e.g. postgres
        username: "your_database_user",
        // e.g. akd1QDF
        password: "your_database_password",
      },
    })
    .run();

  // The run() method can be replaced with command().
  // If you use command(), it will return the generated CLI command
  // and store it in the outputFile variable instead of executing it.
  // You can then copy and paste the command into the terminal
  // to debug or generate the PDF manually.
} catch (error) {
  console.log(error);
}

jasper_nodejs

About

wrapper jasper report untuk nodejs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors