root / pkpgcounter / trunk / tests / runcolors.py @ 3474

Revision 3474, 5.7 kB (checked in by jerome, 15 years ago)

Changed copyright years.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
RevLine 
[380]1#! /usr/bin/env python
[3436]2# -*- coding: utf-8 -*-
[380]3#
4# pkpgcounter : a generic Page Description Language parser
5#
[3474]6# (c) 2003-2009 Jerome Alet <alet@librelogiciel.com>
[463]7# This program is free software: you can redistribute it and/or modify
[380]8# it under the terms of the GNU General Public License as published by
[463]9# the Free Software Foundation, either version 3 of the License, or
[380]10# (at your option) any later version.
[3436]11#
[380]12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15# GNU General Public License for more details.
[3436]16#
[380]17# You should have received a copy of the GNU General Public License
[463]18# along with this program.  If not, see <http://www.gnu.org/licenses/>.
[380]19#
20# $Id$
21#
22#
23
[405]24"""This document was created with the help of the ReportLab
25ToolKit (tm) available as Free Software from :
[380]26
[405]27        http://www.reportlab.org
[380]28
[405]29It contains 10 pages, including this one.
[380]30
[405]31Each page after this one is entirely filled with 100%
32of a particular color, as described below :
[380]33
[405]34Page  1 ====> This notice
35Page  2 ====> Red
36Page  3 ====> Green
37Page  4 ====> Blue
38Page  5 ====> Cyan
39Page  6 ====> Magenta
40Page  7 ====> Yellow
41Page  8 ====> Black
42Page  9 ====> White
43Page 10 ====> The expected results.
[380]44
[405]45This document helps to ensure that the computation of
46ink coverage made by pkpgcounter works as expected.
47
[380]48To check by yourself :
49
50  $ for cspace in BW RGB CMY CMYK ; do
51        echo "Colorspace : $cspace" ;
52        pkpgcounter --colorspace $cspace colors.pdf ;
53        echo ;
[3436]54    done
[380]55
56Please report any problem to : alet@librelogiciel.com
57"""
58
[405]59lastpage = """For each colorspace, the results for the last page will differ a bit from what is below.
60The important values are the one for pages 2 to 9 included.
61
62Colorspace : BW
63B :   2.355336%
64B :  70.196078%
65B :  41.568627%
66B :  88.627451%
67B :  30.196078%
68B :  58.823529%
69B :  11.764706%
70B : 100.000000%
71B :   0.000000%
72B :   3.500669%
73
74Colorspace : RGB
75R :  97.644664%      G :  97.644664%      B :  97.644664%
76R : 100.000000%      G :   0.000000%      B :   0.000000%
77R :   0.000000%      G : 100.000000%      B :   0.000000%
78R :   0.000000%      G :   0.000000%      B : 100.000000%
79R :   0.000000%      G : 100.000000%      B : 100.000000%
80R : 100.000000%      G :   0.000000%      B : 100.000000%
81R : 100.000000%      G : 100.000000%      B :   0.000000%
82R :   0.000000%      G :   0.000000%      B :   0.000000%
83R : 100.000000%      G : 100.000000%      B : 100.000000%
84R :  96.499331%      G :  96.499331%      B :  96.499331%
85
86Colorspace : CMY
87C :   2.355336%      M :   2.355336%      Y :   2.355336%
88C :   0.000000%      M : 100.000000%      Y : 100.000000%
89C : 100.000000%      M :   0.000000%      Y : 100.000000%
90C : 100.000000%      M : 100.000000%      Y :   0.000000%
91C : 100.000000%      M :   0.000000%      Y :   0.000000%
92C :   0.000000%      M : 100.000000%      Y :   0.000000%
93C :   0.000000%      M :   0.000000%      Y : 100.000000%
94C : 100.000000%      M : 100.000000%      Y : 100.000000%
95C :   0.000000%      M :   0.000000%      Y :   0.000000%
96C :   3.500669%      M :   3.500669%      Y :   3.500669%
97
98Colorspace : CMYK
99C :   0.000000%      M :   0.000000%      Y :   0.000000%      K :   2.355336%
100C :   0.000000%      M : 100.000000%      Y : 100.000000%      K :   0.000000%
101C : 100.000000%      M :   0.000000%      Y : 100.000000%      K :   0.000000%
102C : 100.000000%      M : 100.000000%      Y :   0.000000%      K :   0.000000%
103C : 100.000000%      M :   0.000000%      Y :   0.000000%      K :   0.000000%
104C :   0.000000%      M : 100.000000%      Y :   0.000000%      K :   0.000000%
105C :   0.000000%      M :   0.000000%      Y : 100.000000%      K :   0.000000%
106C :   0.000000%      M :   0.000000%      Y :   0.000000%      K : 100.000000%
107C :   0.000000%      M :   0.000000%      Y :   0.000000%      K :   0.000000%
108C :   0.000000%      M :   0.000000%      Y :   0.000000%      K :   3.500669%
109"""
110
[380]111import sys
112try :
113    from reportlab.lib import colors
114    from reportlab.lib import pagesizes
115    from reportlab.lib.units import cm
116    from reportlab.pdfgen import canvas
[3436]117except ImportError :
[380]118    sys.stderr.write("Please download and install ReportLab\n\tfrom http://www.reportlab.org\n")
119    sys.exit(-1)
120
121if __name__ == "__main__" :
122    canv = canvas.Canvas("colors.pdf", pagesize=pagesizes.A4)
123    (width, height) = pagesizes.A4
124    xbase = 2*cm
125    ybase = height - 2*cm
[3436]126
[380]127    # First we output the explanations on the first page.
[405]128    canv.setFont("Courier", 14)
[380]129    for line in __doc__.split("\n") :
130        canv.drawString(xbase, ybase, line)
[405]131        ybase -= 18
[380]132    canv.showPage()
[3436]133
[380]134    # Then we output each page
135    for color in (colors.Color(1, 0, 0),        # Red
136                  colors.Color(0, 1, 0),        # Green
137                  colors.Color(0, 0, 1)) :      # Blue
[3436]138        canv.setStrokeColorRGB(*color.rgb())
139        canv.setFillColorRGB(*color.rgb())
[380]140        canv.rect(0, 0, width, height, fill=1)
141        canv.showPage()
[3436]142
[380]143    for color in (colors.CMYKColor(1, 0, 0, 0), # Cyan
144                  colors.CMYKColor(0, 1, 0, 0), # Magenta
145                  colors.CMYKColor(0, 0, 1, 0), # Yellow
146                  colors.CMYKColor(0, 0, 0, 1), # Black
147                  colors.CMYKColor(0, 0, 0, 0)) : # White
[3436]148        canv.setStrokeColorCMYK(*color.cmyk())
149        canv.setFillColorCMYK(*color.cmyk())
[380]150        canv.rect(0, 0, width, height, fill=1)
151        canv.showPage()
[3436]152
[405]153    # Finally outputs the expected results.
154    canv.setFont("Helvetica-Bold", 16)
155    canv.drawCentredString(width/2.0, height-1.5*cm, "Expected Results :")
156    ybase = height - 3*cm
157    canv.setFont("Courier", 10)
158    for line in lastpage.split("\n") :
159        canv.drawString(xbase, ybase, line)
160        ybase -= 14
161    canv.showPage()
[3436]162
163    canv.save()
Note: See TracBrowser for help on using the browser.