Commit 438f8539 authored by YangZhaoJun1's avatar YangZhaoJun1

Merge branch 'master' of http://103.249.252.109:90/lcy/education

# Conflicts:
#	src/main/java/org/rcisoft/business/bfile/service/impl/BFileServiceImpl.java
#	src/main/java/org/rcisoft/core/util/OfficeToPdf.java
parents 2825863d cb45fc2d
......@@ -78,7 +78,8 @@ public class BCodeLxcServiceImpl implements BCodeLxcService {
/*启动路径*/
String dockerPath = global.getPHYSICAL_UPLOAD_SERVER_LOCATION() + File.separator +
global.getLxcDockerfilePath() + File.separator + lxc.getUserId() + File.separator;
param.put("lxcPath",dockerPath);
/*文件路径*/
param.put("lxcPath",lxc.getWorkingDir());
result = freemarkerUtil.generatorFileFromModel(this.getModelProject(lxc.getCode()),destPath
,param);
if(!result.isSuccess()) {
......
......@@ -2,7 +2,10 @@ package org.rcisoft.business.bcode.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.quartz.*;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.TriggerKey;
import org.rcisoft.business.bchapter.dao.BChapterRepository;
import org.rcisoft.business.bchapter.entity.BChapter;
import org.rcisoft.business.bcode.model.*;
......@@ -11,7 +14,6 @@ import org.rcisoft.business.bcode.service.BCodeService;
import org.rcisoft.business.brslstudent.dao.BRSlStudentRepository;
import org.rcisoft.business.bsl.dao.BSlRepository;
import org.rcisoft.business.bsl.entity.BSl;
import org.rcisoft.business.bstudent.dao.BStudentRepository;
import org.rcisoft.business.bstudent.entity.BStudentDto;
import org.rcisoft.common.component.Global;
import org.rcisoft.core.exception.ServiceException;
......@@ -161,7 +163,7 @@ public class BCodeServiceImpl implements BCodeService {
+ userInfo + File.separator
+ StudentCode;
/*工程 容器docker dir*/
String dirPath = global.getBASE_UPLOAD_SERVER_LOCATION() + File.separator
String dirPath = global.getPHYSICAL_UPLOAD_SERVER_LOCATION() + File.separator
+ global.getCOURSE_LOCATION() + File.separator
+ global.getSL_LOCATION() + File.separator
+ slId + File.separator
......
......@@ -9,7 +9,7 @@ import org.rcisoft.core.aop.PageUtil;
import org.rcisoft.core.constant.DelStatus;
import org.rcisoft.core.model.PersistModel;
import org.rcisoft.core.util.IdGen;
import org.rcisoft.core.util.PptToPdf;
import org.rcisoft.core.util.OfficeToPdf;
import org.rcisoft.core.util.UserUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -239,9 +239,6 @@ public class BFileServiceImpl implements BFileService {
// 截取上传文件的后缀
String uploadFileSuffix = uploadFile.substring(uploadFile.lastIndexOf('.') + 1, uploadFile.length());
if(uploadFileSuffix.equals("pptx")){
uploadFileSuffix = "ppt";
}
// 设置文件名为乱码
String uploadFileName = IdGen.uuid();
......@@ -255,13 +252,13 @@ public class BFileServiceImpl implements BFileService {
+ path + bFile.getChapterId() + File.separator
+ pathName + File.separator;
if(uploadFileSuffix.equals("ppt")){//ppt转pdf
if(uploadFileSuffix.equals("ppt")||uploadFileSuffix.equals("pptx")){//ppt转pdf
String inputFile = global.getBASE_UPLOAD_SERVER_LOCATION() + File.separator
+ newPath+ filename;
String outputFile = global.getBASE_UPLOAD_SERVER_LOCATION() + File.separator
+ newPath + uploadFileName + ".pdf";
PptToPdf pptToPdf = new PptToPdf();
pptToPdf.pptToPdf(inputFile,outputFile);
OfficeToPdf pptToPdf = new OfficeToPdf();
//pptToPdf.pptToPdf(inputFile,outputFile);
}
bFile.setVideoName(name+ "." +uploadFileSuffix);//文件名
......
......@@ -223,6 +223,16 @@ public class Global {
private String lxcIsRemote;
/*libreoffice ip*/
@Value("${libreoffice.ip}")
private String libreofficeIp;
/*libreoffice 端口*/
@Value("${libreoffice.port}")
private Integer libreofficePort;
/*导出的学生作业暂存路径*/
@Value("${global.path.student_code_location}")
......
package org.rcisoft.core.util;
import org.apache.commons.lang3.StringUtils;
/**
* Created by lcy on 18/1/24.
* 文件util
*/
public class FileUtil {
/**
* 获取文件后缀
* @param fileName
* @return
*/
public static String getFilePostfix(String fileName){
if(StringUtils.isEmpty(fileName))
return "";
return fileName.substring(fileName.lastIndexOf(".")+1);
}
}
package org.rcisoft.core.util;
import com.artofsolving.jodconverter.BasicDocumentFormatRegistry;
import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.DocumentFormat;
import com.artofsolving.jodconverter.DocumentFormatRegistry;
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;
import org.artofsolving.jodconverter.OfficeDocumentConverter;
import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
import org.artofsolving.jodconverter.office.OfficeManager;
import lombok.extern.slf4j.Slf4j;
import org.rcisoft.common.component.Global;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.ConnectException;
/**
* Created by Administrator on 2018/1/19.
*/
public class PptToPdf {
@Component
@Slf4j
public class OfficeToPdf {
/*@Autowired
private Global global;*/
@Autowired
private Global global;
/*
private static OfficeManager officeManager;
private static int port[] = { 8100 };
......@@ -43,7 +47,7 @@ public class PptToPdf {
DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration();
try {
System.out.println("准备启动服务....");
configuration.setOfficeHome("/opt/openoffice4/");// 设置OpenOffice.org安装目录
configuration.setOfficeHome(global.getOPEN_OFFICE_HOME());// 设置OpenOffice.org安装目录
configuration.setPortNumbers(port); // 设置转换端口,默认为8100
configuration.setTaskExecutionTimeout(1000 * 60 * 5L);// 设置任务执行超时为5分钟
configuration.setTaskQueueTimeout(1000 * 60 * 60 * 24L);// 设置任务队列超时为24小时
......@@ -63,50 +67,58 @@ public class PptToPdf {
officeManager.stop();
}
System.out.println("关闭office转换成功!");
}
}*/
public static void main(String[] args) throws Exception {
String path = "/working/";
PptToPdf opc = new PptToPdf();
opc.pptToPdf(path+"111.pptx", path+"1.pdf");
String path = "C:/Users/Administrator/Desktop/";
OfficeToPdf opc = new OfficeToPdf();
opc.office2PDF(path+"abc.pptx", path+"1.pdf");
}
/*public static int office2PDF(String sourceFile, String destFile) throws FileNotFoundException {
/**
* 转换pdf
* @param sourceFile
* @param destFile
* @return 1 成功 0 失败 -1 错误
*/
public synchronized int office2PDF(String sourceFile, String destFile){
OpenOfficeConnection connection = null;
try {
File inputFile = new File(sourceFile);
if (!inputFile.exists()) {
return -1;// 找不到源文件, 则返回-1
}
// 如果目标路径不存在, 则新建该路径
File outputFile = new File(destFile);
if (!outputFile.getParentFile().exists()) {
outputFile.getParentFile().mkdirs();
}
// connect to an OpenOffice.org instance running on port 8100
OpenOfficeConnection connection = new SocketOpenOfficeConnection(
"192.168.1.130", 2002);
connection = new SocketOpenOfficeConnection(
global.getLibreofficeIp(), global.getLibreofficePort());
connection.connect();
// convert
DocumentConverter converter = new OpenOfficeDocumentConverter(
connection);
converter.convert(inputFile, outputFile);
DocumentFormatRegistry factory = new BasicDocumentFormatRegistry();
DocumentFormat inputDocumentFormat = factory
.getFormatByFileExtension(FileUtil.getFilePostfix(sourceFile));
DocumentFormat outputDocumentFormat = factory
.getFormatByFileExtension(FileUtil.getFilePostfix(destFile));
log.info("开始转换--> "+ sourceFile);
converter.convert(inputFile,inputDocumentFormat,outputFile,outputDocumentFormat);
log.info("转换完毕--> "+ destFile);
// close the connection
connection.disconnect();
return 0;
} catch (ConnectException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
return 0;
}finally {
connection.disconnect();
}
return 1;
}*/
}
}
......@@ -149,3 +149,6 @@ serverLxc:
username: root
password: 123456
libreoffice:
ip: 192.168.1.130
port: 8997
......@@ -147,4 +147,9 @@ global:
serverLxc:
ip: 106.2.3.134
username: root
password: 91isoft_xunda
\ No newline at end of file
password: 91isoft_xunda
libreoffice:
ip: 106.2.3.134
port: 10188
\ No newline at end of file
......@@ -7,4 +7,4 @@ services:
ports:
- '${lxcPort?c}:80'
volumes:
- ${lxcPath}:/var/www/html/data/
\ No newline at end of file
- ${lxcPath}:/usr/local/apache2/htdocs/
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment