faktura 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/faktura/pdf.rb +5 -1
- data/lib/faktura/stamp.rb +17 -7
- 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: 20c5c55888c4cd7471c97e30b02ac834e9d93240
|
4
|
+
data.tar.gz: 8751cc5064cfff052808488b526abf61f5878aa2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d89233adc6cf77bdde31711db002632f01f6ed9786396b2efc19fd76647742bdd26b591ea27f075ea760691e66f225c1fa2b321d3e2f2d8dbb16f278c49b467
|
7
|
+
data.tar.gz: e53298de7278c1bbe8859f2f1fe006fc9bcf6b87c2110349ea6bb2d6ef975291cce3dbc5c538080d0aeab4051f1eae3de027d20cbb7d450d94ac6093cae5cdd8
|
data/lib/faktura/pdf.rb
CHANGED
@@ -6,6 +6,7 @@ class Faktura::PDF
|
|
6
6
|
attr_reader :amount
|
7
7
|
attr_reader :provider
|
8
8
|
attr_reader :currency
|
9
|
+
attr_reader :overlay
|
9
10
|
|
10
11
|
def initialize(filename)
|
11
12
|
@filename = filename
|
@@ -13,6 +14,7 @@ class Faktura::PDF
|
|
13
14
|
@date = nil
|
14
15
|
@provider = nil
|
15
16
|
@currency = nil
|
17
|
+
@overlay = false
|
16
18
|
|
17
19
|
analyze
|
18
20
|
end
|
@@ -28,6 +30,7 @@ class Faktura::PDF
|
|
28
30
|
if content =~ opt[:name]
|
29
31
|
@provider = prv
|
30
32
|
@currency = opt[:currency]
|
33
|
+
@overlay = opt[:overlay] || false
|
31
34
|
|
32
35
|
if opt.has_key? :date and date_m = content.match(opt[:date])
|
33
36
|
@date = date_m[1]
|
@@ -94,7 +97,8 @@ class Faktura::PDF
|
|
94
97
|
name: /Heroku/,
|
95
98
|
date: /^(\d{2}\/\d{2}\/\d{4})/,
|
96
99
|
amount: /Total: [$]([\d.]+)/,
|
97
|
-
currency: 'USD'
|
100
|
+
currency: 'USD',
|
101
|
+
overlay: true
|
98
102
|
}
|
99
103
|
}
|
100
104
|
|
data/lib/faktura/stamp.rb
CHANGED
@@ -4,23 +4,33 @@ require 'hexapdf'
|
|
4
4
|
class Faktura::Stamp
|
5
5
|
TIMES_NEW_ROMAN = '/usr/share/fonts/truetype/msttcorefonts/Times_New_Roman.ttf'
|
6
6
|
|
7
|
+
START_Y = 300
|
8
|
+
RED = [200, 0, 0]
|
9
|
+
INDENT=50
|
10
|
+
RIGHT_END=400
|
11
|
+
SKIP_LINE=18
|
12
|
+
|
7
13
|
def initialize(pdf)
|
8
14
|
@filename = pdf
|
15
|
+
@overlay = false
|
9
16
|
if pdf.class == Faktura::PDF
|
10
17
|
@filename = pdf.filename
|
18
|
+
@overlay = pdf.overlay
|
11
19
|
end
|
12
|
-
@start_y =
|
20
|
+
@start_y = START_Y
|
13
21
|
@cursor_y = @start_y
|
14
22
|
end
|
15
23
|
|
16
|
-
RED = [200, 0, 0]
|
17
|
-
INDENT=50
|
18
|
-
RIGHT_END=400
|
19
|
-
SKIP_LINE=18
|
20
|
-
|
21
24
|
def stamp(name, description, output_file=nil)
|
22
25
|
pdf = HexaPDF::Document.open(@filename)
|
23
|
-
|
26
|
+
|
27
|
+
puts "pages #{pdf.pages.length}"
|
28
|
+
|
29
|
+
if pdf.pages.length > 1 and @overlay
|
30
|
+
@canvas = pdf.pages[1].canvas(type: :overlay)
|
31
|
+
else
|
32
|
+
@canvas = pdf.pages.add.canvas
|
33
|
+
end
|
24
34
|
|
25
35
|
style = HexaPDF::Layout::Style.new
|
26
36
|
style.font = pdf.fonts.add(TIMES_NEW_ROMAN)
|