java使用wkhtmltopdf将html页面生成pdf并且加水印

本文介绍了如何在Java中使用wkhtmltopdf工具将HTML页面转换为PDF,并着重解决了在Linux环境下中文水印识别问题,通过采用图片水印的方式实现了无色背景的水印效果。
摘要由CSDN通过智能技术生成
package com.json.manager.controller.util;

import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.*;
import org.anyline.net.HttpResult;
import org.anyline.net.HttpUtil;
import org.apache.commons.lang3.StringUtils;

import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Map;


public class HtmlToPdf {
    //wkhtmltopdf在系统中的路径
    //private static final String toPdfTool = "F://wkhtml//wkhtmltopdf//bin//wkhtmltopdf.exe";

    /**
     * html转pdf
     * toPdfTool:D\:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf
     *
     * @param toPdfTool 应用软件安装路径
     * @param srcPath   html路径,可以是硬盘上的路径,也可以是网络路径htmlPath + "/js/mg/typical/caseinfo/caseM?id=" + ID
     * @param destPath  pdf保存路径src/main/resources/templates/
     * @return 转换成功返回true
     */

    public static boolean convert(String toPdfTool, String srcPath, String destPath) {

        File file = new File(destPath);
        File parent = file.getParentFile();
        //如果pdf保存路径不存在,则创建路径
        if (!parent.exists()) {
            parent.mkdirs();
        }
        StringBuilder cmd = new StringBuilder();
        cmd.append(toPdfTool);
        cmd.append(" ");
        // cmd.append("  --header-line");//页眉下面的线
        // cmd.append("  --header-center 这里是页眉这里是页眉这里是页眉这里是页眉 ");//页眉中间内容
//        cmd.append(" --viewport-size 1280x1024  ");
        cmd.append(" --page-size A4 ");
        //cmd.append("  --margin-top 30mm ");//设置页面上边距 (default 10mm)
        cmd.append(" --header-spacing 5 ");//    (设置页眉和内容的距离,默认0)
        //       cmd.append(" --disable-smart-shrinking ");
        cmd.append(srcPath);
        cmd.append(" ");
        cmd.append(destPath);

        boolean result = true;
        Process proc = null;
        HtmlToPdfInterceptor error = null;
        HtmlToPdfInterceptor output = null;
        try {
            proc = Runtime.getRuntime().exec(cmd.toString());
            error = new HtmlToPdfInterceptor(proc.getErrorStream());
            output = new HtmlToPdfInterceptor(proc.getInputStream());
     
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

^止境^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值