poi-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Herve Girod <herve.gi...@gmail.com>
Subject Some questions for the use of HSLF API
Date Wed, 13 Apr 2011 22:14:02 GMT

I'm using the HSLF API for some time now, and it works very well, but I have
some questions on some things I can't do. I do'nt know if it's because the
API is (still) incomplete on some areas, or just if I'm not using it well.
My questions are:
- Is it possible to embed Fonts in a PowerPoint file by using the API? It's
possible to do it by using an existing PowerPoint file master, but I would
like to do it when I encounter a Font which does not exist in the
FontCollection. For example is it possible to create a new PPFont "from
scratch" using an existing TTF file, and add it to the collection?
- Is it possible to group Shapes? I tried to use ShapeGroups, but the
resulting PPT file still did not have groups of Shapes

And finally, is it possible to add image data to the slides. I tried the
following approach, but it did not work (no exception, but no image either):

    public boolean drawImage(Image image, int dx1, int dy1, int dx2, int
dy2, int sx1, int sy1,  int sx2, int sy2, Color color1, ImageObserver
observer) {
        Rectangle rectangle = new Rectangle(sx1, sy1, sx2 - sx1, sy2 - sy1);
        Shape shape = trans.createTransformedShape(rectangle);
        Rectangle rec = shape.getBounds();
        addImage(image, rec);

        return true;

    private void addImage(Image image, Rectangle rec) {
        SlideShow show = slide.getSlideShow();
        if (image instanceof RenderedImage) {
            try {
                byte[] b = getImageData((RenderedImage)image);
                int idx = show.addPicture(b, Picture.PNG);
                Picture pict = new Picture(idx);
            } catch (IOException e) {

    private byte[] getImageData(RenderedImage image) throws IOException {
        ByteArrayOutputStream stream = new ByteArrayOutputStream(100);
        ImageIO.write(image, "png", stream);

        return stream.toByteArray();

FYI, I have developed a Graphics2D drop-in which draw in a PPT context a
Swing hierarchy, and apart from these problems and other small bugs, it
works well. The project is here: https://sourceforge.net/projects/j661/


Herve Girod

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message