在postscript中设置背景颜色

时间:2015-04-11 11:39:05

标签: postscript

我想将postscript背景颜色从白色更改为黑色,这是ps文件:

%%Page: 1 1
%%BeginPageSetup
%%PageOrientation: Landscape
pdfStartPage
0 0 540 720 re W
%%EndPageSetup
[] 0 d
1 i
0 j
0 J
10 M
1 w
/DeviceGray {} cs
[0] sc
/DeviceGray {} CS
[0] SC
false op
false OP
{} settransfer
q
q
1 i
0 0 540 720 re
W*
0 0.03 540 720 re
W
/DeviceRGB {} cs
[0 0 0] sc                
[1 1 1] sc                // it means [R G B] (range: from 0.0 to 1.0)
...                          e.g. if it is changed to [0.5 0.5 0.5]
                                , then the background color is grey

在最后两行,它们完全相同;只有最后一行可以改变背景颜色,但最后一行不能改变背景颜色。为什么呢?

1 个答案:

答案 0 :(得分:4)

你所拥有的只是PostScript程序的一部分。它看起来像是从PDF文件转换而来,因为运算符是PDF运算符,而不是PostScript运算符。 “pdfStartPage”也有点赠品。

PostScript没有“背景颜色”的概念。页面的某些部分被标记,而未标记的部分虽然没有使它们成为“白色”,但却使它们没有标记。观众通常会将未标记的部分呈现为白色,但这并不完全相同。渲染为白色(即0 setgray 1 1 1 setrgbcolor或0 0 0 0 setcmykcolor)将导致打印机不打印这些区域。如果你真的想要写白色墨水,那么你需要使用名为/ White的分色。

如果您将一张纸放入激光打印机并打印到其上,则只会打印标记的区域。如果您的纸张为白色,则未标记的区域将为白色。如果您的纸张(例如)为黄色,则未标记的区域将为黄色。

无论如何,它不可能在没有看到所有内容的情况下评论你的PostScript程序正在做什么,因为它重新定义了运算符。

您标记的两条线不会更改“背景颜色”,它们会更改当前颜色。该点之后的任何操作都将采用新的当前颜色。再说一次,由于你没有在那之后引用任何标记操作,所以不可能说出改变了什么。

如果您真的想讨论该计划,最好将其发布在公共场所,以便人们可以查看整个程序,而不仅仅是一个随机的小块。