【问题标题】:Convert HTML to word file ?将 HTML 转换为 word 文件?
【发布时间】:2013-08-24 16:44:39
【问题描述】:

如何将 ruby​​ 文件转换为 word 文件,即(docx 文件)。对于pdf,我们虾gem。但是是否有任何用于 word 文件的宝石。我正在尝试将我的 html 文件转换为 word 文件,以便用户也可以对其进行编辑。在这种情况下应该怎么做?我打算将该文件转换为word文件。有没有可能。

【问题讨论】:

  • f = File.new('myword.docx', 'w') f.write(File.read('my_html.html')) f.close...试试这个谢谢
  • @RajarshiDas:为什么不直接做FileUtils.cp
  • 您要复制什么? @kabie 使用File.readlines
  • 您要使用 Rails 导出到 doc 吗?

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 rubygems


【解决方案1】:

如果您使用的是 Rails:

在初始化程序/mime_types.rb:

Mime::Type.register 'application/vnd.ms-word', :msword 

在您的控制器中:

说你想导出表演动作:

def show
  @item = Item.find params[:id]
  respond_to do |format|
    format.html # show.html.erb
    format.xml { render :xml => @item }
    format.msword { set_header('msword', "#{@item.title}.doc") }
    format.pdf do
        render :pdf => 'Coming soon...', :layout => false
    end
  end
 end

在application_controller.rb中定义set_header:

def set_header(p_type, filename)
  case p_type
    when 'xls'
     headers['Content-Type'] = "application/vnd.ms-excel; charset=UTF-8'"
     headers['Content-Disposition'] = "attachment; filename=\"#{filename}\""
     headers['Cache-Control'] = ''

    when 'msword'
     headers['Content-Type'] = "application/vnd.ms-word; charset=UTF-8"
     headers['Content-Disposition'] = "attachment; filename=\"#{filename}\""
     headers['Cache-Control'] = ''

   end
 end

现在定义一个 show.msword.erb #you 可以使用任何模板处理程序,如 haml 等。

YOUR HTML HERE TO EXPORT TO DOC
AS LIKE NORMAL ERB TEMPLATE

【讨论】:

  • 文件已创建,但当我打开它时出现乱码,word 要求我转换格式
【解决方案2】:

使用 htmltoword 宝石。 https://github.com/nickfrandsen/htmltoword

它自 2015 年 11 月以来没有更新,但运行良好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    相关资源
    最近更新 更多