html2pdf 0.0.2 → 0.0.3
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/.gitignore +3 -1
- data/README.md +18 -6
- data/html2pdf.gemspec +2 -2
- data/lib/html2pdf/cli.rb +9 -3
- data/lib/html2pdf/utils.rb +2 -14
- data/lib/html2pdf/version.rb +1 -1
- data/test/lib/html2pdf/test_utils.rb +3 -3
- metadata +6 -7
- data/TODOs.md +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19a61c7bd4f22b786d9777df4ee6c4a8e4472909
|
4
|
+
data.tar.gz: 072d2a948be11cebe5db643191ef944c3c5c9b98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e87aee9d33e577da87392e304044d9dcc254979029d660f6c7c791262968a37106709e067f3f5506a5dbe6fd52321e165bc7a7efd4281531a77d546d6361e65
|
7
|
+
data.tar.gz: bad0571fd68a34029d11ba3a1759918a7da89f6584d53c1bc7e3c3b13a0cecf7b578f250347df7d5d63b3ebdf6231ad42939dc57b153bb44ca4dc0ab751ffb0d
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -32,7 +32,9 @@ For list of usage type
|
|
32
32
|
```sh
|
33
33
|
html2pdf
|
34
34
|
```
|
35
|
+
|
35
36
|
Which should give the following options
|
37
|
+
|
36
38
|
```
|
37
39
|
Usage:
|
38
40
|
html2pdf export [OPTIONS]
|
@@ -48,12 +50,13 @@ Options:
|
|
48
50
|
# Default: true
|
49
51
|
-v, [--version], [--no-version] # Display version information
|
50
52
|
```
|
53
|
+
|
51
54
|
### Example Usage
|
52
55
|
|
53
56
|
- Convert all `xhtml` and `html` from `test/fixtures/samples` directory
|
54
57
|
recursively
|
55
58
|
```
|
56
|
-
html2pdf -b test/fixtures/samples -
|
59
|
+
html2pdf -b test/fixtures/samples -r
|
57
60
|
```
|
58
61
|
Before the run
|
59
62
|
```
|
@@ -65,16 +68,16 @@ test/fixtures/samples/
|
|
65
68
|
└── demo4_xxx.rb.xhtml
|
66
69
|
```
|
67
70
|
After the above command is executed:
|
71
|
+
|
72
|
+
You should get the output `html2pdf-output.tar.gz`
|
73
|
+
which contain the pdf version of the input files above.
|
74
|
+
e.g.
|
75
|
+
|
68
76
|
```
|
69
|
-
test/fixtures/samples/
|
70
|
-
├── demo1_xxx.rb.xhtml
|
71
77
|
├── demo1_xxx.rb.xhtml.pdf
|
72
|
-
├── demo2_xxx.rb.xhtml
|
73
78
|
├── demo2_xxx.rb.xhtml.pdf
|
74
79
|
└── sub_dir
|
75
|
-
├── demo3_xxx.rb.xhtml
|
76
80
|
├── demo3_xxx.rb.xhtml.pdf
|
77
|
-
├── demo4_xxx.rb.xhtml
|
78
81
|
└── demo4_xxx.rb.xhtml.pdf
|
79
82
|
```
|
80
83
|
|
@@ -92,9 +95,18 @@ the pdf version of it.
|
|
92
95
|
|
93
96
|
### Changelogs
|
94
97
|
|
98
|
+
#### 0.0.3
|
99
|
+
|
100
|
+
- Update [agile_utils][] to 0.0.8
|
101
|
+
- Update [code_lister][] to 0.0.7
|
102
|
+
- Compress generated pdf files to one single tar.gzip file
|
103
|
+
- Fix bug in softwares_installed? method
|
104
|
+
- Remove the TODOs.md
|
105
|
+
|
95
106
|
#### 0.0.2
|
96
107
|
|
97
108
|
- Use [agile_utils][] to 0.0.5
|
109
|
+
|
98
110
|
- Fix minor error when using --version
|
99
111
|
|
100
112
|
#### 0.0.1
|
data/html2pdf.gemspec
CHANGED
@@ -18,8 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
20
|
spec.add_runtime_dependency 'thor'
|
21
|
-
spec.add_runtime_dependency 'agile_utils', '~> 0.0.
|
22
|
-
spec.add_runtime_dependency 'code_lister', '~> 0.0.
|
21
|
+
spec.add_runtime_dependency 'agile_utils', '~> 0.0.8'
|
22
|
+
spec.add_runtime_dependency 'code_lister', '~> 0.0.7'
|
23
23
|
|
24
24
|
spec.add_development_dependency 'awesome_print', '~> 1.2'
|
25
25
|
spec.add_development_dependency 'bundler', '~> 1.5'
|
data/lib/html2pdf/cli.rb
CHANGED
@@ -4,7 +4,7 @@ require 'fileutils'
|
|
4
4
|
require_relative '../html2pdf'
|
5
5
|
module Html2Pdf
|
6
6
|
class CLI < Thor
|
7
|
-
desc 'export', 'export html files to pdfs'
|
7
|
+
desc 'export', 'export multiple html files to pdfs'
|
8
8
|
|
9
9
|
method_option *AgileUtils::Options::BASE_DIR
|
10
10
|
method_option *AgileUtils::Options::INC_WORDS
|
@@ -16,7 +16,7 @@ module Html2Pdf
|
|
16
16
|
def export
|
17
17
|
opts = options.symbolize_keys
|
18
18
|
|
19
|
-
unless Html2Pdf::Utils.
|
19
|
+
unless Html2Pdf::Utils.softwares_installed?
|
20
20
|
fail 'You must have valid `wkhtmltopdf` and `ghostscript` installation'
|
21
21
|
end
|
22
22
|
|
@@ -31,7 +31,13 @@ module Html2Pdf
|
|
31
31
|
elapsed = AgileUtils::FileUtil.time do
|
32
32
|
Html2Pdf::Utils.to_pdfs(input_files)
|
33
33
|
end
|
34
|
+
|
35
|
+
generated_files = AgileUtils::FileUtil.add_suffix(input_files, 'pdf')
|
36
|
+
AgileUtils::FileUtil.tar_gzip_files(generated_files, 'html2pdf-output.tar.gz')
|
37
|
+
AgileUtils::FileUtil.delete(generated_files)
|
38
|
+
|
34
39
|
puts "Convert files to pdfs took #{elapsed} ms"
|
40
|
+
puts "Your final output is #{File.absolute_path('html2pdf-output.tar.gz')}"
|
35
41
|
end
|
36
42
|
|
37
43
|
desc 'usage', 'Display usage information'
|
@@ -51,7 +57,7 @@ Options:
|
|
51
57
|
# Default: true
|
52
58
|
-v, [--version], [--no-version] # Display version information
|
53
59
|
|
54
|
-
export html files to pdfs
|
60
|
+
export multiple html files to pdfs
|
55
61
|
EOT
|
56
62
|
end
|
57
63
|
|
data/lib/html2pdf/utils.rb
CHANGED
@@ -20,10 +20,6 @@ module Html2Pdf
|
|
20
20
|
#
|
21
21
|
# @param filename input filename
|
22
22
|
def to_pdf(filename)
|
23
|
-
# see: http://madalgo.au.dk/~jakobt/wkhtmltoxdoc/wkhtmltopdf_0.10.0_rc2-doc.html#Footers And Headers
|
24
|
-
# - may be only allow "*.html" and "*.xhtml"
|
25
|
-
# - allow the options to be passed in so that we can use different theme
|
26
|
-
# '--no-background'
|
27
23
|
fail "Invalid input file #{filename}" unless File.exist?(filename)
|
28
24
|
command = [
|
29
25
|
'wkhtmltopdf',
|
@@ -31,16 +27,10 @@ module Html2Pdf
|
|
31
27
|
'--margin-bottom 4',
|
32
28
|
'--margin-left 4',
|
33
29
|
'--margin-right 4',
|
34
|
-
# Note: working correctly but long URL
|
35
30
|
'--header-center "[webpage] :: [page]/[topage]"',
|
36
|
-
# header section
|
37
|
-
# TODO: not yet working properly
|
38
|
-
# "--header-center #{filename.gsub(base_dir,File.basename(base_dir))} \"[page]/[topage]\"",
|
39
|
-
# "--header-center #{filename} \"[page]/[topage]\"",
|
40
31
|
'--header-spacing 1',
|
41
32
|
'--header-font-size 8',
|
42
33
|
'--header-line',
|
43
|
-
# footer section
|
44
34
|
'--footer-spacing 1',
|
45
35
|
'--footer-font-size 8',
|
46
36
|
'--footer-line',
|
@@ -48,15 +38,13 @@ module Html2Pdf
|
|
48
38
|
"#{filename}.pdf",
|
49
39
|
'> /dev/null']
|
50
40
|
_stdin, _stderr, status = Open3.capture3(command.join(' '))
|
51
|
-
# puts "FYI: to_pdf command: #{command.join(' ')}"
|
52
|
-
# Note: may be log it and continue
|
53
41
|
fail "Problem processing #{filename}" unless status.success?
|
54
42
|
end
|
55
43
|
|
56
44
|
# Check and verify that the proper softwares are available.
|
57
45
|
#
|
58
|
-
def
|
59
|
-
AgileUtils::Helper.which('
|
46
|
+
def softwares_installed?
|
47
|
+
AgileUtils::Helper.which('wkhtmltopdf') && AgileUtils::Helper.which('gs')
|
60
48
|
end
|
61
49
|
end
|
62
50
|
end
|
data/lib/html2pdf/version.rb
CHANGED
@@ -5,10 +5,10 @@ describe Html2Pdf::Utils do
|
|
5
5
|
assert_raises(RuntimeError) { Html2Pdf::Utils.to_pdf('bad-file-name') }
|
6
6
|
end
|
7
7
|
end
|
8
|
-
context '#
|
8
|
+
context '#softwares_installed?' do
|
9
9
|
it 'raises error if the requirements are not met' do
|
10
|
-
assert(Html2Pdf::Utils.
|
11
|
-
|
10
|
+
assert(Html2Pdf::Utils.softwares_installed?,
|
11
|
+
'Must have valid installation of `wkhtmltopdf` and `ghostscript`')
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: html2pdf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Burin Choomnuan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -30,28 +30,28 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0.
|
33
|
+
version: 0.0.8
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.0.
|
40
|
+
version: 0.0.8
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: code_lister
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.0.
|
47
|
+
version: 0.0.7
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.0.
|
54
|
+
version: 0.0.7
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: awesome_print
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -236,7 +236,6 @@ files:
|
|
236
236
|
- LICENSE.txt
|
237
237
|
- README.md
|
238
238
|
- Rakefile
|
239
|
-
- TODOs.md
|
240
239
|
- bin/html2pdf
|
241
240
|
- html2pdf.gemspec
|
242
241
|
- lib/html2pdf.rb
|
data/TODOs.md
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
### TODOs
|
2
|
-
|
3
|
-
- Remove the options that need to be default
|
4
|
-
e.g. `--exts xhtml html` should be default and should not be changed by user.
|
5
|
-
|
6
|
-
- Find minitest related to file-system test so that the code can be hooked to
|
7
|
-
[TravisCI][]
|
8
|
-
|
9
|
-
- Add test using [minitest-filesystem][]
|
10
|
-
|
11
|
-
- Add more tests
|
12
|
-
|
13
|
-
[minitest-filesystem]: https://github.com/stefanozanella/minitest-filesystem
|