前言
在项目中用到了Excel转换PDF的功能,做个笔记,记录一下。
一、pdf是什么?
PDF是Portable Document Format的简称,意为“可携带文档格式”,是由Adobe Systems用于与应用程序、操作系统、硬件无关的方式进行文件交换所发展出的文件格式。
二、demo
1.引入库
代码如下(示例):
//依赖第三方jar包,包名(Spire.Xls.jar)
import com.spire.xls.*;
2.生成pdf
代码如下(示例):
/**
* 生成pdf
*/
public class ExcelToPDF {
public static void main(String[] args) {
//加载Excel文档
Workbook wb = new Workbook();
wb.loadFromFile("test.xlsx");
//调用方法保存为PDF格式
wb.saveToFile("ToPDF.pdf".FileFormat.PDF);
}
}
三、使用步骤
1.引入库
代码如下(示例):
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.*;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import org.springframework.beans.factory.annotation.Value;
import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.io.*;
2.生成pdf
代码如下(示例):
/**
* 生成pdf
*/
public class ExcelForPdf {
@Value("${watermark.file.url}")
private static String watermarkUrl;
//传入当前excel路径,生成pdf的路径,文件名
public static void excelForPdf(String fileName) {
String property = System.getProperty("user.dir");
String filePath = property + File.separator + "file";
//拼接服务器路径+文件名称,获取该文件
String pathname = filePath+ File.separator + fileName;
Workbook wb = new Workbook();
/**
//第一种方法直接将excel转pdf
//根据文件名称读取当前路径下excel
wb.loadFromFile(pathname);
//移除原先.xlxs格式,拼接pdf格式
String pdfname = pathname.substring(0, pathname.indexOf(".")) + ".pdf";
//在当前路径下生成pdf格式文件
wb.saveToFile(pdfname, FileFormat.PDF);
*/
//第二种方法直接将excel的第一个sheet页转pdf
//获取当前excel
wb.loadFromFile(pathname);
//设置转换时,工作表自适应PDF页面(核心方法)
wb.getConverterSetting().setSheetFitToPage(true);
//获取当前excel第一页
Worksheet sheet = wb.getWorksheets().get(0);
//移除原先.xlxs格式,拼接pdf格式
String pdfname = pathname.substring(0, pathname.indexOf(".")) + ".pdf";
//在当前路径下生成pdf格式文件
sheet.saveToPdf(pdfname);
}
}