From 221b288fb5abfd0a89180ed48c361a162ad0b081 Mon Sep 17 00:00:00 2001 From: John Bintz Date: Fri, 21 Sep 2007 18:22:39 -0400 Subject: [PATCH] fix issues with special pages --- lib/minicomic.rb | 53 ++++++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/lib/minicomic.rb b/lib/minicomic.rb index aa53ffc..af50b72 100644 --- a/lib/minicomic.rb +++ b/lib/minicomic.rb @@ -516,7 +516,7 @@ end SPECIAL_NAMES = %w(front-cover back-cover cover inside-front inside-back) SPECIAL_NAME_RES = SPECIAL_NAMES.map do |name| - Regexp.new( Regexp.quote( name ).gsub( /-/, "\\W*" ), "i" ) + Regexp.new( Regexp.quote( name ).gsub( /-/, "\W*" ), "i" ) end def normalize_special_name( name ) @@ -565,12 +565,12 @@ def initialize( dir, options={} ) else raise ArgumentError, "Bad orientation #{@options[:orientation]}" end - + @options[:page_width] /= 2 @options[:page_height] /= 2 if @options[:minimini] - + @options[:scale] = ( @options[:page_width] - ( @options[:margin] * 2.0 ) ) / @options[:page_width] - + pages_dir = File.join( dir, 'pages' ) scratch_dir = File.join( dir, 'scratch' ) @@ -605,7 +605,7 @@ def initialize( dir, options={} ) if matches = /^(.*)\.([^\.]*)$/.match(name) all, name, ext = matches.to_a end - + if info['spread'] == true page_file = "pages-%02d-%02d.%s" % [ current_page_number, current_page_number + 1, ext ] current_page_number += 2 @@ -623,7 +623,7 @@ def initialize( dir, options={} ) filelist << [ page_file, page_file ] end end - + filelist.each do |original_image_file, page_file| name = File.basename( page_file ) if matches = /^(.*)\.([^\.]*)$/.match(name) @@ -699,7 +699,7 @@ def initialize( dir, options={} ) web_png_from_image_file( page_png, original_image_file ) end task page_png => [ web_dir ] - + thumbnail_name = web_name.sub( /^page/, 'thumbnail' ) thumbnail_jpeg = File.join( web_dir, "#{ thumbnail_name }.jpeg" ) thumbnail_jpeg_from_image( thumbnail_jpeg, page_png ) @@ -709,25 +709,28 @@ def initialize( dir, options={} ) end end - pages = [ nil, nil ] + - pages + [ nil ] * ( ( 4 - pages.size ) % 4 ) + - [ nil, nil ] - - specials.each do |name| - filename = File.join( scratch_dir, "#{ name }.#{ print_ext }" ) - case name - when 'front-cover' - pages[0] ||= ImageSlice[ 0, 1, filename ] # 'cover' takes precedence - when 'back-cover' - pages[-1] ||= ImageSlice[ 0, 1, filename ] # 'cover' takes precedence - when 'cover' - pages[-1] = ImageSlice[ 0, 2, filename ] - pages[0] = ImageSlice[ 1, 2, filename ] - when 'inside-front' - pages[1] = ImageSlice[ 0, 1, filename ] - when 'inside-back' - pages[-2] = ImageSlice[ 0, 1, filename ] + if specials.length > 0 + pages = [ nil, nil ] + + pages + [ nil ] * ( ( 4 - pages.size ) % 4 ) + + [ nil, nil ] + specials.each do |name| + filename = File.join( scratch_dir, "#{ name }.#{ print_ext }" ) + case name + when 'front-cover' + pages[0] ||= ImageSlice[ 0, 1, filename ] # 'cover' takes precedence + when 'back-cover' + pages[-1] ||= ImageSlice[ 0, 1, filename ] # 'cover' takes precedence + when 'cover' + pages[-1] = ImageSlice[ 0, 2, filename ] + pages[0] = ImageSlice[ 1, 2, filename ] + when 'inside-front' + pages[1] = ImageSlice[ 0, 1, filename ] + when 'inside-back' + pages[-2] = ImageSlice[ 0, 1, filename ] + end end + else + pages = pages + [ nil ] * ( ( 4 - pages.size ) % 4) end layout_booklet( layout_ps, *pages ) -- 2.11.4.GIT