javascript - modal - Crea una presentación en powerpoint con Rails
jquery rails 5 (2)
Estoy en una situación en la que tengo que crear una presentación de PowerPoint programáticamente y servir el archivo ppt resultante a través de una aplicación web, preferiblemente usando Rails, JavaScript o Ruby. es posible? Si es así, ¿cómo y con qué herramientas?
Estoy abierto a todas las sugerencias sobre cómo abordar mejor este problema. ¡Gracias!
http://tomasvarsavsky.com/2009/04/04/simple-word-document-templating-using-ruby-and-xml/
Si puede crear la plantilla y completar los valores, considere este enfoque.
Formatos de archivo de Office Open XML
Los nuevos formatos de archivo de Office (archivos .docx, .xlsx, .pptx) son básicamente una colección comprimida de archivos XML. Nos enfocamos en los archivos de Word (.docx) pero este enfoque también funcionaría con cualquiera de los otros tipos de archivos. La especificación para el formato pesa en varios miles de páginas. Producir un archivo desde cero sin una biblioteca específica que maneje todas las complejidades del formato sería toda una tarea. En cambio, redactamos las plantillas en Word y colocamos marcadores para indicarle a nuestro motor de plantillas dónde insertar valores. Creamos propiedades de documento que hacen referencia a los valores de datos y los agregamos como campos en el documento en el lugar donde se deben insertar los valores. Por ejemplo, podríamos tener campos como:
label_tag #{data[:user].name}
label_tag #{data[:user].address}
label_tag #{data[:booking].number}
label_tag #{data[:booking].items.collect{|i| i.name}.join(‘,’)}
De lo contrario, hubo un intento (el WIP subido hace tres años, no espero que se complete, pero debería ser benéfico al crear un enfoque para crear diapositivas) en la creación de diapositivas de PowerPoint. Aquí hay una muestra del código
https://github.com/jpoz/rubypoint/blob/master/lib/rubypoint/presentation.rb
def new_slide
RubyPoint::Slide.new(self)
end
Esta gema de rubí parece más madura que la mencionada en la respuesta aceptada actual.
https://github.com/pythonicrubyist/powerpoint http://rubygems.org/gems/powerpoint
require ''powerpoint''
@deck = Powerpoint::Presentation.new
# Creating an introduction slide:
title = ''Bicycle Of the Mind''
subtitle = ''created by Steve Jobs''
@deck.add_intro title, subtitle
# Creating a text-only slide:
# Title must be a string.
# Content must be an array of strings that will be displayed as bullet items.
title = ''Why Mac?''
content = [''Its cool!'', ''Its light.'']
@deck.add_textual_slide title, content
# Creating an image Slide:
# It will contain a title as string.
# and an embeded image
title = ''Everyone loves Macs:''
image_path = ''samples/images/sample_gif.gif''
@deck.add_pictorial_slide title, image_path
# Specifying coordinates and image size for an embeded image.
# x and y values define the position of the image on the slide.
# cx and cy define the width and height of the image.
# x, y, cx, cy are in points. Each pixel is 12700 points.
# coordinates parameter is optional.
coords = {x: 124200, y: 3356451, cx: 2895600, cy: 1013460}
@deck.add_pictorial_slide title, image_path, coords
# Saving the pptx file to the current directory.
@deck.save(''test.pptx'')