remove unused lib/plugins/rfpdf/lib/fpdf/fpdf_eps.rb
This source has broken syntax "when :" on Ruby 1.9. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@12107 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
556cbad5c0
commit
98ac4c0baf
|
@ -1,139 +0,0 @@
|
||||||
# Information
|
|
||||||
#
|
|
||||||
# PDF_EPS class from Valentin Schmidt ported to ruby by Thiago Jackiw (tjackiw@gmail.com)
|
|
||||||
# working for Mingle LLC (www.mingle.com)
|
|
||||||
# Release Date: July 13th, 2006
|
|
||||||
#
|
|
||||||
# Description
|
|
||||||
#
|
|
||||||
# This script allows to embed vector-based Adobe Illustrator (AI) or AI-compatible EPS files.
|
|
||||||
# Only vector drawing is supported, not text or bitmap. Although the script was successfully
|
|
||||||
# tested with various AI format versions, best results are probably achieved with files that
|
|
||||||
# were exported in the AI3 format (tested with Illustrator CS2, Freehand MX and Photoshop CS2).
|
|
||||||
#
|
|
||||||
# ImageEps(string file, float x, float y [, float w [, float h [, string link [, boolean useBoundingBox]]]])
|
|
||||||
#
|
|
||||||
# Same parameters as for regular FPDF::Image() method, with an additional one:
|
|
||||||
#
|
|
||||||
# useBoundingBox: specifies whether to position the bounding box (true) or the complete canvas (false)
|
|
||||||
# at location (x,y). Default value is true.
|
|
||||||
#
|
|
||||||
# First added to the Ruby FPDF distribution in 1.53c
|
|
||||||
#
|
|
||||||
# Usage is as follows:
|
|
||||||
#
|
|
||||||
# require 'fpdf'
|
|
||||||
# require 'fpdf_eps'
|
|
||||||
# pdf = FPDF.new
|
|
||||||
# pdf.extend(PDF_EPS)
|
|
||||||
# pdf.ImageEps(...)
|
|
||||||
#
|
|
||||||
# This allows it to be combined with other extensions, such as the bookmark
|
|
||||||
# module.
|
|
||||||
|
|
||||||
module PDF_EPS
|
|
||||||
def ImageEps(file, x, y, w=0, h=0, link='', use_bounding_box=true)
|
|
||||||
data = nil
|
|
||||||
if File.exists?(file)
|
|
||||||
File.open(file, 'rb') do |f|
|
|
||||||
data = f.read()
|
|
||||||
end
|
|
||||||
else
|
|
||||||
Error('EPS file not found: '+file)
|
|
||||||
end
|
|
||||||
|
|
||||||
# Find BoundingBox param
|
|
||||||
regs = data.scan(/%%BoundingBox: [^\r\n]*/m)
|
|
||||||
regs << regs[0].gsub(/%%BoundingBox: /, '')
|
|
||||||
if regs.size > 1
|
|
||||||
tmp = regs[1].to_s.split(' ')
|
|
||||||
@x1 = tmp[0].to_i
|
|
||||||
@y1 = tmp[1].to_i
|
|
||||||
@x2 = tmp[2].to_i
|
|
||||||
@y2 = tmp[3].to_i
|
|
||||||
else
|
|
||||||
Error('No BoundingBox found in EPS file: '+file)
|
|
||||||
end
|
|
||||||
f_start = data.index('%%EndSetup')
|
|
||||||
f_start = data.index('%%EndProlog') if f_start === false
|
|
||||||
f_start = data.index('%%BoundingBox') if f_start === false
|
|
||||||
|
|
||||||
data = data.slice(f_start, data.length)
|
|
||||||
|
|
||||||
f_end = data.index('%%PageTrailer')
|
|
||||||
f_end = data.index('showpage') if f_end === false
|
|
||||||
data = data.slice(0, f_end) if f_end
|
|
||||||
|
|
||||||
# save the current graphic state
|
|
||||||
out('q')
|
|
||||||
|
|
||||||
k = @k
|
|
||||||
|
|
||||||
# Translate
|
|
||||||
if use_bounding_box
|
|
||||||
dx = x*k-@x1
|
|
||||||
dy = @hPt-@y2-y*k
|
|
||||||
else
|
|
||||||
dx = x*k
|
|
||||||
dy = -y*k
|
|
||||||
end
|
|
||||||
tm = [1,0,0,1,dx,dy]
|
|
||||||
out(sprintf('%.3f %.3f %.3f %.3f %.3f %.3f cm',
|
|
||||||
tm[0], tm[1], tm[2], tm[3], tm[4], tm[5]))
|
|
||||||
|
|
||||||
if w > 0
|
|
||||||
scale_x = w/((@x2-@x1)/k)
|
|
||||||
if h > 0
|
|
||||||
scale_y = h/((@y2-@y1)/k)
|
|
||||||
else
|
|
||||||
scale_y = scale_x
|
|
||||||
h = (@y2-@y1)/k * scale_y
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if h > 0
|
|
||||||
scale_y = $h/((@y2-@y1)/$k)
|
|
||||||
scale_x = scale_y
|
|
||||||
w = (@x2-@x1)/k * scale_x
|
|
||||||
else
|
|
||||||
w = (@x2-@x1)/k
|
|
||||||
h = (@y2-@y1)/k
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if !scale_x.nil?
|
|
||||||
# Scale
|
|
||||||
tm = [scale_x,0,0,scale_y,0,@hPt*(1-scale_y)]
|
|
||||||
out(sprintf('%.3f %.3f %.3f %.3f %.3f %.3f cm',
|
|
||||||
tm[0], tm[1], tm[2], tm[3], tm[4], tm[5]))
|
|
||||||
end
|
|
||||||
|
|
||||||
data.split(/\r\n|[\r\n]/).each do |line|
|
|
||||||
next if line == '' || line[0,1] == '%'
|
|
||||||
len = line.length
|
|
||||||
# next if (len > 2 && line[len-2,len] != ' ')
|
|
||||||
cmd = line[len-2,len].strip
|
|
||||||
case cmd
|
|
||||||
when 'm', 'l', 'v', 'y', 'c', 'k', 'K', 'g', 'G', 's', 'S', 'J', 'j', 'w', 'M', 'd':
|
|
||||||
out(line)
|
|
||||||
|
|
||||||
when 'L':
|
|
||||||
line[len-1,len]='l'
|
|
||||||
out(line)
|
|
||||||
|
|
||||||
when 'C':
|
|
||||||
line[len-1,len]='c'
|
|
||||||
out(line)
|
|
||||||
|
|
||||||
when 'f', 'F':
|
|
||||||
out('f*')
|
|
||||||
|
|
||||||
when 'b', 'B':
|
|
||||||
out(cmd + '*')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# restore previous graphic state
|
|
||||||
out('Q')
|
|
||||||
Link(x,y,w,h,link) if link
|
|
||||||
end
|
|
||||||
end
|
|
Loading…
Reference in New Issue