康巴什网站建设,怎样不花钱做网站,杭州网官网,网站收录代做Word、PDF转换为图片Java
需求要在小程序端展示文档内容#xff0c;所以将文档每页转换为图片后显示
参考和其他等方案#xff1a; https://blog.csdn.net/strggle_bin/article/details/140599514
https://www.modb.pro/db/566986
https://blog.csdn.net/spring_is_comin…Word、PDF转换为图片Java
需求要在小程序端展示文档内容所以将文档每页转换为图片后显示
参考和其他等方案 https://blog.csdn.net/strggle_bin/article/details/140599514
https://www.modb.pro/db/566986
https://blog.csdn.net/spring_is_coming/article/details/136969669
Word转换为图片
!-- word转图工具 --
dependencygroupIdcom.deepoove/groupIdartifactIdpoi-tl/artifactIdversion1.8.0/version
/dependency
dependencygroupIdcom.luhuiguo/groupIdartifactIdaspose-words/artifactIdversion23.1/version
/dependencyimport com.aspose.words.Document;
import com.aspose.words.SaveFormat;
import lombok.extern.slf4j.Slf4j;import java.io.File;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;Slf4j
public class WordToImageUtil {public static void main(String[] args) {wordToImage(C:\\Users\\Administrator\\Documents\\录入脚本\\324\\, xxxx.doc);}public static ListString wordToImage(String filePath, String fileName) {log.info(开始word转换为图片);ListString resultList new ArrayListString();// 获取文件路径分隔符String separator File.separator;try {// 填充数据完毕的test.docx在转换成图片File file1 new File(filePath separator fileName); // 使用系统的路径分隔符// 打开生成的 Word 文件Document doc new Document(Files.newInputStream(file1.toPath()));// 逐页将 Word 文件保存为图片PNG格式for (int i 0; i doc.getPageCount(); i) {Document extractedPage doc.extractPages(i, 1);// 拼接上文件名String path filePath separator tmpImg separator removeFileExtension(fileName) separator img System.currentTimeMillis() _ i .png; // 使用系统的路径分隔符// 创建目录如果不存在的话File tmpDir new File(filePath separator tmpImg separator removeFileExtension(fileName));if (!tmpDir.exists()) {tmpDir.mkdirs(); // 创建目录}// 将 Word 文件保存为图片PNG格式extractedPage.save(path, SaveFormat.PNG);resultList.add(path);}} catch (Exception e) {e.printStackTrace();return new ArrayList();}log.info(结束word转换为图片);return resultList;}/*** 去掉后缀名* param fileName* return*/public static String removeFileExtension(String fileName) {int dotIndex fileName.lastIndexOf(.);if (dotIndex -1) {return fileName; // 如果没有找到点则返回原始文件名}return fileName.substring(0, dotIndex); // 返回去掉后缀名的文件名}
}PDF转换为图片
!--PDF转换为图片--
dependencygroupIdorg.apache.pdfbox/groupIdartifactIdfontbox/artifactIdversion2.0.9/version
/dependency
!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox --
dependencygroupIdorg.apache.pdfbox/groupIdartifactIdpdfbox/artifactIdversion2.0.9/version
/dependency
!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --
dependencygroupIdcommons-logging/groupIdartifactIdcommons-logging/artifactIdversion1.2/version
/dependencyimport org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class PdfToImage {/*** 使用pdfbox将整个pdf转换成图片** param fileAddress 文件地址 如:C:\\Users\\user\\Desktop\\test* param filename PDF文件名不带后缀名* param type 图片类型 png 和jpg*/public static void pdf2png(String fileAddress, String filename, String type) {long startTime System.currentTimeMillis();// 将文件地址和文件名拼接成路径 注意线上环境不能使用\\拼接File file new File(fileAddress \\ filename .pdf);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, 144); // Windows native DPI// 将图片写出到该路径下ImageIO.write(image, type, new File(fileAddress \\ filename _ (i 1) . type));}long endTime System.currentTimeMillis();System.out.println(共耗时 ((endTime - startTime) / 1000.0) 秒); //转化用时} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) {pdf2png(C:\\Users\\Administrator\\Documents\\xxx\\pdf, 文件名, png);}
}乱码问题
如果在linux运行遇到中文乱码可尝试安装字体然后重启程序运行
参考https://blog.csdn.net/lljddddd/article/details/137958297
1、从本地找到字体C:\Windows\Fonts
2、复制到Linux我这里用的centos复制字体到 /usr/share/fonts
3、安装fontconfig工具 yum -y install fontconfig
4、刷新字体缓存 fc-cache
5、查看字体列表是否完成安装 fc-list