forked from johnwhitington/camlpdf
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpdfops.mli
126 lines (113 loc) · 3.54 KB
/
pdfops.mli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
(** Parsing PDF Graphics Streams *)
(** A flat representation of the PDF graphics stream operators. Where the operator
contains the asterisk character (not allowable in OCaml syntax), a prime is
substituted. *)
type t =
| Op_w of float
| Op_J of int
| Op_j of int
| Op_M of float
| Op_d of float list * float
| Op_ri of string
| Op_i of int
| Op_gs of string
| Op_q
| Op_Q
| Op_cm of Pdftransform.transform_matrix
| Op_m of float * float
| Op_l of float * float
| Op_c of float * float * float * float * float * float
| Op_v of float * float * float * float
| Op_y of float * float * float * float
| Op_h
| Op_re of float * float * float * float
| Op_S
| Op_s
| Op_f
| Op_F
| Op_f'
| Op_B
| Op_B'
| Op_b
| Op_b'
| Op_n
| Op_W
| Op_W'
| Op_BT
| Op_ET
| Op_Tc of float
| Op_Tw of float
| Op_Tz of float
| Op_TL of float
| Op_Tf of string * float
| Op_Tr of int
| Op_Ts of float
| Op_Td of float * float
| Op_TD of float * float
| Op_Tm of Pdftransform.transform_matrix
| Op_T'
| Op_Tj of string
| Op_TJ of Pdf.pdfobject
| Op_' of string
| Op_'' of float * float * string
| Op_d0 of float * float
| Op_d1 of float * float * float * float * float * float
| Op_CS of string
| Op_cs of string
| Op_SC of float list
| Op_sc of float list
| Op_SCN of float list
| Op_scn of float list
| Op_SCNName of string * float list
| Op_scnName of string * float list
| Op_G of float
| Op_g of float
| Op_RG of float * float * float
| Op_rg of float * float * float
| Op_K of float * float * float * float
| Op_k of float * float * float * float
| Op_sh of string
| InlineImage of (Pdf.pdfobject * Pdf.pdfobject option * Pdfio.bytes)
| Op_Do of string
| Op_MP of string
| Op_DP of string * Pdf.pdfobject
| Op_BMC of string
| Op_BDC of string * Pdf.pdfobject
| Op_EMC
| Op_BX
| Op_EX
| Op_Unknown of string
| Op_Comment of string
(** Parse a single byte streams to an operator list given a document and resource
dictionary. *)
val parse_single_stream :
Pdf.t -> Pdf.pdfobject -> Pdfio.bytes -> t list
(** Parse a list of byte streams to an operator list given a document and resource
dictionary. *)
val parse_stream :
Pdf.t -> Pdf.pdfobject -> Pdfio.bytes list -> t list
(** Concatenate a list of bytes, padding with whitespace between. *)
val concat_bytess : Pdfio.bytes list -> Pdfio.bytes
(** Given a pdf document, resource dictionary and list of streams representing
the graphics content (PDF allows a single page's graphics content to be split
over several streams), return a list of operators. Raises PDFError on bad
content. *)
val parse_operators :
Pdf.t -> Pdf.pdfobject -> Pdf.pdfobject list -> t list
(** Flatten a list of operators to an uncompressed PDF stream. *)
val stream_of_ops : t list -> Pdf.pdfobject
(** Make a string of a single operator (for debug purposes). *)
val string_of_op : t -> string
(** Same as [string_of_op], but of several operators (for debug purposes). *)
val string_of_ops : t list -> string
(** Given a pdf, a resources dictionary and a colourspace dictionary, give the
number of bytes per pixel in the stored image data. *)
val components : Pdf.t -> Pdf.pdfobject -> Pdf.pdfobject -> int
(** When this reference is set, some debug information is printed to Standard Output. *)
val debug : bool ref
(** Whitespace between operators *)
val whitespace : string ref
(** Add whitespace even where not lexically-required. *)
val always_add_whitespace : bool ref
(** If set, comments will be written. *)
val write_comments : bool ref