mirror of
https://github.com/kekingcn/kkFileView.git
synced 2026-04-18 02:37:27 +00:00
* 1. 修复getCorsFile接口高危安全漏洞 * 1. 优化密码错误提示(“密码错误,请重新输入密码。”) * 1. 修复PPT重复预览bug,此bug导致ppt每次预览会执行两次转换(请求两次onlinePreview接口),在大文件尤其耗时(双倍时… * 1. 【加密office预览】优化受密码保护的office文件检查逻辑,提升旧文件格式的兼容性 * 1. 【加密office预览】优化office文件是否受密码保护判断逻辑,避免兼容性误判 * 1. 【加密office预览】优化重新输入密码提示。 * 1. 【加密office预览】优化当密码输入错误后,不是抛出异常,而是提示用户重新输入 * 1. 优化prompt提示框的输入密码提示样式 * 1. 实现基于userToken缓存加密文件,没有userToken的加密文件不缓存 * 1. 优化docker构建方案,使用分层构建方式,采用层级缓存解决构建慢发布慢等问题。从原本5分钟左右缩短至几秒 * 1. 加密文件暂时不缓存(后续基于用户token实现,基于用户缓存) * 1. 优化office文件下载逻辑,跳过重复下载(大量节约带宽与磁盘空间)。 * 1. 修复预览不同类型的加密office文件bug * 实现预览加密的(受密码保护)office文件
84 lines
3.5 KiB
Java
84 lines
3.5 KiB
Java
//
|
|
// JODConverter - Java OpenDocument Converter
|
|
// Copyright 2004-2012 Mirko Nasato and contributors
|
|
//
|
|
// JODConverter is Open Source software, you can redistribute it and/or
|
|
// modify it under either (at your option) of the following licenses
|
|
//
|
|
// 1. The GNU Lesser General Public License v3 (or later)
|
|
// -> http://www.gnu.org/licenses/lgpl-3.0.txt
|
|
// 2. The Apache License, Version 2.0
|
|
// -> http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
//
|
|
package org.artofsolving.jodconverter;
|
|
|
|
import com.sun.star.document.UpdateDocMode;
|
|
import org.apache.commons.io.FilenameUtils;
|
|
import org.artofsolving.jodconverter.document.DefaultDocumentFormatRegistry;
|
|
import org.artofsolving.jodconverter.document.DocumentFormat;
|
|
import org.artofsolving.jodconverter.document.DocumentFormatRegistry;
|
|
import org.artofsolving.jodconverter.model.FileProperties;
|
|
import org.artofsolving.jodconverter.office.OfficeException;
|
|
import org.artofsolving.jodconverter.office.OfficeManager;
|
|
|
|
import java.io.File;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
public class OfficeDocumentConverter {
|
|
|
|
private final OfficeManager officeManager;
|
|
private final DocumentFormatRegistry formatRegistry;
|
|
|
|
private Map<String,?> defaultLoadProperties = createDefaultLoadProperties();
|
|
|
|
public OfficeDocumentConverter(OfficeManager officeManager) {
|
|
this(officeManager, new DefaultDocumentFormatRegistry());
|
|
}
|
|
|
|
public OfficeDocumentConverter(OfficeManager officeManager, DocumentFormatRegistry formatRegistry) {
|
|
this.officeManager = officeManager;
|
|
this.formatRegistry = formatRegistry;
|
|
}
|
|
|
|
private Map<String,Object> createDefaultLoadProperties() {
|
|
Map<String,Object> loadProperties = new HashMap<String,Object>();
|
|
loadProperties.put("Hidden", true);
|
|
loadProperties.put("ReadOnly", true);
|
|
loadProperties.put("UpdateDocMode", UpdateDocMode.QUIET_UPDATE);
|
|
return loadProperties;
|
|
}
|
|
|
|
public void setDefaultLoadProperties(Map<String, ?> defaultLoadProperties) {
|
|
this.defaultLoadProperties = defaultLoadProperties;
|
|
}
|
|
|
|
public DocumentFormatRegistry getFormatRegistry() {
|
|
return formatRegistry;
|
|
}
|
|
|
|
public void convert(File inputFile, File outputFile) throws OfficeException {
|
|
String outputExtension = FilenameUtils.getExtension(outputFile.getName());
|
|
DocumentFormat outputFormat = formatRegistry.getFormatByExtension(outputExtension);
|
|
convert(inputFile, outputFile, outputFormat, null);
|
|
}
|
|
|
|
public void convert(File inputFile, File outputFile, FileProperties fileProperties) throws OfficeException {
|
|
String outputExtension = FilenameUtils.getExtension(outputFile.getName());
|
|
DocumentFormat outputFormat = formatRegistry.getFormatByExtension(outputExtension);
|
|
convert(inputFile, outputFile, outputFormat, fileProperties);
|
|
}
|
|
|
|
public void convert(File inputFile, File outputFile, DocumentFormat outputFormat, FileProperties fileProperties) throws OfficeException {
|
|
String inputExtension = FilenameUtils.getExtension(inputFile.getName());
|
|
DocumentFormat inputFormat = formatRegistry.getFormatByExtension(inputExtension);
|
|
Map<String, Object> properties = fileProperties.toMap();
|
|
properties.putAll(defaultLoadProperties);
|
|
StandardConversionTask conversionTask = new StandardConversionTask(inputFile, outputFile, outputFormat);
|
|
conversionTask.setDefaultLoadProperties(properties);
|
|
conversionTask.setInputFormat(inputFormat);
|
|
officeManager.execute(conversionTask);
|
|
}
|
|
|
|
}
|