gkhtmltopdf 1.1.0 → 1.1.1
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/CHANGELOG.md +4 -0
- data/README.md +0 -1
- data/TODO.md +4 -0
- data/dockerfiles/Dockerfile.debian13-ruby32 +0 -1
- data/dockerfiles/Dockerfile.ubuntu24-ruby32 +1 -0
- data/dockerfiles/Dockerfile.ubuntu26-ruby33 +35 -0
- data/docs/ForDeveloper.md +6 -1
- data/exe/gkhtmltopdf +13 -1
- data/lib/gkhtmltopdf/converter.rb +4 -2
- data/lib/gkhtmltopdf/version.rb +1 -1
- data/lib/gkhtmltopdf.rb +4 -4
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 074bccbef46db0aaa81947a06ea1a1d7022b75a4916dec8d76751b96bfbc607f
|
|
4
|
+
data.tar.gz: bd007b02950a0e01a6cb1a0a68c30e3f5f16604f0489568bef0899f5f2d1e84d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e359baec50a11f2276bd1354269c59667091bbf12f9285d219616569b266f18a63c40be1349667ee7cefd5550109b93c9757705a8135dd15152762c6ab98c09c
|
|
7
|
+
data.tar.gz: 2fe00c3971f0354310bbc946531eb6facb107c7649f0d191b0210ea2fd683a726cabe18613053d498ded52558eb92791a0c522bb87f16f7ad77220c72faf075b
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
|
@@ -8,7 +8,6 @@ This gem converts HTML to PDF using Firefox's Geckodriver.
|
|
|
8
8
|
[](https://badge.fury.io/rb/gkhtmltopdf)
|
|
9
9
|

|
|
10
10
|

|
|
11
|
-

|
|
12
11
|
|
|
13
12
|
---
|
|
14
13
|
|
data/TODO.md
CHANGED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# syntax=docker/dockerfile:1
|
|
2
|
+
FROM ubuntu:resolute
|
|
3
|
+
|
|
4
|
+
RUN apt-get update
|
|
5
|
+
RUN apt-get install -y ruby3.3 bundler
|
|
6
|
+
RUN apt-get install -y git wget xz-utils build-essential libyaml-dev
|
|
7
|
+
|
|
8
|
+
# Install Noto Fonts
|
|
9
|
+
RUN apt-get install -y fonts-noto
|
|
10
|
+
|
|
11
|
+
# Install Firefox
|
|
12
|
+
RUN wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
|
|
13
|
+
RUN tee /etc/apt/sources.list.d/mozilla.sources > /dev/null << EOF
|
|
14
|
+
Types: deb
|
|
15
|
+
URIs: https://packages.mozilla.org/apt
|
|
16
|
+
Suites: mozilla
|
|
17
|
+
Components: main
|
|
18
|
+
Signed-By: /etc/apt/keyrings/packages.mozilla.org.asc
|
|
19
|
+
EOF
|
|
20
|
+
RUN tee /etc/apt/preferences.d/mozilla > /dev/null << EOF
|
|
21
|
+
Package: *
|
|
22
|
+
Pin: origin packages.mozilla.org
|
|
23
|
+
Pin-Priority: 1000
|
|
24
|
+
EOF
|
|
25
|
+
RUN apt-get update
|
|
26
|
+
RUN apt-get install -y firefox
|
|
27
|
+
|
|
28
|
+
# Install Geckodriver
|
|
29
|
+
RUN wget "https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-linux64.tar.gz" -O geckodriver.tar.gz
|
|
30
|
+
RUN tar -xzf geckodriver.tar.gz -C /usr/local/bin
|
|
31
|
+
|
|
32
|
+
COPY . /app
|
|
33
|
+
WORKDIR /app
|
|
34
|
+
RUN bundle install
|
|
35
|
+
CMD ["bundle", "exec", "rspec"]
|
data/docs/ForDeveloper.md
CHANGED
|
@@ -5,13 +5,18 @@
|
|
|
5
5
|
```bash
|
|
6
6
|
$ docker build -f ./dockerfiles/Dockerfile.debian13-ruby32 . -t gkhtmltopdf-d13r32
|
|
7
7
|
$ docker build -f ./dockerfiles/Dockerfile.ubuntu24-ruby32 . -t gkhtmltopdf-u24r32
|
|
8
|
+
$ docker build -f ./dockerfiles/Dockerfile.ubuntu26-ruby33 . -t gkhtmltopdf-u26r33
|
|
8
9
|
$ docker run --rm gkhtmltopdf-d13r32
|
|
9
10
|
$ docker run --rm gkhtmltopdf-u24r32
|
|
11
|
+
$ docker run --rm gkhtmltopdf-u26r33
|
|
10
12
|
$ docker rmi gkhtmltopdf-d13r32
|
|
11
13
|
$ docker rmi gkhtmltopdf-u24r32
|
|
14
|
+
$ docker rmi gkhtmltopdf-u26r33
|
|
12
15
|
```
|
|
13
16
|
|
|
14
17
|
## Build
|
|
15
18
|
|
|
16
|
-
```
|
|
19
|
+
```bash
|
|
20
|
+
$ gem build gkhtmltopdf.gemspec
|
|
21
|
+
$ gem push
|
|
17
22
|
```
|
data/exe/gkhtmltopdf
CHANGED
|
@@ -6,7 +6,9 @@ require 'gkhtmltopdf'
|
|
|
6
6
|
|
|
7
7
|
options = {
|
|
8
8
|
print_options: {},
|
|
9
|
-
firefox_prefs: {}
|
|
9
|
+
firefox_prefs: {},
|
|
10
|
+
gecko_stdout: File::NULL,
|
|
11
|
+
gecko_stderr: File::NULL
|
|
10
12
|
}
|
|
11
13
|
|
|
12
14
|
parser = OptionParser.new do |opts|
|
|
@@ -46,6 +48,14 @@ parser = OptionParser.new do |opts|
|
|
|
46
48
|
options[:wait_time] = v
|
|
47
49
|
end
|
|
48
50
|
|
|
51
|
+
opts.on("--stdout", "Show Geckodriver stdout") do |b|
|
|
52
|
+
options[:gecko_stdout] = b ? (STDOUT) : File::NULL
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
opts.on("--stderr", "Show Geckodriver stderr") do |b|
|
|
56
|
+
options[:gecko_stdout] = b ? (STDERR) : File::NULL
|
|
57
|
+
end
|
|
58
|
+
|
|
49
59
|
opts.on("-v", "--version", "display version") do
|
|
50
60
|
puts "Gkhtmltopdf version #{Gkhtmltopdf::VERSION}"
|
|
51
61
|
exit
|
|
@@ -79,6 +89,8 @@ begin
|
|
|
79
89
|
init_options[:geckodriver_path] = options.delete(:geckodriver_path) if options[:geckodriver_path]
|
|
80
90
|
init_options[:wait_time] = options.delete(:wait_time) if options[:wait_time]
|
|
81
91
|
init_options[:user_agent] = options.delete(:user_agent) if options[:user_agent]
|
|
92
|
+
init_options[:gecko_stdout] = options.delete(:gecko_stdout) if options[:gecko_stdout]
|
|
93
|
+
init_options[:gecko_stdout] = options.delete(:gecko_stdout) if options[:gecko_stdout]
|
|
82
94
|
|
|
83
95
|
Gkhtmltopdf.convert(input_url, output_path, print_options: options[:print_options], **init_options)
|
|
84
96
|
|
|
@@ -12,12 +12,14 @@ module Gkhtmltopdf
|
|
|
12
12
|
class Converter
|
|
13
13
|
DEFAULT_FX_USER_AGENT = "gkhtmltopdf-rb(v#{VERSION}) by firefox and gecko".freeze
|
|
14
14
|
|
|
15
|
-
def open(geckodriver_path: nil, firefox_path: nil, wait_time: nil, port: nil, user_agent: nil)
|
|
15
|
+
def open(geckodriver_path: nil, firefox_path: nil, wait_time: nil, port: nil, user_agent: nil, gecko_stdout: nil, gecko_stderr: nil)
|
|
16
16
|
@geckodriver_path = resolve_geckodriver_path!(geckodriver_path)
|
|
17
17
|
@firefox_path = resolve_firefox_path!(firefox_path)
|
|
18
18
|
@port = port || get_free_port
|
|
19
19
|
@base_url = "http://127.0.0.1:#{@port}"
|
|
20
|
-
|
|
20
|
+
gecko_stdout = File::NULL if gecko_stdout.nil?
|
|
21
|
+
gecko_stderr = File::NULL if gecko_stderr.nil?
|
|
22
|
+
@pid = spawn("#{@geckodriver_path} --port #{@port}", out: gecko_stdout, err: gecko_stderr)
|
|
21
23
|
wait_time ||= 20
|
|
22
24
|
@profile_path = gen_tmp_profile(user_agent)
|
|
23
25
|
wait_for_gk(wait_time)
|
data/lib/gkhtmltopdf/version.rb
CHANGED
data/lib/gkhtmltopdf.rb
CHANGED
|
@@ -6,17 +6,17 @@ require_relative 'gkhtmltopdf/dsl'
|
|
|
6
6
|
require_relative 'errors'
|
|
7
7
|
|
|
8
8
|
module Gkhtmltopdf
|
|
9
|
-
def self.convert(url, output_path, geckodriver_path: nil, firefox_path: nil, wait_time: nil, port: nil, user_agent: nil, print_options: {})
|
|
9
|
+
def self.convert(url, output_path, geckodriver_path: nil, firefox_path: nil, wait_time: nil, port: nil, user_agent: nil, gecko_stdout: nil, gecko_stderr: nil, print_options: {})
|
|
10
10
|
converter = DSL.new
|
|
11
|
-
converter.open(geckodriver_path: geckodriver_path, firefox_path: firefox_path, wait_time: wait_time, port: port, user_agent: user_agent)
|
|
11
|
+
converter.open(geckodriver_path: geckodriver_path, firefox_path: firefox_path, wait_time: wait_time, port: port, user_agent: user_agent, gecko_stdout: gecko_stdout, gecko_stderr: gecko_stderr)
|
|
12
12
|
converter.save_pdf(url, output_path, print_options: print_options)
|
|
13
13
|
ensure
|
|
14
14
|
converter.close
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
def self.open(geckodriver_path: nil, firefox_path: nil, wait_time: nil, port: nil, user_agent: nil, &block)
|
|
17
|
+
def self.open(geckodriver_path: nil, firefox_path: nil, wait_time: nil, port: nil, user_agent: nil, gecko_stdout: nil, gecko_stderr: nil, &block)
|
|
18
18
|
converter = DSL.new
|
|
19
|
-
converter.open(geckodriver_path: geckodriver_path, firefox_path: firefox_path, wait_time: wait_time, port: port, user_agent: user_agent)
|
|
19
|
+
converter.open(geckodriver_path: geckodriver_path, firefox_path: firefox_path, wait_time: wait_time, port: port, user_agent: user_agent, gecko_stdout: gecko_stdout, gecko_stderr: gecko_stderr)
|
|
20
20
|
yield converter
|
|
21
21
|
ensure
|
|
22
22
|
converter.close
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gkhtmltopdf
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kazuki Sakane
|
|
@@ -84,6 +84,7 @@ files:
|
|
|
84
84
|
- TODO.md
|
|
85
85
|
- dockerfiles/Dockerfile.debian13-ruby32
|
|
86
86
|
- dockerfiles/Dockerfile.ubuntu24-ruby32
|
|
87
|
+
- dockerfiles/Dockerfile.ubuntu26-ruby33
|
|
87
88
|
- docs/ForDeveloper.md
|
|
88
89
|
- exe/gkhtmltopdf
|
|
89
90
|
- lib/errors.rb
|