Catalog npm
Back to packageRELEASE DETAILS

1.4.2

npm

@0x170818/html2canvas

Screenshots with JavaScript

Published10 May 2024
Direct dependencies74
Transitive dependenciesNot calculated

README

Current package documentation

html2canvas

Homepage | Downloads | Questions

Gitter CI NPM Downloads NPM Version

JavaScript HTML renderer

The script allows you to take "screenshots" of webpages or parts of it, directly on the users browser. The screenshot is based on the DOM and as such may not be 100% accurate to the real representation as it does not make an actual screenshot, but builds the screenshot based on the information available on the page.

How does it work?

The script renders the current page as a canvas image, by reading the DOM and the different styles applied to the elements.

It does not require any rendering from the server, as the whole image is created on the client's browser. However, as it is heavily dependent on the browser, this library is not suitable to be used in nodejs. It doesn't magically circumvent any browser content policy restrictions either, so rendering cross-origin content will require a proxy to get the content to the same origin.

The script is still in a very experimental state, so I don't recommend using it in a production environment nor start building applications with it yet, as there will be still major changes made.

Browser compatibility

The library should work fine on the following browsers (with Promise polyfill):

  • Firefox 3.5+
  • Google Chrome
  • Opera 12+
  • IE9+
  • Safari 6+

As each CSS property needs to be manually built to be supported, there are a number of properties that are not yet supported.

Usage

The html2canvas library utilizes Promises and expects them to be available in the global context. If you wish to support older browsers that do not natively support Promises, please include a polyfill such as es6-promise before including html2canvas.

To render an element with html2canvas, simply call: html2canvas(element[, options]);

The function returns a Promise containing the <canvas> element. Simply add a promise fulfillment handler to the promise using then:

html2canvas(document.body).then(function(canvas) {
    document.body.appendChild(canvas);
});

Building

You can download ready builds here.

Clone git repository:

$ git clone git://github.com/niklasvh/html2canvas.git

Install dependencies:

$ npm install

Build browser bundle

$ npm run build

Examples

For more information and examples, please visit the homepage or try the test console.

Contributing

If you wish to contribute to the project, please send the pull requests to the develop branch. Before submitting any changes, try and test that the changes work with all the support browsers. If some CSS property isn't supported or is incomplete, please create appropriate tests for it as well before submitting any code changes.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 74

