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

Revision 380, 3.2 kB (checked in by jerome, 16 years ago)

Added program to generate test document for ink coverage.
Added the test document itself in case people don't have ReportLab? installed.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Id Revision
Line 
1#! /usr/bin/env python
2# -*- coding: ISO-8859-15 -*-
3#
4# pkpgcounter : a generic Page Description Language parser
5#
6# (c) 2003, 2004, 2005, 2006 Jerome Alet <alet@librelogiciel.com>
7# This program is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2 of the License, or
10# (at your option) any later version.
11#
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.
16#
17# You should have received a copy of the GNU General Public License
18# along with this program; if not, write to the Free Software
19# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20#
21# $Id$
22#
23#
24
25"""This document was created with the help of the ReportLab ToolKit (tm)
26available as Free Software from http://www.reportlab.org
27
28It contains 9 pages, including this one.
29
30Each page after this one is entirely filled with 100% of a particular
31color, as described below :
32
33Page 1 ====> This notice
34Page 2 ====> Red
35Page 3 ====> Green
36Page 4 ====> Blue
37Page 5 ====> Cyan
38Page 6 ====> Magenta
39Page 7 ====> Yellow
40Page 8 ====> Black
41Page 9 ====> White
42
43This document helps to ensure that the computation of ink coverage
44made by pkpgcounter works as expected.
45
46To check by yourself :
47
48  $ for cspace in BW RGB CMY CMYK ; do
49        echo "Colorspace : $cspace" ;
50        pkpgcounter --colorspace $cspace colors.pdf ;
51        echo ;
52    done   
53
54Please report any problem to : alet@librelogiciel.com
55"""
56
57import sys
58try :
59    from reportlab.lib import colors
60    from reportlab.lib import pagesizes
61    from reportlab.lib.units import cm
62    from reportlab.pdfgen import canvas
63except ImportError :   
64    sys.stderr.write("Please download and install ReportLab\n\tfrom http://www.reportlab.org\n")
65    sys.exit(-1)
66
67if __name__ == "__main__" :
68    canv = canvas.Canvas("colors.pdf", pagesize=pagesizes.A4)
69    (width, height) = pagesizes.A4
70    xbase = 2*cm
71    ybase = height - 2*cm
72   
73    # First we output the explanations on the first page.
74    canv.setFont("Helvetica", 16)
75    for line in __doc__.split("\n") :
76        canv.drawString(xbase, ybase, line)
77        ybase -= 24
78    canv.showPage()
79   
80    # Then we output each page
81    for color in (colors.Color(1, 0, 0),        # Red
82                  colors.Color(0, 1, 0),        # Green
83                  colors.Color(0, 0, 1)) :      # Blue
84        canv.setStrokeColorRGB(*color.rgb())         
85        canv.setFillColorRGB(*color.rgb())         
86        canv.rect(0, 0, width, height, fill=1)
87        canv.showPage()
88       
89    for color in (colors.CMYKColor(1, 0, 0, 0), # Cyan
90                  colors.CMYKColor(0, 1, 0, 0), # Magenta
91                  colors.CMYKColor(0, 0, 1, 0), # Yellow
92                  colors.CMYKColor(0, 0, 0, 1), # Black
93                  colors.CMYKColor(0, 0, 0, 0)) : # White
94        canv.setStrokeColorCMYK(*color.cmyk())         
95        canv.setFillColorCMYK(*color.cmyk())         
96        canv.rect(0, 0, width, height, fill=1)
97        canv.showPage()
98    canv.save()       
Note: See TracBrowser for help on using the browser.