mirror of
https://gitee.com/kekingcn/file-online-preview.git
synced 2025-04-05 17:37:49 +08:00
76 lines
3.0 KiB
Java
76 lines
3.0 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 java.io.File;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
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.office.OfficeException;
|
|
import org.artofsolving.jodconverter.office.OfficeManager;
|
|
|
|
import com.sun.star.document.UpdateDocMode;
|
|
|
|
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);
|
|
}
|
|
|
|
public void convert(File inputFile, File outputFile, DocumentFormat outputFormat) throws OfficeException {
|
|
String inputExtension = FilenameUtils.getExtension(inputFile.getName());
|
|
DocumentFormat inputFormat = formatRegistry.getFormatByExtension(inputExtension);
|
|
StandardConversionTask conversionTask = new StandardConversionTask(inputFile, outputFile, outputFormat);
|
|
conversionTask.setDefaultLoadProperties(defaultLoadProperties);
|
|
conversionTask.setInputFormat(inputFormat);
|
|
officeManager.execute(conversionTask);
|
|
}
|
|
|
|
}
|