主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
【相关学习推荐:小程序开发教程】
解决方案实现步骤安装环境
官网地址:https://wkhtmltopdf。 org/
Windows:下载并安装安装包。
Linux:下载对应的安装包并安装对应的中文字体(phantomjs也需要安装字体),引用必须声明在HTML
相关代码
使用Java执行命令,调用wkhtmltoImage设置相关参数。 有关具体参数,请参阅 wkhtmltoImage 命令提示符。
包com.yumingzhu.wxweb.util;导入java.io.BufferedReader;导入java.io.IOException;导入java.io.InputStreamReader;/ ** * @Description * @Author yumigzhu * @Date 2020/7/22 20:12 */public class CustomWKHtmlToPdfUtil {private static String tempPath = "C:/apps/tmpFile";//图片存储目录 public static String getCommand( String htmlToImage, String sourceFilePath , String targetFilePath) {//--quality 应设置为 50,但默认 94 可能会使图像变形文件太大 ProcessBuilder pb = new ProcessBuilder(htmlToImage, "--crop-w", "800", "--width", "800","-[ k3] Quality", "50",sourceFilePath, targetFilePath);Process process;try {process = pb.start();//注意,调用process.getErrorStream()而不是process.getInputStream()BufferedReader。 errStreamReader = new BufferedReader( new InputStreamReader (process.getErrorStream()));System.out.println("读取 errstreamreader");String line = null;line = errStreamReader.readLine();while (line != null) {System .out.println( line) ;line = errStreamReader.readLine();}process.destroy();System.out.println("销毁进程");} catch (IOException e) {e.printStackTrace(); targetFilePath;}public static void main (String[] args) 抛出异常{String imagePath = tempPath + "/" + System.currentTimeMillis() + ".png";//图片路径 System.out.println(imagePath);String htmlToImage = "E:\\softwareAPP\\wkhtmltopdf\\bin \\wkhtmltoimage.exe";CustomWKHtmlToPdfUtil.getCommand(htmlToImage,"file:///G:/share/text_none_title_share/index.html",imagePath);System.out.println("执行完成");} }
跟踪记录
如果将HTML页面的宽度和高度设置得较小,则裁剪后的图像会变小且模糊。 增加html的宽度和高度可能会使图像更清晰,但在这种情况下会出现一些截断。 由于图片文件较大,用户下载小程序的速度会很慢。 现在你需要自己权衡一下。
wkhtmlImage 不支持 css3 Linear-gradient,因此无法使用样式下划线。 考虑使用图像代替。
启用中文字体前需参考。
评论前必须登录!
注册