/wkhtmltopdf4j

wkhtmltopdf native library JNI wrapper for java. WKhtmltoPDF的java版API

Primary LanguageJava

WhtmlToPDF java binding

摘要

这个是WkHtmltoPDF的wrapper,本wrapper通过java的jni技术编写, 不需要使用命令行,不需要额外的安装。

本项目通过CMake进行编译,需要WkhtmltoPDF的类库。

this is a wrapper of WhtmlToPDF native library with java jni.

we can use this library to convert any html file to a pdf.

by the time you need it , clone my standlongs project first, install the libloader to your native maven repository

this is a test code to show how can you use it:

public class Test {

	public static void main(String[] args) {

	    // Load Narive libs
		PlatformLoader loader = new PlatformLoader();
		loader.load(new File("dist/WKHtmlPDF.xml"));

		// converter is available now
		WKHtmlPDFConverter conv = new WKHtmlPDFConverter();
		// you can put logger here
		conv.setOnProgress(i -> {
			System.err.println("Progress is " + i);
		});
		conv.setOnMesssage(e -> {
			System.err.println("Message : " + e);;
		});
		conv.convert(new File("test.html"), new File("test.pdf"));
		conv.convert("<h1>Hello</h1>", new File("Demo.pdf"));
	}
	
}

如何构建

构建本项目前,请在Release中下载WKHtmlToPDF的动态链接库,并将 它们解压到dependencies目录内,否则构建将会失败。

目前本项目使用CMake,您可以使用CMake在Windows或者MacOS构建此项目, 通常来说,如果您已经安装了CMake并且把它配置在系统的环境变量——Path中, 那么通过以下指令就能够构建此项目:

mkdir ./Build
cd Build
cmake ..
# 接下来要做的事情取决于你使用的构建系统。
# 如果生成的是Makefile,那么只需要执行此命令即可
make

Windows系统需要在MSYS2进行构建,MacOS系统需要您安装XCode,至少是XCode的构建工具。

局限

本组件只能单线程转换PDF,一个一个的被HTML或者String的执行转换,不能多线程同时操作,因此效率比较有限, 这是因为Qt的渲染只能在Qt的ApplicationThread运行。

limitation

the wrapper working on a single thread,because render operation must be call on Qt Application thread。