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

Reply via email to