acrobat 0.0.5

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6cf8c70596499ece879fa4f9fc2479eae8f20d50
4
+ data.tar.gz: 248c69e02d4836795c2e812899f77b796431c276
5
+ SHA512:
6
+ metadata.gz: 7ce98e8d0fa74f6e2c8424ca8176f3812cb659ea668f4276a10c75d00166a91ee8e6d06ac0f08b9075078aafc4b036b793b6e5d48a775eb1f059652cdebc46d7
7
+ data.tar.gz: c491c89f2372e5256bb98aebc51d97cd0822c5dc349eb5b2c0f2ae2a8df19b009758c76ba5f9fddc15ba10a79a77a6477b2a2d1affbd318fbf62a7f6ba69b01e
Binary file
@@ -0,0 +1,5 @@
1
+
2
+ �����w^���
3
+ �Pd�y5�R�k���Ս�m� u�\�-�}�sb�P�TLV�ȶ �[8*F.�
4
+ ����R�5�9d�ԧS��
5
+ @Tp�\�+q'��J�=�"y}�ߑ����6�u`W)jOX0���
@@ -0,0 +1,25 @@
1
+ # -*- ruby -*-
2
+
3
+ require "autotest/restart"
4
+
5
+ # Autotest.add_hook :initialize do |at|
6
+ # at.testlib = "minitest/unit"
7
+ #
8
+ # at.extra_files << "../some/external/dependency.rb"
9
+ #
10
+ # at.libs << ":../some/external"
11
+ #
12
+ # at.add_exception "vendor"
13
+ #
14
+ # at.add_mapping(/dependency.rb/) do |f, _|
15
+ # at.files_matching(/test_.*rb$/)
16
+ # end
17
+ #
18
+ # %w(TestA TestB).each do |klass|
19
+ # at.extra_class_map[klass] = "test/test_misc.rb"
20
+ # end
21
+ # end
22
+
23
+ # Autotest.add_hook :run_command do |at|
24
+ # system "rake build"
25
+ # end
@@ -0,0 +1,32 @@
1
+ *.gem
2
+ *.rbc
3
+ /pkg/
4
+ /spec/reports/
5
+ /spec/examples.txt
6
+ /test/tmp/
7
+ /test/version_tmp/
8
+ /tmp/
9
+
10
+ # Used by dotenv library to load environment variables.
11
+ # .env
12
+
13
+
14
+ ## Documentation cache and generated files:
15
+ /.yardoc/
16
+ /_yardoc/
17
+ /doc/
18
+ /rdoc/
19
+
20
+ ## Environment normalization:
21
+ /.bundle/
22
+ /vendor/bundle
23
+ /lib/bundler/man/
24
+
25
+ # for a library or gem, you might want to ignore these files since the code is
26
+ # intended to run in multiple environments; otherwise, check them in:
27
+ Gemfile.lock
28
+ .ruby-version
29
+ .ruby-gemset
30
+
31
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
32
+ .rvmrc
@@ -0,0 +1,30 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ ## Uncomment and set this to only include directories you want to watch
5
+ # directories %w(app lib config test spec features) \
6
+ # .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}
7
+
8
+ ## Note: if you are using the `directories` clause above and you are not
9
+ ## watching the project directory ('.'), then you will want to move
10
+ ## the Guardfile to a watched dir and symlink it back, e.g.
11
+ #
12
+ # $ mkdir config
13
+ # $ mv Guardfile config/
14
+ # $ ln -s config/Guardfile .
15
+ #
16
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
17
+
18
+ guard :minitest do
19
+ # with Minitest::Unit
20
+ watch(%r{^test/(.*)\/?test_(.*)\.rb$})
21
+ watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
22
+ watch(%r{^test/test_helper\.rb$}) { 'test' }
23
+
24
+ # with Minitest::Spec
25
+ # watch(%r{^spec/(.*)_spec\.rb$})
26
+ # watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
27
+ # watch(%r{^spec/spec_helper\.rb$}) { 'spec' }
28
+
29
+
30
+ end
@@ -0,0 +1,6 @@
1
+ === 0.0.5/ 2017-01-20
2
+
3
+ * 1 major enhancement
4
+
5
+ * Birthday!
6
+
@@ -0,0 +1,22 @@
1
+ .The MIT License
2
+ ....
3
+ Copyright (C) 2012-2016 Dominic Sisneros and the Microstation-Ruby project.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
22
+ ....
@@ -0,0 +1,13 @@
1
+ .autotest
2
+ .gitignore
3
+ Guardfile
4
+ History.adoc
5
+ LICENSE.adoc
6
+ Manifest.txt
7
+ README.adoc
8
+ Rakefile
9
+ bin/acrobat
10
+ lib/acrobat.rb
11
+ lib/acrobat/app.rb
12
+ test/acrobat_test.rb
13
+ test/test_helper.rb
@@ -0,0 +1,115 @@
1
+ = acrobat
2
+ Dominic Sisneros <https://github.com/dsisnero[@dsisnero]
3
+ //settings
4
+ :page-layout: base
5
+ :idprefix:
6
+ :idseparator: -
7
+ :source-language: ruby
8
+ :language: {source-language}
9
+ // Uris
10
+ :uri-org: https://github.com/dsisnero
11
+ :uri-repo: {uri-org}/acrobat
12
+ :uri-issues: {uri-repo}/issues
13
+ :uri-contributors: {uri-repo}/graphs/contributors
14
+ :uri-changelog: {uri-rel-file-base}CHANGELOG.adoc
15
+ :uri-rel-file-base: {uri-repo}/blob/master/
16
+ :uri-rel-tree-base: {uri-repo}/tree/master/
17
+ :uri-contribute: {uri-rel-file-base}CONTRIBUTING.adoc
18
+ :uri-license: {uri-rel-file-base}LICENSE.adoc
19
+
20
+ == DESCRIPTION:
21
+
22
+ == Requirements
23
+
24
+ * Windows Adobe Acrobat installed
25
+
26
+ == Install 0ptions
27
+
28
+ acrobat can be installed using (a) the `gem install` command, (b) Bundler
29
+
30
+ === (a) gem install
31
+
32
+ Open a terminal and type
33
+ $ gem install acrobat
34
+
35
+ .Upgrading your installation
36
+ [TIP]
37
+ ====
38
+ If you have an earlier version of acrobat installed you can update it using:
39
+
40
+ $ gem update acrobat
41
+
42
+ If you install a new version of the gem using `gem install` instead of
43
+ gem update, you'll have multiple versions installed. If that's the
44
+ case, use the following gem command to remove the old versions:
45
+
46
+ $ gem cleanup acrobat
47
+ ====
48
+ === (b) Bundler
49
+
50
+ . Create a Gemfile in the root folder of your project (or the current directory)
51
+ . Add the `asciidoctor` gem to your Gemfile as follows:
52
+ +
53
+ [source]
54
+ ----
55
+ source 'https://rubygems.org'
56
+ gem 'acrobat'
57
+ # or specify the version explicitly
58
+ # gem 'acrobat', '0.0.5'
59
+ ----
60
+
61
+ . Save the Gemfile
62
+ . Open a terminal and install the gem using:
63
+
64
+ $ bundle
65
+
66
+ To upgrade the gem, specify the new version in the Gemfile and run `bundle` again.
67
+ Using `bundle update` is *not* recommended as it will also update other gems, which may not be the desired result.
68
+
69
+ == Usage
70
+
71
+ [source,ruby]
72
+ ====
73
+
74
+ require 'acrobat'
75
+ Adobe::Acrobat.run do |app|
76
+ fields = {city: 'City', state: 'State', zip: 'zip'}
77
+ doc = app.open('apd_document.pdf')
78
+ doc.fill_form(fields)
79
+ doc.show
80
+ doc2 = app.open('another_doc.pdf')
81
+ doc2.fill_form(fields)
82
+ doc1.merge_doc(doc2)
83
+ doc1.save_as(name: 'merged_doc.pdf', dir: 'tmp')
84
+ end
85
+
86
+
87
+
88
+ ====
89
+
90
+ == Getting Help
91
+
92
+
93
+ We encourage you to ask questions and discuss any aspects of the project on the discussion list, Twitter or IRC.
94
+
95
+ Mailing list:: {uri-discuss}
96
+
97
+
98
+ ifdef::env-github[]
99
+ Further information and documentation about acrobat gem can be found on the project's website.
100
+
101
+ {uri-project}/[Home] | {uri-news}[News] | {uri-docs}[Docs]
102
+ endif::[]
103
+
104
+ The project's source code, issue tracker, and sub-projects are on github
105
+
106
+ Source repository (git):: {uri-repo}
107
+ Issue tracker:: {uri-issues}
108
+ acrobat organization on GitHub:: {uri-org}
109
+
110
+ == Copyright and Licensing
111
+
112
+ Copyright (C) 2012-2016 Dominic Sisneros and the acrobat-Ruby Project.
113
+ Free use of this software is granted under the terms of the MIT License.
114
+
115
+ See the {uri-license}[LICENSE] file for details.
@@ -0,0 +1,47 @@
1
+ # -*- ruby -*-
2
+
3
+ require "rubygems"
4
+ require "hoe"
5
+
6
+ class Hoe
7
+
8
+ def intuit_values
9
+ require 'asciidoctor'
10
+ doc = Asciidoctor.load_file readme_file
11
+ urls = { "home" => doc.attributes['uri-repo']}
12
+ desc = doc.blocks.find{|b| b.id =~ /description/i}.content
13
+ summ = desc.split(/\.\s+/).first(summary_sentences).join(". ")
14
+ self.urls ||= urls
15
+ self.description ||= desc
16
+ self.summary ||= summ
17
+ end
18
+
19
+ end
20
+
21
+ # Hoe.plugin :compiler
22
+ # Hoe.plugin :gem_prelude_sucks
23
+ # Hoe.plugin :inline
24
+ # Hoe.plugin :racc
25
+ # Hoe.plugin :rcov
26
+ # Hoe.plugin :rdoc
27
+ Hoe.plugin :bundler
28
+ Hoe.plugin :minitest
29
+ Hoe.plugin :yard
30
+
31
+ Hoe.spec "acrobat" do |s|
32
+ dependency("hoe-bundler", "> 0.0",:development)
33
+ dependency("hoe-yard", "> 0.0",:development)
34
+ dependency("pry", "> 0.0", :development)
35
+ dependency("pry-byebug", "> 0.0", :development)
36
+ dependency("yard", "> 0.0", :development)
37
+ dependency("guard", "> 0.0", :development)
38
+ dependency("wdm", "> 0.1.0", :development) if Gem.win_platform?
39
+ dependency("guard-minitest", "> 0.0", :development)
40
+ dependency("asciidoctor", ">0.0",:development)
41
+ developer("Dominic Sisneros","dsisnero@gmail.com")
42
+ clean_globs << "tmp"
43
+ license "MIT" # this should match the license in the README
44
+ end
45
+
46
+
47
+ # vim: syntax=ruby
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ abort "you need to write me"
@@ -0,0 +1,7 @@
1
+ require 'win32ole'
2
+ require 'acrobat/app'
3
+
4
+
5
+ module Acrobat
6
+ VERSION = "0.0.5"
7
+ end
@@ -0,0 +1,414 @@
1
+ require 'pry'
2
+ require 'win32ole'
3
+
4
+ module FileSystemObject
5
+
6
+ @instance = nil
7
+ def FileSystemObject.instance
8
+ unless @instance
9
+ @instance = WIN32OLE.new('Scripting.FileSystemObject')
10
+ end
11
+ return @instance
12
+ end
13
+
14
+ def FileSystemObject.windows_path(path)
15
+ FileSystemObject.instance.GetAbsolutePathname(path.to_s)
16
+ end
17
+
18
+ end
19
+
20
+ module ACRO; end
21
+
22
+ module Acrobat
23
+
24
+ class App
25
+
26
+
27
+ attr_reader :ole_obj, :pdoc
28
+
29
+ def initialize()
30
+ @ole_obj = WIN32OLE.new('AcroExch.App')
31
+ load_constants(@ole_obj)
32
+ @ole_obj
33
+ @docs = []
34
+ self
35
+ end
36
+
37
+ # Runs the adobe app and quits at the end
38
+ # @yield app [App]
39
+ #
40
+ # Acrobat::App.run do |app|
41
+ # doc = app.open('doc.pdf')
42
+ # doc.fill_form( city: 'City', state: 'ST')
43
+ # doc.save_as('filled.pdf')
44
+ # end
45
+ #
46
+ # @return nil
47
+ def self.run
48
+ begin
49
+ the_app = new
50
+ yield the_app
51
+ ensure
52
+ the_app.quit unless the_app.nil?
53
+ the_app = nil
54
+ GC.start
55
+ nil
56
+ end
57
+ end
58
+
59
+ # show the Adobe Acrobat application
60
+ def show
61
+ ole_obj.Show
62
+ end
63
+
64
+ # hide the Adobe Acrobat application
65
+ def hide
66
+ ole_obj.Hide
67
+ end
68
+
69
+ # Finds the pdfs in a dir
70
+ # @param dir [String] the directory to find pdfs in
71
+ # @return [Array] of pdf files
72
+ def find_pdfs_in_dir(dir)
73
+ Pathname.glob( dir + '*.pdf')
74
+ end
75
+
76
+ # merges the pdfs in directory
77
+ # @param dir [String] the path of the directory
78
+ # @param name [String,Nil] the name of the returned pdf file
79
+ # if the name is nil, the name is "merged.pdf"
80
+ # @param output_dir [String,Nil] the name of the output dir
81
+ # if the output_dir is nil, the output dir is the dir param
82
+ # return [Boolean] if the merge was successful or not
83
+ def merge_pdfs(dir, name: nil , output_dir: nil)
84
+ name = lname || "merged.pdf"
85
+ dir = output_dir || dir
86
+ pdfs = Pathname.glob( dir + '*.pdf')
87
+ raise 'Not enough pdfs to merge' if pdfs.size < 2
88
+ first, *rest = pdfs
89
+ open(first) do |pdf|
90
+ rest.each do |path|
91
+ open(path) do |pdfnext|
92
+ pdf.merge_doc(pdfnext)
93
+ end
94
+ end
95
+
96
+ pdf.save_as(name: name, dir: dir)
97
+ end
98
+ end
99
+
100
+ # quit the Adobe App.
101
+ # closes the open adobe documents and quits the program
102
+ # @return nil
103
+ def quit
104
+ begin
105
+ docs.each{ |d| d.close}
106
+ ole_obj.Exit
107
+ rescue
108
+ return nil
109
+ end
110
+ nil
111
+ end
112
+
113
+ def docs
114
+ @docs
115
+ end
116
+
117
+ # open the file.
118
+ # @param file [String #to_path]
119
+ # @return [PDoc] the open file as a Pdoc instance
120
+ def open(file)
121
+ filepath = Pathname(file).expand_path
122
+ raise FileNotFound unless filepath.file?
123
+ pdoc = WIN32OLE.new('AcroExch.PDDoc')
124
+ is_opened = pdoc.open FileSystemObject.windows_path(filepath)
125
+ doc = PDoc.new(self, pdoc, filepath) if is_opened
126
+ docs << doc if is_opened
127
+ return doc unless block_given?
128
+ begin
129
+ yield doc
130
+ ensure
131
+ doc.close unless doc.closed?
132
+ doc = nil
133
+ end
134
+ end
135
+
136
+
137
+ def form
138
+ Form.new(self,WIN32OLE.new("AFormAut.App"))
139
+ end
140
+
141
+ private
142
+
143
+ def load_constants(ole_obj)
144
+ WIN32OLE.const_load(ole_obj, ACRO) unless ACRO.constants.size > 0
145
+ end
146
+
147
+
148
+ end
149
+
150
+ class PDoc
151
+
152
+ attr_reader :app, :ole_obj, :path
153
+
154
+ def initialize(app,ole,path=nil)
155
+ @app = app
156
+ @ole_obj = ole
157
+ @path = path
158
+ end
159
+
160
+ def show(name = nil)
161
+ name = name || ole_obj.GetFileName
162
+ ole_obj.OpenAVDoc(name)
163
+ end
164
+
165
+ # @return [Fixnum] the number of pages in the pdf
166
+ def page_count
167
+ ole_obj.GetNumPages()
168
+ end
169
+
170
+ # merges the doc to the
171
+ # @overload merge(doc)
172
+ # @param doc [String] the String path of a pdf file
173
+ # @overload merge(doc)
174
+ # @param doc [PDoc] an open PDoc to merge
175
+ # @return [Boolean] whether the doc was merged correctly
176
+ def merge(doc)
177
+ case doc
178
+ when PDoc
179
+ merge_pdoc(doc)
180
+ when String, Pathname
181
+ docpath = Pathname(doc)
182
+ raise 'File not found' unless docpath.file?
183
+ doc2 = app.open(docpath)
184
+ merge_pdoc(doc2)
185
+ end
186
+ end
187
+
188
+ def update_form(results)
189
+ form.update(results)
190
+ end
191
+
192
+ def update_and_save(results,name: nil, dir: nil)
193
+ update_form(results)
194
+ is_saved = save_as(name: name, dir: dir)
195
+ puts "saved file: %s" % [dir + name] if is_saved
196
+ end
197
+
198
+ def default_dir(d)
199
+ Pathname(dir || Pathname.getw)
200
+ end
201
+
202
+
203
+ def save_as(name:nil, dir:nil)
204
+ name = path.basename unless name
205
+ dir = Pathname(dir || Pathname.getwd)
206
+ dir.mkpath
207
+ windows_path = FileSystemObject.windows_path(dir + name )
208
+ ole_obj.save(ACRO::PDSaveFull | ACRO::PDSaveCopy,windows_path)
209
+ end
210
+
211
+ def name
212
+ ole_obj.GetFileName
213
+ end
214
+
215
+ def close
216
+ ole_obj.Close
217
+ end
218
+
219
+
220
+ def jso
221
+ @jso ||= Jso.new(ole_obj.GetJSObject)
222
+ end
223
+
224
+ def field_names
225
+ jso.field_names
226
+ end
227
+
228
+ def fill_form(results)
229
+ jso.fill_form(results)
230
+ end
231
+
232
+ protected
233
+ def merge_pdoc(doc)
234
+ ole_obj.InsertPages(page_count - 1, doc.ole_obj, 0, doc.page_count, true)
235
+ end
236
+
237
+ end
238
+
239
+ class Jso
240
+
241
+ attr_reader :ole_obj
242
+
243
+ def initialize(ole)
244
+ @ole_obj = ole
245
+ end
246
+
247
+ def find_field(name_or_number)
248
+ case name_or_number
249
+ when String,Symbol
250
+ ole_get_field(name_or_number.to_s)
251
+ when Number
252
+ ole_get_field(name_or_number)
253
+ end
254
+ end
255
+
256
+ def ole_get_field(field)
257
+ ole_obj.getField(field)
258
+ end
259
+
260
+ def console
261
+ @console ||= ole_obj.console
262
+ end
263
+
264
+ def field_names
265
+ result = []
266
+ 0.upto(field_count -1) do |i|
267
+ result << ole_obj.getNthFieldName(i)
268
+ end
269
+ result
270
+ end
271
+
272
+ def set_field(name,value)
273
+ field = find_field(name)
274
+ field.Value = value if field
275
+ end
276
+
277
+ def get_field(name)
278
+ field = find_field(name)
279
+ field.Value if field
280
+ end
281
+
282
+ def field_count
283
+ ole_obj.numFields
284
+ end
285
+
286
+ def clear_form
287
+ ole_obj.resetForm
288
+ end
289
+
290
+ def fill_form(hash)
291
+ clear_form
292
+ hash.each do |k,v|
293
+ set_field(k,v)
294
+ end
295
+ end
296
+
297
+ end
298
+
299
+
300
+ class Form
301
+
302
+ attr_reader :app, :ole_obj
303
+
304
+ def initialize(app, ole_obj)
305
+ @app = app
306
+ @ole_obj = ole_obj
307
+ end
308
+
309
+ def ole_fields
310
+ @ole_obj.fields
311
+ end
312
+
313
+ def [](name)
314
+ ole = get_name(name)
315
+ ole.value if ole
316
+ end
317
+
318
+ def get_name(name)
319
+ ole_obj.fields.Item(name.to_s) rescue nil
320
+ end
321
+
322
+ def []=(name,value)
323
+ ole = get_name(name.to_s)
324
+ ole.Value = value if ole
325
+ end
326
+
327
+ def update(hash)
328
+ hash.each do |k,v|
329
+ self[k.to_s] = v
330
+ end
331
+
332
+ end
333
+
334
+ def to_hash
335
+ result = {}
336
+ ole_obj.fields.each do |fld|
337
+ result[fld.Name] = fld.value
338
+ end
339
+ result
340
+ end
341
+ end
342
+
343
+
344
+
345
+ end
346
+
347
+ if $0 == __FILE__
348
+ require 'pry'
349
+
350
+ app = Acrobat::App.run do |app|
351
+
352
+ data = Pathname(__dir__).parent.parent + 'data'
353
+ antenna_form = data + 'faa.6030.17.antenna.pdf'
354
+
355
+
356
+ doc1 = app.open(antenna_form)
357
+ doc1.show
358
+
359
+ fields = {'city' => 'OGD', 'state' => 'Utah',
360
+ 'lid' => 'OGD',
361
+ 'fac' => 'RTR',
362
+ }
363
+ doc1.fill_form(fields)
364
+
365
+
366
+ doc1.save_as(name: 'ogd.rtr.pdf', dir: 'tmp')
367
+
368
+
369
+
370
+
371
+ doc2 = app.open(data + 'faa.6030.17.cm300.uhf.tx.pdf')
372
+ doc2.show
373
+ doc2.fill_form(fields)
374
+
375
+ doc1.merge(doc2)
376
+ doc1.save_as(name: 'ogd.merged_antenna_tx.pdf', dir: 'tmp')
377
+
378
+ end
379
+
380
+ end
381
+
382
+
383
+
384
+ # ublic Sub Main()
385
+ # Dim AcroApp As Acrobat.CAcroApp
386
+ # Dim AvDoc As Acrobat.CAcroAVDoc
387
+ # Dim fcount As Long
388
+ # Dim sFieldName As String
389
+ # Dim Field As AFORMAUTLib.Field
390
+ # Dim Fields As AFORMAUTLib.Fields
391
+ # Dim AcroForm As AFORMAUTLib.AFormApp
392
+
393
+ # Set AcroApp = CreateObject("AcroExch.App")
394
+ # Set AvDoc = CreateObject("AcroExch.AVDoc")
395
+
396
+ # If AvDoc.Open("C:\test\testform.pdf", "") Then
397
+ # AcroApp.Show
398
+ # Set AcroForm = CreateObject("AFormAut.App")
399
+ # Set Fields = AcroForm.Fields
400
+ # fcount = Fields.Count
401
+ # MsgBox fcount
402
+ # For Each Field In Fields
403
+ # sFieldName = Field.Name
404
+ # MsgBox sFieldName
405
+ # Next Field
406
+ # Else
407
+ # MsgBox "failure"
408
+ # End If
409
+ # AcroApp.Exit
410
+ # Set AcroApp = Nothing
411
+ # Set AvDoc = Nothing
412
+ # Set Field = Nothing
413
+ # Set Fields = Nothing
414
+ # Set AcroForm = Nothing
@@ -0,0 +1,33 @@
1
+ require 'test_helper'
2
+
3
+
4
+ require "acrobat"
5
+
6
+
7
+
8
+ module Acrobat
9
+
10
+ describe App do
11
+
12
+
13
+ describe 'new' do
14
+
15
+
16
+ it 'can be created' do
17
+
18
+ app = App.new
19
+ app.must_be_instance_of App
20
+ end
21
+
22
+ it 'has an ole_obj' do
23
+ app = App.new
24
+ app.ole_obj.must_be_instance_of WIN32OLE
25
+ end
26
+
27
+ end
28
+
29
+
30
+ end
31
+
32
+
33
+ end
@@ -0,0 +1,9 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+
3
+ if RUBY_VERSION < '1.9.3'
4
+ ::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require File.join(File.dirname(f), File.basename(f, '.rb')) }
5
+ else
6
+ ::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require_relative f }
7
+ end
8
+
9
+
metadata ADDED
@@ -0,0 +1,239 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: acrobat
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
+ platform: ruby
6
+ authors:
7
+ - Dominic Sisneros
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAhkc2lz
14
+ bmVybzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
15
+ MB4XDTE3MDEzMTE2MDEyMVoXDTE4MDEzMTE2MDEyMVowPzERMA8GA1UEAwwIZHNp
16
+ c25lcm8xFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
17
+ bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEeU7rhCgCeSX2xM43x
18
+ WSfxn+McvtU5zL2Q15fibhe2UFSRM7+9kMElye9MpA2SvRvUdi1ffgifo5IbFskz
19
+ b872rX5NOTC5zdhc8/r7K2N5sNzuxtQS2neYwsDJYn+X4IXW+7vAC3tsEq60uotD
20
+ 5ZCrGMzpe8+8QlOLhKBE8n8B1tGFqrJPLWGVT/4SLW6/AeegPXWzwaOUJioNnlP1
21
+ zoTq5xAqCFp+l5+gzj82hexnd3Mz6wTqfZn+z6KOeGYz2rHa1uaVWAJ4I03ofaso
22
+ 4dj5N/R//djheKrZcRwvcHwglgNedKpKcDFvBmVh+/ueq1ZN4mxIOuWFfqH5EH1w
23
+ okECAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFDq6
24
+ Q3OD0phGy8SIVItmHiEfNUYNMB0GA1UdEQQWMBSBEmRzaXNuZXJvQGdtYWlsLmNv
25
+ bTAdBgNVHRIEFjAUgRJkc2lzbmVyb0BnbWFpbC5jb20wDQYJKoZIhvcNAQEFBQAD
26
+ ggEBAGordyPD1ZBGMaJ0ZHsaw8gmmPX45r2LOjiuthmQfWTbxkXGcfxZmQMp4Rgq
27
+ i2SEkJ1bcxKNf2QcIEaSMo3tFz0JZikMMCCav1al2TB10JShlzkmK6akYrD2EMca
28
+ skUBzdiaODmVIxaePQKTofH3Tr+muDj2k2Jt0GADDi464TXjB7+WAfj9PNB6L0Bo
29
+ XLAuEbpybfRTbmgT1izvF41ZtekUEupzZkfe4Zjwdcfth9NX9YQml8RTrw5xPlgp
30
+ YeDmGZXEg4lVRuTrhlS3p+s9c5mdx2nJxSRQ8cJDPhwGiGFfBMMXo+HTfjvnVrDI
31
+ R2Hvov2PJU3aGJ/5gQuBTYYf3/0=
32
+ -----END CERTIFICATE-----
33
+ date: 2017-01-31 00:00:00.000000000 Z
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: minitest
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '5.10'
42
+ type: :development
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '5.10'
49
+ - !ruby/object:Gem::Dependency
50
+ name: hoe-yard
51
+ requirement: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 0.1.2
56
+ type: :development
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 0.1.2
63
+ - !ruby/object:Gem::Dependency
64
+ name: hoe-bundler
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">"
75
+ - !ruby/object:Gem::Version
76
+ version: '0.0'
77
+ - !ruby/object:Gem::Dependency
78
+ name: pry
79
+ requirement: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">"
82
+ - !ruby/object:Gem::Version
83
+ version: '0.0'
84
+ type: :development
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">"
89
+ - !ruby/object:Gem::Version
90
+ version: '0.0'
91
+ - !ruby/object:Gem::Dependency
92
+ name: pry-byebug
93
+ requirement: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">"
96
+ - !ruby/object:Gem::Version
97
+ version: '0.0'
98
+ type: :development
99
+ prerelease: false
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">"
103
+ - !ruby/object:Gem::Version
104
+ version: '0.0'
105
+ - !ruby/object:Gem::Dependency
106
+ name: yard
107
+ requirement: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">"
110
+ - !ruby/object:Gem::Version
111
+ version: '0.0'
112
+ type: :development
113
+ prerelease: false
114
+ version_requirements: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">"
117
+ - !ruby/object:Gem::Version
118
+ version: '0.0'
119
+ - !ruby/object:Gem::Dependency
120
+ name: guard
121
+ requirement: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">"
124
+ - !ruby/object:Gem::Version
125
+ version: '0.0'
126
+ type: :development
127
+ prerelease: false
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">"
131
+ - !ruby/object:Gem::Version
132
+ version: '0.0'
133
+ - !ruby/object:Gem::Dependency
134
+ name: wdm
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">"
138
+ - !ruby/object:Gem::Version
139
+ version: 0.1.0
140
+ type: :development
141
+ prerelease: false
142
+ version_requirements: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">"
145
+ - !ruby/object:Gem::Version
146
+ version: 0.1.0
147
+ - !ruby/object:Gem::Dependency
148
+ name: guard-minitest
149
+ requirement: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">"
152
+ - !ruby/object:Gem::Version
153
+ version: '0.0'
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">"
159
+ - !ruby/object:Gem::Version
160
+ version: '0.0'
161
+ - !ruby/object:Gem::Dependency
162
+ name: asciidoctor
163
+ requirement: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">"
166
+ - !ruby/object:Gem::Version
167
+ version: '0.0'
168
+ type: :development
169
+ prerelease: false
170
+ version_requirements: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">"
173
+ - !ruby/object:Gem::Version
174
+ version: '0.0'
175
+ - !ruby/object:Gem::Dependency
176
+ name: hoe
177
+ requirement: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: '3.16'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: '3.16'
189
+ description: ''
190
+ email:
191
+ - dsisnero@gmail.com
192
+ executables:
193
+ - acrobat
194
+ extensions: []
195
+ extra_rdoc_files:
196
+ - Manifest.txt
197
+ - History.adoc
198
+ files:
199
+ - ".autotest"
200
+ - ".gitignore"
201
+ - Guardfile
202
+ - History.adoc
203
+ - LICENSE.adoc
204
+ - Manifest.txt
205
+ - README.adoc
206
+ - Rakefile
207
+ - bin/acrobat
208
+ - lib/acrobat.rb
209
+ - lib/acrobat/app.rb
210
+ - test/acrobat_test.rb
211
+ - test/test_helper.rb
212
+ homepage: https://github.com/dsisnero/acrobat
213
+ licenses:
214
+ - MIT
215
+ metadata: {}
216
+ post_install_message:
217
+ rdoc_options:
218
+ - "--title"
219
+ - TestAcrobat Documentation
220
+ - "--quiet"
221
+ require_paths:
222
+ - lib
223
+ required_ruby_version: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: '0'
228
+ required_rubygems_version: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: '0'
233
+ requirements: []
234
+ rubyforge_project:
235
+ rubygems_version: 2.6.10
236
+ signing_key:
237
+ specification_version: 4
238
+ summary: ''
239
+ test_files: []
@@ -0,0 +1 @@
1
+ 1��7�^.��s��gD'=�Ԏ/��D[��NQL��K�LR�|O���8�ݜ�-�%���YS��ZWk٣��Y� ��'T�(��l/Ѕ���d���ك�9(bݙ�K|��xC��«���C��B��#}ԗ�G-zД؎��v�CLX�&;˸4l���C��:�&������/�H u�#�O-������FE��&a^���A�mO!ԇ��];,���V����k��>�jx D'qmޝ~�D�a�������G��&