require ‘RMagick’
include Magick
…
result = Magick::Image.new(1000, 725){ self.background_color = ‘#FFFFFF’ }
watermark = Magick::Image.read(“#{RAILS_ROOT}/public/logo/watermark.png”).first
logo = Magick::Image.read(“#{RAILS_ROOT}/public/logo/logo_xxx.png”).first
signature1 = Magick::Image.read(“#{RAILS_ROOT}/public/logo/sig1.png”).first
signature2 = Magick::Image.read(“#{RAILS_ROOT}/public/logo/sig2.png”).first
student_img = Magick::Image.read(“#{RAILS_ROOT}/public/images/gui/user_90x90.png”).first
result = result.composite(watermark, Magick::CenterGravity, 0, 0, Magick::OverCompositeOp)
result = result.composite(logo, Magick::NorthGravity, 0, 20, Magick::OverCompositeOp)
result = result.composite(signature1, Magick::NorthGravity, -250, 600, Magick::OverCompositeOp)
result = result.composite(signature2, Magick::NorthGravity, 250, 600, Magick::OverCompositeOp)
result = result.composite(student_img, Magick::NorthGravity, 345, 50, Magick::OverCompositeOp)
line1 = Draw.new
result.annotate(line1, 1000,30, 0, 200, “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”){
line1.font = “#{RAILS_ROOT}/public/fonts/TH_Niramit_AS_Bold.ttf”
line1.gravity = Magick::NorthGravity
line1.pointsize = 18
line1.fill = “#000000”
line1.font_weight = Magick::BoldWeight
}
line2 = Draw.new
result.annotate(line2, 1000,30, 0, 240, “วุฒิบัตรฉบับนี้ให้ไว้เพื่อแสดงว่า”){
line2.font = “#{RAILS_ROOT}/public/fonts/TH_Niramit_AS_Bold.ttf”
line2.gravity = Magick::NorthGravity
line2.pointsize = 18
line2.fill = “#000000”
line2.font_weight = Magick::BoldWeight
}
student_name = Draw.new
result.annotate(student_name, 1000,30, 0, 280, “#{courses_student.prefix} #{courses_student.firstname}? #{courses_student.lastname}”){
student_name.font = “#{RAILS_ROOT}/public/fonts/TH_Niramit_AS_Bold.ttf”
student_name.gravity = Magick::NorthGravity
student_name.pointsize = 18
student_name.fill = “#000000”
student_name.font_weight = Magick::BoldWeight
}
detail = Draw.new
result.annotate(detail, 1000,30, 0, 340, “ได้เข้าฝึกอบรม #{certificate_template.detail}”){
detail.font = “#{RAILS_ROOT}/public/fonts/TH_Niramit_AS_Bold.ttf”
detail.gravity = Magick::NorthGravity
detail.pointsize = 18
detail.fill = “#000000”
detail.font_weight = Magick::BoldWeight
}
if courses_student.is_certified
detail2 = Draw.new
result.annotate(detail, 1000,30, 0, 370, “และผ่านเกณฑ์การประเมินผลสัมฤทธิ์การอบรม”){
detail2.font = “#{RAILS_ROOT}/public/fonts/TH_Niramit_AS_Bold.ttf”
detail2.gravity = Magick::NorthGravity
detail2.pointsize = 18
detail2.fill = “#000000”
detail2.font_weight = Magick::BoldWeight
}
end
line3 = Draw.new
result.annotate(line3, 1000,30, 0, 4100, “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”){
line3.font = “#{RAILS_ROOT}/public/fonts/TH_Niramit_AS_Bold.ttf”
line3.gravity = Magick::NorthGravity
line3.pointsize = 18
line3.fill = “#000000”
line3.font_weight = Magick::BoldWeight
}
line4 = Draw.new
result.annotate(line4, 1000,30, 0, 440, “xxxxxxxxxxxxxxxxxxxxx”){
line4.font = “#{RAILS_ROOT}/public/fonts/TH_Niramit_AS_Bold.ttf”
line4.gravity = Magick::NorthGravity
line4.pointsize = 18
line4.fill = “#000000”
line4.font_weight = Magick::BoldWeight
}
line5 = Draw.new
result.annotate(line5, 1000,30, 0, 470, “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx “){
line5.font = “#{RAILS_ROOT}/public/fonts/TH_Niramit_AS_Bold.ttf”
line5.gravity = Magick::NorthGravity
line5.pointsize = 18
line5.fill = “#000000”
line5.font_weight = Magick::BoldWeight
}
line6 = Draw.new
result.annotate(line6, 1000,30, 0, 500, “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”){
line6.font = “#{RAILS_ROOT}/public/fonts/TH_Niramit_AS_Bold.ttf”
line6.gravity = Magick::NorthGravity
line6.pointsize = 18
line6.fill = “#000000”
line6.font_weight = Magick::BoldWeight
}
thai_mon = [“”, “มกราคม”, “กุมภาพันธ์”, “มีนาคม”, “เมษายน”, “พฤษภาคม” “มิถุนายน”, “กรกฎาคม”, “สิงหาคม”, “กันยายน”, “ตุลาคม”, “พฤศจิกายน”, “ธันวาคม”]
date = Draw.new
result.annotate(date, 1000,30, 0, 540, “ให้ไว้ ณ วันที่ #{Date.today.day} เดือน #{thai_mon[Date.today.mon]} พ.ศ. #{Date.today.year + 543}”){
date.font = “#{RAILS_ROOT}/public/fonts/TH_Niramit_AS_Bold.ttf”
date.gravity = Magick::NorthGravity
date.pointsize = 18
date.fill = “#000000”
date.font_weight = Magick::BoldWeight
}
sig2_name = Draw.new
result.annotate(line6, 1000,30, 250, 668, “(xxxxxxxxxxxxxxxxxxxxxxxxxxxxx)”){
sig2_name.font = “#{RAILS_ROOT}/public/fonts/TH_Niramit_AS_Bold.ttf”
sig2_name.gravity = Magick::NorthGravity
sig2_name.pointsize = 18
sig2_name.fill = “#000000”
sig2_name.font_weight = Magick::BoldWeight
}
sig2_desc = Draw.new
result.annotate(line6, 1000,30, 250, 688, “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”){
sig2_desc.font = “#{RAILS_ROOT}/public/fonts/TH_Niramit_AS_Bold.ttf”
sig2_desc.gravity = Magick::NorthGravity
sig2_desc.pointsize = 18
sig2_desc.fill = “#000000”
sig2_desc.font_weight = Magick::BoldWeight
}
filename = “#{directory}/cert_#{@course.id}_#{courses_student.student_id}_#{courses_student.student_id}.jpg”
result.write(filename)