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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 561f53e393a627ae11963fa8254bb39b8445d574dd38b05a558c3088b87ab7d5
4
- data.tar.gz: baa9dedf3eb2f0c76630c1f598ad8acc99b6eeba5c6ce5a6b6370f793f6263e9
3
+ metadata.gz: 439ff3f6cb56782dc05fe363a19d8c1f2f416b4943a201fba1c94fb72db9d9f8
4
+ data.tar.gz: 3501da1a290946bf56e8cde0daae07ae63d72a5c05aed5f653c245a7826e1087
5
5
  SHA512:
6
- metadata.gz: 06e78bd0c4608b45415f79f132be1ac7b4adbd70dba1c2df0069fa2216582c1e71ecbf156b891692e0b49b43c071f3b32a2c18209bac52d626379311e88711fa
7
- data.tar.gz: 6f69bf3240182880b623f31cb7621809df0e48d41c241db917b76b03c8e547bd8d4e3457778131d77066e758670220c90f611f541323695ca38e2694c8db5991
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(["ActiveStorage-#{@file.id}-", @file.filename.extension_with_delimiter])
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
- tf = Tempfile.new(['joiner', '.pdf'])
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(['convert', '.pdf'])
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(['convert', '.pdf'])
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
- tf = Tempfile.new(['joiner', '.pdf'])
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
@@ -1,12 +1,14 @@
1
1
  module Pludoni
2
2
  module Pdfutils
3
3
  class LocalFileWrapper < FileWrapper
4
+ attr_writer :filename
5
+
4
6
  def filesize
5
7
  @file.size
6
8
  end
7
9
 
8
10
  def filename
9
- @file.path.split("/").last
11
+ @filename || @file.path.split("/").last
10
12
  end
11
13
 
12
14
  def to_tf
@@ -1,7 +1,7 @@
1
1
 
2
2
  Gem::Specification.new do |spec|
3
3
  spec.name = "pludoni_pdfutils"
4
- spec.version = "0.2.0"
4
+ spec.version = "0.3.0"
5
5
  spec.authors = ["Stefan Wienert"]
6
6
  spec.email = ["info@stefanwienert.de"]
7
7
 
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.2.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-06 00:00:00.000000000 Z
11
+ date: 2022-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activestorage