acrobat 0.0.7 → 0.0.8
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.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +1 -1
- data/README.adoc +2 -2
- data/Rakefile +5 -4
- data/lib/acrobat.rb +1 -1
- data/lib/acrobat/app.rb +41 -7
- data/lib/acrobat/pdoc.rb +50 -15
- data/test/acrobat_test.rb +5 -2
- data/test/test_helper.rb +4 -0
- metadata +38 -34
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0c99bfc29e7fb060276f39533f1f762f937eca16d6961d0d889243f5f4882878
|
4
|
+
data.tar.gz: ceb386e7cdc9abba3085c515f2e11cbed715aeff2d48e175b3d61818a5c767cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51a1bb2f8f589f2226b160cda8e9be8b08585e95d96f221216a047bcc2a1d18c93e28b897aec2f7937b0f17a95f050ce29052c17cb43f0b123edd15d2ea3fb93
|
7
|
+
data.tar.gz: 2b6e94fce7255c41afb8b75a51364a9c8e51b4cdbda37a49e071675ff4fbee8882ea0dab4363f27322c05fa2df05cb60162ce622179b43a3d44b2f236d9dfc8e
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
X"����Ƙ�tŊ�����^���w���Q��<ͥ��sBO��n���������0k��=b�Q��e4���(�#LS�{o������T�i(�e'N��/�����G��S*Z���%���T�@��4��J�K�¿�֕S��L*5xu�TH�bX��W���n��_
|
data/README.adoc
CHANGED
@@ -71,7 +71,7 @@ Using `bundle update` is *not* recommended as it will also update other gems, wh
|
|
71
71
|
== Usage
|
72
72
|
|
73
73
|
[source,ruby]
|
74
|
-
|
74
|
+
----
|
75
75
|
|
76
76
|
require 'acrobat'
|
77
77
|
Adobe::Acrobat.run do |app|
|
@@ -87,7 +87,7 @@ Using `bundle update` is *not* recommended as it will also update other gems, wh
|
|
87
87
|
|
88
88
|
|
89
89
|
|
90
|
-
|
90
|
+
----
|
91
91
|
|
92
92
|
== Getting Help
|
93
93
|
|
data/Rakefile
CHANGED
@@ -29,15 +29,16 @@ Hoe.plugin :minitest
|
|
29
29
|
Hoe.plugin :yard
|
30
30
|
|
31
31
|
Hoe.spec "acrobat" do |s|
|
32
|
-
dependency("hoe-bundler", "
|
33
|
-
dependency("hoe-yard", "> 0.
|
32
|
+
dependency("hoe-bundler", "~> 1.4",:development)
|
33
|
+
dependency("hoe-yard", "> 0.1",:development)
|
34
34
|
dependency("pry", "> 0.0", :development)
|
35
35
|
dependency("pry-byebug", "> 0.0", :development)
|
36
36
|
dependency("yard", "> 0.0", :development)
|
37
37
|
dependency("guard", "> 0.0", :development)
|
38
|
-
dependency("wdm", "> 0.1
|
38
|
+
dependency("wdm", "> 0.1", :development) if Gem.win_platform?
|
39
39
|
dependency("guard-minitest", "> 0.0", :development)
|
40
|
-
dependency("asciidoctor", ">0.0",:development)
|
40
|
+
dependency("asciidoctor", "> 0.0",:development)
|
41
|
+
# dependency("minitest-utils", "> 0.0", :development)
|
41
42
|
developer("Dominic Sisneros","dsisnero@gmail.com")
|
42
43
|
clean_globs << "tmp"
|
43
44
|
license "MIT" # this should match the license in the README
|
data/lib/acrobat.rb
CHANGED
data/lib/acrobat/app.rb
CHANGED
@@ -25,9 +25,14 @@ module Acrobat
|
|
25
25
|
|
26
26
|
class App
|
27
27
|
|
28
|
+
# [WIN32_OLE] ole_obj
|
29
|
+
attr_reader :ole_obj
|
28
30
|
|
29
|
-
|
31
|
+
# the wrapped [PDoc] PDoc object
|
32
|
+
attr_reader :pdoc
|
30
33
|
|
34
|
+
# Initialize the
|
35
|
+
# @return [App] return an instance of App
|
31
36
|
def initialize()
|
32
37
|
@ole_obj = WIN32OLE.new('AcroExch.App')
|
33
38
|
load_constants(@ole_obj)
|
@@ -39,11 +44,12 @@ module Acrobat
|
|
39
44
|
# Runs the adobe app and quits at the end
|
40
45
|
# @yield app [App]
|
41
46
|
#
|
42
|
-
#
|
43
|
-
#
|
44
|
-
#
|
45
|
-
#
|
46
|
-
#
|
47
|
+
# @example
|
48
|
+
# Acrobat::App.run do |app|
|
49
|
+
# doc = app.open('doc.pdf')
|
50
|
+
# doc.fill_form( city: 'City', state: 'ST')
|
51
|
+
# doc.save_as('filled.pdf')
|
52
|
+
# end
|
47
53
|
#
|
48
54
|
# @return nil
|
49
55
|
def self.run
|
@@ -58,6 +64,32 @@ module Acrobat
|
|
58
64
|
end
|
59
65
|
end
|
60
66
|
|
67
|
+
def self.replace_pages(src, replacement, output_name: , **opts)
|
68
|
+
self.run do |app|
|
69
|
+
app.open(src) do |doc|
|
70
|
+
doc.replace_pages(replacement, opts)
|
71
|
+
doc.save_as(output_name)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
# Fills the form with updates in a hash
|
77
|
+
# @example
|
78
|
+
# Acrobat::App.fill_form(myform.pdf, output_name: 'filled.pdf
|
79
|
+
# , update_hash: { name: 'dom', filled_date: 1/20/2013
|
80
|
+
# @param doc [String] the String path of a fillable pdf file
|
81
|
+
# @param output_name [String] the name of the saved filled pdf file
|
82
|
+
# @param update_hash [Hash] the hash with updates
|
83
|
+
def self.fill_form(form,output_name: , update_hash: )
|
84
|
+
self.run do |app|
|
85
|
+
doc = app.open(form)
|
86
|
+
doc.fill_form(update_hash)
|
87
|
+
doc.save_as(output_name)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
|
92
|
+
|
61
93
|
# show the Adobe Acrobat application
|
62
94
|
def show
|
63
95
|
ole_obj.Show
|
@@ -86,6 +118,8 @@ module Acrobat
|
|
86
118
|
doc
|
87
119
|
end
|
88
120
|
|
121
|
+
|
122
|
+
|
89
123
|
# merges the pdfs in directory
|
90
124
|
# @param dir [String] the path of the directory
|
91
125
|
# @param name [String,Nil] the name of the returned pdf file
|
@@ -145,7 +179,7 @@ module Acrobat
|
|
145
179
|
private
|
146
180
|
|
147
181
|
def load_constants(ole_obj)
|
148
|
-
|
182
|
+
WIN32OLE.const_load(ole_obj, ACRO) unless ACRO.constants.size > 0
|
149
183
|
end
|
150
184
|
|
151
185
|
end
|
data/lib/acrobat/pdoc.rb
CHANGED
@@ -20,22 +20,38 @@ module Acrobat
|
|
20
20
|
ole_obj.GetNumPages()
|
21
21
|
end
|
22
22
|
|
23
|
+
def last_page
|
24
|
+
page_count -1
|
25
|
+
end
|
26
|
+
|
23
27
|
# merges the doc to the
|
24
28
|
# @overload merge(doc)
|
25
29
|
# @param doc [String] the String path of a pdf file
|
26
30
|
# @overload merge(doc)
|
27
31
|
# @param doc [PDoc] an open PDoc to merge
|
28
32
|
# @return [Boolean] whether the doc was merged correctly
|
29
|
-
def merge(doc)
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
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
|
39
55
|
end
|
40
56
|
|
41
57
|
def fill_and_save(results,name: nil, dir: nil)
|
@@ -45,11 +61,15 @@ module Acrobat
|
|
45
61
|
true
|
46
62
|
end
|
47
63
|
|
48
|
-
|
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)
|
49
69
|
Pathname(dir || Pathname.getw)
|
50
70
|
end
|
51
71
|
|
52
|
-
def save_as(name
|
72
|
+
def save_as(name,dir:nil)
|
53
73
|
name = path.basename unless name
|
54
74
|
dir = Pathname(dir || Pathname.getwd)
|
55
75
|
dir.mkpath
|
@@ -65,11 +85,19 @@ module Acrobat
|
|
65
85
|
ole_obj.Close rescue nil
|
66
86
|
end
|
67
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
|
68
93
|
|
94
|
+
# return the instance of JSO object
|
95
|
+
# @return [Jso] a WIN32OLE wrapped Jso object 'javascript object'
|
69
96
|
def jso
|
70
97
|
@jso ||= Jso.new(self,ole_obj.GetJSObject)
|
71
98
|
end
|
72
99
|
|
100
|
+
# return the field_names of the pdf form
|
73
101
|
def field_names
|
74
102
|
jso.field_names
|
75
103
|
end
|
@@ -79,10 +107,17 @@ module Acrobat
|
|
79
107
|
end
|
80
108
|
|
81
109
|
protected
|
82
|
-
def merge_pdoc(doc)
|
110
|
+
def merge_pdoc(doc,options = {})
|
83
111
|
begin
|
84
|
-
|
85
|
-
|
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
|
86
121
|
rescue
|
87
122
|
return false
|
88
123
|
end
|
data/test/acrobat_test.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require_relative 'test_helper'
|
2
2
|
|
3
3
|
|
4
4
|
require "acrobat"
|
@@ -12,9 +12,12 @@ module Acrobat
|
|
12
12
|
|
13
13
|
describe 'new' do
|
14
14
|
|
15
|
+
it 'works' do
|
16
|
+
assert true
|
17
|
+
end
|
15
18
|
|
16
|
-
it 'can be created' do
|
17
19
|
|
20
|
+
it 'can be created' do
|
18
21
|
app = App.new
|
19
22
|
app.must_be_instance_of App
|
20
23
|
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acrobat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dominic Sisneros
|
@@ -10,27 +10,31 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
13
|
+
MIIEODCCAqCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhkc2lz
|
14
|
+
bmVyby9EQz1nbWFpbC9EQz1jb20wHhcNMTgwMjE2MDAxNDE3WhcNMTkwMjE2MDAx
|
15
|
+
NDE3WjAjMSEwHwYDVQQDDBhkc2lzbmVyby9EQz1nbWFpbC9EQz1jb20wggGiMA0G
|
16
|
+
CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDm6q2PoCe9lSIK1ShDBHFHkfsxWFaK
|
17
|
+
v324PCtQtB6rdVBjgAVQ7v2AqMPjJIHfNz9u6FORAmjlNnMlvmvmytUwzRIVX+nH
|
18
|
+
iR1kUKbDbzl3sPizBz9Vy2GV1TC0nkXge5w7aCu1D+7d1RMmVflAm1JIGTSJG/Jd
|
19
|
+
IyVWh1ErMMmz8BLej2KNFQcPCieXN7pt2Kp4hfcJMqQF0KcxBYktyxLu0cDDYZZZ
|
20
|
+
eH0RFikmsmE1+wGguRTU4D2Nr7l3PkUIznqRQ3MH6ICrpKAtupJbpe4ZE9j3CYpo
|
21
|
+
LKgyjrMFG2LrXs6QbtdKO6WQoC0fnXOjGDCbbUxwMvktSa1tKNwbgDxFTM/tprIe
|
22
|
+
MlNyNjwZiuxAdZZq375rTIrRCgjci5dBIlRF5M9fTSDB7ZY3jD1RMFtqWeMQLgrC
|
23
|
+
HkteXipuuFCe7Au/qFxV+iJwii6FswS5Ysa+TjFt9TXfebcKpMIsyRqQKE1w6oNu
|
24
|
+
/YRnQvaIMRyY6FV/nrU5/sksPr5U/Ql3DwMCAwEAAaN3MHUwCQYDVR0TBAIwADAL
|
25
|
+
BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFP/qHc8Ca+WsXZKhFxmn+ucN9sRgMB0GA1Ud
|
26
|
+
EQQWMBSBEmRzaXNuZXJvQGdtYWlsLmNvbTAdBgNVHRIEFjAUgRJkc2lzbmVyb0Bn
|
27
|
+
bWFpbC5jb20wDQYJKoZIhvcNAQELBQADggGBABZGwLTkRYYdfrlXSoxITxVb13id
|
28
|
+
fE4libPxIwMaJ+T78pwfFnPMFNmPFwSDZInzfZExsNxlxrkBFKXDZSHD4TFSUS5O
|
29
|
+
nmenPGns6K7kjwMVq9hLm4kMEZnKX5vq6YO/YbJbVJMn+sCiDb9nphL+HlkZ1YDe
|
30
|
+
Q6vlynaKWlzN2Dv2NIYxcGLYff+kTQZNsuCL5GF8O3C+WQpIe5Dy2foA7b6RTbNI
|
31
|
+
1ZHlj2wGWQ2ooLnkwKMJsOHTe5U12Aub/1dFFk+NsK8cXiP//5eipvtI6z/QY34C
|
32
|
+
I0E/5rKu54YgiKt1Waa6+JmM1k+kpakAYi2JwpyF8GyxM1UHuzcg/b0molfdS9gD
|
33
|
+
B2MEh8WYqwy827jl4vUZYuoquOG1Z83fN6ehSVro4yqbTkmPtOFTeFt/mUGMKC90
|
34
|
+
GkZB86BODcU2ZIxvw1AkKmr0YgWPfYunalhX5FirP9guVLlaoeJwn1wMf8ghBOrp
|
35
|
+
tvCvgfI163rqmb9syMyTmNffdkGy6U2IIja7hw==
|
32
36
|
-----END CERTIFICATE-----
|
33
|
-
date:
|
37
|
+
date: 2018-04-23 00:00:00.000000000 Z
|
34
38
|
dependencies:
|
35
39
|
- !ruby/object:Gem::Dependency
|
36
40
|
name: minitest
|
@@ -38,42 +42,42 @@ dependencies:
|
|
38
42
|
requirements:
|
39
43
|
- - "~>"
|
40
44
|
- !ruby/object:Gem::Version
|
41
|
-
version: '5.
|
45
|
+
version: '5.11'
|
42
46
|
type: :development
|
43
47
|
prerelease: false
|
44
48
|
version_requirements: !ruby/object:Gem::Requirement
|
45
49
|
requirements:
|
46
50
|
- - "~>"
|
47
51
|
- !ruby/object:Gem::Version
|
48
|
-
version: '5.
|
52
|
+
version: '5.11'
|
49
53
|
- !ruby/object:Gem::Dependency
|
50
54
|
name: hoe-yard
|
51
55
|
requirement: !ruby/object:Gem::Requirement
|
52
56
|
requirements:
|
53
57
|
- - ">="
|
54
58
|
- !ruby/object:Gem::Version
|
55
|
-
version: 0.1.
|
59
|
+
version: 0.1.3
|
56
60
|
type: :development
|
57
61
|
prerelease: false
|
58
62
|
version_requirements: !ruby/object:Gem::Requirement
|
59
63
|
requirements:
|
60
64
|
- - ">="
|
61
65
|
- !ruby/object:Gem::Version
|
62
|
-
version: 0.1.
|
66
|
+
version: 0.1.3
|
63
67
|
- !ruby/object:Gem::Dependency
|
64
68
|
name: hoe-bundler
|
65
69
|
requirement: !ruby/object:Gem::Requirement
|
66
70
|
requirements:
|
67
|
-
- - "
|
71
|
+
- - "~>"
|
68
72
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
73
|
+
version: '1.4'
|
70
74
|
type: :development
|
71
75
|
prerelease: false
|
72
76
|
version_requirements: !ruby/object:Gem::Requirement
|
73
77
|
requirements:
|
74
|
-
- - "
|
78
|
+
- - "~>"
|
75
79
|
- !ruby/object:Gem::Version
|
76
|
-
version: '
|
80
|
+
version: '1.4'
|
77
81
|
- !ruby/object:Gem::Dependency
|
78
82
|
name: pry
|
79
83
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,14 +140,14 @@ dependencies:
|
|
136
140
|
requirements:
|
137
141
|
- - ">"
|
138
142
|
- !ruby/object:Gem::Version
|
139
|
-
version: 0.1
|
143
|
+
version: '0.1'
|
140
144
|
type: :development
|
141
145
|
prerelease: false
|
142
146
|
version_requirements: !ruby/object:Gem::Requirement
|
143
147
|
requirements:
|
144
148
|
- - ">"
|
145
149
|
- !ruby/object:Gem::Version
|
146
|
-
version: 0.1
|
150
|
+
version: '0.1'
|
147
151
|
- !ruby/object:Gem::Dependency
|
148
152
|
name: guard-minitest
|
149
153
|
requirement: !ruby/object:Gem::Requirement
|
@@ -178,14 +182,14 @@ dependencies:
|
|
178
182
|
requirements:
|
179
183
|
- - "~>"
|
180
184
|
- !ruby/object:Gem::Version
|
181
|
-
version: '3.
|
185
|
+
version: '3.17'
|
182
186
|
type: :development
|
183
187
|
prerelease: false
|
184
188
|
version_requirements: !ruby/object:Gem::Requirement
|
185
189
|
requirements:
|
186
190
|
- - "~>"
|
187
191
|
- !ruby/object:Gem::Version
|
188
|
-
version: '3.
|
192
|
+
version: '3.17'
|
189
193
|
description: |-
|
190
194
|
<div class="paragraph">
|
191
195
|
<p>The acrobat gem is a library that uses WIN32OLE to automate pdf functions. Adobe Reader or Adobe Acrobat must be installed and then you can fill forms and merge documents</p>
|
@@ -237,7 +241,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
237
241
|
version: '0'
|
238
242
|
requirements: []
|
239
243
|
rubyforge_project:
|
240
|
-
rubygems_version: 2.6
|
244
|
+
rubygems_version: 2.7.6
|
241
245
|
signing_key:
|
242
246
|
specification_version: 4
|
243
247
|
summary: <div class="paragraph"> <p>The acrobat gem is a library that uses WIN32OLE
|
metadata.gz.sig
CHANGED
Binary file
|