summaryrefslogtreecommitdiff
path: root/lib/asciidoctor
diff options
context:
space:
mode:
authorDan Allen <dan.j.allen@gmail.com>2022-09-28 03:00:49 -0600
committerGitHub <noreply@github.com>2022-09-28 03:00:49 -0600
commit4df03898faefcda99bc4cd3a751a95dba3b4d690 (patch)
treef6f90dbc55fa999066ca6bc4263f9fe1f28fd973 /lib/asciidoctor
parent02fabe0da4e5aa8ac7deb9b7325adf0430f6e028 (diff)
resolves #2347 add support for passing a color mode to the default optimizer (PR #2348)
Diffstat (limited to 'lib/asciidoctor')
-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