summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/asciidoctor/pdf/optimizer/rghost.rb14
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/asciidoctor/pdf/optimizer/rghost.rb b/lib/asciidoctor/pdf/optimizer/rghost.rb
index feea3efe..3d65ab85 100644
--- a/lib/asciidoctor/pdf/optimizer/rghost.rb
+++ b/lib/asciidoctor/pdf/optimizer/rghost.rb
@@ -42,6 +42,11 @@ module Asciidoctor
def initialize *_args
super
+ if @quality&.include? ':'
+ @quality, @color_mode = @quality.split ':', 2
+ else
+ @color_mode = nil
+ end
if (gs_path = ::ENV['GS'])
::RGhost::Config::GS[:path] = gs_path
end
@@ -70,7 +75,14 @@ module Asciidoctor
d[:PDFX] = true
d[:ShowAnnots] = false
end
- (::RGhost::Convert.new inputs).to :pdf, filename: filename_tmp.to_s, quality: QUALITY_NAMES[@quality], d: d
+ case @color_mode
+ when 'gray', 'grayscale'
+ s = { ColorConversionStrategy: 'Gray' }
+ when 'bw'
+ d[:BlackText] = true
+ s = { ColorConversionStrategy: 'Gray' }
+ end
+ (::RGhost::Convert.new inputs).to :pdf, filename: filename_tmp.to_s, quality: QUALITY_NAMES[@quality], d: d, s: s
filename_o.binwrite filename_tmp.binread
end
nil