html2pdf_chrome 0.0.1 → 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/README.md +33 -0
- data/lib/html2pdf_chrome/html_converter.rb +11 -3
- data/lib/html2pdf_chrome/version.rb +1 -1
- data/lib/html2pdf_chrome.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8a82542e5a0468f6256fae5694b4bfd1ac3fff33bf2af8d52354c6423112ab6d
|
|
4
|
+
data.tar.gz: c38bea54497d99e2ed9c5f6e3cc2c6b99b1f4740797accab70b6171d5271c5cc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 742582282d8665c4e7aff72077f9a4a8a5eabf24eeaf5dc3ca5fd2771d1b516f3b6eda18115ff990edc182430a5edb01c798ffc166b6033acc9872d4ef71a9b4
|
|
7
|
+
data.tar.gz: 256ef132accb3f3bf5d2b7faf07b961061f23111a4c49aa6b921a5cb4d2ab7e7fdc75b4b0873a6f55cd692d276626e5c6330e435cdfea5095ba623bce44a6f19
|
data/README.md
CHANGED
|
@@ -24,3 +24,36 @@ my_html = "<p>This PDF just has this paragraph</p>"
|
|
|
24
24
|
pdf_data = HTML2PDFChrome.convert_html_to_pdf(my_html)
|
|
25
25
|
File.write("my_pdf.pdf", pdf_data)
|
|
26
26
|
```
|
|
27
|
+
|
|
28
|
+
### Custom Headers and Footers
|
|
29
|
+
|
|
30
|
+
You can also specify custom header and footer templates for your PDFs:
|
|
31
|
+
|
|
32
|
+
```ruby
|
|
33
|
+
require "html2pdf_chrome"
|
|
34
|
+
|
|
35
|
+
my_html = "<h1>My Document</h1><p>Content goes here</p>"
|
|
36
|
+
|
|
37
|
+
header = "<div style='font-size: 10px; text-align: center; width: 100%;'>My Custom Header</div>"
|
|
38
|
+
|
|
39
|
+
footer = <<~HTML
|
|
40
|
+
<div style="font-size: 10px; text-align: center; width: 100%;">
|
|
41
|
+
Page <span class="pageNumber"></span> of <span class="totalPages"></span>
|
|
42
|
+
</div>
|
|
43
|
+
HTML
|
|
44
|
+
|
|
45
|
+
pdf_data = HTML2PDFChrome.convert_html_to_pdf(
|
|
46
|
+
my_html,
|
|
47
|
+
header_template: header,
|
|
48
|
+
footer_template: footer
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
File.write("my_pdf.pdf", pdf_data)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
The header and footer templates support HTML and CSS styling. You can use special Chrome variables for pagination:
|
|
55
|
+
- `<span class="pageNumber"></span>` - Current page number
|
|
56
|
+
- `<span class="totalPages"></span>` - Total number of pages
|
|
57
|
+
- `<span class="date"></span>` - Current date
|
|
58
|
+
- `<span class="title"></span>` - Document title
|
|
59
|
+
- `<span class="url"></span>` - Document URL
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
module HTML2PDFChrome
|
|
2
2
|
class HtmlConverter
|
|
3
|
-
attr_reader :html
|
|
3
|
+
attr_reader :html, :header_template, :footer_template
|
|
4
4
|
|
|
5
|
-
def initialize(html)
|
|
5
|
+
def initialize(html, header_template: "<div></div>", footer_template: "<div></div>")
|
|
6
6
|
@html = html
|
|
7
|
+
@header_template = header_template
|
|
8
|
+
@footer_template = footer_template
|
|
7
9
|
end
|
|
8
10
|
|
|
9
11
|
def convert_to_pdf!
|
|
@@ -13,7 +15,13 @@ module HTML2PDFChrome
|
|
|
13
15
|
pdf_data = nil
|
|
14
16
|
Chromedriver.fetch_driver do |driver|
|
|
15
17
|
driver.navigate.to(data_url)
|
|
16
|
-
cdp_response = driver.execute_cdp(
|
|
18
|
+
cdp_response = driver.execute_cdp(
|
|
19
|
+
'Page.printToPDF',
|
|
20
|
+
displayHeaderFooter: true,
|
|
21
|
+
printBackground: true,
|
|
22
|
+
headerTemplate: header_template,
|
|
23
|
+
footerTemplate: footer_template,
|
|
24
|
+
)
|
|
17
25
|
pdf_data = Base64.decode64(cdp_response['data'])
|
|
18
26
|
end
|
|
19
27
|
pdf_data
|
data/lib/html2pdf_chrome.rb
CHANGED
|
@@ -11,7 +11,7 @@ require_relative "./html2pdf_chrome/html_converter"
|
|
|
11
11
|
module HTML2PDFChrome
|
|
12
12
|
class Error < StandardError; end
|
|
13
13
|
|
|
14
|
-
def self.convert_html_to_pdf(html)
|
|
15
|
-
HtmlConverter.new(html).convert_to_pdf!
|
|
14
|
+
def self.convert_html_to_pdf(html, header_template: "<div></div>", footer_template: "<div></div>")
|
|
15
|
+
HtmlConverter.new(html, header_template:, footer_template:).convert_to_pdf!
|
|
16
16
|
end
|
|
17
17
|
end
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: html2pdf_chrome
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jonathan Hooper
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: selenium-webdriver
|
|
@@ -61,7 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
61
61
|
- !ruby/object:Gem::Version
|
|
62
62
|
version: '0'
|
|
63
63
|
requirements: []
|
|
64
|
-
rubygems_version: 3.
|
|
64
|
+
rubygems_version: 3.7.2
|
|
65
65
|
specification_version: 4
|
|
66
66
|
summary: A gem for generating PDFs from HTML using Chromedriver.
|
|
67
67
|
test_files: []
|