use of com.sun.star.frame.XComponentLoader in project translationstudio8 by heartsome.
the class StreamOpenOfficeDocumentConverter method loadAndExport.
/**
* Load and export.
* @param inputStream
* the input stream
* @param importOptions
* the import options
* @param outputStream
* the output stream
* @param exportOptions
* the export options
* @throws Exception
* the exception
*/
@SuppressWarnings("unchecked")
private void loadAndExport(InputStream inputStream, Map importOptions, OutputStream outputStream, Map exportOptions) throws Exception {
XComponentLoader desktop = openOfficeConnection.getDesktopObject();
Map /* <String,Object> */
loadProperties = new HashMap();
loadProperties.putAll(getDefaultLoadProperties());
loadProperties.putAll(importOptions);
// doesn't work using InputStreamToXInputStreamAdapter; probably because
// it's not XSeekable
// property("InputStream", new
// InputStreamToXInputStreamAdapter(inputStream))
//$NON-NLS-1$
loadProperties.put("InputStream", new ByteArrayToXInputStreamAdapter(IOUtils.toByteArray(inputStream)));
XComponent document = desktop.loadComponentFromURL("private:stream", "_blank", 0, //$NON-NLS-1$ //$NON-NLS-2$
toPropertyValues(loadProperties));
if (document == null) {
//$NON-NLS-1$
throw new OPException(Messages.getString("ooconverter.StreamOpenOfficeDocumentConverter.6"));
}
refreshDocument(document);
Map /* <String,Object> */
storeProperties = new HashMap();
storeProperties.putAll(exportOptions);
//$NON-NLS-1$
storeProperties.put("OutputStream", new OutputStreamToXOutputStreamAdapter(outputStream));
try {
XStorable storable = (XStorable) UnoRuntime.queryInterface(XStorable.class, document);
//$NON-NLS-1$
storable.storeToURL("private:stream", toPropertyValues(storeProperties));
} finally {
document.dispose();
}
}
Aggregations