xref: /plan9/sys/src/cmd/gs/src/gxclpage.h (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
1 /* Copyright (C) 1997 Aladdin Enterprises.  All rights reserved.
2 
3   This software is provided AS-IS with no warranty, either express or
4   implied.
5 
6   This software is distributed under license and may not be copied,
7   modified or distributed except as expressly authorized under the terms
8   of the license contained in the file LICENSE in this distribution.
9 
10   For more information about licensing, please refer to
11   http://www.ghostscript.com/licensing/. For information on
12   commercial licensing, go to http://www.artifex.com/licensing/ or
13   contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14   San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15 */
16 
17 /* $Id: gxclpage.h,v 1.5 2002/06/16 08:45:43 lpd Exp $ */
18 /* Command list procedures for saved pages */
19 /* Requires gdevprn.h, gxclist.h */
20 
21 #ifndef gxclpage_INCLUDED
22 #  define gxclpage_INCLUDED
23 
24 #include "gxclio.h"
25 
26 /* ---------------- Procedures ---------------- */
27 
28 /*
29  * Package up the current page in a banding device as a page object.
30  * The client must provide storage for the page object.
31  * The client may retain the object in memory, or may write it on a file
32  * for later retrieval; in the latter case, the client should free the
33  * in-memory structure.
34  */
35 int gdev_prn_save_page(gx_device_printer * pdev, gx_saved_page * page,
36 		       int num_copies);
37 
38 /*
39  * Render an array of saved pages by setting up a modified get_bits
40  * procedure and then calling the device's normal output_page procedure.
41  * Any current page in the device's buffers is lost.
42  * The (0,0) point of each saved page is translated to the corresponding
43  * specified offset on the combined page.  (Currently the Y offset must be 0.)
44  * The client is responsible for freeing the saved and placed pages.
45  *
46  * Note that the device instance for rendering need not be, and normally is
47  * not, the same as the device from which the pages were saved, but it must
48  * be an instance of the same device.  The client is responsible for
49  * ensuring that the rendering device's buffer size (BufferSpace value) is
50  * the same as the BandBufferSpace value of all the saved pages, and that
51  * the device width is the same as the BandWidth value of the saved pages.
52  */
53 int gdev_prn_render_pages(gx_device_printer * pdev,
54 			  const gx_placed_page * ppages, int count);
55 
56 #endif /* gxclpage_INCLUDED */
57