]> git.ipfire.org Git - thirdparty/cups-filters.git/commitdiff
libcupsfilters: In ghostscript() add monochrome PCLm printing
authorTill Kamppeter <till.kamppeter@gmail.com>
Fri, 25 Feb 2022 22:27:38 +0000 (23:27 +0100)
committerTill Kamppeter <till.kamppeter@gmail.com>
Fri, 25 Feb 2022 22:27:38 +0000 (23:27 +0100)
If a job for PCLm output is requested to be monochrome/grayscale (like
with "print-color-mode=monochrome"), use the sgray.icc color profile
instead of srgb.icc to get grayscale output.

cupsfilters/ghostscript.c

index f6827226f9220ca7e1cad5b33553bd55f3f85a34..7efc2d40d83ec34b012b0d0b0b81b235a7c01e54 100644 (file)
@@ -1498,8 +1498,16 @@ ghostscript(int inputfd,         /* I - File descriptor input stream */
       cupsArrayAdd(gs_args, strdup("-sOutputICCProfile=srgb.icc"));
     else if (h.cupsColorSpace == CUPS_CSPACE_ADOBERGB)
       cupsArrayAdd(gs_args, strdup("-sOutputICCProfile=a98.icc"));
+  } else if (!cm_disabled &&
+            outformat == OUTPUT_FORMAT_PCLM) {
+    /* Set standard output ICC profile sGray/sRGB */
+    if (h.cupsColorSpace == CUPS_CSPACE_SW)
+      cupsArrayAdd(gs_args, strdup("-sOutputICCProfile=sgray.icc"));
+    else if (h.cupsColorSpace == CUPS_CSPACE_SRGB)
+      cupsArrayAdd(gs_args, strdup("-sOutputICCProfile=srgb.icc"));
   }
-  else{
+  else if (!cm_disabled)
+  {
     cupsArrayAdd(gs_args, strdup("-sOutputICCProfile=srgb.icc"));
   }