From dcb26344f7513044c603d6ac3cb2483ba1d1d5d5 Mon Sep 17 00:00:00 2001
From: Dmitry Solomennikov <dmitrys99@mail.ru>
Date: Wed, 25 Jul 2012 10:11:28 +0800
Subject: [PATCH] Oberon-2 binding added
---
if/oberon-2/README.oberon-2 | 9 +
if/oberon-2/build.bat | 2 +
if/oberon-2/hpdf.ob2 | 1255 +++++++++++++++++++++++++++++++++++
if/oberon-2/test.ob2 | 338 ++++++++++
if/oberon-2/test.prj | 10 +
5 files changed, 1614 insertions(+)
create mode 100644 if/oberon-2/README.oberon-2
create mode 100644 if/oberon-2/build.bat
create mode 100644 if/oberon-2/hpdf.ob2
create mode 100644 if/oberon-2/test.ob2
create mode 100644 if/oberon-2/test.prj
diff --git a/if/oberon-2/README.oberon-2 b/if/oberon-2/README.oberon-2
new file mode 100644
index 0000000..2efd2c1
--- /dev/null
+++ b/if/oberon-2/README.oberon-2
@@ -0,0 +1,9 @@
+This is an Oberon-2 (www.excelsior-usa.com/xds.html) binding for libharu.
+
+It tested on Windows, but should work on Linux as well.
+
+Copy libhpdf.dll to this folder and run build.bat, then run test.exe.
+
+PTS55F.ttf is a part of 'PT Sans' font.
+http://www.fontstock.com/public/PTSans.zip
+http://fonts.ru/public
\ No newline at end of file
diff --git a/if/oberon-2/build.bat b/if/oberon-2/build.bat
new file mode 100644
index 0000000..f4da4f4
--- /dev/null
+++ b/if/oberon-2/build.bat
@@ -0,0 +1,2 @@
+xlib /implib libhpdf.lib libhpdf.dll
+xc =p test.prj
diff --git a/if/oberon-2/hpdf.ob2 b/if/oberon-2/hpdf.ob2
new file mode 100644
index 0000000..750fd92
--- /dev/null
+++ b/if/oberon-2/hpdf.ob2
@@ -0,0 +1,1255 @@
+<*+CHANGESYM*>
+<*+M2EXTENSIONS*>
+<*+O2EXTENSIONS*>
+(*
+#
+# URL http://libharu.org/
+#
+# Copyright 2000-2006 (c) Takeshi Kanno
+# Copyright 2007-2009 (c) Antony Dovgal et al.
+#
+# Copyright 2012 (c) Dmitry Solomennikov
+# Oberon-2 language binding to libhpdf.dll
+#
+*)
+
+MODULE hpdf;
+
+IMPORT
+ Windows, SYSTEM;
+
+(*
+ NOTE:
+
+ if you want to use Haru with Kylix/FreePascal on Linux,
+ change "libhpdf.dll" to "libhpdf.so" and change "stdcall" to "cdecl"
+ (This file and hpdf_types.pas)
+
+*)
+
+TYPE
+ HPDF_HANDLE * = Windows.PVOID;
+ HPDF_Doc * = HPDF_HANDLE;
+ HPDF_Page * = HPDF_HANDLE;
+ HPDF_Pages * = HPDF_HANDLE;
+ HPDF_Stream * = HPDF_HANDLE;
+ HPDF_Image * = HPDF_HANDLE;
+ HPDF_Font * = HPDF_HANDLE;
+ HPDF_Outline * = HPDF_HANDLE;
+ HPDF_Encoder * = HPDF_HANDLE;
+ HPDF_Destination * = HPDF_HANDLE;
+ HPDF_XObject * = HPDF_HANDLE;
+ HPDF_Annotation * = HPDF_HANDLE;
+ HPDF_ExtGState * = HPDF_HANDLE;
+-- HPDF_CHAR = Windows.PSTR;
+ --HPDF_STATUS = Windows.UINT;
+
+(*----------------------------------------------------------------------------*)
+(*----- type definition ------------------------------------------------------*)
+
+
+(* native OS integer types *)
+ HPDF_INT * = Windows.LONG;
+ HPDF_UINT * = Windows.UINT;
+ HPDF_PUINT * = Windows.PUINT;
+
+(*
+ 32bit integer types
+*)
+ HPDF_INT32 * = Windows.LONG;
+ HPDF_UINT32 * = Windows.ULONG;
+ HPDF_PUINT32 * = Windows.PULONG;
+
+
+(*
+ 16bit integer types
+ *)
+ HPDF_INT16 * = Windows.SHORT;
+ HPDF_UINT16 * = Windows.USHORT;
+ HPDF_PUINT16 * = POINTER TO ARRAY OF HPDF_UINT16;
+
+
+
+(*
+ 8bit integer types
+*)
+ HPDF_INT8 * = Windows.INT8;
+ HPDF_UINT8 * = Windows.CARD8;
+
+
+(*
+ 8bit charactor types
+*)
+ HPDF_CHAR * = Windows.PSTR;
+
+(*
+ 8bit binary types
+*)
+ HPDF_BYTE * = Windows.BYTE;
+ HPDF_PBYTE * = Windows.PBYTE;
+
+
+(*
+ float type (32bit IEEE754)
+*)
+ HPDF_REAL * = Windows.FLOAT;
+-- HPDF_PREAL * = ^HPDF_REAL;
+
+
+(*
+ double type (64bit IEEE754)
+ *)
+ HPDF_DOUBLE * = LONGREAL;
+
+
+(*
+ boolean type (0: False, 1: True)
+ *)
+ HPDF_BOOL * = Windows.BOOL;
+
+
+(*
+ error-no type (32bit unsigned integer)
+ *)
+ HPDF_STATUS * = Windows.UINT;
+
+
+(*
+ charactor-code type (16bit)
+ *)
+ HPDF_CID * = Windows.WCHAR;
+ HPDF_UNICODE * = Windows.WCHAR;
+
+(*
+ null terminated character *)
+ HPDF_PCHAR * = Windows.PSTR;
+
+
+(*
+ HPDF_Box struct
+ *)
+ THPDF_Box * = RECORD
+ left: HPDF_REAL;
+ bottom: HPDF_REAL;
+ right: HPDF_REAL;
+ top: HPDF_REAL;
+ END;
+
+
+(*
+ HPDF_Point struct
+ *)
+ PHPDF_Point * = POINTER ["StdCall"] TO THPDF_Point;
+ THPDF_Point * = RECORD
+ x: HPDF_REAL;
+ y: HPDF_REAL;
+ END;
+
+
+(*
+ HPDF_Rect struct
+ *)
+ THPDF_Rect * = RECORD
+ left: HPDF_REAL;
+ bottom: HPDF_REAL;
+ right: HPDF_REAL;
+ top: HPDF_REAL;
+ END;
+
+
+(*
+ HPDF_Date struct
+ *)
+ THPDF_Date * = RECORD
+ year: HPDF_INT;
+ month: HPDF_INT;
+ day: HPDF_INT;
+ hour: HPDF_INT;
+ minutes: HPDF_INT;
+ seconds: HPDF_INT;
+ ind: HPDF_CHAR;
+ off_hour: HPDF_INT;
+ off_minutes: HPDF_INT;
+ END;
+
+(*---------------------------------------------------------------------------*)
+(*------ text width struct --------------------------------------------------*)
+
+ THPDF_TextWidth * = RECORD
+ numchars: HPDF_UINT;
+ numwords: HPDF_UINT; (* don't use this value. *)
+ width: HPDF_UINT;
+ numspace: HPDF_UINT;
+ END;
+
+(*---------------------------------------------------------------------------*)
+(*------ dash mode ----------------------------------------------------------*)
+
+ THPDF_DashMode * = RECORD ["StdCall"]
+ ptn: ARRAY 8 OF HPDF_UINT16;
+ num_ptn: HPDF_UINT16;
+ phase: HPDF_UINT16;
+ END;
+
+
+(*---------------------------------------------------------------------------*)
+(*----- HPDF_TransMatrix struct ---------------------------------------------*)
+
+ THPDF_TransMatrix * = RECORD
+ a: HPDF_REAL;
+ b: HPDF_REAL;
+ c: HPDF_REAL;
+ d: HPDF_REAL;
+ x: HPDF_REAL;
+ y: HPDF_REAL;
+ END;
+
+(*---------------------------------------------------------------------------*)
+(*----- HPDF_RGBColor struct ------------------------------------------------*)
+
+ THPDF_RGBColor * = RECORD
+ r: HPDF_REAL;
+ g: HPDF_REAL;
+ b: HPDF_REAL;
+ END;
+
+(*---------------------------------------------------------------------------*)
+(*----- HPDF_CMYKColor struct -----------------------------------------------*)
+
+ THPDF_CMYKColor * = RECORD
+ c: HPDF_REAL;
+ m: HPDF_REAL;
+ y: HPDF_REAL;
+ k: HPDF_REAL;
+ END;
+
+
+TYPE
+ THPDF_ColorSpace * = Windows.UINT;
+CONST
+ HPDF_CS_DEVICE_GRAY * = 0;
+ HPDF_CS_DEVICE_RGB * = 1;
+ HPDF_CS_DEVICE_CMYK * = 2;
+ HPDF_CS_CAL_GRAY * = 3;
+ HPDF_CS_CAL_RGB * = 4;
+ HPDF_CS_LAB * = 5;
+ HPDF_CS_ICC_BASED * = 6;
+ HPDF_CS_SEPARATION * = 7;
+ HPDF_CS_DEVICE_N * = 8;
+ HPDF_CS_INDEXED * = 9;
+ HPDF_CS_PATTERN * = 10;
+ HPDF_CS_EOF * = 11;
+
+(*----------------------------------------------------------------------------*)
+(*------ The line cap style --------------------------------------------------*)
+TYPE
+ THPDF_LineCap * = Windows.UINT;
+CONST
+ HPDF_BUTT_END * = 0;
+ HPDF_ROUND_END * = 1;
+ HPDF_PROJECTING_SCUARE_END * = 2;
+ HPDF_LINECAP_EOF * = 3;
+
+(*----------------------------------------------------------------------------*)
+(*------ The line join style -------------------------------------------------*)
+TYPE
+ THPDF_LineJoin * = Windows.UINT;
+CONST
+ HPDF_MITER_JOIN * = 0;
+ HPDF_ROUND_JOIN * = 1;
+ HPDF_BEVEL_JOIN * = 2;
+ HPDF_LINEJOIN_EOF * = 3;
+
+(*----------------------------------------------------------------------------*)
+(*------ The text rendering mode ---------------------------------------------*)
+TYPE
+ THPDF_TextRenderingMode * = Windows.UINT;
+CONST
+ HPDF_FILL * = 0;
+ HPDF_STROKE * = 1;
+ HPDF_FILL_THEN_STROKE * = 2;
+ HPDF_INVISIBLE * = 3;
+ HPDF_FILL_CLIPPING * = 4;
+ HPDF_STROKE_CLIPPING * = 5;
+ HPDF_FILL_STROKE_CLIPPING * = 6;
+ HPDF_CLIPPING * = 7;
+ HPDF_RENDERING_MODE_EOF * = 8;
+
+TYPE
+ THPDF_WritingMode * = Windows.UINT;
+CONST
+ HPDF_WMODE_HORIZONTAL * = 0;
+ HPDF_WMODE_VERTICAL * = 1;
+ HPDF_WMODE_EOF * = 2;
+
+
+
+TYPE
+ THPDF_PageLayout * = Windows.UINT;
+CONST
+ HPDF_PAGE_LAYOUT_SINGLE * = 0;
+ HPDF_PAGE_LAYOUT_ONE_COLUMN * = 1;
+ HPDF_PAGE_LAYOUT_TWO_COLUMN_LEFT * = 2;
+ HPDF_PAGE_LAYOUT_TWO_COLUMN_RIGHT * = 3;
+ HPDF_PAGE_LAYOUT_EOF * = 4;
+
+TYPE
+ THPDF_PageMode= Windows.UINT;
+CONST
+ HPDF_PAGE_MODE_USE_NONE * = 0;
+ HPDF_PAGE_MODE_USE_OUTLINE * = 1;
+ HPDF_PAGE_MODE_USE_THUMBS * = 2;
+ HPDF_PAGE_MODE_FULL_SCREEN * = 3;
+(* HPDF_PAGE_MODE_USE_OC * =4
+ HPDF_PAGE_MODE_USE_ATTACHMENTS * = 4;
+' *)
+ HPDF_PAGE_MODE_EOF * = 4;
+
+TYPE
+ THPDF_PageNumStyle= Windows.UINT;
+CONST
+ HPDF_PAGE_NUM_STYLE_DECIMAL * = 0;
+ HPDF_PAGE_NUM_STYLE_UPPER_ROMAN * = 1;
+ HPDF_PAGE_NUM_STYLE_LOWER_ROMAN * = 2;
+ HPDF_PAGE_NUM_STYLE_UPPER_LETTERS * = 3;
+ HPDF_PAGE_NUM_STYLE_LOWER_LETTERS * = 4;
+ HPDF_PAGE_NUM_STYLE_EOF * = 5;
+
+TYPE
+ THPDF_DestinationType= Windows.UINT;
+CONST
+ HPDF_XYZ * = 0;
+ HPDF_FIT * = 1;
+ HPDF_FIT_H * = 2;
+ HPDF_FIT_V * = 3;
+ HPDF_FIT_R * = 4;
+ HPDF_FIT_B * = 5;
+ HPDF_FIT_BH * = 6;
+ HPDF_FIT_BV * = 7;
+ HPDF_DST_EOF * = 8;
+
+TYPE
+ THPDF_AnnotType= Windows.UINT;
+CONST
+ HPDF_ANNOT_TEXT_NOTES * = 1;
+ HPDF_ANNOT_LINK * = 2;
+ HPDF_ANNOT_SOUND * = 3;
+ HPDF_ANNOT_FREE_TEXT * = 4;
+ HPDF_ANNOT_STAMP * = 5;
+ HPDF_ANNOT_SQUARE * = 6;
+ HPDF_ANNOT_CIRCLE * = 7;
+ HPDF_ANNOT_STRIKE_OUT * = 8;
+ HPDF_ANNOT_HIGHTLIGHT * = 9;
+ HPDF_ANNOT_UNDERLINE * = 10;
+ HPDF_ANNOT_INK * = 11;
+ HPDF_ANNOT_FILE_ATTACHMENT * = 12;
+ HPDF_ANNOT_POPUP * = 13;
+
+TYPE
+ THPDF_AnnotFlgs= Windows.UINT;
+CONST
+ HPDF_ANNOT_INVISIBLE * = 1;
+ HPDF_ANNOT_HIDDEN * = 2;
+ HPDF_ANNOT_PRINT * = 3;
+ HPDF_ANNOT_NOZOOM * = 4;
+ HPDF_ANNOT_NOROTATE * = 5;
+ HPDF_ANNOT_NOVIEW * = 6;
+ HPDF_ANNOT_READONLY * = 7;
+
+TYPE
+ THPDF_AnnotHighlightMode= Windows.UINT;
+CONST
+ HPDF_ANNOT_NO_HIGHTLIGHT * = 0;
+ HPDF_ANNOT_INVERT_BOX * = 1;
+ HPDF_ANNOT_INVERT_BORDER * = 2;
+ HPDF_ANNOT_DOWN_APPEARANCE * = 3;
+ HPDF_ANNOT_HIGHTLIGHT_MODE_EOF * = 4;
+
+TYPE
+ THPDF_AnnotIcon= Windows.UINT;
+CONST
+ HPDF_ANNOT_ICON_COMMENT * = 0;
+ HPDF_ANNOT_ICON_KEY * = 1;
+ HPDF_ANNOT_ICON_NOTE * = 2;
+ HPDF_ANNOT_ICON_HELP * = 3;
+ HPDF_ANNOT_ICON_NEW_PARAGRAPH * = 4;
+ HPDF_ANNOT_ICON_PARAGRAPH * = 5;
+ HPDF_ANNOT_ICON_INSERT * = 6;
+ HPDF_ANNOT_ICON_EOF * = 7;
+
+(*----------------------------------------------------------------------------*)
+(*------ border stype --------------------------------------------------------*)
+TYPE
+ THPDF_BSSubtype= Windows.UINT;
+CONST
+ HPDF_BS_SOLID * = 1;
+ HPDF_BS_DASHED * = 2;
+ HPDF_BS_BEVELED * = 3;
+ HPDF_BS_INSET * = 4;
+ HPDF_BS_UNDERLINED * = 5;
+
+TYPE
+ THPDF_PageSizes= Windows.UINT;
+CONST
+ HPDF_PAGE_SIZE_LETTER * = 0;
+ HPDF_PAGE_SIZE_LEGAL * = 1;
+ HPDF_PAGE_SIZE_A3 * = 2;
+ HPDF_PAGE_SIZE_A4 * = 3;
+ HPDF_PAGE_SIZE_A5 * = 4;
+ HPDF_PAGE_SIZE_B4 * = 5;
+ HPDF_PAGE_SIZE_B5 * = 6;
+ HPDF_PAGE_SIZE_EXECUTIVE * = 7;
+ HPDF_PAGE_SIZE_US4x6 * = 8;
+ HPDF_PAGE_SIZE_US4x8 * = 9;
+ HPDF_PAGE_SIZE_US5x7 * = 10;
+ HPDF_PAGE_SIZE_COMM10 * = 11;
+ HPDF_PAGE_SIZE_EOF * = 12;
+
+TYPE
+ THPDF_PageDirection= Windows.UINT;
+CONST
+ HPDF_PAGE_PORTRAIT * = 0;
+ HPDF_PAGE_LANDSCAPE * = 1;
+
+TYPE
+ THPDF_EncoderType= Windows.UINT;
+CONST
+ HPDF_ENCODER_TYPE_SINGLE_BYTE * = 1;
+ HPDF_ENCODER_TYPE_DOUBLE_BYTE * = 2;
+ HPDF_ENCODER_TYPE_UNINITIALIZED * = 3;
+ HPDF_ENCODER_UNKNOWN * = 4;
+
+TYPE
+ THPDF_ByteType= Windows.UINT;
+CONST
+ HPDF_BYTE_TYPE_SINGLE * = 0;
+ HPDF_BYTE_TYPE_LEAD * = 1;
+ HPDF_BYTE_TYPE_TRIAL * = 2;
+ HPDF_BYTE_TYPE_UNKNOWN * = 3;
+
+TYPE
+ THPDF_TextAlignment= Windows.UINT;
+CONST
+ HPDF_TALIGN_LEFT * = 0;
+ HPDF_TALIGN_RIGHT * = 1;
+ HPDF_TALIGN_CENTER * = 2;
+ HPDF_TALIGN_JUSTIFY * = 3;
+TYPE
+ THPDF_InfoType * = Windows.UINT;
+CONST
+ (* date-time type parameters *)
+ HPDF_INFO_CREATION_DATE * = 0;
+ HPDF_INFO_MOD_DATE * = 1;
+
+ (* string type parameters *)
+ HPDF_INFO_AUTHOR * = 2;
+ HPDF_INFO_CREATOR * = 3;
+ HPDF_INFO_PRODUCER * = 4;
+ HPDF_INFO_TITLE * = 5;
+ HPDF_INFO_SUBJECT * = 6;
+ HPDF_INFO_KEYWORDS * = 7;
+ HPDF_INFO_EOF * = 8;
+
+TYPE
+ THPDF_EncryptMode = Windows.UINT;
+CONST
+ HPDF_ENCRYPT_R2 * = 2;
+ HPDF_ENCRYPT_R3 * = 3;
+
+TYPE
+ THPDF_TransitionStyle * = Windows.UINT;
+CONST
+ HPDF_TS_WIPE_RIGHT * = 0;
+ HPDF_TS_WIPE_UP * = 1;
+ HPDF_TS_WIPE_LEFT * = 2;
+ HPDF_TS_WIPE_DOWN * = 3;
+ HPDF_TS_BARN_DOORS_HORIZONTAL_OUT * = 4;
+ HPDF_TS_BARN_DOORS_HORIZONTAL_IN * = 5;
+ HPDF_TS_BARN_DOORS_VERTICAL_OUT * = 6;
+ HPDF_TS_BARN_DOORS_VERTICAL_IN * = 7;
+ HPDF_TS_BOX_OUT * = 8;
+ HPDF_TS_BOX_IN * = 9;
+ HPDF_TS_BLINDS_HORIZONTAL * = 10;
+ HPDF_TS_BLINDS_VERTICAL * = 11;
+ HPDF_TS_DISSOLVE * = 12;
+ HPDF_TS_GLITTER_RIGHT * = 13;
+ HPDF_TS_GLITTER_DOWN * = 14;
+ HPDF_TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT * = 15;
+ HPDF_TS_REPLACE * = 16;
+ HPDF_TS_EOF * = 17;
+
+TYPE
+ THPDF_BlendMode * = Windows.UINT;
+CONST
+ HPDF_BM_NORMAL * = 0;
+ HPDF_BM_MULTIPLY * = 1;
+ HPDF_BM_SCREEN * = 2;
+ HPDF_BM_OVERLAY * = 3;
+ HPDF_BM_DARKEN * = 4;
+ HPDF_BM_LIGHTEN * = 5;
+ HPDF_BM_COLOR_DODGE * = 6;
+ HPDF_BM_COLOR_BUM * = 7;
+ HPDF_BM_HARD_LIGHT * = 8;
+ HPDF_BM_SOFT_LIGHT * = 9;
+ HPDF_BM_DIFFERENCE * = 10;
+ HPDF_BM_EXCLUSHON * = 11;
+ HPDF_BM_EOF * = 12;
+
+
+CONST
+ HPDF_TRUE * = TRUE;
+ HPDF_FALSE * = FALSE;
+
+ HPDF_OK * = 0;
+ HPDF_NOERROR * = 0;
+
+(*----- default values -------------------------------------------------------*)
+
+(* buffer size which is required when we convert to character string. *)
+ HPDF_TMP_BUF_SIZ * = 256;
+ HPDF_SHORT_BUF_SIZ * = 32;
+ HPDF_REAL_LEN * = 11;
+ HPDF_INT_LEN * = 11;
+ HPDF_TEXT_DEFAULT_LEN * = 256;
+ HPDF_UNICODE_HEADER_LEN * = 2;
+ HPDF_DATE_TIME_STR_LEN * = 23;
+
+(* length of each item defined in PDF *)
+ HPDF_BYTE_OFFSET_LEN * = 10;
+ HPDF_OBJ_ID_LEN * = 7;
+ HPDF_GEN_NO_LEN * = 5;
+
+(* default value of Graphic State *)
+ HPDF_DEF_FONT * = 'Helvetica';
+ HPDF_DEF_PAGE_LAYOUT * = HPDF_PAGE_LAYOUT_SINGLE;
+ HPDF_DEF_PAGE_MODE * = HPDF_PAGE_MODE_USE_NONE;
+ HPDF_DEF_WORDSPACE * = 0;
+ HPDF_DEF_CHARSPACE * = 0;
+ HPDF_DEF_FONTSIZE * = 10;
+ HPDF_DEF_HSCALING * = 100;
+ HPDF_DEF_LEADING * = 0;
+ HPDF_DEF_RENDERING_MODE * = HPDF_FILL;
+ HPDF_DEF_RAISE * = 0;
+ HPDF_DEF_LINEWIDTH * = 1;
+ HPDF_DEF_LINECAP * = HPDF_BUTT_END;
+ HPDF_DEF_LINEJOIN * = HPDF_MITER_JOIN;
+ HPDF_DEF_MITERLIMIT * = 10;
+ HPDF_DEF_FLATNESS * = 1;
+ HPDF_DEF_PAGE_NUM * = 1;
+
+ HPDF_BS_DEF_WIDTH * = 1;
+
+(* defalt page-size *)
+ HPDF_DEF_PAGE_WIDTH * = 595.276;
+ HPDF_DEF_PAGE_HEIGHT * = 841.89;
+
+ HPDF_VERSION_TEXT * = '2.0.3';
+
+(*---------------------------------------------------------------------------*)
+(*----- compression mode ----------------------------------------------------*)
+TYPE
+ TCompressionMode* = SYSTEM.SET32;
+CONST
+ HPDF_COMP_NONE * = TCompressionMode { };
+ HPDF_COMP_TEXT * = TCompressionMode {0};
+ HPDF_COMP_IMAGE * = TCompressionMode {1};
+ HPDF_COMP_METADATA * = TCompressionMode {2};
+ HPDF_COMP_ALL * = TCompressionMode {0..3};
+(* HPDF_COMP_BEST_COMPRESS * = $10;
+ * HPDF_COMP_BEST_SPEED * = $20;
+ *)
+ HPDF_COMP_MASK * = TCompressionMode {0..7};
+
+(*----------------------------------------------------------------------------*)
+(*----- permission flags (only Revision 2 is supported)-----------------------*)
+
+ HPDF_ENABLE_READ * = 0;
+ HPDF_ENABLE_PRINT * = 4;
+ HPDF_ENABLE_EDIT_ALL * = 8;
+ HPDF_ENABLE_COPY * = 16;
+ HPDF_ENABLE_EDIT * = 32;
+
+
+(*----------------------------------------------------------------------------*)
+(*------ viewer preferences definitions --------------------------------------*)
+
+ HPDF_HIDE_TOOLBAR * = 1;
+ HPDF_HIDE_MENUBAR * = 2;
+ HPDF_HIDE_WINDOW_UI * = 4;
+ HPDF_FIT_WINDOW * = 8;
+ HPDF_CENTER_WINDOW * = 16;
+
+
+(*---------------------------------------------------------------------------*)
+(*------ limitation of object implementation (PDF1.4) -----------------------*)
+
+ HPDF_LIMIT_MAX_INT * = 2147483647;
+ HPDF_LIMIT_MIN_INT * = -2147483647;
+
+ HPDF_LIMIT_MAX_REAL * = 32767;
+ HPDF_LIMIT_MIN_REAL * = -32767;
+
+ HPDF_LIMIT_MAX_STRING_LEN * = 65535;
+ HPDF_LIMIT_MAX_NAME_LEN * = 127;
+
+ HPDF_LIMIT_MAX_ARRAY * = 8191;
+ HPDF_LIMIT_MAX_DICT_ELEMENT * = 4095;
+ HPDF_LIMIT_MAX_XREF_ELEMENT * = 8388607;
+ HPDF_LIMIT_MAX_GSTATE * = 28;
+ HPDF_LIMIT_MAX_DEVICE_N * = 8;
+ HPDF_LIMIT_MAX_DEVICE_N_V15 * = 32;
+ HPDF_LIMIT_MAX_CID * = 65535;
+ HPDF_MAX_GENERATION_NUM * = 65535;
+
+ HPDF_MIN_PAGE_HEIGHT * = 3;
+ HPDF_MIN_PAGE_WIDTH * = 3;
+ HPDF_MAX_PAGE_HEIGHT * = 14400;
+ HPDF_MAX_PAGE_WIDTH * = 14400;
+ HPDF_MIN_MAGNIFICATION_FACTOR* = 8;
+ HPDF_MAX_MAGNIFICATION_FACTOR* = 3200;
+
+(*---------------------------------------------------------------------------*)
+(*------ limitation of various properties -----------------------------------*)
+
+ HPDF_MIN_PAGE_SIZE * = 3;
+ HPDF_MAX_PAGE_SIZE * = 14400;
+ HPDF_MIN_HORIZONTALSCALING * = 10;
+ HPDF_MAX_HORIZONTALSCALING * = 300;
+ HPDF_MIN_WORDSPACE * = -30;
+ HPDF_MAX_WORDSPACE * = 300;
+ HPDF_MIN_CHARSPACE * = -30;
+ HPDF_MAX_CHARSPACE * = 300;
+ HPDF_MAX_FONTSIZE * = 300;
+ HPDF_MAX_ZOOMSIZE * = 10;
+ HPDF_MAX_LEADING * = 300;
+ HPDF_MAX_LINEWIDTH * = 100;
+ HPDF_MAX_DASH_PATTERN * = 100;
+
+(*----------------------------------------------------------------------------*)
+(*----- country code definition ----------------------------------------------*)
+
+ HPDF_COUNTRY_AF * = 'AF'; (* AFGHANISTAN *)
+ HPDF_COUNTRY_AL * = 'AL'; (* ALBANIA *)
+ HPDF_COUNTRY_DZ * = 'DZ'; (* ALGERIA *)
+ HPDF_COUNTRY_AS * = 'AS'; (* AMERICAN SAMOA *)
+ HPDF_COUNTRY_AD * = 'AD'; (* ANDORRA *)
+ HPDF_COUNTRY_AO * = 'AO'; (* ANGOLA *)
+ HPDF_COUNTRY_AI * = 'AI'; (* ANGUILLA *)
+ HPDF_COUNTRY_AQ * = 'AQ'; (* ANTARCTICA *)
+ HPDF_COUNTRY_AG * = 'AG'; (* ANTIGUA AND BARBUDA *)
+ HPDF_COUNTRY_AR * = 'AR'; (* ARGENTINA *)
+ HPDF_COUNTRY_AM * = 'AM'; (* ARMENIA *)
+ HPDF_COUNTRY_AW * = 'AW'; (* ARUBA *)
+ HPDF_COUNTRY_AU * = 'AU'; (* AUSTRALIA *)
+ HPDF_COUNTRY_AT * = 'AT'; (* AUSTRIA *)
+ HPDF_COUNTRY_AZ * = 'AZ'; (* AZERBAIJAN *)
+ HPDF_COUNTRY_BS * = 'BS'; (* BAHAMAS *)
+ HPDF_COUNTRY_BH * = 'BH'; (* BAHRAIN *)
+ HPDF_COUNTRY_BD * = 'BD'; (* BANGLADESH *)
+ HPDF_COUNTRY_BB * = 'BB'; (* BARBADOS *)
+ HPDF_COUNTRY_BY * = 'BY'; (* BELARUS *)
+ HPDF_COUNTRY_BE * = 'BE'; (* BELGIUM *)
+ HPDF_COUNTRY_BZ * = 'BZ'; (* BELIZE *)
+ HPDF_COUNTRY_BJ * = 'BJ'; (* BENIN *)
+ HPDF_COUNTRY_BM * = 'BM'; (* BERMUDA *)
+ HPDF_COUNTRY_BT * = 'BT'; (* BHUTAN *)
+ HPDF_COUNTRY_BO * = 'BO'; (* BOLIVIA *)
+ HPDF_COUNTRY_BA * = 'BA'; (* BOSNIA AND HERZEGOWINA *)
+ HPDF_COUNTRY_BW * = 'BW'; (* BOTSWANA *)
+ HPDF_COUNTRY_BV * = 'BV'; (* BOUVET ISLAND *)
+ HPDF_COUNTRY_BR * = 'BR'; (* BRAZIL *)
+ HPDF_COUNTRY_IO * = 'IO'; (* BRITISH INDIAN OCEAN TERRITORY *)
+ HPDF_COUNTRY_BN * = 'BN'; (* BRUNEI DARUSSALAM *)
+ HPDF_COUNTRY_BG * = 'BG'; (* BULGARIA *)
+ HPDF_COUNTRY_BF * = 'BF'; (* BURKINA FASO *)
+ HPDF_COUNTRY_BI * = 'BI'; (* BURUNDI *)
+ HPDF_COUNTRY_KH * = 'KH'; (* CAMBODIA *)
+ HPDF_COUNTRY_CM * = 'CM'; (* CAMEROON *)
+ HPDF_COUNTRY_CA * = 'CA'; (* CANADA *)
+ HPDF_COUNTRY_CV * = 'CV'; (* CAPE VERDE *)
+ HPDF_COUNTRY_KY * = 'KY'; (* CAYMAN ISLANDS *)
+ HPDF_COUNTRY_CF * = 'CF'; (* CENTRAL AFRICAN REPUBLIC *)
+ HPDF_COUNTRY_TD * = 'TD'; (* CHAD *)
+ HPDF_COUNTRY_CL * = 'CL'; (* CHILE *)
+ HPDF_COUNTRY_CN * = 'CN'; (* CHINA *)
+ HPDF_COUNTRY_CX * = 'CX'; (* CHRISTMAS ISLAND *)
+ HPDF_COUNTRY_CC * = 'CC'; (* COCOS (KEELING) ISLANDS *)
+ HPDF_COUNTRY_CO * = 'CO'; (* COLOMBIA *)
+ HPDF_COUNTRY_KM * = 'KM'; (* COMOROS *)
+ HPDF_COUNTRY_CG * = 'CG'; (* CONGO *)
+ HPDF_COUNTRY_CK * = 'CK'; (* COOK ISLANDS *)
+ HPDF_COUNTRY_CR * = 'CR'; (* COSTA RICA *)
+ HPDF_COUNTRY_CI * = 'CI'; (* COTE D'IVOIRE *)
+ HPDF_COUNTRY_HR * = 'HR'; (* CROATIA (local name: Hrvatska) *)
+ HPDF_COUNTRY_CU * = 'CU'; (* CUBA *)
+ HPDF_COUNTRY_CY * = 'CY'; (* CYPRUS *)
+ HPDF_COUNTRY_CZ * = 'CZ'; (* CZECH REPUBLIC *)
+ HPDF_COUNTRY_DK * = 'DK'; (* DENMARK *)
+ HPDF_COUNTRY_DJ * = 'DJ'; (* DJIBOUTI *)
+ HPDF_COUNTRY_DM * = 'DM'; (* DOMINICA *)
+ HPDF_COUNTRY_DO * = 'DO'; (* DOMINICAN REPUBLIC *)
+ HPDF_COUNTRY_TP * = 'TP'; (* EAST TIMOR *)
+ HPDF_COUNTRY_EC * = 'EC'; (* ECUADOR *)
+ HPDF_COUNTRY_EG * = 'EG'; (* EGYPT *)
+ HPDF_COUNTRY_SV * = 'SV'; (* EL SALVADOR *)
+ HPDF_COUNTRY_GQ * = 'GQ'; (* EQUATORIAL GUINEA *)
+ HPDF_COUNTRY_ER * = 'ER'; (* ERITREA *)
+ HPDF_COUNTRY_EE * = 'EE'; (* ESTONIA *)
+ HPDF_COUNTRY_ET * = 'ET'; (* ETHIOPIA *)
+ HPDF_COUNTRY_FK * = 'FK'; (* FALKLAND ISLANDS (MALVINAS) *)
+ HPDF_COUNTRY_FO * = 'FO'; (* FAROE ISLANDS *)
+ HPDF_COUNTRY_FJ * = 'FJ'; (* FIJI *)
+ HPDF_COUNTRY_FI * = 'FI'; (* FINLAND *)
+ HPDF_COUNTRY_FR * = 'FR'; (* FRANCE *)
+ HPDF_COUNTRY_FX * = 'FX'; (* FRANCE, METROPOLITAN *)
+ HPDF_COUNTRY_GF * = 'GF'; (* FRENCH GUIANA *)
+ HPDF_COUNTRY_PF * = 'PF'; (* FRENCH POLYNESIA *)
+ HPDF_COUNTRY_TF * = 'TF'; (* FRENCH SOUTHERN TERRITORIES *)
+ HPDF_COUNTRY_GA * = 'GA'; (* GABON *)
+ HPDF_COUNTRY_GM * = 'GM'; (* GAMBIA *)
+ HPDF_COUNTRY_GE * = 'GE'; (* GEORGIA *)
+ HPDF_COUNTRY_DE * = 'DE'; (* GERMANY *)
+ HPDF_COUNTRY_GH * = 'GH'; (* GHANA *)
+ HPDF_COUNTRY_GI * = 'GI'; (* GIBRALTAR *)
+ HPDF_COUNTRY_GR * = 'GR'; (* GREECE *)
+ HPDF_COUNTRY_GL * = 'GL'; (* GREENLAND *)
+ HPDF_COUNTRY_GD * = 'GD'; (* GRENADA *)
+ HPDF_COUNTRY_GP * = 'GP'; (* GUADELOUPE *)
+ HPDF_COUNTRY_GU * = 'GU'; (* GUAM *)
+ HPDF_COUNTRY_GT * = 'GT'; (* GUATEMALA *)
+ HPDF_COUNTRY_GN * = 'GN'; (* GUINEA *)
+ HPDF_COUNTRY_GW * = 'GW'; (* GUINEA-BISSAU *)
+ HPDF_COUNTRY_GY * = 'GY'; (* GUYANA *)
+ HPDF_COUNTRY_HT * = 'HT'; (* HAITI *)
+ HPDF_COUNTRY_HM * = 'HM'; (* HEARD AND MC DONALD ISLANDS *)
+ HPDF_COUNTRY_HN * = 'HN'; (* HONDURAS *)
+ HPDF_COUNTRY_HK * = 'HK'; (* HONG KONG *)
+ HPDF_COUNTRY_HU * = 'HU'; (* HUNGARY *)
+ HPDF_COUNTRY_IS * = 'IS'; (* ICELAND *)
+ HPDF_COUNTRY_IN * = 'IN'; (* INDIA *)
+ HPDF_COUNTRY_ID * = 'ID'; (* INDONESIA *)
+ HPDF_COUNTRY_IR * = 'IR'; (* IRAN (ISLAMIC REPUBLIC OF) *)
+ HPDF_COUNTRY_IQ * = 'IQ'; (* IRAQ *)
+ HPDF_COUNTRY_IE * = 'IE'; (* IRELAND *)
+ HPDF_COUNTRY_IL * = 'IL'; (* ISRAEL *)
+ HPDF_COUNTRY_IT * = 'IT'; (* ITALY *)
+ HPDF_COUNTRY_JM * = 'JM'; (* JAMAICA *)
+ HPDF_COUNTRY_JP * = 'JP'; (* JAPAN *)
+ HPDF_COUNTRY_JO * = 'JO'; (* JORDAN *)
+ HPDF_COUNTRY_KZ * = 'KZ'; (* KAZAKHSTAN *)
+ HPDF_COUNTRY_KE * = 'KE'; (* KENYA *)
+ HPDF_COUNTRY_KI * = 'KI'; (* KIRIBATI *)
+ HPDF_COUNTRY_KP * = 'KP'; (* KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF *)
+ HPDF_COUNTRY_KR * = 'KR'; (* KOREA, REPUBLIC OF *)
+ HPDF_COUNTRY_KW * = 'KW'; (* KUWAIT *)
+ HPDF_COUNTRY_KG * = 'KG'; (* KYRGYZSTAN *)
+ HPDF_COUNTRY_LA * = 'LA'; (* LAO PEOPLE'S DEMOCRATIC REPUBLIC *)
+ HPDF_COUNTRY_LV * = 'LV'; (* LATVIA *)
+ HPDF_COUNTRY_LB * = 'LB'; (* LEBANON *)
+ HPDF_COUNTRY_LS * = 'LS'; (* LESOTHO *)
+ HPDF_COUNTRY_LR * = 'LR'; (* LIBERIA *)
+ HPDF_COUNTRY_LY * = 'LY'; (* LIBYAN ARAB JAMAHIRIYA *)
+ HPDF_COUNTRY_LI * = 'LI'; (* LIECHTENSTEIN *)
+ HPDF_COUNTRY_LT * = 'LT'; (* LITHUANIA *)
+ HPDF_COUNTRY_LU * = 'LU'; (* LUXEMBOURG *)
+ HPDF_COUNTRY_MO * = 'MO'; (* MACAU *)
+ HPDF_COUNTRY_MK * = 'MK'; (* MACEDONIA,THE FORMER YUGOSLAV REPUBLIC OF *)
+ HPDF_COUNTRY_MG * = 'MG'; (* MADAGASCAR *)
+ HPDF_COUNTRY_MW * = 'MW'; (* MALAWI *)
+ HPDF_COUNTRY_MY * = 'MY'; (* MALAYSIA *)
+ HPDF_COUNTRY_MV * = 'MV'; (* MALDIVES *)
+ HPDF_COUNTRY_ML * = 'ML'; (* MALI *)
+ HPDF_COUNTRY_MT * = 'MT'; (* MALTA *)
+ HPDF_COUNTRY_MH * = 'MH'; (* MARSHALL ISLANDS *)
+ HPDF_COUNTRY_MQ * = 'MQ'; (* MARTINIQUE *)
+ HPDF_COUNTRY_MR * = 'MR'; (* MAURITANIA *)
+ HPDF_COUNTRY_MU * = 'MU'; (* MAURITIUS *)
+ HPDF_COUNTRY_YT * = 'YT'; (* MAYOTTE *)
+ HPDF_COUNTRY_MX * = 'MX'; (* MEXICO *)
+ HPDF_COUNTRY_FM * = 'FM'; (* MICRONESIA, FEDERATED STATES OF *)
+ HPDF_COUNTRY_MD * = 'MD'; (* MOLDOVA, REPUBLIC OF *)
+ HPDF_COUNTRY_MC * = 'MC'; (* MONACO *)
+ HPDF_COUNTRY_MN * = 'MN'; (* MONGOLIA *)
+ HPDF_COUNTRY_MS * = 'MS'; (* MONTSERRAT *)
+ HPDF_COUNTRY_MA * = 'MA'; (* MOROCCO *)
+ HPDF_COUNTRY_MZ * = 'MZ'; (* MOZAMBIQUE *)
+ HPDF_COUNTRY_MM * = 'MM'; (* MYANMAR *)
+ HPDF_COUNTRY_NA * = 'NA'; (* NAMIBIA *)
+ HPDF_COUNTRY_NR * = 'NR'; (* NAURU *)
+ HPDF_COUNTRY_NP * = 'NP'; (* NEPAL *)
+ HPDF_COUNTRY_NL * = 'NL'; (* NETHERLANDS *)
+ HPDF_COUNTRY_AN * = 'AN'; (* NETHERLANDS ANTILLES *)
+ HPDF_COUNTRY_NC * = 'NC'; (* NEW CALEDONIA *)
+ HPDF_COUNTRY_NZ * = 'NZ'; (* NEW ZEALAND *)
+ HPDF_COUNTRY_NI * = 'NI'; (* NICARAGUA *)
+ HPDF_COUNTRY_NE * = 'NE'; (* NIGER *)
+ HPDF_COUNTRY_NG * = 'NG'; (* NIGERIA *)
+ HPDF_COUNTRY_NU * = 'NU'; (* NIUE *)
+ HPDF_COUNTRY_NF * = 'NF'; (* NORFOLK ISLAND *)
+ HPDF_COUNTRY_MP * = 'MP'; (* NORTHERN MARIANA ISLANDS *)
+ HPDF_COUNTRY_NO * = 'NO'; (* NORWAY *)
+ HPDF_COUNTRY_OM * = 'OM'; (* OMAN *)
+ HPDF_COUNTRY_PK * = 'PK'; (* PAKISTAN *)
+ HPDF_COUNTRY_PW * = 'PW'; (* PALAU *)
+ HPDF_COUNTRY_PA * = 'PA'; (* PANAMA *)
+ HPDF_COUNTRY_PG * = 'PG'; (* PAPUA NEW GUINEA *)
+ HPDF_COUNTRY_PY * = 'PY'; (* PARAGUAY *)
+ HPDF_COUNTRY_PE * = 'PE'; (* PERU *)
+ HPDF_COUNTRY_PH * = 'PH'; (* PHILIPPINES *)
+ HPDF_COUNTRY_PN * = 'PN'; (* PITCAIRN *)
+ HPDF_COUNTRY_PL * = 'PL'; (* POLAND *)
+ HPDF_COUNTRY_PT * = 'PT'; (* PORTUGAL *)
+ HPDF_COUNTRY_PR * = 'PR'; (* PUERTO RICO *)
+ HPDF_COUNTRY_QA * = 'QA'; (* QATAR *)
+ HPDF_COUNTRY_RE * = 'RE'; (* REUNION *)
+ HPDF_COUNTRY_RO * = 'RO'; (* ROMANIA *)
+ HPDF_COUNTRY_RU * = 'RU'; (* RUSSIAN FEDERATION *)
+ HPDF_COUNTRY_RW * = 'RW'; (* RWANDA *)
+ HPDF_COUNTRY_KN * = 'KN'; (* SAINT KITTS AND NEVIS *)
+ HPDF_COUNTRY_LC * = 'LC'; (* SAINT LUCIA *)
+ HPDF_COUNTRY_VC * = 'VC'; (* SAINT VINCENT AND THE GRENADINES *)
+ HPDF_COUNTRY_WS * = 'WS'; (* SAMOA *)
+ HPDF_COUNTRY_SM * = 'SM'; (* SAN MARINO *)
+ HPDF_COUNTRY_ST * = 'ST'; (* SAO TOME AND PRINCIPE *)
+ HPDF_COUNTRY_SA * = 'SA'; (* SAUDI ARABIA *)
+ HPDF_COUNTRY_SN * = 'SN'; (* SENEGAL *)
+ HPDF_COUNTRY_SC * = 'SC'; (* SEYCHELLES *)
+ HPDF_COUNTRY_SL * = 'SL'; (* SIERRA LEONE *)
+ HPDF_COUNTRY_SG * = 'SG'; (* SINGAPORE *)
+ HPDF_COUNTRY_SK * = 'SK'; (* SLOVAKIA (Slovak Republic) *)
+ HPDF_COUNTRY_SI * = 'SI'; (* SLOVENIA *)
+ HPDF_COUNTRY_SB * = 'SB'; (* SOLOMON ISLANDS *)
+ HPDF_COUNTRY_SO * = 'SO'; (* SOMALIA *)
+ HPDF_COUNTRY_ZA * = 'ZA'; (* SOUTH AFRICA *)
+ HPDF_COUNTRY_ES * = 'ES'; (* SPAIN *)
+ HPDF_COUNTRY_LK * = 'LK'; (* SRI LANKA *)
+ HPDF_COUNTRY_SH * = 'SH'; (* ST. HELENA *)
+ HPDF_COUNTRY_PM * = 'PM'; (* ST. PIERRE AND MIQUELON *)
+ HPDF_COUNTRY_SD * = 'SD'; (* SUDAN *)
+ HPDF_COUNTRY_SR * = 'SR'; (* SURINAME *)
+ HPDF_COUNTRY_SJ * = 'SJ'; (* SVALBARD AND JAN MAYEN ISLANDS *)
+ HPDF_COUNTRY_SZ * = 'SZ'; (* SWAZILAND *)
+ HPDF_COUNTRY_SE * = 'SE'; (* SWEDEN *)
+ HPDF_COUNTRY_CH * = 'CH'; (* SWITZERLAND *)
+ HPDF_COUNTRY_SY * = 'SY'; (* SYRIAN ARAB REPUBLIC *)
+ HPDF_COUNTRY_TW * = 'TW'; (* TAIWAN, PROVINCE OF CHINA *)
+ HPDF_COUNTRY_TJ * = 'TJ'; (* TAJIKISTAN *)
+ HPDF_COUNTRY_TZ * = 'TZ'; (* TANZANIA, UNITED REPUBLIC OF *)
+ HPDF_COUNTRY_TH * = 'TH'; (* THAILAND *)
+ HPDF_COUNTRY_TG * = 'TG'; (* TOGO *)
+ HPDF_COUNTRY_TK * = 'TK'; (* TOKELAU *)
+ HPDF_COUNTRY_TO * = 'TO'; (* TONGA *)
+ HPDF_COUNTRY_TT * = 'TT'; (* TRINIDAD AND TOBAGO *)
+ HPDF_COUNTRY_TN * = 'TN'; (* TUNISIA *)
+ HPDF_COUNTRY_TR * = 'TR'; (* TURKEY *)
+ HPDF_COUNTRY_TM * = 'TM'; (* TURKMENISTAN *)
+ HPDF_COUNTRY_TC * = 'TC'; (* TURKS AND CAICOS ISLANDS *)
+ HPDF_COUNTRY_TV * = 'TV'; (* TUVALU *)
+ HPDF_COUNTRY_UG * = 'UG'; (* UGANDA *)
+ HPDF_COUNTRY_UA * = 'UA'; (* UKRAINE *)
+ HPDF_COUNTRY_AE * = 'AE'; (* UNITED ARAB EMIRATES *)
+ HPDF_COUNTRY_GB * = 'GB'; (* UNITED KINGDOM *)
+ HPDF_COUNTRY_US * = 'US'; (* UNITED STATES *)
+ HPDF_COUNTRY_UM * = 'UM'; (* UNITED STATES MINOR OUTLYING ISLANDS *)
+ HPDF_COUNTRY_UY * = 'UY'; (* URUGUAY *)
+ HPDF_COUNTRY_UZ * = 'UZ'; (* UZBEKISTAN *)
+ HPDF_COUNTRY_VU * = 'VU'; (* VANUATU *)
+ HPDF_COUNTRY_VA * = 'VA'; (* VATICAN CITY STATE (HOLY SEE) *)
+ HPDF_COUNTRY_VE * = 'VE'; (* VENEZUELA *)
+ HPDF_COUNTRY_VN * = 'VN'; (* VIET NAM *)
+ HPDF_COUNTRY_VG * = 'VG'; (* VIRGIN ISLANDS (BRITISH) *)
+ HPDF_COUNTRY_VI * = 'VI'; (* VIRGIN ISLANDS (U.S.) *)
+ HPDF_COUNTRY_WF * = 'WF'; (* WALLIS AND FUTUNA ISLANDS *)
+ HPDF_COUNTRY_EH * = 'EH'; (* WESTERN SAHARA *)
+ HPDF_COUNTRY_YE * = 'YE'; (* YEMEN *)
+ HPDF_COUNTRY_YU * = 'YU'; (* YUGOSLAVIA *)
+ HPDF_COUNTRY_ZR * = 'ZR'; (* ZAIRE *)
+ HPDF_COUNTRY_ZM * = 'ZM'; (* ZAMBIA *)
+ HPDF_COUNTRY_ZW * = 'ZW'; (* ZIMBABWE *)
+
+(*----------------------------------------------------------------------------*)
+(*----- lang code definition -------------------------------------------------*)
+
+ HPDF_LANG_AA * = 'aa'; (* Afar *)
+ HPDF_LANG_AB * = 'ab'; (* Abkhazian *)
+ HPDF_LANG_AF * = 'af'; (* Afrikaans *)
+ HPDF_LANG_AM * = 'am'; (* Amharic *)
+ HPDF_LANG_AR * = 'ar'; (* Arabic *)
+ HPDF_LANG_AS * = 'as'; (* Assamese *)
+ HPDF_LANG_AY * = 'ay'; (* Aymara *)
+ HPDF_LANG_AZ * = 'az'; (* Azerbaijani *)
+ HPDF_LANG_BA * = 'ba'; (* Bashkir *)
+ HPDF_LANG_BE * = 'be'; (* Byelorussian *)
+ HPDF_LANG_BG * = 'bg'; (* Bulgarian *)
+ HPDF_LANG_BH * = 'bh'; (* Bihari *)
+ HPDF_LANG_BI * = 'bi'; (* Bislama *)
+ HPDF_LANG_BN * = 'bn'; (* Bengali Bangla *)
+ HPDF_LANG_BO * = 'bo'; (* Tibetan *)
+ HPDF_LANG_BR * = 'br'; (* Breton *)
+ HPDF_LANG_CA * = 'ca'; (* Catalan *)
+ HPDF_LANG_CO * = 'co'; (* Corsican *)
+ HPDF_LANG_CS * = 'cs'; (* Czech *)
+ HPDF_LANG_CY * = 'cy'; (* Welsh *)
+ HPDF_LANG_DA * = 'da'; (* Danish *)
+ HPDF_LANG_DE * = 'de'; (* German *)
+ HPDF_LANG_DZ * = 'dz'; (* Bhutani *)
+ HPDF_LANG_EL * = 'el'; (* Greek *)
+ HPDF_LANG_EN * = 'en'; (* English *)
+ HPDF_LANG_EO * = 'eo'; (* Esperanto *)
+ HPDF_LANG_ES * = 'es'; (* Spanish *)
+ HPDF_LANG_ET * = 'et'; (* Estonian *)
+ HPDF_LANG_EU * = 'eu'; (* Basque *)
+ HPDF_LANG_FA * = 'fa'; (* Persian *)
+ HPDF_LANG_FI * = 'fi'; (* Finnish *)
+ HPDF_LANG_FJ * = 'fj'; (* Fiji *)
+ HPDF_LANG_FO * = 'fo'; (* Faeroese *)
+ HPDF_LANG_FR * = 'fr'; (* French *)
+ HPDF_LANG_FY * = 'fy'; (* Frisian *)
+ HPDF_LANG_GA * = 'ga'; (* Irish *)
+ HPDF_LANG_GD * = 'gd'; (* Scots Gaelic *)
+ HPDF_LANG_GL * = 'gl'; (* Galician *)
+ HPDF_LANG_GN * = 'gn'; (* Guarani *)
+ HPDF_LANG_GU * = 'gu'; (* Gujarati *)
+ HPDF_LANG_HA * = 'ha'; (* Hausa *)
+ HPDF_LANG_HI * = 'hi'; (* Hindi *)
+ HPDF_LANG_HR * = 'hr'; (* Croatian *)
+ HPDF_LANG_HU * = 'hu'; (* Hungarian *)
+ HPDF_LANG_HY * = 'hy'; (* Armenian *)
+ HPDF_LANG_IA * = 'ia'; (* Interlingua *)
+ HPDF_LANG_IE * = 'ie'; (* Interlingue *)
+ HPDF_LANG_IK * = 'ik'; (* Inupiak *)
+ HPDF_LANG_IN * = 'in'; (* Indonesian *)
+ HPDF_LANG_IS * = 'is'; (* Icelandic *)
+ HPDF_LANG_IT * = 'it'; (* Italian *)
+ HPDF_LANG_IW * = 'iw'; (* Hebrew *)
+ HPDF_LANG_JA * = 'ja'; (* Japanese *)
+ HPDF_LANG_JI * = 'ji'; (* Yiddish *)
+ HPDF_LANG_JW * = 'jw'; (* Javanese *)
+ HPDF_LANG_KA * = 'ka'; (* Georgian *)
+ HPDF_LANG_KK * = 'kk'; (* Kazakh *)
+ HPDF_LANG_KL * = 'kl'; (* Greenlandic *)
+ HPDF_LANG_KM * = 'km'; (* Cambodian *)
+ HPDF_LANG_KN * = 'kn'; (* Kannada *)
+ HPDF_LANG_KO * = 'ko'; (* Korean *)
+ HPDF_LANG_KS * = 'ks'; (* Kashmiri *)
+ HPDF_LANG_KU * = 'ku'; (* Kurdish *)
+ HPDF_LANG_KY * = 'ky'; (* Kirghiz *)
+ HPDF_LANG_LA * = 'la'; (* Latin *)
+ HPDF_LANG_LN * = 'ln'; (* Lingala *)
+ HPDF_LANG_LO * = 'lo'; (* Laothian *)
+ HPDF_LANG_LT * = 'lt'; (* Lithuanian *)
+ HPDF_LANG_LV * = 'lv'; (* Latvian,Lettish *)
+ HPDF_LANG_MG * = 'mg'; (* Malagasy *)
+ HPDF_LANG_MI * = 'mi'; (* Maori *)
+ HPDF_LANG_MK * = 'mk'; (* Macedonian *)
+ HPDF_LANG_ML * = 'ml'; (* Malayalam *)
+ HPDF_LANG_MN * = 'mn'; (* Mongolian *)
+ HPDF_LANG_MO * = 'mo'; (* Moldavian *)
+ HPDF_LANG_MR * = 'mr'; (* Marathi *)
+ HPDF_LANG_MS * = 'ms'; (* Malay *)
+ HPDF_LANG_MT * = 'mt'; (* Maltese *)
+ HPDF_LANG_MY * = 'my'; (* Burmese *)
+ HPDF_LANG_NA * = 'na'; (* Nauru *)
+ HPDF_LANG_NE * = 'ne'; (* Nepali *)
+ HPDF_LANG_NL * = 'nl'; (* Dutch *)
+ HPDF_LANG_NO * = 'no'; (* Norwegian *)
+ HPDF_LANG_OC * = 'oc'; (* Occitan *)
+ HPDF_LANG_OM * = 'om'; (* (Afan)Oromo *)
+ HPDF_LANG_OR * = 'or'; (* Oriya *)
+ HPDF_LANG_PA * = 'pa'; (* Punjabi *)
+ HPDF_LANG_PL * = 'pl'; (* Polish *)
+ HPDF_LANG_PS * = 'ps'; (* Pashto,Pushto *)
+ HPDF_LANG_PT * = 'pt'; (* Portuguese *)
+ HPDF_LANG_QU * = 'qu'; (* Quechua *)
+ HPDF_LANG_RM * = 'rm'; (* Rhaeto-Romance *)
+ HPDF_LANG_RN * = 'rn'; (* Kirundi *)
+ HPDF_LANG_RO * = 'ro'; (* Romanian *)
+ HPDF_LANG_RU * = 'ru'; (* Russian *)
+ HPDF_LANG_RW * = 'rw'; (* Kinyarwanda *)
+ HPDF_LANG_SA * = 'sa'; (* Sanskrit *)
+ HPDF_LANG_SD * = 'sd'; (* Sindhi *)
+ HPDF_LANG_SG * = 'sg'; (* Sangro *)
+ HPDF_LANG_SH * = 'sh'; (* Serbo-Croatian *)
+ HPDF_LANG_SI * = 'si'; (* Singhalese *)
+ HPDF_LANG_SK * = 'sk'; (* Slovak *)
+ HPDF_LANG_SL * = 'sl'; (* Slovenian *)
+ HPDF_LANG_SM * = 'sm'; (* Samoan *)
+ HPDF_LANG_SN * = 'sn'; (* Shona *)
+ HPDF_LANG_SO * = 'so'; (* Somali *)
+ HPDF_LANG_SQ * = 'sq'; (* Albanian *)
+ HPDF_LANG_SR * = 'sr'; (* Serbian *)
+ HPDF_LANG_SS * = 'ss'; (* Siswati *)
+ HPDF_LANG_ST * = 'st'; (* Sesotho *)
+ HPDF_LANG_SU * = 'su'; (* Sundanese *)
+ HPDF_LANG_SV * = 'sv'; (* Swedish *)
+ HPDF_LANG_SW * = 'sw'; (* Swahili *)
+ HPDF_LANG_TA * = 'ta'; (* Tamil *)
+ HPDF_LANG_TE * = 'te'; (* Tegulu *)
+ HPDF_LANG_TG * = 'tg'; (* Tajik *)
+ HPDF_LANG_TH * = 'th'; (* Thai *)
+ HPDF_LANG_TI * = 'ti'; (* Tigrinya *)
+ HPDF_LANG_TK * = 'tk'; (* Turkmen *)
+ HPDF_LANG_TL * = 'tl'; (* Tagalog *)
+ HPDF_LANG_TN * = 'tn'; (* Setswanato Tonga *)
+ HPDF_LANG_TR * = 'tr'; (* Turkish *)
+ HPDF_LANG_TS * = 'ts'; (* Tsonga *)
+ HPDF_LANG_TT * = 'tt'; (* Tatar *)
+ HPDF_LANG_TW * = 'tw'; (* Twi *)
+ HPDF_LANG_UK * = 'uk'; (* Ukrainian *)
+ HPDF_LANG_UR * = 'ur'; (* Urdu *)
+ HPDF_LANG_UZ * = 'uz'; (* Uzbek *)
+ HPDF_LANG_VI * = 'vi'; (* Vietnamese *)
+ HPDF_LANG_VO * = 'vo'; (* Volapuk *)
+ HPDF_LANG_WO * = 'wo'; (* Wolof *)
+ HPDF_LANG_XH * = 'xh'; (* Xhosa *)
+ HPDF_LANG_YO * = 'yo'; (* Yoruba *)
+ HPDF_LANG_ZH * = 'zh'; (* Chinese *)
+ HPDF_LANG_ZU * = 'zu'; (* Zulu *)
+
+
+(*----------------------------------------------------------------------------*)
+(*----- Graphis mode ---------------------------------------------------------*)
+CONST
+ HPDF_GMODE_PAGE_DESCRIPTION * = {0};
+ HPDF_GMODE_PATH_OBJECT * = {1};
+ HPDF_GMODE_TEXT_OBJECT * = {2};
+ HPDF_GMODE_CLIPPING_PATH * = {3};
+ HPDF_GMODE_SHADING * = {4};
+ HPDF_GMODE_INLINE_IMAGE * = {5};
+ HPDF_GMODE_EXTERNAL_OBJECT * = {6};
+
+
+TYPE
+ THPDF_ErrorFunc * = PROCEDURE ["StdCall"] (error_no: HPDF_STATUS; detail_no: HPDF_STATUS; user_data: Windows.PVOID);
+ THPDF_AllocFunc * = PROCEDURE ["StdCall"] (size: Windows.UINT);
+ THPDF_FreeFunc * = PROCEDURE ["StdCall"] (aptr: Windows.PVOID);
+
+ (*
+ THPDF_ErrorFunc * = PROCEDURE ["StdCall"] (HPDF_STATUS, HPDF_STATUS, Windows.PVOID);
+ THPDF_AllocFunc * = PROCEDURE ["StdCall"] (Windows.UINT);
+ THPDF_FreeFunc * = PROCEDURE ["StdCall"] (Windows.PVOID); *)
+
+PROCEDURE ["StdCall"] / HPDF_NewEx*(user_error_fn: THPDF_ErrorFunc; user_alloc_fn: THPDF_AllocFunc; user_free_fn: THPDF_FreeFunc; mem_pool_buf_size: HPDF_UINT; user_data: Windows.PVOID): HPDF_Doc;
+PROCEDURE ["StdCall"] / HPDF_New*(user_error_fn: THPDF_ErrorFunc; user_data: Windows.PVOID): HPDF_Doc;
+PROCEDURE ["StdCall"] / HPDF_SetErrorHandler*(pdf: HPDF_Doc; user_error_fn: THPDF_ErrorFunc): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Free*(pdf: HPDF_Doc);
+PROCEDURE ["StdCall"] / HPDF_NewDoc*(pdf: HPDF_Doc): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_FreeDoc*(pdf: HPDF_Doc);
+PROCEDURE ["StdCall"] / HPDF_HasDoc*(pdf: HPDF_Doc): HPDF_BOOL;
+PROCEDURE ["StdCall"] / HPDF_FreeDocAll*(pdf: HPDF_Doc);
+PROCEDURE ["StdCall"] / HPDF_SaveToStream*(pdf: HPDF_Doc): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_GetStreamSize*(pdf: HPDF_Doc): HPDF_UINT32;
+PROCEDURE ["StdCall"] / HPDF_ReadFromStream*(pdf: HPDF_Doc; buf: HPDF_PBYTE; size: HPDF_PUINT): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_ResetStream*(pdf: HPDF_Doc): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_SaveToFile*(pdf: HPDF_Doc; file_name: HPDF_PCHAR): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_GetError*(pdf: HPDF_Doc): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_ResetError*(pdf: HPDF_Doc);
+PROCEDURE ["StdCall"] / HPDF_SetPagesConfiguration*(pdf: HPDF_Doc; page_per_pages: HPDF_UINT): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_GetPageByIndex*(pdf: HPDF_Doc; index: HPDF_UINT): HPDF_Page;
+PROCEDURE ["StdCall"] / HPDF_GetPageLayout*(pdf: HPDF_Doc): THPDF_PageLayout;
+PROCEDURE ["StdCall"] / HPDF_SetPageLayout*(pdf: HPDF_Doc; layout: THPDF_PageLayout): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_GetPageMode*(pdf: HPDF_Doc): THPDF_PageMode;
+PROCEDURE ["StdCall"] / HPDF_SetPageMode*(pdf: HPDF_Doc; mode: THPDF_PageMode): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_SetOpenAction*(pdf: HPDF_Doc; open_action: HPDF_Destination): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_GetViewerPreference*(pdf: HPDF_Doc): HPDF_UINT;
+PROCEDURE ["StdCall"] / HPDF_SetViewerPreference*(pdf: HPDF_Doc; value: HPDF_UINT): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_GetCurrentPage*(pdf: HPDF_Doc): HPDF_Page;
+PROCEDURE ["StdCall"] / HPDF_AddPage*(pdf: HPDF_Doc): HPDF_Page;
+PROCEDURE ["StdCall"] / HPDF_InsertPage*(pdf: HPDF_Doc; page: HPDF_Page): HPDF_Page;
+PROCEDURE ["StdCall"] / HPDF_Page_SetWidth*(page: HPDF_Page; value: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetHeight*(page: HPDF_Page; value: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetSize*(page: HPDF_Page; size: THPDF_PageSizes; direction: THPDF_PageDirection): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetRotate*(page: HPDF_Page; angle: HPDF_UINT16): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_GetFont*(pdf: HPDF_Doc; font_name: HPDF_PCHAR; encoding_name: HPDF_PCHAR): HPDF_Font;
+PROCEDURE ["StdCall"] / HPDF_LoadType1FontFromFile*(pdf: HPDF_Doc; afmfilename: HPDF_PCHAR; pfmfilename: HPDF_PCHAR): HPDF_PCHAR;
+PROCEDURE ["StdCall"] / HPDF_LoadTTFontFromFile*(pdf: HPDF_Doc; file_name: HPDF_PCHAR; embedding: HPDF_BOOL): HPDF_PCHAR;
+PROCEDURE ["StdCall"] / HPDF_LoadTTFontFromFile2*(pdf: HPDF_Doc; file_name: HPDF_PCHAR; index: HPDF_UINT; embedding: HPDF_BOOL): HPDF_CHAR;
+PROCEDURE ["StdCall"] / HPDF_AddPageLabel*(pdf: HPDF_Doc; page_num: HPDF_UINT; style: THPDF_PageNumStyle; first_page: HPDF_UINT; prefix: HPDF_PCHAR): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_UseJPFonts*(pdf: HPDF_Doc): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_UseKRFonts*(pdf: HPDF_Doc): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_UseCNSFonts*(pdf: HPDF_Doc): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_UseCNTFonts*(pdf: HPDF_Doc): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_CreateOutline*(pdf: HPDF_Doc; parent: HPDF_Outline; title: HPDF_PCHAR; encoder: HPDF_Encoder): HPDF_Outline;
+PROCEDURE ["StdCall"] / HPDF_Outline_SetOpened*(outline: HPDF_Outline; opened: HPDF_BOOL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Outline_SetDestination*(outline: HPDF_Outline; dst: HPDF_Destination): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_CreateDestination*(page: HPDF_Page): HPDF_Destination;
+PROCEDURE ["StdCall"] / HPDF_Destination_SetXYZ*(dst: HPDF_Destination; left: HPDF_REAL; top: HPDF_REAL; zoom: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Destination_SetFit*(dst: HPDF_Destination): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Destination_SetFitH*(dst: HPDF_Destination; top: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Destination_SetFitV*(dst: HPDF_Destination; left: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Destination_SetFitR*(dst: HPDF_Destination; left: HPDF_REAL; bottom: HPDF_REAL; right: HPDF_REAL; top: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Destination_SetFitB*(dst: HPDF_Destination): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Destination_SetFitBH*(dst: HPDF_Destination; top: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Destination_SetFitBV*(dst: HPDF_Destination; left: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_GetEncoder*(pdf: HPDF_Doc; encoding_name: HPDF_PCHAR): HPDF_Encoder;
+PROCEDURE ["StdCall"] / HPDF_GetCurrentEncoder*(pdf: HPDF_Doc): HPDF_Encoder;
+PROCEDURE ["StdCall"] / HPDF_SetCurrentEncoder*(pdf: HPDF_Doc; encoding_name: HPDF_PCHAR): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Encoder_GetType*(encoder: HPDF_Encoder): THPDF_EncoderType;
+PROCEDURE ["StdCall"] / HPDF_Encoder_GetByteType*(encoder: HPDF_Encoder; text: HPDF_PCHAR; index: HPDF_UINT): THPDF_ByteType;
+PROCEDURE ["StdCall"] / HPDF_Encoder_GetUnicode*(encoder: HPDF_Encoder; code: HPDF_UINT16): HPDF_UNICODE;
+PROCEDURE ["StdCall"] / HPDF_Encoder_GetWritingMode*(encoder: HPDF_Encoder): THPDF_EncoderType;
+PROCEDURE ["StdCall"] / HPDF_UseJPEncodings*(pdf: HPDF_Doc): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_UseKREncodings*(pdf: HPDF_Doc): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_UseCNSEncodings*(pdf: HPDF_Doc): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_UseCNTEncodings*(pdf: HPDF_Doc): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_CreateTextAnnot*(page: HPDF_Page; rect: THPDF_Rect;text: HPDF_PCHAR; encoder: HPDF_Encoder): HPDF_Annotation;
+PROCEDURE ["StdCall"] / HPDF_Page_CreateLinkAnnot*(page: HPDF_Page; rect: THPDF_Rect; dst: HPDF_Destination): HPDF_Annotation;
+PROCEDURE ["StdCall"] / HPDF_Page_CreateURILinkAnnot*(page: HPDF_Page; rect: THPDF_Rect; uri: HPDF_PCHAR): HPDF_Annotation;
+PROCEDURE ["StdCall"] / HPDF_LinkAnnot_SetHighlightMode*(annot: HPDF_Annotation; mode: THPDF_AnnotHighlightMode): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_LinkAnnot_SetBorderStyle*(annot: HPDF_Annotation; width: HPDF_REAL; dash_on: HPDF_UINT16; dash_off: HPDF_UINT16): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_TextAnnot_SetIcon*(annot: HPDF_Annotation; icon: THPDF_AnnotIcon): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_TextAnnot_SetOpened*(annot: HPDF_Annotation; opened: HPDF_BOOL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_LoadPngImageFromFile*(pdf: HPDF_Doc; filename: HPDF_PCHAR): HPDF_Image;
+PROCEDURE ["StdCall"] / HPDF_LoadPngImageFromFile2*(pdf: HPDF_Doc; filename: HPDF_PCHAR): HPDF_Image;
+PROCEDURE ["StdCall"] / HPDF_LoadJpegImageFromFile*(pdf: HPDF_Doc; filename: HPDF_PCHAR): HPDF_Image;
+PROCEDURE ["StdCall"] / HPDF_LoadRawImageFromFile*(pdf: HPDF_Doc; filename: HPDF_PCHAR; width: HPDF_UINT; height: HPDF_UINT; color_space: THPDF_ColorSpace): HPDF_Image;
+PROCEDURE ["StdCall"] / HPDF_LoadRawImageFromMem*(pdf: HPDF_Doc; buf: HPDF_PBYTE; width: HPDF_UINT; height: HPDF_UINT; color_space: THPDF_ColorSpace; bits_per_component: HPDF_UINT): HPDF_Image;
+PROCEDURE ["StdCall"] / HPDF_Image_GetSize2*(image: HPDF_Image; VAR size: THPDF_Point): HPDF_STATUS;
+--PROCEDURE ["StdCall"] / HPDF_Image_GetSize*(image: HPDF_Image): THPDF_Point;
+PROCEDURE ["StdCall"] / HPDF_Image_GetWidth*(image: HPDF_Image): HPDF_UINT;
+PROCEDURE ["StdCall"] / HPDF_Image_GetHeight*(image: HPDF_Image): HPDF_UINT;
+PROCEDURE ["StdCall"] / HPDF_Image_GetBitsPerComponent*(image: HPDF_Image): HPDF_UINT;
+PROCEDURE ["StdCall"] / HPDF_Image_GetColorSpace*(image: HPDF_Image): HPDF_PCHAR;
+PROCEDURE ["StdCall"] / HPDF_Image_SetColorMask*(image: HPDF_Image; rmin: HPDF_UINT; rmax: HPDF_UINT; gmin: HPDF_UINT; gmax: HPDF_UINT; bmin: HPDF_UINT; bmax: HPDF_UINT): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Image_SetMaskImage*(image: HPDF_Image; mask_image: HPDF_Image): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_SetInfoAttr*(pdf: HPDF_Doc; info_type: THPDF_InfoType; value: HPDF_PCHAR): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_GetInfoAttr*(pdf: HPDF_Doc; info_type: THPDF_InfoType): HPDF_PCHAR;
+PROCEDURE ["StdCall"] / HPDF_SetInfoDateAttr*(pdf: HPDF_Doc; info_type: THPDF_InfoType; value: THPDF_Date): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_SetPassword*(pdf: HPDF_Doc; owner_passwd: HPDF_PCHAR; user_passwd: HPDF_PCHAR): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_SetPermission*(pdf: HPDF_Doc; permission: HPDF_UINT): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_SetEncryptionMode*(pdf: HPDF_Doc; mode: THPDF_EncryptMode; key_len: HPDF_UINT): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_SetCompressionMode*(pdf: HPDF_Doc; mode: TCompressionMode): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_TextWidth*(page: HPDF_Page; text: HPDF_PCHAR): HPDF_REAL;
+PROCEDURE ["StdCall"] / HPDF_Page_MeasureText*(page: HPDF_Page; text: HPDF_PCHAR; width: HPDF_REAL; wordwrap: HPDF_BOOL; VAR real_width: HPDF_REAL): HPDF_UINT;
+PROCEDURE ["StdCall"] / HPDF_Page_GetWidth*(page: HPDF_Page): HPDF_REAL;
+PROCEDURE ["StdCall"] / HPDF_Page_GetHeight*(page: HPDF_Page): HPDF_REAL;
+PROCEDURE ["StdCall"] / HPDF_Page_GetGMode*(page: HPDF_Page): HPDF_UINT16;
+PROCEDURE ["StdCall"] / HPDF_Page_GetCurrentPos2*(page: HPDF_Page; VAR pos: THPDF_Point): HPDF_STATUS;
+--PROCEDURE ["StdCall"] / HPDF_Page_GetCurrentPos*(page: HPDF_Page): THPDF_Point;
+PROCEDURE ["StdCall"] / HPDF_Page_GetCurrentTextPos2*(page: HPDF_Page; VAR pos: THPDF_Point): HPDF_STATUS;
+--PROCEDURE ["StdCall"] / HPDF_Page_GetCurrentTextPos*(page: HPDF_Page): THPDF_Point;
+PROCEDURE ["StdCall"] / HPDF_Page_GetCurrentFont*(page: HPDF_Page): HPDF_Font;
+PROCEDURE ["StdCall"] / HPDF_Font_GetFontName*(font: HPDF_Font): HPDF_PCHAR;
+PROCEDURE ["StdCall"] / HPDF_Font_GetEncodingName*(font: HPDF_Font): HPDF_PCHAR;
+PROCEDURE ["StdCall"] / HPDF_Font_GetUnicodeWidth*(font: HPDF_Font; code: HPDF_UNICODE): HPDF_INT;
+PROCEDURE ["StdCall"] / HPDF_Font_GetBBox*(font: HPDF_Font): THPDF_Rect;
+PROCEDURE ["StdCall"] / HPDF_Font_GetAscent*(font: HPDF_Font): HPDF_INT;
+PROCEDURE ["StdCall"] / HPDF_Font_GetDescent*(font: HPDF_Font): HPDF_INT;
+PROCEDURE ["StdCall"] / HPDF_Font_GetXHeight*(font: HPDF_Font): HPDF_UINT;
+PROCEDURE ["StdCall"] / HPDF_Font_GetCapHeight*(font: HPDF_Font): HPDF_UINT;
+PROCEDURE ["StdCall"] / HPDF_Font_TextWidth*(font: HPDF_Font; text: HPDF_PCHAR; len: HPDF_UINT): THPDF_TextWidth;
+PROCEDURE ["StdCall"] / HPDF_Font_MeasureText*(font: HPDF_Font; text: HPDF_PCHAR; len: HPDF_UINT; width: HPDF_REAL; font_size: HPDF_REAL; char_space: HPDF_REAL; word_space: HPDF_REAL; wordwrap: HPDF_BOOL; VAR real_width: HPDF_REAL) : HPDF_UINT;
+PROCEDURE ["StdCall"] / HPDF_CreateExtGState*(pdf: HPDF_Doc) : HPDF_ExtGState;
+PROCEDURE ["StdCall"] / HPDF_ExtGState_SetAlphaStroke*(ext_gstate: HPDF_ExtGState; value: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_ExtGState_SetAlphaFill*(ext_gstate: HPDF_ExtGState; value: HPDF_REAL) : HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_ExtGState_SetBlendMode*(ext_gstate: HPDF_ExtGState; mode: THPDF_BlendMode) : HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_GetCurrentFontSize*(page: HPDF_Page): HPDF_REAL;
+PROCEDURE ["StdCall"] / HPDF_Page_GetTransMatrix*(page: HPDF_Page): THPDF_TransMatrix;
+PROCEDURE ["StdCall"] / HPDF_Page_GetLineWidth*(page: HPDF_Page): HPDF_REAL;
+PROCEDURE ["StdCall"] / HPDF_Page_GetLineCap*(page: HPDF_Page): THPDF_LineCap;
+PROCEDURE ["StdCall"] / HPDF_Page_GetLineJoin*(page: HPDF_Page): THPDF_LineJoin;
+PROCEDURE ["StdCall"] / HPDF_Page_GetMiterLimit*(page: HPDF_Page): HPDF_REAL;
+PROCEDURE ["StdCall"] / HPDF_Page_GetDash*(page: HPDF_Page): THPDF_DashMode;
+PROCEDURE ["StdCall"] / HPDF_Page_GetFlat*(page: HPDF_Page): HPDF_REAL;
+PROCEDURE ["StdCall"] / HPDF_Page_GetCharSpace*(page: HPDF_Page): HPDF_REAL;
+PROCEDURE ["StdCall"] / HPDF_Page_GetWordSpace*(page: HPDF_Page): HPDF_REAL;
+PROCEDURE ["StdCall"] / HPDF_Page_GetHorizontalScalling*(page: HPDF_Page): HPDF_REAL;
+PROCEDURE ["StdCall"] / HPDF_Page_GetTextLeading*(page: HPDF_Page): HPDF_REAL;
+PROCEDURE ["StdCall"] / HPDF_Page_GetTextRenderingMode*(page: HPDF_Page): THPDF_TextRenderingMode;
+PROCEDURE ["StdCall"] / HPDF_Page_GetTextRaise*(page: HPDF_Page): HPDF_REAL;
+PROCEDURE ["StdCall"] / HPDF_Page_GetRGBFill*(page: HPDF_Page): THPDF_RGBColor;
+PROCEDURE ["StdCall"] / HPDF_Page_GetRGBStroke*(page: HPDF_Page): THPDF_RGBColor;
+PROCEDURE ["StdCall"] / HPDF_Page_GetCMYKFill*(page: HPDF_Page): THPDF_CMYKColor;
+PROCEDURE ["StdCall"] / HPDF_Page_GetCMYKStroke*(page: HPDF_Page): THPDF_CMYKColor;
+PROCEDURE ["StdCall"] / HPDF_Page_GetGrayFill*(page: HPDF_Page): HPDF_REAL;
+PROCEDURE ["StdCall"] / HPDF_Page_GetGrayStroke*(page: HPDF_Page): HPDF_REAL;
+PROCEDURE ["StdCall"] / HPDF_Page_GetStrokingColorSpace*(page: HPDF_Page): THPDF_ColorSpace;
+PROCEDURE ["StdCall"] / HPDF_Page_GetFillingColorSpace*(page: HPDF_Page): THPDF_ColorSpace;
+PROCEDURE ["StdCall"] / HPDF_Page_GetTextMatrix*(page: HPDF_Page): THPDF_TransMatrix;
+PROCEDURE ["StdCall"] / HPDF_Page_GetGStateDepth*(page: HPDF_Page): HPDF_UINT;
+PROCEDURE ["StdCall"] / HPDF_Page_SetLineWidth*(page: HPDF_Page; line_width: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetLineCap*(page: HPDF_Page; line_cap: THPDF_LineCap): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetLineJoin*(page: HPDF_Page; line_join: THPDF_LineJoin): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetMiterLimit*(page: HPDF_Page; miter_limit: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetDash*(page: HPDF_Page; ptn: HPDF_PUINT16; num_param: HPDF_UINT; phase: HPDF_UINT): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetFlat*(page: HPDF_Page; flatness: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetExtGState*(page: HPDF_Page; ext_gstate: HPDF_ExtGState): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_GSave*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_GRestore*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_Concat*(page: HPDF_Page; a: HPDF_REAL; b: HPDF_REAL; c: HPDF_REAL; d: HPDF_REAL; x: HPDF_REAL; y: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_MoveTo*(page: HPDF_Page; x: HPDF_REAL; y: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_LineTo*(page: HPDF_Page; x: HPDF_REAL; y: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_CurveTo*(page: HPDF_Page; x1: HPDF_REAL; y1: HPDF_REAL; x2: HPDF_REAL; y2: HPDF_REAL; x3: HPDF_REAL; y3: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_CurveTo2*(page: HPDF_Page; x2: HPDF_REAL; y2: HPDF_REAL; x3: HPDF_REAL; y3: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_CurveTo3*(page: HPDF_Page; x1: HPDF_REAL; y1: HPDF_REAL; x3: HPDF_REAL; y3: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_ClosePath*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_Rectangle*(page: HPDF_Page; x: HPDF_REAL; y: HPDF_REAL; width: HPDF_REAL; height: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_Stroke*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_ClosePathStroke*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_Fill*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_Eofill*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_FillStroke*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_EofillStroke*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_ClosePathFillStroke*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_ClosePathEofillStroke*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_EndPath*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_Clip*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_Eoclip*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_BeginText*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_EndText*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetCharSpace*(page: HPDF_Page; value: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetWordSpace*(page: HPDF_Page; value: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetHorizontalScalling*(page: HPDF_Page; value: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetTextLeading*(page: HPDF_Page; value: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetFontAndSize*(page: HPDF_Page; font: HPDF_Font; size: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetTextRenderingMode*(page: HPDF_Page; mode: THPDF_TextRenderingMode): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetTextRaise*(page: HPDF_Page; value: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_MoveTextPos*(page: HPDF_Page; x: HPDF_REAL; y: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_MoveTextPos2*(page: HPDF_Page; x: HPDF_REAL; y: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetTextMatrix*(page: HPDF_Page; a: HPDF_REAL; b: HPDF_REAL; c: HPDF_REAL; d: HPDF_REAL; x: HPDF_REAL; y: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_MoveToNextLine*(page: HPDF_Page): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_ShowText*(page: HPDF_Page; text: HPDF_PCHAR): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_ShowTextNextLine*(page: HPDF_Page; text: HPDF_PCHAR): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_ShowTextNextLineEx*(page: HPDF_Page; word_space: HPDF_REAL; char_space: HPDF_REAL; text: HPDF_PCHAR): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetGrayFill*(page: HPDF_Page; gray: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetGrayStroke*(page: HPDF_Page; gray: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetRGBFill*(page: HPDF_Page; r: HPDF_REAL; g: HPDF_REAL;b: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetRGBStroke*(page: HPDF_Page; r: HPDF_REAL; g: HPDF_REAL;b: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetCMYKFill*(page: HPDF_Page; c: HPDF_REAL; m: HPDF_REAL; y: HPDF_REAL; k: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetCMYKStroke*(page: HPDF_Page; c: HPDF_REAL; m: HPDF_REAL; y: HPDF_REAL; k: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_ExecuteXObject*(page: HPDF_Page; obj: HPDF_XObject): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_DrawImage*(page: HPDF_Page; image: HPDF_Image; x: HPDF_REAL; y: HPDF_REAL; width: HPDF_REAL; height: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_Circle*(page: HPDF_Page; x: HPDF_REAL; y: HPDF_REAL; ray: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_Arc*(page: HPDF_Page; x: HPDF_REAL; y: HPDF_REAL; ray: HPDF_REAL; ang1: HPDF_REAL; ang2: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_Ellipse*(page: HPDF_Page; x: HPDF_REAL; y: HPDF_REAL; xray: HPDF_REAL; yray: HPDF_REAL): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_TextOut*(page: HPDF_Page; xpos: HPDF_REAL; ypos: HPDF_REAL; text: HPDF_PCHAR): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_TextRect*(page: HPDF_Page; left: HPDF_REAL; top: HPDF_REAL; right: HPDF_REAL; bottom: HPDF_REAL; text: HPDF_PCHAR; align: THPDF_TextAlignment; len: HPDF_PUINT): HPDF_STATUS;
+PROCEDURE ["StdCall"] / HPDF_Page_SetSlideShow*(page: HPDF_Page; sstype: THPDF_TransitionStyle; disp_time: HPDF_REAL; trans_time: HPDF_REAL): HPDF_STATUS;
+
+
+PROCEDURE HPDF_Page_GetCurrentPos*(page: HPDF_Page): THPDF_Point;
+VAR
+ pos: THPDF_Point;
+BEGIN
+ HPDF_Page_GetCurrentPos2(page, pos);
+ RETURN pos;
+END HPDF_Page_GetCurrentPos;
+
+PROCEDURE HPDF_Page_GetCurrentTextPos*(page: HPDF_Page): THPDF_Point;
+VAR
+ pos: THPDF_Point;
+BEGIN
+ HPDF_Page_GetCurrentTextPos2(page, pos);
+ RETURN pos;
+END HPDF_Page_GetCurrentTextPos;
+
+PROCEDURE HPDF_Image_GetSize*(image: HPDF_Image): THPDF_Point;
+VAR
+ size: THPDF_Point;
+BEGIN
+ HPDF_Image_GetSize2(image, size);
+ RETURN size;
+END HPDF_Image_GetSize;
+
+END hpdf.
+
diff --git a/if/oberon-2/test.ob2 b/if/oberon-2/test.ob2
new file mode 100644
index 0000000..0710bdd
--- /dev/null
+++ b/if/oberon-2/test.ob2
@@ -0,0 +1,338 @@
+<*+CHANGESYM*>
+<*+M2EXTENSIONS*>
+<*+O2EXTENSIONS*>
+<*+MAIN*>
+MODULE test;
+
+IMPORT
+ Out,
+ SYSTEM,
+ w := Windows,
+ h := hpdf;
+
+PROCEDURE ["StdCall"] ErrorProc(error_no: h.HPDF_STATUS; detail_no: h.HPDF_STATUS; <*+WOFF301*>user_data: w.PVOID<*-WOFF301*>);
+BEGIN
+ Out.String("ERROR: ");
+ Out.Int(error_no, 1);
+ Out.String(" - ");
+ Out.Int(detail_no, 1);
+ Out.Ln;
+ HALT(1);
+END ErrorProc;
+
+PROCEDURE draw_line (page: h.HPDF_Page; x: h.HPDF_REAL; y: h.HPDF_REAL; text: h.HPDF_PCHAR);
+BEGIN
+ h.HPDF_Page_BeginText(page);
+ h.HPDF_Page_MoveTextPos(page, x, y - 10);
+ h.HPDF_Page_ShowText(page, text);
+ h.HPDF_Page_EndText(page);
+
+ h.HPDF_Page_MoveTo(page, x, y - 15);
+ h.HPDF_Page_LineTo(page, x + 220, y - 15);
+ h.HPDF_Page_Stroke(page);
+END draw_line;
+
+PROCEDURE draw_line2 (page: h.HPDF_Page; x: h.HPDF_REAL; y: h.HPDF_REAL; text: h.HPDF_PCHAR);
+BEGIN
+ h.HPDF_Page_BeginText(page);
+ h.HPDF_Page_MoveTextPos(page, x, y);
+ h.HPDF_Page_ShowText(page, text);
+ h.HPDF_Page_EndText(page);
+
+ h.HPDF_Page_MoveTo(page, x + 30, y - 25);
+ h.HPDF_Page_LineTo(page, x + 160, y - 25);
+ h.HPDF_Page_Stroke(page);
+END draw_line2;
+
+PROCEDURE draw_rect (page: h.HPDF_Page; x: h.HPDF_REAL; y: h.HPDF_REAL; text: h.HPDF_PCHAR);
+BEGIN
+ h.HPDF_Page_BeginText(page);
+ h.HPDF_Page_MoveTextPos(page, x, y - 10);
+ h.HPDF_Page_ShowText(page, text);
+ h.HPDF_Page_EndText(page);
+
+ h.HPDF_Page_Rectangle(page, x, y - 40, 220, 25);
+-- h.HPDF_Page_Rectangle(page, x, y - 40, 100, 100);
+END draw_rect;
+
+
+VAR
+ pdf: h.HPDF_Doc;
+ font: h.HPDF_Font;
+ page: h.HPDF_Page;
+
+ x, y,
+ x0, y0,
+ x1, y1,
+ x2, y2,
+ x3, y3,
+ tw: h.HPDF_REAL;
+ ffilename: h.HPDF_PCHAR;
+CONST
+ page_title = 'Демонстрация штрихов';
+ fname = 'LineDemo.pdf';
+
+ DASH_MODE1 = ARRAY OF h.HPDF_UINT16 {3};
+ DASH_MODE2 = ARRAY OF h.HPDF_UINT16 {7, 3};
+ DASH_MODE3 = ARRAY OF h.HPDF_UINT16 {8, 7, 2, 7};
+
+BEGIN
+ pdf := h.HPDF_New(ErrorProc, NIL);
+
+ IF pdf = NIL THEN
+ Out.String("error: cannot create PdfDoc object"); Out.Ln();
+ HALT(1);
+ END;
+
+
+ h.HPDF_SetCompressionMode(pdf, h.HPDF_COMP_ALL);
+
+ ffilename := h.HPDF_LoadTTFontFromFile(pdf, w.GetPSTR('PTS55F.ttf'), TRUE);
+ (* create default-font *)
+ font := h.HPDF_GetFont(pdf, ffilename, w.GetPSTR('CP1251'));
+ (* add a new page object. *)
+ page := h.HPDF_AddPage(pdf);
+
+ (* print the lines of the page. *)
+ h.HPDF_Page_SetLineWidth(page, 1);
+ x := h.HPDF_Page_GetWidth(page) - 100;
+ y := h.HPDF_Page_GetHeight(page) - 110;
+ h.HPDF_Page_Rectangle(page, 50, 50, x, y);
+ h.HPDF_Page_Stroke(page);
+
+ (* print the title of the page (with positioning center). *)
+ h.HPDF_Page_SetFontAndSize(page, font, 24);
+ tw := h.HPDF_Page_TextWidth(page, w.GetPSTR(page_title));
+ h.HPDF_Page_BeginText(page);
+
+ x := (h.HPDF_Page_GetWidth(page) - tw) / 2;
+ y := h.HPDF_Page_GetHeight(page) - 50;
+ h.HPDF_Page_MoveTextPos (page, x, y);
+
+ h.HPDF_Page_ShowText (page, w.GetPSTR(page_title));
+ h.HPDF_Page_EndText (page);
+
+ h.HPDF_Page_SetFontAndSize (page, font, 10);
+
+ (* Draw verious widths of lines. *)
+ h.HPDF_Page_SetLineWidth (page, 0);
+ draw_line (page, 60, 770, w.GetPSTR('толщина линии := 0'));
+
+ h.HPDF_Page_SetLineWidth (page, 1.0);
+ draw_line (page, 60, 740, w.GetPSTR('толщина линии := 1.0'));
+
+ h.HPDF_Page_SetLineWidth (page, 2.0);
+ draw_line (page, 60, 710, w.GetPSTR('толщина линии := 2.0'));
+
+ (* Line dash pattern *)
+ h.HPDF_Page_SetLineWidth (page, 1.0);
+
+ h.HPDF_Page_SetDash (page, SYSTEM.REF(DASH_MODE1), 1, 1);
+ draw_line (page, 60, 680, w.GetPSTR('dash_ptn=[3], фазы=1 -- 2 вкл, 3 выкл, 3 вкл...'));
+
+ h.HPDF_Page_SetDash (page, SYSTEM.REF(DASH_MODE2), 2, 2);
+ draw_line (page, 60, 650, w.GetPSTR('dash_ptn=[7, 3], phase=2 -- 5 вкл 3 выкл, 7 вкл,...'));
+
+ h.HPDF_Page_SetDash (page, SYSTEM.REF(DASH_MODE3), 4, 0);
+ draw_line (page, 60, 620, w.GetPSTR('dash_ptn=[8, 7, 2, 7], фазы=0'));
+
+ h.HPDF_Page_SetDash (page, NIL, 0, 0);
+
+ h.HPDF_Page_SetLineWidth (page, 30);
+ h.HPDF_Page_SetRGBStroke (page, 0.0, 0.5, 0.0);
+
+ (* Line Cap Style *)
+ h.HPDF_Page_SetLineCap (page, h.HPDF_BUTT_END);
+ draw_line2 (page, 60, 570, w.GetPSTR('PDF_BUTT_END'));
+
+ h.HPDF_Page_SetLineCap (page, h.HPDF_ROUND_END);
+ draw_line2 (page, 60, 505, w.GetPSTR('PDF_ROUND_END'));
+
+ h.HPDF_Page_SetLineCap (page, h.HPDF_PROJECTING_SCUARE_END);
+ draw_line2 (page, 60, 440, w.GetPSTR('PDF_PROJECTING_SCUARE_END'));
+
+ (* Line Join Style *)
+ h.HPDF_Page_SetLineWidth (page, 30);
+ h.HPDF_Page_SetRGBStroke (page, 0.0, 0.0, 0.5);
+
+ h.HPDF_Page_SetLineJoin (page, h.HPDF_MITER_JOIN);
+ h.HPDF_Page_MoveTo (page, 120, 300);
+ h.HPDF_Page_LineTo (page, 160, 340);
+ h.HPDF_Page_LineTo (page, 200, 300);
+ h.HPDF_Page_Stroke (page);
+
+ h.HPDF_Page_BeginText (page);
+ h.HPDF_Page_MoveTextPos (page, 60, 360);
+ h.HPDF_Page_ShowText (page, w.GetPSTR('PDF_MITER_JOIN'));
+ h.HPDF_Page_EndText (page);
+
+ h.HPDF_Page_SetLineJoin (page, h.HPDF_ROUND_JOIN);
+ h.HPDF_Page_MoveTo (page, 120, 195);
+ h.HPDF_Page_LineTo (page, 160, 235);
+ h.HPDF_Page_LineTo (page, 200, 195);
+ h.HPDF_Page_Stroke (page);
+
+ h.HPDF_Page_BeginText (page);
+ h.HPDF_Page_MoveTextPos (page, 60, 255);
+ h.HPDF_Page_ShowText (page, w.GetPSTR('PDF_ROUND_JOIN'));
+ h.HPDF_Page_EndText (page);
+
+ h.HPDF_Page_SetLineJoin (page, h.HPDF_BEVEL_JOIN);
+ h.HPDF_Page_MoveTo (page, 120, 90);
+ h.HPDF_Page_LineTo (page, 160, 130);
+ h.HPDF_Page_LineTo (page, 200, 90);
+ h.HPDF_Page_Stroke (page);
+
+ h.HPDF_Page_BeginText (page);
+ h.HPDF_Page_MoveTextPos (page, 60, 150);
+ h.HPDF_Page_ShowText (page, w.GetPSTR('PDF_BEVEL_JOIN'));
+ h.HPDF_Page_EndText (page);
+
+ (* Draw Rectangle *)
+ h.HPDF_Page_SetLineWidth (page, 2);
+ h.HPDF_Page_SetRGBStroke (page, 0, 0, 0);
+ h.HPDF_Page_SetRGBFill (page, 0.75, 0.0, 0.0);
+
+ draw_rect (page, 300, 770, w.GetPSTR('Штрих'));
+ h.HPDF_Page_Stroke (page);
+
+ draw_rect (page, 300, 720, w.GetPSTR('Заполнение'));
+ h.HPDF_Page_Fill (page);
+
+ draw_rect (page, 300, 670, w.GetPSTR('Заполнение, потом штрих'));
+ h.HPDF_Page_FillStroke (page);
+
+ (* Clip Rect *)
+ h.HPDF_Page_GSave (page); (* Save the current graphic state *)
+ draw_rect (page, 300, 620, w.GetPSTR('Прямоугольник отсечения'));
+ h.HPDF_Page_Clip (page);
+ h.HPDF_Page_Stroke (page);
+ h.HPDF_Page_SetFontAndSize (page, font, 13);
+
+ h.HPDF_Page_BeginText (page);
+ h.HPDF_Page_MoveTextPos (page, 290, 600);
+ h.HPDF_Page_SetTextLeading (page, 12);
+ h.HPDF_Page_ShowText (page, w.GetPSTR('Отсечение Отсечение Отсечение Отсечение'));
+ h.HPDF_Page_ShowTextNextLine (page, w.GetPSTR('Отсечение Отсечение Отсечение Отсечение'));
+ h.HPDF_Page_ShowTextNextLine (page, w.GetPSTR('Отсечение Отсечение Отсечение Отсечение'));
+ h.HPDF_Page_EndText (page);
+ h.HPDF_Page_GRestore (page);
+
+ x0 := 330;
+ y0 := 440;
+ x1 := 430;
+ y1 := 530;
+ x2 := 480;
+ y2 := 470;
+ x3 := 480;
+ y3 := 90;
+
+ (* Curve Example(CurveTo2) *)
+ h.HPDF_Page_SetRGBFill (page, 0, 0, 0);
+
+ h.HPDF_Page_BeginText (page);
+ h.HPDF_Page_MoveTextPos (page, 300, 540);
+ h.HPDF_Page_ShowText (page, w.GetPSTR('CurveTo2(x1, y1, x2. y2)'));
+ h.HPDF_Page_EndText (page);
+
+ h.HPDF_Page_BeginText (page);
+ h.HPDF_Page_MoveTextPos (page, x0 + 5, y0 - 5);
+ h.HPDF_Page_ShowText (page, w.GetPSTR('Текущая точка'));
+ h.HPDF_Page_MoveTextPos (page, x1 - x0, y1 - y0);
+ h.HPDF_Page_ShowText (page, w.GetPSTR('(x1, y1)'));
+ h.HPDF_Page_MoveTextPos (page, x2 - x1, y2 - y1);
+ h.HPDF_Page_ShowText (page, w.GetPSTR('(x2, y2)'));
+ h.HPDF_Page_EndText (page);
+
+ h.HPDF_Page_SetDash (page, NIL, 0, 0);
+
+ h.HPDF_Page_SetLineWidth (page, 0.5);
+ h.HPDF_Page_MoveTo (page, x1, y1);
+ h.HPDF_Page_LineTo (page, x2, y2);
+ h.HPDF_Page_Stroke (page);
+
+ h.HPDF_Page_SetDash (page, NIL, 0, 0);
+
+ h.HPDF_Page_SetLineWidth (page, 1.5);
+
+ h.HPDF_Page_MoveTo (page, x0, y0);
+ h.HPDF_Page_CurveTo2 (page, x1, y1, x2, y2);
+ h.HPDF_Page_Stroke (page);
+
+ (* Curve Example(CurveTo3) *)
+ y0 := y0 - 150;
+ y1 := y1 - 150;
+ y2 := y2 - 150;
+
+ h.HPDF_Page_BeginText (page);
+ h.HPDF_Page_MoveTextPos (page, 300, 390);
+ h.HPDF_Page_ShowText (page, w.GetPSTR('CurveTo3(x1, y1, x2. y2)'));
+ h.HPDF_Page_EndText (page);
+
+ h.HPDF_Page_BeginText (page);
+ h.HPDF_Page_MoveTextPos (page, x0 + 5, y0 - 5);
+ h.HPDF_Page_ShowText (page, w.GetPSTR('Текущая точка'));
+ h.HPDF_Page_MoveTextPos (page, x1 - x0, y1 - y0);
+ h.HPDF_Page_ShowText (page, w.GetPSTR('(x1, y1)'));
+ h.HPDF_Page_MoveTextPos (page, x2 - x1, y2 - y1);
+ h.HPDF_Page_ShowText (page, w.GetPSTR('(x2, y2)'));
+ h.HPDF_Page_EndText (page);
+
+ h.HPDF_Page_SetDash (page, SYSTEM.REF(DASH_MODE1), 1, 1);
+
+ h.HPDF_Page_SetLineWidth (page, 0.5);
+ h.HPDF_Page_MoveTo (page, x0, y0);
+ h.HPDF_Page_LineTo (page, x1, y1);
+ h.HPDF_Page_Stroke (page);
+
+ h.HPDF_Page_SetDash (page, NIL, 0, 0);
+
+ h.HPDF_Page_SetLineWidth (page, 1.5);
+ h.HPDF_Page_MoveTo (page, x0, y0);
+ h.HPDF_Page_CurveTo3 (page, x1, y1, x2, y2);
+ h.HPDF_Page_Stroke (page);
+
+ (* Curve Example(CurveTo) *)
+ y0 := y0 - 150;
+ y1 := y1 - 160;
+ y2 := y2 - 130;
+ x2 := x2 + 10;
+
+ h.HPDF_Page_BeginText (page);
+ h.HPDF_Page_MoveTextPos (page, 300, 240);
+ h.HPDF_Page_ShowText (page, w.GetPSTR('CurveTo(x1, y1, x2. y2, x3, y3)'));
+ h.HPDF_Page_EndText (page);
+
+ h.HPDF_Page_BeginText (page);
+ h.HPDF_Page_MoveTextPos (page, x0 + 5, y0 - 5);
+ h.HPDF_Page_ShowText (page, w.GetPSTR('Текущая точка'));
+ h.HPDF_Page_MoveTextPos (page, x1 - x0, y1 - y0);
+ h.HPDF_Page_ShowText (page, w.GetPSTR('(x1, y1)'));
+ h.HPDF_Page_MoveTextPos (page, x2 - x1, y2 - y1);
+ h.HPDF_Page_ShowText (page, w.GetPSTR('(x2, y2)'));
+ h.HPDF_Page_MoveTextPos (page, x3 - x2, y3 - y2);
+ h.HPDF_Page_ShowText (page, '(x3, y3)');
+ h.HPDF_Page_EndText (page);
+
+ h.HPDF_Page_SetDash (page, SYSTEM.REF(DASH_MODE1), 1, 1);
+
+ h.HPDF_Page_SetLineWidth (page, 0.5);
+ h.HPDF_Page_MoveTo (page, x0, y0);
+ h.HPDF_Page_LineTo (page, x1, y1);
+ h.HPDF_Page_Stroke (page);
+ h.HPDF_Page_MoveTo (page, x2, y2);
+ h.HPDF_Page_LineTo (page, x3, y3);
+ h.HPDF_Page_Stroke (page);
+
+ h.HPDF_Page_SetDash (page, NIL, 0, 0);
+
+ h.HPDF_Page_SetLineWidth (page, 1.5);
+ h.HPDF_Page_MoveTo (page, x0, y0);
+ h.HPDF_Page_CurveTo (page, x1, y1, x2, y2, x3, y3);
+ h.HPDF_Page_Stroke (page);
+
+ (* save the document to a file *)
+ h.HPDF_SaveToFile (pdf, w.GetPSTR(fname));
+
+
+END test.
\ No newline at end of file
diff --git a/if/oberon-2/test.prj b/if/oberon-2/test.prj
new file mode 100644
index 0000000..e2cb97c
--- /dev/null
+++ b/if/oberon-2/test.prj
@@ -0,0 +1,10 @@
+-IMPLIB+
+-CHANGESYM+
+-USEDLL+
+-GUI-
+-HEAPLIMIT=96000000
+-COMPILERHEAP=48000000
+
+!module hpdf.ob2
+!module test.ob2
+!module libhpdf.lib
\ No newline at end of file
--
2.21.1 (Apple Git-122.3)