【问题标题】:ActiveAdmin export as {PDF, XML} custom links for each page每个页面的 ActiveAdmin 导出为 {PDF, XML} 自定义链接
【发布时间】:2014-09-18 00:01:05
【问题描述】:

我正在使用带有 activeadmin 的 Rails 3.2.8。我面临的问题是,如果我将exporting 的自定义链接设置为 pdf(使用 Prawn gem)或 xml,

ActiveAdmin.register Project do
  index :download_links => [:pdf, :xml]
  controller do
    ...
  end

  index do
    column "Icon" do |project|
    # And a couple of other columns.
  end
end

我最终会丢失页面上的所有自定义列(例如图标)。

我只想在当前页面上导出为 PDF 选项,因此我没有设置带有 XML 和 PDF 下载链接的全局 activeadmin 初始化程序。

那么,谁能帮我弄清楚如何才能在我当前的 activeadmin 页面中获得 pdf 的下载链接。

【问题讨论】:

  • AFAIK,ActiveAdmin 不支持开箱即用的 PDF 导出。你能告诉我你的pdf配置是什么吗?
  • 是的,你是对的,我创建了一个自定义 PDF 控制器来呈现 PDF 文件,因为我希望能够将给定页面导出为 PDF 文件。
  • Active Admin view to PDF的可能重复
  • 我已经分享了我的方法:stackoverflow.com/a/25841863/157816 请看看这个,如果可以的话,分享你的。谢谢。

标签: ruby-on-rails activeadmin prawn


【解决方案1】:

@sanghyun-park 这是我的 activeadmin 控制器,

  controller do
    def index
      index! do |format|
        format.html
        format.pdf {
         pdf = ProjectPdf.new(@projects)
         send_data pdf.render, filename: "Project_status.pdf",
                               disposition: "inline"
        }
      end
    end
  end

这是我必须渲染 PDF 文档的模型,

class ProjectPdf < Prawn::Document
    def initialize(projects)
        super(top_margin: 50)
        text "Summary of Projects" , :style => :bold, :size => 20
        proj_array = [[ "Company Name" , "Project Name", "Project State", 
     "Latest Upload"]]
        projects.each do |item|
              proj_array << [ 
                item.company.name.nil? ? "" : item.company.name,
                item.name,
                item.project_state.nil? ? "" : item.project_state.name, 
                item.updated_at.strftime("%m/%y/%d \n %l:%M %p")
              ]
        end
    end

您的approach 看起来更简洁,更容易在 activeadmin 中将页面导出为 PDF。

【讨论】:

  • 感谢您分享您的代码。我没用过大虾。大虾似乎可以更精确地控制 PDF 布局。我认为 WickedPDF 更易于使用,因为它将纯 HTML 文档转换为 PDF。
猜你喜欢
  • 2016-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2014-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多