Skip to content

Instantly share code, notes, and snippets.

@hyuki
Last active April 14, 2018 00:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hyuki/9da18a1a8d04fcb67fd1af5ecd13266b to your computer and use it in GitHub Desktop.
Save hyuki/9da18a1a8d04fcb67fd1af5ecd13266b to your computer and use it in GitHub Desktop.
メールマガジンのepub表紙画像にVol番号をプログラムで埋め込みたい

メールマガジン用に毎回表紙画像にVol番号をプログラムで埋め込みたい

  • write-vol-to-image.rb で引数に表紙画像のベースとVol番号を与える
  • できた画像をpandocに与えてepubを作る
  • 以下に例(mm.css, metadata.xml, input.mdなどは自分で準備)
$ cp cover-base.jpg _cover.jpg"
$ ruby write-vol-to-image.rb _cover.jpg Vol.275
$ pandoc --epub-stylesheet=mm.css --epub-metadata=metadata.xml --epub-cover-image=_cover.jpg --output=output.epub input.md
#!/usr/bin/env ruby
# http://www.mk-mode.com/octopress/2013/08/28/ruby-write-character-by-rmagick/
require 'fileutils'
require 'RMagick'
FONT = '/usr/share/fonts/opentype/ipaexfont-gothic/ipaexg.ttf'
def write_message_with_shadow(image_filename, message)
image = Magick::ImageList.new(image_filename)
draw = Magick::Draw.new
# Message
draw.annotate(image, 0, 0, 0, 0, message) do
self.font = FONT
self.fill = 'black'
self.stroke = 'transparent'
self.pointsize = 128
self.gravity = Magick::NorthGravity
end
image.write(image_filename)
end
if ARGV.length != 2
abort("Usage: ruby write-vol-to-image filename message")
end
filename = ARGV[0]
message = ARGV[1]
# FileUtils.cp(filename, filename + ".org", {:preserve => true})
write_message_with_shadow(filename, message)
@hyuki
Copy link
Author

hyuki commented Apr 14, 2018

変換前cover-base.jpg

変換後_cover.jpg

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment