Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

slimerjs-capture

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

slimerjs-capture

Uses SlimerJS (headless Gecko/Firefox) to render an SVG or HTML buffer

  • 1.2.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

slimerjs-capture

A thin wrapper around SlimerJS (headless Firefox/Gecko) that exposes an API to a Node.js application for rendering a web page as a png file. Requires Node.js v0.12+.

Installation

$ npm install --save slimerjs-capture

Usage

const capturePng = require("slimerjs-capture").capturePng;

// ...
var buffer = fs.readFileSync("foo.html");
capturePng(buffer, "html", 640, 480, (err, result) => {
	if (err) return console.error(err);
	fs.writeFileSync("foo.png", result);
});

API

capturePng(buffer, extension, width, height, callback)

  • buffer => A Node.js Buffer containing the contents of the page to render
  • extension => The file extension, like "html" or "svg"
  • width, height => The width and height of the area to render, in pixels from the top left corner
  • callback => Called with a possible error and the output PNG as a Node.js Buffer

capturePngPages(buffer, extension, width, height, numPages, callback)

  • buffer => A Node.js Buffer containing the contents of the page to render
  • extension => The file extension, like "html" or "svg"
  • width, height => The width and height of the area to render, in pixels from the top left corner
  • numPages => The number of pages to capture. Pages are rectangular, nonoverlapping regions captured starting from the top of the page. For example, if height is 200, the first page will be from y=0 to y=200, and the second page will be from y=200 to y=400.
  • callback => Called with a possible error and the output PNG as an array of Node.js Buffers, one per page.

Using on Windows

This module has been tested to work on Windows 10. It should in principle work on any version of Windows supported by SlimerJS.

Note: If using on Windows, I have seen issues where running multiple jobs in parallel causes issues with file permissions. It is therefore recommended that you run only one slimerjs-capture job at a time.

Contributing and Future Work

PRs are welcome. This module intentionally does not have any fancy build systems or anything. It is intended to be run in Node without any preprocessing. Use ES5 syntax and follow the code style in the files you are editing (tab indentation and soft wraps). Run npm test and add new test cases for the feature you are contributing.

It would be easy to make this module support JPG or PDF output. See SlimerJS webpage doc page. I just didn't have the personal need when I made this module to support other output types. A PR is welcome.

FAQs

Package last updated on 05 Apr 2017

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

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc