使用wkhtmltopdf导出pdf增加页码解决方案

1、如何没有要求,只是增加页码,在转换方法中,可以使用如下代码操作,

cmd.append("     --footer-center [page]/[topage]     ");

2、如果要求封面不能有页码,其他页面增加页码,使用的方法是封面生成一个文件(不加页码),其他内容生成一个文件(增加页码),然后将两个文件合并成一个文件。

具体内容:

1)前台要调用的第一个方法:

       @RequestMapping(value="/getPdf")
       @ResponseBody
       public String getPdf() throws IOException {
           PageData pd = this.getPageData();
           String zbgid=pd.getString("zbgid");
           String dayFold = new SimpleDateFormat("yyyyMMdd").format(new Date());
           String filename1=dayFold+"_"+UuidUtil.get32UUID();//封面
           String filename2=dayFold+"_"+UuidUtil.get32UUID();//其他内容
           String filename3=dayFold+"_"+UuidUtil.get32UUID();//合并后文件名称
           
           String wordurl1 = getDoc1(zbgid,filename1);//生成封面pdf
           String wordurl2 = getDoc(zbgid,filename2);//生成其他内容pdf
           
           String realPath= PropertiesUtil.getGlobalValueByKey("FileDataPhysicalPath");
           String virturalPath= PropertiesUtil.getGlobalValueByKey("KyFileDataVirturalPath");
           
           List<File> files = new ArrayList<File>();
           files.add(new File(realPath+filename1+".pdf"));//封面
           files.add(new File(realPath+filename2+".pdf"));//其他内容

           String zzlj = virturalPath+filename3+".pdf";
           PdfFileUtil.mulFile2One(files, realPath+filename3+".pdf");//合并方法
           return "{\"url\":\"" + filename3 + ".pdf\",\"zzlj\":\"" + zzlj + "\"}";
       }

2)getDoc的方法内容其中一个,另一个一样:

 public String getDoc(String zbgid,String fileName) throws UnsupportedEncodingException {
        String realPath= PropertiesUtil.getGlobalValueByKey("FileDataPhysicalPath");
        String htmlPath=PropertiesUtil.getGlobalValueByKey("zpbgHtmlPath");
        String url = htmlPath+"?zbgid="+zbgid;
        String path=realPath+fileName+".pdf";
        String wordurl1 = fileName+".pdf";
        HtmlToPdf.convert(url, path);
        return wordurl1;
    }

3)合并方法

public static File mulFile2One(List<File> files,String targetPath) throws IOException{
        // pdf合并工具类
        PDFMergerUtility mergePdf = new PDFMergerUtility();
        
        for (File f : files) {
            if(f.exists() && f.isFile()){
                // 循环添加要合并的pdf
                mergePdf.addSource(f);
            }
        }
        // 设置合并生成pdf文件名称
        mergePdf.setDestinationFileName(targetPath);
        // 合并pdf
        mergePdf.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
        return new File(targetPath);
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 使用wkhtmltopdf工具导出PDF时,可以使用一些参数来控制导出的结果。具体的参数可以参考以下命令模板:wkhtmltopdf 参数 shell_exec("D:\wkhtmltopdf\bin\wkhtmltopdf.exe --page-size A4 -q -B 0 -L 0 -R 0 -T 0 --no-pdf-compression 1html 1.pdf")。\[1\] 这个命令模板中的参数包括: - --page-size A4:设置页面大小为A4。 - -q:设置静默模式,不显示任何输出。 - -B 0 -L 0 -R 0 -T 0:设置页面的边距为0,即无边距。 - --no-pdf-compression:禁用PDF压缩,以保持原始质量。 这些参数可以根据具体需求进行调整,以满足导出PDF的要求。同时,wkhtmltopdf是一个开源的命令行工具,可以将HTML渲染为PDF和其他图像格式,使用Qt WebKit渲染引擎,完全“无头”运行,不需要显示器或显示服务。\[2\] 另外,如果需要在生成的PDF中添加水印,可以使用页眉设置HTML的方式来显示水印,通过设置before和after伪元素来添加水印图片。\[3\] #### 引用[.reference_title] - *1* [wkhtmltopdf 导出pdf 样例](https://blog.csdn.net/u011713224/article/details/90518707)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [使用Wkhtmltopdf导出PDF](https://blog.csdn.net/qq_40603422/article/details/115763450)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [wkhtmltopdf导出html到pdf](https://blog.csdn.net/weixin_30753873/article/details/95972499)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值