This is an automated email from the ASF dual-hosted git repository.
rubys pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git
The following commit(s) were added to refs/heads/master by this push:
new bbc038b switch from convert and pdftk to:
bbc038b is described below
commit bbc038b6664bbc4a68ede8597df50f03cfc107cd
Author: Sam Ruby <[email protected]>
AuthorDate: Sun Oct 28 17:55:56 2018 -0400
switch from convert and pdftk to:
- pdf90
- pdf180
- pdf270
- pdfseparate
- pdfunite
---
www/secretary/workbench/models/attachment.rb | 2 +-
www/secretary/workbench/views/actions/burst.json.rb | 6 +++---
www/secretary/workbench/views/actions/drop.json.rb | 3 +--
.../workbench/views/actions/rotate-attachment.json.rb | 18 ++++++++++--------
4 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/www/secretary/workbench/models/attachment.rb
b/www/secretary/workbench/models/attachment.rb
index 08dffbf..edeea31 100644
--- a/www/secretary/workbench/models/attachment.rb
+++ b/www/secretary/workbench/models/attachment.rb
@@ -61,7 +61,7 @@ class Attachment
if IMAGE_TYPES.include? ext or content_type.start_with? 'image/'
pdf = SafeTempFile.new([safe_name, '.pdf'])
- system 'convert', file.path, pdf.path
+ system 'img2pdf', '--output', pdf.path, file.path
file.unlink
return pdf
end
diff --git a/www/secretary/workbench/views/actions/burst.json.rb
b/www/secretary/workbench/views/actions/burst.json.rb
index 817c475..0a6143d 100644
--- a/www/secretary/workbench/views/actions/burst.json.rb
+++ b/www/secretary/workbench/views/actions/burst.json.rb
@@ -10,10 +10,10 @@ begin
source = message.find(@selected).as_pdf
Dir.mktmpdir do |dir|
- Kernel.system 'pdftk', source.path, 'burst', 'output',
- "#{dir}/page_%06d.pdf"
+ Kernel.system 'pdfseparate', source.path, "#{dir}/page_%d.pdf"
- pages = Dir["#{dir}/*.pdf"].sort.map {|name| name.untaint}
+ pages = Dir["#{dir}/*.pdf"].map {|name| name.untaint}
+ sort_by {|name| name[/d+/].to_i}
format = @selected.sub(/\.\w+$/, '') +
"-%0#{pages.length.to_s.length}d.pdf"
diff --git a/www/secretary/workbench/views/actions/drop.json.rb
b/www/secretary/workbench/views/actions/drop.json.rb
index b9f67e3..d227043 100644
--- a/www/secretary/workbench/views/actions/drop.json.rb
+++ b/www/secretary/workbench/views/actions/drop.json.rb
@@ -10,8 +10,7 @@ begin
output = SafeTempFile.new('output') # N.B. this is created as binary
- Kernel.system 'pdftk', target.path, source.path, 'cat', 'output',
- output.path
+ Kernel.system 'pdfunite', target.path, source.path, output.path
name = @target.sub(/\.\w+$/, '') + '.pdf'
diff --git a/www/secretary/workbench/views/actions/rotate-attachment.json.rb
b/www/secretary/workbench/views/actions/rotate-attachment.json.rb
index cbf831d..3c0ae26 100644
--- a/www/secretary/workbench/views/actions/rotate-attachment.json.rb
+++ b/www/secretary/workbench/views/actions/rotate-attachment.json.rb
@@ -7,21 +7,23 @@ message = Mailbox.find(@message)
begin
selected = message.find(@selected).as_pdf
- direction = 'Right' if @direction.include? 'right'
- direction = 'Left' if @direction.include? 'left'
- direction = 'Down' if @direction.include? 'flip'
+ tool = 'pdf270' if @direction.include? 'right'
+ tool = 'pdf90' if @direction.include? 'left'
+ tool = 'pdf180' if @direction.include? 'flip'
- output = SafeTempFile.new('output')
+ Dir.chdir File.dirname(selected.path) do
+ Kernel.system tool, '--quiet', '--suffix', 'rotated', selected.path
+ end
- Kernel.system 'pdftk', selected.path, 'cat', "1-end#{direction}", 'output',
- output.path
+ output = selected.path.sub(/\.pdf$/, '-rotated.pdf')
+ puts output
# If output file is empty, then the command failed
raise "Failed to rotate #{@selected}" unless File.size? output
name = @selected.sub(/\.\w+$/, '') + '.pdf'
- message.update_attachment @selected, content: output.read, name: name,
+ message.update_attachment @selected, content: IO.binread(output), name: name,
mime: 'application/pdf'
rescue
@@ -29,7 +31,7 @@ rescue
raise
ensure
selected.unlink if selected
- output.unlink if output
+ File.unlink output if output
end
{attachments: message.attachments, selected: name}