implemented '-s detectspace' functionality
[swftools.git] / spec / spec_helper.rb
index 1ee0b39..1727b0f 100644 (file)
@@ -53,7 +53,8 @@ class Area
        @rgb.minmax != [@rgb[0],@rgb[0]] or raise AreaError.new(self,"is plain colored")
     end
     def should_contain_text(text)
-       @file.get_text(@x1,@y1,@x2,@y2) == text or raise AreaError.new(self, "doesn't contain text #{text}")
+       text2 = @file.get_text(@x1,@y1,@x2,@y2) 
+       text2 == text or raise AreaError.new(self, "doesn't contain text \"#{text}\" (found: \"#{text2}\")")
     end
     def to_s
        "(#{@x1},#{@y1},#{@x2},#{@y2})"
@@ -91,6 +92,14 @@ class Pixel
        "(#{@x},#{@y})"
     end
 end
+
+$tempfiles = []
+Kernel.at_exit do
+    $tempfiles.each do |file|
+       `rm -f #{file}`
+    end
+end
+
 class DocFile
     def initialize(filename, page)
        @filename = filename
@@ -99,10 +108,11 @@ class DocFile
     def convert()
        return if @swfname
        @swfname = @filename.gsub(/.pdf$/i,"")+".swf"
+       $tempfiles += [@swfname]
        `pdfinfo #{@filename}` =~ /Page size:\s*([0-9]+) x ([0-9]+) pts/
        width,height = $1,$2
        dpi = (72.0 * 612 / width.to_i).to_i
-       output = `pdf2swf --flatten -s zoom=#{dpi} -p #{@page} #{@filename} -o #{@swfname} 2>&1`
+       output = `pdf2swf -f --flatten -s zoom=#{dpi} -p #{@page} #{@filename} -o #{@swfname} 2>&1`
        #output = `pdf2swf -s zoom=#{dpi} --flatten -p #{@page} #{@filename} -o #{@swfname} 2>&1`
        raise ConversionFailed.new(output,@swfname) unless File.exists?(@swfname)
     end
@@ -115,15 +125,14 @@ class DocFile
            raise ConversionFailed.new(output,@pngname) unless File.exists?(@pngname)
            @img = Magick::Image.read(@pngname).first
        ensure
-           `rm -f #{@swfname}`
            `rm -f #{@pngname}`
        end
     end
     def get_text(x1,y1,x2,y2)
        self.convert()
-       puts "swfstrings -x #{x1} -y #{y1} -W #{x2-x1} -H #{y2-y1} #{@swfname}"
-       puts `swfstrings -x #{x1} -y #{y1} -W #{x2-x1} -H #{y2-y1} #{@swfname}`
-       `swfstrings -x #{x1} -y #{y1} -W #{x2-x1} -H #{y2-y1} #{@swfname}`
+       #puts "swfstrings -x #{x1} -y #{y1} -W #{x2-x1} -H #{y2-y1} #{@swfname}"
+       #puts `swfstrings -x #{x1} -y #{y1} -W #{x2-x1} -H #{y2-y1} #{@swfname}`
+       `swfstrings -x #{x1} -y #{y1} -W #{x2-x1} -H #{y2-y1} #{@swfname}`.chomp
     end
     def get_area(x1,y1,x2,y2)
        self.render()