123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.util.HashMap;
- import java.util.Map;
- import org.apache.commons.io.FilenameUtils;
- import org.apache.commons.io.IOUtils;
- 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.OpenOfficeException;
- import com.artofsolving.jodconverter.openoffice.converter.AbstractOpenOfficeDocumentConverter;
- import com.artofsolving.jodconverter.openoffice.converter.StreamOpenOfficeDocumentConverter;
- import com.sun.star.beans.PropertyValue;
- import com.sun.star.container.XNamed;
- import com.sun.star.document.XExporter;
- import com.sun.star.document.XFilter;
- import com.sun.star.drawing.XDrawPage;
- import com.sun.star.drawing.XDrawPages;
- import com.sun.star.drawing.XDrawPagesSupplier;
- import com.sun.star.frame.XComponentLoader;
- import com.sun.star.lang.XComponent;
- import com.sun.star.lang.XMultiComponentFactory;
- import com.sun.star.ucb.XFileIdentifierConverter;
- import com.sun.star.uno.UnoRuntime;
- public abstract class AbstractDokeosDocumentConverter extends AbstractOpenOfficeDocumentConverter {
-
-
- int width;
- int height;
-
- public AbstractDokeosDocumentConverter(OpenOfficeConnection connection, int width, int height) {
- super(connection);
- this.width = width;
- this.height = height;
- }
- public AbstractDokeosDocumentConverter(OpenOfficeConnection connection, DocumentFormatRegistry formatRegistry, int width, int height) {
- super(connection, formatRegistry);
- this.width = width;
- this.height = height;
- }
-
- protected void convertInternal(InputStream inputStream, DocumentFormat inputFormat, OutputStream outputStream, DocumentFormat outputFormat) {
- File inputFile = null;
- File outputFile = null;
- try {
- inputFile = File.createTempFile("document", "." + inputFormat.getFileExtension());
- OutputStream inputFileStream = null;
- try {
- inputFileStream = new FileOutputStream(inputFile);
- IOUtils.copy(inputStream, inputFileStream);
- } finally {
- IOUtils.closeQuietly(inputFileStream);
- }
-
- outputFile = File.createTempFile("document", "." + outputFormat.getFileExtension());
- convert(inputFile, inputFormat, outputFile, outputFormat);
- InputStream outputFileStream = null;
- try {
- outputFileStream = new FileInputStream(outputFile);
- IOUtils.copy(outputFileStream, outputStream);
- } finally {
- IOUtils.closeQuietly(outputFileStream);
- }
- } catch (IOException ioException) {
- throw new OpenOfficeException("conversion failed", ioException);
- } finally {
- if (inputFile != null) {
- inputFile.delete();
- }
- if (outputFile != null) {
- outputFile.delete();
- }
- }
- }
- protected void convertInternal(File inputFile, DocumentFormat inputFormat, File outputFile, DocumentFormat outputFormat) {
- Map loadProperties = new HashMap();
- loadProperties.putAll(getDefaultLoadProperties());
- loadProperties.putAll(inputFormat.getImportOptions());
- Map storeProperties = outputFormat.getExportOptions(inputFormat.getFamily());
- synchronized (openOfficeConnection) {
- XFileIdentifierConverter fileContentProvider = openOfficeConnection.getFileContentProvider();
- String inputUrl = fileContentProvider.getFileURLFromSystemPath("", inputFile.getAbsolutePath());
- String outputUrl = fileContentProvider.getFileURLFromSystemPath("", outputFile.getAbsolutePath());
-
- try {
- loadAndExport(inputUrl, loadProperties, outputUrl, storeProperties);
- } catch (OpenOfficeException openOfficeException) {
- throw openOfficeException;
- } catch (Throwable throwable) {
-
-
- throw new OpenOfficeException("conversion failed", throwable);
- }
- }
- }
- abstract protected void loadAndExport(String inputUrl, Map loadProperties, String outputUrl, Map storeProperties) throws Exception;
-
-
-
- protected DocumentFormat guessDocumentFormat(File file) {
- String extension = FilenameUtils.getExtension(file.getName());
- DocumentFormat format = getDocumentFormatRegistry().getFormatByFileExtension(extension);
- if (format == null) {
-
- }
- return format;
- }
- }
|