mupdf 0.4.0 → 1.0.0
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/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: []
|