]> www.fi.muni.cz Git - evince.git/blob - ps/ps.h
Hungarian translation added by "Last-Translator: \n".
[evince.git] / ps / ps.h
1 /*
2  * ps.h -- Include file for PostScript routines.
3  * Copyright (C) 1992  Timothy O. Theisen
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  *
19  *   Author: Tim Theisen           Systems Programmer
20  * Internet: tim@cs.wisc.edu       Department of Computer Sciences
21  *     UUCP: uwvax!tim             University of Wisconsin-Madison
22  *    Phone: (608)262-0438         1210 West Dayton Street
23  *      FAX: (608)262-9777         Madison, WI   53706
24  */
25 #ifndef __GGV_PS_H__
26 #define __GGV_PS_H__
27
28 #include <stdio.h>
29
30 #include <gsio.h>
31 #include <gstypes.h>
32
33 G_BEGIN_DECLS
34
35 /* Constants used to index into the bounding box array. */
36 #define LLX 0
37 #define LLY 1
38 #define URX 2
39 #define URY 3
40
41 /* Constants used to store keywords that are scanned. */
42 /* NONE is not a keyword, it tells when a field was not set */
43
44 enum { ATEND = -1, NONE = 0, ASCEND, DESCEND, SPECIAL };
45
46 #define PSLINELENGTH 257     /* 255 characters + 1 newline + 1 NULL */
47
48 struct document {
49   int epsf;                     /* Encapsulated PostScript flag. */
50   char *title;                  /* Title of document. */
51   char *date;                   /* Creation date. */
52   int pageorder;                /* ASCEND, DESCEND, SPECIAL */
53   long beginheader, endheader;  /* offsets into file */
54   unsigned int lenheader;
55   long beginpreview, endpreview;
56   unsigned int lenpreview;
57   long begindefaults, enddefaults;
58   unsigned int lendefaults;
59   long beginprolog, endprolog;
60   unsigned int lenprolog;
61   long beginsetup, endsetup;
62   unsigned int lensetup;
63   long begintrailer, endtrailer;
64   unsigned int lentrailer;
65   int boundingbox[4];
66   int default_page_boundingbox[4];
67   int orientation;              /* GTK_GS_ORIENTATION_PORTRAIT, GTK_GS_ORIENTATION_LANDSCAPE */
68   int default_page_orientation; /* GTK_GS_ORIENTATION_PORTRAIT, GTK_GS_ORIENTATION_LANDSCAPE */
69   unsigned int numsizes;
70   GtkGSPaperSize *size;
71   GtkGSPaperSize *default_page_size;
72   unsigned int numpages;
73   struct page *pages;
74 };
75
76 struct page {
77   char *label;
78   int boundingbox[4];
79   GtkGSPaperSize *size;
80   int orientation;              /* GTK_GS_ORIENTATION_PORTRAIT, GTK_GS_ORIENTATION_LANDSCAPE */
81   long begin, end;              /* offsets into file */
82   unsigned int len;
83 };
84
85 /* scans a PostScript file and return a pointer to the document
86    structure.  Returns NULL if file does not Conform to commenting
87    conventions . */
88 struct document *psscan(FILE * fileP, int respect_eof, const gchar * fname);
89
90 /* free data structure malloc'ed by psscan */
91 void psfree(struct document *);
92
93 /* Copy a portion of the PostScript file */
94 void pscopy(FILE * from, GtkGSDocSink * to, long begin, long end);
95
96 /* Copy a portion of the PostScript file upto a comment */
97 char *pscopyuntil(FILE * from, GtkGSDocSink * to, long begin, long end,
98                   const char *comment);
99
100 /* Copy the headers, marked pages, and trailer to fp */
101 void pscopydoc(GtkGSDocSink * dest_file, char *src_filename,
102                struct document *d, int *pagelist);
103
104 G_END_DECLS
105
106 #endif /* __GGV_PS_H__ */