如何将图像添加到rails中的单词(docx)模板?

时间:2016-12-23 09:32:52

标签: ruby-on-rails ruby pandoc

我有一个带有页眉和页脚的docx模板以及一些文本。现在我想在文档中添加一些具有指定最大大小的图像。

如果我尝试使用pandoc-ruby gem并生成一个html字符串并将其转换为word文档,那么我无法使用pandoc为生成的doc添加页眉和页脚。

2 个答案:

答案 0 :(得分:1)

在尝试了多种方法之后,我最终编写了一个gem Omnidocx来完成这项工作。

您可以找到gem here的源代码。

请查看使用此行下方的gem Omnidocx将图像添加到文档的示例。

    images_to_write = [ {
                      :path => "tmp/image1.jpg",     #URL || local path
                      :height => 500,
                      :width => 500,
                      :hdpi => 115,       #optional
                      :vdpi => 115        #optional
                      },
                      :path => "www.xyz.com/abc.jpeg",    #URL || local path
                      :height => 800,
                      :width => 500,
                      :hdpi => 115,       #optional
                      :vdpi => 115        #optional
                      }
                    ]   
    Omnidocx::Docx.write_images_to_doc(images_to_write=[], input_document_path, output_document_path)

答案 1 :(得分:0)

可以使用gem htmltoword' https://github.com/karnov/htmltoword 我做了这些动作。 在Mime_types中我设置了

Mime::Type.register "application/vnd.openxmlformats-officedocument.wordprocessingml.document", :docx

在路线中我设置

get "create_docx" => "Some_controllers#create_docx", format: 'docx'

我在'Some_controller'中创建了动作'create_docx',然后我传递了HTML-object,例如

@thumb = Nokogiri::HTML::Document.parse(@fips_tz.doc).css('img')[1]

我使用img frpm URI获得docx'/ Some_controller / create_docx' 不要设置格式,我们会收到错误'无法识别的度量单位:'否则。 https://github.com/karnov/htmltoword/issues/66