Ruby on rails pdftk、tempfile和rails

Ruby on rails pdftk、tempfile和rails,ruby-on-rails,pdftk,temporary-files,Ruby On Rails,Pdftk,Temporary Files,好吧,我试过各种各样的东西,但我不完全确定这会奏效。我需要合并的PDF位于服务器上,指向它们的链接是硬编码的。pdftk在我的终端本地工作,但不使用这些远程链接。所以我不确定这是否会工作,一旦我得到它的生产 基本上,我正在尝试编写一个方法来检索一组选定的pdf,并将它们合并到一个pdf中供用户下载 但我很难理解如何通过rails应用程序利用tempfiles和运行终端命令 方法如下: def create @routes = TransitRoute.find(params[:selected_

好吧,我试过各种各样的东西,但我不完全确定这会奏效。我需要合并的PDF位于服务器上,指向它们的链接是硬编码的。pdftk在我的终端本地工作,但不使用这些远程链接。所以我不确定这是否会工作,一旦我得到它的生产

基本上,我正在尝试编写一个方法来检索一组选定的pdf,并将它们合并到一个pdf中供用户下载

但我很难理解如何通过rails应用程序利用tempfiles和运行终端命令

方法如下:

def create
@routes = TransitRoute.find(params[:selected_routes])
@selected_routes = @routes.collect {|x| x.new_pdf_link + " "}
Tempfile.open('prefix', "#{Rails.root}/tmp") do |f|
    f.print("pdftk #{@selected_routes} cat output temporary.pdf")
    f.flush
    f.read
  end

respond_to do |format|
  format.html
end
end
我有几个问题:

  • 我的tempfile已写入正确的命令行:

    pdftk 1.pdf 2.pdf猫输出新.pdf

  • 如何运行此行以创建新的.pdf

  • 我应该用新的pdf替换tempfile,还是将新的pdf写入tempfile,或者只是在它自己的位置制作新的pdf?如果是后者,我如何使其成为暂时的

  • 如何获得新pdf的链接,以便用户下载

  • 其中一些可能是基本的东西,但我从来没有想过要像这样动态地制作PDF

    哦,是的,这个应用程序也在Rails 2.3中


    谢谢你的帮助。

    好的,我已经开始工作了。以下是新代码,以防有人提出改进建议或有相同问题:

    def create
     file = Tempfile.new('temp_route_pdf', "#{Rails.root}/tmp/")
     @routes = TransitRoute.find(params[:selected_routes])
     selected_routes = @routes.collect {|x| x.new_pdf_link + " "}
     route_names = @routes.collect {|x| x.short_name + "_"}
     @generated_pdf_file = "#{route_names}routes.pdf"
     `pdftk #{selected_routes}cat output #{file.path}`
     raise Exception unless $?.success?
     send_file( "#{file.path}",
           :type => "application/pdf",
           :filename => "#{@generated_pdf_file}",
           :disposition => 'inline')
    end