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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c3d5b21d04b04f6b07b0d0e3d57a7fd5238fa0f7e336c010b9bbbc1d22226bc2
4
- data.tar.gz: 6c94ff62b209aa7271587196c7f78ed830fd99a4d354aabb75a1de571dd0835c
3
+ metadata.gz: 8a82542e5a0468f6256fae5694b4bfd1ac3fff33bf2af8d52354c6423112ab6d
4
+ data.tar.gz: c38bea54497d99e2ed9c5f6e3cc2c6b99b1f4740797accab70b6171d5271c5cc
5
5
  SHA512:
6
- metadata.gz: 43adc939f77e8bc8e651419679381036f941e0db52d0a39eb0781b479c84a3a18f3956fd598257ad19ba13af107d70db6941be36291edffbda8e0ccdfbc7e3c4
7
- data.tar.gz: 169ec2aeff966b151d6e39840eea096095f0e20be8eaedd5df817ca33f323b58994980ccad81b1709f907ff9ee75cd2df840339e8de3e16fabdff5d6454fd661
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('Page.printToPDF')
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module HTML2PDFChrome
4
- VERSION = "0.0.1"
4
+ VERSION = "0.0.2"
5
5
  end
@@ -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.1
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: 2025-03-13 00:00:00.000000000 Z
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.6.2
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: []