Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/oberonamsterdam/docker-wkhtmltopdf
https://github.com/oberonamsterdam/docker-wkhtmltopdf
dockerfile wkhtmltopdf
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/oberonamsterdam/docker-wkhtmltopdf
- Owner: oberonamsterdam
- Created: 2018-04-16T15:30:28.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-12-19T13:34:52.000Z (about 3 years ago)
- Last Synced: 2024-04-16T22:29:01.319Z (8 months ago)
- Topics: dockerfile, wkhtmltopdf
- Language: Python
- Size: 10.7 KB
- Stars: 18
- Watchers: 7
- Forks: 11
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
// 2020-08-31: Merged PR from "bonashen" https://github.com/bonashen, adding example code for using options
// 2019-10-02: Reverting back to python2 due to errors, no time for fixing these
// 2019-09-02: Build using v0.12.5-1 from DEB-package, updated to Ubuntu 18.04, updated to python3 due to end-of-support python2
// 2018-03-08: Build using v0.12.4 from binary instead of 0.12.2 using apt-get
// 2018-04-16: Moved to https://hub.docker.com/r/oberonamsterdam/wkhtmltopdf/, adding github repo for DockerfileBased on https://hub.docker.com/r/openlabs/docker-wkhtmltopdf-aas/
Changes:
* Using Ubuntu 18.04 instead of 14.04
* Adding XVFB/libfontconfig to correctly render external fonts
* Updated WKHTMLTOPDF to 0.12.5-1
* Updated to Python3# Running the container
This will create a service on port (only advised for testing-purpose)`docker run -d -p :80 oberonamsterdam/wkhtmltopdf`
On production it's advised to run container as a service and expose to your own containers only.
# Using the webservice
There are multiple ways to generate a PDF of HTML using the
service: uploading a HTML fileThis is a convenient way to use the service from command line
utilities like curl.`curl -X POST -vv -F 'file=@path/to/local/file.html' http://:/ -o path/to/output/file.pdf`
where:
docker-host is the hostname or address of the docker host running the container
port is the public port to which the container is bound to.# Example PHP code using options
```$options = [
'margin-top' => '25',
'margin-left' => '25',
'margin-right' => '25',
'margin-bottom' => '25',
'page-size' => 'A4',
'footer-spacing' => '5',
'footer-font-size' => 6,
'footer-right' => 'Page [page] of [topage]',
];$html = file_gets_content('test.html');
$data = json_encode([
'contents' => base64_encode($html),
'options' => $options,
]);$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'http://:',
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => $data,
]);$result = curl_exec($ch);
```$result will contain the binary PDF output.
# Using images in your HTML
1. Use absolute URLs to your images and make sure these URLs are accessible for the wkhtmltopdf-container
2. Mount your files into the wkhtmltopdf-container and use local images: https://stackoverflow.com/questions/16627310/wkhtmltopdf-not-loading-local-css-and-images