Skip to content

avvertix/html-shot

Repository files navigation

html-shot

HTML to image rendering for PHP, powered by Rust and Takumi. Generate Open Graph images and more from HTML/CSS without headless browser overhead.

Features

tbd

HTML & CSS Support

Input Behaviour
<style> tags CSS extracted and applied as a stylesheet
Inline style="..." Promoted to a generated CSS class rule
<img src="..."> Local paths and data URIs supported
CSS background-image: url(...) Local paths and data URIs supported
<br> Rendered as a newline
<html>, <head>, <body> Transparent wrappers, stripped
All other elements Rendered as Takumi container nodes (class, id, tagName forwarded)

Takumi's layout engine supports Flexbox, CSS Grid, tw Tailwind utility classes, and CSS animations.

Installation

composer require avvertix/html-shot

Requirements

  • PHP 8.2 or higher
  • FFI extension enabled ext-ffi | enabled (ffi.enable = true in php.ini) |

Quick Example

tbd

Development

git clone https://github.com/avvertix/html-shot.git
cd html-shot

# Install PHP dependencies
composer install

# Build the Rust library
cd rust && cargo build --release

Build the native library

The Rust library must be compiled for your target platform. A pre-built binary is attached to each GitHub release or you can build your own.

cd vendor/avvertix/html-shot/rust
cargo build --release

Then copy the compiled library to the lib/ directory at the package root:

Platform Source Destination
Linux target/release/libhtml_shot.so ../lib/libhtml_shot.so
macOS target/release/libhtml_shot.dylib ../lib/libhtml_shot.dylib
Windows target/release/html_shot.dll ../lib/html_shot.dll

The C header is auto-generated by cbindgen and written to include/html_shot.h during the build.

Troubleshooting

Enabling ext-ffi

Check whether FFI is active:

php -m | grep FFI

If it is not listed, add the following to your php.ini and restart PHP-FPM / your web server:

extension=ffi
ffi.enable=true

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

MIT License - see LICENSE file for details.

Credits

Powered by Takumi

About

HTML to image rendering for PHP, powered by Rust and Takumi. Generate Open Graph images and more from HTML/CSS without requiring a headless browser.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors