fn_document 0.9.6 → 0.9.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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