Hi,
I'm trying to render a page to a bitmap and I don't get it working. Drawing
primitives works but not render a document.
Do anyone know how to do this?
Here is my code:
public static BufferedImage makeThumb(File inFile) throws IOException,
BootstrapException, IllegalArgumentException, Exception,
java.io.IOException {
XComponentLoader xCompLoader =
OfficeConnection.getConnection().getXComponentLoader();
PropertyValue[] loadProps = new PropertyValue[2];
loadProps[0] = OfficeTools.makeProperty("ReadOnly", Boolean.TRUE);
loadProps[1] = OfficeTools.makeProperty("Hidden", Boolean.TRUE);
XComponent xDoc =
xCompLoader.loadComponentFromURL(OfficeTools.makeOpenOfficeUrl(inFile.getAbsolutePath()),
"_blank", 0, loadProps);
XRenderable xRender =
(XRenderable)UnoRuntime.queryInterface(XRenderable.class, xDoc);
if (xRender != null) {
System.out.println("Is Renderable");
XDevice xDevice =
OfficeConnection.getConnection().getXToolkit().createScreenCompatibleDevice(1024,
1024);
PropertyValue[] renderProps = new PropertyValue[2];
renderProps[0] = OfficeTools.makeProperty("RenderDevive", xDevice);
renderProps[1] = OfficeTools.makeProperty("PageRange", "1");
xRender.render(0, xDoc, renderProps);
XBitmap xBitmap = xDevice.createBitmap(0, 0, 1024, 1024);
if (xBitmap != null)
return ImageIO.read(new ByteArrayInputStream(xBitmap.getDIB()));
else
System.out.println("No bitmap created!");
} else {
System.out.println("Not Renderable");
}
return null;
}
Thanks in advance,
Erik Wigforss