acrobat 0.0.8 → 0.1.0

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/lib/acrobat/jso.rb CHANGED
@@ -1,94 +1,94 @@
1
- module Acrobat
2
-
3
- class Jso
4
-
5
- attr_reader :doc, :ole_obj
6
-
7
- def initialize(doc,ole)
8
- @doc = doc
9
- @ole_obj = ole
10
- end
11
-
12
- def find_field(name_or_number)
13
- case name_or_number
14
- when String,Symbol
15
- ole_get_field(name_or_number.to_s)
16
- when Number
17
- ole_get_field(name_or_number)
18
- end
19
- end
20
-
21
- def ole_get_field(field)
22
- ole_obj.getField(field)
23
- end
24
-
25
- def console
26
- @console ||= ole_obj.console
27
- end
28
-
29
- def show_console
30
- console.show
31
- end
32
-
33
- def field_names
34
- result = []
35
- count = field_count
36
- 0.upto(count-1) do |i|
37
- result << ole_obj.getNthFieldName(i)
38
- end
39
- result
40
- end
41
-
42
- def export_as_fdf(name)
43
- end
44
-
45
- def import_fdf(path)
46
- end
47
-
48
-
49
- def fields_hash
50
- result = {}
51
- field_names.each_with_object( result ) do |name, h|
52
- h[name] = get_field(name)
53
- end
54
- end
55
-
56
-
57
- # // Enumerate through all of the fields in the document.
58
- # for (var i = 0; i < this.numFields; i++)
59
- # console.println("Field[" + i + "] = " + this.getNthFieldName(i));
60
-
61
- def set_field(name,value)
62
- begin
63
- field = find_field(name)
64
- field.Value = value.to_s if field
65
- rescue
66
- require 'pry'
67
- binding.pry
68
- nil
69
- end
70
- end
71
-
72
- def get_field(name)
73
- field = find_field(name)
74
- field.Value if field
75
- end
76
-
77
- def field_count
78
- ole_obj.numFields().to_int
79
- end
80
-
81
- def clear_form
82
- ole_obj.resetForm
83
- end
84
-
85
- def fill_form(hash)
86
- clear_form
87
- hash.each do |k,v|
88
- set_field(k,v)
89
- end
90
- end
91
-
92
- end
93
-
94
- end
1
+ module Acrobat
2
+
3
+ class Jso
4
+
5
+ attr_reader :doc, :ole_obj
6
+
7
+ def initialize(doc,ole)
8
+ @doc = doc
9
+ @ole_obj = ole
10
+ end
11
+
12
+ def find_field(name_or_number)
13
+ case name_or_number
14
+ when String,Symbol
15
+ ole_get_field(name_or_number.to_s)
16
+ when Number
17
+ ole_get_field(name_or_number)
18
+ end
19
+ end
20
+
21
+ def ole_get_field(field)
22
+ ole_obj.getField(field)
23
+ end
24
+
25
+ def console
26
+ @console ||= ole_obj.console
27
+ end
28
+
29
+ def show_console
30
+ console.show
31
+ end
32
+
33
+ def field_names
34
+ result = []
35
+ count = field_count
36
+ 0.upto(count-1) do |i|
37
+ result << ole_obj.getNthFieldName(i)
38
+ end
39
+ result
40
+ end
41
+
42
+ def export_as_fdf(name)
43
+ end
44
+
45
+ def import_fdf(path)
46
+ end
47
+
48
+
49
+ def fields_hash
50
+ result = {}
51
+ field_names.each_with_object( result ) do |name, h|
52
+ h[name] = get_field(name)
53
+ end
54
+ end
55
+
56
+
57
+ # // Enumerate through all of the fields in the document.
58
+ # for (var i = 0; i < this.numFields; i++)
59
+ # console.println("Field[" + i + "] = " + this.getNthFieldName(i));
60
+
61
+ def set_field(name,value)
62
+ begin
63
+ field = find_field(name)
64
+ field.Value = value.to_s if field
65
+ rescue
66
+ require 'pry'
67
+ binding.pry
68
+ nil
69
+ end
70
+ end
71
+
72
+ def get_field(name)
73
+ field = find_field(name)
74
+ field.Value if field
75
+ end
76
+
77
+ def field_count
78
+ ole_obj.numFields().to_int
79
+ end
80
+
81
+ def clear_form
82
+ ole_obj.resetForm
83
+ end
84
+
85
+ def fill_form(hash)
86
+ clear_form
87
+ hash.each do |k,v|
88
+ set_field(k,v)
89
+ end
90
+ end
91
+
92
+ end
93
+
94
+ end
data/lib/acrobat/pdoc.rb CHANGED
@@ -1,127 +1,137 @@
1
- module Acrobat
2
-
3
- class PDoc
4
-
5
- attr_reader :app, :ole_obj, :path
6
-
7
- def initialize(app,ole,path=nil)
8
- @app = app
9
- @ole_obj = ole
10
- @path = path
11
- end
12
-
13
- def show(name = nil)
14
- name = name || ole_obj.GetFileName
15
- ole_obj.OpenAVDoc(name)
16
- end
17
-
18
- # @return [Fixnum] the number of pages in the pdf
19
- def page_count
20
- ole_obj.GetNumPages()
21
- end
22
-
23
- def last_page
24
- page_count -1
25
- end
26
-
27
- # merges the doc to the
28
- # @overload merge(doc)
29
- # @param doc [String] the String path of a pdf file
30
- # @overload merge(doc)
31
- # @param doc [PDoc] an open PDoc to merge
32
- # @return [Boolean] whether the doc was merged correctly
33
- def merge(doc, options = {})
34
- src = open_pdoc(doc)
35
- merge_pdoc(src,options)
36
- end
37
-
38
- # opens and/or returns PDoc
39
- # @overload open(doc)
40
- # @param doc [String] the String path of a pdf file
41
- # @overload open(PDoc] and open PDoc file
42
- # @param doc [PDoc] an already open PDoc file
43
- # @return doc [PDOC] the opened PDoc
44
- def open_pdoc(doc)
45
- src = case doc
46
- when PDoc
47
- doc
48
- when String, Pathname
49
- docpath = Pathname(doc)
50
- raise 'File not found' unless docpath.file?
51
- doc2 = app.open(docpath)
52
- doc2
53
- end
54
- src
55
- end
56
-
57
- def fill_and_save(results,name: nil, dir: nil)
58
- fill_form(results)
59
- is_saved = save_as(name: name, dir: dir)
60
- puts "saved file: %s" % [dir + name] if is_saved
61
- true
62
- end
63
-
64
-
65
- # returns [Pathname] of d
66
- # @param dir [String, Nil] the String path
67
- # @return dir [Pathname] Pathname of dir or of working directory
68
- def default_dir(dir)
69
- Pathname(dir || Pathname.getw)
70
- end
71
-
72
- def save_as(name,dir:nil)
73
- name = path.basename unless name
74
- dir = Pathname(dir || Pathname.getwd)
75
- dir.mkpath
76
- windows_path = FileSystemObject.windows_path(dir + name )
77
- ole_obj.save(ACRO::PDSaveFull | ACRO::PDSaveCopy,windows_path)
78
- end
79
-
80
- def name
81
- ole_obj.GetFileName
82
- end
83
-
84
- def close
85
- ole_obj.Close rescue nil
86
- end
87
-
88
- def replace_pages(doc, start: 0, replace_start: 0, num_of_pages: 1,merge_annotations: true)
89
- src = open_pdoc(doc)
90
-
91
- ole_obj.ReplacePages(start,src.ole_obj,replace_start,num_of_pages,merge_annotations)
92
- end
93
-
94
- # return the instance of JSO object
95
- # @return [Jso] a WIN32OLE wrapped Jso object 'javascript object'
96
- def jso
97
- @jso ||= Jso.new(self,ole_obj.GetJSObject)
98
- end
99
-
100
- # return the field_names of the pdf form
101
- def field_names
102
- jso.field_names
103
- end
104
-
105
- def fill_form(results)
106
- jso.fill_form(results)
107
- end
108
-
109
- protected
110
- def merge_pdoc(doc,options = {})
111
- begin
112
- unless options
113
- merged = ole_obj.InsertPages(page_count - 1, doc.ole_obj, 0, doc.page_count, true)
114
- return merged
115
- else
116
- start = options[:start]
117
- start_page
118
- pages = options[:pages]
119
- ole_obj.InsertPages(start, doc.ole_obj, 0, doc.page_count, true)
120
- end
121
- rescue
122
- return false
123
- end
124
- end
125
- end
126
-
127
- end
1
+ module Acrobat
2
+
3
+ class PDoc
4
+
5
+ attr_reader :app, :ole_obj, :path
6
+
7
+ def initialize(app,ole,path=nil)
8
+ @app = app
9
+ @ole_obj = ole
10
+ @path = path
11
+ end
12
+
13
+ def show(name = nil)
14
+ name = name || ole_obj.GetFileName
15
+ ole_obj.OpenAVDoc(name)
16
+ end
17
+
18
+ # @return [Fixnum] the number of pages in the pdf
19
+ def page_count
20
+ ole_obj.GetNumPages()
21
+ end
22
+
23
+ def last_page
24
+ page_count -1
25
+ end
26
+
27
+ # merges the doc to the
28
+ # @overload merge(doc)
29
+ # @param doc [String] the String path of a pdf file
30
+ # @overload merge(doc)
31
+ # @param doc [PDoc] an open PDoc to merge
32
+ # @return [Boolean] whether the doc was merged correctly
33
+ def merge(doc)
34
+ src = open_pdoc(doc)
35
+ merge_pdoc(src)
36
+ end
37
+
38
+ # opens and/or returns PDoc
39
+ # @overload open(doc)
40
+ # @param doc [String] the String path of a pdf file
41
+ # @overload open(PDoc] and open PDoc file
42
+ # @param doc [PDoc] an already open PDoc file
43
+ # @return doc [PDOC] the opened PDoc
44
+ def open_pdoc(doc)
45
+ src = case doc
46
+ when PDoc
47
+ doc
48
+ when String, Pathname
49
+ docpath = Pathname(doc)
50
+ raise 'File not found' unless docpath.file?
51
+ doc2 = app.open(docpath)
52
+ doc2
53
+ end
54
+ src
55
+ end
56
+
57
+ def fill_and_save(results,name: nil, dir: nil)
58
+ fill_form(results)
59
+ is_saved = save_as(name: name, dir: dir)
60
+ puts "saved file: %s" % [dir + name] if is_saved
61
+ true
62
+ end
63
+
64
+ def insert_pages(src: , insert_after: nil, src_page_start: nil, src_page_end: nil)
65
+ insert_hash = { 'nPage' => insert_after -1 }
66
+ insert_hash['nStart'] = src_page_start + 1 if src_page_start
67
+ insert_hash['nEnd'] = src_page_end + 1 if src_page_end
68
+ ole_obj.InsertPages(**insert_hash)
69
+ end
70
+
71
+ def prepend_pages(src_path: , src_page_start: 1, src_page_end: nil)
72
+ insert_pages( insert_after: 0, src_path: src_path, src_page_start: src_page_start, src_page_end: src_page_end)
73
+ end
74
+
75
+ # returns [Pathname] of d
76
+ # @param dir [String, Nil] the String path
77
+ # @return dir [Pathname] Pathname of dir or of working directory
78
+ def default_dir(dir)
79
+ Pathname(dir || Pathname.getw)
80
+ end
81
+
82
+ def save_as(name,dir:nil)
83
+ name = path.basename unless name
84
+ dir = Pathname(dir || Pathname.getwd)
85
+ dir.mkpath
86
+ windows_path = FileSystemObject.windows_path(dir + name )
87
+ ole_obj.save(ACRO::PDSaveFull | ACRO::PDSaveCopy,windows_path)
88
+ end
89
+
90
+ def name
91
+ ole_obj.GetFileName
92
+ end
93
+
94
+ def close
95
+ ole_obj.Close rescue nil
96
+ end
97
+
98
+ def replace_pages(doc, start: 0, replace_start: 0, num_of_pages: 1,merge_annotations: true)
99
+ src = open_pdoc(doc)
100
+
101
+ ole_obj.ReplacePages(start,src.ole_obj,replace_start,num_of_pages,merge_annotations)
102
+ end
103
+
104
+ # return the instance of JSO object
105
+ # @return [Jso] a WIN32OLE wrapped Jso object 'javascript object'
106
+ def jso
107
+ @jso ||= Jso.new(self,ole_obj.GetJSObject)
108
+ end
109
+
110
+ # return the field_names of the pdf form
111
+ def field_names
112
+ jso.field_names
113
+ end
114
+
115
+ def fill_form(results)
116
+ jso.fill_form(results)
117
+ end
118
+
119
+ protected
120
+ def merge_pdoc(doc, **options)
121
+ begin
122
+ unless options
123
+ merged = ole_obj.InsertPages(page_count - 1, doc.ole_obj, 0, doc.page_count, true)
124
+ return merged
125
+ else
126
+ start = options[:start]
127
+ start_page
128
+ pages = options[:pages]
129
+ ole_obj.InsertPages(start, doc.ole_obj, 0, doc.page_count, true)
130
+ end
131
+ rescue
132
+ return false
133
+ end
134
+ end
135
+ end
136
+
137
+ end