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

本文介绍了如何在Java中通过API实现PDF封面不带页码,其他页面增加页码,包括使用`HtmlToPdf`转换、文件合并等步骤。具体展示了@RequestMapping和相关方法的实现,适合IT人员快速上手处理PDF页码需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值