2012-04-26 11 views
5

Ist es möglich, Notizen zu einer Powerpoint-Folie hinzuzufügen, die programmatisch mit Apache POI erstellt wurde?Hinzufügen von Notizen zu einer PowerPoint-Folie mit Apache POI

Hier ist, was ich bisher

Slide slide = ppt.createSlide(); 
org.apache.poi.hslf.record.Notes notesRecord = new ???; // <--- No Public constructor 
org.apache.poi.hslf.model.Notes noteModel = new org.apache.poi.hslf.model.Notes(notesRecord); // <--- Only one constructor which takes a org.apache.poi.hslf.record.Notes 
// hopefully make some notes 
// add the notes to the slide 
slide.setNotes(noteModel); 

Wie Sie sehen können, gibt es keine Möglichkeit zu sein scheint, die Objekte zu schaffen, um Notizen zu dem Folie-Objekt hinzuzufügen.

Aufruf

Notes notesSheet = slide.getNotesSheet(); 

... null zurück.

Gibt es ein anderes Mittel, um das notwendige Notes-Objekt zu erstellen, vielleicht mit einer Factory-Klasse, die ich nicht gefunden habe?

Oder gibt es eine andere Möglichkeit, einer Folie eine Notiz hinzuzufügen, die nicht mit den Notizklassen arbeitet?

Antwort

7

Die Frage ist ziemlich alt, aber ich hoffe, diese Antwort wird jemandem helfen. Apache POI 3.12 den folgenden Code verwenden, sollten Sie einen Text als Anhang einer Folie hinzufügen:

// create a new empty slide show 
    XMLSlideShow ppt = new XMLSlideShow(); 

    // add first slide 
    XSLFSlide slide = ppt.createSlide(); 

    // get or create notes 
    XSLFNotes note = ppt.getNotesSlide(slide); 

    // insert text 
    for (XSLFTextShape shape : note.getPlaceholders()) { 
     if (shape.getTextType() == Placeholder.BODY) { 
      shape.setText("String"); 
      break; 
     } 
    } 

    // save 
    [...] 
+0

Das funktioniert. Vielen Dank! – GBP

0

Das Hinzufügen von PowerPoint-Notizen wird in der neuesten Version nicht unterstützt.

+1

Es wäre wahrscheinlich nicht zu schwer sein, die Funktion allerdings hinzufügen, wenn jemand interessierte sich für freiwilliges Engagement die Arbeit zu tun! All die Aufzeichnung Unterstützung ist vorhanden, es würde nur Verkabelung in der richtigen Reihenfolge in der Usermodel Code – Gagravarr

+0

Ich habe nicht viel Zeit, aber vielleicht ein Kopfgeld wäre ein guter Anreiz. – eabraham

+0

Diese Antwort ist überholt –