如何使用虾访问后面的页码

How to access later page numbers using prawn

我正在构建一个 rails 应用程序,它可以根据用户内容动态生成 PDF。我的设置如下:

report 动作,在我的 Projects 控制器中定义:

def report
    respond_to do |format|
      format.pdf do
        pdf = ReportPdf.new(arguments)
        send_data pdf.render, 
            filename: 'report.pdf', 
            type: 'application/pdf', 
            disposition: 'inline'
      end
    end
end

控制器调用我在app\pdfs\report_pdf.rb中定义的classReportPdf,如下:

    class ReportPdf < Prawn::Document
      include ActionView::Helpers::NumberHelper

      def initialize(arguments)
        super()
          chapter_1
          chapter_2 
          # etc...
      end

      def chapter1
        # lenght depends on user input 
      end

     def chapter2
        # lenght depends on user input 
     end 
     #etc..
   end

在我的 PDF 的第一页(在 chapter_1 中)我希望打印文档的总页数。

text "This document contains #{n} pages"

page_count 但是只有 returns 从当前页面倒数的数字。

如何从第一页访问最后一个页码?

我建议先获取所有用户输入,然后再计算页数。现在你正试图停止一个你还不知道的数字的循环。

示例

for pages in pdf do
   number_of_pages += 1
end

此时我们不知道 PDF 会有多少页

所以我会在第一章之前添加一个方法来收集页数的输入。