2012-04-26 36 views
5

Czy można dodawać notatki do slajdu PowerPoint utworzonego programowo za pomocą Apache POI?Dodawanie notatek do slajdu PowerPoint za pomocą Apache POI

Oto co mam tak daleko

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); 

Jak widać, nie wydaje się być sposobem na stworzenie obiektów potrzebnych do dodawania notatek do obiektu slajdów.

Wywołanie

Notes notesSheet = slide.getNotesSheet(); 

... zwraca null.

Czy istnieje inny sposób na utworzenie niezbędnego obiektu notatki, być może przy użyciu klasy fabrycznej, której nie znalazłem?

Czy istnieje inny sposób dodania notatki do slajdu, który nie wymaga pracy z klasami Notatek?

Odpowiedz

7

Pytanie jest dość stare, ale mam nadzieję, że ta odpowiedź pomoże komuś. Korzystając z Apache POI 3.12, poniższy kod powinien dodać trochę tekstu jako notatki do slajdu:

// 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

To działa. Dzięki! – GBP

0

Dodawanie notatek do programu PowerPoint nie jest obsługiwane w najnowszej wersji.

+1

Prawdopodobnie dodanie tej funkcji nie byłoby zbyt trudne, gdyby ktoś był zainteresowany wykonaniem pracy! Obsługa wszystkich rekordów jest obecna, wystarczy podłączyć w odpowiedniej kolejności kod użytkownika – Gagravarr

+0

Nie mam zbyt wiele czasu, ale może nagroda byłaby dobrą zachętą. – eabraham

+0

ta odpowiedź jest nieaktualna –

Powiązane problemy