# java-wkhtmltopdf-wrapper
**Repository Path**: spps/java-wkhtmltopdf-wrapper
## Basic Information
- **Project Name**: java-wkhtmltopdf-wrapper
- **Description**: A Java wrapper for wkhtmltopdf
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 1
- **Created**: 2021-11-03
- **Last Updated**: 2024-07-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Java WkHtmlToPdf Wrapper [](https://travis-ci.org/jhonnymertz/java-wkhtmltopdf-wrapper)
=========
A Java based wrapper for the [wkhtmltopdf](http://wkhtmltopdf.org/) command line tool. As the name implies, it uses WebKit to convert HTML documents to PDFs.
Requirements
------------
**[wkhtmltopdf](http://wkhtmltopdf.org/) must be installed and working on your system.**
### Wrapper project dependency
Make sure you have Java Wrapper dependency added to your project.
If you are using Gradle/Maven, see example below:
#### Gradle
In your `build.gradle`:
```groovy
dependencies {
compile 'com.github.jhonnymertz:java-wkhtmltopdf-wrapper:1.1.10-RELEASE'
}
```
#### Maven
In your `pom.xml`:
```xml
com.github.jhonnymertz
java-wkhtmltopdf-wrapper
1.1.10-RELEASE
```
Usage and Examples
------------
```
Pdf pdf = new Pdf();
pdf.addPageFromString("
Müller
");
pdf.addPageFromUrl("http://www.google.com");
// Add a Table of Contents
pdf.addToc();
// The `wkhtmltopdf` shell command accepts different types of options such as global, page, headers and footers, and toc. Please see `wkhtmltopdf -H` for a full explanation.
// All options are passed as array, for example:
pdf.addParam(new Param("--no-footer-line"), new Param("--header-html", "file:///header.html"));
pdf.addParam(new Param("--enable-javascript"));
// Add styling for Table of Contents
pdf.addTocParam(new Param("--xsl-style-sheet", "my_toc.xsl"));
// Save the PDF
pdf.saveAs("output.pdf");
```
### Xvfb Support
```
XvfbConfig xc = new XvfbConfig();
xc.addParams(new Param("--auto-servernum"), new Param("--server-num=1"));
WrapperConfig wc = new WrapperConfig();
wc.setXvfbConfig(xc);
Pdf pdf = new Pdf(wc);
pdf.addPageFromUrl("http://www.google.com");
pdf.saveAs("output.pdf");
```
### wkhtmltopdf exit codes
wkhtmltopdf may return non-zero exit codes to denote warnings, you can now set the Pdf object to allow this:
```
Pdf pdf = new Pdf(wc);
pdf.addPageFromUrl("http://www.google.com");
pdf.setAllowMissingAssets();
// or:
pdf.setSuccessValues(Arrays.asList(0, 1));
pdf.saveAs("output.pdf");
```
This is not an official Wkhtmltopdf product
------------
This library is not an official Wkhtmltopdf product. Support is available on a best-effort basis via github issue tracking. Pull requests are welcomed.
Bugs
------------
- Tests are incomplete
Known issues
------------
**Output of wkhtmltopdf is being added to resulting pdf** ([Issue #19](https://github.com/jhonnymertz/java-wkhtmltopdf-wrapper/issues/19))
- Starting from 1.1.10-RELEASE version, there is a method `saveAsDirect(String path)`, which executes wkhtmltopdf passing the `path` as output for wkhtmltopdf, instead of the standard input `-`. This saves the results directly to the specified file `path`.
License
------------
This project is available under MIT Licence.