mupdf 0.4.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/README.md +33 -5
- data/lib/mupdf/document.rb +34 -0
- data/lib/mupdf/page.rb +16 -6
- data/lib/mupdf/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75c0956dd50c089d4cea76952bdc5c4244a946c674d4e648edc71d749bd1faca
|
4
|
+
data.tar.gz: c5fe14cf7c06739d4e03480c894ab938c4e0fa68b897bdcf4b49e0f078f33bf5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 842db6317559209c6f2a6b0205adc8e2792c395be8fc61c0b5b23a6d750d86daf8a9642b656661efea26981cbbe6e8b64c83cd9448b470941bedc7c8011df04c
|
7
|
+
data.tar.gz: e3e79b6054b2f4f32947d62b64ca421d71efe1c949d544e99e0464503a22dde8472d4cb5da7e8cf9770d464dd7bd0f8e5b2a95d8351ab7c9347edd88405b32b9
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -12,6 +12,24 @@
|
|
12
12
|
gem install mupdf
|
13
13
|
```
|
14
14
|
|
15
|
+
_This project requires `mutool` be installed on your system. To verify ensure the following works:_
|
16
|
+
|
17
|
+
```bash
|
18
|
+
mutool
|
19
|
+
```
|
20
|
+
|
21
|
+
To install `mutool` on MacOS use:
|
22
|
+
|
23
|
+
```bash
|
24
|
+
brew install mupdf
|
25
|
+
```
|
26
|
+
|
27
|
+
To install `mutool` on Ubuntu use:
|
28
|
+
|
29
|
+
```bash
|
30
|
+
apt-get install mupdf
|
31
|
+
```
|
32
|
+
|
15
33
|
## Usage
|
16
34
|
|
17
35
|
### Document
|
@@ -38,9 +56,19 @@ The `pages` command finds sizing information about the pages within a document:
|
|
38
56
|
```ruby
|
39
57
|
pages = document.pages
|
40
58
|
pages.count # e.g. 2
|
41
|
-
|
42
|
-
page.
|
43
|
-
|
44
|
-
|
45
|
-
|
59
|
+
pages.each do |page|
|
60
|
+
page.number # e.g. 1, 2, ...
|
61
|
+
page.width # 612
|
62
|
+
page.height # 792
|
63
|
+
end
|
64
|
+
```
|
65
|
+
|
66
|
+
#### Draw
|
67
|
+
|
68
|
+
The `draw` command is useful for converting a document between formats:
|
69
|
+
|
70
|
+
```ruby
|
71
|
+
document.pages.each do |page|
|
72
|
+
document.draw(page: page.number, format: "png", path: "./file-#{page.number}.png")
|
73
|
+
end
|
46
74
|
```
|
data/lib/mupdf/document.rb
CHANGED
@@ -13,6 +13,9 @@ module MuPDF
|
|
13
13
|
"#<#{self.class.name} pathname=#{@pathname}>"
|
14
14
|
end
|
15
15
|
|
16
|
+
# @usage
|
17
|
+
# document.info #=> #<MuPDF::Info ...>
|
18
|
+
#
|
16
19
|
# @raise [MuPDF::CommandError]
|
17
20
|
#
|
18
21
|
# @return [MuPDF::Info]
|
@@ -23,6 +26,14 @@ module MuPDF
|
|
23
26
|
end
|
24
27
|
end
|
25
28
|
|
29
|
+
# @usage
|
30
|
+
# pages = document.pages #=> [#<MuPDF::Page ...>, ...]
|
31
|
+
# pages.each do |page|
|
32
|
+
# puts page.number # e.g. 1, 2, 3, ...
|
33
|
+
# puts page.width # e.g. 612
|
34
|
+
# puts page.height # e.g. 792
|
35
|
+
# end
|
36
|
+
#
|
26
37
|
# @raise [MuPDF::CommandError]
|
27
38
|
#
|
28
39
|
# @return [Array<MuPDF::Page>]
|
@@ -32,5 +43,28 @@ module MuPDF
|
|
32
43
|
MuPDF::Page.parse(result)
|
33
44
|
end
|
34
45
|
end
|
46
|
+
|
47
|
+
# @usage
|
48
|
+
# Tempfile.open(['mupdf', '.png']) do |tempfile|
|
49
|
+
# document.draw(path: tempfile.path, page: 2, format: 'png')
|
50
|
+
# end
|
51
|
+
#
|
52
|
+
# @param path [String] the path where the conversion is saved
|
53
|
+
# @param format [String] "png", "svg", "txt", etc
|
54
|
+
# @param page [Integer] the page
|
55
|
+
# @param resultion [Integer] optional (default: 72)
|
56
|
+
# @param width [Integer] optional
|
57
|
+
# @param height [Integer] optional
|
58
|
+
#
|
59
|
+
# @raise [MuPDF::CommandError]
|
60
|
+
def draw(path:, page:, format: 'png', width: nil, height: nil, resolution: nil)
|
61
|
+
args = ['draw', '-o', path, '-F', format, String(@pathname), String(page)]
|
62
|
+
|
63
|
+
args << '-w' << width if width
|
64
|
+
args << '-h' << height if height
|
65
|
+
args << '-r' << resolution if resolution
|
66
|
+
|
67
|
+
MuPDF.mutool(*args)
|
68
|
+
end
|
35
69
|
end
|
36
70
|
end
|
data/lib/mupdf/page.rb
CHANGED
@@ -14,14 +14,14 @@ module MuPDF
|
|
14
14
|
#
|
15
15
|
# @return [Array<MuPDF::Page>]
|
16
16
|
def self.parse(text)
|
17
|
-
text.scan(REGEX).map do |
|
17
|
+
text.scan(REGEX).map do |number, content|
|
18
18
|
new(
|
19
19
|
media_box: parse_media_box(content),
|
20
20
|
crop_box: parse_crop_box(content),
|
21
21
|
art_box: parse_art_box(content),
|
22
22
|
bleed_box: parse_bleed_box(content),
|
23
23
|
trim_box: parse_trim_box(content),
|
24
|
-
|
24
|
+
number: Integer(number)
|
25
25
|
)
|
26
26
|
end
|
27
27
|
end
|
@@ -95,19 +95,29 @@ module MuPDF
|
|
95
95
|
# @param art_box [MuPDF::Box]
|
96
96
|
# @param bleed_box [MuPDF::Box]
|
97
97
|
# @param trim_box [MuPDF::Box]
|
98
|
-
# @param
|
99
|
-
def initialize(media_box:, crop_box:, art_box:, bleed_box:, trim_box:,
|
98
|
+
# @param number [Integer]
|
99
|
+
def initialize(media_box:, crop_box:, art_box:, bleed_box:, trim_box:, number:)
|
100
100
|
@media_box = media_box
|
101
101
|
@crop_box = crop_box
|
102
102
|
@art_box = art_box
|
103
103
|
@bleed_box = bleed_box
|
104
104
|
@trim_box = trim_box
|
105
|
-
@
|
105
|
+
@number = number
|
106
106
|
end
|
107
107
|
|
108
108
|
# @return [String]
|
109
109
|
def inspect
|
110
|
-
"#<#{self.class.name}
|
110
|
+
"#<#{self.class.name} number=#{@number}>"
|
111
|
+
end
|
112
|
+
|
113
|
+
# @return [Integer]
|
114
|
+
def width
|
115
|
+
@media_box.width
|
116
|
+
end
|
117
|
+
|
118
|
+
# @return [Integer]
|
119
|
+
def height
|
120
|
+
@media_box.height
|
111
121
|
end
|
112
122
|
end
|
113
123
|
end
|
data/lib/mupdf/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mupdf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Sylvestre
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-01-
|
11
|
+
date: 2025-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: open3
|
@@ -62,8 +62,8 @@ licenses:
|
|
62
62
|
metadata:
|
63
63
|
rubygems_mfa_required: 'true'
|
64
64
|
homepage_uri: https://github.com/ksylvest/mupdf
|
65
|
-
source_code_uri: https://github.com/ksylvest/mupdf/tree/
|
66
|
-
changelog_uri: https://github.com/ksylvest/mupdf/releases/tag/
|
65
|
+
source_code_uri: https://github.com/ksylvest/mupdf/tree/v1.0.0
|
66
|
+
changelog_uri: https://github.com/ksylvest/mupdf/releases/tag/v1.0.0
|
67
67
|
documentation_uri: https://mupdf.ksylvest.com/
|
68
68
|
post_install_message:
|
69
69
|
rdoc_options: []
|