html2pdf 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|