Socket
Book a DemoInstallSign in
Socket

node-ebook-converter

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-ebook-converter

Node.js minimal and powerful ebook converter (single package) with built-in queue and threading functionalities

1.0.11
latest
Source
npmnpm
Version published
Weekly downloads
250
76.06%
Maintainers
1
Weekly downloads
 
Created
Source

Node E-Book Converter

Node.js minimal and powerful ebook converter (single package) with built in queue and threading functionalities. With a few steps, you can convert ebooks and other documents to any format wanted. You can also define custom properties defined at Calibre Documentation. Atention: This library is not responsable for the convertion algorithm, only the wrapper, queue system, threading and pooling.

How to use it?

First, you need to install Calibre official conversion package, as this library work as a full-featured wrapper for it. To install it, access Calibre Website. (There are CLI and GUI versions).

Second, install the package through NPM (Node Package Manager) as it follows:

npm i node-ebook-converter

If you use yarn as your package manager:

yarn add node-ebook-converter

After installing the library, you must import it inside your .js (JavaScript) file and start converting ebooks:

const ebookConverter =  require('node-ebook-converter');

/* Adds the convertion to the Execution Queue */
ebookConverter.convert({
  input: "./input/bear.pdf",
  output: "./output/bear.epub",
  authors: "Probably a bear..."
}).then(response => console.log(response))
  .catch(error => console.error(error));

This example takes a pdf at "./input/bear.pdf" and converts it to an epub (specified in the output extension) at "./output/bear.epub". To specifiy the output extension, you just need to specify the extension in the output attribute of the conversion object.

Convestion Parameters

You can specify parameters before starting your conversion. The list can be found in the following table:

AttributeOptionalTypeDescription
inputfalsestringDefines the input file to be converted (any extension)
outputfalsestringDefines where to save the converted file to the specified extension (should contain the extension to convert in it)
deletetruebooleanDeletes the input file when the conversion is done
silenttruebooleanIn this mode, library does not print messages

Those are only the parameters created to this package. node-ebook-converter supports all native flags. You can find all of them in the following link: https://manual.calibre-ebook.com/generated/en/ebook-convert.html

Methods

Currently, there are two methods in this package:

Convert

Starts the conversion. Can be used through the following structure:

ebookConverter.convert({
  input: "./input/bear.pdf", // Input file
  output: "./output/bear.epub", // Output file + Extension to convert
  delete: false // Does not delete input after converting
}).then(response => console.log(response))
  .catch(error => console.error(error));

setPoolSize

Changes the thread pool size, allowing the execution of n thread simultaneously. Can be used through the following structure:

ebookConverter.setPoolSize(2); // Allows 2 conversions to run simultaneously.

If more ebooks are added than the thread pool size, it will be stored in the Idle Queue to be processed later.

Queue

This package comes with a built-in library system, allowing the user to add infinitely many conversions and limit the number of those that can occur concurrently. The size of the Execution Queue (Thread Pool Size) is defined through the setPoolSize described above. If more conversions are called than the allowed by the Thread Pool Size, it will be stored in the Idle Queue to be processed later. This is an event-based and lightweight implementation of the queue process.

Contributing

This package is built under the MIT license. For the long-term support, you can contribute to this project by openning issues in the "Issue" tab in the GitHub platform, submit Pull Requests, and give tips on building this package. If you want me to keep doing this kind of job, help me by buying me a coffee!

Buy Me A Coffee

Keywords

Convert PDF

FAQs

Package last updated on 18 Jan 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.