to_pdf 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module ToPDF
2
- VERSION = '0.1.4'
2
+ VERSION = '0.1.5'
3
3
  end
@@ -19,7 +19,10 @@ class Wkhtmltopdf
19
19
  def string_to_pdf(string)
20
20
  detect_executable_path unless @executable_path
21
21
 
22
- pdf = IO.popen(wkhtmltopdf_command, 'w+')
22
+ header = extract_header_url(string)
23
+ footer = extract_footer_url(string)
24
+
25
+ pdf = IO.popen(wkhtmltopdf_command(header, footer), 'w+')
23
26
  pdf.puts(localise_paths(string))
24
27
  pdf.close_write
25
28
  result = pdf.gets(nil)
@@ -28,8 +31,8 @@ class Wkhtmltopdf
28
31
  result
29
32
  end
30
33
 
31
- def wkhtmltopdf_command
32
- "#{@executable_path} --quiet --allow #{Rails.public_path} - -"
34
+ def wkhtmltopdf_command(header, footer)
35
+ "#{@executable_path} -q#{" --header-html '#{header}'" if header}#{" --footer-html '#{footer}'" if footer} - - "
33
36
  end
34
37
 
35
38
  def localise_paths(string)
@@ -44,5 +47,17 @@ class Wkhtmltopdf
44
47
 
45
48
  string
46
49
  end
50
+
51
+ def extract_header_url(string)
52
+ header_url = nil
53
+ string.scan(/<meta [^>]*>/).each { |meta| header_url = meta.scan(/content=["']([^"']*)/)[0][0] unless meta.scan(/name="header"/).empty?}
54
+ header_url
55
+ end
56
+
57
+ def extract_footer_url(string)
58
+ footer_url = nil
59
+ string.scan(/<meta [^>]*>/).each { |meta| footer_url = meta.scan(/content=["']([^"']*)/)[0][0] unless meta.scan(/name="footer"/).empty?}
60
+ footer_url
61
+ end
47
62
  end
48
63
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: to_pdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-05 00:00:00.000000000Z
12
+ date: 2011-10-06 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70344200396480 !ruby/object:Gem::Requirement
16
+ requirement: &70327959835880 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70344200396480
24
+ version_requirements: *70327959835880
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70344200395800 !ruby/object:Gem::Requirement
27
+ requirement: &70327959835300 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: 2.6.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70344200395800
35
+ version_requirements: *70327959835300
36
36
  description: Render rails actions as a PDF using PrinceXML.
37
37
  email: hugh@artpop.com.au
38
38
  executables: []