npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

wkhtmltopdf-nodejs-ws-server

v1.0.2

Published

A websocket server that handles pdf generation from html using wkhtmltopdf.

Downloads

6

Readme

wkhtmltopdf-nodejs-server

A websocket server that handles pdf generation from html using wkhtmltopdf.

It accepts following requests:

  • create for pdf generation: requires options object that can be created using CreateRequest.toObject method, where CreateRequest is a class from wkhtmltopdf-nodejs-entity package. After request is processed server can respond:
    • pdf:create:success with object: {message: String, handle: Integer, debug: String[]: Optional}, where
      • message is "Ok" string.
      • handle is a unique id that can be used to access pdf file at http://server.address/result_{handle}.pdf.
      • debug is an output from wkhtmltopdf. This property exists only if request object from websocket client contains debug property that is true.
    • pdf:create:fail with object: {message: String, handle: Integer, debug: String[]: Optional}, where
      • message contains error message with explanation of why pdf has not been created.
      • handle and debug are the same fields as for pdf:create:success response.
  • delete for removing generated pdf from server: requires handle input argument from pdf:create:success response. After this request server will respond:
    • pdf:delete:success without parameters if pdf removed successfully.
    • pdf:delete:fail with error message that describes why file cannot be removed from server.

Requirements

To run server you need:

  • wkhtmltopdf with it's dependencies
  • nodejs

If you are going to use wkhtmltopdf-nodejs-ws-server on a machine with operating system without graphical environment, then you will need to install display server, for example - xvfb, for wkhtmltopdf.

For your convenience vagrant box with all necessary software has been created. It can be downloaded from https://github.com/GrizliK1988/wkhtmltopdf-nodejs-vagrant

Installation

Run npm install wkhtmltopdf-nodejs-ws-server command.

Usage

Server can be created and started like follows:

var WsServer = require('wkhtmltopdf-nodejs-ws-server');

var server = new WsServer(3000); // <- server will listen requests on *:3000

// or

var server = new WsServer(3000, 'xvfb-run', ['-a', '-s "-screen 0 640x480x16"']); // <- if you are running this script on server machine without graphical environment.

//The 2nd argument is a name and the 3rd is a list of arguments that will be provided to display server

server.start();

Example of websocket client is located here: ...

Running tests

To run unit tests you can use npm test command.