module Asposeslidesjava module ImportHtml def initialize() data_dir = File.dirname(File.dirname(File.dirname(File.dirname(__FILE__)))) + '/data/Text/' # Create an instance of Presentation class pres = Rjb::import('com.aspose.slides.Presentation').new # Get the first slide slide = pres.getSlides().get_Item(0) # Adding the AutoShape to accomodate the HTML content ashape = slide.getShapes().addAutoShape(Rjb::import('com.aspose.slides.ShapeType').Rectangle, 10, 10, pres.getSlideSize().getSize().getWidth(), pres.getSlideSize().getSize().getHeight()) ashape.getFillFormat().setFillType(Rjb::import('com.aspose.slides.FillType').NoFill) # Adding text frame to the shape ashape.addTextFrame("") # Clearing all paragraphs in added text frame ashape.getTextFrame().getParagraphs().clear() # Loading the HTML file using InputStream input_stream = Rjb::import('java.io.FileInputStream').new(data_dir + "import.html") reader = Rjb::import('java.io.InputStreamReader').new(input_stream) data = reader.read() content = read_file(data_dir + "import.html") # Adding text from HTML stream reader in text frame ashape.getTextFrame().getParagraphs().addFromHtml(content) # Saving Presentation pres.save(data_dir + "output.pptx", Rjb::import('com.aspose.slides.SaveFormat').Pptx) puts "Done with html import, please check the output file." end def read_file(file_name) file = Rjb::import('java.io.File').new(file_name) contents = Rjb::import('java.lang.StringBuilder').new reader = Rjb::import('java.io.BufferedReader').new(Rjb::import('java.io.FileReader').new(file)) # repeat until all lines is read while (text = reader.readLine()) != nil contents.append(text).append("\n") end contents.toString() end end end