fn_document 0.9.6 → 0.9.7

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -2,8 +2,8 @@ source "http://rubygems.org"
2
2
  # Add dependencies required to use your gem here.
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
- gem "libxslt-ruby", "= 0.9.2"
6
- gem "libxml-ruby", "= 1.1.3"
5
+ gem "libxslt-ruby"
6
+ gem "libxml-ruby"
7
7
  gem "mocha"
8
8
  gem 'rmagick'
9
9
 
@@ -11,7 +11,7 @@ gem 'rmagick'
11
11
  # Include everything needed to run rake, tests, features, etc.
12
12
  group :development do
13
13
  gem "shoulda", ">= 0"
14
- gem "bundler", "~> 1.0.0"
15
- gem "jeweler", "~> 1.6.4"
14
+ gem "bundler"
15
+ gem "jeweler"
16
16
  gem "rcov", ">= 0"
17
17
  end
@@ -1,28 +1,44 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ activesupport (3.2.7)
5
+ i18n (~> 0.6)
6
+ multi_json (~> 1.0)
4
7
  git (1.2.5)
5
- jeweler (1.6.4)
8
+ i18n (0.6.0)
9
+ jeweler (1.8.4)
6
10
  bundler (~> 1.0)
7
11
  git (>= 1.2.5)
8
12
  rake
9
- libxml-ruby (1.1.3)
10
- libxslt-ruby (0.9.2)
11
- libxml-ruby (>= 0.9.4)
12
- mocha (0.9.12)
13
- rake (0.9.2)
14
- rcov (0.9.9)
13
+ rdoc
14
+ json (1.7.4)
15
+ libxml-ruby (2.3.3)
16
+ libxslt-ruby (1.0.9)
17
+ libxml-ruby (>= 2.2.2)
18
+ metaclass (0.0.1)
19
+ mocha (0.12.1)
20
+ metaclass (~> 0.0.1)
21
+ multi_json (1.3.6)
22
+ rake (0.9.2.2)
23
+ rcov (1.0.0)
24
+ rdoc (3.12)
25
+ json (~> 1.4)
15
26
  rmagick (2.13.1)
16
- shoulda (2.11.3)
27
+ shoulda (3.1.1)
28
+ shoulda-context (~> 1.0)
29
+ shoulda-matchers (~> 1.2)
30
+ shoulda-context (1.0.0)
31
+ shoulda-matchers (1.2.0)
32
+ activesupport (>= 3.0.0)
17
33
 
18
34
  PLATFORMS
19
35
  ruby
20
36
 
21
37
  DEPENDENCIES
22
- bundler (~> 1.0.0)
23
- jeweler (~> 1.6.4)
24
- libxml-ruby (= 1.1.3)
25
- libxslt-ruby (= 0.9.2)
38
+ bundler
39
+ jeweler
40
+ libxml-ruby
41
+ libxslt-ruby
26
42
  mocha
27
43
  rcov
28
44
  rmagick
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.6
1
+ 0.9.7
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{fn_document}
8
- s.version = "0.9.6"
7
+ s.name = "fn_document"
8
+ s.version = "0.9.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Nathan Colgate Clark", "Kyle Maxwell"]
12
- s.date = %q{2011-10-20}
13
- s.description = %q{This handles complex document creation from XML for the FASI AMS system.}
14
- s.email = %q{nathancolgate@gmail.com}
12
+ s.date = "2012-07-26"
13
+ s.description = "This handles complex document creation from XML for the FASI AMS system."
14
+ s.email = "nathancolgate@gmail.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
17
17
  "README.rdoc"
@@ -63,45 +63,49 @@ Gem::Specification.new do |s|
63
63
  "lib/fn/util.rb",
64
64
  "lib/fn/validation.rng",
65
65
  "lib/fn_document.rb",
66
+ "test/assets/logo.jpg",
67
+ "test/assets/pdf_background.pdf",
68
+ "test/assets/pdf_background_2.pdf",
66
69
  "test/helper.rb",
70
+ "test/nathans_test.rb",
67
71
  "test/test_fn_document.rb"
68
72
  ]
