【问题标题】:Prawn PDFs not formatting correctly when using pdf = pdfname.new in Rails 3.2在 Rails 3.2 中使用 pdf = pdfname.new 时,Prawn PDF 格式不正确
【发布时间】:2013-10-07 19:04:18
【问题描述】:

我有一个存储在出勤模型中的不同教学活动的出勤列表,我想根据这些数据创建证书。

我的问题是对虾的格式似乎都不起作用。我无法更改文本大小、粗细、位置、使用模板等。似乎没有任何工作正常。

我的代码如下:

在出勤控制器中显示方法

 def show
    @attendance = Attendance.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @attendance }

      format.pdf do
         pdf = CertificatePdf.new(@attendance)
         send_data pdf.render, type: "application/pdf", disposition: "inline", filename: "Certificate"
      end
    end
  end

certificate_pdf.rb

class CertificatePdf < Prawn::Document
  def initialize(attendance)

    start_new_page(:template => "/pdfs/certificate_template.pdf")
    @attendance = attendance

    attendance_info
  end

  def attendance_info
    move_down(70)
    text "This is to certify that"
    text "#{@attendance.student.fname}" + " " + "#{@attendance.student.lname}", :size => 24
    text "Attended the " "#{@attendance.teaching_session.title}" + " " + "#{@attendance.teaching_session.teaching_format.format}"
    text "On " "#{@attendance.teaching_session.date}"
  end
end

如果有人可以请指教,我将不胜感激。

最好的祝愿,

迈克

【问题讨论】:

    标签: ruby-on-rails pdf prawn


    【解决方案1】:

    您正在覆盖 initialize 方法,因此来自 Prawn::Document(所有文档设置发生的地方)的 initialize 方法没有被执行。

    您应该在覆盖的initialize 方法中调用super。请注意,您可能需要一组空参数(使用super()),否则您的attendance 对象将被传递给Prawn::Document.new,它不知道如何处理它:

    def initialize(attendance)
      super()
    
      start_new_page(:template => "/pdfs/certificate_template.pdf")
      @attendance = attendance
    
      attendance_info
    end
    

    【讨论】:

    • 感谢您的回复@dylan-markow。我已经将 super() 调用添加到我覆盖的初始化方法中,但仍然没有乐趣!考勤模型中的文本和属性完美显示,但没有格式或模板。再次感谢您的帮助!
    【解决方案2】:

    你用的是什么版本的虾?

    我认为在最新版本中,他们转移到了您可以这样调用的 formatted_text 方法:

    formatted_text [ {:text => "Text you want to format.", :size => 24 } ]
    

    请参阅 text/formatted_text.rb 的大虾手册部分:

    http://prawn.majesticseacreature.com/manual.pdf

    【讨论】:

      猜你喜欢
      • 2010-12-07
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多