2012-04-26 37 views
5

Có thể thêm ghi chú vào trang chiếu powerpoint được tạo lập trình bằng cách sử dụng Apache POI không?Thêm ghi chú vào trang chiếu PowerPoint bằng cách sử dụng Apache POI

Dưới đây là những gì tôi có cho đến nay

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

Như bạn có thể thấy, có dường như không thể là một cách để tạo ra các đối tượng cần thiết để thêm ghi chú vào đối tượng trượt.

Calling

Notes notesSheet = slide.getNotesSheet(); 

... trả về null.

Có cách nào khác để tạo đối tượng ghi chú cần thiết, có thể sử dụng một lớp nhà máy mà tôi chưa tìm thấy?

Hoặc, có cách nào khác để thêm ghi chú vào trang trình bày không liên quan đến làm việc với các lớp Ghi chú không?

Trả lời

7

Câu hỏi này khá cũ nhưng tôi hy vọng câu trả lời này sẽ giúp một người nào đó. Sử dụng Apache POI 3.12 mã sau đây nên thêm một số văn bản dưới dạng ghi chú vào trang trình bày:

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

Điều đó có hiệu quả. Cảm ơn! – GBP

0

Thêm ghi chú PowerPoint không được hỗ trợ trong bản phát hành mới nhất.

+1

Có thể sẽ không quá khó để thêm tính năng này, nếu ai đó quan tâm đến hoạt động tình nguyện! Tất cả các hỗ trợ kỷ lục là hiện tại, nó chỉ cần dây lên theo thứ tự đúng trong mã usermodel – Gagravarr

+0

Tôi không có nhiều thời gian nhưng có thể một tiền thưởng sẽ là một động lực tốt. – eabraham

+0

câu trả lời này đã lỗi thời –

Các vấn đề liên quan