From 4df03898faefcda99bc4cd3a751a95dba3b4d690 Mon Sep 17 00:00:00 2001 From: Dan Allen Date: Wed, 28 Sep 2022 03:00:49 -0600 Subject: resolves #2347 add support for passing a color mode to the default optimizer (PR #2348) --- lib/asciidoctor/pdf/optimizer/rghost.rb | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'lib') 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 -- cgit v1.2.3