抓取规则修改
This commit is contained in:
@@ -18,7 +18,26 @@
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!--docx文件下载问题-->
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
<version>4.1.2</version>
|
||||
</dependency>
|
||||
|
||||
<!-- POI依赖,读取.doc型文档-->
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-scratchpad -->
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-scratchpad</artifactId>
|
||||
<version>4.1.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jodconverter</groupId>
|
||||
<artifactId>jodconverter-core</artifactId>
|
||||
|
||||
@@ -1,119 +0,0 @@
|
||||
package com.ruoyi.common.utils;
|
||||
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
|
||||
import com.artofsolving.jodconverter.DocumentConverter;
|
||||
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
|
||||
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
|
||||
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jodconverter.document.DocumentFormat;
|
||||
import org.jodconverter.office.OfficeException;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.MediaType;
|
||||
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
/**
|
||||
* LibreOffice工具类,用于将word,excel,ppt等格式文件转为pdf预览
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2020/7/6 14:55
|
||||
*/
|
||||
@Slf4j
|
||||
public class LibreOfficeUtil {
|
||||
@Value("${jodconverter.local.office-home}")
|
||||
private long OpenOffice_HOME;
|
||||
|
||||
private static DocumentConverter documentConverter;
|
||||
|
||||
private static void init() {
|
||||
try {
|
||||
documentConverter = SpringUtil.getBean(DocumentConverter.class);
|
||||
} catch (Exception e) {
|
||||
throw new ServiceException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static boolean doc2pdf(File docFile, File pdfFile) {
|
||||
boolean result = false;// 转换结果
|
||||
if (docFile.exists()) {
|
||||
if (!pdfFile.exists()) {
|
||||
OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
|
||||
try {
|
||||
connection.connect();
|
||||
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
|
||||
converter.convert(docFile, pdfFile);
|
||||
// 关闭连接
|
||||
connection.disconnect();
|
||||
result = true;
|
||||
|
||||
log.info("****pdf转换成功,PDF输出:" + pdfFile.getPath() + "****");
|
||||
} catch (java.net.ConnectException e) {
|
||||
log.error("openoffice服务未启动", e);
|
||||
} catch (com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e) {
|
||||
log.error("读取转换文件失败", e);
|
||||
} catch (Exception e) {
|
||||
log.error("转换失败", e);
|
||||
}
|
||||
} else {
|
||||
result = true;
|
||||
log.info("****已经转换为pdf,不需要再进行转化****");
|
||||
}
|
||||
} else {
|
||||
log.info("****需要转换的文档不存在,无法转换****");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
/**
|
||||
* doc转pdf(程序启动openoffice)
|
||||
*
|
||||
* @param inputFile 输入文件
|
||||
* @param outputFile 输出文件
|
||||
* @return
|
||||
*/
|
||||
public static boolean doc2pdf2(File inputFile, File outputFile) {
|
||||
boolean result = false;
|
||||
// OpenOffice的安装目录
|
||||
String OpenOffice_HOME = "D:\\app\\libreOffice";
|
||||
if (OpenOffice_HOME.charAt(OpenOffice_HOME.length() - 1) != '/') {
|
||||
OpenOffice_HOME += "/";
|
||||
}
|
||||
Process process = null;
|
||||
try {
|
||||
// 启动OpenOffice的服务
|
||||
String command = OpenOffice_HOME
|
||||
+ "program/soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\"";
|
||||
process = Runtime.getRuntime().exec(command);
|
||||
// 连接 OpenOffice实例,运行在8100端口
|
||||
OpenOfficeConnection connection = new SocketOpenOfficeConnection("127.0.0.1", 8100);
|
||||
connection.connect();
|
||||
|
||||
// 转换
|
||||
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
|
||||
converter.convert(inputFile, outputFile);
|
||||
|
||||
// 关闭连接
|
||||
connection.disconnect();
|
||||
// 销毁OpenOffice服务的进程
|
||||
process.destroy();
|
||||
|
||||
log.info("****pdf转换成功,PDF输出:" + outputFile.getPath() + "****");
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
log.error("pdf转换失败", e);
|
||||
} finally {
|
||||
if (process != null) {
|
||||
process.destroy();
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user