2012-11-15 13 views
5

Jestem w sytuacji, w której muszę programowo skompilować prezentację PowerPoint i udostępnić wynikowy plik PPT za pośrednictwem aplikacji internetowej, najlepiej za pomocą Rails, JavaScript lub Ruby. czy to możliwe? Jeśli tak, jak i za pomocą jakich narzędzi?Tworzenie prezentacji Powerpoint z Railsami

Jestem otwarty na wszelkie sugestie, jak najlepiej rozwiązać ten problem. Dzięki!

+1

Czy trzeba być plik PowerPoint czy też tworzenia prezentacji HTML, który działa w pełnym ekranie przeglądarki wystarczy? – Bergi

+0

Musi to być plik programu PowerPoint. – MalSu

+0

OK; więc mówisz o JavaScript na serwerze? – Bergi

Odpowiedz

4

http://tomasvarsavsky.com/2009/04/04/simple-word-document-templating-using-ruby-and-xml/

Jeśli można utworzyć szablon i wypełnić wartości, należy rozważyć takie podejście.

Office Open XML formaty plików

nowe formaty plików pakietu Office (.docx, .xlsx, .pptx pliki) są w zasadzie spakowany zbiór plików XML. Skoncentrowaliśmy się na plikach Word (.docx), ale to podejście działałoby również z innymi typami plików . Specyfikacja formatu waży na kilku tysiącach stron: . Tworzenie pliku od zera bez zbudowanej specjalnie na tym celu biblioteki , która obsługuje wszystkie zawiłości tego formatu, byłoby zadaniem całkiem niezłym. Zamiast tego przygotowaliśmy szablony w programie Word i umieściliśmy znaczniki , aby przekazać naszemu silnikowi szablonowemu, gdzie wstawić wartości. Stworzyliśmy właściwości dokumentu, które odwołują się do wartości danych i dodajemy je jako pola do miejsca, w którym mają zostać wstawione wartości. Na przykład, możemy mieć dziedzin jak:

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(‘,’)} 

W przeciwnym razie, nie było próbą (WIP przesłanych trzy lata temu, nie oczekiwać, iż zostanie zakończona, ale powinny być benfecial w tworzeniu podejścia do tworzenia slajdy) na tworzenie slajdów PowerPoint. Oto przykład kodu

https://github.com/jpoz/rubypoint/blob/master/lib/rubypoint/presentation.rb

def new_slide 
    RubyPoint::Slide.new(self) 
end 
+0

Dziękujemy! Zajmę się tym dzisiaj wieczorem! – MalSu

+0

To jest doskonałe wskazówki, akceptuję to jako odpowiedź, dzięki! – MalSu

+0

Czy znalazłeś rozwiązanie za pomocą tego? Mam podobny problem: – Joelio

4

Ten rubin gem wydaje się bardziej dojrzały niż wymienione w obecnym odpowiedź zaakceptowana.

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') 
Powiązane problemy