50 votes

Création de documents Microsoft Word (.docx) en Ruby

Existe-t-il un moyen simple de créer des documents Word (.docx) dans une application Ruby ? En fait, dans mon cas, il s'agit d'une application Rails servie par un serveur Linux.

Une pierre précieuse semblable à Crevettes mais pour DOCX au lieu du PDF serait génial !

5voto

J'ai fait quelque chose comme ça récemment. Voici l'article de blog : http://tomasvarsavsky.com/2009/04/04/simple-word-document-templating-using-ruby-and-xml/

4voto

Nick Points 685

En utilisant une technique très similaire à celle suggérée par Grant Wagner, j'ai créé une gemme Ruby html to word qui devrait vous permettre de produire facilement des fichiers Word docx à partir de votre application Ruby. Vous pouvez le consulter à l'adresse suivante http://github.com/nickfrandsen/htmltoword - Il suffit de lui passer une chaîne html pour qu'il crée un fichier word docx correspondant.

def show
  respond_to do |format|
    format.docx do
      file = Htmltoword::Document.create params[:docx_html_source], "file_name.docx"
      send_file file.path, :disposition => "attachment"
    end
  end
end

J'espère que vous le trouverez utile. Si vous rencontrez des problèmes, n'hésitez pas à ouvrir un problème sur Github.

4voto

edi9999 Points 2679

Divulgation : Je suis le chef du projet docxtemplater.

Je sais que vous cherchez une solution ruby, mais comme toutes les autres solutions ne font que vous dire comment le faire globalement, sans vous donner une bibliothèque qui fait exactement ce que vous voulez, voici une solution basée sur JS ou NodeJS (fonctionne dans les deux)

Bibliothèque DocxTemplater

Démonstration de la bibliothèque

Vous pouvez également l'utiliser en ligne de commande :

npm install docxtemplater -g

docxtemplater <configFile>

----config.docxFile: The input file in docx format
----config.outputFile: The outputfile of the document

3voto

Michael Cindric Points 63

C'est une façon pour Doccy ( doccyapp.com ) a une API qui fait exactement cela et que vous pouvez utiliser. Il prend en charge les fichiers docx, odt et pages et convertit également les fichiers PDF si vous le souhaitez.

2voto

JasonPlutext Points 6417

En complément de la réponse de Grant, vous pouvez également envoyer à Word un fichier "Flat OPC", qui est essentiellement le docx décompressé et concaténé pour créer un seul fichier xml. De cette façon, vous pouvez remplacer [USER-PLACEHOLDER] dans un seul fichier et en finir avec lui (c'est-à-dire sans avoir à le compresser ou le décompresser).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X