JAVA:Excel文档转无水印PDF文档
背景
新年初始,万物复苏,正月未过,给大家拜个晚年了!
一个小功能,分享一下。
准备
首先下载文件
链接: https://pan.baidu.com/s/1xvZYc13QVl1OtvFZ13gyDQ .
提取码: gkrc
我这里用的是Aspose的jar包,因为它是收费的所以不交钱会有水印,需要自己破解一下。破解用到的文件就是下载中的xml文件。
实现
将文件放到下图所示文件。
package com.demo.demo.controller;import com.aspose.cells.License;
import com.aspose.cells.PdfSaveOptions;
import com.aspose.cells.Workbook;import java.io.FileOutputStream;
import java.io.InputStream;/*** @ClassName ExcelToPdfUtil* 功能详细描述:* @Author GuoZiYue* @Date 2021/2/18 11:08* @Version 1.0*/
public class ExcelToPdfUtil {/*** excel 转为pdf 输出。** @param sourceFilePath excel文件* @param desFilePathd pad 输出文件目录*/public static void excel2pdf(String sourceFilePath, String desFilePathd ){if (!getLicense()) { // 验证License 若不验证则转化出的pdf文档会有水印产生return;}try {Workbook wb = new Workbook(sourceFilePath);// 原始excel路径FileOutputStream fileOS = new FileOutputStream(desFilePathd);PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();pdfSaveOptions.setOnePagePerSheet(true);int sheetCount = wb.getWorksheets().getCount();int[] showSheets=new int[sheetCount];for (int i = 0; i < sheetCount; i++) {showSheets[i]=i;}//隐藏workbook中不需要的sheet页。autoDraw(wb,showSheets);printSheetPage(wb,showSheets);wb.save(fileOS, pdfSaveOptions);fileOS.flush();fileOS.close();System.out.println("完毕");} catch (Exception e) {e.printStackTrace();}}public static boolean getLicense() {boolean result = false;try {InputStream is = FileController.class.getClassLoader().getResourceAsStream("\\templates\\license.xml");License aposeLic = new License();aposeLic.setLicense(is);result = true;} catch (Exception e) {e.printStackTrace();}return result;}/*** 设置打印的sheet 自动拉伸比例* @param wb* @param page 自动拉伸的页的sheet数组*/public static void autoDraw(Workbook wb,int[] page){if(null!=page&&page.length>0){for (int i = 0; i < page.length; i++) {wb.getWorksheets().get(i).getHorizontalPageBreaks().clear();wb.getWorksheets().get(i).getVerticalPageBreaks().clear();}}}/*** 隐藏workbook中不需要的sheet页。* @param wb* @param page 显示页的sheet数组*/public static void printSheetPage(Workbook wb,int[] page){for (int i= 1; i < wb.getWorksheets().getCount(); i++) {wb.getWorksheets().get(i).setVisible(false);}if(null==page||page.length==0){wb.getWorksheets().get(0).setVisible(true);}else{for (int i = 0; i < page.length; i++) {wb.getWorksheets().get(i).setVisible(true);}}}
}
它支持多sheet转pdf,每个sheet分为一页。
调用
public static void main(String[] args) {String sourceFilePath="C:/excel2pdf/aa.xlsx";String desFilePath="d:/rest222.pdf";ExcelToPdfUtil.excel2pdf(sourceFilePath,desFilePath);}
直接调方法就行。
JAVA:Excel文档转无水印PDF文档相关推荐
- java加密解密 pdf_Java 加密和解密PDF文档
前言 在日常办公时,为了保护文档不被他人篡改,我们可为文档设置打开口令,即加密.同时,因需要我们也可对加密文档进行解密,以便能够查看和编辑文档.本文将通过Java程序来演示如何对PDF文档进行加密和解 ...
- 月结流程概述(加作者微信索取无水印PDF完整版)
http://blog.sina.com.cn/s/blog_eb52f4660102wl7c.html 1.1 月结流程概述(加作者微信索取无水印PDF完整版) 下表为典型的制造业期末财务结算 ...
- Java使用PDFBox开发包实现对PDF文档内容编辑与保存
pdfbox开发包下载地址:http://pdfbox.apache.org/ 程序实现了PDF文档的创建,读入,与修改PDF内容并保存. 可能有个前提,PDF文档不是加密的,如果加密怎么办,我没研究 ...
- php生成pdf水印,使用 PHP 在 PDF 文档中加水印并进行文档加密
前言 在使用 PHP 在 PDF 文件上打水印的过程中,我尝试了如下几个工具: 因为想满足对中文水印的支持,并对 PDF 文档进行加密,最终使用 FPDI + TCPDF 的方案完成功能. 正文 打水 ...
- 文档已无水印,苹果手机看word有水印
去除word文档中的水印,安卓手机看不见,但苹果手机依旧显示水印,这个怎么解决?重新复制粘贴还是一样 页眉,编辑页眉,首页不同点了看一遍文章看有没有水印,奇偶页不同点了看一遍文章有没有水印,有全删了就 ...
- c语言调用pdf文档,使用PDFLib生成PDF文档方法介绍(C语言版)
本文简单介绍了PDFLib生成PDF文档(C语言版)的基本使用方法. 1.基本环境 ① 打开.关闭.文档信息设定: 新建PDFLib对象,PDF_new() 设定错误处理的方式,PDF_set_par ...
- php操作pdf文档输出,PHP生成PDF文档实用技巧
PHP生成PDF文档实用技巧 实际工作中,我们要使用PHP动态的创建PDF文档,目前有许多开源的PHP创建PDF的类库,今天我给大家来介绍一款优秀的PDF库,它就是TCPDF,TCPDF是一个用于快速 ...
- java html 生成 pdf_Java实现HTML代码生成PDF文档
1.IText实现html2pdf,速度快,纠错能力差,支持中文(要求HTML使用unicode编码),但中支持一种中文字体,开源. 2.Flying Sauser实现html2pdf,纠错能力差,支 ...
- java实现从url路径中下载pdf文档到本地
import java.io.*; import java.net.*;public class DownloadPdf {/*** 从网络Url中下载文件* @param urlStr pdf网页的 ...
最新文章
- android中xml文件的生成与读取(Pull)
- 如何存储Session
- 百度地图与HT for Web结合的GIS网络拓扑应用
- REST技术第四步 多个參数注解问题
- POJ_1062_(dijkstra)
- Bash脚本教程之算数运算
- 32位单精度浮点乘法器的FPGA实现
- python arcgis批量绘图_ARCGIS中Python实现批量裁剪
- IE 6 特有的条件注释详情
- 点击锚点链接时页面滚动的特效(Javascript Smooth Scroll)
- Java并发编程之volatile变量
- 代理模式 委派模式 策略模式_委派模式和策略模式
- 【算法与数据结构】二叉堆和优先队列 Priority Queue
- canvas设置渐变
- 【设计师配色宝典!教你从零开始学配色】转
- 中国农业大学计算机考研拟录取名单,2019中国农业大学硕士考研研究生拟录取名单...
- 短线交易秘诀(原书第2版)
- 64位W7系统安装内存8G,但是系统只显示3.2G,是怎么回事?
- linux fuser主机关闭,linux 下强制umount+Fuser命令详解
- 高通王翔:每年收入20%投入研发