69
- s.homepage = %q{http://github.com/nathancolgate/fn_document}
73
+ s.homepage = "http://github.com/nathancolgate/fn_document"
70
74
  s.licenses = ["MIT"]
71
75
  s.require_paths = ["lib"]
72
- s.rubygems_version = %q{1.6.2}
73
- s.summary = %q{Gem for reading/writing/printing fn documents}
76
+ s.rubygems_version = "1.8.24"
77
+ s.summary = "Gem for reading/writing/printing fn documents"
74
78
 
75
79
  if s.respond_to? :specification_version then
76
80
  s.specification_version = 3
77
81
 
78
82
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
79
- s.add_runtime_dependency(%q<libxslt-ruby>, ["= 0.9.2"])
80
- s.add_runtime_dependency(%q<libxml-ruby>, ["= 1.1.3"])
83
+ s.add_runtime_dependency(%q<libxslt-ruby>, [">= 0"])
84
+ s.add_runtime_dependency(%q<libxml-ruby>, [">= 0"])
81
85
  s.add_runtime_dependency(%q<mocha>, [">= 0"])
82
86
  s.add_runtime_dependency(%q<rmagick>, [">= 0"])
83
87
  s.add_development_dependency(%q<shoulda>, [">= 0"])
84
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
85
- s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
88
+ s.add_development_dependency(%q<bundler>, [">= 0"])
89
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
86
90
  s.add_development_dependency(%q<rcov>, [">= 0"])
87
91
  else
88
- s.add_dependency(%q<libxslt-ruby>, ["= 0.9.2"])
89
- s.add_dependency(%q<libxml-ruby>, ["= 1.1.3"])
92
+ s.add_dependency(%q<libxslt-ruby>, [">= 0"])
93
+ s.add_dependency(%q<libxml-ruby>, [">= 0"])
90
94
  s.add_dependency(%q<mocha>, [">= 0"])
91
95
  s.add_dependency(%q<rmagick>, [">= 0"])
92
96
  s.add_dependency(%q<shoulda>, [">= 0"])
93
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
94
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
97
+ s.add_dependency(%q<bundler>, [">= 0"])
98
+ s.add_dependency(%q<jeweler>, [">= 0"])
95
99
  s.add_dependency(%q<rcov>, [">= 0"])
96
100
  end
97
101
  else
98
- s.add_dependency(%q<libxslt-ruby>, ["= 0.9.2"])
99
- s.add_dependency(%q<libxml-ruby>, ["= 1.1.3"])
102
+ s.add_dependency(%q<libxslt-ruby>, [">= 0"])
103
+ s.add_dependency(%q<libxml-ruby>, [">= 0"])
100
104
  s.add_dependency(%q<mocha>, [">= 0"])
101
105
  s.add_dependency(%q<rmagick>, [">= 0"])
102
106
  s.add_dependency(%q<shoulda>, [">= 0"])
103
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
104
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
107
+ s.add_dependency(%q<bundler>, [">= 0"])
108
+ s.add_dependency(%q<jeweler>, [">= 0"])
105
109
  s.add_dependency(%q<rcov>, [">= 0"])
106
110
  end
107
111
  end
@@ -92,10 +92,10 @@ module FN
92
92
  #end
93
93
  end
94
94
 
95
- def to_pdf(options = {})
95
+ def to_pdf(options = {}, debug = false)
96
96
  update_resources(options)
97
97
  @pdf ||= PDF::Writer.new
98
- @pdf.write(self, options)
98
+ @pdf.write(self, options, debug)
99
99
  end
100
100
 
101
101
  def to_swf(options = {})
@@ -13,19 +13,29 @@ module FN
13
13
  CURRENT_PAGE_WIDTH = "__current_page_width"
14
14
  CURRENT_PAGE_HEIGHT = "__current_page_height"
15
15
 
16
- def visit(struct)
17
- visit_children(struct)
16
+ def visit(struct, debug = false)
17
+ visit_children(struct, debug)
18
18
  end
19
19
 
20
20
  def has_no_children
21
21
  raise "should have no children" if children.any?{|c| !c.cdata?}
22
22
  end
23
23
 
24
- def visit_children(struct)
24
+ def visit_children(struct, debug = false)
25
+ if debug
26
+ puts "="*88
27
+ puts "Visiting Children"
28
+ puts "Struct"
29
+ puts struct.inspect
30
+ puts "-"*88
31
+ puts "Children"
32
+ puts children.inspect
33
+ puts "="*88
34
+ end
25
35
  children.each do |c|
26
36
  if c.element?
27
37
  mixin(c)
28
- c.visit(struct)
38
+ c.visit(struct, debug)
29
39
  end
30
40
  end
31
41
  return struct
@@ -36,8 +36,8 @@ module FN
36
36
  @current = old
37
37
  end
38
38
 
39
- def visit(struct)
40
- root.visit(struct)
39
+ def visit(struct, debug = false)
40
+ root.visit(struct,debug)
41
41
  struct
42
42
  end
43
43
 
@@ -11,9 +11,9 @@ module FN
11
11
  module BeginDocument
12
12
  include FN::Node::Base
13
13
 
14
- def visit(struct)
14
+ def visit(struct, debug = false)
15
15
  struct.begin_document(self[:file], :compatibility => self[:compatibility])
16
- visit_children(struct)
16
+ visit_children(struct, debug )
17
17
  struct.end_document("")
18
18
  end
19
19
  end
@@ -11,11 +11,11 @@ module FN
11
11
  module BeginPageExt
12
12
  include FN::Node::Base
13
13
 
14
- def visit(struct)
14
+ def visit(struct, debug = false)
15
15
  struct.begin_page_ext(self[:width].to_i, self[:height].to_i, "")
16
16
  struct[CURRENT_PAGE_WIDTH] = self[:width].to_i
17
17
  struct[CURRENT_PAGE_HEIGHT] = self[:height].to_i
18
- visit_children struct
18
+ visit_children(struct, debug)
19
19
  struct.suspend_page("")
20
20
  end
21
21
  end
@@ -49,7 +49,7 @@ module FN
49
49
  child.to_s.gsub("<![CDATA[", "").gsub("]]>", "")
50
50
  end
51
51
 
52
- def visit(struct)
52
+ def visit(struct, debug = false)
53
53
  tf = struct.create_textflow(inner_text, "")
54
54
  struct.assigns self, tf
55
55
  end
@@ -11,7 +11,7 @@ module FN
11
11
  module EndPageExt
12
12
  include FN::Node::Base
13
13
 
14
- def visit(struct)
14
+ def visit(struct, debug = false)
15
15
  has_no_children
16
16
  struct.resume_page(attributes.to_h)
17
17
  struct.end_page_ext("")
@@ -10,7 +10,7 @@ module FN
10
10
  module FitImage
11
11
  include FN::Node::Base
12
12
 
13
- def visit(struct)
13
+ def visit(struct, debug = false)
14
14
  has_no_children
15
15
  h = attributes.to_h
16
16
  img = struct[h.delete("image")]
@@ -10,7 +10,7 @@ module FN
10
10
  module FitPdiPage
11
11
  include FN::Node::Base
12
12
 
13
- def visit(struct)
13
+ def visit(struct, debug = false)
14
14
  has_no_children
15
15
  struct.fit_pdi_page(struct[self[:page]], 0, struct[CURRENT_PAGE_HEIGHT], "")
16
16
  end
@@ -15,7 +15,7 @@ module FN
15
15
  module FitTextflow
16
16
  include FN::Node::Base
17
17
 
18
- def visit(struct)
18
+ def visit(struct, debug = false)
19
19
  has_no_children
20
20
  struct.fit_textflow struct[self["flow"]],
21
21
  self["x"].to_f, self["y"].to_f,
@@ -23,11 +23,11 @@ module FN
23
23
  module Invert
24
24
  include FN::Node::Base
25
25
 
26
- def visit(struct)
26
+ def visit(struct, debug = false)
27
27
  struct.save
28
28
  struct.translate self["x"].to_f + self["x2"].to_f, self["y"].to_f + self["y2"].to_f
29
29
  struct.rotate 180
30
- visit_children struct
30
+ visit_children(struct, debug)
31
31
  struct.restore
32
32
  end
33
33
  end
@@ -10,7 +10,7 @@ module FN
10
10
  module LoadImage
11
11
  include FN::Node::Base
12
12
 
13
- def visit(struct)
13
+ def visit(struct, debug = false)
14
14
  has_no_children
15
15
  img = struct.load_image("auto", self[:file], "")
16
16
  struct.assigns self, img
@@ -10,10 +10,13 @@ module FN
10
10
  module OpenPdi
11
11
  include FN::Node::Base
12
12
 
13
- def visit(struct)
13
+ def visit(struct, debug = false)
14
+ if debug
15
+ puts "self[:file]: #{self[:file]}"
16
+ end
14
17
  pdi = struct.open_pdi(self[:file], "", 0)
15
18
  struct.assigns(self, pdi)
16
- visit_children struct
19
+ visit_children(struct, debug)
17
20
  struct.close_pdi(pdi)
18
21
  end
19
22
  end
@@ -11,10 +11,15 @@ module FN
11
11
  module OpenPdiPage
12
12
  include FN::Node::Base
13
13
 
14
- def visit(struct)
14
+ def visit(struct, debug = false)
15
+ if debug
16
+ puts "struct[self[:pdi]]: #{struct[self[:pdi]]}"
17
+ puts "self[:number].to_i: #{self[:number].to_i}"
18
+ puts "I Think I'm On Page: #{struct.open_pdi_page(struct[self[:pdi]], self[:number].to_i, "")}"
19
+ end
15
20
  pg = struct.open_pdi_page(struct[self[:pdi]], self[:number].to_i, "")
16
21
  struct.assigns self, pg
17
- visit_children struct
22
+ visit_children(struct, debug)
18
23
  struct.close_pdi_page(pg)
19
24
  end
20
25
  end
@@ -10,9 +10,9 @@ module FN
10
10
  module ResumePage
11
11
  include FN::Node::Base
12
12
 
13
- def visit(struct)
13
+ def visit(struct, debug = false)
14
14
  struct.resume_page(attributes.to_h)
15
- visit_children(struct)
15
+ visit_children(struct, debug)
16
16
  struct.suspend_page("")
17
17
  end
18
18
  end
@@ -11,7 +11,7 @@ module FN
11
11
  module SetParameter
12
12
  include FN::Node::Base
13
13
 
14
- def visit(struct)
14
+ def visit(struct, debug = false)
15
15
  has_no_children
16
16
  struct[self[:key]] = self[:value]
17
17
  struct.set_parameter(self[:key], self[:value])
@@ -11,7 +11,7 @@ module FN
11
11
  module Watermark
12
12
  include FN::Node::Base
13
13
 
14
- def visit(struct)
14
+ def visit(struct, debug = false)
15
15
  has_no_children
16
16
  w = struct[CURRENT_PAGE_WIDTH]
17
17
  h = struct[CURRENT_PAGE_HEIGHT]
@@ -21,24 +21,15 @@ module FN
21
21
  @encoding
22
22
  end
23
23
 
24
- def write(doc, options = {})
24
+ def write(doc, options = {}, debug = false)
25
25
  options[:save_as] ||= (tmp = Tempfile.new("pdf"); tmp.close; tmp.path)
26
- write_xml translate(doc, options), options[:save_as]
26
+ write_xml translate(doc, options), options[:save_as], debug
27
27
  end
28
28
 
29
- def write_xml(xml, file)
30
- begin
31
- xml.root.extend(FN::Node::Root)
32
- xml.root.visit(FN::PDF::Struct.new)
33
- return file
34
- rescue Exception => e
35
- $stderr.puts "="*88
36
- $stderr.puts "Tried to write_xml but failed. Logging XML and file:"
37
- $stderr.puts "xml: #{xml}"
38
- $stderr.puts "file: #{file}"
39
- $stderr.puts "="*88
40
- raise e
41
- end
29
+ def write_xml(xml, file, debug = false)
30
+ xml.root.extend(FN::Node::Root)
31
+ xml.root.visit(FN::PDF::Struct.new(debug),debug)
32
+ return file
42
33
  end
43
34
 
44
35
  def titlecase(str)
@@ -9,7 +9,7 @@ module FN
9
9
  module Break
10
10
  include FN::Node::Base
11
11
 
12
- def visit(struct)
12
+ def visit(struct, debug = false)
13
13
  has_no_children
14
14
  struct.break
15
15
  end
@@ -9,13 +9,13 @@ module FN
9
9
  module Flash
10
10
  include FN::Node::Base
11
11
 
12
- def visit(struct)
12
+ def visit(struct, debug = false)
13
13
  w = self[:width]
14
14
  h = self[:height]
15
15
  size = "#{w}x#{h}"
16
16
  struct.<< %[.flash bbox="#{size}" compress version=6] do
17
17
  struct.<< %[.box bkg width=#{w} height=#{h} color=white fill]
18
- visit_children struct
18
+ visit_children(struct, debug)
19
19
  end
20
20
  end
21
21
  end
@@ -14,7 +14,7 @@ module FN
14
14
  # no-op, since at present, we aren't using custom fonts?!
15
15
  end
16
16
 
17
- def visit(struct)
17
+ def visit(struct, debug = false)
18
18
  has_no_children
19
19
  struct << %[.font #{self[:name]} "#{self[:file]}"]
20
20
  end
@@ -9,7 +9,7 @@ module FN
9
9
  module Frame
10
10
  include FN::Node::Base
11
11
 
12
- def visit(struct)
12
+ def visit(struct, debug = false)
13
13
  has_no_children
14
14
  struct << %[.font #{self[:name]} "#{self[:file]}"]
15
15
  end
@@ -12,7 +12,7 @@ module FN
12
12
  module HotSpot
13
13
  include FN::Node::Base
14
14
 
15
- def visit(struct)
15
+ def visit(struct, debug = false)
16
16
  has_no_children
17
17
 
18
18
  x = self[:x]
@@ -9,7 +9,7 @@ module FN
9
9
  module Image
10
10
  include FN::Node::Base
11
11
 
12
- def visit(struct)
12
+ def visit(struct, debug = false)
13
13
  has_no_children
14
14
  struct << %[.jpeg #{self[:name]} "#{self[:file]}"]
15
15
  end
@@ -10,14 +10,14 @@ module FN
10
10
  module Page
11
11
  include FN::Node::Base
12
12
 
13
- def visit(struct)
13
+ def visit(struct, debug = false)
14
14
  n = self[:number]
15
15
  bkg = self[:bkg]
16
16
  struct << ".frame #{n}"
17
17
  struct.<< ".sprite page#{n}" do
18
18
  struct << ".put bkg 0 0"
19
19
  struct << ".put #{bkg} x=0 y=0"
20
- visit_children(struct)
20
+ visit_children(struct, debug)
21
21
  end
22
22
  struct << ".put page#{n} 0 00"
23
23
  struct.<< ".action:" do
@@ -16,7 +16,7 @@ module FN
16
16
 
17
17
  # <block type="photo" src="logo" width="162" boxX="30" boxY="40"
18
18
  # boxWidth="185" boxHeight="99" align="middlecenter"/>
19
- def visit(struct)
19
+ def visit(struct, debug = false)
20
20
  has_no_children
21
21
 
22
22
  src = self[:src]
@@ -27,7 +27,7 @@ module FN
27
27
  text.gsub("\\", "\\\\").gsub("\"", "\\\"").gsub(SPACE, " ")
28
28
  end
29
29
 
30
- def visit(struct)
30
+ def visit(struct, debug = false)
31
31
  has_no_children
32
32
  name = "#{self[:text]}_#{self[:index]}"
33
33
  x = self[:x]
Binary file
@@ -0,0 +1,74 @@
1
+ require 'rubygems'
2
+ require 'xml'
3
+ require 'fn_document'
4
+
5
+ @background_path = "/Users/nathan/github/fn_document/test/assets/pdf_background_2.pdf"
6
+ @save_path = "/Users/nathan/Desktop/temp.pdf"
7
+
8
+ @xml_string = ''
9
+ @xml_string += '<root>'
10
+ # @xml_string += '<set_parameter key="license" value="L700202-010000-116496-QXVFH2-2Y4UE2"/>'
11
+ @xml_string += '<set_parameter key="resourcefile" value="/Users/nathan/rails/myfasi/public/fonts/pdflib.upr"/>'
12
+ @xml_string += '<set_parameter key="hypertextencoding" value="unicode"/>'
13
+ @xml_string += '<set_parameter key="textformat" value="utf8"/>'
14
+ @xml_string += '<open_pdi file="'+@background_path+'" assigns="pdi">'
15
+ @xml_string += '<begin_document file="'+@save_path+'" compatibility="1.5">'
16
+ @xml_string += '<set_parameter key="topdown" value="true"/>'
17
+ @xml_string += '<create_textflow assigns="flow-1"><![CDATA[<fontname=Arial encoding=unicode fontsize=10><encoding=unicode '
18
+ @xml_string += 'embedding=true adjustmethod=nofit nofitlimit=100% minspacing=100% maxspacing=100% kerning=true charref=true fontname={Myriad}'
19
+ @xml_string += ' fontsize=12 leftindent=0 rightindent=0 leading=14 fillcolor={rgb 0.0 0.0 0.0} parindent=0 underline=false alignment=left>'
20
+ @xml_string += 'Call John Franczak at<encoding=unicode embedding=true adjustmethod=nofit nofitlimit=100% minspacing=100% maxspacing=100% '
21
+ @xml_string += 'kerning=true charref=true fontname={Myriad} fontsize=12 leftindent=0 rightindent=0 leading=14 fillcolor={rgb '
22
+ @xml_string += '0.0705882352941176 0.596078431372549 0.317647058823529} parindent=0 underline=false alignment=left> 775-831-6000 '
23
+ @xml_string += '<encoding=unicode embedding=true adjustmethod=nofit nofitlimit=100% minspacing=100% maxspacing=100% kerning=true charref=true '
24
+ @xml_string += 'fontname={Myriad} fontsize=12 leftindent=0 rightindent=0 leading=14 fillcolor={rgb 0.0 0.0 0.0} parindent=0 underline=false '
25
+ @xml_string += 'alignment=left>or visit us at<encoding=unicode embedding=true adjustmethod=nofit nofitlimit=100% minspacing=100% '
26
+ @xml_string += 'maxspacing=100% kerning=true charref=true fontname={Myriad} fontsize=12 leftindent=0 rightindent=0 leading=14 '
27
+ @xml_string += 'fillcolor={rgb 0.0705882352941176 0.596078431372549 0.317647058823529} parindent=0 underline=false alignment=left> '
28
+ @xml_string += 'www.jfwealthmanagement.com <encoding=unicode embedding=true adjustmethod=nofit nofitlimit=100% minspacing=100% '
29
+ @xml_string += 'maxspacing=100% kerning=true charref=true fontname={Myriad} fontsize=12 leftindent=0 rightindent=0 leading=14 '
30
+ @xml_string += 'fillcolor={rgb 0.0 0.0 0.0} parindent=0 underline=false alignment=left>to learn more about how the Greenbook '
31
+ @xml_string += 'program may be able to help you!<nextparagraph>]]></create_textflow>'
32
+ @xml_string += '<begin_page_ext width="594" height="793" number="1">'
33
+ @xml_string += '<open_pdi_page pdi="{pdi}" assigns="page" number="1">'
34
+ @xml_string += '<fit_pdi_page page="{page}"/>'
35
+ @xml_string += '<watermark text="Not compliance approved."/>'
36
+ @xml_string += '</open_pdi_page>'
37
+ @xml_string += '<load_image file="/Users/nathan/github/fn_document/test/assets/logo.jpg" '
38
+ @xml_string += 'assigns="tmp"/>'
39
+ @xml_string += '<fit_image y="570" image="{tmp}" fitmethod="meet" x="77" boxsize="71 48.99"/>'
40
+ @xml_string += '</begin_page_ext>'
41
+ @xml_string += '<create_textflow assigns="flow-1-6"><![CDATA[<fontname=Arial encoding=unicode fontsize=10><encoding=unicode '
42
+ @xml_string += 'embedding=true adjustmethod=nofit nofitlimit=100% minspacing=100% maxspacing=100% kerning=true charref=true fontname={Myriad} '
43
+ @xml_string += 'fontsize=12 leftindent=0 rightindent=0 leading=14 fillcolor={rgb 0.0 0.0 0.0} parindent=0 underline=false alignment=left>Call '
44
+ @xml_string += 'John Franczak at<encoding=unicode embedding=true adjustmethod=nofit nofitlimit=100% minspacing=100% maxspacing=100% kerning=true '
45
+ @xml_string += 'charref=true fontname={Myriad} fontsize=12 leftindent=0 rightindent=0 leading=14 fillcolor={rgb 0.0705882352941176 0.596078431372549 '
46
+ @xml_string += '0.317647058823529} parindent=0 underline=false alignment=left> 775-831-6000 <encoding=unicode embedding=true adjustmethod=nofit '
47
+ @xml_string += 'nofitlimit=100% minspacing=100% maxspacing=100% kerning=true charref=true fontname={Myriad} fontsize=12 leftindent=0 rightindent=0 '
48
+ @xml_string += 'leading=14 fillcolor={rgb 0.0 0.0 0.0} parindent=0 underline=false alignment=left>or visit us at<encoding=unicode embedding=true '
49
+ @xml_string += 'adjustmethod=nofit nofitlimit=100% minspacing=100% maxspacing=100% kerning=true charref=true fontname={Myriad} fontsize=12 '
50
+ @xml_string += 'leftindent=0 rightindent=0 leading=14 fillcolor={rgb 0.0705882352941176 0.596078431372549 0.317647058823529} parindent=0 '
51
+ @xml_string += 'underline=false alignment=left> www.jfwealthmanagement.com <encoding=unicode embedding=true adjustmethod=nofit nofitlimit=100% '
52
+ @xml_string += 'minspacing=100% maxspacing=100% kerning=true charref=true fontname={Myriad} fontsize=12 leftindent=0 rightindent=0 leading=14 '
53
+ @xml_string += 'fillcolor={rgb 0.0 0.0 0.0} parindent=0 underline=false alignment=left>to learn more about how the Greenbook program may be '
54
+ @xml_string += 'able to help you!<nextparagraph>]]></create_textflow>'
55
+ @xml_string += '<resume_page pagenumber="1">'
56
+ @xml_string += '<fit_textflow y="575" flow="{flow-1-6}" x2="277.0" y2="635.0" x="62"/>'
57
+ @xml_string += '</resume_page>'
58
+ @xml_string += '<end_page_ext pagenumber="1"/>'
59
+ @xml_string += '</begin_document>'
60
+ @xml_string += '</open_pdi>'
61
+ @xml_string += '</root>'
62
+
63
+ @context_doc = LibXML::XML::Document.string(@xml_string)
64
+ puts @context_doc.root.children[3].children[0].children[2].children[0][:number] # Should be "1"
65
+
66
+ @fn_pdf = FN::PDF::Writer.new
67
+ @fn_pdf.write_xml(@context_doc,@save_path,true)
68
+
69
+ #
70
+ # >> @fn_doc_options[:save_as]
71
+ # => "/tmp/output20111020-28153-124kzy1-0"
72
+ # >> @fn_doc_options[:save_as].class
73
+ # => String
74
+ # >>
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fn_document
3
3
  version: !ruby/object:Gem::Version
4
- hash: 55
4
+ hash: 53
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 6
10
- version: 0.9.6
9
+ - 7
10
+ version: 0.9.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Nathan Colgate Clark
@@ -16,44 +16,39 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-10-20 00:00:00 -07:00
20
- default_executable:
19
+ date: 2012-07-26 00:00:00 Z
21
20
  dependencies:
22
21
  - !ruby/object:Gem::Dependency
23
- type: :runtime
24
- requirement: &id001 !ruby/object:Gem::Requirement
22
+ name: libxslt-ruby
23
+ version_requirements: &id001 !ruby/object:Gem::Requirement
25
24
  none: false
26
25
  requirements:
27
- - - "="
26
+ - - ">="
28
27
  - !ruby/object:Gem::Version
29
- hash: 63
28
+ hash: 3
30
29
  segments:
31
30
  - 0
32
- - 9
33
- - 2
34
- version: 0.9.2
35
- name: libxslt-ruby
36
- version_requirements: *id001
31
+ version: "0"
32
+ type: :runtime
33
+ requirement: *id001
37
34
  prerelease: false
38
35
  - !ruby/object:Gem::Dependency
39
- type: :runtime
40
- requirement: &id002 !ruby/object:Gem::Requirement
36
+ name: libxml-ruby
37
+ version_requirements: &id002 !ruby/object:Gem::Requirement
41
38
  none: false
42
39
  requirements:
43
- - - "="
40
+ - - ">="
44
41
  - !ruby/object:Gem::Version
45
- hash: 21
42
+ hash: 3
46
43
  segments:
47
- - 1
48
- - 1
49
- - 3
50
- version: 1.1.3
51
- name: libxml-ruby
52
- version_requirements: *id002
44
+ - 0
45
+ version: "0"
46
+ type: :runtime
47
+ requirement: *id002
53
48
  prerelease: false
54
49
  - !ruby/object:Gem::Dependency
55
- type: :runtime
56
- requirement: &id003 !ruby/object:Gem::Requirement
50
+ name: mocha
51
+ version_requirements: &id003 !ruby/object:Gem::Requirement
57
52
  none: false
58
53
  requirements:
59
54
  - - ">="
@@ -62,12 +57,12 @@ dependencies:
62
57
  segments:
63
58
  - 0
64
59
  version: "0"
65
- name: mocha
66
- version_requirements: *id003
60
+ type: :runtime
61
+ requirement: *id003
67
62
  prerelease: false
68
63
  - !ruby/object:Gem::Dependency
69
- type: :runtime
70
- requirement: &id004 !ruby/object:Gem::Requirement
64
+ name: rmagick
65
+ version_requirements: &id004 !ruby/object:Gem::Requirement
71
66
  none: false
72
67
  requirements:
73
68
  - - ">="
@@ -76,12 +71,12 @@ dependencies:
76
71
  segments:
77
72
  - 0
78
73
  version: "0"
79
- name: rmagick
80
- version_requirements: *id004
74
+ type: :runtime
75
+ requirement: *id004
81
76
  prerelease: false
82
77
  - !ruby/object:Gem::Dependency
83
- type: :development
84
- requirement: &id005 !ruby/object:Gem::Requirement
78
+ name: shoulda
79
+ version_requirements: &id005 !ruby/object:Gem::Requirement
85
80
  none: false
86
81
  requirements:
87
82
  - - ">="
@@ -90,44 +85,40 @@ dependencies:
90
85
  segments:
91
86
  - 0
92
87
  version: "0"
93
- name: shoulda
94
- version_requirements: *id005
88
+ type: :development
89
+ requirement: *id005
95
90
  prerelease: false
96
91
  - !ruby/object:Gem::Dependency
97
- type: :development
98
- requirement: &id006 !ruby/object:Gem::Requirement
92
+ name: bundler
93
+ version_requirements: &id006 !ruby/object:Gem::Requirement
99
94
  none: false
100
95
  requirements:
101
- - - ~>
96
+ - - ">="
102
97
  - !ruby/object:Gem::Version
103
- hash: 23
98
+ hash: 3
104
99
  segments:
105
- - 1
106
- - 0
107
100
  - 0
108
- version: 1.0.0
109
- name: bundler
110
- version_requirements: *id006
101
+ version: "0"
102
+ type: :development
103
+ requirement: *id006
111
104
  prerelease: false
112
105
  - !ruby/object:Gem::Dependency
113
- type: :development
114
- requirement: &id007 !ruby/object:Gem::Requirement
106
+ name: jeweler
107
+ version_requirements: &id007 !ruby/object:Gem::Requirement
115
108
  none: false
116
109
  requirements:
117
- - - ~>
110
+ - - ">="
118
111
  - !ruby/object:Gem::Version
119
- hash: 7
112
+ hash: 3
120
113
  segments:
121
- - 1
122
- - 6
123
- - 4
124
- version: 1.6.4
125
- name: jeweler
126
- version_requirements: *id007
114
+ - 0
115
+ version: "0"
116
+ type: :development
117
+ requirement: *id007
127
118
  prerelease: false
128
119
  - !ruby/object:Gem::Dependency
129
- type: :development
130
- requirement: &id008 !ruby/object:Gem::Requirement
120
+ name: rcov
121
+ version_requirements: &id008 !ruby/object:Gem::Requirement
131
122
  none: false
132
123
  requirements:
133
124
  - - ">="
@@ -136,8 +127,8 @@ dependencies:
136
127
  segments:
137
128
  - 0
138
129
  version: "0"
139
- name: rcov
140
- version_requirements: *id008
130
+ type: :development
131
+ requirement: *id008
141
132
  prerelease: false
142
133
  description: This handles complex document creation from XML for the FASI AMS system.
143
134
  email: nathancolgate@gmail.com
@@ -195,9 +186,12 @@ files:
195
186
  - lib/fn/util.rb
196
187
  - lib/fn/validation.rng
197
188
  - lib/fn_document.rb
189
+ - test/assets/logo.jpg
190
+ - test/assets/pdf_background.pdf
191
+ - test/assets/pdf_background_2.pdf
198
192
  - test/helper.rb
193
+ - test/nathans_test.rb
199
194
  - test/test_fn_document.rb
200
- has_rdoc: true
201
195
  homepage: http://github.com/nathancolgate/fn_document
202
196
  licenses:
203
197
  - MIT
@@ -227,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
227
221
  requirements: []
228
222
 
229
223
  rubyforge_project:
230
- rubygems_version: 1.6.2
224
+ rubygems_version: 1.8.24
231
225
  signing_key:
232
226
  specification_version: 3
233
227
  summary: Gem for reading/writing/printing fn documents