Springboot实现Word、Excel、Pdf转图片
1. Word转图片
文档:aspose,以下是maven依赖
<dependency>
<groupId>com.luhuiguo</groupId>
<artifactId>aspose-words</artifactId>
<version>23.1</version>
</dependency>
public class Main { // save接口可以指定转出的格式和路径
public static void wordToHtml(String wordPath, OutputStream os) throws Exception {
Document doc = new Document(wordPath);
HtmlSaveOptions opts = new HtmlSaveOptions(SaveFormat.HTML);
opts.setHtmlVersion(HtmlVersion.HTML_5);
opts.setExportImagesAsBase64(true);
opts.setExportPageMargins(true);
doc.save(os, opts); //
}
public static void wordToPng(String wordPath, OutputStream os) throws Exception {
Document doc = new Document(wordPath);
doc.save(os, SaveFormat.PNG);
}
}
2. Excel转图片
文档(收费的,使用免费版本):e-iceblue ,依赖下载不下来需要配置仓库地址
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public</url>
</repository>
</repositories>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>2.2.0</version>
</dependency>
public class Main {
public static String excelToImage(String excelFilePath, String outputImagePath) {
//文件所在位置,我写的多文件,单文件去掉循环即可
Workbook wb = new Workbook();
//位置所在位置
wb.loadFromFile(excelFilePath);
Worksheet sheet = wb.getWorksheets().get(0);
sheet.saveToImage(outputImagePath);
return outputImagePath;
}
}
3. Pdf转图片
文档:pdfbox,以下是maven依赖
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.24</version>
</dependency>
public class Main {
public static List<String> pdfToPng(String filePath, String outputPath) {
List<String> result = new ArrayList<>();
// 将文件地址和文件名拼接成路径 注意:线上环境不能使用/拼接
File file = new File(filePath);
try {
// 写入文件
PDDocument doc = PDDocument.load(file);
PDFRenderer renderer = new PDFRenderer(doc);
int pageCount = doc.getNumberOfPages();
for (int i = 0; i < pageCount; i++) {
// dpi为144,越高越清晰,转换越慢
BufferedImage image = renderer.renderImageWithDPI(i, 300); // Windows native DPI
String outputFileName = outputPath + "_" + (i + 1) + ".png";
// 将图片写出到该路径下
ImageIO.write(image, "png", new File(outputFileName));
result.add(outputFileName);
}
doc.close();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
}
3016

被折叠的 条评论
为什么被折叠?



