这个是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运行。
the wrapper working on a single thread,because render operation must be call on Qt Application thread。