ich suche derzeit nach einer Möglichkeit ein MS Word Dokument zu erzeugen.
Gegen ist eine Word - Vorlage. In diese Vorlage sollen Daten aus der
Datenbank
eingefügt werden - das Dokument soll dann zum Nutzer gesendet werden.
In Java / kein Problem - hier wird man praktisch mit Libs erschlagen -
aber
für Ruby / Rails habe ich noch nichts gefunden.
für ruby gibts ein “win32ole” lib. habe sie selbst noch nicht benutzt,
aber schau mal bei
david mullett vorbei. dort gibts beispiele für word und excel.
für ruby gibts ein “win32ole” lib. habe sie selbst noch nicht benutzt,
aber schau mal bei
david mullett vorbei. dort gibts beispiele für word und excel.
Muß es denn unbedingt ein Dokument im Word-Format sein, oder würde z.B.
PDF auch genügen? Falls letzteres, da gibt es ja schon Lösungen für Ruby
(Rails vielleicht auch, weiß ich nicht).
Beim Stichwort “Google”. Theoretisch wäre da ja eine Lösung denkbar, bei
der man sein Dokument per Google-API erstellen und dann einen Download im
Word-Format (oder Openoffice) durchführt und dieses Dokument dem Benutzer
sendet.
leider habe ich mich ein wenig ungeschickt ausgrückt. Der Punkt ist,
dass die
Vorlage ein Word-Dokument ist - was ich auch gerne belassen würde.
Ob hinterher ein .doc/.docx/.odf oder pdf herauskommt ist nicht ganz so
wichtig - ein Format, dass einfach zu bearbeiten wäre (.doc/.odf) wäre
aber
nett.
Derzeit überlege ich, es es nicht das beste wäre, die .docs ins odf zu
konviertieren und den XML-Baum zu bearbeiten ohne ihn zu verstehen (also
ohne
ihn über die XML-Ebene hinaus zu interpretieren) zu bearbeiten.
Die “Fachseite” von OpenOffice zu überzeugen scheint eigentlich
realistisch.
Muß es denn unbedingt ein Dokument im Word-Format sein, oder würde
z.B.
PDF auch genügen? Falls letzteres, da gibt es ja schon Lösungen für Ruby
(Rails vielleicht auch, weiß ich nicht).
Beim Stichwort “Google”. Theoretisch wäre da ja eine Lösung denkbar,
bei
der man sein Dokument per Google-API erstellen und dann einen Download
im
Word-Format (oder Openoffice) durchführt und dieses Dokument dem
Benutzer
sendet.
Derzeit überlege ich, es es nicht das beste wäre, die .docs ins odf zu
konviertieren und den XML-Baum zu bearbeiten ohne ihn zu verstehen (also ohne
ihn über die XML-Ebene hinaus zu interpretieren) zu bearbeiten.
leider habe ich mich ein wenig ungeschickt ausgrückt. Der Punkt ist, dass
die
Vorlage ein Word-Dokument ist - was ich auch gerne belassen würde.
ja, aber wenn das nicht unbedingt Voraussetzung sein muß und wenn sich
das
nicht laufend ändert, dann könnte man sich ja für diese Dokumente
auch
ein Rahmen-Dokument (als Ruby-Programm) definieren welches pdf-Output
erstellt und darin dann jeweils nur die individuellen Sachen
parametrisiert
ausgeben.
Derzeit überlege ich, es es nicht das beste wäre, die .docs ins odf zu
konviertieren und den XML-Baum zu bearbeiten ohne ihn zu verstehen (also
ohne
ihn über die XML-Ebene hinaus zu interpretieren) zu bearbeiten.
Ich habe mich ja etwas mit der Spreadsheet-Seite von Openoffice
beschäftigt - wenn das bei Textdokumenten ähnlich aufgebaut ist und
du
im wesentlichen nur Textersatz brauchst, dann sollte es keine großen
Schwierigkeiten geben, in der entsprechenden XML-Datei einfach die
nötigen
Änderungen vorzunehmen und das alles wieder als Openoffice-Dokument
zusammenzupacken.
ja, aber wenn das nicht unbedingt Voraussetzung sein muß und wenn
sich das nicht laufend ändert, dann könnte man sich ja für diese
Dokumente auch ein Rahmen-Dokument (als Ruby-Programm) definieren
wenn dann gleich eine DSL, ist auch viel angenehmer als XML oder gar
yaml.
Ich bin zur Zeit am überlegen ob das für ein Projekt von mir Sinn
macht bei dem
die User Karten als PDF erstellt bekommen und ich ein paar Vorlagen
haben möchte.
Bei der Preisberechnung wird’s auf jeden Fall eine DSL.
Es ist schon notwendig, dass die Fachseite das Dokument ohne großen
Aufwand
ändern kann.
dann wäre vielleicht die Openoffice-Lösung zu bevorzugen, bei der die
Fachseite dann ein Dokument bearbeiten kann, in dem dann z.B.
Variablen-Ersetzung a la ${VORNAME}, ${NACHNAME} etc. durchgeführt wird.
na, ganz trivial ist aber auch die Lösung nicht, oder?! Wenn ich das
noch richtig im Kopf habe, dann war das odt ja ein zip, in dem der
Inhalt als content.xml abgelegt war: Man muss das Ganze also
unzippen, suchen&ersetzen und dann wieder zippen - oder gibt’s da
noch einen einfacheren Weg? Ãœber die Office SDK’s vielleicht? Ein
einfacherer Weg würde mich jetzt aber dann auch interessieren.,…
leider habe ich mich ein wenig ungeschickt ausgrückt. Der Punkt ist, dass
die
Vorlage ein Word-Dokument ist - was ich auch gerne belassen würde.
ja, aber wenn das nicht unbedingt Voraussetzung sein muß und wenn sich das
nicht laufend ändert, dann könnte man sich ja für diese Dokumente auch
ein Rahmen-Dokument (als Ruby-Programm) definieren welches pdf-Output
erstellt und darin dann jeweils nur die individuellen Sachen parametrisiert
ausgeben.
Es ist schon notwendig, dass die Fachseite das Dokument ohne großen
Aufwand
ändern kann.
Man muss das Ganze also unzippen, suchen&ersetzen und dann wieder
zippen
gem install rubyzip
require ‘zip/zipfilesystem’
Zip::ZipFile.open(“bla.odt”) do |z|
x = z.file.read(“content.xml”)
x.gsub!(/bla/, “blub”) # na ja…
z.file.open(“content.xml”, “w”) { |f| f.write x }
end
(Sorry fuer Fehler, nicht getestet)
Gruesse, Carsten
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.