-
Notifications
You must be signed in to change notification settings - Fork 29
/
Copy pathpdfops.mli
130 lines (115 loc) · 3.58 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
127
128
129
130
(** 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
val begin_artifact : t
val end_artifact : t