pdflib_wrapper 0.0.1.2 → 0.0.2
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 +4 -4
- data/lib/pdflib_wrapper/external/pdf/document.rb +5 -0
- data/lib/pdflib_wrapper/pdf.rb +11 -1
- data/lib/pdflib_wrapper/version.rb +1 -1
- data/spec/pdflib_wrapper_spec.rb +20 -25
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de6af10b0f4a58d46f7f7137b8b2c95e39879312
|
4
|
+
data.tar.gz: 41f17920f702e1e025ed4d5b98c8ca9c0c3894b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca9c8cb8858d377173a8e08ea4e0505ea998fd7d91ac44a4f38e51977110f336eacf6ab276dd122b69e41ee767242374c4235ca723e6fba437974a6cc501fe4b
|
7
|
+
data.tar.gz: 33cd2dd9921ddfc077ee98ca2677ec6488354c69df456bc8cf52441f3f1114d0890034099cc6adf7471f65224f90e65b148a3c97a1d30610e26a2457b9af1227
|
@@ -11,6 +11,11 @@ module PdflibWrapper
|
|
11
11
|
@document = @pdf.open_pdi_document( filepath, OptionListMapper.create_options('', key_values, singles, opts) )
|
12
12
|
end
|
13
13
|
|
14
|
+
def open_page(page_number=1, opts={})
|
15
|
+
#TODO: support opts
|
16
|
+
External::Pdf::Page.new(@pdf, self, page_number, "" )
|
17
|
+
end
|
18
|
+
|
14
19
|
def close
|
15
20
|
#TODO: support opts
|
16
21
|
@pdf.close_pdi_document(@document)
|
data/lib/pdflib_wrapper/pdf.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
module PdflibWrapper
|
2
2
|
class Pdf
|
3
|
-
attr_accessor :pdf
|
3
|
+
attr_accessor :pdf, :path
|
4
4
|
def initialize(filepath, metadata={}, opts={})
|
5
5
|
#pdflib likes to override the file, should do a check to see if file already exists
|
6
6
|
#also pdflib like to make bad pdf if you dont close pdf after begin_document
|
7
|
+
@path = filepath
|
7
8
|
@pdf = PDFlib.new
|
8
9
|
|
9
10
|
#options legacy, return, exception
|
@@ -31,6 +32,7 @@ module PdflibWrapper
|
|
31
32
|
|
32
33
|
def save
|
33
34
|
@pdf.end_document("")
|
35
|
+
self
|
34
36
|
end
|
35
37
|
alias_method :close, :save
|
36
38
|
|
@@ -86,5 +88,13 @@ module PdflibWrapper
|
|
86
88
|
def embed_pdf_page(page, x, y, opts={})
|
87
89
|
Page.embed(@pdf, page, x, y, opts.dup)
|
88
90
|
end
|
91
|
+
|
92
|
+
class << self
|
93
|
+
def open_pdf(filepath, opts={})
|
94
|
+
pdf = new('',{},opts[:pdflib_opts] || {}).pdf
|
95
|
+
opts.delete(:pdflib_opts) if opts[:pdflib_opts]
|
96
|
+
External::Pdf::Document.new(pdf, filepath, opts)
|
97
|
+
end
|
98
|
+
end
|
89
99
|
end
|
90
100
|
end
|
data/spec/pdflib_wrapper_spec.rb
CHANGED
@@ -20,24 +20,28 @@ describe PdflibWrapper do
|
|
20
20
|
|
21
21
|
it "just creates Pdflib handle" do
|
22
22
|
PdflibWrapper::Pdf.new('', {}, {dont_create_document: true})
|
23
|
+
#TODO: get document count and make sure its 0
|
24
|
+
end
|
25
|
+
|
26
|
+
it "store filepath" do
|
27
|
+
path = 'testing'
|
28
|
+
pdf = PdflibWrapper::Pdf.new(path, {}, {dont_create_document: true})
|
29
|
+
pdf.path.should be(path)
|
23
30
|
end
|
24
31
|
|
25
32
|
it "embeds pdf inside pdf" do
|
26
|
-
|
27
|
-
embed_pdf = PdflibWrapper::Pdf.new(embed_tempfile.path)
|
33
|
+
embed_pdf = PdflibWrapper::Pdf.new(Tempfile.new("embed.pdf").path)
|
28
34
|
embed_pdf.new_page(2,4).save
|
29
35
|
embed_pdf.save
|
30
36
|
|
31
|
-
|
32
|
-
new_pdf = PdflibWrapper::Pdf.new(new_tempfile.path)
|
37
|
+
new_pdf = PdflibWrapper::Pdf.new(Tempfile.new("new.pdf").path)
|
33
38
|
|
34
|
-
external_pdf = new_pdf.open_pdf(
|
39
|
+
external_pdf = new_pdf.open_pdf(embed_pdf.path)
|
35
40
|
external_pdf_page_one = new_pdf.open_pdf_page
|
36
41
|
|
37
42
|
new_page = new_pdf.new_page(10,10)
|
38
43
|
|
39
|
-
|
40
|
-
new_pdf.embed_pdf_page(external_pdf_page_one, 0, 0, opts)
|
44
|
+
new_pdf.embed_pdf_page(external_pdf_page_one, 0, 0)
|
41
45
|
|
42
46
|
new_page.save
|
43
47
|
external_pdf_page_one.close
|
@@ -47,8 +51,7 @@ describe PdflibWrapper do
|
|
47
51
|
end
|
48
52
|
|
49
53
|
it "creates font" do
|
50
|
-
|
51
|
-
pdf = PdflibWrapper::Pdf.new(tempfile.path, {}, {with_blank_page: true})
|
54
|
+
pdf = PdflibWrapper::Pdf.new(Tempfile.new("generate_test.pdf").path, {}, {with_blank_page: true})
|
52
55
|
font = pdf.create_font("Helvetica", "winansi")
|
53
56
|
font.should equal(pdf.pdf.load_font("Helvetica", "winansi", "" ))
|
54
57
|
pdf.close
|
@@ -56,37 +59,29 @@ describe PdflibWrapper do
|
|
56
59
|
|
57
60
|
it "gets width of external pdf" do
|
58
61
|
width = 2.0
|
59
|
-
|
60
|
-
external_pdf = PdflibWrapper::Pdf.new(external_tempfile.path)
|
62
|
+
external_pdf = PdflibWrapper::Pdf.new(Tempfile.new("external.pdf").path)
|
61
63
|
external_pdf.new_page(width,4).save
|
62
64
|
external_pdf.save
|
63
65
|
|
64
|
-
|
65
|
-
|
66
|
-
document = test_pdf.open_pdf(external_tempfile.path)
|
67
|
-
page = test_pdf.open_pdf_page(1)
|
66
|
+
test_pdf = PdflibWrapper::Pdf.open_pdf(external_pdf.path)
|
67
|
+
page = test_pdf.open_page(1)
|
68
68
|
page.width.should be(width)
|
69
69
|
end
|
70
70
|
|
71
71
|
it "get height of external pdf" do
|
72
72
|
height = 4.0
|
73
|
-
|
74
|
-
external_pdf = PdflibWrapper::Pdf.new(external_tempfile.path)
|
73
|
+
external_pdf = PdflibWrapper::Pdf.new(Tempfile.new("external.pdf").path)
|
75
74
|
external_pdf.new_page(2, height).save
|
76
75
|
external_pdf.save
|
77
76
|
|
78
|
-
|
79
|
-
|
80
|
-
document = test_pdf.open_pdf(external_tempfile.path)
|
81
|
-
page = test_pdf.open_pdf_page(1)
|
77
|
+
test_pdf = PdflibWrapper::Pdf.open_pdf(external_pdf.path)
|
78
|
+
page = test_pdf.open_page(1)
|
82
79
|
page.height.should be(height)
|
83
80
|
end
|
84
81
|
|
85
82
|
it "opens password protected pdf" do
|
86
|
-
|
87
|
-
PdflibWrapper::Pdf.new(password_tempfile.path, {}, {with_blank_page: true, masterpassword: 'magic'}).save
|
83
|
+
password_pdf = PdflibWrapper::Pdf.new(Tempfile.new("external.pdf").path, {}, {with_blank_page: true, masterpassword: 'magic'}).save
|
88
84
|
|
89
|
-
|
90
|
-
pdf_handler.open_pdf(password_tempfile.path, {password: 'magic'})
|
85
|
+
PdflibWrapper::Pdf.open_pdf(password_pdf.path, {password: 'magic'})
|
91
86
|
end
|
92
87
|
end
|