2015-04-11 4 views
2

Je veux changer la couleur de fond postscript du blanc au noir, ce qui est le fichier ps:Définir la couleur d'arrière-plan postscript

%%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 

Au cours des deux dernières lignes, ils sont tout à fait la même; seule la dernière ligne peut changer la couleur d'arrière-plan, mais la deuxième dernière ligne ne peut pas. Pourquoi?

Répondre

4

Eh bien ce que vous avez, il n'y a qu'une partie d'un programme PostScript. Il me semble qu'il a été converti à partir d'un fichier PDF, car les opérateurs sont des opérateurs PDF, pas des fichiers PostScript. Aussi 'pdfStartPage' est un peu un cadeau. PostScript n'a pas de notion de «couleur de fond».

Il y a des parties de la page qui sont marquées, et des parties qui ne sont pas marquées, qui ne les rendent pas «blanches», cela les rend non marquées. Les spectateurs rendront normalement les parties non marquées blanches, mais ce n'est pas tout à fait la même chose. Le rendu en blanc (c'est-à-dire 0 setgray 1 1 1 setrgbcolor ou 0 0 0 0 setcmykcolor) empêchera l'imprimante d'imprimer ces zones. Si vous voulez réellement écrire de l'encre blanche, vous devez utiliser une couleur de séparation nommée/Blanc.

Si vous placez une feuille de papier dans une imprimante laser et imprimez dessus, seules les zones marquées seront imprimées. Si votre papier est blanc, les zones non marquées seront blanches. Si votre papier est jaune (par exemple), les zones non marquées seront jaunes.

De toute façon, il n'est pas vraiment possible de commenter ce que fait votre programme PostScript sans tout voir, puisqu'il redéfinit les opérateurs.

Les deux lignes que vous avez marquées ne modifient pas la 'couleur de fond', elles changent la couleur courante. Toutes les opérations après ce point seront dans la nouvelle couleur actuelle. Encore une fois, il est impossible de dire ce qui est changé puisque vous n'avez pas cité d'opérations de marquage suivant ce point.

Si vous voulez vraiment discuter du programme, il serait préférable de l'afficher quelque part en public afin que les gens puissent regarder l'intégralité du programme, pas seulement un petit morceau aléatoire.