Convert HTML and `<canvas>` to SVG, PDF, or images using Chromium
Convert HTML and `<canvas>` to SVG, PDF, or images using Chromium
html2svgConvert HTML and `` to vector (SVG, PDF) or bitmap (PNG, JPEG, WebP) images using Chromium. Read the blog post.
…An HTTP server is also provided, all CLI options are supported:
…Building Chromium is only officially supported on AMD64. If you'd like to target ARM64, cross-compile from AMD64 instead.
You'll need to install all tools required to build Chromium: https://www.chromium.org/developers/how-tos/get-the-code/
If you're running Linux, you can use the Docker build instructions to generate binaries.
$ yarngclient:$ yarn gclientgn using one of these commands:# for local developement
$ yarn gn testing
# or for releasing
$ yarn gn release
# add --ide=xcode if you'd like to generate an Xcode project on macOS
$ yarn gn release --ide=xcodeninja using one of these commands:# make a testing build
$ yarn ninja testing
# make a release build
$ yarn ninja releaseWe use docker run instead of Dockerfile for building Chromium to support incremental building.
# Create the build environment
$ docker build . --build-arg "WORKDIR=$(pwd)" --target build-env --tag html2svg-build-env
# Clone the Chromium/Electron code
$ docker run -ti -v $(pwd):$(pwd) html2svg-build-env scripts/gclient.sh --revision "src/electron@cb22573c3e76e09df9fbad36dc372080c04d349e"
# Apply html2svg patches
$ docker run -ti -v $(pwd):$(pwd) html2svg-build-env scripts/patch.sh
# Install build dependencies
$ docker run -ti -v $(pwd):$(pwd) html2svg-build-env electron/src/build/install-build-deps.shNow you'll have to build binaries, steps differs depending on the platform you'd like to target:
# Fetch compiler files
$ docker run -ti -v $(pwd):$(pwd) html2svg-build-env electron/src/build/linux/sysroot_scripts/install-sysroot.py --arch=amd64
# Generate build files
$ docker run -ti -v $(pwd):$(pwd) --workdir $(pwd)/electron/src html2svg-build-env gn gen "out/release-amd64" --args="import(\"//electron/build/args/release.gn\") cc_wrapper=\"ccache\""
# Build binaries
$ docker run -ti -v $(pwd):$(pwd) html2svg-build-env scripts/build.sh release-amd64# Fetch compiler files
$ docker run -ti -v $(pwd):$(pwd) html2svg-build-env electron/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm64
# Generate build files
$ docker run -ti -v $(pwd):$(pwd) --workdir $(pwd)/electron/src html2svg-build-env gn gen "out/release-arm64" --args="import(\"//electron/build/args/release.gn\") cc_wrapper=\"ccache\" target_cpu=\"arm64\""
# Build binaries
$ docker run -ti -v $(pwd):$(pwd) html2svg-build-env scripts/build.sh release-arm64 --target-cpu=arm64Finally, build the Docker image:
docker build .No open issues yet, or sync has not completed.