OSDN Git Service

binding with libharu.
[putex/putex.git] / src / texsourc / lib / libhpdf / if / python / hpdf_types.py
1 ###
2 ## * << Haru Free PDF Library 2.0.3 >> -- hpdf_types.h
3 ## *
4 ## * URL http://libharu.org/
5 ## *
6 ## * Copyright (c) 1999-2006 Takeshi Kanno
7 ## *
8 ## * Permission to use, copy, modify, distribute and sell this software
9 ## * and its documentation for any purpose is hereby granted without fee,
10 ## * provided that the above copyright notice appear in all copies and
11 ## * that both that copyright notice and this permission notice appear
12 ## * in supporting documentation.
13 ## * It is provided "as is" without express or implied warranty.
14 ## *
15 ##
16 ## port to python by Li Jun
17 ## http://groups.google.com/group/pythoncia
18
19 from ctypes import *
20
21 #----------------------------------------------------------------------------
22 #----- type definition ------------------------------------------------------
23
24
25 #  native OS integer types
26 HPDF_INT=c_int
27 HPDF_UINT=c_uint
28
29
30 #  32bit integer types
31 HPDF_INT32=c_int
32 HPDF_UINT32=c_uint
33
34
35 #  16bit integer types
36 HPDF_INT16=c_short
37 HPDF_UINT16=c_ushort
38
39
40 #  8bit integer types
41 HPDF_INT8=c_char
42 HPDF_UINT8=c_ubyte
43
44
45 #  8bit binary types
46 HPDF_BYTE=c_ubyte
47
48
49 #  float type (32bit IEEE754)
50 HPDF_REAL=c_float
51
52
53 #  double type (64bit IEEE754)
54 HPDF_DOUBLE=c_double
55
56
57 #  boolean type (0: False, !0: True)
58 HPDF_BOOL=c_int
59
60
61 #  error-no type (32bit unsigned integer)
62 HPDF_STATUS=c_ulong
63
64
65 #  charactor-code type (16bit)
66 HPDF_CID=HPDF_UINT16
67 HPDF_UNICODE=HPDF_UINT16
68
69
70 #  HPDF_Point struct
71 class _HPDF_Point(Structure):
72     _fields_=[
73               ('x',            HPDF_REAL),
74               ('y',            HPDF_REAL),
75              ]
76 HPDF_Point = _HPDF_Point
77
78 class _HPDF_Rect(Structure):
79     _fields_=[
80               ('left',         HPDF_REAL),
81               ('bottom',       HPDF_REAL),
82               ('right',        HPDF_REAL),
83               ('top',          HPDF_REAL),
84              ]
85 HPDF_Rect = _HPDF_Rect
86
87 HPDF_Box= _HPDF_Rect
88
89 # HPDF_Date struct
90 class _HPDF_Date(Structure):
91     _fields_=[
92               ('year',         HPDF_INT),
93               ('month',        HPDF_INT),
94               ('day',          HPDF_INT),
95               ('hour',         HPDF_INT),
96               ('minutes',      HPDF_INT),
97               ('seconds',      HPDF_INT),
98               ('ind',          c_char),
99               ('off_hour',     HPDF_INT),
100               ('off_minutes',  HPDF_INT),
101              ]
102 HPDF_Date = _HPDF_Date
103
104
105 #enum starts
106 ## date-time type parameters
107 HPDF_INFO_CREATION_DATE     =0
108 HPDF_INFO_MOD_DATE          =1
109
110 ## string type parameters
111 HPDF_INFO_AUTHOR            =2
112 HPDF_INFO_CREATOR           =3
113 HPDF_INFO_PRODUCER          =4
114 HPDF_INFO_TITLE             =5
115 HPDF_INFO_SUBJECT           =6
116 HPDF_INFO_KEYWORDS          =7
117 HPDF_INFO_EOF               =8
118 HPDF_InfoType               =c_int
119 #enum ends
120
121 #enum starts
122 HPDF_VER_12                 =0
123 HPDF_VER_13                 =1
124 HPDF_VER_14                 =2
125 HPDF_VER_15                 =3
126 HPDF_VER_16                 =4
127 HPDF_VER_EOF                =5
128 HPDF_PDFVer                 =c_int
129 #enum ends
130
131
132
133 #enum starts
134 HPDF_ENCRYPT_R2             =2
135 HPDF_ENCRYPT_R3             =3
136 HPDF_EncryptMode            =c_int
137 #enum ends
138
139
140
141
142 ##typedef void
143 ##(HPDF_STDCALL *HPDF_Error_Handler)  (HPDF_STATUS   error_no,
144 ##                                     HPDF_STATUS   detail_no,
145 ##                                     void         *user_data)
146 def HPDF_Error_Handler(restype,
147                        error_no,
148                        detail_no,
149                        user_data):
150     return CFUNCTYPE(restype,
151                      error_no,
152                      detail_no,
153                      user_data,
154                     )
155
156 #typedef void*
157 #(HPDF_STDCALL *HPDF_Alloc_Func)  (HPDF_UINT  size)
158 HPDF_Alloc_Func=CFUNCTYPE(c_void_p,
159                           HPDF_UINT,        #size
160                          )
161
162
163 #typedef void
164 #(HPDF_STDCALL *HPDF_Free_Func)  (void  *aptr)
165 HPDF_Free_Func=CFUNCTYPE(None,
166                          c_void_p,          #aptr
167                         )
168
169
170 #---------------------------------------------------------------------------
171 #------ text width struct --------------------------------------------------
172
173 class _HPDF_TextWidth(Structure):
174     _fields_=[
175               ('numchars',            HPDF_UINT),
176
177               # don't use this value (it may be change in the feature).
178               # use numspace as alternated.
179               ('numwords',            HPDF_UINT),
180
181               ('width',               HPDF_UINT),
182               ('numspace',            HPDF_UINT),
183              ]
184 HPDF_TextWidth = _HPDF_TextWidth
185
186
187 #---------------------------------------------------------------------------
188 #------ dash mode ----------------------------------------------------------
189
190 class _HPDF_DashMode(Structure):
191     _fields_=[
192               ('ptn',                 HPDF_UINT16*8),
193               ('num_ptn',             HPDF_UINT),
194               ('phase',               HPDF_UINT),
195              ]
196 HPDF_DashMode = _HPDF_DashMode
197
198
199 #---------------------------------------------------------------------------
200 #----- HPDF_TransMatrix struct ---------------------------------------------
201
202 class _HPDF_TransMatrix(Structure):
203     _fields_=[
204               ('a',                   HPDF_REAL),
205               ('b',                   HPDF_REAL),
206               ('c',                   HPDF_REAL),
207               ('d',                   HPDF_REAL),
208               ('x',                   HPDF_REAL),
209               ('y',                   HPDF_REAL),
210              ]
211 HPDF_TransMatrix = _HPDF_TransMatrix
212
213
214
215
216 #---------------------------------------------------------------------------
217
218 #enum starts
219 HPDF_CS_DEVICE_GRAY            =0
220 HPDF_CS_DEVICE_RGB             =1
221 HPDF_CS_DEVICE_CMYK            =2
222 HPDF_CS_CAL_GRAY               =3
223 HPDF_CS_CAL_RGB                =4
224 HPDF_CS_LAB                    =5
225 HPDF_CS_ICC_BASED              =6
226 HPDF_CS_SEPARATION             =7
227 HPDF_CS_DEVICE_N               =8
228 HPDF_CS_INDEXED                =9
229 HPDF_CS_PATTERN                =10
230 HPDF_CS_EOF                    =11
231 HPDF_ColorSpace                =c_int
232 #enum ends
233
234
235
236 #---------------------------------------------------------------------------
237 #----- HPDF_RGBColor struct ------------------------------------------------
238
239 class _HPDF_RGBColor(Structure):
240     _fields_=[
241               ('r',            HPDF_REAL),
242               ('g',            HPDF_REAL),
243               ('b',            HPDF_REAL),
244              ]
245 HPDF_RGBColor = _HPDF_RGBColor
246
247 #---------------------------------------------------------------------------
248 #----- HPDF_CMYKColor struct -----------------------------------------------
249
250 class _HPDF_CMYKColor(Structure):
251     _fields_=[
252               ('c',             HPDF_REAL),
253               ('m',             HPDF_REAL),
254               ('y',             HPDF_REAL),
255               ('k',             HPDF_REAL),
256              ]
257 HPDF_CMYKColor=_HPDF_CMYKColor
258
259 #---------------------------------------------------------------------------
260 #------ The line cap style -------------------------------------------------
261
262 #enum starts
263 HPDF_BUTT_END                                =0
264 HPDF_ROUND_END                               =1
265 HPDF_PROJECTING_SCUARE_END                   =2
266 HPDF_LINECAP_EOF                             =3
267 HPDF_LineCap                                 =c_int
268 #enum ends
269
270
271
272 #----------------------------------------------------------------------------
273 #------ The line join style -------------------------------------------------
274
275 #enum starts
276 HPDF_MITER_JOIN                              =0
277 HPDF_ROUND_JOIN                              =1
278 HPDF_BEVEL_JOIN                              =2
279 HPDF_LINEJOIN_EOF                            =3
280 HPDF_LineJoin                                =c_int
281 #enum ends
282
283
284
285 #----------------------------------------------------------------------------
286 #------ The text rendering mode ---------------------------------------------
287
288 #enum starts
289 HPDF_FILL                                    =0
290 HPDF_STROKE                                  =1
291 HPDF_FILL_THEN_STROKE                        =2
292 HPDF_INVISIBLE                               =3
293 HPDF_FILL_CLIPPING                           =4
294 HPDF_STROKE_CLIPPING                         =5
295 HPDF_FILL_STROKE_CLIPPING                    =6
296 HPDF_CLIPPING                                =7
297 HPDF_RENDERING_MODE_EOF                      =8
298 HPDF_TextRenderingMode                       =c_int
299 #enum ends
300
301
302
303
304 #enum starts
305 HPDF_WMODE_HORIZONTAL                        =0
306 HPDF_WMODE_VERTICAL                          =1
307 HPDF_WMODE_EOF                               =2
308 HPDF_WritingMode                             =c_int
309 #enum ends
310
311
312
313
314 #enum starts
315 HPDF_PAGE_LAYOUT_SINGLE                      =0
316 HPDF_PAGE_LAYOUT_ONE_COLUMN                  =1
317 HPDF_PAGE_LAYOUT_TWO_COLUMN_LEFT             =2
318 HPDF_PAGE_LAYOUT_TWO_COLUMN_RIGHT            =3
319 HPDF_PAGE_LAYOUT_EOF                         =4
320 HPDF_PageLayout                              =c_int
321 #enum ends
322
323
324
325
326 #enum starts
327 HPDF_PAGE_MODE_USE_NONE                      =0
328 HPDF_PAGE_MODE_USE_OUTLINE                   =1
329 HPDF_PAGE_MODE_USE_THUMBS                    =2
330 HPDF_PAGE_MODE_FULL_SCREEN                   =3
331 HPDF_PAGE_MODE_USE_OC                        =4     #???
332 HPDF_PAGE_MODE_USE_ATTACHMENTS               =5     #???
333 HPDF_PAGE_MODE_EOF                           =6
334 HPDF_PageMode                                =c_int
335 #enum ends
336
337
338
339
340 #enum starts
341 HPDF_PAGE_NUM_STYLE_DECIMAL                  =0
342 HPDF_PAGE_NUM_STYLE_UPPER_ROMAN              =1
343 HPDF_PAGE_NUM_STYLE_LOWER_ROMAN              =2
344 HPDF_PAGE_NUM_STYLE_UPPER_LETTERS            =3
345 HPDF_PAGE_NUM_STYLE_LOWER_LETTERS            =4
346 HPDF_PAGE_NUM_STYLE_EOF                      =5
347 HPDF_PageNumStyle                            =c_int
348 #enum ends
349
350
351
352
353 #enum starts
354 HPDF_XYZ                                     =0
355 HPDF_FIT                                     =1
356 HPDF_FIT_H                                   =2
357 HPDF_FIT_V                                   =3
358 HPDF_FIT_R                                   =4
359 HPDF_FIT_B                                   =5
360 HPDF_FIT_BH                                  =6
361 HPDF_FIT_BV                                  =7
362 HPDF_DST_EOF                                 =8
363 HPDF_DestinationType                         =c_int
364 #enum ends
365
366
367
368
369 #enum starts
370 HPDF_ANNOT_TEXT_NOTES                        =0
371 HPDF_ANNOT_LINK                              =1
372 HPDF_ANNOT_SOUND                             =2
373 HPDF_ANNOT_FREE_TEXT                         =3
374 HPDF_ANNOT_STAMP                             =4
375 HPDF_ANNOT_SQUARE                            =5
376 HPDF_ANNOT_CIRCLE                            =6
377 HPDF_ANNOT_STRIKE_OUT                        =7
378 HPDF_ANNOT_HIGHTLIGHT                        =8
379 HPDF_ANNOT_UNDERLINE                         =9
380 HPDF_ANNOT_INK                               =10
381 HPDF_ANNOT_FILE_ATTACHMENT                   =11
382 HPDF_ANNOT_POPUP                             =12
383 HPDF_AnnotType                               =c_int
384 #enum ends
385
386
387
388
389 #enum starts
390 HPDF_ANNOT_INVISIBLE                         =0
391 HPDF_ANNOT_HIDDEN                            =1
392 HPDF_ANNOT_PRINT                             =2
393 HPDF_ANNOT_NOZOOM                            =3
394 HPDF_ANNOT_NOROTATE                          =4
395 HPDF_ANNOT_NOVIEW                            =5
396 HPDF_ANNOT_READONLY                          =6
397 HPDF_AnnotFlgs                               =c_int
398 #enum ends
399
400
401
402
403 #enum starts
404 HPDF_ANNOT_NO_HIGHTLIGHT                     =0
405 HPDF_ANNOT_INVERT_BOX                        =1
406 HPDF_ANNOT_INVERT_BORDER                     =2
407 HPDF_ANNOT_DOWN_APPEARANCE                   =3
408 HPDF_ANNOT_HIGHTLIGHT_MODE_EOF               =4
409 HPDF_AnnotHighlightMode                      =c_int
410 #enum ends
411
412
413
414
415 #enum starts
416 HPDF_ANNOT_ICON_COMMENT                      =0
417 HPDF_ANNOT_ICON_KEY                          =1
418 HPDF_ANNOT_ICON_NOTE                         =2
419 HPDF_ANNOT_ICON_HELP                         =3
420 HPDF_ANNOT_ICON_NEW_PARAGRAPH                =4
421 HPDF_ANNOT_ICON_PARAGRAPH                    =5
422 HPDF_ANNOT_ICON_INSERT                       =6
423 HPDF_ANNOT_ICON_EOF                          =7
424 HPDF_AnnotIcon                               =c_int
425 #enum ends
426
427
428
429
430
431 #----------------------------------------------------------------------------
432 #------ border stype --------------------------------------------------------
433
434 #enum starts
435 HPDF_BS_SOLID                                =0
436 HPDF_BS_DASHED                               =1
437 HPDF_BS_BEVELED                              =2
438 HPDF_BS_INSET                                =3
439 HPDF_BS_UNDERLINED                           =4
440 HPDF_BSSubtype                               =c_int
441 #enum ends
442
443
444
445
446 #----- blend modes ----------------------------------------------------------
447
448 #enum starts
449 HPDF_BM_NORMAL                               =0
450 HPDF_BM_MULTIPLY                             =1
451 HPDF_BM_SCREEN                               =2
452 HPDF_BM_OVERLAY                              =3
453 HPDF_BM_DARKEN                               =4
454 HPDF_BM_LIGHTEN                              =5
455 HPDF_BM_COLOR_DODGE                          =6
456 HPDF_BM_COLOR_BUM                            =7
457 HPDF_BM_HARD_LIGHT                           =8
458 HPDF_BM_SOFT_LIGHT                           =9
459 HPDF_BM_DIFFERENCE                           =10
460 HPDF_BM_EXCLUSHON                            =11
461 HPDF_BM_EOF                                  =12
462 HPDF_BlendMode                               =c_int
463 #enum ends
464
465
466
467 #----- slide show -----------------------------------------------------------
468
469 #enum starts
470 HPDF_TS_WIPE_RIGHT                           =0
471 HPDF_TS_WIPE_UP                              =1
472 HPDF_TS_WIPE_LEFT                            =2
473 HPDF_TS_WIPE_DOWN                            =3
474 HPDF_TS_BARN_DOORS_HORIZONTAL_OUT            =4
475 HPDF_TS_BARN_DOORS_HORIZONTAL_IN             =5
476 HPDF_TS_BARN_DOORS_VERTICAL_OUT              =6
477 HPDF_TS_BARN_DOORS_VERTICAL_IN               =7
478 HPDF_TS_BOX_OUT                              =8
479 HPDF_TS_BOX_IN                               =9
480 HPDF_TS_BLINDS_HORIZONTAL                    =10
481 HPDF_TS_BLINDS_VERTICAL                      =11
482 HPDF_TS_DISSOLVE                             =12
483 HPDF_TS_GLITTER_RIGHT                        =13
484 HPDF_TS_GLITTER_DOWN                         =14
485 HPDF_TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT     =15
486 HPDF_TS_REPLACE                              =16
487 HPDF_TS_EOF                                  =17
488 HPDF_TransitionStyle                         =c_int
489 #enum ends
490
491
492
493 #----------------------------------------------------------------------------
494
495 #enum starts
496 HPDF_PAGE_SIZE_LETTER                        =0
497 HPDF_PAGE_SIZE_LEGAL                         =1
498 HPDF_PAGE_SIZE_A3                            =2
499 HPDF_PAGE_SIZE_A4                            =3
500 HPDF_PAGE_SIZE_A5                            =4
501 HPDF_PAGE_SIZE_B4                            =5
502 HPDF_PAGE_SIZE_B5                            =6
503 HPDF_PAGE_SIZE_EXECUTIVE                     =7
504 HPDF_PAGE_SIZE_US4x6                         =8
505 HPDF_PAGE_SIZE_US4x8                         =9
506 HPDF_PAGE_SIZE_US5x7                         =10
507 HPDF_PAGE_SIZE_COMM10                        =11
508 HPDF_PAGE_SIZE_EOF                           =12
509 HPDF_PageSizes                               =c_int
510 #enum ends
511
512
513
514
515 #enum starts
516 HPDF_PAGE_PORTRAIT                           =0
517 HPDF_PAGE_LANDSCAPE                          =1
518 HPDF_PageDirection                           =c_int
519 #enum ends
520
521
522
523
524 #enum starts
525 HPDF_ENCODER_TYPE_SINGLE_BYTE                =0
526 HPDF_ENCODER_TYPE_DOUBLE_BYTE                =1
527 HPDF_ENCODER_TYPE_UNINITIALIZED              =2
528 HPDF_ENCODER_UNKNOWN                         =3
529 HPDF_EncoderType                             =c_int
530 #enum ends
531
532
533
534
535 #enum starts
536 HPDF_BYTE_TYPE_SINGLE                        =0
537 HPDF_BYTE_TYPE_LEAD                          =1
538 HPDF_BYTE_TYPE_TRIAL                         =2
539 HPDF_BYTE_TYPE_UNKNOWN                       =3
540 HPDF_ByteType                                =c_int
541 #enum ends
542
543
544
545
546 #enum starts
547 HPDF_TALIGN_LEFT                             =0
548 HPDF_TALIGN_RIGHT                            =1
549 HPDF_TALIGN_CENTER                           =2
550 HPDF_TALIGN_JUSTIFY                          =3
551 HPDF_TextAlignment                           =c_int
552 #enum ends