1.0.6 • Published 8 months ago

pdf-worker-processor v1.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

pdf-worker-processor

A PDF generator that uses Web Workers to handle the PDF generation process efficiently without blocking the main thread. This package is designed to export large datasets or complex document structures in PDF format while keeping your application's UI responsive.

Key Features

  • Web Worker-powered PDF Generation: Offload the intensive task of PDF creation to a web worker, ensuring that the UI remains smooth and responsive, even for large data exports.
  • Template-based PDF Design: Create structured and customizable PDFs using templates. The TemplateDesign class allows you to define headers, footers, and other sections with ease.
  • Transaction Report Support: Predefined transaction PDF templates, complete with headers, data rows, and footers, making it easy to generate financial or transactional reports.
  • Data Chunking for Efficiency: Large datasets are automatically chunked into manageable sizes using the chunkArray utility, allowing for smooth PDF generation, even with huge amounts of data.
  • Progress Tracking: Real-time progress updates via Web Workers to keep users informed about the export status, ideal for long-running tasks.
  • PDF Customization: Integrate advanced customization using jspdf and jspdf-autotable, offering complete control over PDF structure and content.
  • Error Handling: Built-in error handling and worker termination support to manage errors gracefully and free resources when the task is done.

Installation

Install the package using npm:

npm install pdfworker-generator

Usage

Here’s a basic example of how to use PDFWorker-Generator to generate a PDF report:

Basic Example

Advanced Example with PDF Customization

You can customize your PDF by designing templates using the TemplateDesign class:

API Reference

Classes

PDFWorker

  • constructor(updateProgress, onComplete, onError, baseUrl) : Initializes a web worker for PDF generation.
  • updateProgress: Function called with progress updates (percentage).
  • onComplete: Function called when PDF generation is complete.
  • onError: Function called when an error occurs.
  • baseUrl: URL for worker setup.
  • processData(data) : Processes the provided data and starts PDF generation.
  • data: The transactional data to be exported to PDF, structured as TransactionPDFReportType.
  • terminate() : Terminates the worker once the task is completed or cancelled.

PDFGenerator

  • static generate(data, existingDoc?) : Generates a PDF document based on the provided data.
  • data: The report data to be included in the PDF (TransactionPDFReportType).
  • existingDoc: Optionally provide an existing jsPDF instance to append content.

Interfaces

TransactionPDFReportType

  • header: Array of strings representing the header section of the report.
  • data: 2D array where each sub-array represents a row of data in the report.
  • footer: Array of strings representing the footer section of the report.

WorkerMessage

  • status: Current status of the worker (processing or completed).
  • progress: Optional progress percentage.
  • blobURL: Optional URL of the generated PDF blob.

Utilities

chunkArray(arr, chunkSize)

  • Splits an array into smaller arrays (chunks) of a specified size.
    • arr: The array to split.
    • chunkSize: The size of each chunk.

Dependencies

  • jsPDF: A library to generate PDFs in JavaScript.
  • jspdf-autotable: Plugin for jsPDF to generate tables in PDFs.
1.0.6

8 months ago

1.0.5

8 months ago

1.0.4

8 months ago

1.0.3

8 months ago

1.0.2

8 months ago

1.0.1

8 months ago