Native requirements
74 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
css-line-break
Environment
{
  "local_name": "css-line-break",
  "alias": false,
  "peer_metadata": null
}
^2.1.0runtime
text-segmentation
Environment
{
  "local_name": "text-segmentation",
  "alias": false,
  "peer_metadata": null
}
^1.0.3runtime
@babel/cli
Environment
{
  "local_name": "@babel/cli",
  "alias": false,
  "peer_metadata": null
}
^7.4.3development
@babel/core
Environment
{
  "local_name": "@babel/core",
  "alias": false,
  "peer_metadata": null
}
^7.4.3development
@babel/preset-env
Environment
{
  "local_name": "@babel/preset-env",
  "alias": false,
  "peer_metadata": null
}
^7.4.3development
@babel/preset-flow
Environment
{
  "local_name": "@babel/preset-flow",
  "alias": false,
  "peer_metadata": null
}
^7.0.0development
@rollup/plugin-commonjs
Environment
{
  "local_name": "@rollup/plugin-commonjs",
  "alias": false,
  "peer_metadata": null
}
^19.0.0development
@rollup/plugin-json
Environment
{
  "local_name": "@rollup/plugin-json",
  "alias": false,
  "peer_metadata": null
}
^4.1.0development
@rollup/plugin-node-resolve
Environment
{
  "local_name": "@rollup/plugin-node-resolve",
  "alias": false,
  "peer_metadata": null
}
^13.0.0development
@rollup/plugin-typescript
Environment
{
  "local_name": "@rollup/plugin-typescript",
  "alias": false,
  "peer_metadata": null
}
^8.2.1development
@types/chai
Environment
{
  "local_name": "@types/chai",
  "alias": false,
  "peer_metadata": null
}
^4.1.7development
@types/express
Environment
{
  "local_name": "@types/express",
  "alias": false,
  "peer_metadata": null
}
^4.17.13development
@types/glob
Environment
{
  "local_name": "@types/glob",
  "alias": false,
  "peer_metadata": null
}
^7.1.1development
@types/jest
Environment
{
  "local_name": "@types/jest",
  "alias": false,
  "peer_metadata": null
}
^26.0.24development
@types/jest-image-snapshot
Environment
{
  "local_name": "@types/jest-image-snapshot",
  "alias": false,
  "peer_metadata": null
}
^4.3.1development
@types/karma
Environment
{
  "local_name": "@types/karma",
  "alias": false,
  "peer_metadata": null
}
^6.3.0development
@types/mocha
Environment
{
  "local_name": "@types/mocha",
  "alias": false,
  "peer_metadata": null
}
^8.2.3development
@types/node
Environment
{
  "local_name": "@types/node",
  "alias": false,
  "peer_metadata": null
}
^16.3.1development
@types/platform
Environment
{
  "local_name": "@types/platform",
  "alias": false,
  "peer_metadata": null
}
^1.3.4development
@types/promise-polyfill
Environment
{
  "local_name": "@types/promise-polyfill",
  "alias": false,
  "peer_metadata": null
}
^6.0.3development
@typescript-eslint/eslint-plugin
Environment
{
  "local_name": "@typescript-eslint/eslint-plugin",
  "alias": false,
  "peer_metadata": null
}
^4.28.2development
@typescript-eslint/parser
Environment
{
  "local_name": "@typescript-eslint/parser",
  "alias": false,
  "peer_metadata": null
}
^4.28.2development
appium-ios-simulator
Environment
{
  "local_name": "appium-ios-simulator",
  "alias": false,
  "peer_metadata": null
}
^3.10.0development
babel-eslint
Environment
{
  "local_name": "babel-eslint",
  "alias": false,
  "peer_metadata": null
}
^10.0.1development
babel-loader
Environment
{
  "local_name": "babel-loader",
  "alias": false,
  "peer_metadata": null
}
^8.0.5development
babel-plugin-add-module-exports
Environment
{
  "local_name": "babel-plugin-add-module-exports",
  "alias": false,
  "peer_metadata": null
}
^1.0.2development
babel-plugin-dev-expression
Environment
{
  "local_name": "babel-plugin-dev-expression",
  "alias": false,
  "peer_metadata": null
}
^0.2.1development
base64-arraybuffer
Environment
{
  "local_name": "base64-arraybuffer",
  "alias": false,
  "peer_metadata": null
}
1.0.1development
body-parser
Environment
{
  "local_name": "body-parser",
  "alias": false,
  "peer_metadata": null
}
^1.19.0development
chai
Environment
{
  "local_name": "chai",
  "alias": false,
  "peer_metadata": null
}
4.1.1development
chromeless
Environment
{
  "local_name": "chromeless",
  "alias": false,
  "peer_metadata": null
}
^1.5.2development
cors
Environment
{
  "local_name": "cors",
  "alias": false,
  "peer_metadata": null
}
^2.8.5development
es6-promise
Environment
{
  "local_name": "es6-promise",
  "alias": false,
  "peer_metadata": null
}
^4.2.8development
eslint
Environment
{
  "local_name": "eslint",
  "alias": false,
  "peer_metadata": null
}
^7.30.0development
eslint-config-prettier
Environment
{
  "local_name": "eslint-config-prettier",
  "alias": false,
  "peer_metadata": null
}
^8.3.0development
eslint-plugin-prettier
Environment
{
  "local_name": "eslint-plugin-prettier",
  "alias": false,
  "peer_metadata": null
}
3.4.0development
express
Environment
{
  "local_name": "express",
  "alias": false,
  "peer_metadata": null
}
^4.17.1development
filenamify-url
Environment
{
  "local_name": "filenamify-url",
  "alias": false,
  "peer_metadata": null
}
1.0.0development
glob
Environment
{
  "local_name": "glob",
  "alias": false,
  "peer_metadata": null
}
7.1.3development
html2canvas-proxy
Environment
{
  "local_name": "html2canvas-proxy",
  "alias": false,
  "peer_metadata": null
}
1.0.1development
jest
Environment
{
  "local_name": "jest",
  "alias": false,
  "peer_metadata": null
}
^27.0.6development
jest-image-snapshot
Environment
{
  "local_name": "jest-image-snapshot",
  "alias": false,
  "peer_metadata": null
}
^4.5.1development
jquery
Environment
{
  "local_name": "jquery",
  "alias": false,
  "peer_metadata": null
}
^3.5.1development
js-polyfills
Environment
{
  "local_name": "js-polyfills",
  "alias": false,
  "peer_metadata": null
}
^0.1.42development
karma
Environment
{
  "local_name": "karma",
  "alias": false,
  "peer_metadata": null
}
^6.3.2development
karma-chrome-launcher
Environment
{
  "local_name": "karma-chrome-launcher",
  "alias": false,
  "peer_metadata": null
}
^3.1.0development
karma-edge-launcher
Environment
{
  "local_name": "karma-edge-launcher",
  "alias": false,
  "peer_metadata": null
}
^0.4.2development
karma-firefox-launcher
Environment
{
  "local_name": "karma-firefox-launcher",
  "alias": false,
  "peer_metadata": null
}
^2.1.0development
karma-ie-launcher
Environment
{
  "local_name": "karma-ie-launcher",
  "alias": false,
  "peer_metadata": null
}
^1.0.0development
karma-junit-reporter
Environment
{
  "local_name": "karma-junit-reporter",
  "alias": false,
  "peer_metadata": null
}
^2.0.1development
karma-mocha
Environment
{
  "local_name": "karma-mocha",
  "alias": false,
  "peer_metadata": null
}
^2.0.1development
karma-safarinative-launcher
Environment
{
  "local_name": "karma-safarinative-launcher",
  "alias": false,
  "peer_metadata": null
}
^1.1.0development
karma-sauce-launcher
Environment
{
  "local_name": "karma-sauce-launcher",
  "alias": false,
  "peer_metadata": null
}
^2.0.2development
mocha
Environment
{
  "local_name": "mocha",
  "alias": false,
  "peer_metadata": null
}
^9.0.2development
node-simctl
Environment
{
  "local_name": "node-simctl",
  "alias": false,
  "peer_metadata": null
}
^5.3.0development
platform
Environment
{
  "local_name": "platform",
  "alias": false,
  "peer_metadata": null
}
^1.3.6development
prettier
Environment
{
  "local_name": "prettier",
  "alias": false,
  "peer_metadata": null
}
^2.3.2development
replace-in-file
Environment
{
  "local_name": "replace-in-file",
  "alias": false,
  "peer_metadata": null
}
^3.0.0development
rimraf
Environment
{
  "local_name": "rimraf",
  "alias": false,
  "peer_metadata": null
}
^3.0.2development
rollup
Environment
{
  "local_name": "rollup",
  "alias": false,
  "peer_metadata": null
}
^2.53.1development
rollup-plugin-sourcemaps
Environment
{
  "local_name": "rollup-plugin-sourcemaps",
  "alias": false,
  "peer_metadata": null
}
^0.6.3development
serve-index
Environment
{
  "local_name": "serve-index",
  "alias": false,
  "peer_metadata": null
}
^1.9.1development
slash
Environment
{
  "local_name": "slash",
  "alias": false,
  "peer_metadata": null
}
1.0.0development
standard-version
Environment
{
  "local_name": "standard-version",
  "alias": false,
  "peer_metadata": null
}
^8.0.2development
ts-jest
Environment
{
  "local_name": "ts-jest",
  "alias": false,
  "peer_metadata": null
}
^27.0.3development
ts-loader
Environment
{
  "local_name": "ts-loader",
  "alias": false,
  "peer_metadata": null
}
^8.3.0development
ts-node
Environment
{
  "local_name": "ts-node",
  "alias": false,
  "peer_metadata": null
}
^10.1.0development
tslib
Environment
{
  "local_name": "tslib",
  "alias": false,
  "peer_metadata": null
}
^2.3.0development
typescript
Environment
{
  "local_name": "typescript",
  "alias": false,
  "peer_metadata": null
}
^4.3.5development
uglify-js
Environment
{
  "local_name": "uglify-js",
  "alias": false,
  "peer_metadata": null
}
^3.13.10development
uglifyjs-webpack-plugin
Environment
{
  "local_name": "uglifyjs-webpack-plugin",
  "alias": false,
  "peer_metadata": null
}
^2.2.0development
webpack
Environment
{
  "local_name": "webpack",
  "alias": false,
  "peer_metadata": null
}
^4.46.0development
webpack-cli
Environment
{
  "local_name": "webpack-cli",
  "alias": false,
  "peer_metadata": null
}
^3.3.12development
yargs
Environment
{
  "local_name": "yargs",
  "alias": false,
  "peer_metadata": null
}
^17.0.1development

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "integrity": "sha512-ajQLE/8TjLZxVVz4qIWtt06zpevnkMzuvEaks6QX6cFy89YC0CeUGSITvi/SzTy+p/K7LtAd94AMT26K8+Fgzg==",
  "shasum": "bf9f72f078a41cf9b066d6722de0b3a4f19ff98d",
  "tarball": "https://registry.npmjs.org/@0x170818/html2canvas/-/html2canvas-1.4.2.tgz",
  "fileCount": 391,
  "unpackedSize": 3379488,
  "signatures": [
    {
      "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
      "sig": "MEUCIQCn/P8MOhqsij1dqyT01X+3XWgpj3aka3O+oB4C+UVuBAIgMulI+p23aNyPPF9at2krAhWE6sUHbQdgEVx7rWY5+XI="
    }
  ]
}

Repository

PENDING
niklasvh/html2canvas

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 22:33 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:5ee519929bde8280885b11cee8f5d3edbdbd4d2e8b3ddc84d1a3a5b43c2a13cb

Other collected versions

View all collected versions →