2016-08-13 2 views
0
public void save() 
{ Presentation pres = new Presentation(filename); 

ISlide slide = pres.getSlides().get_Item(0); 

IShape shape= null; 


for (int i = 0 ; i < slide.getShapes().size() ; i++) 
{ shape = slide.getShapes().get_Item(i); 
if (shape.getPlaceholder() != null) 
{ 
((IAutoShape)shape).getTextFrame().setText(txtArea.getText()); 
} 
} 


pres.save(filename,SaveFormat.Ppt); 

} 

Этот код предназначен для изменения текста, но он не работает. Я использовал два API, в то время, отображение кода ниже:изменить текст слайда в java используя aspose api ppt

public void Display(int currentPage, String source) 
    { 
     try { 
     // Create a slideshow object; this creates an underlying POIFSFileSystem object for us 
     SlideShow ppt = new SlideShow(new HSLFSlideShow(source)); 
     current=currentPage; 
     // Get all of the slides from the PPT file 
     Slide[] slides = ppt.getSlides(); 
     Dimension pgsize = ppt.getPageSize(); 
     all = slides.length; 
     String temp=""; 
     lblPage.setText(currentPage+"/"+all); 

      BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB); 
      Graphics2D graphics = img.createGraphics(); 
graphics.setPaint(Color.white); 
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height)); 

//render 
slides[currentPage-1].draw(graphics); 
//save the output 
      /*FileOutputStream out = new FileOutputStream("slide-" + (i + 1) + ".png"); 
      javax.imageio.ImageIO.write(img, "png", out); 
      out.close(); 
      //ImageIcon icon = new ImageIcon("slide-" + (i + 1) + ".png");*/ 
      ImageIcon icon = new ImageIcon(img); 
      lblPresentasi.setIcon(icon); 
// Obtain metrics about the slide: its number and name 
      int number = slides[currentPage-1].getSlideNumber(); 
      String title = slides[currentPage-1].getTitle(); 
      // Obtain the embedded text in the slide 
      TextRun[] textRuns = slides[currentPage-1].getTextRuns(); 
      System.out.println("Slide " + number + ": " + title); 
      System.out.println("\tText Runs"); 
      txtArea.setText("Slide : " + number + " Title : " + title + "\n"); 
      for (int j = 0; j < textRuns.length; j++) { 
       // Display each of the text runs present on the slide 
       System.out.println("\t\t" + j + ": " + textRuns[j].getText()); 
       temp=txtArea.getText(); 
       txtArea.setText(temp+"\t\t" + textRuns[j].getText() + "\n"); 
      } 

      // Obtain the notes for this slide 
      System.out.println("\tNotes: "); 
      Notes notes = slides[currentPage-1].getNotesSheet(); 
      if (notes != null) { 
       // Notes are comprised of an array of text runs 
       TextRun[] notesTextRuns = notes.getTextRuns(); 
       for (int j = 0; j < notesTextRuns.length; j++) { 
        System.out.println("\t\t" + notesTextRuns[j].getText()); 
       } 
      } 


    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    } 

Может кто-нибудь, пожалуйста, помогите, я пытаюсь сделать простой редактор Powerpoint в Java. Я хочу изменить текст в текстовой области нажмите кнопку сохранения, чтобы текст изменился и вызывается функция отображения.

ответ

0

Я наблюдал ваш пример кода и хотел бы поделиться им, что касается кода, связанного с Aspose.Slides, проблема не возникает, и это совершенно правильно. Вы можете проверить это, открыв сохраненную презентацию с измененным текстом в PowerPoint. Если у вас возникнут какие-либо проблемы, мы будем рады помочь вам в дальнейшем. Вы также можете связаться с нами в Aspose.Slides support forums.

Я работаю с Aspose в качестве разработчика-евангелиста.