You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
5.4 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<%@ page import="org.slf4j.Logger" %>
<%@ page import="org.slf4j.LoggerFactory" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<%@ page import="net.sf.json.JSONObject" %>
<%@ page import="weaver.wps.doccenter.utils.Tools" %>
<%@ page import="weaver.wps.doccenter.utils.Config" %>
<%@ page import="weaver.wps.doccenter.utils.FileInfoUtil" %>
<%@ page import="weaver.wps.doccenter.convert.BaseConvert" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="weaver.hrm.User" %>
<%@page contentType="text/html; charset=UTF-8" %>
<%
HashMap<String, String> param = new HashMap<>();
param.put("imagefileid","37304");
param.put("targetFileFormat","PDF");
int i = convertDocType(param);
out.print(i);
%>
<%!
static Logger log = LoggerFactory.getLogger("CustomBusiness");
public Map<String, String> convert(Map<String, String> params) throws Exception {
Map<String, String> result = new HashMap<String, String>();
JSONObject requestParams = new JSONObject();
User user = new User(1);
String ecfileid = params.get("imagefileid");
// 判断模块。目前应该只有知识管理的
String fromMould = Tools.null2String(params.get("fromMould"));
fromMould = Tools.getFromMould(fromMould);
String targetFileFormat = Tools.null2String(params.get("targetFileFormat"));
String apiUrl = "";// Config.getCpsV1OfficeConvert();
if(6 == Config.getProductVersion()) {
apiUrl = Config.getV6CpsV1OfficeConvert();
} else if(5 == Config.getProductVersion()) {
apiUrl = Config.getCpsV1OfficeConvert();
}
FileInfoUtil fileInfoUtil = new FileInfoUtil();
Map<String,String> fileInfo = fileInfoUtil.getFileInfo(ecfileid, user, fromMould);
String filename = fileInfo.get("filename");
filename = Tools.getFileNameWithLowerCaseSuffix(filename);
requestParams = new JSONObject();
requestParams.put("doc_filename", getTempFileName(filename));
requestParams.put("doc_url", fileInfo.get("download"));
requestParams.put("target_file_format", targetFileFormat);
//判断下转换格式为PDF且配置文件中未开启时添加参数
// "to_pdf" = {
// "show_ins_and_del" = 1
// }
// if ("PDF".equals(targetFileFormat) && Config.isProperty("show_ins_and_del", 1, 1)){
JSONObject to_pdf = new JSONObject();
to_pdf.put("show_ins_and_del",1);
requestParams.put("to_pdf", to_pdf);
// }
// 判断如果是excel则优化下转换结果
String ext = filename.contains(".") ? filename.substring(filename.lastIndexOf(".")+1) : "";
boolean isExcelFile = ("doc".equals(ext) || "docx".equals(ext) || "wps".equals(ext)|| "xls".equals(ext)|| "xlsx".equals(ext));
isExcelFile = isExcelFile || ("," + Config.getPropertyValue("doccenter_fit_excel_exts") + ",").contains("," + ext + ",");
if( isExcelFile && Config.isProperty("doccenter_fit_excel", 1, 1)) {
JSONObject et_page_zoom = new JSONObject();
// 表示是否保持当前客户端的缩放比true表示保持当前缩放比打印false表示以100%的缩放比打印当fit_pagetall或fit_pagewide中有一个为1或都为1时该参数不生效
et_page_zoom.put("keep_pagezoom", "true".equals(Config.getPropString("doccenter_keep_pagezoom", "true")));
// 表示是否适配所有行0表示正常分页打印1表示不分页所有行在一页上
et_page_zoom.put("fit_pagewide", Config.getPropIntValue("doccenter_fit_pagewide", 0));
// 表示是否适配所有列0表示正常分页打印1表示不分页所有列在一页上当fit_pagetall与fit_pagewide都为1时表示将所有内容打印到一页上
et_page_zoom.put("fit_pagetall", Config.getPropIntValue("doccenter_fit_pagetall", 1));
requestParams.put("et_page_zoom", et_page_zoom);
}
// 结果文件的文件名
String targetFilename = params.containsKey("targetFilename") ? params.get("targetFilename"): "";
if(Tools.isEmptyOrNull(targetFilename) && !Tools.isEmptyOrNull(filename)) {
String nameOnly = filename.contains(".") ? filename.substring(0, filename.lastIndexOf(".")) : filename;
targetFilename = nameOnly + "." + targetFileFormat.toLowerCase();
}
BaseConvert baseConvert = new BaseConvert(user);
if(!params.containsKey("comefrom")) {
params.put("comefrom", "DocTypeConvert");
}
result = baseConvert.convert(apiUrl, requestParams, targetFilename, params);
// 处理其他的事务
return result;
}
public static String getTempFileName(String filename) {
if(Tools.isEmptyOrNull(filename) || !filename.contains(".")){
return filename;
}
int idx = filename.lastIndexOf(".");
return"1" + filename.substring(idx).toLowerCase();
}
public int convertDocType(Map<String, String> params){
Map<String, String> result = new HashMap<String, String>();
try {
result = convert(params);
if("0".equals(result.get("status"))){
return Util.getIntValue(result.get("imagefileid"));
}
} catch (Exception e) {
log.error(e.getMessage());
}
return -1;
}
%>