[gs-cvs] rev 7916 - trunk/gs/lib
till at ghostscript.com
till at ghostscript.com
Tue May 8 10:41:29 PDT 2007
Author: till
Date: 2007-05-08 10:41:29 -0700 (Tue, 08 May 2007)
New Revision: 7916
Modified:
trunk/gs/lib/gs_init.ps
trunk/gs/lib/gs_setpd.ps
Log:
Support for the CUPS Raster output device in the lib/*.ps files
DETAILS:
CUPS-related changes, overtaken from ESP Ghostscript:
Define option "-dNOMEDIAATTRS" to turn off the default (but
unimplementable) media selection policies for setpagedevice. This is
used by CUPS to support the standard Adobe media attributes. Without
this option the behavior of Ghostscript stays as before.
Due to the fact that it is not possible to properly implement the
selection policies from a Ghostscript driver, the default policy was
changed to "7" (impose) to avoid numerous problems with printing
within CUPS...
Bug fix:
Martin Lottermoser, author of the "pcl3" driver writes in
contrib/pcl3/doc/gs-mods.txt, section C1:
There is a bug in ghostscript's default configuration for the
undercolour removal and black generation functions. It shows up when
printing PostScript documents using the RGB colour space ("setrgbcolor" or
"sethsbcolor") on a device where the CMYK space is the native colour space;
this is the case for pcl3 if you specify "-sColourModel=CMYK". The bug
results in black being printed as a mixture of cyan, magenta, and yellow.
The bug is simply fixed by replacing the line
{ pop 0 } dup setblackgeneration setundercolorremoval
with the following line:
{} dup setblackgeneration setundercolorremoval
Modified: trunk/gs/lib/gs_init.ps
===================================================================
--- trunk/gs/lib/gs_init.ps 2007-05-08 17:30:26 UTC (rev 7915)
+++ trunk/gs/lib/gs_init.ps 2007-05-08 17:41:29 UTC (rev 7916)
@@ -152,6 +152,7 @@
currentdict /NOFONTPATH known /NOFONTPATH exch def
currentdict /NOGC known /NOGC exch def
currentdict /NOINTERPOLATE .knownget { /INTERPOLATE exch not def } if
+currentdict /NOMEDIAATTRS known /NOMEDIAATTRS exch def
currentdict /NOOUTERSAVE known /NOOUTERSAVE exch def
currentdict /NOPAGEPROMPT known /NOPAGEPROMPT exch def
currentdict /NOPAUSE known /NOPAUSE exch def
@@ -1469,7 +1470,22 @@
% Set the default screen and BG/UCR.
/.setdefaultbgucr {
systemdict /setblackgeneration known {
- { pop 0 } dup setblackgeneration setundercolorremoval
+% T. Kamppeter, Linux Foundation
+%
+% Martin Lottermoser, author of the "pcl3" driver writes in
+% contrib/pcl3/doc/gs-mods.txt, section C1:
+%
+% There is a bug in ghostscript's default configuration for the
+% undercolour removal and black generation functions. It shows up when
+% printing PostScript documents using the RGB colour space ("setrgbcolor" or
+% "sethsbcolor") on a device where the CMYK space is the native colour space;
+% this is the case for pcl3 if you specify "-sColourModel=CMYK". The bug
+% results in black being printed as a mixture of cyan, magenta, and yellow.
+%
+% The bug is simply fixed by replacing the line
+% { pop 0 } dup setblackgeneration setundercolorremoval
+% with the following line:
+ {} dup setblackgeneration setundercolorremoval
} if
} bind def
/.useloresscreen { % - .useloresscreen <bool>
Modified: trunk/gs/lib/gs_setpd.ps
===================================================================
--- trunk/gs/lib/gs_setpd.ps 2007-05-08 17:30:26 UTC (rev 7915)
+++ trunk/gs/lib/gs_setpd.ps 2007-05-08 17:41:29 UTC (rev 7916)
@@ -164,8 +164,17 @@
% We don't include attributes such as .MediaSize, which all devices
% are guaranteed to supply on their own.
/.defaultpolicies mark
- /PolicyNotFound 1
- /PageSize 0
+ % M. Sweet, Easy Software Products
+ %
+ % Due to the fact that it is not possible to properly implement
+ % the selection policies from a Ghostscript driver, we have changed
+ % the default policy to "7" (impose) to avoid numerous problems with
+ % printing within CUPS...
+ %
+ % /PolicyNotFound 1
+ % /PageSize 0
+ /PolicyNotFound 7
+ /PageSize 7
/PolicyReport {
dup /.LockSafetyParams known {
% Only possible error is invalidaccess
@@ -376,22 +385,43 @@
} bind
.dicttomark readonly def
-% Define the keys used in input attribute matching.
-/.inputattrkeys [
- /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet /ManualFeed
- % The following are documented in Adobe's supplement for v2017.
- /LeadingEdge /MediaClass
-] readonly def
-% Define other keys used in media selection.
-/.inputselectionkeys [
- /MediaPosition /Orientation
-] readonly def
+% M. Sweet, Easy Software Products:
+%
+% Define NOMEDIAATTRS to turn off the default (but unimplementable) media
+% selection policies for setpagedevice. This is used by CUPS to support
+% the standard Adobe media attributes.
+NOMEDIAATTRS {
+ % Define only PageSize for input attribute matching.
+ /.inputattrkeys [
+ /PageSize
+ ] readonly def
+ % Define no other keys used in media selection.
+ /.inputselectionkeys [
+ /noInputSelectionsKeys
+ ] readonly def
-% Define the keys used in output attribute matching.
-/.outputattrkeys [
- /OutputType
-] readonly def
+ % Define no keys used in output attribute matching.
+ /.outputattrkeys [
+ /noOutputAttrKeys
+ ] readonly def
+} {
+ % Define the keys used in input attribute matching.
+ /.inputattrkeys [
+ /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet /ManualFeed
+ % The following are documented in Adobe's supplement for v2017.
+ /LeadingEdge /MediaClass
+ ] readonly def
+ % Define other keys used in media selection.
+ /.inputselectionkeys [
+ /MediaPosition /Orientation
+ ] readonly def
+ % Define the keys used in output attribute matching.
+ /.outputattrkeys [
+ /OutputType /Duplex /Tumble /ManualFeed
+ ] readonly def
+} ifelse
+
% Define all the parameters that should always be copied to the merged
% dictionary.
/.copiedkeys [
@@ -502,11 +532,22 @@
% They are expected to consume the top 2 operands.
% NOTE: we currently treat all values other than 0, 1, or 7 (for PageSize)
% the same as 0, i.e., we signal an error.
+%
+% M. Sweet, Easy Software Products:
+%
+% Define NOMEDIAATTRS to turn off the default (but unimplementable) media
+% selection policies for setpagedevice. This is used by CUPS to support
+% the standard Adobe media attributes.
0 { % Set errorinfo and signal a configurationerror.
+ NOMEDIAATTRS {
+ % NOMEDIAATTRS means that the default policy is 7...
+ pop 2 index exch 7 put
+ } {
pop dup 4 index exch get 2 array astore
$error /errorinfo 3 -1 roll put
cleartomark
/setpagedevice .systemvar /configurationerror signalerror
+ } ifelse
} bind
1 { % Roll back the failed request to its previous status.
SETPDDEBUG { (Rolling back.) = pstack flush } if
More information about the gs-cvs
mailing list