pludoni_pdfutils 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pludoni/pdfutils/active_storage_wrapper.rb +1 -1
- data/lib/pludoni/pdfutils/compressor.rb +3 -2
- data/lib/pludoni/pdfutils/convert_document_to_pdf.rb +3 -2
- data/lib/pludoni/pdfutils/convert_image_to_pdf.rb +3 -2
- data/lib/pludoni/pdfutils/file_wrapper.rb +6 -4
- data/lib/pludoni/pdfutils/joiner.rb +5 -4
- data/lib/pludoni/pdfutils/local_file_wrapper.rb +3 -1
- data/pludoni_pdfutils.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 439ff3f6cb56782dc05fe363a19d8c1f2f416b4943a201fba1c94fb72db9d9f8
|
4
|
+
data.tar.gz: 3501da1a290946bf56e8cde0daae07ae63d72a5c05aed5f653c245a7826e1087
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f29026a2d7c8f40bf9a14ecad38a458ff621904f0a94fb6856a4635f0eec105027e9f9f04ba18088e8b1695cbd0469ea840ccea59f5539c46da9a34526eb7b4
|
7
|
+
data.tar.gz: 54b4b7b4b3096e3b8485d36a6a5becb7219af56f08f3b0b55c8c4bfd9be0f401d255a6293c1a2f03b465de1eedc974841ddf335c6618c488580540f50f6dc9bf
|
@@ -6,7 +6,7 @@ module Pludoni
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def to_tf
|
9
|
-
file = Tempfile.new([
|
9
|
+
file = Tempfile.new([@file.filename.base, @file.filename.extension_with_delimiter])
|
10
10
|
ActiveStorage::Downloader.new(@file.service).send(:download, @file.key, file)
|
11
11
|
file
|
12
12
|
end
|
@@ -7,7 +7,8 @@ module Pludoni::Pdfutils
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def run
|
10
|
-
|
10
|
+
fname = File.basename(@blob.filename.to_s, '.*')
|
11
|
+
tf = Tempfile.new([fname, '.pdf'])
|
11
12
|
tf.binmode
|
12
13
|
input = @blob.to_tf
|
13
14
|
cli = "gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=#{Shellwords.escape tf.path} #{Shellwords.escape input.path}"
|
@@ -17,7 +18,7 @@ module Pludoni::Pdfutils
|
|
17
18
|
raise CompressionFailed, "PDF Compression failed: \nStdout: #{stdout}\nStderr: #{stderr}"
|
18
19
|
end
|
19
20
|
|
20
|
-
FileWrapper.make(tf)
|
21
|
+
FileWrapper.make(tf, filename: fname + ".pdf")
|
21
22
|
end
|
22
23
|
end
|
23
24
|
end
|
@@ -7,9 +7,10 @@ module Pludoni::Pdfutils
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def run(&block)
|
10
|
+
fname = File.basename(@blob.filename.to_s, File.extname(@blob.filename.to_s))
|
10
11
|
@blob.open do |source|
|
11
12
|
# convert image to pdf
|
12
|
-
tf = Tempfile.new([
|
13
|
+
tf = Tempfile.new([fname, '.pdf'])
|
13
14
|
tf.binmode
|
14
15
|
|
15
16
|
command = ['soffice']
|
@@ -32,7 +33,7 @@ module Pludoni::Pdfutils
|
|
32
33
|
|
33
34
|
tf.open
|
34
35
|
|
35
|
-
FileWrapper.make(tf)
|
36
|
+
FileWrapper.make(tf, filename: "#{fname}.pdf")
|
36
37
|
end
|
37
38
|
end
|
38
39
|
end
|
@@ -7,9 +7,10 @@ module Pludoni::Pdfutils
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def run(&block)
|
10
|
+
fname = File.basename(@blob.filename.to_s, '.*')
|
10
11
|
@blob.open do |source|
|
11
12
|
# convert image to pdf
|
12
|
-
tf = Tempfile.new([
|
13
|
+
tf = Tempfile.new([fname, '.pdf'])
|
13
14
|
tf.binmode
|
14
15
|
cli = "gs -dNOSAFER -dPDFSETTINGS=/prepress -sDEVICE=pdfwrite -o #{tf.path} viewjpeg.ps -c \\(#{source.path}\\) viewJPEG"
|
15
16
|
|
@@ -18,7 +19,7 @@ module Pludoni::Pdfutils
|
|
18
19
|
raise ConversionFailedError, "PDF convertion failed: Command: #{cli}\nStdout: #{stdout}\nStderr: #{stderr}"
|
19
20
|
end
|
20
21
|
|
21
|
-
FileWrapper.make(tf)
|
22
|
+
FileWrapper.make(tf, filename: "#{fname}.pdf")
|
22
23
|
end
|
23
24
|
end
|
24
25
|
end
|
@@ -5,12 +5,16 @@ module Pludoni
|
|
5
5
|
@file = file
|
6
6
|
end
|
7
7
|
|
8
|
-
def self.make(blob_or_file)
|
8
|
+
def self.make(blob_or_file, filename: nil)
|
9
9
|
case blob_or_file
|
10
10
|
when ActiveStorage::Blob
|
11
11
|
ActiveStorageWrapper.new(blob_or_file)
|
12
12
|
when File, Tempfile
|
13
|
-
LocalFileWrapper.new(blob_or_file)
|
13
|
+
fw = LocalFileWrapper.new(blob_or_file)
|
14
|
+
if filename
|
15
|
+
fw.filename = filename
|
16
|
+
end
|
17
|
+
fw
|
14
18
|
when FileWrapper
|
15
19
|
blob_or_file
|
16
20
|
else
|
@@ -32,5 +36,3 @@ module Pludoni
|
|
32
36
|
end
|
33
37
|
end
|
34
38
|
end
|
35
|
-
|
36
|
-
|
@@ -7,17 +7,18 @@ module Pludoni::Pdfutils
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def run
|
10
|
-
|
10
|
+
fname = @blobs.map(&:filename).map { |i| i.split('.').first[0..20] }.join('-')
|
11
|
+
|
12
|
+
tf = Tempfile.new([fname, '.pdf'])
|
11
13
|
tf.binmode
|
12
14
|
tfs = @blobs.map { |i| i.to_tf }
|
13
15
|
cli = "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=#{tf.path} #{tfs.map(&:path).join(' ')}"
|
14
|
-
|
15
|
-
stdout, stderr, status = Open3.capture3(cli)
|
16
|
+
stdout, stderr, status = Open3.capture3(cli)
|
16
17
|
unless status.success?
|
17
18
|
raise JoiningFailedError, "PDF Joining failed: \nStdout: #{stdout}\nStderr: #{stderr}"
|
18
19
|
end
|
19
20
|
|
20
|
-
FileWrapper.make(tf)
|
21
|
+
FileWrapper.make(tf, filename: "#{fname}.pdf")
|
21
22
|
end
|
22
23
|
end
|
23
24
|
end
|
data/pludoni_pdfutils.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pludoni_pdfutils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Wienert
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-10-
|
11
|
+
date: 2022-10-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activestorage
|