From db15dcf12e0143e4a954e39b906239e5bc299cc0 Mon Sep 17 00:00:00 2001 From: Pritpal Bedi Date: Sun, 18 May 2008 02:24:12 +0000 Subject: [PATCH] 2008-05-17 18:45 UTC+0800 Pritpal Bedi (pritpal@vouchcac.com) + harbour/contrib/hbhpdf + harbour/contrib/hbhpdf/harupdf.c + harbour/contrib/hbhpdf/hpdf.h Initial upload of wrappers for HaruPDF Library (http://sourceforge.net/projects/libharu/). + harbour/contrib/hbhpdf/tests + harbour/contrib/hbhpdf/tests/harupdf.prg + harbour/contrib/hbhpdf/tests/harupdf.ch Test program. + harbour/contrib/hbhpdf/tests/32_32_color.dat + harbour/contrib/hbhpdf/tests/32_32_gray.dat + harbour/contrib/hbhpdf/tests/32_32_rgb.dat + harbour/contrib/hbhpdf/tests/a010013l.afm + harbour/contrib/hbhpdf/tests/a010013l.pfb + harbour/contrib/hbhpdf/tests/basn0g01.png + harbour/contrib/hbhpdf/tests/basn0g02.png + harbour/contrib/hbhpdf/tests/basn0g04.png + harbour/contrib/hbhpdf/tests/basn0g08.png + harbour/contrib/hbhpdf/tests/basn2c08.png + harbour/contrib/hbhpdf/tests/basn0g16.png + harbour/contrib/hbhpdf/tests/basn2c16.png + harbour/contrib/hbhpdf/tests/basn3p01.png + harbour/contrib/hbhpdf/tests/basn3p02.png + harbour/contrib/hbhpdf/tests/basn3p04.png + harbour/contrib/hbhpdf/tests/basn3p08.png + harbour/contrib/hbhpdf/tests/basn4a08.png + harbour/contrib/hbhpdf/tests/basn4a16.png + harbour/contrib/hbhpdf/tests/basn6a08.png + harbour/contrib/hbhpdf/tests/basn6a16.png + harbour/contrib/hbhpdf/tests/maskimage.png + harbour/contrib/hbhpdf/tests/cp932.txt + harbour/contrib/hbhpdf/tests/cp936.txt + harbour/contrib/hbhpdf/tests/elic_jp.txt + harbour/contrib/hbhpdf/tests/euc.txt + harbour/contrib/hbhpdf/tests/gray.jpg + harbour/contrib/hbhpdf/tests/rgb.jpg + harbour/contrib/hbhpdf/tests/penguinattack.ttf + harbour/contrib/hbhpdf/tests/sjis.txt Needed files to run the haruprf.prg. Files are pulled from HaruPDF library distribution. /* NOTE! this library need distribution from : http://sourceforge.net/projects/libharu/ The distribution contains libpng.lib and zlib.lib for Windows. Viktor, please put copyright notices and all other necessary batch files to build this library. */ --- harbour/ChangeLog | 49 + harbour/contrib/hbhpdf/harupdf.c | 1802 +++++++++++++++++ harbour/contrib/hbhpdf/hpdf.h | 1227 +++++++++++ harbour/contrib/hbhpdf/tests/32_32_2color.dat | Bin 0 -> 128 bytes harbour/contrib/hbhpdf/tests/32_32_gray.dat | Bin 0 -> 1024 bytes harbour/contrib/hbhpdf/tests/32_32_rgb.dat | Bin 0 -> 3072 bytes harbour/contrib/hbhpdf/tests/a010013l.afm | 1569 ++++++++++++++ harbour/contrib/hbhpdf/tests/a010013l.pfb | Bin 0 -> 69958 bytes harbour/contrib/hbhpdf/tests/basn0g01.png | Bin 0 -> 164 bytes harbour/contrib/hbhpdf/tests/basn0g02.png | Bin 0 -> 104 bytes harbour/contrib/hbhpdf/tests/basn0g04.png | Bin 0 -> 145 bytes harbour/contrib/hbhpdf/tests/basn0g08.png | Bin 0 -> 138 bytes harbour/contrib/hbhpdf/tests/basn0g16.png | Bin 0 -> 167 bytes harbour/contrib/hbhpdf/tests/basn2c08.png | Bin 0 -> 145 bytes harbour/contrib/hbhpdf/tests/basn2c16.png | Bin 0 -> 302 bytes harbour/contrib/hbhpdf/tests/basn3p01.png | Bin 0 -> 112 bytes harbour/contrib/hbhpdf/tests/basn3p02.png | Bin 0 -> 146 bytes harbour/contrib/hbhpdf/tests/basn3p04.png | Bin 0 -> 216 bytes harbour/contrib/hbhpdf/tests/basn3p08.png | Bin 0 -> 1286 bytes harbour/contrib/hbhpdf/tests/basn4a08.png | Bin 0 -> 126 bytes harbour/contrib/hbhpdf/tests/basn4a16.png | Bin 0 -> 2206 bytes harbour/contrib/hbhpdf/tests/basn6a08.png | Bin 0 -> 184 bytes harbour/contrib/hbhpdf/tests/basn6a16.png | Bin 0 -> 3435 bytes harbour/contrib/hbhpdf/tests/cp932.txt | 10 + harbour/contrib/hbhpdf/tests/cp936.txt | 10 + harbour/contrib/hbhpdf/tests/elic_jp.txt | 10 + harbour/contrib/hbhpdf/tests/euc.txt | 1 + harbour/contrib/hbhpdf/tests/gray.jpg | Bin 0 -> 27778 bytes harbour/contrib/hbhpdf/tests/harupdf.ch | 802 ++++++++ harbour/contrib/hbhpdf/tests/harupdf.prg | 1435 +++++++++++++ harbour/contrib/hbhpdf/tests/maskimage.png | Bin 0 -> 149 bytes .../contrib/hbhpdf/tests/penguinattack.ttf | Bin 0 -> 70356 bytes harbour/contrib/hbhpdf/tests/rgb.jpg | Bin 0 -> 32651 bytes harbour/contrib/hbhpdf/tests/sjis.txt | 1 + 34 files changed, 6916 insertions(+) create mode 100644 harbour/contrib/hbhpdf/harupdf.c create mode 100644 harbour/contrib/hbhpdf/hpdf.h create mode 100644 harbour/contrib/hbhpdf/tests/32_32_2color.dat create mode 100644 harbour/contrib/hbhpdf/tests/32_32_gray.dat create mode 100644 harbour/contrib/hbhpdf/tests/32_32_rgb.dat create mode 100644 harbour/contrib/hbhpdf/tests/a010013l.afm create mode 100644 harbour/contrib/hbhpdf/tests/a010013l.pfb create mode 100644 harbour/contrib/hbhpdf/tests/basn0g01.png create mode 100644 harbour/contrib/hbhpdf/tests/basn0g02.png create mode 100644 harbour/contrib/hbhpdf/tests/basn0g04.png create mode 100644 harbour/contrib/hbhpdf/tests/basn0g08.png create mode 100644 harbour/contrib/hbhpdf/tests/basn0g16.png create mode 100644 harbour/contrib/hbhpdf/tests/basn2c08.png create mode 100644 harbour/contrib/hbhpdf/tests/basn2c16.png create mode 100644 harbour/contrib/hbhpdf/tests/basn3p01.png create mode 100644 harbour/contrib/hbhpdf/tests/basn3p02.png create mode 100644 harbour/contrib/hbhpdf/tests/basn3p04.png create mode 100644 harbour/contrib/hbhpdf/tests/basn3p08.png create mode 100644 harbour/contrib/hbhpdf/tests/basn4a08.png create mode 100644 harbour/contrib/hbhpdf/tests/basn4a16.png create mode 100644 harbour/contrib/hbhpdf/tests/basn6a08.png create mode 100644 harbour/contrib/hbhpdf/tests/basn6a16.png create mode 100644 harbour/contrib/hbhpdf/tests/cp932.txt create mode 100644 harbour/contrib/hbhpdf/tests/cp936.txt create mode 100644 harbour/contrib/hbhpdf/tests/elic_jp.txt create mode 100644 harbour/contrib/hbhpdf/tests/euc.txt create mode 100644 harbour/contrib/hbhpdf/tests/gray.jpg create mode 100644 harbour/contrib/hbhpdf/tests/harupdf.ch create mode 100644 harbour/contrib/hbhpdf/tests/harupdf.prg create mode 100644 harbour/contrib/hbhpdf/tests/maskimage.png create mode 100644 harbour/contrib/hbhpdf/tests/penguinattack.ttf create mode 100644 harbour/contrib/hbhpdf/tests/rgb.jpg create mode 100644 harbour/contrib/hbhpdf/tests/sjis.txt diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 3e1b645f5a..d088a496a4 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,55 @@ 2008-12-31 13:59 UTC+0100 Foo Bar */ +2008-05-17 18:45 UTC+0800 Pritpal Bedi (pritpal@vouchcac.com) + + harbour/contrib/hbhpdf + + harbour/contrib/hbhpdf/harupdf.c + + harbour/contrib/hbhpdf/hpdf.h + Initial upload of wrappers for HaruPDF Library (http://sourceforge.net/projects/libharu/). + + harbour/contrib/hbhpdf/tests + + harbour/contrib/hbhpdf/tests/harupdf.prg + + harbour/contrib/hbhpdf/tests/harupdf.ch + Test program. + + harbour/contrib/hbhpdf/tests/32_32_color.dat + + harbour/contrib/hbhpdf/tests/32_32_gray.dat + + harbour/contrib/hbhpdf/tests/32_32_rgb.dat + + harbour/contrib/hbhpdf/tests/a010013l.afm + + harbour/contrib/hbhpdf/tests/a010013l.pfb + + harbour/contrib/hbhpdf/tests/basn0g01.png + + harbour/contrib/hbhpdf/tests/basn0g02.png + + harbour/contrib/hbhpdf/tests/basn0g04.png + + harbour/contrib/hbhpdf/tests/basn0g08.png + + harbour/contrib/hbhpdf/tests/basn2c08.png + + harbour/contrib/hbhpdf/tests/basn0g16.png + + harbour/contrib/hbhpdf/tests/basn2c16.png + + harbour/contrib/hbhpdf/tests/basn3p01.png + + harbour/contrib/hbhpdf/tests/basn3p02.png + + harbour/contrib/hbhpdf/tests/basn3p04.png + + harbour/contrib/hbhpdf/tests/basn3p08.png + + harbour/contrib/hbhpdf/tests/basn4a08.png + + harbour/contrib/hbhpdf/tests/basn4a16.png + + harbour/contrib/hbhpdf/tests/basn6a08.png + + harbour/contrib/hbhpdf/tests/basn6a16.png + + harbour/contrib/hbhpdf/tests/maskimage.png + + harbour/contrib/hbhpdf/tests/cp932.txt + + harbour/contrib/hbhpdf/tests/cp936.txt + + harbour/contrib/hbhpdf/tests/elic_jp.txt + + harbour/contrib/hbhpdf/tests/euc.txt + + harbour/contrib/hbhpdf/tests/gray.jpg + + harbour/contrib/hbhpdf/tests/rgb.jpg + + harbour/contrib/hbhpdf/tests/penguinattack.ttf + + harbour/contrib/hbhpdf/tests/sjis.txt + Needed files to run the haruprf.prg. Files are pulled from HaruPDF library distribution. + + /* + NOTE! this library need distribution from : + http://sourceforge.net/projects/libharu/ + The distribution contains libpng.lib and zlib.lib for Windows. + + Viktor, please put copyright notices and all other necessary batch files + to build this library. + */ + 2008-05-17 15:16 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/pp/hbppgen.c * cleaned code used to locate ChangeLog file diff --git a/harbour/contrib/hbhpdf/harupdf.c b/harbour/contrib/hbhpdf/harupdf.c new file mode 100644 index 0000000000..e620b57c02 --- /dev/null +++ b/harbour/contrib/hbhpdf/harupdf.c @@ -0,0 +1,1802 @@ +/* + * $Id$ + */ +/* + * Copyright 2008 Pritpal Bedi + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option ) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/ ). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// +// HaruLib (x)Harbour Wrappers +// . +// http://sourceforge.net/projects/libharu/ +// +// Pritpal Bedi +// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// (x)Harbour headers +// +#include "hbapi.h" +#include "hbapiitm.h" + +// harupdf header +// +#include "hpdf.h" +//----------------------------------------------------------------------// +/* + Most of the functions return hStatus == HPDF_OK or ERROR Code +*/ +//----------------------------------------------------------------------// +// HPdf_New() -> hDoc +// +HB_FUNC( HPDF_NEW ) +{ + hb_retnl( (long) HPDF_New( NULL, NULL ) ); +} +//----------------------------------------------------------------------// +// HPdf_Free( hDoc ) -> NIL +// +HB_FUNC( HPDF_FREE ) +{ + HPDF_Free( (HPDF_Doc) hb_parnl( 1 ) ); +} +//----------------------------------------------------------------------// +// HPdf_NewDoc( hDoc ) -> hStatus +// +HB_FUNC( HPDF_NEWDOC ) +{ + hb_retnl( (long) HPDF_NewDoc( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_FreeDoc( hNewDoc ) -> NIL +// +HB_FUNC( HPDF_FREEDOC ) +{ + HPDF_FreeDoc( (HPDF_Doc) hb_parnl( 1 ) ); +} +//----------------------------------------------------------------------// +// HPdf_FreeDocAll() -> NIL +// +HB_FUNC( HPDF_FREEDOCALL ) +{ + HPDF_FreeDocAll( (HPDF_Doc) hb_parnl( 1 ) ); +} +//----------------------------------------------------------------------// +// HPdf_SaveToFile( hDoc, cFileToSave ) -> hStatus +// +HB_FUNC( HPDF_SAVETOFILE ) +{ + hb_retnl( (long) HPDF_SaveToFile( (HPDF_Doc) hb_parnl( 1 ), hb_parc( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_SaveToStream( hDoc ) -> hStatus +// +HB_FUNC( HPDF_SAVETOSTREAM ) +{ + hb_retnl( (long) HPDF_SaveToStream( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_GetStreamSize( hDoc ) -> nSize +// +HB_FUNC( HPDF_GETSTREAMSIZE ) +{ + hb_retnl( (long) HPDF_GetStreamSize( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_ReadFromStream( hDoc, @cBuffer ) -> nBytesRead +// +HB_FUNC( HPDF_READFROMSTREAM ) +{ + HPDF_UINT32 size = strlen( hb_parc( 2 ) ); + HPDF_ReadFromStream( (HPDF_Doc) hb_parnl( 1 ), hb_parc( 2 ), &size ); + hb_retnl( size ); +} +//----------------------------------------------------------------------// +// HPdf_ResetStream( hDoc ) -> hStatus +// +HB_FUNC( HPDF_RESETSTREAM ) +{ + hb_retnl( (long) HPDF_ResetStream( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_HasDoc( hDoc ) -> lHasDoc +// +HB_FUNC( HPDF_HASDOC ) +{ + hb_retl( HPDF_HasDoc( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_SetErrorHandler( hDoc, procErrHandler ) -> hStatus +// +HB_FUNC( HPDF_SETERRORHANDLER ) +{ + hb_retnl( (long) HPDF_SetErrorHandler( (HPDF_Doc) hb_parnl( 1 ), (HPDF_Error_Handler) hb_parnl( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_GetError( hDoc ) -> nErrorCode +// +HB_FUNC( HPDF_GETERROR ) +{ + hb_retnl( (long) HPDF_GetError( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_ResetError( hDoc ) -> NIL +// +HB_FUNC( HPDF_RESETERROR ) +{ + HPDF_ResetError( (HPDF_Doc) hb_parnl( 1 ) ); +} +//----------------------------------------------------------------------// +// HPdf_SetPagesConfiguration( hDoc, nPagePerPages ) -> hStatus +// +HB_FUNC( HPDF_SETPAGESCONFIGURATION ) +{ + hb_retnl( (long) HPDF_SetPagesConfiguration( (HPDF_Doc) hb_parnl( 1 ), hb_parni( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_SetPageLayout( hDoc, nLayout ) -> hStatus +// nLayout == +// 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 +// +HB_FUNC( HPDF_SETPAGELAYOUT ) +{ + hb_retnl( (long) HPDF_SetPageLayout( (HPDF_Doc) hb_parnl( 1 ), hb_parni( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_GetPageLayout( hDoc ) -> nLayout +// +HB_FUNC( HPDF_GETPAGELAYOUT ) +{ + hb_retni( (long) HPDF_GetPageLayout( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_SetPageMode( hDoc, nPageMode ) -> hStatus +// nPageMode == +// HPDF_PAGE_MODE_USE_NONE 0 Display the document with neither outline nor thumbnail. +// HPDF_PAGE_MODE_USE_OUTLINE 1 Display the document with outline pane. +// HPDF_PAGE_MODE_USE_THUMBS 2 Display the document with thumbnail pane. +// HPDF_PAGE_MODE_FULL_SCREEN 3 Display the document with full screen mode. +// HPDF_PAGE_MODE_EOF 4 +// +HB_FUNC( HPDF_SETPAGEMODE ) +{ + hb_retnl( (long) HPDF_SetPageMode( (HPDF_Doc) hb_parnl( 1 ), hb_parni( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_GetPageMode( hDoc ) -> nPageMode +// +HB_FUNC( HPDF_GETPAGEMODE ) +{ + hb_retni( (long) HPDF_GetPageMode( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_SetOpenAction( hDoc, hDestn ) -> hStatus +// +HB_FUNC( HPDF_SETOPENACTION ) +{ + hb_retnl( (long) HPDF_SetOpenAction( (HPDF_Doc) hb_parnl( 1 ), (HPDF_Destination) hb_parnl( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_GetCurrentPage( hDoc ) -> hPage +// +HB_FUNC( HPDF_GETCURRENTPAGE ) +{ + hb_retnl( (long) HPDF_GetCurrentPage( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_AddPage( hDoc ) -> hPage +// +HB_FUNC( HPDF_ADDPAGE ) +{ + hb_retnl( (long) HPDF_AddPage( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_InsertPage( hDoc, hPage ) -> hPageInserted : Just before hPage +// +HB_FUNC( HPDF_INSERTPAGE ) +{ + hb_retnl( (long) HPDF_InsertPage( (HPDF_Doc) hb_parnl( 1 ), (HPDF_Page)hb_parnl( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_GetFont( hDoc, cFontName, cEncoding ) -> hFont +// +HB_FUNC( HPDF_GETFONT ) +{ + hb_retnl( (long) HPDF_GetFont( (HPDF_Doc) hb_parnl( 1 ), hb_parc( 2 ), hb_parc( 3 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_LoadTypeIFontFromFile( hDoc, cAFMFileName, cPFA_PFBFileName ) -> cFontName +// +HB_FUNC( HPDF_LOADTYPE1FONTFROMFILE ) +{ + hb_retc( HPDF_LoadType1FontFromFile( (HPDF_Doc) hb_parnl( 1 ), hb_parc( 2 ), hb_parc( 3 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_LoadTTFontFromFile( hDoc, cTTFontFileName, lEmbed ) -> cFontName +// +HB_FUNC( HPDF_LOADTTFONTFROMFILE ) +{ + hb_retc( HPDF_LoadTTFontFromFile( (HPDF_Doc) hb_parnl( 1 ), hb_parc( 2 ), hb_parl( 3 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_LoadTTFontFromFile2( hDoc, cTTFontFileName, nIndexInFile, lEmbed ) -> cFontName +// +HB_FUNC( HPDF_LOADTTFONTFROMFILE2 ) +{ + hb_retc( HPDF_LoadTTFontFromFile2( (HPDF_Doc) hb_parnl( 1 ), hb_parc( 2 ), hb_parni( 3 ), hb_parl( 4 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_AddPageLabel( hDoc, nPageNum, nPgNoStyle, nFirstPageInRange, cPrefixToLabel ) -> hStatus +// nPgNoStyle +// HPDF_PAGE_NUM_STYLE_DECIMAL 1 Page label is displayed by Arabic numerals. +// HPDF_PAGE_NUM_STYLE_UPPER_ROMAN 2 Page label is displayed by Uppercase roman numerals. +// HPDF_PAGE_NUM_STYLE_LOWER_ROMAN 3 Page label is displayed by Lowercase roman numerals. +// HPDF_PAGE_NUM_STYLE_UPPER_LETTERS 4 Page label is displayed by Uppercase letters (using A to Z). +// HPDF_PAGE_NUM_STYLE_LOWER_LETTERS 5 Page label is displayed by Lowercase letters (using a to z). +// +HB_FUNC( HPDF_ADDPAGELABEL ) +{ + hb_retnl( (long) HPDF_AddPageLabel( (HPDF_Doc) hb_parni( 1 ), hb_parni( 2 ), hb_parni( 3 ), hb_parni( 4 ), hb_parc( 5 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_UseJPFonts( hDoc ) -> hSttaus +// +HB_FUNC( HPDF_USEJPFONTS ) +{ + hb_retnl( (long) HPDF_UseJPFonts( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_UseKRFonts( hDoc ) -> hSttaus +// +HB_FUNC( HPDF_USEKRFONTS ) +{ + hb_retnl( (long) HPDF_UseKRFonts( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_UseCNSFonts( hDoc ) -> hStatus +// +HB_FUNC( HPDF_USECNSFONTS ) +{ + hb_retnl( (long) HPDF_UseCNSFonts( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_UseCNTFonts( hDoc ) -> hStatus +// +HB_FUNC( HPDF_USECNTFONTS ) +{ + hb_retnl( (long) HPDF_UseCNTFonts( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_CreateExtGState( hDoc ) -> hExtGState +// +HB_FUNC( HPDF_CREATEEXTGSTATE ) +{ + hb_retnl( (long) HPDF_CreateExtGState( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_CreateOutline( hDoc, hParentOutline, cTitle, hEncoder ) -> hOutline +// +HB_FUNC( HPDF_CREATEOUTLINE ) +{ + hb_retnl( (long) HPDF_CreateOutline( (HPDF_Doc) hb_parnl( 1 ),(HPDF_Outline) hb_parnl( 2 ), hb_parc( 3 ), (HPDF_Encoder) hb_parnl( 4 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_GetEncoder( hDoc, cEncoding ) -> hEncoder +// +HB_FUNC( HPDF_GETENCODER ) +{ + hb_retnl( (long) HPDF_GetEncoder( (HPDF_Doc) hb_parnl( 1 ), hb_parc( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_GetCurrentEncoder( hDoc ) -> hEncoder +// +HB_FUNC( HPDF_GETCURRENTENCODER ) +{ + hb_retnl( (long) HPDF_GetCurrentEncoder( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_SetCurrentEncoder( hDoc, hEncoder ) -> hOutline +// +HB_FUNC( HPDF_SETCURRENTENCODER ) +{ + hb_retnl( (long) HPDF_SetCurrentEncoder( (HPDF_Doc) hb_parnl( 1 ), hb_parc( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_UseJPEncodings( hDoc ) -> hStatus +// +HB_FUNC( HPDF_USEJPENCODINGS ) +{ + hb_retnl( (long) HPDF_UseJPEncodings( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_UseKREncodings( hDoc ) -> hStatus +// +HB_FUNC( HPDF_USEKRENCODINGS ) +{ + hb_retnl( (long) HPDF_UseKREncodings( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_UseCNSEncodings( hDoc ) -> hStatus +// +HB_FUNC( HPDF_USECNSENCODINGS ) +{ + hb_retnl( (long) HPDF_UseCNSEncodings( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_UseCNTEncodings( hDoc ) -> hStatus +// +HB_FUNC( HPDF_USECNTENCODINGS ) +{ + hb_retnl( (long) HPDF_UseCNTEncodings( (HPDF_Doc) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_LoadPngImageFromFile( hDoc, cPNGFileName ) -> hImage +// +HB_FUNC( HPDF_LOADPNGIMAGEFROMFILE ) +{ + hb_retnl( (long) HPDF_LoadPngImageFromFile( (HPDF_Doc) hb_parnl( 1 ), hb_parc( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_LoadPngImageFromFile2( hDoc, cPNGFileName ) -> hImage +// +HB_FUNC( HPDF_LOADPNGIMAGEFROMFILE2 ) +{ + hb_retnl( (long) HPDF_LoadPngImageFromFile2( (HPDF_Doc) hb_parnl( 1 ), hb_parc( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_LoadRawImageFromFile( hDoc, cImageFileName, nWidth, nHeight, nColorSpace ) -> hImage +// nColorSpace +// HPDF_CS_DEVICE_GRAY +// HPDF_CS_DEVICE_RGB +// HPDF_CS_DEVICE_CMYK +// +HB_FUNC( HPDF_LOADRAWIMAGEFROMFILE ) +{ + hb_retnl( (long) HPDF_LoadRawImageFromFile( (HPDF_Doc) hb_parnl( 1 ), hb_parc( 2 ), hb_parni( 3 ), hb_parni( 4 ), (HPDF_ColorSpace) hb_parni( 5 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_LoadRawImageFromMem( hDoc, cBuffer, nWidth, nHeight, nColorSpace, nBitsPerComponents ) -> hImage +// +HB_FUNC( HPDF_LOADRAWIMAGEFROMMEM ) +{ + hb_retnl( (long) HPDF_LoadRawImageFromMem( (HPDF_Doc) hb_parnl( 1 ), hb_parc( 2 ), hb_parni( 3 ), hb_parni( 4 ), (HPDF_ColorSpace) hb_parni( 5 ), hb_parni( 6 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_LoadJPEGImageFromFile( hDoc, cHPEGFileName ) -> hImage +// +HB_FUNC( HPDF_LOADJPEGIMAGEFROMFILE ) +{ + hb_retnl( (long) HPDF_LoadJpegImageFromFile( (HPDF_Doc) hb_parnl( 1 ), hb_parc( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_SetInfoAttr( hDoc, nInfoType, cInfo ) -> hSttaus +// nInfoType == +// HPDF_INFO_AUTHOR +// HPDF_INFO_CREATOR +// HPDF_INFO_TITLE +// HPDF_INFO_SUBJECT +// HPDF_INFO_KEYWORDS +// +HB_FUNC( HPDF_SETINFOATTR ) +{ + hb_retnl( (long) HPDF_SetInfoAttr( (HPDF_Doc) hb_parnl( 1 ), hb_parni( 2 ), hb_parc( 3 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_GetInfoAttr( hDoc, nInfoType ) -> cInfo +// +HB_FUNC( HPDF_GETINFOATTR ) +{ + hb_retc( HPDF_GetInfoAttr( (HPDF_Doc) hb_parnl( 1 ), hb_parni( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_SetInfoDateAttr( hDoc, nInfoType, aDateValues ) -> hStatus +// nInfoType == +// HPDF_INFO_CREATION_DATE +// HPDF_INFO_MOD_DATE +// +HB_FUNC( HPDF_SETINFODATEATTR ) +{ + HPDF_Date date; + + date.year = hb_parni( 2,1 ); + date.month = hb_parni( 2,2 ); + date.day = hb_parni( 2,3 ); + date.hour = hb_parni( 2,4 ); + date.minutes = hb_parni( 2,5 ); + date.seconds = hb_parni( 2,6 ); + + hb_retnl( (long) HPDF_SetInfoDateAttr( (HPDF_Doc) hb_parnl( 1 ), hb_parni( 2 ), date ) ); +} +//----------------------------------------------------------------------// +// HPdf_SetPassword( hDoc, cOwnerPassword = NO NIL, cUserPassword = CANBE NIL ) -> hStatus +// +HB_FUNC( HPDF_SETPASSWORD ) +{ + hb_retnl( (long) HPDF_SetPassword( (HPDF_Doc) hb_parnl( 1 ), hb_parc( 2 ), hb_parc( 3 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_SetPermission( hDoc, nPermission ) -> hStatus +// nPermission == +// HPDF_ENABLE_READ 1 user can read the document. +// HPDF_ENABLE_PRINT 2 user can print the document. +// HPDF_ENABLE_EDIT_ALL 3 user can edit the contents of the document other than annotations, form fields. +// HPDF_ENABLE_COPY 4 user can copy the text and the graphics of the document. +// HPDF_ENABLE_EDIT 5 user can add or modify the annotations and form fields of the document. +// +HB_FUNC( HPDF_SETPERMISSION ) +{ + hb_retnl( (long) HPDF_SetPermission( (HPDF_Doc) hb_parnl( 1 ), hb_parni( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_SetEncryptionMode( hDoc, nEncMode, nKeyLen ) -> hSttaus +// nEncMode == +// HPDF_ENCRYPT_R2 1 Use "Revision 2" algorithm. +// The length of key is automatically set to 5(40bit). +// HPDF_ENCRYPT_R3 2 Use "Revision 3" algorithm. +// Between 5(40bit) and 16(128bit) can be specified for length of the key +// +HB_FUNC( HPDF_SETENCRYPTIONMODE ) +{ + hb_retnl( (long) HPDF_SetEncryptionMode( (HPDF_Doc) hb_parnl( 1 ), hb_parni( 2 ), hb_parni( 3 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_SetCompressionMode( hDoc, nCompMode ) -> hStatus +// nCompMode == +// HPDF_COMP_NONE 1 All contents are not compressed. +// HPDF_COMP_TEXT 2 Compress the contents stream of the page. +// HPDF_COMP_IMAGE 3 Compress the streams of the image objects. +// HPDF_COMP_METADATA 4 Other stream datas (fonts, cmaps and so on) are compressed. +// HPDF_COMP_ALL 5 All stream datas are compressed. (The same as "HPDF_COMP_TEXT | HPDF_COMP_IMAGE | HPDF_COMP_METADATA") +// +HB_FUNC( HPDF_SETCOMPRESSIONMODE ) +{ + hb_retnl( (long) HPDF_SetCompressionMode( (HPDF_Doc) hb_parnl( 1 ), hb_parni( 2 ) ) ); +} +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// Page Handelling +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// HPdf_Page_SetWidth( hPage, nWidth ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETWIDTH ) +{ + hb_retnl( (long) HPDF_Page_SetWidth( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_SetHeight( hPage, nHeight ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETHEIGHT ) +{ + hb_retnl( (long) HPDF_Page_SetHeight( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_SetSize( hPage, nSize, nOrientation = 1 Portrait, 2 Landscape ) -> hStatis +// nSize == +// HPDF_PAGE_SIZE_LETTER 1 8ス x 11 (Inches) 612 x 792 +// HPDF_PAGE_SIZE_LEGAL 2 8ス x 14 (Inches) 612 x 1008 +// HPDF_PAGE_SIZE_A3 3 297 ラ 420 (mm) 841.89 x 1199.551 +// HPDF_PAGE_SIZE_A4 4 210 ラ 297 (mm) 595.276 x 841.89 +// HPDF_PAGE_SIZE_A5 5 148 ラ 210 (mm) 419.528 x 595.276 +// HPDF_PAGE_SIZE_B4 6 250 ラ 353 (mm) 708.661 x 1000.63 +// HPDF_PAGE_SIZE_B5 7 176 ラ 250 (mm) 498.898 x 708.661 +// HPDF_PAGE_SIZE_EXECUTIVE 8 7ス x 10ス (Inches) 522 x 756 +// HPDF_PAGE_SIZE_US4x6 9 4 x 6 (Inches) 288 x 432 +// HPDF_PAGE_SIZE_US4x8 10 4 x 8 (Inches) 288 x 576 +// HPDF_PAGE_SIZE_US5x7 11 5 x 7 (Inches) 360 x 504 +// HPDF_PAGE_SIZE_COMM10 12 4.125 x 9.5 (Inches) 297x 684 +// +HB_FUNC( HPDF_PAGE_SETSIZE ) +{ + hb_retnl( (long) HPDF_Page_SetSize( (HPDF_Page) hb_parnl( 1 ), hb_parni( 2 ), hb_parni( 3 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_SetRotate( hPage, nAngle = 0-360 ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETROTATE ) +{ + hb_retnl( (long) HPDF_Page_SetRotate( (HPDF_Page) hb_parnl( 1 ), hb_parni( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetWidth( hPage ) -> nWidth +// +HB_FUNC( HPDF_PAGE_GETWIDTH ) +{ + hb_retnd( (long) HPDF_Page_GetWidth( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetHeight( hPage ) -> nHeight +// +HB_FUNC( HPDF_PAGE_GETHEIGHT ) +{ + hb_retnd( (long) HPDF_Page_GetHeight( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_CreateDestination( hPage ) -> hDestn +// +HB_FUNC( HPDF_PAGE_CREATEDESTINATION ) +{ + hb_retnl( (long) HPDF_Page_CreateDestination( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_CreateAnnot( hPage, aRect[nLeft,nTop,nRight,nBottom], cText, cEncoder ) -> hStatus +// +HB_FUNC( HPDF_PAGE_CREATETEXTANNOT ) +{ + HPDF_Rect rc; + + rc.left = hb_parnl( 2,1 ); + rc.top = hb_parnl( 2,2 ); + rc.right = hb_parnl( 2,3 ); + rc.bottom = hb_parnl( 2,4 ); + + hb_retnl( (long) HPDF_Page_CreateTextAnnot( (HPDF_Page) hb_parnl( 1 ), rc, hb_parc( 3 ), (HPDF_Encoder) hb_parnl( 4 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_CreateLinkAnnot( hPage, aRect, hDestn) -> hStatus +// +HB_FUNC( HPDF_PAGE_CREATELINKANNOT ) +{ + HPDF_Rect rc; + + rc.left = hb_parnl( 2,1 ); + rc.top = hb_parnl( 2,2 ); + rc.right = hb_parnl( 2,3 ); + rc.bottom = hb_parnl( 2,4 ); + + hb_retnl( (long) HPDF_Page_CreateLinkAnnot( (HPDF_Page) hb_parnl( 1 ), rc, (HPDF_Destination) hb_parnl( 3 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_CreateURILinkAnnot( hPage, aRect, cURI ) -> hStatus +// +HB_FUNC( HPDF_PAGE_CREATEURILINKANNOT ) +{ + HPDF_Rect rc; + + rc.left = hb_parnl( 2,1 ); + rc.top = hb_parnl( 2,2 ); + rc.right = hb_parnl( 2,3 ); + rc.bottom = hb_parnl( 2,4 ); + + hb_retnl( (long) HPDF_Page_CreateURILinkAnnot( (HPDF_Page) hb_parnl( 1 ), rc, hb_parc( 3 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_TextWidth( hPage, cText ) -> nTextWidth +// +HB_FUNC( HPDF_PAGE_TEXTWIDTH ) +{ + hb_retnl( (long) HPDF_Page_TextWidth( (HPDF_Page) hb_parnl( 1 ), hb_parc( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_MeasureText( hPage, cText, nWidth, lWordWrap ) -> nByteLenOfTextToFitWidth +// +HB_FUNC( HPDF_PAGE_MEASURETEXT ) +{ + hb_retnl( (long) HPDF_Page_MeasureText( (HPDF_Page) hb_parnl( 1 ), hb_parc( 2 ), hb_parnd( 3 ), hb_parl( 4 ), NULL ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetMode( hPage ) -> nGraphicMode +// +HB_FUNC( HPDF_PAGE_GETGMODE ) +{ + hb_retnl( (long) HPDF_Page_GetGMode( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetCurrentPos( hPage ) -> aCurPos[ nX, nY ] +// +HB_FUNC( HPDF_PAGE_GETCURRENTPOS ) +{ + HPDF_Point pt; + PHB_ITEM info = hb_itemArrayNew( 2 ); + PHB_ITEM temp = hb_itemNew( NULL ); + + pt = HPDF_Page_GetCurrentPos( (HPDF_Page) hb_parnl( 1 ) ); + + hb_arraySet( info, 1, hb_itemPutNI( temp, pt.x ) ); + hb_arraySet( info, 2, hb_itemPutNI( temp, pt.y ) ); + + hb_itemRelease( temp ); + hb_itemReturn( info ); + hb_itemRelease( info ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetCurrentTextPos( hPage ) -> aCurTextPos[ nX, nY ] +// +HB_FUNC( HPDF_PAGE_GETCURRENTTEXTPOS ) +{ + HPDF_Point pt; + PHB_ITEM info = hb_itemArrayNew( 2 ); + PHB_ITEM temp = hb_itemNew( NULL ); + + pt = HPDF_Page_GetCurrentTextPos( (HPDF_Page) hb_parnl( 1 ) ); + + hb_arraySet( info, 1, hb_itemPutNI( temp, pt.x ) ); + hb_arraySet( info, 2, hb_itemPutNI( temp, pt.y ) ); + + hb_itemRelease( temp ); + hb_itemReturn( info ); + hb_itemRelease( info ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetCurrentFont( hPage ) -> hFont +// +HB_FUNC( HPDF_PAGE_GETCURRENTFONT ) +{ + hb_retnl( (long) HPDF_Page_GetCurrentFont( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetCurrentFontSize( hPage ) -> nFontSize +// +HB_FUNC( HPDF_PAGE_GETCURRENTFONTSIZE ) +{ + hb_retnd( (long) HPDF_Page_GetCurrentFontSize( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetTransMatrix( hPage ) -> aMatrix[ ] +// +HB_FUNC( HPDF_PAGE_GETTRANSMATRIX ) +{ + HPDF_TransMatrix matrix; + PHB_ITEM info = hb_itemArrayNew( 6 ); + PHB_ITEM temp = hb_itemNew( NULL ); + + matrix = HPDF_Page_GetTransMatrix( (HPDF_Page) hb_parnl( 1 ) ) ; + + hb_arraySet( info, 1, hb_itemPutND( temp, matrix.a ) ); + hb_arraySet( info, 2, hb_itemPutND( temp, matrix.b ) ); + hb_arraySet( info, 3, hb_itemPutND( temp, matrix.c ) ); + hb_arraySet( info, 4, hb_itemPutND( temp, matrix.d ) ); + hb_arraySet( info, 5, hb_itemPutND( temp, matrix.x ) ); + hb_arraySet( info, 6, hb_itemPutND( temp, matrix.y ) ); + + hb_itemRelease( temp ); + hb_itemReturn( info ); + hb_itemRelease( info ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetLineWidth( hPage ) -> nLineWidth +// +HB_FUNC( HPDF_PAGE_GETLINEWIDTH ) +{ + hb_retnd( (long) HPDF_Page_GetLineWidth( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetLineCap( hPage ) -> nLineCapStyle +// +HB_FUNC( HPDF_PAGE_GETLINECAP ) +{ + hb_retnl( (long) HPDF_Page_GetLineCap( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetLineJoin( hPage ) -> nLineJoinStyle +// +HB_FUNC( HPDF_PAGE_GETLINEJOIN ) +{ + hb_retnl( (long) HPDF_Page_GetLineJoin( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetMiterLimit( hPage ) -> nMiterLimit +// +HB_FUNC( HPDF_PAGE_GETMITERLIMIT ) +{ + hb_retnl( (long) HPDF_Page_GetMiterLimit( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetDash( hPage ) -> aDash +// +HB_FUNC( HPDF_PAGE_GETDASH ) +{ + HPDF_DashMode dash; + PHB_ITEM info = hb_itemArrayNew( 10 ); + PHB_ITEM temp = hb_itemNew( NULL ); + + dash = HPDF_Page_GetDash( (HPDF_Page) hb_parnl( 1 ) ); + + hb_arraySet( info, 1, hb_itemPutNI( temp, dash.ptn[0] ) ); + hb_arraySet( info, 2, hb_itemPutNI( temp, dash.ptn[1] ) ); + hb_arraySet( info, 3, hb_itemPutNI( temp, dash.ptn[2] ) ); + hb_arraySet( info, 4, hb_itemPutNI( temp, dash.ptn[3] ) ); + hb_arraySet( info, 5, hb_itemPutNI( temp, dash.ptn[4] ) ); + hb_arraySet( info, 6, hb_itemPutNI( temp, dash.ptn[5] ) ); + hb_arraySet( info, 7, hb_itemPutNI( temp, dash.ptn[6] ) ); + hb_arraySet( info, 8, hb_itemPutNI( temp, dash.ptn[7] ) ); + hb_arraySet( info, 9, hb_itemPutND( temp, dash.num_ptn ) ); + hb_arraySet( info,10, hb_itemPutND( temp, dash.phase ) ); + + hb_itemRelease( temp ); + hb_itemReturn( info ); + hb_itemRelease( info ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetFlat( hPage ) -> nCurFlatness +// +HB_FUNC( HPDF_PAGE_GETFLAT ) +{ + hb_retnd( (long) HPDF_Page_GetFlat( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetCharSpace( hPage ) -> nCurCharSpace +// +HB_FUNC( HPDF_PAGE_GETCHARSPACE ) +{ + hb_retnd( (long) HPDF_Page_GetCharSpace( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetWordSpace( hPage ) -> nCurWordSpace +// +HB_FUNC( HPDF_PAGE_GETWORDSPACE ) +{ + hb_retnd( (long) HPDF_Page_GetWordSpace( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetHorizontalScalling( hPage ) -> nHorzScaling +// +HB_FUNC( HPDF_PAGE_GETHORIZONTALSCALLING ) +{ + hb_retnd( (long) HPDF_Page_GetHorizontalScalling( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetTextLeading( hPage ) -> nTextLeading +// +HB_FUNC( HPDF_PAGE_GETTEXTLEADING ) +{ + hb_retnd( (long) HPDF_Page_GetTextLeading( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetTextRenderingMode( hPage ) -> nTextRenderingMode +// +HB_FUNC( HPDF_PAGE_GETTEXTRENDERINGMODE ) +{ + hb_retnd( (long) HPDF_Page_GetTextRenderingMode( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetTextRise( hPage ) -> nTextRise +// +HB_FUNC( HPDF_PAGE_GETTEXTRISE ) +{ + hb_retnd( (long) HPDF_Page_GetTextRise( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetRGBFill( hPage ) -> aRGBFill[ nRed, nGreen, nBlue ] +// +HB_FUNC( HPDF_PAGE_GETRGBFILL ) +{ + HPDF_RGBColor rgb; + PHB_ITEM info = hb_itemArrayNew( 3 ); + PHB_ITEM temp = hb_itemNew( NULL ); + + rgb = HPDF_Page_GetRGBFill( (HPDF_Page) hb_parnl( 1 ) ); + + hb_arraySet( info, 1, hb_itemPutNI( temp, rgb.r ) ); + hb_arraySet( info, 2, hb_itemPutNI( temp, rgb.g ) ); + hb_arraySet( info, 3, hb_itemPutNI( temp, rgb.b ) ); + + hb_itemRelease( temp ); + hb_itemReturn( info ); + hb_itemRelease( info ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetRGBStroke( hPage ) -> aRGBStroke[ nRed, nGreen, nBlue ] +// +HB_FUNC( HPDF_PAGE_GETRGBSTROKE ) +{ + HPDF_RGBColor rgb; + PHB_ITEM info = hb_itemArrayNew( 3 ); + PHB_ITEM temp = hb_itemNew( NULL ); + + rgb = HPDF_Page_GetRGBStroke( (HPDF_Page) hb_parnl( 1 ) ); + + hb_arraySet( info, 1, hb_itemPutNI( temp, rgb.r ) ); + hb_arraySet( info, 2, hb_itemPutNI( temp, rgb.g ) ); + hb_arraySet( info, 3, hb_itemPutNI( temp, rgb.b ) ); + + hb_itemRelease( temp ); + hb_itemReturn( info ); + hb_itemRelease( info ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetCMYKFill( hPage ) -> aCMYKFill[ nC, nM, nY, nK ] +// +HB_FUNC( HPDF_PAGE_GETCMYKFILL ) +{ + HPDF_CMYKColor cmyk; + PHB_ITEM info = hb_itemArrayNew( 4 ); + PHB_ITEM temp = hb_itemNew( NULL ); + + cmyk = HPDF_Page_GetCMYKFill( (HPDF_Page) hb_parnl( 1 ) ); + + hb_arraySet( info, 1, hb_itemPutNI( temp, cmyk.c ) ); + hb_arraySet( info, 2, hb_itemPutNI( temp, cmyk.m ) ); + hb_arraySet( info, 3, hb_itemPutNI( temp, cmyk.y ) ); + hb_arraySet( info, 4, hb_itemPutNI( temp, cmyk.k ) ); + + hb_itemRelease( temp ); + hb_itemReturn( info ); + hb_itemRelease( info ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetCMYKStroke( hPage ) -> aCMYKStroke[ nC, nM, nY, nK ] +// +HB_FUNC( HPDF_PAGE_GETCMYKSTROKE ) +{ + HPDF_CMYKColor cmyk; + PHB_ITEM info = hb_itemArrayNew( 4 ); + PHB_ITEM temp = hb_itemNew( NULL ); + + cmyk = HPDF_Page_GetCMYKStroke( (HPDF_Page) hb_parnl( 1 ) ); + + hb_arraySet( info, 1, hb_itemPutNI( temp, cmyk.c ) ); + hb_arraySet( info, 2, hb_itemPutNI( temp, cmyk.m ) ); + hb_arraySet( info, 3, hb_itemPutNI( temp, cmyk.y ) ); + hb_arraySet( info, 4, hb_itemPutNI( temp, cmyk.k ) ); + + hb_itemRelease( temp ); + hb_itemReturn( info ); + hb_itemRelease( info ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetGrayFill( hPage ) -> nGrayFillValue +// +HB_FUNC( HPDF_PAGE_GETGRAYFILL ) +{ + hb_retnd( (long) HPDF_Page_GetGrayFill( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetGrayStroke( hPage ) -> nGrayStrokeValue +// +HB_FUNC( HPDF_PAGE_GETGRAYSTROKE ) +{ + hb_retnd( (long) HPDF_Page_GetGrayStroke( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetStrokingColorSpace( hPage ) -> nStrokingSpace +// +HB_FUNC( HPDF_PAGE_GETSTROKINGCOLORSPACE ) +{ + hb_retnd( (long) HPDF_Page_GetStrokingColorSpace( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetFillingColorSpace( hPage ) -> nFillingColorSpace +// +HB_FUNC( HPDF_PAGE_GETFILLINGCOLORSPACE ) +{ + hb_retnd( (long) HPDF_Page_GetFillingColorSpace( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetTextMatrix( hPage ) -> aMatrix[ ] +// +HB_FUNC( HPDF_PAGE_GETTEXTMATRIX ) +{ + HPDF_TransMatrix matrix; + PHB_ITEM info = hb_itemArrayNew( 6 ); + PHB_ITEM temp = hb_itemNew( NULL ); + + matrix = HPDF_Page_GetTextMatrix( (HPDF_Page) hb_parnl( 1 ) ) ; + + hb_arraySet( info, 1, hb_itemPutND( temp, matrix.a ) ); + hb_arraySet( info, 2, hb_itemPutND( temp, matrix.b ) ); + hb_arraySet( info, 3, hb_itemPutND( temp, matrix.c ) ); + hb_arraySet( info, 4, hb_itemPutND( temp, matrix.d ) ); + hb_arraySet( info, 5, hb_itemPutND( temp, matrix.x ) ); + hb_arraySet( info, 6, hb_itemPutND( temp, matrix.y ) ); + + hb_itemRelease( temp ); + hb_itemReturn( info ); + hb_itemRelease( info ); +} +//----------------------------------------------------------------------// +// HPdf_Page_GetGStateDepth( hPage ) -> nGStateDepth +// +HB_FUNC( HPDF_PAGE_GETGSTATEDEPTH ) +{ + hb_retni( (long) HPDF_Page_GetGStateDepth( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPdf_Page_SetSlideShow( hPage, nType, nDurationPerFrame, nTranstnTime = 1 Second ) -> hStatus +// nType == +// HPDF_TS_WIPE_RIGHT +// HPDF_TS_WIPE_UP +// HPDF_TS_WIPE_LEFT +// HPDF_TS_WIPE_DOWN +// HPDF_TS_BARN_DOORS_HORIZONTAL_OUT +// HPDF_TS_BARN_DOORS_HORIZONTAL_IN +// HPDF_TS_BARN_DOORS_VERTICAL_OUT +// HPDF_TS_BARN_DOORS_VERTICAL_IN +// HPDF_TS_BOX_OUT +// HPDF_TS_BOX_IN +// HPDF_TS_BLINDS_HORIZONTAL +// HPDF_TS_BLINDS_VERTICAL +// HPDF_TS_DISSOLVE +// HPDF_TS_GLITTER_RIGHT +// HPDF_TS_GLITTER_DOWN +// HPDF_TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT +// HPDF_TS_REPLACE +// +HB_FUNC( HPDF_PAGE_SETSLIDESHOW ) +{ + hb_retnl( (long) HPDF_Page_SetSlideShow( (HPDF_Page) hb_parnl( 1 ), hb_parni( 2 ), hb_parnd( 3 ), hb_parnd( 4 ) ) ); +} +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// GRAPHICS +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// HPDF_Page_SetLineWidth( hPage, nLineWidth ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETLINEWIDTH ) +{ + hb_retnl( (long) HPDF_Page_SetLineWidth( (HPDF_Page) hb_parnl( 1 ),hb_parnd( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetLineCap( hPage, nLineCap ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETLINECAP ) +{ + hb_retnl( (long) HPDF_Page_SetLineCap( (HPDF_Page) hb_parnl( 1 ), hb_parni( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetLineJoin( hPage, nLineJoin ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETLINEJOIN ) +{ + hb_retnl( (long) HPDF_Page_SetLineJoin( (HPDF_Page) hb_parnl( 1 ), hb_parni( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetMiterLimit( hPage, nMiterLimit ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETMITERLIMIT ) +{ + hb_retnl( (long) HPDF_Page_SetMiterLimit( (HPDF_Page) hb_parnl( 1 ), hb_parni( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetDash( hPage, aDash, nNumPoints, nStartFrom ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETDASH ) +{ + HPDF_DashMode dash; + int nPtns = hb_parni( 3 ); + int i; + + for ( i = 0; i < nPtns; i++ ) + { + dash.ptn[ i ] = hb_parni( 2, i+1 ); + } + + hb_retnl( (long) HPDF_Page_SetDash( (HPDF_Page) hb_parnl( 1 ), dash.ptn, nPtns, hb_parni( 4 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetExtGState( hPage, hGState ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETEXTGSTATE ) +{ + hb_retnl( (long) HPDF_Page_SetExtGState( (HPDF_Page) hb_parnl( 1 ), (HPDF_ExtGState)hb_parnl( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_GSave( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_GSAVE ) +{ + hb_retnl( (long) HPDF_Page_GSave( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_GRestore( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_GRESTORE ) +{ + hb_retnl( (long) HPDF_Page_GRestore( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_Concat( hPage, nA, nB, nC, nD, nX, nY ) -> hStatus +// +HB_FUNC( HPDF_PAGE_CONCAT ) +{ + hb_retnl( (long) HPDF_Page_Concat( (HPDF_Page) hb_parnl( 1 ), + hb_parnd( 2 ), + hb_parnd( 3 ), + hb_parnd( 4 ), + hb_parnd( 5 ), + hb_parnd( 6 ), + hb_parnd( 7 ) + ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_MoveTo( hPage, nX, nY ) -> hStatus +// +HB_FUNC( HPDF_PAGE_MOVETO ) +{ + hb_retnl( (long) HPDF_Page_MoveTo( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ), hb_parnd( 3 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_LineTo( hPage, nX, nY ) -> hStatus +// +HB_FUNC( HPDF_PAGE_LINETO ) +{ + hb_retnl( (long) HPDF_Page_LineTo( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ), hb_parnd( 3 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_CurveTo( hPage, nX1, nY1, nX2, nY2, nX3, nY3 ) -> hStatus +// +HB_FUNC( HPDF_PAGE_CURVETO ) +{ + hb_retnl( (long) HPDF_Page_CurveTo( (HPDF_Page) hb_parnl( 1 ), + hb_parnd( 2 ), + hb_parnd( 3 ), + hb_parnd( 4 ), + hb_parnd( 5 ), + hb_parnd( 6 ), + hb_parnd( 7 ) + ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_CurveTo2( hPage, nX2, nY2, nX3, nY3 ) -> hStatus +// +HB_FUNC( HPDF_PAGE_CURVETO2 ) +{ + hb_retnl( (long) HPDF_Page_CurveTo2( (HPDF_Page) hb_parnl( 1 ), + hb_parnd( 2 ), + hb_parnd( 3 ), + hb_parnd( 4 ), + hb_parnd( 5 ) + ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_CurveTo3( hPage, nX1, nY1, nX3, nY3 ) -> hStatus +// +HB_FUNC( HPDF_PAGE_CURVETO3 ) +{ + hb_retnl( (long) HPDF_Page_CurveTo3( (HPDF_Page) hb_parnl( 1 ), + hb_parnd( 2 ), + hb_parnd( 3 ), + hb_parnd( 4 ), + hb_parnd( 5 ) + ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_ClosePath( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_CLOSEPATH ) +{ + hb_retnl( (long) HPDF_Page_ClosePath( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_Rectangle( hPage, nX, nY, nWidth, nHeight ) -> hStatus +// +HB_FUNC( HPDF_PAGE_RECTANGLE ) +{ + hb_retnl( (long) HPDF_Page_Rectangle( (HPDF_Page) hb_parnl( 1 ),hb_parnd( 2 ), hb_parnd( 3 ), hb_parnd( 4 ), hb_parnd( 5 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_Stroke( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_STROKE ) +{ + hb_retnl( (long) HPDF_Page_Stroke( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_ClosePathStroke( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_CLOSEPATHSTROKE ) +{ + hb_retnl( (long) HPDF_Page_ClosePathStroke( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetFontAndSize( hPage, hFont, nSize ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETFONTANDSIZE ) +{ + hb_retnl( (long) HPDF_Page_SetFontAndSize( (HPDF_Page) hb_parnl( 1 ), (HPDF_Font)hb_parnl( 2 ), hb_parnd( 3 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_BeginText( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_BEGINTEXT ) +{ + hb_retnl( (long) HPDF_Page_BeginText( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_EndText( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_ENDTEXT ) +{ + hb_retnl( (long) HPDF_Page_EndText( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_TextOut( hPage, nX, nY, cText ) -> hStatus +// +HB_FUNC( HPDF_PAGE_TEXTOUT ) +{ + hb_retnl( (long) HPDF_Page_TextOut( (HPDF_Page) hb_parnl( 1 ),hb_parnd( 2 ), hb_parnd( 3 ), hb_parc( 4 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_MoveTextPos( hPage, nX, nY ) -> hStatus +// +HB_FUNC( HPDF_PAGE_MOVETEXTPOS ) +{ + hb_retnl( (long) HPDF_Page_MoveTextPos( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ), hb_parnd( 3 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_ShowText( hPage, cText ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SHOWTEXT ) +{ + hb_retnl( (long) HPDF_Page_ShowText( (HPDF_Page) hb_parnl( 1 ), hb_parc( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_Fill( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_FILL ) +{ + hb_retnl( (long) HPDF_Page_Fill( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_Eofill( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_EOFILL ) +{ + hb_retnl( (long) HPDF_Page_Eofill( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_FillStroke( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_FILLSTROKE ) +{ + hb_retnl( (long) HPDF_Page_FillStroke( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_EofillStroke( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_EOFILLSTROKE ) +{ + hb_retnl( (long) HPDF_Page_EofillStroke( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_ClosePathFillStroke( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_CLOSEPATHFILLSTROKE ) +{ + hb_retnl( (long) HPDF_Page_ClosePathFillStroke( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_ClosePathEofillStroke( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_CLOSEPATHEOFILLSTROKE ) +{ + hb_retnl( (long) HPDF_Page_ClosePathEofillStroke( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_EndPath( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_ENDPATH ) +{ + hb_retnl( (long) HPDF_Page_EndPath( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_Clip( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_CLIP ) +{ + hb_retnl( (long) HPDF_Page_Clip( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_Eoclip( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_EOCLIP ) +{ + hb_retnl( (long) HPDF_Page_Eoclip( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetCharSpace( hPage, nSpaceWidth ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETCHARSPACE ) +{ + hb_retnl( (long) HPDF_Page_SetCharSpace( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetWordSpace( hPage, nSpaceWidth ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETWORDSPACE ) +{ + hb_retnl( (long) HPDF_Page_SetWordSpace( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetHorizontalScalling( hPage, nHorzScale ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETHORIZONTALSCALLING ) +{ + hb_retnl( (long) HPDF_Page_SetHorizontalScalling( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetTextLeading( hPage, nTextLeading ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETTEXTLEADING ) +{ + hb_retnl( (long) HPDF_Page_SetTextLeading( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetTextRenderingMode( hPage, nTextRenderingMode ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETTEXTRENDERINGMODE ) +{ + hb_retnl( (long) HPDF_Page_SetTextRenderingMode( (HPDF_Page) hb_parnl( 1 ), hb_parni( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetTextRise( hPage, nTextRise ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETTEXTRISE ) +{ + hb_retnl( (long) HPDF_Page_SetTextRise( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_MoveTextPos2( hPage, nX, nY ) -> hStatus +// +HB_FUNC( HPDF_PAGE_MOVETEXTPOS2 ) +{ + hb_retnl( (long) HPDF_Page_MoveTextPos2( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ), hb_parnd( 3 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetTextMatrix( hPage ) -> hStatus --------tobedone--------- +// +HB_FUNC( HPDF_PAGE_SETTEXTMATRIX ) +{ + hb_retnl( (long) HPDF_Page_SetTextMatrix( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ), hb_parnd( 3 ), hb_parnd( 4 ), hb_parnd( 5 ), hb_parnd( 6 ), hb_parnd( 7 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_MoveToNextLine( hPage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_MOVETONEXTLINE ) +{ + hb_retnl( (long) HPDF_Page_MoveToNextLine( (HPDF_Page) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_ShowTextNextLine( hPage, cText ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SHOWTEXTNEXTLINE ) +{ + hb_retnl( (long) HPDF_Page_ShowTextNextLine( (HPDF_Page) hb_parnl( 1 ), hb_parc( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_ShowTextNextLineEx( hPage, nWordSpace, nCharSpace, cText ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SHOWTEXTNEXTLINEEX ) +{ + hb_retnl( (long) HPDF_Page_ShowTextNextLineEx( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ), hb_parnd( 3 ), hb_parc( 4 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetGrayFill( hPage, nGrayFill ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETGRAYFILL ) +{ + hb_retnl( (long) HPDF_Page_SetGrayFill( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetGrayStroke( hPage, nGrayStroke ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETGRAYSTROKE ) +{ + hb_retnl( (long) HPDF_Page_SetGrayStroke( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetRGBFill( hPage, nRGBRed, nRGBGreen, nRGBBlue ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETRGBFILL ) +{ + hb_retnl( (long) HPDF_Page_SetRGBFill( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ), hb_parnd( 3 ), hb_parnd( 4 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetRGBStroke( hPage, nRGBRed, nRGBGreen, nRGBBlue ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETRGBSTROKE ) +{ + hb_retnl( (long) HPDF_Page_SetRGBStroke( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ), hb_parnd( 3 ), hb_parnd( 4 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetCMYKFill( hPage, nC, nM, nY, nK ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETCMYKFILL ) +{ + hb_retnl( (long) HPDF_Page_SetCMYKFill( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ), hb_parnd( 3 ), hb_parnd( 4 ), hb_parnd( 5 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_SetCMYKStroke( hPage, nC, nM, nY, nK ) -> hStatus +// +HB_FUNC( HPDF_PAGE_SETCMYKSTROKE ) +{ + hb_retnl( (long) HPDF_Page_SetCMYKStroke( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ), hb_parnd( 3 ), hb_parnd( 4 ), hb_parnd( 5 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_ExecuteXObject( hPage, hImage ) -> hStatus +// +HB_FUNC( HPDF_PAGE_EXECUTEXOBJECT ) +{ + hb_retnl( (long) HPDF_Page_ExecuteXObject( (HPDF_Page) hb_parnl( 1 ), (HPDF_Image) hb_parnl( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_DrawImage( hPage, hImage, nX, nY, nWidth, nHeight ) -> hStatus +// +HB_FUNC( HPDF_PAGE_DRAWIMAGE ) +{ + hb_retnl( (long) HPDF_Page_DrawImage( (HPDF_Page) hb_parnl( 1 ), (HPDF_Image) hb_parnl( 2 ), hb_parnd( 3 ), hb_parnd( 4 ), hb_parnd( 5 ), hb_parnd( 6 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_Circle( hPage, nX, nY, nRay ) -> hStatus +// +HB_FUNC( HPDF_PAGE_CIRCLE ) +{ + hb_retnl( (long) HPDF_Page_Circle( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ), hb_parnd( 3 ), hb_parnd( 4 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_Arc( hPage, nX, nY, nRay, nAngle1, nAngle2 ) -> hStatus +// +HB_FUNC( HPDF_PAGE_ARC ) +{ + hb_retnl( (long) HPDF_Page_Arc( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ), hb_parnd( 3 ), hb_parnd( 4 ), hb_parnd( 5 ), hb_parnd( 6 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_Ellipse( hPage, nX, nY, nxRay, nyRay ) -> hStatus +// +HB_FUNC( HPDF_PAGE_ELLIPSE ) +{ + hb_retnl( (long) HPDF_Page_Ellipse( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ), hb_parnd( 3 ), hb_parnd( 4 ), hb_parnd( 5 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Page_TextRect( hPage, nLeft, nTop, nRight, nBottom, cText, nAlign ) -> hStatus +// +HB_FUNC( HPDF_PAGE_TEXTRECT ) +{ + hb_retnl( (long) HPDF_Page_TextRect( (HPDF_Page) hb_parnl( 1 ), hb_parnd( 2 ), hb_parnd( 3 ), hb_parnd( 4 ), hb_parnd( 5 ), hb_parc( 6 ), hb_parni( 7 ), NULL ) ); +} +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// FONTS +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// HPDF_Font_GetFontName( hFont ) -> cFontName +// +HB_FUNC( HPDF_FONT_GETFONTNAME ) +{ + hb_retc( HPDF_Font_GetFontName( (HPDF_Font) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Font_GetEncodingName( hFont ) -> cEncoding +// +HB_FUNC( HPDF_FONT_GETENCODINGNAME ) +{ + hb_retc( HPDF_Font_GetEncodingName( (HPDF_Font) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Font_GetUnicodeWidth( hFont, hUnicode ) -> nCharWidth +// +HB_FUNC( HPDF_FONT_GETUNICODEWIDTH ) +{ + hb_retnl( (long) HPDF_Font_GetUnicodeWidth( (HPDF_Font) hb_parnl( 1 ), (HPDF_UNICODE)hb_parnl( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Font_GetBBox( hFont ) -> aRect +// +HB_FUNC( HPDF_FONT_GETBBOX ) +{ + HPDF_Box rc; + PHB_ITEM info = hb_itemArrayNew( 4 ); + PHB_ITEM temp = hb_itemNew( NULL ); + + rc = HPDF_Font_GetBBox( (HPDF_Font) hb_parnl( 1 ) ); + + hb_arraySet( info, 1, hb_itemPutND( temp, rc.left ) ); + hb_arraySet( info, 2, hb_itemPutND( temp, rc.top ) ); + hb_arraySet( info, 3, hb_itemPutND( temp, rc.right ) ); + hb_arraySet( info, 4, hb_itemPutND( temp, rc.bottom ) ); + + hb_itemRelease( temp ); + hb_itemReturn( info ); + hb_itemRelease( info ); +} +//----------------------------------------------------------------------// +// HPDF_Font_GetAscent( hFont ) -> nAscent +// +HB_FUNC( HPDF_FONT_GETASCENT ) +{ + hb_retni( (long) HPDF_Font_GetAscent( (HPDF_Font) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Font_GetDescent( hFont ) -> nDescent +// +HB_FUNC( HPDF_FONT_GETDESCENT ) +{ + hb_retni( (long) HPDF_Font_GetDescent( (HPDF_Font) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Font_GetXHeight( hFont ) -> nXHeight +// +HB_FUNC( HPDF_FONT_GETXHEIGHT ) +{ + hb_retnl( (long) HPDF_Font_GetXHeight( (HPDF_Font) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Font_GetCapHeight( hFont ) -> nCapsHeight +// +HB_FUNC( HPDF_FONT_GETCAPHEIGHT ) +{ + hb_retnl( (long) HPDF_Font_GetCapHeight( (HPDF_Font) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Font_TextWidth( hFont, cText, nWidth ) -> aTextWidth[ nNumChars, nNumWords, nWidth, nNumSpace ] +// +HB_FUNC( HPDF_FONT_TEXTWIDTH ) +{ + HPDF_TextWidth tw; + PHB_ITEM info = hb_itemArrayNew( 4 ); + PHB_ITEM temp = hb_itemNew( NULL ); + + tw = HPDF_Font_TextWidth( (HPDF_Font) hb_parnl( 1 ), hb_parc( 2 ), hb_parni( 3 ) ); + + hb_arraySet( info, 1, hb_itemPutNI( temp, tw.numchars ) ); + hb_arraySet( info, 2, hb_itemPutNI( temp, tw.numwords ) ); + hb_arraySet( info, 3, hb_itemPutNI( temp, tw.width ) ); + hb_arraySet( info, 4, hb_itemPutNI( temp, tw.numspace ) ); + + hb_itemRelease( temp ); + hb_itemReturn( info ); + hb_itemRelease( info ); +} +//----------------------------------------------------------------------// +// HPDF_Font_MeasureText( hFont, cText, nTextLen, nWidth, nFontSize, nCharSpace, nWordSpace, lWordWrap ) -> nByteLengthTobeIncludedInWidth +// +HB_FUNC( HPDF_FONT_MEASURETEXT ) +{ + hb_retni( HPDF_Font_MeasureText( (HPDF_Font) hb_parnl( 1 ), + hb_parc ( 2 ), + hb_parni( 3 ), + hb_parnd( 4 ), + hb_parnd( 5 ), + hb_parnd( 6 ), + hb_parnd( 7 ), + hb_parl ( 8 ), + NULL ) ); +} +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// ENCODING +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// HPDF_Encoder_GetType( hEncoder ) -> nEncoderType +// nEncoderType == +// HPDF_ENCODER_TYPE_SINGLE_BYTE 1 This encoder is an encoder for single byte characters. +// HPDF_ENCODER_TYPE_DOUBLE_BYTE 2 This encoder is an encoder for multi byte characters. +// HPDF_ENCODER_TYPE_UNINITIALIZED 3 This encoder is uninitialized. (May be it is an encoder for multi byte characters.) +// HPDF_ENCODER_UNKNOWN 4 Invalid encoder. +// +HB_FUNC( HPDF_ENCODER_GETTYPE ) +{ + hb_retni( (long) HPDF_Encoder_GetType( (HPDF_Encoder) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Encoder_GetByteType( hEncoder, cText, nIndex ) -> nByteType +// nByteType +// HPDF_BYTE_TYPE_SINGLE 1 Single byte character. +// HPDF_BYTE_TYPE_LEAD 2 Lead byte of a double-byte character. +// HPDF_BYTE_TYPE_TRIAL 3 Trailing byte of a double-byte character. +// HPDF_BYTE_TYPE_UNKNOWN 4 Invalid encoder or cannot judge the byte type. +// +HB_FUNC( HPDF_ENCODER_GETBYTETYPE ) +{ + hb_retni( (long) HPDF_Encoder_GetByteType( (HPDF_Encoder) hb_parnl( 1 ), hb_parc( 2 ), hb_parni( 3 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Encoder_GetUnicode( hEncoder, nCode ) -> nUnicode +// +HB_FUNC( HPDF_ENCODER_GETUNICODE ) +{ + hb_retni( (long) HPDF_Encoder_GetUnicode( (HPDF_Encoder) hb_parnl( 1 ), hb_parni( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Encoder_GetWritingMode( hEncoder ) -> nWriteMode +// nWriteMode == +// HPDF_WMODE_HORIZONTAL 1 horizontal writing mode. +// HPDF_WMODE_VERTICAL 2 vertical writing mode; +// +HB_FUNC( HPDF_ENCODER_GETWRITINGMODE ) +{ + hb_retni( (long) HPDF_Encoder_GetWritingMode( (HPDF_Encoder) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// ANNOTATION +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// HPDF_LinkAnnot_SetHighlightMode( hAnnot, nHilightMode ) -> hStatus +// nHilightMode == +// HPDF_ANNOT_NO_HIGHTLIGHT 1 No highlighting. +// HPDF_ANNOT_INVERT_BOX 2 Invert the contents of the area of annotation. +// HPDF_ANNOT_INVERT_BORDER 3 Invert the annotation痴 border. +// HPDF_ANNOT_DOWN_APPEARANCE 4 Dent the annotation. +// +HB_FUNC( HPDF_LINKANNOT_SETHIGHLIGHTMODE ) +{ + hb_retnl( (long) HPDF_LinkAnnot_SetHighlightMode( (HPDF_Annotation) hb_parnl( 1 ), hb_parni( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_LinkAnnot_SetBorderStyle( hAnnot, nWidth, nDashOn, nDashOff ) -> hStatus +// +HB_FUNC( HPDF_LINKANNOT_SETBORDERSTYLE ) +{ + hb_retnl( (long) HPDF_LinkAnnot_SetBorderStyle( (HPDF_Annotation) hb_parnl( 1 ), hb_parnd( 2 ), hb_parni( 3 ), hb_parni( 4 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_TextAnnot_SetIcon( hAnnot, nIconID ) -> hStatus +// nIconID +// HPDF_ANNOT_ICON_COMMENT +// HPDF_ANNOT_ICON_KEY +// HPDF_ANNOT_ICON_NOTE +// HPDF_ANNOT_ICON_HELP +// HPDF_ANNOT_ICON_NEW_PARAGRAPH +// HPDF_ANNOT_ICON_PARAGRAPH +// HPDF_ANNOT_ICON_INSERT +// +HB_FUNC( HPDF_TEXTANNOT_SETICON ) +{ + hb_retnl( (long) HPDF_TextAnnot_SetIcon( (HPDF_Annotation) hb_parnl( 1 ), (HPDF_AnnotIcon) hb_parnl( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_TextAnnot_SetOpened( hAnnot, lOpened ) -> hStatus +// +HB_FUNC( HPDF_TEXTANNOT_SETOPENED ) +{ + hb_retnl( (long) HPDF_TextAnnot_SetOpened( (HPDF_Annotation) hb_parnl( 1 ), hb_parl( 2 ) ) ); +} +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// OUTLINE +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// HPDF_Outline_SetOpened( hOutline, lShowOpened ) -> hStatus +// +HB_FUNC( HPDF_OUTLINE_SETOPENED ) +{ + hb_retnl( (long) HPDF_Outline_SetOpened( (HPDF_Outline) hb_parnl( 1 ), hb_parl( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Outline_SetDestination( hOutline, hDestn ) -> hStatus +// +HB_FUNC( HPDF_OUTLINE_SETDESTINATION ) +{ + hb_retnl( (long) HPDF_Outline_SetDestination( (HPDF_Outline) hb_parnl( 1 ), (HPDF_Destination) hb_parnl( 2 ) ) ); +} +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// DESTINATION +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// HPDF_Destination_SetXYZ( hDestn, nLeft, nTop, nZoom ) -> hStatus +// +HB_FUNC( HPDF_DESTINATION_SETXYZ ) +{ + hb_retnl( (long) HPDF_Destination_SetXYZ( (HPDF_Destination) hb_parnl( 1 ), hb_parnd( 2 ), hb_parnd( 3 ), hb_parnd( 4 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Destination_SetFit( hDestn ) -> hStatus +// +HB_FUNC( HPDF_DESTINATION_SETFIT ) +{ + hb_retnl( (long) HPDF_Destination_SetFit( (HPDF_Destination) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Destination_SetFitH( hDestn, nTop ) -> hStatus +// +HB_FUNC( HPDF_DESTINATION_SETFITH ) +{ + hb_retnl( (long) HPDF_Destination_SetFitH( (HPDF_Destination) hb_parnl( 1 ), hb_parnd( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Destination_SetFitV( hDestn, nLeft ) -> hStatus +// +HB_FUNC( HPDF_DESTINATION_SETFITV ) +{ + hb_retnl( (long) HPDF_Destination_SetFitV( (HPDF_Destination) hb_parnl( 1 ), hb_parnd( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Destination_SetFitR( hDestn, nLeft, nBottom, nRight, nTop ) -> hStatus +// +HB_FUNC( HPDF_DESTINATION_SETFITR ) +{ + hb_retnl( (long) HPDF_Destination_SetFitR( (HPDF_Destination) hb_parnl( 1 ), hb_parnd( 2 ), hb_parnd( 3 ), hb_parnd( 4 ), hb_parnd( 5 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Destination_SetFitB( hDestn ) -> hStatus +// +HB_FUNC( HPDF_DESTINATION_SETFITB ) +{ + hb_retnl( (long) HPDF_Destination_SetFitB( (HPDF_Destination) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Destination_SetFitBH( hDestn, nTop ) -> hStatus +// +HB_FUNC( HPDF_DESTINATION_SETFITBH ) +{ + hb_retnl( (long) HPDF_Destination_SetFitBH( (HPDF_Destination) hb_parnl( 1 ), hb_parnd( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Destination_SetFitBV( hDestn, nTop ) -> hStatus +// +HB_FUNC( HPDF_DESTINATION_SETFITBV ) +{ + hb_retnl( (long) HPDF_Destination_SetFitBV( (HPDF_Destination) hb_parnl( 1 ), hb_parnd( 2 ) ) ); +} +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// IMAGE +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// HPDF_Image_GetSize( hImage ) -> aSize[ nW, nH ] +// +HB_FUNC( HPDF_IMAGE_GETSIZE ) +{ + HPDF_Point pt; + PHB_ITEM info = hb_itemArrayNew( 2 ); + PHB_ITEM temp = hb_itemNew( NULL ); + + pt = HPDF_Image_GetSize( (HPDF_Image) hb_parnl( 1 ) ); + + hb_arraySet( info, 1, hb_itemPutNI( temp, pt.x ) ); + hb_arraySet( info, 2, hb_itemPutNI( temp, pt.y ) ); + + hb_itemRelease( temp ); + hb_itemReturn( info ); + hb_itemRelease( info ); +} +//----------------------------------------------------------------------// +// HPDF_Image_GetWidth( hImage ) -> nWidth +// +HB_FUNC( HPDF_IMAGE_GETWIDTH ) +{ + hb_retni( HPDF_Image_GetWidth( (HPDF_Image) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Image_GetHeight( hImage ) -> nHeight +// +HB_FUNC( HPDF_IMAGE_GETHEIGHT ) +{ + hb_retni( HPDF_Image_GetHeight( (HPDF_Image) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Image_GetBitsPerComponent( hImage ) -> nBitsPerComponent +// +HB_FUNC( HPDF_IMAGE_GETBITSPERCOMPONENT ) +{ + hb_retni( HPDF_Image_GetBitsPerComponent( (HPDF_Image) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Image_GetColorSpace( hImage ) -> nColorSpace +// +HB_FUNC( HPDF_IMAGE_GETCOLORSPACE ) +{ + hb_retc( HPDF_Image_GetColorSpace( (HPDF_Image) hb_parnl( 1 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_Image_SetColorMask( hImage, nRGB_R_Min, nRGB_R_Max, nRGB_G_Min, nRGB_G_Max, nRGB_B_Min, nRGB_B_Max ) +// +HB_FUNC( HPDF_IMAGE_SETCOLORMASK ) +{ + hb_retnl( (long) HPDF_Image_SetColorMask( (HPDF_Image) hb_parnl( 1 ), + hb_parni( 2 ), + hb_parni( 3 ), + hb_parni( 4 ), + hb_parni( 5 ), + hb_parni( 6 ), + hb_parni( 7 ) + ) ); +} +//----------------------------------------------------------------------// +// HPDF_Image_SetMaskImage( hImage, hImageMask ) -> hStatus +// +HB_FUNC( HPDF_IMAGE_SETMASKIMAGE ) +{ + hb_retnl( (long) HPDF_Image_SetMaskImage( (HPDF_Image) hb_parnl( 1 ), (HPDF_Image) hb_parnl( 2 ) ) ); +} +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// ExtGState +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// HPDF_ExtGState_SetAlphaStroke( hGState, nValue ) -> hStatus +// +HB_FUNC( HPDF_EXTGSTATE_SETALPHASTROKE ) +{ + hb_retnl( (long) HPDF_ExtGState_SetAlphaStroke( (HPDF_ExtGState) hb_parnl( 1 ), hb_parnd( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_ExtGState_SetAlphaFill( hGState, nValue ) -> hStatus +// +HB_FUNC( HPDF_EXTGSTATE_SETALPHAFILL ) +{ + hb_retnl( (long) HPDF_ExtGState_SetAlphaFill( (HPDF_ExtGState) hb_parnl( 1 ), hb_parnd( 2 ) ) ); +} +//----------------------------------------------------------------------// +// HPDF_ExtGState_SetBlendMode( hGState, nBlendMode ) -> hStatus +// nBlendMode == +// HPDF_BM_NORMAL +// HPDF_BM_MULTIPLY +// HPDF_BM_SCREEN +// HPDF_BM_OVERLAY +// HPDF_BM_DARKEN +// HPDF_BM_LIGHTEN +// HPDF_BM_COLOR_DODGE +// HPDF_BM_COLOR_BUM +// HPDF_BM_HARD_LIGHT +// HPDF_BM_SOFT_LIGHT +// HPDF_BM_DIFFERENCE +// HPDF_BM_EXCLUSHON +// +HB_FUNC( HPDF_EXTGSTATE_SETBLENDMODE ) +{ + hb_retnl( (long) HPDF_ExtGState_SetBlendMode( (HPDF_ExtGState) hb_parnl( 1 ), hb_parni( 2 ) ) ); +} +//----------------------------------------------------------------------// + + + diff --git a/harbour/contrib/hbhpdf/hpdf.h b/harbour/contrib/hbhpdf/hpdf.h new file mode 100644 index 0000000000..c849db8aac --- /dev/null +++ b/harbour/contrib/hbhpdf/hpdf.h @@ -0,0 +1,1227 @@ +/* + * << Haru Free PDF Library 2.0.8 >> -- hpdf.h + * + * URL http://libharu.sourceforge.net/ + * + * Copyright (c) 1999-2006 Takeshi Kanno + * + * Permission to use, copy, modify, distribute and sell this software + * and its documentation for any purpose is hereby granted without fee, + * provided that the above copyright notice appear in all copies and + * that both that copyright notice and this permission notice appear + * in supporting documentation. + * It is provided "as is" without express or implied warranty. + * + */ + +#ifndef _HPDF_H +#define _HPDF_H + +#ifdef HPDF_DLL_MAKE +# define HPDF_EXPORT(A) __declspec(dllexport) A __stdcall +#else +# ifdef HPDF_DLL_MAKE_CDECL +# define HPDF_EXPORT(A) __declspec(dllexport) A +# else +# ifdef HPDF_SHARED_MAKE +# define HPDF_EXPORT(A) extern A +# endif /* HPDF_SHARED_MAKE */ +# endif /* HPDF_DLL_MAKE_CDECL */ +#endif /* HPDF_DLL_MAKE */ + +#ifdef HPDF_DLL +# define HPDF_SHARED +# define HPDF_EXPORT(A) __declspec(dllimport) A __stdcall +#else +# ifdef HPDF_DLL_CDECL +# define HPDF_SHARED +# define HPDF_EXPORT(A) __declspec(dllimport) A +# endif /* HPDF_DLL_CDECL */ +#endif /* HPDF_DLL */ + +#ifdef HPDF_SHARED + +#ifndef HPDF_EXPORT +#define HPDF_EXPORT(A) extern A +#endif /* HPDF_EXPORT */ + +#include "hpdf_consts.h" +#include "hpdf_types.h" + +typedef void *HPDF_HANDLE; +typedef HPDF_HANDLE HPDF_Doc; +typedef HPDF_HANDLE HPDF_Page; +typedef HPDF_HANDLE HPDF_Pages; +typedef HPDF_HANDLE HPDF_Stream; +typedef HPDF_HANDLE HPDF_Image; +typedef HPDF_HANDLE HPDF_Font; +typedef HPDF_HANDLE HPDF_Outline; +typedef HPDF_HANDLE HPDF_Encoder; +typedef HPDF_HANDLE HPDF_Destination; +typedef HPDF_HANDLE HPDF_XObject; +typedef HPDF_HANDLE HPDF_Annotation; +typedef HPDF_HANDLE HPDF_ExtGState; + +#else + +#ifndef HPDF_EXPORT +#define HPDF_EXPORT(A) A +#endif /* HPDF_EXPORT */ + +#include "hpdf_consts.h" +#include "hpdf_doc.h" + +#endif /* HPDF_SHARED */ + +#ifdef __cplusplus +extern "C" { +#endif + +HPDF_EXPORT(const char *) +HPDF_GetVersion (void); + + +HPDF_EXPORT(HPDF_Doc) +HPDF_NewEx (HPDF_Error_Handler user_error_fn, + HPDF_Alloc_Func user_alloc_fn, + HPDF_Free_Func user_free_fn, + HPDF_UINT mem_pool_buf_size, + void *user_data); + +HPDF_EXPORT(HPDF_Doc) +HPDF_New (HPDF_Error_Handler user_error_fn, + void *user_data); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_SetErrorHandler (HPDF_Doc pdf, + HPDF_Error_Handler user_error_fn); + + +HPDF_EXPORT(void) +HPDF_Free (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_NewDoc (HPDF_Doc pdf); + + +HPDF_EXPORT(void) +HPDF_FreeDoc (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_BOOL) +HPDF_HasDoc (HPDF_Doc pdf); + + +HPDF_EXPORT(void) +HPDF_FreeDocAll (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_SaveToStream (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_UINT32) +HPDF_GetStreamSize (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_ReadFromStream (HPDF_Doc pdf, + HPDF_BYTE *buf, + HPDF_UINT32 *size); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_ResetStream (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_SaveToFile (HPDF_Doc pdf, + const char *file_name); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_GetError (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_GetErrorDetail (HPDF_Doc pdf); + +HPDF_EXPORT(void) +HPDF_ResetError (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_SetPagesConfiguration (HPDF_Doc pdf, + HPDF_UINT page_per_pages); + + +HPDF_EXPORT(HPDF_Page) +HPDF_GetPageByIndex (HPDF_Doc pdf, + HPDF_UINT index); + + +/*---------------------------------------------------------------------------*/ +/*---------------------------------------------------------------------------*/ + +HPDF_EXPORT(HPDF_PageLayout) +HPDF_GetPageLayout (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_SetPageLayout (HPDF_Doc pdf, + HPDF_PageLayout layout); + + +HPDF_EXPORT(HPDF_PageMode) +HPDF_GetPageMode (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_SetPageMode (HPDF_Doc pdf, + HPDF_PageMode mode); + + +HPDF_EXPORT(HPDF_UINT) +HPDF_GetViewerPreference (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_SetViewerPreference (HPDF_Doc pdf, + HPDF_UINT value); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_SetOpenAction (HPDF_Doc pdf, + HPDF_Destination open_action); + + +/*---------------------------------------------------------------------------*/ +/*----- page handling -------------------------------------------------------*/ + + +HPDF_EXPORT(HPDF_Page) +HPDF_GetCurrentPage (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_Page) +HPDF_AddPage (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_Page) +HPDF_InsertPage (HPDF_Doc pdf, + HPDF_Page page); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetWidth (HPDF_Page page, + HPDF_REAL value); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetHeight (HPDF_Page page, + HPDF_REAL value); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetSize (HPDF_Page page, + HPDF_PageSizes size, + HPDF_PageDirection direction); + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetRotate (HPDF_Page page, + HPDF_UINT16 angle); + +/*---------------------------------------------------------------------------*/ +/*----- font handling -------------------------------------------------------*/ + + +HPDF_EXPORT(HPDF_Font) +HPDF_GetFont (HPDF_Doc pdf, + const char *font_name, + const char *encoding_name); + + +HPDF_EXPORT(const char*) +HPDF_LoadType1FontFromFile (HPDF_Doc pdf, + const char *afm_file_name, + const char *data_file_name); + + +HPDF_EXPORT(const char*) +HPDF_LoadTTFontFromFile (HPDF_Doc pdf, + const char *file_name, + HPDF_BOOL embedding); + + +HPDF_EXPORT(const char*) +HPDF_LoadTTFontFromFile2 (HPDF_Doc pdf, + const char *file_name, + HPDF_UINT index, + HPDF_BOOL embedding); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_AddPageLabel (HPDF_Doc pdf, + HPDF_UINT page_num, + HPDF_PageNumStyle style, + HPDF_UINT first_page, + const char *prefix); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_UseJPFonts (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_UseKRFonts (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_UseCNSFonts (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_UseCNTFonts (HPDF_Doc pdf); + + +/*--------------------------------------------------------------------------*/ +/*----- outline ------------------------------------------------------------*/ + + +HPDF_EXPORT(HPDF_Outline) +HPDF_CreateOutline (HPDF_Doc pdf, + HPDF_Outline parent, + const char *title, + HPDF_Encoder encoder); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Outline_SetOpened (HPDF_Outline outline, + HPDF_BOOL opened); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Outline_SetDestination (HPDF_Outline outline, + HPDF_Destination dst); + + +/*--------------------------------------------------------------------------*/ +/*----- destination --------------------------------------------------------*/ + +HPDF_EXPORT(HPDF_Destination) +HPDF_Page_CreateDestination (HPDF_Page page); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Destination_SetXYZ (HPDF_Destination dst, + HPDF_REAL left, + HPDF_REAL top, + HPDF_REAL zoom); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Destination_SetFit (HPDF_Destination dst); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Destination_SetFitH (HPDF_Destination dst, + HPDF_REAL top); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Destination_SetFitV (HPDF_Destination dst, + HPDF_REAL left); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Destination_SetFitR (HPDF_Destination dst, + HPDF_REAL left, + HPDF_REAL bottom, + HPDF_REAL right, + HPDF_REAL top); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Destination_SetFitB (HPDF_Destination dst); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Destination_SetFitBH (HPDF_Destination dst, + HPDF_REAL top); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Destination_SetFitBV (HPDF_Destination dst, + HPDF_REAL left); + +/*--------------------------------------------------------------------------*/ +/*----- encoder ------------------------------------------------------------*/ + +HPDF_EXPORT(HPDF_Encoder) +HPDF_GetEncoder (HPDF_Doc pdf, + const char *encoding_name); + + +HPDF_EXPORT(HPDF_Encoder) +HPDF_GetCurrentEncoder (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_SetCurrentEncoder (HPDF_Doc pdf, + const char *encoding_name); + + +HPDF_EXPORT(HPDF_EncoderType) +HPDF_Encoder_GetType (HPDF_Encoder encoder); + + +HPDF_EXPORT(HPDF_ByteType) +HPDF_Encoder_GetByteType (HPDF_Encoder encoder, + const char *text, + HPDF_UINT index); + + +HPDF_EXPORT(HPDF_UNICODE) +HPDF_Encoder_GetUnicode (HPDF_Encoder encoder, + HPDF_UINT16 code); + + +HPDF_EXPORT(HPDF_WritingMode) +HPDF_Encoder_GetWritingMode (HPDF_Encoder encoder); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_UseJPEncodings (HPDF_Doc pdf); + + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_UseKREncodings (HPDF_Doc pdf); + + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_UseCNSEncodings (HPDF_Doc pdf); + + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_UseCNTEncodings (HPDF_Doc pdf); + + +/*--------------------------------------------------------------------------*/ +/*----- annotation ---------------------------------------------------------*/ + +HPDF_EXPORT(HPDF_Annotation) +HPDF_Page_CreateTextAnnot (HPDF_Page page, + HPDF_Rect rect, + const char *text, + HPDF_Encoder encoder); + + +HPDF_EXPORT(HPDF_Annotation) +HPDF_Page_CreateLinkAnnot (HPDF_Page page, + HPDF_Rect rect, + HPDF_Destination dst); + + +HPDF_EXPORT(HPDF_Annotation) +HPDF_Page_CreateURILinkAnnot (HPDF_Page page, + HPDF_Rect rect, + const char *uri); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_LinkAnnot_SetHighlightMode (HPDF_Annotation annot, + HPDF_AnnotHighlightMode mode); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_LinkAnnot_SetBorderStyle (HPDF_Annotation annot, + HPDF_REAL width, + HPDF_UINT16 dash_on, + HPDF_UINT16 dash_off); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_TextAnnot_SetIcon (HPDF_Annotation annot, + HPDF_AnnotIcon icon); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_TextAnnot_SetOpened (HPDF_Annotation annot, + HPDF_BOOL opened); + + + +/*--------------------------------------------------------------------------*/ +/*----- image data ---------------------------------------------------------*/ + +HPDF_EXPORT(HPDF_Image) +HPDF_LoadPngImageFromFile (HPDF_Doc pdf, + const char *filename); + + +HPDF_EXPORT(HPDF_Image) +HPDF_LoadPngImageFromFile2 (HPDF_Doc pdf, + const char *filename); + + +HPDF_EXPORT(HPDF_Image) +HPDF_LoadJpegImageFromFile (HPDF_Doc pdf, + const char *filename); + + +HPDF_EXPORT(HPDF_Image) +HPDF_LoadRawImageFromFile (HPDF_Doc pdf, + const char *filename, + HPDF_UINT width, + HPDF_UINT height, + HPDF_ColorSpace color_space); + + +HPDF_EXPORT(HPDF_Image) +HPDF_LoadRawImageFromMem (HPDF_Doc pdf, + const HPDF_BYTE *buf, + HPDF_UINT width, + HPDF_UINT height, + HPDF_ColorSpace color_space, + HPDF_UINT bits_per_component); + + +HPDF_EXPORT(HPDF_Point) +HPDF_Image_GetSize (HPDF_Image image); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Image_GetSize2 (HPDF_Image image, HPDF_Point *size); + + +HPDF_EXPORT(HPDF_UINT) +HPDF_Image_GetWidth (HPDF_Image image); + + +HPDF_EXPORT(HPDF_UINT) +HPDF_Image_GetHeight (HPDF_Image image); + + +HPDF_EXPORT(HPDF_UINT) +HPDF_Image_GetBitsPerComponent (HPDF_Image image); + + +HPDF_EXPORT(const char*) +HPDF_Image_GetColorSpace (HPDF_Image image); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Image_SetColorMask (HPDF_Image image, + HPDF_UINT rmin, + HPDF_UINT rmax, + HPDF_UINT gmin, + HPDF_UINT gmax, + HPDF_UINT bmin, + HPDF_UINT bmax); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Image_SetMaskImage (HPDF_Image image, + HPDF_Image mask_image); + + +/*--------------------------------------------------------------------------*/ +/*----- info dictionary ----------------------------------------------------*/ + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_SetInfoAttr (HPDF_Doc pdf, + HPDF_InfoType type, + const char *value); + + +HPDF_EXPORT(const char*) +HPDF_GetInfoAttr (HPDF_Doc pdf, + HPDF_InfoType type); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_SetInfoDateAttr (HPDF_Doc pdf, + HPDF_InfoType type, + HPDF_Date value); + + +/*--------------------------------------------------------------------------*/ +/*----- encryption ---------------------------------------------------------*/ + +HPDF_EXPORT(HPDF_STATUS) +HPDF_SetPassword (HPDF_Doc pdf, + const char *owner_passwd, + const char *user_passwd); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_SetPermission (HPDF_Doc pdf, + HPDF_UINT permission); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_SetEncryptionMode (HPDF_Doc pdf, + HPDF_EncryptMode mode, + HPDF_UINT key_len); + + +/*--------------------------------------------------------------------------*/ +/*----- compression --------------------------------------------------------*/ + +HPDF_EXPORT(HPDF_STATUS) +HPDF_SetCompressionMode (HPDF_Doc pdf, + HPDF_UINT mode); + + +/*--------------------------------------------------------------------------*/ +/*----- font ---------------------------------------------------------------*/ + +HPDF_EXPORT(const char*) +HPDF_Font_GetFontName (HPDF_Font font); + + +HPDF_EXPORT(const char*) +HPDF_Font_GetEncodingName (HPDF_Font font); + + +HPDF_EXPORT(HPDF_INT) +HPDF_Font_GetUnicodeWidth (HPDF_Font font, + HPDF_UNICODE code); + +HPDF_EXPORT(HPDF_Box) +HPDF_Font_GetBBox (HPDF_Font font); + + +HPDF_EXPORT(HPDF_INT) +HPDF_Font_GetAscent (HPDF_Font font); + + +HPDF_EXPORT(HPDF_INT) +HPDF_Font_GetDescent (HPDF_Font font); + + +HPDF_EXPORT(HPDF_UINT) +HPDF_Font_GetXHeight (HPDF_Font font); + + +HPDF_EXPORT(HPDF_UINT) +HPDF_Font_GetCapHeight (HPDF_Font font); + + +HPDF_EXPORT(HPDF_TextWidth) +HPDF_Font_TextWidth (HPDF_Font font, + const HPDF_BYTE *text, + HPDF_UINT len); + + +HPDF_EXPORT(HPDF_UINT) +HPDF_Font_MeasureText (HPDF_Font font, + const HPDF_BYTE *text, + HPDF_UINT len, + HPDF_REAL width, + HPDF_REAL font_size, + HPDF_REAL char_space, + HPDF_REAL word_space, + HPDF_BOOL wordwrap, + HPDF_REAL *real_width); + + +/*--------------------------------------------------------------------------*/ +/*----- extended graphics state --------------------------------------------*/ + +HPDF_EXPORT(HPDF_ExtGState) +HPDF_CreateExtGState (HPDF_Doc pdf); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_ExtGState_SetAlphaStroke (HPDF_ExtGState ext_gstate, + HPDF_REAL value); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_ExtGState_SetAlphaFill (HPDF_ExtGState ext_gstate, + HPDF_REAL value); + + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_ExtGState_SetBlendMode (HPDF_ExtGState ext_gstate, + HPDF_BlendMode mode); + + +/*--------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------*/ + +HPDF_EXPORT(HPDF_REAL) +HPDF_Page_TextWidth (HPDF_Page page, + const char *text); + + +HPDF_EXPORT(HPDF_UINT) +HPDF_Page_MeasureText (HPDF_Page page, + const char *text, + HPDF_REAL width, + HPDF_BOOL wordwrap, + HPDF_REAL *real_width); + + +HPDF_EXPORT(HPDF_REAL) +HPDF_Page_GetWidth (HPDF_Page page); + + +HPDF_EXPORT(HPDF_REAL) +HPDF_Page_GetHeight (HPDF_Page page); + + +HPDF_EXPORT(HPDF_UINT16) +HPDF_Page_GetGMode (HPDF_Page page); + + +HPDF_EXPORT(HPDF_Point) +HPDF_Page_GetCurrentPos (HPDF_Page page); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_GetCurrentPos2 (HPDF_Page page, + HPDF_Point *pos); + + +HPDF_EXPORT(HPDF_Point) +HPDF_Page_GetCurrentTextPos (HPDF_Page page); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_GetCurrentTextPos2 (HPDF_Page page, + HPDF_Point *pos); + + +HPDF_EXPORT(HPDF_Font) +HPDF_Page_GetCurrentFont (HPDF_Page page); + + +HPDF_EXPORT(HPDF_REAL) +HPDF_Page_GetCurrentFontSize (HPDF_Page page); + + +HPDF_EXPORT(HPDF_TransMatrix) +HPDF_Page_GetTransMatrix (HPDF_Page page); + + +HPDF_EXPORT(HPDF_REAL) +HPDF_Page_GetLineWidth (HPDF_Page page); + + +HPDF_EXPORT(HPDF_LineCap) +HPDF_Page_GetLineCap (HPDF_Page page); + + +HPDF_EXPORT(HPDF_LineJoin) +HPDF_Page_GetLineJoin (HPDF_Page page); + + +HPDF_EXPORT(HPDF_REAL) +HPDF_Page_GetMiterLimit (HPDF_Page page); + + +HPDF_EXPORT(HPDF_DashMode) +HPDF_Page_GetDash (HPDF_Page page); + + +HPDF_EXPORT(HPDF_REAL) +HPDF_Page_GetFlat (HPDF_Page page); + + +HPDF_EXPORT(HPDF_REAL) +HPDF_Page_GetCharSpace (HPDF_Page page); + + +HPDF_EXPORT(HPDF_REAL) +HPDF_Page_GetWordSpace (HPDF_Page page); + + +HPDF_EXPORT(HPDF_REAL) +HPDF_Page_GetHorizontalScalling (HPDF_Page page); + + +HPDF_EXPORT(HPDF_REAL) +HPDF_Page_GetTextLeading (HPDF_Page page); + + +HPDF_EXPORT(HPDF_TextRenderingMode) +HPDF_Page_GetTextRenderingMode (HPDF_Page page); + + +/* This function is obsolete. Use HPDF_Page_GetTextRise. */ +HPDF_EXPORT(HPDF_REAL) +HPDF_Page_GetTextRaise (HPDF_Page page); + + +HPDF_EXPORT(HPDF_REAL) +HPDF_Page_GetTextRise (HPDF_Page page); + + +HPDF_EXPORT(HPDF_RGBColor) +HPDF_Page_GetRGBFill (HPDF_Page page); + + +HPDF_EXPORT(HPDF_RGBColor) +HPDF_Page_GetRGBStroke (HPDF_Page page); + + +HPDF_EXPORT(HPDF_CMYKColor) +HPDF_Page_GetCMYKFill (HPDF_Page page); + + +HPDF_EXPORT(HPDF_CMYKColor) +HPDF_Page_GetCMYKStroke (HPDF_Page page); + + +HPDF_EXPORT(HPDF_REAL) +HPDF_Page_GetGrayFill (HPDF_Page page); + + +HPDF_EXPORT(HPDF_REAL) +HPDF_Page_GetGrayStroke (HPDF_Page page); + + +HPDF_EXPORT(HPDF_ColorSpace) +HPDF_Page_GetStrokingColorSpace (HPDF_Page page); + + +HPDF_EXPORT(HPDF_ColorSpace) +HPDF_Page_GetFillingColorSpace (HPDF_Page page); + + +HPDF_EXPORT(HPDF_TransMatrix) +HPDF_Page_GetTextMatrix (HPDF_Page page); + + +HPDF_EXPORT(HPDF_UINT) +HPDF_Page_GetGStateDepth (HPDF_Page page); + + +/*--------------------------------------------------------------------------*/ +/*----- GRAPHICS OPERATORS -------------------------------------------------*/ + + +/*--- General graphics state ---------------------------------------------*/ + +/* w */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetLineWidth (HPDF_Page page, + HPDF_REAL line_width); + +/* J */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetLineCap (HPDF_Page page, + HPDF_LineCap line_cap); + +/* j */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetLineJoin (HPDF_Page page, + HPDF_LineJoin line_join); + +/* M */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetMiterLimit (HPDF_Page page, + HPDF_REAL miter_limit); + +/* d */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetDash (HPDF_Page page, + const HPDF_UINT16 *dash_ptn, + HPDF_UINT num_param, + HPDF_UINT phase); + + + +/* ri --not implemented yet */ + +/* i */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetFlat (HPDF_Page page, + HPDF_REAL flatness); + +/* gs */ + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetExtGState (HPDF_Page page, + HPDF_ExtGState ext_gstate); + + +/*--- Special graphic state operator --------------------------------------*/ + +/* q */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_GSave (HPDF_Page page); + +/* Q */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_GRestore (HPDF_Page page); + +/* cm */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_Concat (HPDF_Page page, + HPDF_REAL a, + HPDF_REAL b, + HPDF_REAL c, + HPDF_REAL d, + HPDF_REAL x, + HPDF_REAL y); + +/*--- Path construction operator ------------------------------------------*/ + +/* m */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_MoveTo (HPDF_Page page, + HPDF_REAL x, + HPDF_REAL y); + +/* l */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_LineTo (HPDF_Page page, + HPDF_REAL x, + HPDF_REAL y); + +/* c */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_CurveTo (HPDF_Page page, + HPDF_REAL x1, + HPDF_REAL y1, + HPDF_REAL x2, + HPDF_REAL y2, + HPDF_REAL x3, + HPDF_REAL y3); + +/* v */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_CurveTo2 (HPDF_Page page, + HPDF_REAL x2, + HPDF_REAL y2, + HPDF_REAL x3, + HPDF_REAL y3); + +/* y */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_CurveTo3 (HPDF_Page page, + HPDF_REAL x1, + HPDF_REAL y1, + HPDF_REAL x3, + HPDF_REAL y3); + +/* h */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_ClosePath (HPDF_Page page); + +/* re */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_Rectangle (HPDF_Page page, + HPDF_REAL x, + HPDF_REAL y, + HPDF_REAL width, + HPDF_REAL height); + + +/*--- Path painting operator ---------------------------------------------*/ + +/* S */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_Stroke (HPDF_Page page); + +/* s */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_ClosePathStroke (HPDF_Page page); + +/* f */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_Fill (HPDF_Page page); + +/* f* */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_Eofill (HPDF_Page page); + +/* B */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_FillStroke (HPDF_Page page); + +/* B* */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_EofillStroke (HPDF_Page page); + +/* b */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_ClosePathFillStroke (HPDF_Page page); + +/* b* */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_ClosePathEofillStroke (HPDF_Page page); + +/* n */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_EndPath (HPDF_Page page); + + +/*--- Clipping paths operator --------------------------------------------*/ + +/* W */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_Clip (HPDF_Page page); + +/* W* */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_Eoclip (HPDF_Page page); + + +/*--- Text object operator -----------------------------------------------*/ + +/* BT */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_BeginText (HPDF_Page page); + +/* ET */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_EndText (HPDF_Page page); + +/*--- Text state ---------------------------------------------------------*/ + +/* Tc */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetCharSpace (HPDF_Page page, + HPDF_REAL value); + +/* Tw */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetWordSpace (HPDF_Page page, + HPDF_REAL value); + +/* Tz */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetHorizontalScalling (HPDF_Page page, + HPDF_REAL value); + +/* TL */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetTextLeading (HPDF_Page page, + HPDF_REAL value); + +/* Tf */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetFontAndSize (HPDF_Page page, + HPDF_Font font, + HPDF_REAL size); + +/* Tr */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetTextRenderingMode (HPDF_Page page, + HPDF_TextRenderingMode mode); + +/* Ts */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetTextRise (HPDF_Page page, + HPDF_REAL value); + +/* This function is obsolete. Use HPDF_Page_SetTextRise. */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetTextRaise (HPDF_Page page, + HPDF_REAL value); + +/*--- Text positioning ---------------------------------------------------*/ + +/* Td */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_MoveTextPos (HPDF_Page page, + HPDF_REAL x, + HPDF_REAL y); + +/* TD */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_MoveTextPos2 (HPDF_Page page, + HPDF_REAL x, + HPDF_REAL y); + +/* Tm */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetTextMatrix (HPDF_Page page, + HPDF_REAL a, + HPDF_REAL b, + HPDF_REAL c, + HPDF_REAL d, + HPDF_REAL x, + HPDF_REAL y); + + +/* T* */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_MoveToNextLine (HPDF_Page page); + +/*--- Text showing -------------------------------------------------------*/ + +/* Tj */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_ShowText (HPDF_Page page, + const char *text); + +/* TJ */ + +/* ' */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_ShowTextNextLine (HPDF_Page page, + const char *text); + +/* " */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_ShowTextNextLineEx (HPDF_Page page, + HPDF_REAL word_space, + HPDF_REAL char_space, + const char *text); + + +/*--- Color showing ------------------------------------------------------*/ + +/* cs --not implemented yet */ +/* CS --not implemented yet */ +/* sc --not implemented yet */ +/* scn --not implemented yet */ +/* SC --not implemented yet */ +/* SCN --not implemented yet */ + +/* g */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetGrayFill (HPDF_Page page, + HPDF_REAL gray); + +/* G */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetGrayStroke (HPDF_Page page, + HPDF_REAL gray); + +/* rg */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetRGBFill (HPDF_Page page, + HPDF_REAL r, + HPDF_REAL g, + HPDF_REAL b); + +/* RG */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetRGBStroke (HPDF_Page page, + HPDF_REAL r, + HPDF_REAL g, + HPDF_REAL b); + +/* k */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetCMYKFill (HPDF_Page page, + HPDF_REAL c, + HPDF_REAL m, + HPDF_REAL y, + HPDF_REAL k); + +/* K */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetCMYKStroke (HPDF_Page page, + HPDF_REAL c, + HPDF_REAL m, + HPDF_REAL y, + HPDF_REAL k); + +/*--- Shading patterns ---------------------------------------------------*/ + +/* sh --not implemented yet */ + +/*--- In-line images -----------------------------------------------------*/ + +/* BI --not implemented yet */ +/* ID --not implemented yet */ +/* EI --not implemented yet */ + +/*--- XObjects -----------------------------------------------------------*/ + +/* Do */ +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_ExecuteXObject (HPDF_Page page, + HPDF_XObject obj); + +/*--- Marked content -----------------------------------------------------*/ + +/* BMC --not implemented yet */ +/* BDC --not implemented yet */ +/* EMC --not implemented yet */ +/* MP --not implemented yet */ +/* DP --not implemented yet */ + +/*--- Compatibility ------------------------------------------------------*/ + +/* BX --not implemented yet */ +/* EX --not implemented yet */ + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_DrawImage (HPDF_Page page, + HPDF_Image image, + HPDF_REAL x, + HPDF_REAL y, + HPDF_REAL width, + HPDF_REAL height); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_Circle (HPDF_Page page, + HPDF_REAL x, + HPDF_REAL y, + HPDF_REAL ray); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_Ellipse (HPDF_Page page, + HPDF_REAL x, + HPDF_REAL y, + HPDF_REAL xray, + HPDF_REAL yray); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_Arc (HPDF_Page page, + HPDF_REAL x, + HPDF_REAL y, + HPDF_REAL ray, + HPDF_REAL ang1, + HPDF_REAL ang2); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_TextOut (HPDF_Page page, + HPDF_REAL xpos, + HPDF_REAL ypos, + const char *text); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_TextRect (HPDF_Page page, + HPDF_REAL left, + HPDF_REAL top, + HPDF_REAL right, + HPDF_REAL bottom, + const char *text, + HPDF_TextAlignment align, + HPDF_UINT *len); + + +HPDF_EXPORT(HPDF_STATUS) +HPDF_Page_SetSlideShow (HPDF_Page page, + HPDF_TransitionStyle type, + HPDF_REAL disp_time, + HPDF_REAL trans_time); + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* _HPDF_H */ + diff --git a/harbour/contrib/hbhpdf/tests/32_32_2color.dat b/harbour/contrib/hbhpdf/tests/32_32_2color.dat new file mode 100644 index 0000000000000000000000000000000000000000..77cef94be7f5e93d394eb7fe69633cf961123820 GIT binary patch literal 128 zcmWm0u?fI15Cp-?oCw^CK@F-jb>J4h1c8zd9-Y?<18e)(E+p384or;Qt=$hwc_o(W f4NTbsk`D@bhZmwfo*2CDIBHKJ`Gt@)G4S^Rowi9Y literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbhpdf/tests/32_32_gray.dat b/harbour/contrib/hbhpdf/tests/32_32_gray.dat new file mode 100644 index 0000000000000000000000000000000000000000..82ea9e5ef048039321c57662de8eb1aa1c29943e GIT binary patch literal 1024 zcmZSJ6p~iaHM92!j7rWat!tk!bJ6N8dyk#J@$l8>KOe5{V&WE&Rnxa{^a_qi%`0!{ zoHTpM+HLz!T)g%8&DVdg&TnDi6_eL6v~uK|4&Y? zW8;@l)H1el^$SnPEUIqloi=~P#$AWcT)p@F!_S}h4zJ)4lv36)wQ~=MOv)~)ZR?-0 zaMk8LN6%e<@bc5|&o}li;u4lo)iZbS42n+4EvxUCIBW5mt^1B&xcTVym%nc>ZJ)y< zDyME>>Es;}o0ebE*fn|1(skPpoV;}V$=h%LpP$({jZa)b)5zMzH!MD*u&TLd>b&I} zb{;x?{FYt($*DVpefYYv1$*D>v;va`xK&7axCpyM1737yi(h z--17MX4c^koyisWL#MY0f9SO5;18X~H2k4coq#`dN~7?HPJRf!v@^dY(+^+TnOT?Y zfiLY$u84KQmv(xK!fo)So%WnSGkj^MG0ocmU)rfoaMi+>c1ok{Rq&;q{18hy+&K#r kI>r*Xa~3FcbcJx|EKumE^We@|pwLld!=1B0p(D)z0O>41^#A|> literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbhpdf/tests/32_32_rgb.dat b/harbour/contrib/hbhpdf/tests/32_32_rgb.dat new file mode 100644 index 0000000000000000000000000000000000000000..f728d48eb38eb441dacd879b251ba21548f1bb90 GIT binary patch literal 3072 zcmWNT5xBKL7=&Lu7^YzurePSSVHl=i7^Yzut}ZSvt}ZSv?wMci|J-{{?S9|PJ5vg| zkP5L73clb9wqOch;VnFcyKoiG!co`@TVX9Mg}E>l#==nO3tgctG=;iQ6@CQ@C6hBL z6Eh*>GcIE@Ci7+9%#*n@SLVzdnLV>**36QbGgD^F44FRDW!g-WsWVmPmm&X3A}3NJ zCPKm|T*4+y;!C`VCvhjP#F;n}dtythi6t>7ro@;S5`Cgew23BBC#u9R{YX`bprwHqu1uNELs-SP|3EY7za0ZUR9@qkFUy*GkHeO;ORY`r}Z@cSNp2+_0Ko>wm7mQ zIie#tyu&%H!#F<2>v$Zu<8qvi!?8Oy$Ld%dvtx3Mj=|A8I!Eh%jjL)`SFZWF7S|O^ zwj@im1dF#gi?tZbXL&7;<+faw({fmL%Vt?Ei)FS^w3X?8 zrpFBBBY&ii_z^z*hx@P}=HvT#Kc0{KV%(FZ;{(vc4=Y^UL%yzQ5tE z`nT@hrhVJy?drF$-r@I-yi<9|59uL3ga`lN9_)j8_#WPe=iz?19?pm3VSm^j)`#U` zewd!$_*BDF_fOM3ZToc1)7Q^XJ>&10c;<4GZ_-V?2{-=6-Pjv*^WD5R&&_>v-JCba z&3?1ptT)TeeE+7q8t;0zoBnRQyKC>hxrh25t9$z0Gxt(1@F20NR z;<>mlu8Z^HxY#eYi}hl;e)CmLS3O?MaJBu_byweBLvxMwHC5OAyB4msoaB>q5>LX3 zKXE7a#GHI5@5ys=pIj&B$#JruY$xmaTh3}e>*;L9vmMT^Kl|<++H-8qsXpiGTz==u zxs`)_kPhNOIPeGVz#f=`@8CUn4(@~N;5;}E_Ji&Ctw*&S^?Wqb(T+zq9DRQb-7&Vu z)EsktEY-38j*Vk4J9#JV#GSC?cifKMF+1PRyYuYaJJ-&+>*MVEZ`-SNua~`<_jcO5 zaqowH==ZVPr*@y4eW~}g+PB}XPakC?Z={X55jOmW+prsEo}}azs}vdw5$H6*XxEFqV{x^g}jg!;zC&P3vR(K zn1yfQU3eC$j7#g%P<3@3P>)%yZK^vb)UWnKTn; z!i=ABGj_(zd^7JXi*QS8QiS%V>1qZ#sh&3v^E^)TG|u{;UZ(qKWZH@rFKtP_a>!FA z@kaxjY6n`glq9jr53-zG zEpUiUUm3^)X&?@S0YBgd>>#r82~h%x>@HKvIuf{KD6wdz8ob7%OXyYl#UPE!26CFr zEM5pnqMpENN>A=dJ+UYB_#W3Q7BJ$gC@5BmDDu7BDGy2M(xX(P-D(4xlWwDT>My-K zEKG<*f}MCOWGfYH>Bt?aBX)!i-zn3u3I`!vpcM`UEulpKkWFPKNnXN~e6(b(LIcya z^m2Wq6XS$Yky>G(yiugN(vn+JOKb_P0vV@dQ~oF=#Bvc=Tok>;7?D7Jm8+zEDO5Vr zwzU&YPWRI(^x0M!pqNpTDJ+%8zBJ^9)DRoB3A|!i;i-sI5GgJMb)i>)6vhM_AwkBK zy<`GORf5vmwH%F57u9j}rA8U47*^7&OoURCYf`N$L{O(t@++T}qRKiYl5#_I7lTDg z@l4ba8{}a5Om2{7r7Z1VThc6bW1UOiuGJw_Q`CfFsmPUj98rZxwMFGZ6+l6)I92E= zniL?yykIP33T(oUAR#NuaI%HOD~U-6T9<~ZtLuPzOr?&c8kfpXC6uH#r_QBjr2e9o zp)R1rR<0`jlu=3&@m^FGJ4HBgNVJfrj7o>9fdX7Ht1wh#DOiMmL0Tvk@PsA7Ll&12WfzHB(vv{6Mh#md(ZN;F E{|<+%RR910 literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbhpdf/tests/a010013l.afm b/harbour/contrib/hbhpdf/tests/a010013l.afm new file mode 100644 index 0000000000..dd4d2c280f --- /dev/null +++ b/harbour/contrib/hbhpdf/tests/a010013l.afm @@ -0,0 +1,1569 @@ +StartFontMetrics 2.0 +Comment Generated by pfaedit +Comment Creation Date: Thu Dec 26 23:03:13 2002 +FontName URWGothicL-Book +FullName URW Gothic L Book +FamilyName URW Gothic L +Weight Book +Notice (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development; Cyrillic glyphs added by Valek Filippov (C) 2001-2002) +ItalicAngle 0 +IsFixedPitch false +UnderlinePosition -96 +UnderlineThickness 58 +Version 1.06 +EncodingScheme AdobeStandardEncoding +FontBBox -115 -240 1151 1009 +CapHeight 739 +XHeight 547 +Ascender 739 +Descender -192 +StartCharMetrics 560 +C 0 ; WX 277 ; N .notdef ; B 0 0 0 0 ; +C 32 ; WX 277 ; N space ; B 0 0 0 0 ; +C 33 ; WX 295 ; N exclam ; B 111 0 185 739 ; +C 34 ; WX 309 ; N quotedbl ; B 74 513 237 739 ; +C 35 ; WX 554 ; N numbersign ; B 5 0 549 739 ; +C 36 ; WX 554 ; N dollar ; B 74 -56 479 810 ; +C 37 ; WX 775 ; N percent ; B 13 -13 752 749 ; +C 38 ; WX 757 ; N ampersand ; B 57 -13 735 752 ; +C 39 ; WX 351 ; N quoteright ; B 91 547 253 739 ; +C 40 ; WX 369 ; N parenleft ; B 57 -125 335 739 ; +C 41 ; WX 369 ; N parenright ; B 34 -125 312 739 ; +C 42 ; WX 425 ; N asterisk ; B 64 468 360 752 ; +C 43 ; WX 606 ; N plus ; B 51 49 555 557 ; +C 44 ; WX 277 ; N comma ; B 91 -67 253 126 ; +C 45 ; WX 332 ; N hyphen ; B 31 233 302 296 ; +C 46 ; WX 277 ; N period ; B 101 0 175 126 ; +C 47 ; WX 437 ; N slash ; B 40 -128 397 739 ; +C 48 ; WX 554 ; N zero ; B 30 -13 525 752 ; +C 49 ; WX 554 ; N one ; B 155 0 354 739 ; +C 50 ; WX 554 ; N two ; B 33 0 506 752 ; +C 51 ; WX 554 ; N three ; B 33 -13 504 752 ; +C 52 ; WX 554 ; N four ; B 12 0 527 739 ; +C 53 ; WX 554 ; N five ; B 26 -13 528 739 ; +C 54 ; WX 554 ; N six ; B 25 -13 529 739 ; +C 55 ; WX 554 ; N seven ; B 64 0 490 739 ; +C 56 ; WX 554 ; N eight ; B 42 -13 512 752 ; +C 57 ; WX 554 ; N nine ; B 25 0 529 752 ; +C 58 ; WX 277 ; N colon ; B 101 0 175 507 ; +C 59 ; WX 277 ; N semicolon ; B 41 -67 203 507 ; +C 60 ; WX 606 ; N less ; B 49 37 558 565 ; +C 61 ; WX 606 ; N equal ; B 51 164 555 436 ; +C 62 ; WX 606 ; N greater ; B 48 37 557 565 ; +C 63 ; WX 591 ; N question ; B 65 0 525 752 ; +C 64 ; WX 867 ; N at ; B 71 -13 797 752 ; +C 65 ; WX 740 ; N A ; B 11 0 729 739 ; +C 66 ; WX 574 ; N B ; B 76 0 544 739 ; +C 67 ; WX 813 ; N C ; B 44 -13 770 752 ; +C 68 ; WX 744 ; N D ; B 76 0 700 739 ; +C 69 ; WX 536 ; N E ; B 76 0 480 739 ; +C 70 ; WX 485 ; N F ; B 76 0 451 739 ; +C 71 ; WX 872 ; N G ; B 44 -13 831 752 ; +C 72 ; WX 683 ; N H ; B 76 0 607 739 ; +C 73 ; WX 226 ; N I ; B 76 0 150 739 ; L J IJ ; +C 74 ; WX 482 ; N J ; B 11 -14 406 739 ; +C 75 ; WX 591 ; N K ; B 76 0 585 739 ; +C 76 ; WX 462 ; N L ; B 76 0 456 739 ; +C 77 ; WX 919 ; N M ; B 76 0 843 739 ; +C 78 ; WX 740 ; N N ; B 76 0 664 739 ; +C 79 ; WX 869 ; N O ; B 44 -13 825 752 ; +C 80 ; WX 592 ; N P ; B 76 0 565 739 ; +C 81 ; WX 871 ; N Q ; B 44 -13 839 752 ; +C 82 ; WX 607 ; N R ; B 76 0 577 739 ; +C 83 ; WX 498 ; N S ; B 22 -13 476 752 ; +C 84 ; WX 426 ; N T ; B 7 0 419 739 ; +C 85 ; WX 655 ; N U ; B 76 -13 579 739 ; +C 86 ; WX 702 ; N V ; B 10 0 692 739 ; +C 87 ; WX 960 ; N W ; B 10 0 950 739 ; +C 88 ; WX 609 ; N X ; B 8 0 601 739 ; +C 89 ; WX 592 ; N Y ; B 2 0 590 739 ; +C 90 ; WX 480 ; N Z ; B 17 0 474 739 ; +C 91 ; WX 351 ; N bracketleft ; B 112 -125 313 739 ; +C 92 ; WX 605 ; N backslash ; B 84 0 464 739 ; +C 93 ; WX 351 ; N bracketright ; B 38 -125 239 739 ; +C 94 ; WX 606 ; N asciicircum ; B 18 180 588 739 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -67 ; +C 96 ; WX 351 ; N quoteleft ; B 98 547 260 739 ; +C 97 ; WX 683 ; N a ; B 42 -13 620 560 ; +C 98 ; WX 682 ; N b ; B 63 -13 640 739 ; +C 99 ; WX 647 ; N c ; B 42 -13 608 560 ; +C 100 ; WX 685 ; N d ; B 42 -13 622 739 ; +C 101 ; WX 650 ; N e ; B 42 -13 611 560 ; +C 102 ; WX 314 ; N f ; B 16 0 311 739 ; L l fl ; L i fi ; +C 103 ; WX 673 ; N g ; B 42 -215 610 560 ; +C 104 ; WX 610 ; N h ; B 63 0 547 739 ; +C 105 ; WX 200 ; N i ; B 63 0 137 739 ; L j ij ; +C 106 ; WX 203 ; N j ; B -45 -192 140 739 ; +C 107 ; WX 502 ; N k ; B 63 0 497 739 ; +C 108 ; WX 200 ; N l ; B 63 0 137 739 ; +C 109 ; WX 938 ; N m ; B 63 0 875 561 ; +C 110 ; WX 610 ; N n ; B 63 0 547 560 ; +C 111 ; WX 655 ; N o ; B 42 -13 613 560 ; +C 112 ; WX 682 ; N p ; B 63 -192 640 560 ; +C 113 ; WX 682 ; N q ; B 42 -192 619 560 ; +C 114 ; WX 301 ; N r ; B 63 0 292 560 ; +C 115 ; WX 388 ; N s ; B 18 -13 361 560 ; +C 116 ; WX 339 ; N t ; B 12 0 327 739 ; +C 117 ; WX 608 ; N u ; B 63 -13 545 547 ; +C 118 ; WX 554 ; N v ; B 8 0 546 547 ; +C 119 ; WX 831 ; N w ; B 7 0 824 547 ; +C 120 ; WX 480 ; N x ; B 8 0 472 547 ; +C 121 ; WX 536 ; N y ; B 9 -192 527 547 ; +C 122 ; WX 425 ; N z ; B 10 0 415 547 ; +C 123 ; WX 351 ; N braceleft ; B 37 -126 271 739 ; +C 124 ; WX 672 ; N bar ; B 304 0 368 739 ; +C 125 ; WX 351 ; N braceright ; B 38 -126 269 739 ; +C 126 ; WX 606 ; N asciitilde ; B 51 210 555 390 ; +C 161 ; WX 295 ; N exclamdown ; B 111 -192 185 547 ; +C 162 ; WX 554 ; N cent ; B 45 62 509 707 ; +C 163 ; WX 554 ; N sterling ; B 18 0 592 752 ; +C 164 ; WX 166 ; N fraction ; B -115 0 281 739 ; +C 165 ; WX 554 ; N yen ; B 0 0 589 739 ; +C 166 ; WX 554 ; N florin ; B 18 -153 546 818 ; +C 167 ; WX 615 ; N section ; B 87 -141 529 752 ; +C 168 ; WX 554 ; N currency ; B 26 50 528 553 ; +C 169 ; WX 198 ; N quotesingle ; B 74 513 124 739 ; +C 170 ; WX 502 ; N quotedblleft ; B 96 547 406 739 ; +C 171 ; WX 425 ; N guillemotleft ; B 40 99 385 499 ; +C 172 ; WX 251 ; N guilsinglleft ; B 40 99 211 499 ; +C 173 ; WX 251 ; N guilsinglright ; B 40 99 211 499 ; +C 174 ; WX 487 ; N fi ; B 13 0 424 739 ; +C 175 ; WX 485 ; N fl ; B 13 0 422 739 ; +C 177 ; WX 500 ; N endash ; B 0 233 500 296 ; +C 178 ; WX 553 ; N dagger ; B 59 -133 494 739 ; +C 179 ; WX 553 ; N daggerdbl ; B 59 -133 494 739 ; +C 180 ; WX 277 ; N periodcentered ; B 101 229 175 355 ; +C 182 ; WX 564 ; N paragraph ; B 37 -133 491 739 ; +C 183 ; WX 606 ; N bullet ; B 118 118 488 488 ; +C 184 ; WX 354 ; N quotesinglbase ; B 89 -67 251 126 ; +C 185 ; WX 502 ; N quotedblbase ; B 89 -67 398 126 ; +C 186 ; WX 484 ; N quotedblright ; B 87 547 393 739 ; +C 187 ; WX 425 ; N guillemotright ; B 40 99 385 499 ; +C 188 ; WX 1000 ; N ellipsis ; B 130 0 870 126 ; +C 189 ; WX 1174 ; N perthousand ; B 13 -13 1151 749 ; +C 191 ; WX 591 ; N questiondown ; B 66 -205 526 547 ; +C 193 ; WX 378 ; N grave ; B 74 610 304 776 ; +C 194 ; WX 375 ; N acute ; B 74 610 301 782 ; +C 195 ; WX 502 ; N circumflex ; B 74 623 428 749 ; +C 196 ; WX 439 ; N tilde ; B 75 633 365 728 ; +C 197 ; WX 485 ; N macron ; B 74 643 411 707 ; +C 198 ; WX 453 ; N breve ; B 74 623 378 743 ; +C 199 ; WX 222 ; N dotaccent ; B 74 623 148 749 ; +C 200 ; WX 369 ; N dieresis ; B 74 623 295 749 ; +C 202 ; WX 332 ; N ring ; B 74 610 258 794 ; +C 203 ; WX 324 ; N cedilla ; B 74 -213 250 0 ; +C 205 ; WX 552 ; N hungarumlaut ; B 74 610 479 780 ; +C 206 ; WX 302 ; N ogonek ; B 74 -191 228 0 ; +C 207 ; WX 502 ; N caron ; B 74 623 428 749 ; +C 208 ; WX 1000 ; N emdash ; B 0 233 1000 296 ; +C 225 ; WX 992 ; N AE ; B 11 0 936 739 ; +C 227 ; WX 369 ; N ordfeminine ; B 31 319 339 745 ; +C 232 ; WX 517 ; N Lslash ; B 26 0 502 739 ; +C 233 ; WX 868 ; N Oslash ; B 44 -83 824 821 ; +C 234 ; WX 1194 ; N OE ; B 44 -13 1138 752 ; +C 235 ; WX 369 ; N ordmasculine ; B 32 319 337 745 ; +C 241 ; WX 1157 ; N ae ; B 42 -13 1118 560 ; +C 245 ; WX 200 ; N dotlessi ; B 63 0 137 547 ; +C 248 ; WX 300 ; N lslash ; B 36 0 270 739 ; +C 249 ; WX 653 ; N oslash ; B 42 -39 611 594 ; +C 250 ; WX 1137 ; N oe ; B 42 -13 1098 560 ; +C 251 ; WX 554 ; N germandbls ; B 59 -13 524 752 ; +C -1 ; WX 740 ; N Adieresis ; B 11 0 729 931 ; +C -1 ; WX 740 ; N Aacute ; B 11 0 729 964 ; +C -1 ; WX 740 ; N Agrave ; B 11 0 729 958 ; +C -1 ; WX 740 ; N Acircumflex ; B 11 0 729 931 ; +C -1 ; WX 740 ; N Abreve ; B 11 0 729 925 ; +C -1 ; WX 740 ; N Atilde ; B 11 0 729 910 ; +C -1 ; WX 740 ; N Aring ; B 11 0 729 976 ; +C -1 ; WX 740 ; N Aogonek ; B 11 -191 760 739 ; +C -1 ; WX 813 ; N Ccedilla ; B 44 -240 770 752 ; +C -1 ; WX 813 ; N Cacute ; B 44 -13 770 964 ; +C -1 ; WX 813 ; N Ccaron ; B 44 -13 770 931 ; +C -1 ; WX 744 ; N Dcaron ; B 76 0 700 931 ; +C -1 ; WX 536 ; N Edieresis ; B 76 0 480 931 ; +C -1 ; WX 536 ; N Eacute ; B 76 0 480 964 ; +C -1 ; WX 536 ; N Egrave ; B 76 0 480 958 ; +C -1 ; WX 536 ; N Ecircumflex ; B 76 0 480 931 ; +C -1 ; WX 536 ; N Ecaron ; B 76 0 480 931 ; +C -1 ; WX 536 ; N Edotaccent ; B 76 0 480 931 ; +C -1 ; WX 536 ; N Eogonek ; B 76 -191 511 739 ; +C -1 ; WX 872 ; N Gbreve ; B 44 -13 831 925 ; +C -1 ; WX 226 ; N Idieresis ; B 3 0 224 931 ; +C -1 ; WX 226 ; N Iacute ; B -1 0 226 964 ; +C -1 ; WX 226 ; N Igrave ; B -2 0 228 958 ; +C -1 ; WX 226 ; N Icircumflex ; B -64 0 290 931 ; +C -1 ; WX 226 ; N Idotaccent ; B 76 0 150 931 ; +C -1 ; WX 462 ; N Lacute ; B 76 0 456 964 ; +C -1 ; WX 462 ; N Lcaron ; B 76 0 456 739 ; +C -1 ; WX 740 ; N Nacute ; B 76 0 664 964 ; +C -1 ; WX 740 ; N Ncaron ; B 76 0 664 931 ; +C -1 ; WX 740 ; N Ntilde ; B 76 0 664 910 ; +C -1 ; WX 869 ; N Odieresis ; B 44 -13 825 931 ; +C -1 ; WX 869 ; N Oacute ; B 44 -13 825 964 ; +C -1 ; WX 869 ; N Ograve ; B 44 -13 825 958 ; +C -1 ; WX 869 ; N Ocircumflex ; B 44 -13 825 931 ; +C -1 ; WX 869 ; N Otilde ; B 44 -13 825 910 ; +C -1 ; WX 869 ; N Ohungarumlaut ; B 44 -13 825 962 ; +C -1 ; WX 607 ; N Racute ; B 76 0 577 964 ; +C -1 ; WX 607 ; N Rcaron ; B 76 0 577 931 ; +C -1 ; WX 498 ; N Sacute ; B 22 -13 476 964 ; +C -1 ; WX 498 ; N Scaron ; B 22 -13 476 931 ; +C -1 ; WX 498 ; N Scedilla ; B 22 -213 476 752 ; +C -1 ; WX 426 ; N Tcaron ; B 7 0 419 931 ; +C -1 ; WX 655 ; N Udieresis ; B 76 -13 579 931 ; +C -1 ; WX 655 ; N Uacute ; B 76 -13 579 964 ; +C -1 ; WX 655 ; N Ugrave ; B 76 -13 579 958 ; +C -1 ; WX 655 ; N Ucircumflex ; B 76 -13 579 931 ; +C -1 ; WX 655 ; N Uring ; B 76 -13 579 976 ; +C -1 ; WX 655 ; N Uhungarumlaut ; B 76 -13 579 962 ; +C -1 ; WX 592 ; N Yacute ; B 2 0 590 964 ; +C -1 ; WX 480 ; N Zacute ; B 17 0 474 964 ; +C -1 ; WX 480 ; N Zcaron ; B 17 0 474 931 ; +C -1 ; WX 480 ; N Zdotaccent ; B 17 0 474 931 ; +C -1 ; WX 740 ; N Amacron ; B 11 0 729 889 ; +C -1 ; WX 426 ; N Tcommaaccent ; B 7 -225 419 739 ; +C -1 ; WX 592 ; N Ydieresis ; B 2 0 590 931 ; +C -1 ; WX 536 ; N Emacron ; B 76 0 480 889 ; +C -1 ; WX 226 ; N Imacron ; B -56 0 281 889 ; +C -1 ; WX 226 ; N Iogonek ; B 27 -191 181 739 ; +C -1 ; WX 591 ; N Kcommaaccent ; B 76 -225 585 739 ; +C -1 ; WX 462 ; N Lcommaaccent ; B 76 -225 456 739 ; +C -1 ; WX 740 ; N Ncommaaccent ; B 76 -225 664 739 ; +C -1 ; WX 869 ; N Omacron ; B 44 -13 825 889 ; +C -1 ; WX 607 ; N Rcommaaccent ; B 76 -225 577 739 ; +C -1 ; WX 872 ; N Gcommaaccent ; B 44 -225 831 752 ; +C -1 ; WX 655 ; N Umacron ; B 76 -13 579 889 ; +C -1 ; WX 655 ; N Uogonek ; B 76 -191 579 739 ; +C -1 ; WX 683 ; N adieresis ; B 42 -13 620 749 ; +C -1 ; WX 683 ; N aacute ; B 42 -13 620 782 ; +C -1 ; WX 683 ; N agrave ; B 42 -13 620 776 ; +C -1 ; WX 683 ; N acircumflex ; B 42 -13 620 749 ; +C -1 ; WX 683 ; N abreve ; B 42 -13 620 743 ; +C -1 ; WX 683 ; N atilde ; B 42 -13 620 728 ; +C -1 ; WX 683 ; N aring ; B 42 -13 620 794 ; +C -1 ; WX 683 ; N aogonek ; B 42 -191 651 560 ; +C -1 ; WX 647 ; N cacute ; B 42 -13 608 782 ; +C -1 ; WX 647 ; N ccaron ; B 42 -13 608 749 ; +C -1 ; WX 647 ; N ccedilla ; B 42 -224 608 560 ; +C -1 ; WX 725 ; N dcaron ; B 42 -13 765 739 ; +C -1 ; WX 650 ; N edieresis ; B 42 -13 611 749 ; +C -1 ; WX 650 ; N eacute ; B 42 -13 611 782 ; +C -1 ; WX 650 ; N egrave ; B 42 -13 611 776 ; +C -1 ; WX 650 ; N ecircumflex ; B 42 -13 611 749 ; +C -1 ; WX 650 ; N ecaron ; B 42 -13 611 749 ; +C -1 ; WX 650 ; N edotaccent ; B 42 -13 611 749 ; +C -1 ; WX 650 ; N eogonek ; B 42 -191 611 560 ; +C -1 ; WX 673 ; N gbreve ; B 42 -215 610 743 ; +C -1 ; WX 200 ; N idieresis ; B -10 0 211 749 ; +C -1 ; WX 200 ; N iacute ; B -13 0 214 782 ; +C -1 ; WX 200 ; N igrave ; B -15 0 215 776 ; +C -1 ; WX 200 ; N icircumflex ; B -77 0 277 749 ; +C -1 ; WX 200 ; N lacute ; B -14 0 213 964 ; +C -1 ; WX 245 ; N lcaron ; B 63 0 285 739 ; +C -1 ; WX 610 ; N nacute ; B 63 0 547 782 ; +C -1 ; WX 610 ; N ncaron ; B 63 0 547 749 ; +C -1 ; WX 610 ; N ntilde ; B 63 0 547 728 ; +C -1 ; WX 655 ; N odieresis ; B 42 -13 613 749 ; +C -1 ; WX 655 ; N oacute ; B 42 -13 613 782 ; +C -1 ; WX 655 ; N ograve ; B 42 -13 613 776 ; +C -1 ; WX 655 ; N ocircumflex ; B 42 -13 613 749 ; +C -1 ; WX 655 ; N otilde ; B 42 -13 613 728 ; +C -1 ; WX 655 ; N ohungarumlaut ; B 42 -13 613 780 ; +C -1 ; WX 301 ; N racute ; B 63 0 324 782 ; +C -1 ; WX 388 ; N sacute ; B 18 -13 361 782 ; +C -1 ; WX 388 ; N scaron ; B 17 -13 371 749 ; +C -1 ; WX 388 ; N scommaaccent ; B 18 -225 361 560 ; +C -1 ; WX 339 ; N tcaron ; B 12 0 379 739 ; +C -1 ; WX 608 ; N udieresis ; B 63 -13 545 749 ; +C -1 ; WX 608 ; N uacute ; B 63 -13 545 782 ; +C -1 ; WX 608 ; N ugrave ; B 63 -13 545 776 ; +C -1 ; WX 608 ; N ucircumflex ; B 63 -13 545 749 ; +C -1 ; WX 608 ; N uring ; B 63 -13 545 794 ; +C -1 ; WX 608 ; N uhungarumlaut ; B 63 -13 547 780 ; +C -1 ; WX 536 ; N yacute ; B 9 -192 527 782 ; +C -1 ; WX 425 ; N zacute ; B 10 0 415 782 ; +C -1 ; WX 425 ; N zcaron ; B 10 0 415 749 ; +C -1 ; WX 425 ; N zdotaccent ; B 10 0 415 749 ; +C -1 ; WX 536 ; N ydieresis ; B 9 -192 527 749 ; +C -1 ; WX 339 ; N tcommaaccent ; B 12 -225 327 739 ; +C -1 ; WX 683 ; N amacron ; B 42 -13 620 707 ; +C -1 ; WX 650 ; N emacron ; B 42 -13 611 707 ; +C -1 ; WX 200 ; N imacron ; B -69 0 268 707 ; +C -1 ; WX 502 ; N kcommaaccent ; B 63 -225 497 739 ; +C -1 ; WX 200 ; N lcommaaccent ; B 26 -225 148 739 ; +C -1 ; WX 610 ; N ncommaaccent ; B 63 -225 547 560 ; +C -1 ; WX 655 ; N omacron ; B 42 -13 613 707 ; +C -1 ; WX 301 ; N rcommaaccent ; B 63 -225 292 560 ; +C -1 ; WX 608 ; N umacron ; B 63 -13 545 707 ; +C -1 ; WX 608 ; N uogonek ; B 63 -191 576 547 ; +C -1 ; WX 301 ; N rcaron ; B 10 0 364 749 ; +C -1 ; WX 388 ; N scedilla ; B 17 -213 361 560 ; +C -1 ; WX 673 ; N gcommaaccent ; B 42 -215 610 790 ; +C -1 ; WX 200 ; N iogonek ; B 14 -191 168 739 ; +C -1 ; WX 498 ; N Scommaaccent ; B 22 -225 476 752 ; +C -1 ; WX 790 ; N Eth ; B 26 0 746 739 ; +C -1 ; WX 790 ; N Dcroat ; B 26 0 746 739 ; +C -1 ; WX 592 ; N Thorn ; B 76 0 565 739 ; +C -1 ; WX 685 ; N dcroat ; B 42 -13 685 739 ; +C -1 ; WX 655 ; N eth ; B 42 -13 613 756 ; +C -1 ; WX 682 ; N thorn ; B 63 -192 640 739 ; +C -1 ; WX 554 ; N Euro ; B -32 -13 573 752 ; +C -1 ; WX 332 ; N onesuperior ; B 98 288 233 739 ; +C -1 ; WX 332 ; N twosuperior ; B 12 288 320 747 ; +C -1 ; WX 332 ; N threesuperior ; B 13 280 319 747 ; +C -1 ; WX 400 ; N degree ; B 50 380 350 686 ; +C -1 ; WX 606 ; N minus ; B 51 267 555 341 ; +C -1 ; WX 606 ; N multiply ; B 51 48 555 551 ; +C -1 ; WX 606 ; N divide ; B 51 112 555 496 ; +C -1 ; WX 1000 ; N trademark ; B 63 340 938 739 ; +C -1 ; WX 606 ; N plusminus ; B 51 0 555 585 ; +C -1 ; WX 831 ; N onehalf ; B 96 0 814 739 ; +C -1 ; WX 831 ; N onequarter ; B 101 0 803 739 ; +C -1 ; WX 831 ; N threequarters ; B 13 0 803 747 ; +C -1 ; WX 351 ; N commaaccent ; B 101 -225 223 -53 ; +C -1 ; WX 747 ; N copyright ; B -9 -13 755 752 ; +C -1 ; WX 747 ; N registered ; B -9 -13 755 752 ; +C -1 ; WX 494 ; N lozenge ; B 18 0 466 740 ; +C -1 ; WX 612 ; N uni2206 ; B 6 0 608 688 ; +C -1 ; WX 549 ; N notequal ; B 25 42 529 558 ; +C -1 ; WX 549 ; N radical ; B 10 -35 515 913 ; +C -1 ; WX 549 ; N lessequal ; B 26 0 530 646 ; +C -1 ; WX 549 ; N greaterequal ; B 26 0 530 646 ; +C -1 ; WX 606 ; N logicalnot ; B 51 148 555 436 ; +C -1 ; WX 713 ; N summation ; B 14 -123 695 752 ; +C -1 ; WX 494 ; N partialdiff ; B 26 -10 462 753 ; +C -1 ; WX 672 ; N brokenbar ; B 304 0 368 739 ; +C -1 ; WX 608 ; N mu ; B 63 -192 545 547 ; +C -1 ; WX 740 ; N afii10017 ; B 11 0 729 739 ; +C -1 ; WX 571 ; N afii10018 ; B 76 0 544 739 ; +C -1 ; WX 571 ; N afii10019 ; B 76 0 544 739 ; +C -1 ; WX 487 ; N afii10020 ; B 76 0 480 739 ; +C -1 ; WX 848 ; N afii10021 ; B 66 -126 781 739 ; +C -1 ; WX 536 ; N afii10022 ; B 76 0 480 739 ; +C -1 ; WX 536 ; N afii10023 ; B 76 0 480 924 ; +C -1 ; WX 974 ; N afii10024 ; B 45 0 934 739 ; +C -1 ; WX 665 ; N afii10025 ; B 58 -13 622 752 ; +C -1 ; WX 663 ; N afii10026 ; B 76 0 587 739 ; +C -1 ; WX 663 ; N afii10027 ; B 76 0 587 919 ; +C -1 ; WX 591 ; N afii10028 ; B 76 0 570 739 ; +C -1 ; WX 702 ; N afii10029 ; B 35 0 665 739 ; +C -1 ; WX 919 ; N afii10030 ; B 106 0 813 739 ; +C -1 ; WX 683 ; N afii10031 ; B 76 0 607 739 ; +C -1 ; WX 869 ; N afii10032 ; B 44 -13 825 752 ; +C -1 ; WX 683 ; N afii10033 ; B 76 0 607 739 ; +C -1 ; WX 592 ; N afii10034 ; B 76 0 565 739 ; +C -1 ; WX 813 ; N afii10035 ; B 44 -13 770 752 ; +C -1 ; WX 466 ; N afii10036 ; B 7 0 459 739 ; +C -1 ; WX 596 ; N afii10037 ; B 4 0 592 739 ; +C -1 ; WX 825 ; N afii10038 ; B 47 -42 785 794 ; +C -1 ; WX 609 ; N afii10039 ; B 8 0 601 739 ; +C -1 ; WX 712 ; N afii10040 ; B 76 -140 668 739 ; +C -1 ; WX 635 ; N afii10041 ; B 66 0 559 741 ; +C -1 ; WX 964 ; N afii10042 ; B 76 0 888 739 ; +C -1 ; WX 983 ; N afii10043 ; B 76 -140 949 739 ; +C -1 ; WX 710 ; N afii10044 ; B 6 0 683 739 ; +C -1 ; WX 742 ; N afii10045 ; B 76 0 666 739 ; +C -1 ; WX 571 ; N afii10046 ; B 76 0 544 739 ; +C -1 ; WX 814 ; N afii10047 ; B 44 -13 770 752 ; +C -1 ; WX 1081 ; N afii10048 ; B 76 -13 1037 752 ; +C -1 ; WX 604 ; N afii10049 ; B 27 0 528 739 ; +C -1 ; WX 683 ; N afii10065 ; B 42 -13 620 560 ; +C -1 ; WX 656 ; N afii10066 ; B 45 -13 618 784 ; +C -1 ; WX 473 ; N afii10067 ; B 63 0 439 547 ; +C -1 ; WX 369 ; N afii10068 ; B 63 0 364 547 ; +C -1 ; WX 668 ; N afii10069 ; B 27 -120 641 547 ; +C -1 ; WX 650 ; N afii10070 ; B 42 -13 611 560 ; +C -1 ; WX 650 ; N afii10071 ; B 42 -13 611 749 ; +C -1 ; WX 768 ; N afii10072 ; B 7 0 761 548 ; +C -1 ; WX 458 ; N afii10073 ; B 27 -13 431 560 ; +C -1 ; WX 608 ; N afii10074 ; B 63 0 545 548 ; +C -1 ; WX 608 ; N afii10075 ; B 63 0 545 733 ; +C -1 ; WX 477 ; N afii10076 ; B 63 0 467 549 ; +C -1 ; WX 554 ; N afii10077 ; B 8 0 546 547 ; +C -1 ; WX 690 ; N afii10078 ; B 63 0 627 549 ; +C -1 ; WX 544 ; N afii10079 ; B 63 0 481 547 ; +C -1 ; WX 655 ; N afii10080 ; B 42 -13 613 560 ; +C -1 ; WX 549 ; N afii10081 ; B 63 0 486 547 ; +C -1 ; WX 682 ; N afii10082 ; B 63 -192 640 560 ; +C -1 ; WX 647 ; N afii10083 ; B 42 -13 608 560 ; +C -1 ; WX 362 ; N afii10084 ; B 6 0 356 547 ; +C -1 ; WX 536 ; N afii10085 ; B 9 -192 527 547 ; +C -1 ; WX 728 ; N afii10086 ; B 42 -108 686 631 ; +C -1 ; WX 480 ; N afii10087 ; B 8 0 472 547 ; +C -1 ; WX 560 ; N afii10088 ; B 63 -129 533 547 ; +C -1 ; WX 500 ; N afii10089 ; B 34 0 437 547 ; +C -1 ; WX 822 ; N afii10090 ; B 63 0 759 548 ; +C -1 ; WX 882 ; N afii10091 ; B 63 -129 825 547 ; +C -1 ; WX 556 ; N afii10092 ; B 6 0 529 547 ; +C -1 ; WX 620 ; N afii10093 ; B 63 0 567 547 ; +C -1 ; WX 466 ; N afii10094 ; B 63 0 439 547 ; +C -1 ; WX 650 ; N afii10095 ; B 42 -13 608 560 ; +C -1 ; WX 853 ; N afii10096 ; B 63 -13 796 560 ; +C -1 ; WX 502 ; N afii10097 ; B 35 0 439 547 ; +C -1 ; WX 536 ; N uni0400 ; B 76 0 480 958 ; +C -1 ; WX 426 ; N afii10051 ; B 7 0 419 739 ; +C -1 ; WX 487 ; N afii10052 ; B 76 0 480 954 ; +C -1 ; WX 814 ; N afii10053 ; B 44 -13 770 752 ; +C -1 ; WX 498 ; N afii10054 ; B 22 -13 476 752 ; +C -1 ; WX 226 ; N afii10055 ; B 76 0 150 739 ; +C -1 ; WX 226 ; N afii10056 ; B 2 0 223 905 ; +C -1 ; WX 482 ; N afii10057 ; B 11 -14 406 739 ; +C -1 ; WX 906 ; N afii10058 ; B 11 -1 885 739 ; +C -1 ; WX 957 ; N afii10059 ; B 76 0 910 739 ; +C -1 ; WX 426 ; N afii10060 ; B 7 0 419 739 ; +C -1 ; WX 591 ; N afii10061 ; B 76 0 585 954 ; +C -1 ; WX 740 ; N uni040D ; B 76 0 664 1005 ; +C -1 ; WX 596 ; N afii10062 ; B 4 0 592 906 ; +C -1 ; WX 683 ; N afii10145 ; B 76 -140 607 739 ; +C -1 ; WX 650 ; N uni0450 ; B 42 -13 611 813 ; +C -1 ; WX 610 ; N afii10099 ; B 9 0 546 739 ; +C -1 ; WX 369 ; N afii10100 ; B 63 0 364 788 ; +C -1 ; WX 650 ; N afii10101 ; B 42 -13 608 560 ; +C -1 ; WX 388 ; N afii10102 ; B 18 -13 361 560 ; +C -1 ; WX 200 ; N afii10103 ; B 63 0 137 739 ; +C -1 ; WX 200 ; N afii10104 ; B -10 0 211 749 ; +C -1 ; WX 203 ; N afii10105 ; B -45 -192 140 739 ; +C -1 ; WX 678 ; N afii10106 ; B 8 0 652 547 ; +C -1 ; WX 694 ; N afii10107 ; B 63 0 664 547 ; +C -1 ; WX 610 ; N afii10108 ; B 9 0 546 739 ; +C -1 ; WX 502 ; N afii10109 ; B 63 0 497 788 ; +C -1 ; WX 608 ; N uni045D ; B 63 0 545 760 ; +C -1 ; WX 536 ; N afii10110 ; B 9 -192 527 733 ; +C -1 ; WX 529 ; N afii10193 ; B 63 -140 466 547 ; +C -1 ; WX 571 ; N uni048C ; B 4 0 544 739 ; +C -1 ; WX 466 ; N uni048D ; B 3 0 439 547 ; +C -1 ; WX 592 ; N uni048E ; B 76 0 565 739 ; +C -1 ; WX 682 ; N uni048F ; B 63 -192 640 560 ; +C -1 ; WX 487 ; N afii10050 ; B 76 0 480 805 ; +C -1 ; WX 369 ; N afii10098 ; B 63 0 364 610 ; +C -1 ; WX 487 ; N uni0492 ; B 10 0 480 739 ; +C -1 ; WX 369 ; N uni0493 ; B 3 0 364 547 ; +C -1 ; WX 487 ; N uni0494 ; B 76 0 480 739 ; +C -1 ; WX 369 ; N uni0495 ; B 63 0 364 547 ; +C -1 ; WX 974 ; N uni0496 ; B 10 0 964 739 ; +C -1 ; WX 808 ; N uni0497 ; B 7 -129 807 549 ; +C -1 ; WX 559 ; N uni0498 ; B 44 -8 515 752 ; +C -1 ; WX 400 ; N uni0499 ; B 27 -13 373 560 ; +C -1 ; WX 591 ; N uni049A ; B 76 0 585 739 ; +C -1 ; WX 502 ; N uni049B ; B 63 0 497 549 ; +C -1 ; WX 591 ; N uni049C ; B 76 0 585 739 ; +C -1 ; WX 502 ; N uni049D ; B 63 0 497 549 ; +C -1 ; WX 591 ; N uni049E ; B 6 0 585 739 ; +C -1 ; WX 502 ; N uni049F ; B 4 0 497 549 ; +C -1 ; WX 591 ; N uni04A0 ; B 76 0 585 739 ; +C -1 ; WX 502 ; N uni04A1 ; B 63 0 497 549 ; +C -1 ; WX 683 ; N uni04A2 ; B 76 0 607 739 ; +C -1 ; WX 529 ; N uni04A3 ; B 63 0 466 547 ; +C -1 ; WX 844 ; N uni04A4 ; B 76 0 819 739 ; +C -1 ; WX 529 ; N uni04A5 ; B 63 0 466 547 ; +C -1 ; WX 683 ; N uni04A6 ; B 76 0 607 739 ; +C -1 ; WX 529 ; N uni04A7 ; B 63 0 466 547 ; +C -1 ; WX 813 ; N uni04A8 ; B 44 -13 770 752 ; +C -1 ; WX 647 ; N uni04A9 ; B 42 -13 608 560 ; +C -1 ; WX 813 ; N uni04AA ; B 44 -13 770 752 ; +C -1 ; WX 647 ; N uni04AB ; B 42 -13 608 560 ; +C -1 ; WX 426 ; N uni04AC ; B 7 0 419 739 ; +C -1 ; WX 362 ; N uni04AD ; B 6 0 356 547 ; +C -1 ; WX 592 ; N uni04AE ; B 2 0 590 739 ; +C -1 ; WX 554 ; N uni04AF ; B 8 -192 546 547 ; +C -1 ; WX 592 ; N uni04B0 ; B 2 0 590 739 ; +C -1 ; WX 554 ; N uni04B1 ; B 8 -192 546 547 ; +C -1 ; WX 609 ; N uni04B2 ; B 8 0 601 739 ; +C -1 ; WX 480 ; N uni04B3 ; B 8 0 472 547 ; +C -1 ; WX 742 ; N uni04B4 ; B 76 -140 698 739 ; +C -1 ; WX 590 ; N uni04B5 ; B 63 -129 563 547 ; +C -1 ; WX 635 ; N uni04B6 ; B 66 0 559 741 ; +C -1 ; WX 500 ; N uni04B7 ; B 34 0 437 547 ; +C -1 ; WX 635 ; N uni04B8 ; B 66 1 559 742 ; +C -1 ; WX 500 ; N uni04B9 ; B 34 1 437 548 ; +C -1 ; WX 635 ; N uni04BA ; B 66 0 559 741 ; +C -1 ; WX 500 ; N uni04BB ; B 34 0 437 547 ; +C -1 ; WX 813 ; N uni04BC ; B 44 -13 770 752 ; +C -1 ; WX 647 ; N uni04BD ; B 42 -13 608 560 ; +C -1 ; WX 813 ; N uni04BE ; B 44 -13 770 752 ; +C -1 ; WX 647 ; N uni04BF ; B 42 -13 608 560 ; +C -1 ; WX 226 ; N uni04C0 ; B 76 0 150 739 ; +C -1 ; WX 974 ; N uni04C1 ; B 10 0 964 959 ; +C -1 ; WX 808 ; N uni04C2 ; B 7 0 801 767 ; +C -1 ; WX 591 ; N uni04C3 ; B 76 0 585 739 ; +C -1 ; WX 502 ; N uni04C4 ; B 63 0 497 549 ; +C -1 ; WX 683 ; N uni04C7 ; B 76 0 607 739 ; +C -1 ; WX 529 ; N uni04C8 ; B 63 0 466 547 ; +C -1 ; WX 635 ; N uni04CB ; B 66 0 559 741 ; +C -1 ; WX 500 ; N uni04CC ; B 34 0 437 547 ; +C -1 ; WX 740 ; N uni04D0 ; B 11 0 729 912 ; +C -1 ; WX 683 ; N uni04D1 ; B 42 -13 620 767 ; +C -1 ; WX 740 ; N uni04D2 ; B 11 0 729 918 ; +C -1 ; WX 683 ; N uni04D3 ; B 42 -13 620 773 ; +C -1 ; WX 992 ; N uni04D4 ; B 11 0 936 739 ; +C -1 ; WX 1157 ; N uni04D5 ; B 42 -13 1118 560 ; +C -1 ; WX 536 ; N uni04D6 ; B 76 0 480 912 ; +C -1 ; WX 650 ; N uni04D7 ; B 42 -13 611 767 ; +C -1 ; WX 872 ; N uni04D8 ; B 44 -13 831 752 ; +C -1 ; WX 647 ; N afii10846 ; B 27 -13 608 560 ; +C -1 ; WX 872 ; N uni04DA ; B 44 -13 831 958 ; +C -1 ; WX 647 ; N uni04DB ; B 27 -13 608 766 ; +C -1 ; WX 974 ; N uni04DC ; B 10 0 964 965 ; +C -1 ; WX 808 ; N uni04DD ; B 7 0 801 773 ; +C -1 ; WX 559 ; N uni04DE ; B 44 -8 515 965 ; +C -1 ; WX 400 ; N uni04DF ; B 27 -13 373 773 ; +C -1 ; WX 559 ; N uni04E0 ; B 44 -8 515 752 ; +C -1 ; WX 400 ; N uni04E1 ; B 27 -13 373 560 ; +C -1 ; WX 740 ; N uni04E2 ; B 76 0 664 903 ; +C -1 ; WX 608 ; N uni04E3 ; B 63 0 545 652 ; +C -1 ; WX 740 ; N uni04E4 ; B 76 0 664 965 ; +C -1 ; WX 608 ; N uni04E5 ; B 63 0 545 713 ; +C -1 ; WX 869 ; N uni04E6 ; B 44 -13 825 965 ; +C -1 ; WX 655 ; N uni04E7 ; B 42 -13 613 773 ; +C -1 ; WX 869 ; N uni04E8 ; B 44 -13 825 752 ; +C -1 ; WX 655 ; N uni04E9 ; B 42 -13 613 560 ; +C -1 ; WX 869 ; N uni04EA ; B 44 -13 825 965 ; +C -1 ; WX 655 ; N uni04EB ; B 42 -13 613 773 ; +C -1 ; WX 814 ; N uni04EC ; B 44 -13 770 965 ; +C -1 ; WX 650 ; N uni04ED ; B 42 -13 608 773 ; +C -1 ; WX 596 ; N uni04EE ; B 4 0 592 903 ; +C -1 ; WX 536 ; N uni04EF ; B 9 -192 527 711 ; +C -1 ; WX 596 ; N uni04F0 ; B 4 0 592 965 ; +C -1 ; WX 536 ; N uni04F1 ; B 9 -192 527 773 ; +C -1 ; WX 596 ; N uni04F2 ; B 4 0 592 1009 ; +C -1 ; WX 536 ; N uni04F3 ; B 9 -192 527 817 ; +C -1 ; WX 635 ; N uni04F4 ; B 66 0 559 965 ; +C -1 ; WX 500 ; N uni04F5 ; B 34 0 437 773 ; +C -1 ; WX 778 ; N uni04F8 ; B 76 0 666 965 ; +C -1 ; WX 635 ; N uni04F9 ; B 63 0 557 773 ; +C -1 ; WX 813 ; N Ccircumflex ; B 44 -13 770 965 ; +C -1 ; WX 647 ; N ccircumflex ; B 42 -13 608 773 ; +C -1 ; WX 813 ; N Cdotaccent ; B 44 -13 770 965 ; +C -1 ; WX 647 ; N cdotaccent ; B 42 -13 608 773 ; +C -1 ; WX 536 ; N Ebreve ; B 76 0 480 959 ; +C -1 ; WX 650 ; N ebreve ; B 42 -13 611 767 ; +C -1 ; WX 872 ; N Gcircumflex ; B 44 -13 831 965 ; +C -1 ; WX 673 ; N gcircumflex ; B 42 -215 610 773 ; +C -1 ; WX 872 ; N Gdotaccent ; B 44 -13 831 965 ; +C -1 ; WX 673 ; N gdotaccent ; B 42 -215 610 773 ; +C -1 ; WX 683 ; N Hcircumflex ; B 76 0 607 965 ; +C -1 ; WX 610 ; N hcircumflex ; B 63 0 547 965 ; +C -1 ; WX 683 ; N Hbar ; B 12 0 674 739 ; +C -1 ; WX 610 ; N hbar ; B 9 0 546 739 ; +C -1 ; WX 226 ; N Itilde ; B -32 0 258 887 ; +C -1 ; WX 200 ; N itilde ; B -45 0 245 742 ; +C -1 ; WX 226 ; N Ibreve ; B -39 0 265 912 ; +C -1 ; WX 200 ; N ibreve ; B -52 0 252 767 ; +C -1 ; WX 686 ; N IJ ; B 76 -14 606 739 ; +C -1 ; WX 330 ; N ij ; B 63 -192 266 739 ; +C -1 ; WX 482 ; N Jcircumflex ; B 11 -14 546 965 ; +C -1 ; WX 203 ; N jcircumflex ; B -74 -192 280 777 ; +C -1 ; WX 502 ; N kgreenlandic ; B 63 0 497 549 ; +C -1 ; WX 462 ; N Ldot ; B 76 0 456 739 ; +C -1 ; WX 320 ; N ldot ; B 63 0 285 739 ; +C -1 ; WX 610 ; N napostrophe ; B 63 0 547 560 ; +C -1 ; WX 740 ; N Eng ; B 76 0 664 739 ; +C -1 ; WX 610 ; N eng ; B 63 0 547 560 ; +C -1 ; WX 869 ; N Obreve ; B 44 -13 825 959 ; +C -1 ; WX 655 ; N obreve ; B 42 -13 613 767 ; +C -1 ; WX 498 ; N Scircumflex ; B 22 -13 476 965 ; +C -1 ; WX 388 ; N scircumflex ; B 18 -13 407 773 ; +C -1 ; WX 426 ; N uni0162 ; B 7 -213 419 739 ; +C -1 ; WX 339 ; N uni0163 ; B 12 -213 327 739 ; +C -1 ; WX 426 ; N Tbar ; B 7 0 419 739 ; +C -1 ; WX 339 ; N tbar ; B 12 0 327 739 ; +C -1 ; WX 655 ; N Utilde ; B 76 -13 579 934 ; +C -1 ; WX 608 ; N utilde ; B 63 -13 545 742 ; +C -1 ; WX 655 ; N Ubreve ; B 76 -13 579 959 ; +C -1 ; WX 608 ; N ubreve ; B 63 -13 545 767 ; +C -1 ; WX 960 ; N Wcircumflex ; B 10 0 950 965 ; +C -1 ; WX 831 ; N wcircumflex ; B 7 0 824 773 ; +C -1 ; WX 592 ; N Ycircumflex ; B 2 0 590 965 ; +C -1 ; WX 536 ; N ycircumflex ; B 9 -192 527 773 ; +C -1 ; WX 314 ; N longs ; B 16 0 311 739 ; +C -1 ; WX 1017 ; N afii61352 ; B 35 0 951 739 ; +C -1 ; WX 768 ; N infinity ; B 42 130 720 520 ; +EndCharMetrics +StartKernData +StartKernPairs 983 +KPX quoteright y -21 +KPX quoteright w -19 +KPX quoteright v -21 +KPX quoteright t -32 +KPX quoteright s -27 +KPX quoteright r -30 +KPX quoteright period -80 +KPX quoteright o -55 +KPX quoteright d -56 +KPX quoteright comma -100 +KPX quoteright Aring -105 +KPX quoteright Adieresis -105 +KPX quoteright Aacute -105 +KPX quoteright AE -183 +KPX quoteright A -105 +KPX comma quoteright -19 +KPX comma quotedblright -17 +KPX comma one -64 +KPX hyphen Y -43 +KPX hyphen W 4 +KPX hyphen V -24 +KPX hyphen T -11 +KPX hyphen Aring 13 +KPX hyphen Adieresis 13 +KPX hyphen Aacute 13 +KPX hyphen AE -21 +KPX hyphen A 13 +KPX period quoteright -58 +KPX period quotedblright -56 +KPX period one -100 +KPX zero seven -30 +KPX zero one -66 +KPX zero four 22 +KPX one zero -27 +KPX one two -51 +KPX one three -55 +KPX one six -49 +KPX one seven -88 +KPX one period -58 +KPX one one -133 +KPX one nine -52 +KPX one four -62 +KPX one five -46 +KPX one eight -46 +KPX one comma -77 +KPX two seven -35 +KPX two one -81 +KPX two four -19 +KPX three seven -51 +KPX three one -91 +KPX three four 12 +KPX four seven -35 +KPX four one -81 +KPX four four 24 +KPX five seven -32 +KPX five one -77 +KPX five four 24 +KPX six seven -64 +KPX six one -94 +KPX six four 24 +KPX seven two -27 +KPX seven three -42 +KPX seven six -60 +KPX seven seven -20 +KPX seven period -115 +KPX seven one -65 +KPX seven four -81 +KPX seven five -47 +KPX seven eight -41 +KPX seven comma -133 +KPX seven colon -75 +KPX eight seven -43 +KPX eight one -84 +KPX eight four 17 +KPX nine seven -31 +KPX nine one -77 +KPX nine four -33 +KPX A y -37 +KPX A w -33 +KPX A v -39 +KPX A u -15 +KPX A t -28 +KPX A quoteright -92 +KPX A quotedblright -90 +KPX A q -21 +KPX A period 13 +KPX A o -20 +KPX A hyphen 13 +KPX A guilsinglleft -22 +KPX A guillemotleft -22 +KPX A g -23 +KPX A e -21 +KPX A d -21 +KPX A comma -5 +KPX A ccedilla -22 +KPX A c -22 +KPX A b 5 +KPX A a -20 +KPX A Y -77 +KPX A W -47 +KPX A V -72 +KPX A Ugrave -29 +KPX A Udieresis -29 +KPX A Ucircumflex -29 +KPX A Uacute -29 +KPX A U -29 +KPX A T -50 +KPX A Q -38 +KPX A Odieresis -38 +KPX A O -38 +KPX A G -38 +KPX A Ccedilla -37 +KPX A C -36 +KPX B Y -26 +KPX B W -2 +KPX B V -24 +KPX B Oslash 9 +KPX B Ograve 6 +KPX B Odieresis 6 +KPX B Ocircumflex 6 +KPX B Oacute 6 +KPX B OE 7 +KPX B O 6 +KPX B Atilde -8 +KPX B Aring -8 +KPX B Adieresis -8 +KPX B Acircumflex -8 +KPX B Aacute -8 +KPX B AE -21 +KPX B A -8 +KPX C Odieresis -18 +KPX C Oacute -18 +KPX C O -18 +KPX C Aring -22 +KPX C Adieresis -22 +KPX C Aacute -22 +KPX C AE -45 +KPX C A -22 +KPX D Y -44 +KPX D X -29 +KPX D W -14 +KPX D V -36 +KPX D T -40 +KPX D J -5 +KPX D Atilde -37 +KPX D Aring -37 +KPX D Agrave -37 +KPX D Adieresis -37 +KPX D Acircumflex -37 +KPX D Aacute -37 +KPX D A -37 +KPX F u -11 +KPX F r -11 +KPX F period -80 +KPX F oslash -5 +KPX F oe -3 +KPX F odieresis -3 +KPX F oacute -3 +KPX F o -3 +KPX F j -7 +KPX F i -5 +KPX F hyphen 23 +KPX F eacute -3 +KPX F e -3 +KPX F comma -98 +KPX F aring -3 +KPX F ae -3 +KPX F adieresis -3 +KPX F aacute -3 +KPX F a -3 +KPX F J -55 +KPX F Atilde -56 +KPX F Aring -56 +KPX F Agrave -56 +KPX F Adieresis -56 +KPX F Acircumflex -56 +KPX F Aacute -56 +KPX F A -56 +KPX G Y -48 +KPX G W -22 +KPX G V -43 +KPX G T -45 +KPX G Atilde -40 +KPX G Aring -40 +KPX G Agrave -40 +KPX G Adieresis -40 +KPX G Acircumflex -40 +KPX G Aacute -40 +KPX G AE -64 +KPX G A -40 +KPX J Aring -27 +KPX J Adieresis -27 +KPX J AE -39 +KPX J A -27 +KPX K y -44 +KPX K udieresis -38 +KPX K u -38 +KPX K odieresis -44 +KPX K oacute -44 +KPX K o -44 +KPX K hyphen -29 +KPX K e -45 +KPX K aring -44 +KPX K ae -44 +KPX K adieresis -44 +KPX K a -44 +KPX K T 37 +KPX K S -16 +KPX K Odieresis -38 +KPX K Oacute -38 +KPX K OE -37 +KPX K O -38 +KPX K G -38 +KPX K C -36 +KPX L y -59 +KPX L udieresis -14 +KPX L u -14 +KPX L quoteright -116 +KPX L quotedblright -114 +KPX L hyphen -79 +KPX L Y -88 +KPX L W -59 +KPX L V -100 +KPX L Udieresis -25 +KPX L U -25 +KPX L T -47 +KPX L S 7 +KPX L Otilde -49 +KPX L Ograve -49 +KPX L Odieresis -49 +KPX L Ocircumflex -49 +KPX L Oacute -49 +KPX L O -49 +KPX L G -48 +KPX L Ccedilla -49 +KPX L C -46 +KPX L Aring 34 +KPX L Adieresis 34 +KPX L Aacute 34 +KPX L AE 34 +KPX L A 34 +KPX N udieresis 13 +KPX N u 13 +KPX N period 3 +KPX N oslash 9 +KPX N odieresis 8 +KPX N oacute 8 +KPX N o 8 +KPX N eacute 7 +KPX N e 7 +KPX N comma -15 +KPX N aring 8 +KPX N ae 7 +KPX N adieresis 8 +KPX N aacute 8 +KPX N a 8 +KPX N Odieresis 9 +KPX N Oacute 9 +KPX N O 9 +KPX N G 9 +KPX N Ccedilla 11 +KPX N C 10 +KPX N AE -1 +KPX O Y -46 +KPX O X -31 +KPX O W -16 +KPX O V -38 +KPX O T -42 +KPX O Aring -39 +KPX O Adieresis -39 +KPX O Aacute -39 +KPX O AE -68 +KPX O A -39 +KPX P period -106 +KPX P oslash -19 +KPX P oe -15 +KPX P odieresis -15 +KPX P oacute -15 +KPX P o -15 +KPX P hyphen -4 +KPX P eacute -15 +KPX P e -15 +KPX P comma -125 +KPX P aring -16 +KPX P ae -16 +KPX P adieresis -16 +KPX P aacute -16 +KPX P a -16 +KPX P J -68 +KPX P Aring -61 +KPX P Adieresis -61 +KPX P Aacute -61 +KPX P AE -108 +KPX P A -61 +KPX R y 20 +KPX R udieresis 7 +KPX R uacute 7 +KPX R u 7 +KPX R oe -7 +KPX R odieresis -7 +KPX R oacute -7 +KPX R o -7 +KPX R hyphen 3 +KPX R eacute -7 +KPX R e -7 +KPX R aring -7 +KPX R ae -7 +KPX R adieresis -7 +KPX R aacute -7 +KPX R a -7 +KPX R Y -14 +KPX R W -3 +KPX R V -11 +KPX R Udieresis 11 +KPX R U 11 +KPX R T -4 +KPX R Odieresis 2 +KPX R Oacute 2 +KPX R OE 2 +KPX R O 2 +KPX R G 1 +KPX R Ccedilla 3 +KPX R C 2 +KPX S t 17 +KPX S Y -10 +KPX S W 3 +KPX S V -9 +KPX S T 3 +KPX S Aring -5 +KPX S Adieresis -5 +KPX S Aacute -5 +KPX S AE -16 +KPX S A -5 +KPX T y -50 +KPX T w -49 +KPX T v -50 +KPX T u -40 +KPX T semicolon -62 +KPX T s -32 +KPX T r -33 +KPX T period -47 +KPX T oslash -45 +KPX T o -48 +KPX T j 6 +KPX T i 8 +KPX T hyphen -11 +KPX T guilsinglleft -42 +KPX T guillemotleft -42 +KPX T g -48 +KPX T e -48 +KPX T comma -65 +KPX T colon -53 +KPX T c -49 +KPX T ae -48 +KPX T a -48 +KPX T Y 38 +KPX T W 35 +KPX T V 34 +KPX T Otilde -42 +KPX T Oslash -38 +KPX T Ograve -42 +KPX T Odieresis -42 +KPX T Ocircumflex -42 +KPX T Oacute -42 +KPX T OE -40 +KPX T O -42 +KPX T J -49 +KPX T G -41 +KPX T C -40 +KPX T Atilde -50 +KPX T Aring -50 +KPX T Agrave -50 +KPX T Adieresis -50 +KPX T Acircumflex -50 +KPX T Aacute -50 +KPX T AE -51 +KPX T A -50 +KPX U r 13 +KPX U period -15 +KPX U p 13 +KPX U n 13 +KPX U m 13 +KPX U comma -36 +KPX U Atilde -30 +KPX U Aring -30 +KPX U Adieresis -30 +KPX U Acircumflex -30 +KPX U Aacute -30 +KPX U AE -50 +KPX U A -30 +KPX V y -8 +KPX V u -34 +KPX V semicolon -70 +KPX V r -32 +KPX V period -92 +KPX V oslash -58 +KPX V o -59 +KPX V i 6 +KPX V hyphen -25 +KPX V guilsinglleft -49 +KPX V guillemotleft -49 +KPX V g -59 +KPX V e -59 +KPX V comma -110 +KPX V colon -60 +KPX V ae -59 +KPX V a -59 +KPX V T 35 +KPX V S -12 +KPX V Otilde -39 +KPX V Oslash -35 +KPX V Ograve -39 +KPX V Odieresis -39 +KPX V Ocircumflex -39 +KPX V Oacute -39 +KPX V O -39 +KPX V G -38 +KPX V C -37 +KPX V Atilde -72 +KPX V Aring -72 +KPX V Agrave -72 +KPX V Adieresis -72 +KPX V Acircumflex -72 +KPX V Aacute -72 +KPX V AE -118 +KPX V A -72 +KPX W y 4 +KPX W u -21 +KPX W semicolon -47 +KPX W r -15 +KPX W period -53 +KPX W oslash -28 +KPX W o -30 +KPX W i 6 +KPX W hyphen 3 +KPX W guilsinglleft -21 +KPX W guillemotleft -21 +KPX W g -30 +KPX W e -30 +KPX W comma -71 +KPX W colon -38 +KPX W ae -30 +KPX W a -30 +KPX W T 35 +KPX W Otilde -16 +KPX W Oslash -12 +KPX W Ograve -16 +KPX W Odieresis -16 +KPX W Ocircumflex -16 +KPX W Oacute -16 +KPX W O -16 +KPX W G -15 +KPX W C -14 +KPX W Atilde -48 +KPX W Aring -48 +KPX W Agrave -48 +KPX W Adieresis -48 +KPX W Acircumflex -48 +KPX W Aacute -48 +KPX W AE -73 +KPX W A -48 +KPX X y -37 +KPX X u -29 +KPX X o -36 +KPX X hyphen -17 +KPX X e -37 +KPX X a -36 +KPX X Q -30 +KPX X Odieresis -31 +KPX X O -31 +KPX X C -29 +KPX Y v -14 +KPX Y u -40 +KPX Y semicolon -78 +KPX Y period -89 +KPX Y p -38 +KPX Y oslash -66 +KPX Y o -68 +KPX Y i 10 +KPX Y hyphen -45 +KPX Y guilsinglleft -62 +KPX Y guillemotleft -63 +KPX Y g -68 +KPX Y e -68 +KPX Y comma -107 +KPX Y colon -69 +KPX Y ae -68 +KPX Y a -68 +KPX Y T 39 +KPX Y S -13 +KPX Y Otilde -46 +KPX Y Oslash -42 +KPX Y Ograve -46 +KPX Y Odieresis -46 +KPX Y Ocircumflex -46 +KPX Y Oacute -46 +KPX Y O -46 +KPX Y G -46 +KPX Y C -44 +KPX Y Atilde -78 +KPX Y Aring -78 +KPX Y Agrave -78 +KPX Y Adieresis -78 +KPX Y Acircumflex -78 +KPX Y Aacute -78 +KPX Y AE -93 +KPX Y A -78 +KPX Z y -8 +KPX Z v -8 +KPX quoteleft Y 2 +KPX quoteleft W 14 +KPX quoteleft V 6 +KPX quoteleft T -17 +KPX quoteleft Aring -92 +KPX quoteleft Adieresis -92 +KPX quoteleft Aacute -92 +KPX quoteleft AE -170 +KPX quoteleft A -92 +KPX a y 5 +KPX a w 6 +KPX a v 5 +KPX a quoteright -7 +KPX a j 14 +KPX b y -23 +KPX b w -19 +KPX b v -25 +KPX c k -4 +KPX c h -4 +KPX e y -23 +KPX e x -20 +KPX e w -20 +KPX e v -24 +KPX e t -23 +KPX e quoteright -31 +KPX f t 34 +KPX f s 13 +KPX f quoteright -5 +KPX f oslash -24 +KPX f oe -19 +KPX f odieresis -19 +KPX f oacute -19 +KPX f o -19 +KPX f l 9 +KPX f j 7 +KPX f i 9 +KPX f f 32 +KPX f eacute -19 +KPX f e -19 +KPX f aring -20 +KPX f ae -21 +KPX f adieresis -20 +KPX f aacute -20 +KPX f a -20 +KPX g r 16 +KPX g odieresis 7 +KPX g oacute 7 +KPX g l 16 +KPX g eacute 7 +KPX g e 7 +KPX g aring 7 +KPX g ae 7 +KPX g adieresis 7 +KPX g a 7 +KPX h y -17 +KPX h quoteright -30 +KPX i j 13 +KPX i T 8 +KPX k udieresis 1 +KPX k u 1 +KPX k s -5 +KPX k period -7 +KPX k odieresis -28 +KPX k oacute -28 +KPX k o -28 +KPX k hyphen -36 +KPX k g -29 +KPX k eacute -28 +KPX k e -28 +KPX k comma -21 +KPX k aring -28 +KPX k ae -28 +KPX k adieresis -28 +KPX k aacute -28 +KPX k a -28 +KPX l y 5 +KPX l v 5 +KPX m y -15 +KPX m w -12 +KPX m v -17 +KPX m p 14 +KPX n y -17 +KPX n w -14 +KPX n v -19 +KPX n quoteright -30 +KPX n p 13 +KPX n T -41 +KPX o y -21 +KPX o x -18 +KPX o w -18 +KPX o v -24 +KPX o t -22 +KPX o quoteright -31 +KPX o T -47 +KPX p y -23 +KPX p t -23 +KPX q u 13 +KPX q c 7 +KPX r z 27 +KPX r y 32 +KPX r x 31 +KPX r w 33 +KPX r v 32 +KPX r u 6 +KPX r t 31 +KPX r semicolon -24 +KPX r s 8 +KPX r r 6 +KPX r quoteright -8 +KPX r q -29 +KPX r period -53 +KPX r p 6 +KPX r oslash -33 +KPX r ograve -28 +KPX r oe -27 +KPX r odieresis -28 +KPX r ocircumflex -28 +KPX r oacute -28 +KPX r o -28 +KPX r n 6 +KPX r m 6 +KPX r l 6 +KPX r k 6 +KPX r j 4 +KPX r i 6 +KPX r hyphen -19 +KPX r h 6 +KPX r g -18 +KPX r f 29 +KPX r egrave -28 +KPX r ecircumflex -28 +KPX r eacute -28 +KPX r e -28 +KPX r d -29 +KPX r comma -70 +KPX r colon -12 +KPX r ccedilla -25 +KPX r c -30 +KPX r aring -28 +KPX r agrave -28 +KPX r ae -28 +KPX r adieresis -28 +KPX r acircumflex -28 +KPX r aacute -28 +KPX r a -28 +KPX s t 8 +KPX s quoteright -16 +KPX t semicolon -25 +KPX t quoteright -9 +KPX t odieresis -24 +KPX t oacute -24 +KPX t o -24 +KPX t h 4 +KPX t eacute -24 +KPX t e -24 +KPX t colon -13 +KPX t aring -25 +KPX t ae -25 +KPX t adieresis -25 +KPX t aacute -25 +KPX t a -25 +KPX t S 14 +KPX u quoteright -7 +KPX v semicolon -31 +KPX v s -2 +KPX v period -70 +KPX v oslash -24 +KPX v ograve -25 +KPX v odieresis -25 +KPX v oacute -25 +KPX v o -25 +KPX v l 6 +KPX v g -21 +KPX v egrave -25 +KPX v ecircumflex -25 +KPX v eacute -25 +KPX v e -25 +KPX v comma -87 +KPX v colon -21 +KPX v c -26 +KPX v atilde -25 +KPX v aring -25 +KPX v agrave -25 +KPX v ae -25 +KPX v adieresis -25 +KPX v acircumflex -25 +KPX v aacute -25 +KPX v a -25 +KPX w semicolon -29 +KPX w period -62 +KPX w oslash -19 +KPX w ograve -20 +KPX w odieresis -20 +KPX w oacute -20 +KPX w o -20 +KPX w l 7 +KPX w hyphen 6 +KPX w g -18 +KPX w egrave -20 +KPX w ecircumflex -20 +KPX w eacute -20 +KPX w e -20 +KPX w comma -79 +KPX w colon -19 +KPX w c -21 +KPX w atilde -20 +KPX w aring -20 +KPX w agrave -20 +KPX w ae -20 +KPX w adieresis -20 +KPX w acircumflex -20 +KPX w aacute -20 +KPX w a -20 +KPX x q -19 +KPX x o -19 +KPX x eacute -19 +KPX x e -19 +KPX x c -20 +KPX x a -19 +KPX y semicolon -31 +KPX y s -3 +KPX y period -72 +KPX y oslash -25 +KPX y ograve -26 +KPX y odieresis -26 +KPX y oacute -26 +KPX y o -26 +KPX y l 6 +KPX y g -22 +KPX y egrave -26 +KPX y ecircumflex -26 +KPX y eacute -26 +KPX y e -26 +KPX y comma -89 +KPX y colon -21 +KPX y c -27 +KPX y atilde -26 +KPX y aring -26 +KPX y agrave -26 +KPX y ae -26 +KPX y adieresis -26 +KPX y acircumflex -26 +KPX y aacute -26 +KPX y a -26 +KPX quotedblleft W 12 +KPX quotedblleft V 3 +KPX quotedblleft T -19 +KPX quotedblleft Aring -95 +KPX quotedblleft Adieresis -95 +KPX quotedblleft Aacute -95 +KPX quotedblleft AE -172 +KPX quotedblleft A -95 +KPX guilsinglright Y -61 +KPX guilsinglright W -21 +KPX guilsinglright V -48 +KPX guilsinglright T -41 +KPX guilsinglright Aring -22 +KPX guilsinglright Adieresis -22 +KPX guilsinglright Aacute -22 +KPX guilsinglright AE -60 +KPX guilsinglright A -22 +KPX quotedblbase Y -93 +KPX quotedblbase W -57 +KPX quotedblbase V -96 +KPX quotedblbase T -52 +KPX quotedblbase AE -8 +KPX quotedblbase A 6 +KPX quotedblright Y -4 +KPX quotedblright W 7 +KPX quotedblright T -5 +KPX quotedblright Aring -101 +KPX quotedblright Adieresis -101 +KPX quotedblright Aacute -101 +KPX quotedblright AE -179 +KPX quotedblright A -101 +KPX guillemotright Y -62 +KPX guillemotright W -21 +KPX guillemotright V -48 +KPX guillemotright T -42 +KPX guillemotright Aring -22 +KPX guillemotright Adieresis -22 +KPX guillemotright Aacute -22 +KPX guillemotright AE -60 +KPX guillemotright A -22 +KPX Oslash A -36 +KPX ae y -22 +KPX ae w -20 +KPX ae v -23 +KPX Adieresis y -37 +KPX Adieresis w -33 +KPX Adieresis v -39 +KPX Adieresis u -15 +KPX Adieresis t -28 +KPX Adieresis quoteright -92 +KPX Adieresis quotedblright -90 +KPX Adieresis q -21 +KPX Adieresis period 13 +KPX Adieresis o -20 +KPX Adieresis hyphen 13 +KPX Adieresis guilsinglleft -22 +KPX Adieresis guillemotleft -22 +KPX Adieresis g -23 +KPX Adieresis d -21 +KPX Adieresis comma -5 +KPX Adieresis c -22 +KPX Adieresis b 5 +KPX Adieresis a -20 +KPX Adieresis Y -77 +KPX Adieresis W -47 +KPX Adieresis V -72 +KPX Adieresis U -29 +KPX Adieresis T -50 +KPX Adieresis Q -38 +KPX Adieresis O -38 +KPX Adieresis G -38 +KPX Adieresis C -36 +KPX Aacute y -37 +KPX Aacute w -33 +KPX Aacute v -39 +KPX Aacute u -15 +KPX Aacute t -28 +KPX Aacute quoteright -92 +KPX Aacute q -21 +KPX Aacute period 13 +KPX Aacute o -20 +KPX Aacute hyphen 13 +KPX Aacute guilsinglleft -22 +KPX Aacute guillemotleft -22 +KPX Aacute g -23 +KPX Aacute e -21 +KPX Aacute d -21 +KPX Aacute comma -5 +KPX Aacute c -22 +KPX Aacute b 5 +KPX Aacute a -20 +KPX Aacute Y -77 +KPX Aacute W -47 +KPX Aacute V -72 +KPX Aacute U -29 +KPX Aacute T -50 +KPX Aacute Q -38 +KPX Aacute O -38 +KPX Aacute G -38 +KPX Aacute C -36 +KPX Agrave period 13 +KPX Agrave comma -5 +KPX Agrave Y -77 +KPX Agrave W -47 +KPX Agrave V -72 +KPX Agrave U -29 +KPX Agrave T -50 +KPX Agrave Q -38 +KPX Agrave O -38 +KPX Agrave G -38 +KPX Agrave C -36 +KPX Acircumflex period 13 +KPX Acircumflex comma -5 +KPX Acircumflex Y -77 +KPX Acircumflex W -47 +KPX Acircumflex V -72 +KPX Acircumflex U -29 +KPX Acircumflex T -50 +KPX Acircumflex Q -38 +KPX Acircumflex O -38 +KPX Acircumflex G -38 +KPX Acircumflex C -36 +KPX Atilde period 13 +KPX Atilde comma -5 +KPX Atilde Y -77 +KPX Atilde W -47 +KPX Atilde V -72 +KPX Atilde U -29 +KPX Atilde T -50 +KPX Atilde Q -38 +KPX Atilde O -38 +KPX Atilde G -38 +KPX Atilde C -36 +KPX Aring y -37 +KPX Aring w -33 +KPX Aring v -39 +KPX Aring u -15 +KPX Aring t -28 +KPX Aring quoteright -92 +KPX Aring quotedblright -90 +KPX Aring q -21 +KPX Aring period 13 +KPX Aring o -20 +KPX Aring hyphen 13 +KPX Aring guilsinglleft -22 +KPX Aring guillemotleft -22 +KPX Aring g -23 +KPX Aring e -21 +KPX Aring d -21 +KPX Aring comma -5 +KPX Aring c -22 +KPX Aring b 5 +KPX Aring a -20 +KPX Aring Y -77 +KPX Aring W -47 +KPX Aring V -72 +KPX Aring U -29 +KPX Aring T -50 +KPX Aring Q -38 +KPX Aring O -38 +KPX Aring G -38 +KPX Aring C -36 +KPX Ccedilla A -22 +KPX Odieresis Y -46 +KPX Odieresis X -31 +KPX Odieresis W -16 +KPX Odieresis V -38 +KPX Odieresis T -42 +KPX Odieresis A -39 +KPX Oacute Y -46 +KPX Oacute W -16 +KPX Oacute V -38 +KPX Oacute T -42 +KPX Oacute A -39 +KPX Ograve Y -46 +KPX Ograve V -38 +KPX Ograve T -42 +KPX Ocircumflex Y -46 +KPX Ocircumflex V -38 +KPX Ocircumflex T -42 +KPX Otilde Y -46 +KPX Otilde V -38 +KPX Otilde T -42 +KPX Udieresis r 13 +KPX Udieresis period -15 +KPX Udieresis p 13 +KPX Udieresis n 13 +KPX Udieresis m 13 +KPX Udieresis comma -36 +KPX Udieresis b 13 +KPX Udieresis A -30 +KPX Uacute r 13 +KPX Uacute period -15 +KPX Uacute p 13 +KPX Uacute n 13 +KPX Uacute m 13 +KPX Uacute comma -36 +KPX Uacute A -30 +KPX Ugrave A -30 +KPX Ucircumflex A -30 +KPX adieresis y 5 +KPX adieresis w 6 +KPX adieresis v 5 +KPX aacute y 5 +KPX aacute w 6 +KPX aacute v 5 +KPX agrave y 5 +KPX agrave w 6 +KPX agrave v 5 +KPX aring y 5 +KPX aring w 6 +KPX aring v 5 +KPX eacute y -23 +KPX eacute w -20 +KPX eacute v -24 +KPX ecircumflex y -23 +KPX ecircumflex w -20 +KPX ecircumflex v -24 +KPX odieresis y -21 +KPX odieresis x -18 +KPX odieresis w -18 +KPX odieresis v -24 +KPX odieresis t -22 +KPX oacute y -21 +KPX oacute w -18 +KPX oacute v -24 +KPX ograve y -21 +KPX ograve w -18 +KPX ograve v -24 +KPX ocircumflex t -22 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/harbour/contrib/hbhpdf/tests/a010013l.pfb b/harbour/contrib/hbhpdf/tests/a010013l.pfb new file mode 100644 index 0000000000000000000000000000000000000000..0f23987371c3e891825ec5eb802baecc9bd26347 GIT binary patch literal 69958 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 literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbhpdf/tests/basn0g01.png b/harbour/contrib/hbhpdf/tests/basn0g01.png new file mode 100644 index 0000000000000000000000000000000000000000..1d722423aa5157fe2b029af4e2bb07f478ebe8bb GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^3Lwk~Bp9L@-6Me%OS+@4BLidG0>c;6;z7cmE{-7; zb9B#azopr0C;FL=l}o! literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbhpdf/tests/basn0g02.png b/harbour/contrib/hbhpdf/tests/basn0g02.png new file mode 100644 index 0000000000000000000000000000000000000000..508332418fa86637d39e95268ec1d3658d120cae GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^3Lwk`Bp75C+I9jdmUKs7M+U~W1%@xC#RK{Bo-U3d z6?2jkIAXub_k1+y2sp$L+}6)%%qgEdVJADoUeEf*ZqCk?AR|0o{an^LB{Ts5miHSU literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbhpdf/tests/basn0g04.png b/harbour/contrib/hbhpdf/tests/basn0g04.png new file mode 100644 index 0000000000000000000000000000000000000000..0bf3687863d8a1f53bef0aa24b841b21b0e04d9e GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^3Lwk^Bp4c;6;(>fePZ!6K ziaE(C2`UUC949vOu(I~>b7=nfE^nVuX&@tFa7u7Oddi~87#=p(p8gM~{{27yqy1T- hp#)Io!PL|g7KVVQ{|ZeX-G~HP;_2$=vd$@?2>|oDDeM3M literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbhpdf/tests/basn0g16.png b/harbour/contrib/hbhpdf/tests/basn0g16.png new file mode 100644 index 0000000000000000000000000000000000000000..e7c82f78eb954be5be51c35bd287e00018c69d82 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^3Lq>1BpBEle`W(ImUKs7M+U~W1%@xC#RK_qo-U3d z6?3j$GUPg7z~dZf8U4Qg*qsHF4`@^yUDaY)e6!!)qG9=taAD!(1y)T7vK%uR?lygM zIK}cp><*ign#1-5wiApPcd>47oWOZOH-mqPPlA0u`y2l+k{0Ld8N_aQ--utQJ^wn$ N1)i>cF6*2UngAzTID!BG literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbhpdf/tests/basn2c08.png b/harbour/contrib/hbhpdf/tests/basn2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..db5ad15865f56e48e4bae5b43661d2dbc4e847e3 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WSkfJR9T^zg78t&m77yfmc)B=- zRLpsM^&lsM0S}Wy>zj#xw-*UpyJ&w|_~YC|?Jc}4)(u=DKV%lXeNyXF;n2v$@6|4U rsD)ibtrx; literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbhpdf/tests/basn2c16.png b/harbour/contrib/hbhpdf/tests/basn2c16.png new file mode 100644 index 0000000000000000000000000000000000000000..50c1cb91a0171e9f34991b079fe932f5f0bb16d6 GIT binary patch literal 302 zcmV+}0nz@6P)NTxus~-YE?|ew94KIo9tHTv?hhRR zwrA%J^h9UxCeRmyPjW#d?oxNFL9(uFDZ1gBle+D$rIj`J+5;}Xa zfF63WfGT3xy1iYa$zve>zUI)9x>;M1&07*qoM6N<$g8PGj A5dZ)H literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbhpdf/tests/basn3p01.png b/harbour/contrib/hbhpdf/tests/basn3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..b145c2b8eff1f4298e540bfae5c1351d015a3592 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnL3?x0byx0z;SkfJR9T^zg78t&m77ygJ1^9%x zzWcAFl=eSI>XI5zMAXy8F{ENn@&k4zHj_up0tD0@h%3W?AY}Lt#0>va?X`CSX(dk=$B>FS$v@Vz>816FsF9(VN75txh7sS~8e>Vez z3y|e3}y1F=z>r=LEEca@LnZf*~BA0ROZ5~$d#4)lIa>n+tGAx#s~NCh;!h=Q?&7t5~~Lk>mL*|1x+L`Ivp6mn?kJ^kK$c6a~%|NrOteLPR)ru^*4 zh?oc>ipx)wHw!xP<||VqG2mh2yNQ1IZKr30Xr(I7PBXU z(o_;ftk^?X5O*qmM)+A^aUR*s!>r3PlcI=3mc_D63M-aHQVj83+hHDKi)~wG8A%eb zMRFVzAa0kL4aW(lxy(-(A3@r7{KRdCcI^9^ zBwSWlMY4uMp(p@%T`0C7K$rnonuoRmLY9xP#5bTx(RKJi zCYfG^*s^*-{Ro^e4Kgw{Dlmv)JpjQ5bKwF@CLI|%59=nhA>e#HJh5GNjRLr(&Jco- zL=roU($L^w70~)&xPh+uFV&-K!K0w3W-9Hy@g@HWXL3ML4|%5ULen8 zlT@|D2@;VI*iada4446_ptp_#Sul*Cx7Y6>PlSiq8TyN-q=y}cXZX&@20)p=ihIP{CfA$Z*4W@ zEr$zzJ<~t_(0G1&!T9U{_Iz>DPFy@Dgq4(i*+1}U*ZiG1m)32#<4sRFJ5!AP>yZ}L zzdq~5lB&|C6*=qgy?nj!is#SN$*Gwo6M?qJgKJtd1_tvb_xS3qJuRh&eH)f1f0J@< z)4uq(Z_li{H~+s=+3L-xjU7X)ZvEUC-CLA+t^7d7$jI)tsK~;c&XdnBOC5Txp}1)@ zusm-vWl2G`{dnN}K>pDE=;yi{rVB@Y3B-HrtGOePxNz#}j}FD`z3|nlwikX+ZZ56= zAY&lKTUG9w&2^VN89D}o5=^>%~&6ID5>`0fk%7K&zZcY&F#znJTW|E zB5&cFwM~ly35&;HdZq5*>W9rM<&V4Wr%mNt{B`@CxYpR8I;^7!?Tc=wu6t&Du2Ec< zKIiz-xXN3dttqGahAW20Qo6MzgSk7e_{!(?CKyw`*?j|NY=7wG%F`JaWZ(VOm8CUr z$$no_)1uMK%W6)nN!IrL6EB>puUj#i+1xg}<&qUPnY6#j4&NW^MpZNn{t+Cq+^l@L JEAySt{s-!kV`~5a literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbhpdf/tests/basn4a08.png b/harbour/contrib/hbhpdf/tests/basn4a08.png new file mode 100644 index 0000000000000000000000000000000000000000..3e13052201c9f8b90172ea2491b18d6d121c2786 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtq=#3k+XOiwE*eJzX3_ zD&{2rIe*{)W9ys@6GNprI`<_tn04&i_AxF_G>~EoF-$NKa6jCj#n!|2C_^IPFayJV XErr@6uUk(54Pfwe^>bP0l+XkK+-D@M literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbhpdf/tests/basn4a16.png b/harbour/contrib/hbhpdf/tests/basn4a16.png new file mode 100644 index 0000000000000000000000000000000000000000..8243644d0743ebd1fdacb7923069fefbb01dab0e GIT binary patch literal 2206 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 AY5)KL literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbhpdf/tests/cp932.txt b/harbour/contrib/hbhpdf/tests/cp932.txt new file mode 100644 index 0000000000..0000f50d51 --- /dev/null +++ b/harbour/contrib/hbhpdf/tests/cp932.txt @@ -0,0 +1,10 @@ +(こんにちは。) +(おはようございます。) +(こんばんは。) +(はじめまして、どうぞよろしく。) +(お帰りなさい。) +(おやすみなさい。) +(さようなら。) +(お元気ですか。) +(お久しぶり。) +(お邪魔します。) diff --git a/harbour/contrib/hbhpdf/tests/cp936.txt b/harbour/contrib/hbhpdf/tests/cp936.txt new file mode 100644 index 0000000000..d27b7ab469 --- /dev/null +++ b/harbour/contrib/hbhpdf/tests/cp936.txt @@ -0,0 +1,10 @@ +ト羲テ」。 +ヤ酲マコテ」。 +ヘノマコテ」。 +ト羲テ」ャヌカ犹リユユ。」 +サリタエチヒ。」 +ヘーイ。」 +ヤルシ」。 +ノフ蠎テツ」ソ +コテセテイサシ」。 +エネナチヒ。」 \ No newline at end of file diff --git a/harbour/contrib/hbhpdf/tests/elic_jp.txt b/harbour/contrib/hbhpdf/tests/elic_jp.txt new file mode 100644 index 0000000000..f509f9c859 --- /dev/null +++ b/harbour/contrib/hbhpdf/tests/elic_jp.txt @@ -0,0 +1,10 @@ +。ハ、ウ、、ヒ、チ、マ。」。ヒ +。ハ、ェ、マ、隍ヲ、エ、カ、、、゙、ケ。」。ヒ +。ハ、ウ、、ミ、、マ。」。ヒ +。ハ、マ、ク、皃゙、キ、ニ。「、ノ、ヲ、セ、隍、キ、ッ。」。ヒ +。ハ、ェオ「、熙ハ、オ、、。」。ヒ +。ハ、ェ、荀ケ、゚、ハ、オ、、。」。ヒ +。ハ、オ、隍ヲ、ハ、鬘」。ヒ +。ハ、ェクオオ、、ヌ、ケ、ォ。」。ヒ +。ハ、ェオラ、キ、ヨ、遙」。ヒ +。ハ、ェシルヒ筅キ、゙、ケ。」。ヒ diff --git a/harbour/contrib/hbhpdf/tests/euc.txt b/harbour/contrib/hbhpdf/tests/euc.txt new file mode 100644 index 0000000000..4e0fd0c8b5 --- /dev/null +++ b/harbour/contrib/hbhpdf/tests/euc.txt @@ -0,0 +1 @@ +・「・皈・ワタヨ、、、ハ、「、、、ヲ、ィ、ェ。」ノ筅ュチ、ヒセョ・ィ・モ、筅ェ、隍、、ヌ、。」 \ No newline at end of file diff --git a/harbour/contrib/hbhpdf/tests/gray.jpg b/harbour/contrib/hbhpdf/tests/gray.jpg new file mode 100644 index 0000000000000000000000000000000000000000..09da027273e2b0d02496230d4de91686b0d7bdbe GIT binary patch literal 27778 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%0DT8cbORl$9xJ&THA$4TL>;lS5EDJ|_2#`c_rl%= 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 +// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// + +// HPDF_InfoType +#define HPDF_INFO_CREATION_DATE 0 +#define HPDF_INFO_MOD_DATE 1 +#define HPDF_INFO_AUTHOR 2 +#define HPDF_INFO_CREATOR 3 +#define HPDF_INFO_PRODUCER 4 +#define HPDF_INFO_TITLE 5 +#define HPDF_INFO_SUBJECT 6 +#define HPDF_INFO_KEYWORDS 7 +#define HPDF_INFO_EOF 8 + +// HPDF_PdfVer +#define HPDF_VER_12 0 +#define HPDF_VER_13 1 +#define HPDF_VER_14 2 +#define HPDF_VER_15 3 +#define HPDF_VER_16 4 +#define HPDF_VER_EOF 5 + +// HPDF_EncryptMode +#define HPDF_ENCRYPT_R2 2 +#define HPDF_ENCRYPT_R3 3 + +// HPDF_ColorSpace +#define HPDF_CS_DEVICE_GRAY 0 +#define HPDF_CS_DEVICE_RGB 1 +#define HPDF_CS_DEVICE_CMYK 2 +#define HPDF_CS_CAL_GRAY 3 +#define HPDF_CS_CAL_RGB 4 +#define HPDF_CS_LAB 5 +#define HPDF_CS_ICC_BASED 6 +#define HPDF_CS_SEPARATION 7 +#define HPDF_CS_DEVICE_N 8 +#define HPDF_CS_INDEXED 9 +#define HPDF_CS_PATTERN 10 +#define HPDF_CS_EOF 11 + +// HPDF_LineCap +#define HPDF_BUTT_END 0 +#define HPDF_ROUND_END 1 +#define HPDF_PROJECTING_SCUARE_END 2 +#define HPDF_LINECAP_EOF 3 + +// HPDF_LineJoin +#define HPDF_MITER_JOIN 0 +#define HPDF_ROUND_JOIN 1 +#define HPDF_BEVEL_JOIN 2 +#define HPDF_LINEJOIN_EOF 3 + +// HPDF_TextRenderingMode +#define HPDF_FILL 0 +#define HPDF_STROKE 1 +#define HPDF_FILL_THEN_STROKE 2 +#define HPDF_INVISIBLE 3 +#define HPDF_FILL_CLIPPING 4 +#define HPDF_STROKE_CLIPPING 5 +#define HPDF_FILL_STROKE_CLIPPING 6 +#define HPDF_CLIPPING 7 +#define HPDF_RENDERING_MODE_EOF 8 + +// HPDF_WritingMode +#define HPDF_WMODE_HORIZONTAL 0 +#define HPDF_WMODE_VERTICAL 1 +#define HPDF_WMODE_EOF 2 + +// HPDF_PageLayout +#define HPDF_PAGE_LAYOUT_SINGLE 0 +#define HPDF_PAGE_LAYOUT_ONE_COLUMN 1 +#define HPDF_PAGE_LAYOUT_TWO_COLUMN_LEFT 2 +#define HPDF_PAGE_LAYOUT_TWO_COLUMN_RIGHT 3 +#define HPDF_PAGE_LAYOUT_EOF 4 + +// HPDF_PageMode +#define HPDF_PAGE_MODE_USE_NONE 0 +#define HPDF_PAGE_MODE_USE_OUTLINE 1 +#define HPDF_PAGE_MODE_USE_THUMBS 2 +#define HPDF_PAGE_MODE_FULL_SCREEN 3 +#define HPDF_PAGE_MODE_EOF 4 + +// HPDF_PageNumStyle +#define HPDF_PAGE_NUM_STYLE_DECIMAL 0 +#define HPDF_PAGE_NUM_STYLE_UPPER_ROMAN 1 +#define HPDF_PAGE_NUM_STYLE_LOWER_ROMAN 2 +#define HPDF_PAGE_NUM_STYLE_UPPER_LETTERS 3 +#define HPDF_PAGE_NUM_STYLE_LOWER_LETTERS 4 +#define HPDF_PAGE_NUM_STYLE_EOF 5 + +// HPDF_DestinationType +#define HPDF_XYZ 0 +#define HPDF_FIT 1 +#define HPDF_FIT_H 2 +#define HPDF_FIT_V 3 +#define HPDF_FIT_R 4 +#define HPDF_FIT_B 5 +#define HPDF_FIT_BH 6 +#define HPDF_FIT_BV 7 +#define HPDF_DST_EOF 8 + +// HPDF_AnnotType +#define HPDF_ANNOT_TEXT_NOTES 0 +#define HPDF_ANNOT_LINK 1 +#define HPDF_ANNOT_SOUND 2 +#define HPDF_ANNOT_FREE_TEXT 3 +#define HPDF_ANNOT_STAMP 4 +#define HPDF_ANNOT_SQUARE 5 +#define HPDF_ANNOT_CIRCLE 6 +#define HPDF_ANNOT_STRIKE_OUT 7 +#define HPDF_ANNOT_HIGHTLIGHT 8 +#define HPDF_ANNOT_UNDERLINE 9 +#define HPDF_ANNOT_INK 10 +#define HPDF_ANNOT_FILE_ATTACHMENT 11 +#define HPDF_ANNOT_POPUP 12 + +// HPDF_AnnotFlgs +#define HPDF_ANNOT_INVISIBLE 0 +#define HPDF_ANNOT_HIDDEN 1 +#define HPDF_ANNOT_PRINT 2 +#define HPDF_ANNOT_NOZOOM 3 +#define HPDF_ANNOT_NOROTATE 4 +#define HPDF_ANNOT_NOVIEW 5 +#define HPDF_ANNOT_READONLY 6 + +// HPDF_AnnotHighlightMode +#define HPDF_ANNOT_NO_HIGHTLIGHT 0 +#define HPDF_ANNOT_INVERT_BOX 1 +#define HPDF_ANNOT_INVERT_BORDER 2 +#define HPDF_ANNOT_DOWN_APPEARANCE 3 +#define HPDF_ANNOT_HIGHTLIGHT_MODE_EOF 4 + +// HPDF_AnnotIcon +#define HPDF_ANNOT_ICON_COMMENT 0 +#define HPDF_ANNOT_ICON_KEY 1 +#define HPDF_ANNOT_ICON_NOTE 2 +#define HPDF_ANNOT_ICON_HELP 3 +#define HPDF_ANNOT_ICON_NEW_PARAGRAPH 4 +#define HPDF_ANNOT_ICON_PARAGRAPH 5 +#define HPDF_ANNOT_ICON_INSERT 6 +#define HPDF_ANNOT_ICON_EOF 7 + + +// HPDF_BSSubtype +#define HPDF_BS_SOLID 0 +#define HPDF_BS_DASHED 1 +#define HPDF_BS_BEVELED 2 +#define HPDF_BS_INSET 3 +#define HPDF_BS_UNDERLINED 4 + + +// HPDF_BlendMode +#define HPDF_BM_NORMAL 0 +#define HPDF_BM_MULTIPLY 1 +#define HPDF_BM_SCREEN 2 +#define HPDF_BM_OVERLAY 3 +#define HPDF_BM_DARKEN 4 +#define HPDF_BM_LIGHTEN 5 +#define HPDF_BM_COLOR_DODGE 6 +#define HPDF_BM_COLOR_BUM 7 +#define HPDF_BM_HARD_LIGHT 8 +#define HPDF_BM_SOFT_LIGHT 9 +#define HPDF_BM_DIFFERENCE 10 +#define HPDF_BM_EXCLUSHON 11 +#define HPDF_BM_EOF 12 + +// HPDF_TransitionStyle +#define HPDF_TS_WIPE_RIGHT 0 +#define HPDF_TS_WIPE_UP 1 +#define HPDF_TS_WIPE_LEFT 2 +#define HPDF_TS_WIPE_DOWN 3 +#define HPDF_TS_BARN_DOORS_HORIZONTAL_OUT 4 +#define HPDF_TS_BARN_DOORS_HORIZONTAL_IN 5 +#define HPDF_TS_BARN_DOORS_VERTICAL_OUT 6 +#define HPDF_TS_BARN_DOORS_VERTICAL_IN 7 +#define HPDF_TS_BOX_OUT 8 +#define HPDF_TS_BOX_IN 9 +#define HPDF_TS_BLINDS_HORIZONTAL 10 +#define HPDF_TS_BLINDS_VERTICAL 11 +#define HPDF_TS_DISSOLVE 12 +#define HPDF_TS_GLITTER_RIGHT 13 +#define HPDF_TS_GLITTER_DOWN 14 +#define HPDF_TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT 15 +#define HPDF_TS_REPLACE 16 +#define HPDF_TS_EOF 17 + +// HPDF_PageSizes +#define HPDF_PAGE_SIZE_LETTER 0 +#define HPDF_PAGE_SIZE_LEGAL 1 +#define HPDF_PAGE_SIZE_A3 2 +#define HPDF_PAGE_SIZE_A4 3 +#define HPDF_PAGE_SIZE_A5 4 +#define HPDF_PAGE_SIZE_B4 5 +#define HPDF_PAGE_SIZE_B5 6 +#define HPDF_PAGE_SIZE_EXECUTIVE 7 +#define HPDF_PAGE_SIZE_US4x6 8 +#define HPDF_PAGE_SIZE_US4x8 9 +#define HPDF_PAGE_SIZE_US5x7 10 +#define HPDF_PAGE_SIZE_COMM10 11 +#define HPDF_PAGE_SIZE_EOF 12 + + +// HPDF_PageDirection +#define HPDF_PAGE_PORTRAIT 0 +#define HPDF_PAGE_LANDSCAPE 1 + + +//typedef enum _HPDF_EncoderType +#define HPDF_ENCODER_TYPE_SINGLE_BYTE 0 +#define HPDF_ENCODER_TYPE_DOUBLE_BYTE 1 +#define HPDF_ENCODER_TYPE_UNINITIALIZED 2 +#define HPDF_ENCODER_UNKNOWN 3 + + +// HPDF_ByteType +#define HPDF_BYTE_TYPE_SINGLE 0 +#define HPDF_BYTE_TYPE_LEAD 1 +#define HPDF_BYTE_TYPE_TRIAL 2 +#define HPDF_BYTE_TYPE_UNKNOWN 3 + + +// HPDF_TextAlignment +#define HPDF_TALIGN_LEFT 0 +#define HPDF_TALIGN_RIGHT 1 +#define HPDF_TALIGN_CENTER 2 +#define HPDF_TALIGN_JUSTIFY 3 + +//----------------------------------------------------------------------// + +#define HPDF_TRUE 1 +#define HPDF_FALSE 0 + +#define HPDF_OK 0 +#define HPDF_NOERROR 0 + +/* buffer size which is required when we convert to character string. */ +#define HPDF_TMP_BUF_SIZ 512 +#define HPDF_SHORT_BUF_SIZ 32 +#define HPDF_REAL_LEN 11 +#define HPDF_INT_LEN 11 +#define HPDF_TEXT_DEFAULT_LEN 256 +#define HPDF_UNICODE_HEADER_LEN 2 +#define HPDF_DATE_TIME_STR_LEN 23 + +/* length of each item defined in PDF */ +#define HPDF_BYTE_OFFSET_LEN 10 +#define HPDF_OBJ_ID_LEN 7 +#define HPDF_GEN_NO_LEN 5 + +/* default value of Graphic State */ +#define HPDF_DEF_FONT "Helvetica" +#define HPDF_DEF_PAGE_LAYOUT HPDF_PAGE_LAYOUT_SINGLE +#define HPDF_DEF_PAGE_MODE HPDF_PAGE_MODE_USE_NONE +#define HPDF_DEF_WORDSPACE 0 +#define HPDF_DEF_CHARSPACE 0 +#define HPDF_DEF_FONTSIZE 10 +#define HPDF_DEF_HSCALING 100 +#define HPDF_DEF_LEADING 0 +#define HPDF_DEF_RENDERING_MODE HPDF_FILL +#define HPDF_DEF_RISE 0 +#define HPDF_DEF_RAISE HPDF_DEF_RISE +#define HPDF_DEF_LINEWIDTH 1 +#define HPDF_DEF_LINECAP HPDF_BUTT_END +#define HPDF_DEF_LINEJOIN HPDF_MITER_JOIN +#define HPDF_DEF_MITERLIMIT 10 +#define HPDF_DEF_FLATNESS 1 +#define HPDF_DEF_PAGE_NUM 1 + +#define HPDF_BS_DEF_WIDTH 1 + +/* defalt page-size */ +#define HPDF_DEF_PAGE_WIDTH 595.276F +#define HPDF_DEF_PAGE_HEIGHT 841.89F + +#define HPDF_VERSION_TEXT "2.0.8" + +/*---------------------------------------------------------------------------*/ +/*----- compression mode ----------------------------------------------------*/ + +#define HPDF_COMP_NONE 0x00 +#define HPDF_COMP_TEXT 0x01 +#define HPDF_COMP_IMAGE 0x02 +#define HPDF_COMP_METADATA 0x04 +#define HPDF_COMP_ALL 0x0F +/* #define HPDF_COMP_BEST_COMPRESS 0x10 + * #define HPDF_COMP_BEST_SPEED 0x20 + */ +#define HPDF_COMP_MASK 0xFF + + +/*----------------------------------------------------------------------------*/ +/*----- permission flags (only Revision 2 is supported)-----------------------*/ + +#define HPDF_ENABLE_READ 0 +#define HPDF_ENABLE_PRINT 4 +#define HPDF_ENABLE_EDIT_ALL 8 +#define HPDF_ENABLE_COPY 16 +#define HPDF_ENABLE_EDIT 32 + + +/*----------------------------------------------------------------------------*/ +/*------ viewer preferences definitions --------------------------------------*/ + +#define HPDF_HIDE_TOOLBAR 1 +#define HPDF_HIDE_MENUBAR 2 +#define HPDF_HIDE_WINDOW_UI 4 +#define HPDF_FIT_WINDOW 8 +#define HPDF_CENTER_WINDOW 16 + + +/*---------------------------------------------------------------------------*/ +/*------ limitation of object implementation (PDF1.4) -----------------------*/ + +#define HPDF_LIMIT_MAX_INT 2147483647 +#define HPDF_LIMIT_MIN_INT -2147483647 + +#define HPDF_LIMIT_MAX_REAL 32767 +#define HPDF_LIMIT_MIN_REAL -32767 + +#define HPDF_LIMIT_MAX_STRING_LEN 65535 +#define HPDF_LIMIT_MAX_NAME_LEN 127 + +#define HPDF_LIMIT_MAX_ARRAY 8191 +#define HPDF_LIMIT_MAX_DICT_ELEMENT 4095 +#define HPDF_LIMIT_MAX_XREF_ELEMENT 8388607 +#define HPDF_LIMIT_MAX_GSTATE 28 +#define HPDF_LIMIT_MAX_DEVICE_N 8 +#define HPDF_LIMIT_MAX_DEVICE_N_V15 32 +#define HPDF_LIMIT_MAX_CID 65535 +#define HPDF_MAX_GENERATION_NUM 65535 + +#define HPDF_MIN_PAGE_HEIGHT 3 +#define HPDF_MIN_PAGE_WIDTH 3 +#define HPDF_MAX_PAGE_HEIGHT 14400 +#define HPDF_MAX_PAGE_WIDTH 14400 +#define HPDF_MIN_MAGNIFICATION_FACTOR 8 +#define HPDF_MAX_MAGNIFICATION_FACTOR 3200 + +/*---------------------------------------------------------------------------*/ +/*------ limitation of various properties -----------------------------------*/ + +#define HPDF_MIN_PAGE_SIZE 3 +#define HPDF_MAX_PAGE_SIZE 14400 +#define HPDF_MIN_HORIZONTALSCALING 10 +#define HPDF_MAX_HORIZONTALSCALING 300 +#define HPDF_MIN_WORDSPACE -30 +#define HPDF_MAX_WORDSPACE 300 +#define HPDF_MIN_CHARSPACE -30 +#define HPDF_MAX_CHARSPACE 300 +#define HPDF_MAX_FONTSIZE 300 +#define HPDF_MAX_ZOOMSIZE 10 +#define HPDF_MAX_LEADING 300 +#define HPDF_MAX_LINEWIDTH 100 +#define HPDF_MAX_DASH_PATTERN 100 + +#define HPDF_MAX_JWW_NUM 128 + +/*----------------------------------------------------------------------------*/ +/*----- country code definition ----------------------------------------------*/ + +#define HPDF_COUNTRY_AF "AF" /* AFGHANISTAN */ +#define HPDF_COUNTRY_AL "AL" /* ALBANIA */ +#define HPDF_COUNTRY_DZ "DZ" /* ALGERIA */ +#define HPDF_COUNTRY_AS "AS" /* AMERICAN SAMOA */ +#define HPDF_COUNTRY_AD "AD" /* ANDORRA */ +#define HPDF_COUNTRY_AO "AO" /* ANGOLA */ +#define HPDF_COUNTRY_AI "AI" /* ANGUILLA */ +#define HPDF_COUNTRY_AQ "AQ" /* ANTARCTICA */ +#define HPDF_COUNTRY_AG "AG" /* ANTIGUA AND BARBUDA */ +#define HPDF_COUNTRY_AR "AR" /* ARGENTINA */ +#define HPDF_COUNTRY_AM "AM" /* ARMENIA */ +#define HPDF_COUNTRY_AW "AW" /* ARUBA */ +#define HPDF_COUNTRY_AU "AU" /* AUSTRALIA */ +#define HPDF_COUNTRY_AT "AT" /* AUSTRIA */ +#define HPDF_COUNTRY_AZ "AZ" /* AZERBAIJAN */ +#define HPDF_COUNTRY_BS "BS" /* BAHAMAS */ +#define HPDF_COUNTRY_BH "BH" /* BAHRAIN */ +#define HPDF_COUNTRY_BD "BD" /* BANGLADESH */ +#define HPDF_COUNTRY_BB "BB" /* BARBADOS */ +#define HPDF_COUNTRY_BY "BY" /* BELARUS */ +#define HPDF_COUNTRY_BE "BE" /* BELGIUM */ +#define HPDF_COUNTRY_BZ "BZ" /* BELIZE */ +#define HPDF_COUNTRY_BJ "BJ" /* BENIN */ +#define HPDF_COUNTRY_BM "BM" /* BERMUDA */ +#define HPDF_COUNTRY_BT "BT" /* BHUTAN */ +#define HPDF_COUNTRY_BO "BO" /* BOLIVIA */ +#define HPDF_COUNTRY_BA "BA" /* BOSNIA AND HERZEGOWINA */ +#define HPDF_COUNTRY_BW "BW" /* BOTSWANA */ +#define HPDF_COUNTRY_BV "BV" /* BOUVET ISLAND */ +#define HPDF_COUNTRY_BR "BR" /* BRAZIL */ +#define HPDF_COUNTRY_IO "IO" /* BRITISH INDIAN OCEAN TERRITORY */ +#define HPDF_COUNTRY_BN "BN" /* BRUNEI DARUSSALAM */ +#define HPDF_COUNTRY_BG "BG" /* BULGARIA */ +#define HPDF_COUNTRY_BF "BF" /* BURKINA FASO */ +#define HPDF_COUNTRY_BI "BI" /* BURUNDI */ +#define HPDF_COUNTRY_KH "KH" /* CAMBODIA */ +#define HPDF_COUNTRY_CM "CM" /* CAMEROON */ +#define HPDF_COUNTRY_CA "CA" /* CANADA */ +#define HPDF_COUNTRY_CV "CV" /* CAPE VERDE */ +#define HPDF_COUNTRY_KY "KY" /* CAYMAN ISLANDS */ +#define HPDF_COUNTRY_CF "CF" /* CENTRAL AFRICAN REPUBLIC */ +#define HPDF_COUNTRY_TD "TD" /* CHAD */ +#define HPDF_COUNTRY_CL "CL" /* CHILE */ +#define HPDF_COUNTRY_CN "CN" /* CHINA */ +#define HPDF_COUNTRY_CX "CX" /* CHRISTMAS ISLAND */ +#define HPDF_COUNTRY_CC "CC" /* COCOS (KEELING) ISLANDS */ +#define HPDF_COUNTRY_CO "CO" /* COLOMBIA */ +#define HPDF_COUNTRY_KM "KM" /* COMOROS */ +#define HPDF_COUNTRY_CG "CG" /* CONGO */ +#define HPDF_COUNTRY_CK "CK" /* COOK ISLANDS */ +#define HPDF_COUNTRY_CR "CR" /* COSTA RICA */ +#define HPDF_COUNTRY_CI "CI" /* COTE D'IVOIRE */ +#define HPDF_COUNTRY_HR "HR" /* CROATIA (local name: Hrvatska) */ +#define HPDF_COUNTRY_CU "CU" /* CUBA */ +#define HPDF_COUNTRY_CY "CY" /* CYPRUS */ +#define HPDF_COUNTRY_CZ "CZ" /* CZECH REPUBLIC */ +#define HPDF_COUNTRY_DK "DK" /* DENMARK */ +#define HPDF_COUNTRY_DJ "DJ" /* DJIBOUTI */ +#define HPDF_COUNTRY_DM "DM" /* DOMINICA */ +#define HPDF_COUNTRY_DO "DO" /* DOMINICAN REPUBLIC */ +#define HPDF_COUNTRY_TP "TP" /* EAST TIMOR */ +#define HPDF_COUNTRY_EC "EC" /* ECUADOR */ +#define HPDF_COUNTRY_EG "EG" /* EGYPT */ +#define HPDF_COUNTRY_SV "SV" /* EL SALVADOR */ +#define HPDF_COUNTRY_GQ "GQ" /* EQUATORIAL GUINEA */ +#define HPDF_COUNTRY_ER "ER" /* ERITREA */ +#define HPDF_COUNTRY_EE "EE" /* ESTONIA */ +#define HPDF_COUNTRY_ET "ET" /* ETHIOPIA */ +#define HPDF_COUNTRY_FK "FK" /* FALKLAND ISLANDS (MALVINAS) */ +#define HPDF_COUNTRY_FO "FO" /* FAROE ISLANDS */ +#define HPDF_COUNTRY_FJ "FJ" /* FIJI */ +#define HPDF_COUNTRY_FI "FI" /* FINLAND */ +#define HPDF_COUNTRY_FR "FR" /* FRANCE */ +#define HPDF_COUNTRY_FX "FX" /* FRANCE, METROPOLITAN */ +#define HPDF_COUNTRY_GF "GF" /* FRENCH GUIANA */ +#define HPDF_COUNTRY_PF "PF" /* FRENCH POLYNESIA */ +#define HPDF_COUNTRY_TF "TF" /* FRENCH SOUTHERN TERRITORIES */ +#define HPDF_COUNTRY_GA "GA" /* GABON */ +#define HPDF_COUNTRY_GM "GM" /* GAMBIA */ +#define HPDF_COUNTRY_GE "GE" /* GEORGIA */ +#define HPDF_COUNTRY_DE "DE" /* GERMANY */ +#define HPDF_COUNTRY_GH "GH" /* GHANA */ +#define HPDF_COUNTRY_GI "GI" /* GIBRALTAR */ +#define HPDF_COUNTRY_GR "GR" /* GREECE */ +#define HPDF_COUNTRY_GL "GL" /* GREENLAND */ +#define HPDF_COUNTRY_GD "GD" /* GRENADA */ +#define HPDF_COUNTRY_GP "GP" /* GUADELOUPE */ +#define HPDF_COUNTRY_GU "GU" /* GUAM */ +#define HPDF_COUNTRY_GT "GT" /* GUATEMALA */ +#define HPDF_COUNTRY_GN "GN" /* GUINEA */ +#define HPDF_COUNTRY_GW "GW" /* GUINEA-BISSAU */ +#define HPDF_COUNTRY_GY "GY" /* GUYANA */ +#define HPDF_COUNTRY_HT "HT" /* HAITI */ +#define HPDF_COUNTRY_HM "HM" /* HEARD AND MC DONALD ISLANDS */ +#define HPDF_COUNTRY_HN "HN" /* HONDURAS */ +#define HPDF_COUNTRY_HK "HK" /* HONG KONG */ +#define HPDF_COUNTRY_HU "HU" /* HUNGARY */ +#define HPDF_COUNTRY_IS "IS" /* ICELAND */ +#define HPDF_COUNTRY_IN "IN" /* INDIA */ +#define HPDF_COUNTRY_ID "ID" /* INDONESIA */ +#define HPDF_COUNTRY_IR "IR" /* IRAN (ISLAMIC REPUBLIC OF) */ +#define HPDF_COUNTRY_IQ "IQ" /* IRAQ */ +#define HPDF_COUNTRY_IE "IE" /* IRELAND */ +#define HPDF_COUNTRY_IL "IL" /* ISRAEL */ +#define HPDF_COUNTRY_IT "IT" /* ITALY */ +#define HPDF_COUNTRY_JM "JM" /* JAMAICA */ +#define HPDF_COUNTRY_JP "JP" /* JAPAN */ +#define HPDF_COUNTRY_JO "JO" /* JORDAN */ +#define HPDF_COUNTRY_KZ "KZ" /* KAZAKHSTAN */ +#define HPDF_COUNTRY_KE "KE" /* KENYA */ +#define HPDF_COUNTRY_KI "KI" /* KIRIBATI */ +#define HPDF_COUNTRY_KP "KP" /* KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF */ +#define HPDF_COUNTRY_KR "KR" /* KOREA, REPUBLIC OF */ +#define HPDF_COUNTRY_KW "KW" /* KUWAIT */ +#define HPDF_COUNTRY_KG "KG" /* KYRGYZSTAN */ +#define HPDF_COUNTRY_LA "LA" /* LAO PEOPLE'S DEMOCRATIC REPUBLIC */ +#define HPDF_COUNTRY_LV "LV" /* LATVIA */ +#define HPDF_COUNTRY_LB "LB" /* LEBANON */ +#define HPDF_COUNTRY_LS "LS" /* LESOTHO */ +#define HPDF_COUNTRY_LR "LR" /* LIBERIA */ +#define HPDF_COUNTRY_LY "LY" /* LIBYAN ARAB JAMAHIRIYA */ +#define HPDF_COUNTRY_LI "LI" /* LIECHTENSTEIN */ +#define HPDF_COUNTRY_LT "LT" /* LITHUANIA */ +#define HPDF_COUNTRY_LU "LU" /* LUXEMBOURG */ +#define HPDF_COUNTRY_MO "MO" /* MACAU */ +#define HPDF_COUNTRY_MK "MK" /* MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF */ +#define HPDF_COUNTRY_MG "MG" /* MADAGASCAR */ +#define HPDF_COUNTRY_MW "MW" /* MALAWI */ +#define HPDF_COUNTRY_MY "MY" /* MALAYSIA */ +#define HPDF_COUNTRY_MV "MV" /* MALDIVES */ +#define HPDF_COUNTRY_ML "ML" /* MALI */ +#define HPDF_COUNTRY_MT "MT" /* MALTA */ +#define HPDF_COUNTRY_MH "MH" /* MARSHALL ISLANDS */ +#define HPDF_COUNTRY_MQ "MQ" /* MARTINIQUE */ +#define HPDF_COUNTRY_MR "MR" /* MAURITANIA */ +#define HPDF_COUNTRY_MU "MU" /* MAURITIUS */ +#define HPDF_COUNTRY_YT "YT" /* MAYOTTE */ +#define HPDF_COUNTRY_MX "MX" /* MEXICO */ +#define HPDF_COUNTRY_FM "FM" /* MICRONESIA, FEDERATED STATES OF */ +#define HPDF_COUNTRY_MD "MD" /* MOLDOVA, REPUBLIC OF */ +#define HPDF_COUNTRY_MC "MC" /* MONACO */ +#define HPDF_COUNTRY_MN "MN" /* MONGOLIA */ +#define HPDF_COUNTRY_MS "MS" /* MONTSERRAT */ +#define HPDF_COUNTRY_MA "MA" /* MOROCCO */ +#define HPDF_COUNTRY_MZ "MZ" /* MOZAMBIQUE */ +#define HPDF_COUNTRY_MM "MM" /* MYANMAR */ +#define HPDF_COUNTRY_NA "NA" /* NAMIBIA */ +#define HPDF_COUNTRY_NR "NR" /* NAURU */ +#define HPDF_COUNTRY_NP "NP" /* NEPAL */ +#define HPDF_COUNTRY_NL "NL" /* NETHERLANDS */ +#define HPDF_COUNTRY_AN "AN" /* NETHERLANDS ANTILLES */ +#define HPDF_COUNTRY_NC "NC" /* NEW CALEDONIA */ +#define HPDF_COUNTRY_NZ "NZ" /* NEW ZEALAND */ +#define HPDF_COUNTRY_NI "NI" /* NICARAGUA */ +#define HPDF_COUNTRY_NE "NE" /* NIGER */ +#define HPDF_COUNTRY_NG "NG" /* NIGERIA */ +#define HPDF_COUNTRY_NU "NU" /* NIUE */ +#define HPDF_COUNTRY_NF "NF" /* NORFOLK ISLAND */ +#define HPDF_COUNTRY_MP "MP" /* NORTHERN MARIANA ISLANDS */ +#define HPDF_COUNTRY_NO "NO" /* NORWAY */ +#define HPDF_COUNTRY_OM "OM" /* OMAN */ +#define HPDF_COUNTRY_PK "PK" /* PAKISTAN */ +#define HPDF_COUNTRY_PW "PW" /* PALAU */ +#define HPDF_COUNTRY_PA "PA" /* PANAMA */ +#define HPDF_COUNTRY_PG "PG" /* PAPUA NEW GUINEA */ +#define HPDF_COUNTRY_PY "PY" /* PARAGUAY */ +#define HPDF_COUNTRY_PE "PE" /* PERU */ +#define HPDF_COUNTRY_PH "PH" /* PHILIPPINES */ +#define HPDF_COUNTRY_PN "PN" /* PITCAIRN */ +#define HPDF_COUNTRY_PL "PL" /* POLAND */ +#define HPDF_COUNTRY_PT "PT" /* PORTUGAL */ +#define HPDF_COUNTRY_PR "PR" /* PUERTO RICO */ +#define HPDF_COUNTRY_QA "QA" /* QATAR */ +#define HPDF_COUNTRY_RE "RE" /* REUNION */ +#define HPDF_COUNTRY_RO "RO" /* ROMANIA */ +#define HPDF_COUNTRY_RU "RU" /* RUSSIAN FEDERATION */ +#define HPDF_COUNTRY_RW "RW" /* RWANDA */ +#define HPDF_COUNTRY_KN "KN" /* SAINT KITTS AND NEVIS */ +#define HPDF_COUNTRY_LC "LC" /* SAINT LUCIA */ +#define HPDF_COUNTRY_VC "VC" /* SAINT VINCENT AND THE GRENADINES */ +#define HPDF_COUNTRY_WS "WS" /* SAMOA */ +#define HPDF_COUNTRY_SM "SM" /* SAN MARINO */ +#define HPDF_COUNTRY_ST "ST" /* SAO TOME AND PRINCIPE */ +#define HPDF_COUNTRY_SA "SA" /* SAUDI ARABIA */ +#define HPDF_COUNTRY_SN "SN" /* SENEGAL */ +#define HPDF_COUNTRY_SC "SC" /* SEYCHELLES */ +#define HPDF_COUNTRY_SL "SL" /* SIERRA LEONE */ +#define HPDF_COUNTRY_SG "SG" /* SINGAPORE */ +#define HPDF_COUNTRY_SK "SK" /* SLOVAKIA (Slovak Republic) */ +#define HPDF_COUNTRY_SI "SI" /* SLOVENIA */ +#define HPDF_COUNTRY_SB "SB" /* SOLOMON ISLANDS */ +#define HPDF_COUNTRY_SO "SO" /* SOMALIA */ +#define HPDF_COUNTRY_ZA "ZA" /* SOUTH AFRICA */ +#define HPDF_COUNTRY_ES "ES" /* SPAIN */ +#define HPDF_COUNTRY_LK "LK" /* SRI LANKA */ +#define HPDF_COUNTRY_SH "SH" /* ST. HELENA */ +#define HPDF_COUNTRY_PM "PM" /* ST. PIERRE AND MIQUELON */ +#define HPDF_COUNTRY_SD "SD" /* SUDAN */ +#define HPDF_COUNTRY_SR "SR" /* SURINAME */ +#define HPDF_COUNTRY_SJ "SJ" /* SVALBARD AND JAN MAYEN ISLANDS */ +#define HPDF_COUNTRY_SZ "SZ" /* SWAZILAND */ +#define HPDF_COUNTRY_SE "SE" /* SWEDEN */ +#define HPDF_COUNTRY_CH "CH" /* SWITZERLAND */ +#define HPDF_COUNTRY_SY "SY" /* SYRIAN ARAB REPUBLIC */ +#define HPDF_COUNTRY_TW "TW" /* TAIWAN, PROVINCE OF CHINA */ +#define HPDF_COUNTRY_TJ "TJ" /* TAJIKISTAN */ +#define HPDF_COUNTRY_TZ "TZ" /* TANZANIA, UNITED REPUBLIC OF */ +#define HPDF_COUNTRY_TH "TH" /* THAILAND */ +#define HPDF_COUNTRY_TG "TG" /* TOGO */ +#define HPDF_COUNTRY_TK "TK" /* TOKELAU */ +#define HPDF_COUNTRY_TO "TO" /* TONGA */ +#define HPDF_COUNTRY_TT "TT" /* TRINIDAD AND TOBAGO */ +#define HPDF_COUNTRY_TN "TN" /* TUNISIA */ +#define HPDF_COUNTRY_TR "TR" /* TURKEY */ +#define HPDF_COUNTRY_TM "TM" /* TURKMENISTAN */ +#define HPDF_COUNTRY_TC "TC" /* TURKS AND CAICOS ISLANDS */ +#define HPDF_COUNTRY_TV "TV" /* TUVALU */ +#define HPDF_COUNTRY_UG "UG" /* UGANDA */ +#define HPDF_COUNTRY_UA "UA" /* UKRAINE */ +#define HPDF_COUNTRY_AE "AE" /* UNITED ARAB EMIRATES */ +#define HPDF_COUNTRY_GB "GB" /* UNITED KINGDOM */ +#define HPDF_COUNTRY_US "US" /* UNITED STATES */ +#define HPDF_COUNTRY_UM "UM" /* UNITED STATES MINOR OUTLYING ISLANDS */ +#define HPDF_COUNTRY_UY "UY" /* URUGUAY */ +#define HPDF_COUNTRY_UZ "UZ" /* UZBEKISTAN */ +#define HPDF_COUNTRY_VU "VU" /* VANUATU */ +#define HPDF_COUNTRY_VA "VA" /* VATICAN CITY STATE (HOLY SEE) */ +#define HPDF_COUNTRY_VE "VE" /* VENEZUELA */ +#define HPDF_COUNTRY_VN "VN" /* VIET NAM */ +#define HPDF_COUNTRY_VG "VG" /* VIRGIN ISLANDS (BRITISH) */ +#define HPDF_COUNTRY_VI "VI" /* VIRGIN ISLANDS (U.S.) */ +#define HPDF_COUNTRY_WF "WF" /* WALLIS AND FUTUNA ISLANDS */ +#define HPDF_COUNTRY_EH "EH" /* WESTERN SAHARA */ +#define HPDF_COUNTRY_YE "YE" /* YEMEN */ +#define HPDF_COUNTRY_YU "YU" /* YUGOSLAVIA */ +#define HPDF_COUNTRY_ZR "ZR" /* ZAIRE */ +#define HPDF_COUNTRY_ZM "ZM" /* ZAMBIA */ +#define HPDF_COUNTRY_ZW "ZW" /* ZIMBABWE */ + +/*----------------------------------------------------------------------------*/ +/*----- lang code definition -------------------------------------------------*/ + +#define HPDF_LANG_AA "aa" /* Afar */ +#define HPDF_LANG_AB "ab" /* Abkhazian */ +#define HPDF_LANG_AF "af" /* Afrikaans */ +#define HPDF_LANG_AM "am" /* Amharic */ +#define HPDF_LANG_AR "ar" /* Arabic */ +#define HPDF_LANG_AS "as" /* Assamese */ +#define HPDF_LANG_AY "ay" /* Aymara */ +#define HPDF_LANG_AZ "az" /* Azerbaijani */ +#define HPDF_LANG_BA "ba" /* Bashkir */ +#define HPDF_LANG_BE "be" /* Byelorussian */ +#define HPDF_LANG_BG "bg" /* Bulgarian */ +#define HPDF_LANG_BH "bh" /* Bihari */ +#define HPDF_LANG_BI "bi" /* Bislama */ +#define HPDF_LANG_BN "bn" /* Bengali Bangla */ +#define HPDF_LANG_BO "bo" /* Tibetan */ +#define HPDF_LANG_BR "br" /* Breton */ +#define HPDF_LANG_CA "ca" /* Catalan */ +#define HPDF_LANG_CO "co" /* Corsican */ +#define HPDF_LANG_CS "cs" /* Czech */ +#define HPDF_LANG_CY "cy" /* Welsh */ +#define HPDF_LANG_DA "da" /* Danish */ +#define HPDF_LANG_DE "de" /* German */ +#define HPDF_LANG_DZ "dz" /* Bhutani */ +#define HPDF_LANG_EL "el" /* Greek */ +#define HPDF_LANG_EN "en" /* English */ +#define HPDF_LANG_EO "eo" /* Esperanto */ +#define HPDF_LANG_ES "es" /* Spanish */ +#define HPDF_LANG_ET "et" /* Estonian */ +#define HPDF_LANG_EU "eu" /* Basque */ +#define HPDF_LANG_FA "fa" /* Persian */ +#define HPDF_LANG_FI "fi" /* Finnish */ +#define HPDF_LANG_FJ "fj" /* Fiji */ +#define HPDF_LANG_FO "fo" /* Faeroese */ +#define HPDF_LANG_FR "fr" /* French */ +#define HPDF_LANG_FY "fy" /* Frisian */ +#define HPDF_LANG_GA "ga" /* Irish */ +#define HPDF_LANG_GD "gd" /* Scots Gaelic */ +#define HPDF_LANG_GL "gl" /* Galician */ +#define HPDF_LANG_GN "gn" /* Guarani */ +#define HPDF_LANG_GU "gu" /* Gujarati */ +#define HPDF_LANG_HA "ha" /* Hausa */ +#define HPDF_LANG_HI "hi" /* Hindi */ +#define HPDF_LANG_HR "hr" /* Croatian */ +#define HPDF_LANG_HU "hu" /* Hungarian */ +#define HPDF_LANG_HY "hy" /* Armenian */ +#define HPDF_LANG_IA "ia" /* Interlingua */ +#define HPDF_LANG_IE "ie" /* Interlingue */ +#define HPDF_LANG_IK "ik" /* Inupiak */ +#define HPDF_LANG_IN "in" /* Indonesian */ +#define HPDF_LANG_IS "is" /* Icelandic */ +#define HPDF_LANG_IT "it" /* Italian */ +#define HPDF_LANG_IW "iw" /* Hebrew */ +#define HPDF_LANG_JA "ja" /* Japanese */ +#define HPDF_LANG_JI "ji" /* Yiddish */ +#define HPDF_LANG_JW "jw" /* Javanese */ +#define HPDF_LANG_KA "ka" /* Georgian */ +#define HPDF_LANG_KK "kk" /* Kazakh */ +#define HPDF_LANG_KL "kl" /* Greenlandic */ +#define HPDF_LANG_KM "km" /* Cambodian */ +#define HPDF_LANG_KN "kn" /* Kannada */ +#define HPDF_LANG_KO "ko" /* Korean */ +#define HPDF_LANG_KS "ks" /* Kashmiri */ +#define HPDF_LANG_KU "ku" /* Kurdish */ +#define HPDF_LANG_KY "ky" /* Kirghiz */ +#define HPDF_LANG_LA "la" /* Latin */ +#define HPDF_LANG_LN "ln" /* Lingala */ +#define HPDF_LANG_LO "lo" /* Laothian */ +#define HPDF_LANG_LT "lt" /* Lithuanian */ +#define HPDF_LANG_LV "lv" /* Latvian,Lettish */ +#define HPDF_LANG_MG "mg" /* Malagasy */ +#define HPDF_LANG_MI "mi" /* Maori */ +#define HPDF_LANG_MK "mk" /* Macedonian */ +#define HPDF_LANG_ML "ml" /* Malayalam */ +#define HPDF_LANG_MN "mn" /* Mongolian */ +#define HPDF_LANG_MO "mo" /* Moldavian */ +#define HPDF_LANG_MR "mr" /* Marathi */ +#define HPDF_LANG_MS "ms" /* Malay */ +#define HPDF_LANG_MT "mt" /* Maltese */ +#define HPDF_LANG_MY "my" /* Burmese */ +#define HPDF_LANG_NA "na" /* Nauru */ +#define HPDF_LANG_NE "ne" /* Nepali */ +#define HPDF_LANG_NL "nl" /* Dutch */ +#define HPDF_LANG_NO "no" /* Norwegian */ +#define HPDF_LANG_OC "oc" /* Occitan */ +#define HPDF_LANG_OM "om" /* (Afan)Oromo */ +#define HPDF_LANG_OR "or" /* Oriya */ +#define HPDF_LANG_PA "pa" /* Punjabi */ +#define HPDF_LANG_PL "pl" /* Polish */ +#define HPDF_LANG_PS "ps" /* Pashto,Pushto */ +#define HPDF_LANG_PT "pt" /* Portuguese */ +#define HPDF_LANG_QU "qu" /* Quechua */ +#define HPDF_LANG_RM "rm" /* Rhaeto-Romance */ +#define HPDF_LANG_RN "rn" /* Kirundi */ +#define HPDF_LANG_RO "ro" /* Romanian */ +#define HPDF_LANG_RU "ru" /* Russian */ +#define HPDF_LANG_RW "rw" /* Kinyarwanda */ +#define HPDF_LANG_SA "sa" /* Sanskrit */ +#define HPDF_LANG_SD "sd" /* Sindhi */ +#define HPDF_LANG_SG "sg" /* Sangro */ +#define HPDF_LANG_SH "sh" /* Serbo-Croatian */ +#define HPDF_LANG_SI "si" /* Singhalese */ +#define HPDF_LANG_SK "sk" /* Slovak */ +#define HPDF_LANG_SL "sl" /* Slovenian */ +#define HPDF_LANG_SM "sm" /* Samoan */ +#define HPDF_LANG_SN "sn" /* Shona */ +#define HPDF_LANG_SO "so" /* Somali */ +#define HPDF_LANG_SQ "sq" /* Albanian */ +#define HPDF_LANG_SR "sr" /* Serbian */ +#define HPDF_LANG_SS "ss" /* Siswati */ +#define HPDF_LANG_ST "st" /* Sesotho */ +#define HPDF_LANG_SU "su" /* Sundanese */ +#define HPDF_LANG_SV "sv" /* Swedish */ +#define HPDF_LANG_SW "sw" /* Swahili */ +#define HPDF_LANG_TA "ta" /* Tamil */ +#define HPDF_LANG_TE "te" /* Tegulu */ +#define HPDF_LANG_TG "tg" /* Tajik */ +#define HPDF_LANG_TH "th" /* Thai */ +#define HPDF_LANG_TI "ti" /* Tigrinya */ +#define HPDF_LANG_TK "tk" /* Turkmen */ +#define HPDF_LANG_TL "tl" /* Tagalog */ +#define HPDF_LANG_TN "tn" /* Setswanato Tonga */ +#define HPDF_LANG_TR "tr" /* Turkish */ +#define HPDF_LANG_TS "ts" /* Tsonga */ +#define HPDF_LANG_TT "tt" /* Tatar */ +#define HPDF_LANG_TW "tw" /* Twi */ +#define HPDF_LANG_UK "uk" /* Ukrainian */ +#define HPDF_LANG_UR "ur" /* Urdu */ +#define HPDF_LANG_UZ "uz" /* Uzbek */ +#define HPDF_LANG_VI "vi" /* Vietnamese */ +#define HPDF_LANG_VO "vo" /* Volapuk */ +#define HPDF_LANG_WO "wo" /* Wolof */ +#define HPDF_LANG_XH "xh" /* Xhosa */ +#define HPDF_LANG_YO "yo" /* Yoruba */ +#define HPDF_LANG_ZH "zh" /* Chinese */ +#define HPDF_LANG_ZU "zu" /* Zulu */ + + +/*----------------------------------------------------------------------------*/ +/*----- Graphis mode ---------------------------------------------------------*/ + +#define HPDF_GMODE_PAGE_DESCRIPTION 0x0001 +#define HPDF_GMODE_PATH_OBJECT 0x0002 +#define HPDF_GMODE_TEXT_OBJECT 0x0004 +#define HPDF_GMODE_CLIPPING_PATH 0x0008 +#define HPDF_GMODE_SHADING 0x0010 +#define HPDF_GMODE_INLINE_IMAGE 0x0020 +#define HPDF_GMODE_EXTERNAL_OBJECT 0x0040 + +//----------------------------------------------------------------------// diff --git a/harbour/contrib/hbhpdf/tests/harupdf.prg b/harbour/contrib/hbhpdf/tests/harupdf.prg new file mode 100644 index 0000000000..f36c156e0f --- /dev/null +++ b/harbour/contrib/hbhpdf/tests/harupdf.prg @@ -0,0 +1,1435 @@ +/* + * $Id$ + */ +/* + * Copyright 2008 Pritpal Bedi + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option ) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/ ). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +// +// HaruPdf.prg +// +// Pritpal Bedi +// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// +//----------------------------------------------------------------------// + +#include 'harupdf.ch' +#ifdef __oHARBOUR__ +#include 'xhb.ch' +#endif +//----------------------------------------------------------------------// + +Function Main( cFileToSave ) + + if empty( cFileToSave ) + cFileToSave := CurDrive()+'\myharu.pdf' + endif + + if DesignHaruPDF( cFileToSave ) + Alert( 'PDF File <'+cFileToSave+'> is Created!' ) + + else + Alert( 'Some problems in creating the PDF!' ) + + endif + + Return nil + +//----------------------------------------------------------------------// + +Function DesignHaruPDF( cFileToSave ) + Local i, page, height, width, def_font, tw, samp_text, font + Local page_title := 'Vouch' + Local font_list := { ; + "Courier", ; + "Courier-Bold", ; + "Courier-Oblique", ; + "Courier-BoldOblique", ; + "Helvetica", ; + "Helvetica-Bold", ; + "Helvetica-Oblique", ; + "Helvetica-BoldOblique", ; + "Times-Roman", ; + "Times-Bold", ; + "Times-Italic", ; + "Times-BoldItalic", ; + "Symbol", ; + "ZapfDingbats" ; + } + + Local pdf := HPDF_New() + + if pdf == NIL + alert( ' Pdf could not been created!' ) + return nil + endif + + /* set compression mode */ + HPDF_SetCompressionMode( pdf, HPDF_COMP_ALL ) + + /* + // Passwords and Permissions + // + HPDF_SetPassword(pdf, 'owner','user' ) + HPDF_SetPermission(pdf, HPDF_ENABLE_READ) // cannot print + HPDF_SetEncryptionMode(pdf, HPDF_ENCRYPT_R3, 16) + */ + + page := HPDF_AddPage(pdf) + height := HPDF_Page_GetHeight(page) + width := HPDF_Page_GetWidth(page) + + /* Print the lines of the page. */ + HPDF_Page_SetLineWidth( page, 1 ) + HPDF_Page_Rectangle( page, 50, 50, width - 100, height - 110 ) + HPDF_Page_Stroke( page ) + + /* Print the title of the page(with positioning center). */ + def_font = HPDF_GetFont( pdf, "Helvetica", NIL ) + + HPDF_Page_SetFontAndSize( page, def_font, 24 ) + tw := HPDF_Page_TextWidth( page, page_title ) + HPDF_Page_BeginText( page ) + HPDF_Page_TextOut( page, (width - tw) / 2, height - 50, page_title ) + HPDF_Page_EndText( page ) + + /* output subtitle. */ + HPDF_Page_BeginText( page ) + HPDF_Page_SetFontAndSize( page, def_font, 16 ) + HPDF_Page_TextOut( page, 60, height - 80, "") + HPDF_Page_EndText( page ) + + HPDF_Page_BeginText( page ) + HPDF_Page_MoveTextPos( page, 60, height - 105 ) + + + for i := 1 to len( font_list ) + samp_text := "abcdefgABCDEFG12345!#$%&+-@?" + font := HPDF_GetFont( pdf, font_list[ i ], NIL ) + + + HPDF_Page_SetFontAndSize( page, def_font, 9 ) + HPDF_Page_ShowText( page, font_list[ i ] ) + HPDF_Page_MoveTextPos( page, 0, -18 ) + + + HPDF_Page_SetFontAndSize( page, font, 20 ) + HPDF_Page_ShowText( page, samp_text ) + HPDF_Page_MoveTextPos( page, 0, -20 ) + next + HPDF_Page_EndText( page ) + + Page_Lines( pdf ) + + Page_Text( pdf ) + + Page_TextScaling( pdf ) + + Page_Graphics( pdf ) + + Page_Annotation( pdf ) + + Page_Images( pdf ) + + // Commentout the following line if you need ASCII chart by Codepages + //Page_CodePages( pdf ) + + HPDF_SaveToFile( pdf, cFileToSave ) + + HPDF_Free( pdf ) + + Return file( cFileToSave ) +//----------------------------------------------------------------------// +Static Function Page_Lines( pdf ) + Local page_title := "Line Example" + Local font, page, fname + + Local DASH_MODE1 := {3} + Local DASH_MODE2 := {3, 7} + Local DASH_MODE3 := {8, 7, 2, 7} + + Local x, y, x1, y1, x2, y2, x3, y3, tw + + /* create default-font */ + font := HPDF_GetFont( pdf, "Helvetica", NIL ) + + /* add a new page object. */ + page := HPDF_AddPage(pdf) + + /* print the lines of the page. */ + HPDF_Page_SetLineWidth(page, 1) + HPDF_Page_Rectangle(page, 50, 50, HPDF_Page_GetWidth(page) - 100,; + HPDF_Page_GetHeight(page) - 110) + HPDF_Page_Stroke(page) + + /* print the title of the page(with positioning center). */ + HPDF_Page_SetFontAndSize(page, font, 24) + tw = HPDF_Page_TextWidth(page, page_title) + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page,(HPDF_Page_GetWidth(page) - tw) / 2, ; + HPDF_Page_GetHeight(page) - 50) + HPDF_Page_ShowText(page, page_title) + HPDF_Page_EndText(page) + + HPDF_Page_SetFontAndSize(page, font, 10) + + /* Draw verious widths of lines. */ + HPDF_Page_SetLineWidth(page, 0) + draw_line(page, 60, 770, "line width = 0") + + HPDF_Page_SetLineWidth(page, 1.0) + draw_line(page, 60, 740, "line width = 1.0") + + HPDF_Page_SetLineWidth(page, 2.0) + draw_line(page, 60, 710, "line width = 2.0") + + /* Line dash pattern */ + HPDF_Page_SetLineWidth(page, 1.0) + + HPDF_Page_SetDash(page, DASH_MODE1, 1, 1) + draw_line(page, 60, 680, "dash_ptn=[3], phase=1 -- 2 on, 3 off, 3 on...") + + HPDF_Page_SetDash(page, DASH_MODE2, 2, 2) + draw_line(page, 60, 650, "dash_ptn=[7, 3], phase=2 -- 5 on 3 off, 7 on,...") + + HPDF_Page_SetDash(page, DASH_MODE3, 4, 0) + draw_line(page, 60, 620, "dash_ptn=[8, 7, 2, 7], phase=0") + + HPDF_Page_SetDash(page, NIL, 0, 0) + + HPDF_Page_SetLineWidth(page, 30) + HPDF_Page_SetRGBStroke(page, 0.0, 0.5, 0.0) + + /* Line Cap Style */ + HPDF_Page_SetLineCap(page, HPDF_BUTT_END) + draw_line2(page, 60, 570, "PDF_BUTT_END") + + HPDF_Page_SetLineCap(page, HPDF_ROUND_END) + draw_line2(page, 60, 505, "PDF_ROUND_END") + + HPDF_Page_SetLineCap(page, HPDF_PROJECTING_SCUARE_END) + draw_line2(page, 60, 440, "PDF_PROJECTING_SCUARE_END") + + /* Line Join Style */ + HPDF_Page_SetLineWidth(page, 30) + HPDF_Page_SetRGBStroke(page, 0.0, 0.0, 0.5) + + HPDF_Page_SetLineJoin(page, HPDF_MITER_JOIN) + HPDF_Page_MoveTo(page, 120, 300) + HPDF_Page_LineTo(page, 160, 340) + HPDF_Page_LineTo(page, 200, 300) + HPDF_Page_Stroke(page) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, 60, 360) + HPDF_Page_ShowText(page, "PDF_MITER_JOIN") + HPDF_Page_EndText(page) + + HPDF_Page_SetLineJoin(page, HPDF_ROUND_JOIN) + HPDF_Page_MoveTo(page, 120, 195) + HPDF_Page_LineTo(page, 160, 235) + HPDF_Page_LineTo(page, 200, 195) + HPDF_Page_Stroke(page) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, 60, 255) + HPDF_Page_ShowText(page, "PDF_ROUND_JOIN") + HPDF_Page_EndText(page) + + HPDF_Page_SetLineJoin(page, HPDF_BEVEL_JOIN) + HPDF_Page_MoveTo(page, 120, 90) + HPDF_Page_LineTo(page, 160, 130) + HPDF_Page_LineTo(page, 200, 90) + HPDF_Page_Stroke(page) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, 60, 150) + HPDF_Page_ShowText(page, "PDF_BEVEL_JOIN") + HPDF_Page_EndText(page) + + /* Draw Rectangle */ + HPDF_Page_SetLineWidth(page, 2) + HPDF_Page_SetRGBStroke(page, 0, 0, 0) + HPDF_Page_SetRGBFill(page, 0.75, 0.0, 0.0) + + draw_rect(page, 300, 770, "Stroke") + HPDF_Page_Stroke(page) + + draw_rect(page, 300, 720, "Fill") + HPDF_Page_Fill(page) + + draw_rect(page, 300, 670, "Fill then Stroke") + HPDF_Page_FillStroke(page) + + /* Clip Rect */ + HPDF_Page_GSave(page) /* Save the current graphic state */ + draw_rect(page, 300, 620, "Clip Rectangle") + HPDF_Page_Clip(page) + HPDF_Page_Stroke(page) + HPDF_Page_SetFontAndSize(page, font, 13) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, 290, 600) + HPDF_Page_SetTextLeading(page, 12) + HPDF_Page_ShowText(page, "Clip Clip Clip Clip Clip Clipi Clip Clip Clip") + HPDF_Page_ShowTextNextLine(page, "Clip Clip Clip Clip Clip Clip Clip Clip Clip") + HPDF_Page_ShowTextNextLine(page, "Clip Clip Clip Clip Clip Clip Clip Clip Clip") + HPDF_Page_EndText(page) + HPDF_Page_GRestore(page) + + /* Curve Example(CurveTo2) */ + x := 330 + y := 440 + x1 := 430 + y1 := 530 + x2 := 480 + y2 := 470 + x3 := 480 + y3 := 90 + + HPDF_Page_SetRGBFill(page, 0, 0, 0) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, 300, 540) + HPDF_Page_ShowText(page, "CurveTo2(x1, y1, x2. y2)") + HPDF_Page_EndText(page) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, x + 5, y - 5) + HPDF_Page_ShowText(page, "Current point") + HPDF_Page_MoveTextPos(page, x1 - x, y1 - y) + HPDF_Page_ShowText(page, "(x1, y1)") + HPDF_Page_MoveTextPos(page, x2 - x1, y2 - y1) + HPDF_Page_ShowText(page, "(x2, y2)") + HPDF_Page_EndText(page) + + HPDF_Page_SetDash(page, DASH_MODE1, 1, 0) + + HPDF_Page_SetLineWidth(page, 0.5) + HPDF_Page_MoveTo(page, x1, y1) + HPDF_Page_LineTo(page, x2, y2) + HPDF_Page_Stroke(page) + + HPDF_Page_SetDash(page, NIL, 0, 0) + + HPDF_Page_SetLineWidth(page, 1.5) + + HPDF_Page_MoveTo(page, x, y) + HPDF_Page_CurveTo2(page, x1, y1, x2, y2) + HPDF_Page_Stroke(page) + + /* Curve Example(CurveTo3) */ + y -= 150 + y1 -= 150 + y2 -= 150 + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, 300, 390) + HPDF_Page_ShowText(page, "CurveTo3(x1, y1, x2. y2)") + HPDF_Page_EndText(page) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, x + 5, y - 5) + HPDF_Page_ShowText(page, "Current point") + HPDF_Page_MoveTextPos(page, x1 - x, y1 - y) + HPDF_Page_ShowText(page, "(x1, y1)") + HPDF_Page_MoveTextPos(page, x2 - x1, y2 - y1) + HPDF_Page_ShowText(page, "(x2, y2)") + HPDF_Page_EndText(page) + + HPDF_Page_SetDash(page, DASH_MODE1, 1, 0) + + HPDF_Page_SetLineWidth(page, 0.5) + HPDF_Page_MoveTo(page, x, y) + HPDF_Page_LineTo(page, x1, y1) + HPDF_Page_Stroke(page) + + HPDF_Page_SetDash(page, NIL, 0, 0) + + HPDF_Page_SetLineWidth(page, 1.5) + HPDF_Page_MoveTo(page, x, y) + HPDF_Page_CurveTo3(page, x1, y1, x2, y2) + HPDF_Page_Stroke(page) + + /* Curve Example(CurveTo) */ + y -= 150 + y1 -= 160 + y2 -= 130 + x2 += 10 + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, 300, 240) + HPDF_Page_ShowText(page, "CurveTo(x1, y1, x2. y2, x3, y3)") + HPDF_Page_EndText(page) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, x + 5, y - 5) + HPDF_Page_ShowText(page, "Current point") + HPDF_Page_MoveTextPos(page, x1 - x, y1 - y) + HPDF_Page_ShowText(page, "(x1, y1)") + HPDF_Page_MoveTextPos(page, x2 - x1, y2 - y1) + HPDF_Page_ShowText(page, "(x2, y2)") + HPDF_Page_MoveTextPos(page, x3 - x2, y3 - y2) + HPDF_Page_ShowText(page, "(x3, y3)") + HPDF_Page_EndText(page) + + HPDF_Page_SetDash(page, DASH_MODE1, 1, 0) + + HPDF_Page_SetLineWidth(page, 0.5) + HPDF_Page_MoveTo(page, x, y) + HPDF_Page_LineTo(page, x1, y1) + HPDF_Page_Stroke(page) + HPDF_Page_MoveTo(page, x2, y2) + HPDF_Page_LineTo(page, x3, y3) + HPDF_Page_Stroke(page) + + HPDF_Page_SetDash(page, NIL, 0, 0) + + HPDF_Page_SetLineWidth(page, 1.5) + HPDF_Page_MoveTo(page, x, y) + HPDF_Page_CurveTo(page, x1, y1, x2, y2, x3, y3) + HPDF_Page_Stroke(page) + + RETURN NIL +//----------------------------------------------------------------------// +static function draw_rect( page, x, y, label ) + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, x, y - 10) + HPDF_Page_ShowText(page, label) + HPDF_Page_EndText(page) + + HPDF_Page_Rectangle(page, x, y - 40, 220, 25) + Return nil +//----------------------------------------------------------------------// +Static Function draw_line( page, x, y, label ) + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, x, y - 10) + HPDF_Page_ShowText(page, label) + HPDF_Page_EndText(page) + + HPDF_Page_MoveTo(page, x, y - 15) + HPDF_Page_LineTo(page, x + 220, y - 15) + HPDF_Page_Stroke(page) + Return nil +//----------------------------------------------------------------------// +Static Function draw_line2( page, x, y, label ) + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, x, y) + HPDF_Page_ShowText(page, label) + HPDF_Page_EndText(page) + + HPDF_Page_MoveTo(page, x + 30, y - 25) + HPDF_Page_LineTo(page, x + 160, y - 25) + HPDF_Page_Stroke(page) + Return NIL +//----------------------------------------------------------------------// +Static Function Page_Text( pdf ) + Local page, page_height, font, rect := array( 4 ) + Local SAMP_TXT := "The quick brown fox jumps over the lazy dog. " + Local angle1, angle2, rad1, rad2,i,x,y,buf + + /* add a new page object. */ + page = HPDF_AddPage(pdf) + HPDF_Page_SetSize(page, HPDF_PAGE_SIZE_A5, HPDF_PAGE_PORTRAIT) + + //print_grid( pdf, page ) + + page_height := HPDF_Page_GetHeight(page) + + font := HPDF_GetFont(pdf, "Helvetica", NIL) + HPDF_Page_SetTextLeading(page, 20) + + #define rLEFT 1 + #define rTOP 2 + #define rRIGHT 3 + #define rBOTTOM 4 + + /* text_rect method */ + + /* HPDF_TALIGN_LEFT */ + rect[ rLEFT ] := 25 + rect[ rTOP ] := 545 + rect[ rRIGHT ] := 200 + rect[ rBOTTOM ] := rect[ 2 ] - 40 + + HPDF_Page_Rectangle(page, rect[ rLEFT ], rect[ rBOTTOM ], rect[ rRIGHT ] - rect[ rLEFT ], ; + rect[ rTOP ] - rect[ rBOTTOM ] ) + HPDF_Page_Stroke(page) + + HPDF_Page_BeginText(page) + + HPDF_Page_SetFontAndSize(page, font, 10) + HPDF_Page_TextOut(page, rect[ rLEFT ], rect[ rTOP ] + 3, "HPDF_TALIGN_LEFT") + + HPDF_Page_SetFontAndSize(page, font, 13) + HPDF_Page_TextRect(page, rect[ rLEFT ], rect[ rTOP ], rect[ rRIGHT ], rect[ rBOTTOM ],; + SAMP_TXT, HPDF_TALIGN_LEFT, NIL) + + HPDF_Page_EndText(page) + + /* HPDF_TALIGN_RIGTH */ + rect[ rLEFT ] := 220 + rect[ rRIGHT ] := 395 + + HPDF_Page_Rectangle( page, rect[ rLEFT ], rect[ rBOTTOM ], rect[ rRIGHT ] - rect[ rLEFT ], ; + rect[ rTOP ] - rect[ rBOTTOM ]) + HPDF_Page_Stroke(page) + + HPDF_Page_BeginText(page) + + HPDF_Page_SetFontAndSize(page, font, 10) + HPDF_Page_TextOut(page, rect[ rLEFT ], rect[ rTOP ] + 3, "HPDF_TALIGN_RIGTH") + + HPDF_Page_SetFontAndSize(page, font, 13) + HPDF_Page_TextRect(page, rect[ rLEFT ], rect[ rTOP ], rect[ rRIGHT ], rect[ rBOTTOM ], ; + SAMP_TXT, HPDF_TALIGN_RIGHT, NIL) + + HPDF_Page_EndText(page) + + /* HPDF_TALIGN_CENTER */ + rect[ rLEFT ] := 25 + rect[ rTOP ] := 475 + rect[ rRIGHT ] := 200 + rect[ rBOTTOM ] := rect[ rTOP ] - 40 + + HPDF_Page_Rectangle(page, rect[ rLEFT ], rect[ rBOTTOM ], rect[ rRIGHT ] - rect[ rLEFT ], ; + rect[ rTOP ] - rect[ rBOTTOM ]) + HPDF_Page_Stroke(page) + + HPDF_Page_BeginText(page) + + HPDF_Page_SetFontAndSize(page, font, 10) + HPDF_Page_TextOut(page, rect[ rLEFT ], rect[ rTOP ] + 3, "HPDF_TALIGN_CENTER") + + HPDF_Page_SetFontAndSize(page, font, 13) + HPDF_Page_TextRect(page, rect[ rLEFT ], rect[ rTOP ], rect[ rRIGHT ], rect[ rBOTTOM ],; + SAMP_TXT, HPDF_TALIGN_CENTER, NIL) + + HPDF_Page_EndText(page) + + /* HPDF_TALIGN_JUSTIFY */ + rect[ rLEFT ] := 220 + rect[ rRIGHT ] := 395 + + HPDF_Page_Rectangle(page, rect[ rLEFT ], rect[ rBOTTOM ], rect[ rRIGHT ] - rect[ rLEFT ],; + rect[ rTOP ] - rect[ rBOTTOM ]) + HPDF_Page_Stroke(page) + + HPDF_Page_BeginText(page) + + HPDF_Page_SetFontAndSize(page, font, 10) + HPDF_Page_TextOut(page, rect[ rLEFT ], rect[ rTOP ] + 3, "HPDF_TALIGN_JUSTIFY") + + HPDF_Page_SetFontAndSize(page, font, 13) + HPDF_Page_TextRect(page, rect[ rLEFT ], rect[ rTOP ], rect[ rRIGHT ], rect[ rBOTTOM ], ; + SAMP_TXT, HPDF_TALIGN_JUSTIFY, NIL) + + HPDF_Page_EndText(page) + + /* Skewed coordinate system */ + HPDF_Page_GSave(page) + + angle1 := 5 + angle2 := 10 + rad1 := angle1 / 180 * 3.141592 + rad2 := angle2 / 180 * 3.141592 + + HPDF_Page_Concat(page, 1, tan(rad1), tan(rad2), 1, 25, 350) + rect[ rLEFT ] := 0 + rect[ rTOP ] := 40 + rect[ rRIGHT ] := 175 + rect[ rBOTTOM ] := 0 + + HPDF_Page_Rectangle(page, rect[ rLEFT ], rect[ rBOTTOM ], rect[ rRIGHT ] - rect[ rLEFT ],; + rect[ rTOP ] - rect[ rBOTTOM ]) + HPDF_Page_Stroke(page) + + HPDF_Page_BeginText(page) + + HPDF_Page_SetFontAndSize(page, font, 10) + HPDF_Page_TextOut(page, rect[ rLEFT ], rect[ rTOP ] + 3, "Skewed coordinate system") + + HPDF_Page_SetFontAndSize(page, font, 13) + HPDF_Page_TextRect(page, rect[ rLEFT ], rect[ rTOP ], rect[ rRIGHT ], rect[ rBOTTOM ], ; + SAMP_TXT, HPDF_TALIGN_LEFT, NIL) + + HPDF_Page_EndText(page) + + HPDF_Page_GRestore(page) + + + /* Rotated coordinate system */ + HPDF_Page_GSave(page) + + angle1 := 5 + rad1 := angle1 / 180 * 3.141592 + + HPDF_Page_Concat(page, cos(rad1), sin(rad1), -sin(rad1), cos(rad1), 220, 350) + rect[ rLEFT ] := 0 + rect[ rTOP ] := 40 + rect[ rRIGHT ] := 175 + rect[ rBOTTOM ] := 0 + + HPDF_Page_Rectangle(page, rect[ rLEFT ], rect[ rBOTTOM ], rect[ rRIGHT ] - rect[ rLEFT ], ; + rect[ rTOP ] - rect[ rBOTTOM ]) + HPDF_Page_Stroke(page) + + HPDF_Page_BeginText(page) + + HPDF_Page_SetFontAndSize(page, font, 10) + HPDF_Page_TextOut(page, rect[ rLEFT ], rect[ rTOP ] + 3, "Rotated coordinate system") + + HPDF_Page_SetFontAndSize(page, font, 13) + HPDF_Page_TextRect(page, rect[ rLEFT ], rect[ rTOP ], rect[ rRIGHT ], rect[ rBOTTOM ], ; + SAMP_TXT, HPDF_TALIGN_LEFT, NIL) + + HPDF_Page_EndText(page) + + HPDF_Page_GRestore(page) + + + /* text along a circle */ + HPDF_Page_SetGrayStroke(page, 0) + HPDF_Page_Circle(page, 210, 190, 145) + HPDF_Page_Circle(page, 210, 190, 113) + HPDF_Page_Stroke(page) + + angle1 := 360 /(len(SAMP_TXT)) + angle2 := 180 + + HPDF_Page_BeginText(page) + font := HPDF_GetFont(pdf, "Courier-Bold", NIL) + HPDF_Page_SetFontAndSize(page, font, 30) + + for i := 0 to len(SAMP_TXT) + rad1 :=(angle2 - 90) / 180 * 3.141592 + rad2 := angle2 / 180 * 3.141592 + + x := 210 + cos(rad2) * 122 + y := 190 + sin(rad2) * 122 + + HPDF_Page_SetTextMatrix(page, cos(rad1), sin(rad1), -sin(rad1), cos(rad1), x, y) + + buf := substr( SAMP_TXT,i, 1 ) + HPDF_Page_ShowText(page, buf) + angle2 -= angle1 + next + + HPDF_Page_EndText(page) + + Return nil +//----------------------------------------------------------------------// +Static Function PrintText( page) + Local buf + Local pos := HPDF_Page_GetCurrentTextPos( page ) + + static no := 0 + no++ + + buf := ltrim( str( no ) )+ ' '+ltrim(str(pos[1]))+' '+ltrim(str(pos[2])) + + HPDF_Page_ShowText(page, buf) + Return nil +//----------------------------------------------------------------------// +Static Function Page_TextScaling( pdf ) + Local font, page, tw, angle1, angle2, buf, len, fsize, i, r, b, g, yPos, rad1, rad2 + Local samp_text := "abcdefgABCDEFG123!#$%&+-@?" + Local samp_text2 := "The quick brown fox jumps over the lazy dog." + Local page_title := "Text Demo" + + /* set compression mode */ + //HPDF_SetCompressionMode(pdf, HPDF_COMP_ALL) + + /* create default-font */ + font = HPDF_GetFont(pdf, "Helvetica", NIL) + + /* add a new page object. */ + page = HPDF_AddPage(pdf) + + /* draw grid to the page */ + //print_grid(pdf, page) + + /* print the lines of the page. + HPDF_Page_SetLineWidth(page, 1) + HPDF_Page_Rectangle(page, 50, 50, HPDF_Page_GetWidth(page) - 100, + HPDF_Page_GetHeight(page) - 110) + HPDF_Page_Stroke(page) + */ + + /* print the title of the page(with positioning center). */ + HPDF_Page_SetFontAndSize(page, font, 24) + tw = HPDF_Page_TextWidth(page, page_title) + HPDF_Page_BeginText(page) + HPDF_Page_TextOut(page,(HPDF_Page_GetWidth(page) - tw) / 2,; + HPDF_Page_GetHeight(page) - 50, page_title) + HPDF_Page_EndText(page) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, 60, HPDF_Page_GetHeight(page) - 60) + + /* + * font size + */ + fsize := 8 + do while (fsize < 60) + /* set style and size of font. */ + HPDF_Page_SetFontAndSize(page, font, fsize) + + /* set the position of the text. */ + HPDF_Page_MoveTextPos(page, 0, -5 - fsize) + + /* measure the number of characters which included in the page. */ + buf := samp_text + len := HPDF_Page_MeasureText(page, samp_text, ; + HPDF_Page_GetWidth(page) - 120, .F., NIL) + + HPDF_Page_ShowText(page, buf) + + /* print the description. */ + HPDF_Page_MoveTextPos(page, 0, -10) + HPDF_Page_SetFontAndSize(page, font, 8) + buf := "Fontsize="+ltrim( str( fsize ) ) + + HPDF_Page_ShowText(page, buf) + + fsize *= 1.5 + enddo + + /* + * font color + */ + HPDF_Page_SetFontAndSize(page, font, 8) + HPDF_Page_MoveTextPos(page, 0, -30) + HPDF_Page_ShowText(page, "Font color") + + HPDF_Page_SetFontAndSize(page, font, 18) + HPDF_Page_MoveTextPos(page, 0, -20) + len := len( samp_text ) + for i := 1 to len + r := i / len + g := 1 -(i / len) + buf := substr( samp_text, i, 1 ) + + HPDF_Page_SetRGBFill(page, r, g, 0.0) + HPDF_Page_ShowText(page, buf) + next + HPDF_Page_MoveTextPos(page, 0, -25) + + for i := 1 to len + r := i /len + b := 1 -(i /len) + buf := substr( samp_text, i, 1 ) + + HPDF_Page_SetRGBFill(page, r, 0.0, b) + HPDF_Page_ShowText(page, buf) + next + HPDF_Page_MoveTextPos(page, 0, -25) + + for i = 1 to len + b := i /len + g := 1 -(i /len) + buf := substr( samp_text, i, 1 ) + + HPDF_Page_SetRGBFill(page, 0.0, g, b) + HPDF_Page_ShowText(page, buf) + next + + HPDF_Page_EndText(page) + + ypos := 450 + + /* + * Font rendering mode + */ + HPDF_Page_SetFontAndSize(page, font, 32) + HPDF_Page_SetRGBFill(page, 0.5, 0.5, 0.0) + HPDF_Page_SetLineWidth(page, 1.5) + + /* PDF_FILL */ + show_description(page, 60, ypos, "RenderingMode=PDF_FILL") + HPDF_Page_SetTextRenderingMode(page, HPDF_FILL) + HPDF_Page_BeginText(page) + HPDF_Page_TextOut(page, 60, ypos, "ABCabc123") + HPDF_Page_EndText(page) + + /* PDF_STROKE */ + show_description(page, 60, ypos - 50, "RenderingMode=PDF_STROKE") + HPDF_Page_SetTextRenderingMode(page, HPDF_STROKE) + HPDF_Page_BeginText(page) + HPDF_Page_TextOut(page, 60, ypos - 50, "ABCabc123") + HPDF_Page_EndText(page) + + /* PDF_FILL_THEN_STROKE */ + show_description(page, 60, ypos - 100, "RenderingMode=PDF_FILL_THEN_STROKE") + HPDF_Page_SetTextRenderingMode(page, HPDF_FILL_THEN_STROKE) + HPDF_Page_BeginText(page) + HPDF_Page_TextOut(page, 60, ypos - 100, "ABCabc123") + HPDF_Page_EndText(page) + + /* PDF_FILL_CLIPPING */ + show_description(page, 60, ypos - 150, "RenderingMode=PDF_FILL_CLIPPING") + HPDF_Page_GSave(page) + HPDF_Page_SetTextRenderingMode(page, HPDF_FILL_CLIPPING) + HPDF_Page_BeginText(page) + HPDF_Page_TextOut(page, 60, ypos - 150, "ABCabc123") + HPDF_Page_EndText(page) + show_stripe_pattern(page, 60, ypos - 150) + HPDF_Page_GRestore(page) + + /* PDF_STROKE_CLIPPING */ + show_description(page, 60, ypos - 200, "RenderingMode=PDF_STROKE_CLIPPING") + HPDF_Page_GSave(page) + HPDF_Page_SetTextRenderingMode(page, HPDF_STROKE_CLIPPING) + HPDF_Page_BeginText(page) + HPDF_Page_TextOut(page, 60, ypos - 200, "ABCabc123") + HPDF_Page_EndText(page) + show_stripe_pattern(page, 60, ypos - 200) + HPDF_Page_GRestore(page) + + /* PDF_FILL_STROKE_CLIPPING */ + show_description(page, 60, ypos - 250, "RenderingMode=PDF_FILL_STROKE_CLIPPING") + HPDF_Page_GSave(page) + HPDF_Page_SetTextRenderingMode(page, HPDF_FILL_STROKE_CLIPPING) + HPDF_Page_BeginText(page) + HPDF_Page_TextOut(page, 60, ypos - 250, "ABCabc123") + HPDF_Page_EndText(page) + show_stripe_pattern(page, 60, ypos - 250) + HPDF_Page_GRestore(page) + + /* Reset text attributes */ + HPDF_Page_SetTextRenderingMode(page, HPDF_FILL) + HPDF_Page_SetRGBFill(page, 0, 0, 0) + HPDF_Page_SetFontAndSize(page, font, 30) + + + /* + * Rotating text + */ + angle1 := 30 /* A rotation of 30 degrees. */ + rad1 := angle1 / 180 * 3.141592 /* Calcurate the radian value. */ + + show_description(page, 320, ypos - 60, "Rotating text") + HPDF_Page_BeginText(page) + HPDF_Page_SetTextMatrix(page, cos(rad1), sin(rad1), -sin(rad1), cos(rad1), 330, ypos - 60) + HPDF_Page_ShowText(page, "ABCabc123") + HPDF_Page_EndText(page) + + + /* + * Skewing text. + */ + show_description(page, 320, ypos - 120, "Skewing text") + HPDF_Page_BeginText(page) + + angle1 = 10 + angle2 = 20 + rad1 = angle1 / 180 * 3.141592 + rad2 = angle2 / 180 * 3.141592 + + HPDF_Page_SetTextMatrix(page, 1, tan(rad1), tan(rad2), 1, 320, ypos - 120) + HPDF_Page_ShowText(page, "ABCabc123") + HPDF_Page_EndText(page) + + + /* + * scaling text(X direction) + */ + show_description(page, 320, ypos - 175, "Scaling text(X direction)") + HPDF_Page_BeginText(page) + HPDF_Page_SetTextMatrix(page, 1.5, 0, 0, 1, 320, ypos - 175) + HPDF_Page_ShowText(page, "ABCabc12") + HPDF_Page_EndText(page) + + + /* + * scaling text(Y direction) + */ + show_description(page, 320, ypos - 250, "Scaling text(Y direction)") + HPDF_Page_BeginText(page) + HPDF_Page_SetTextMatrix(page, 1, 0, 0, 2, 320, ypos - 250) + HPDF_Page_ShowText(page, "ABCabc123") + HPDF_Page_EndText(page) + + + /* + * char spacing, word spacing + */ + + show_description(page, 60, 140, "char-spacing 0") + show_description(page, 60, 100, "char-spacing 1.5") + show_description(page, 60, 60, "char-spacing 1.5, word-spacing 2.5") + + HPDF_Page_SetFontAndSize(page, font, 20) + HPDF_Page_SetRGBFill(page, 0.1, 0.3, 0.1) + + /* char-spacing 0 */ + HPDF_Page_BeginText(page) + HPDF_Page_TextOut(page, 60, 140, samp_text2) + HPDF_Page_EndText(page) + + /* char-spacing 1.5 */ + HPDF_Page_SetCharSpace(page, 1.5) + + HPDF_Page_BeginText(page) + HPDF_Page_TextOut(page, 60, 100, samp_text2) + HPDF_Page_EndText(page) + + /* char-spacing 1.5, word-spacing 3.5 */ + HPDF_Page_SetWordSpace(page, 2.5) + + HPDF_Page_BeginText(page) + HPDF_Page_TextOut(page, 60, 60, samp_text2) + HPDF_Page_EndText(page) + + //HPDF_SetCompressionMode(pdf, nComp) + + Return nil +//----------------------------------------------------------------------// +Static Function show_stripe_pattern( page, x, y) + Local iy := 0 + + do while(iy < 50) + HPDF_Page_SetRGBStroke(page, 0.0, 0.0, 0.5) + HPDF_Page_SetLineWidth(page, 1) + HPDF_Page_MoveTo(page, x, y + iy) + HPDF_Page_LineTo(page, x + HPDF_Page_TextWidth(page, "ABCabc123"), y + iy) + HPDF_Page_Stroke(page) + iy += 3 + enddo + + HPDF_Page_SetLineWidth(page, 2.5) + Return nil +//----------------------------------------------------------------------// +static function show_description( page, x, y, text ) + Local fsize := HPDF_Page_GetCurrentFontSize( page) + Local font := HPDF_Page_GetCurrentFont(page) + Local c := HPDF_Page_GetRGBFill(page) + + HPDF_Page_BeginText(page) + HPDF_Page_SetRGBFill(page, 0, 0, 0) + HPDF_Page_SetTextRenderingMode(page, HPDF_FILL) + HPDF_Page_SetFontAndSize(page, font, 10) + HPDF_Page_TextOut(page, x, y - 12, text) + HPDF_Page_EndText(page) + + HPDF_Page_SetFontAndSize(page, font, fsize) + HPDF_Page_SetRGBFill(page, c[1], c[2], c[3]) + Return nil +//----------------------------------------------------------------------// +#define PAGE_WIDTH 420 +#define PAGE_HEIGHT 400 +#define CELL_WIDTH 20 +#define CELL_HEIGHT 20 +#define CELL_HEADER 10 + +Static function Page_CodePages( pdf ) + Local page, outline, font2, font_name, root, i, font, dst, fname + Local cResPath := "c:\harbour\contrib\hbhpdf\tests\" + Local cAfm := cResPath+"a010013l.afm" + Local cPfb := cResPath+"a010013l.pfb" + Local encodings := { ; + "StandardEncoding",; + "MacRomanEncoding",; + "WinAnsiEncoding", ; + "ISO8859-2", ; + "ISO8859-3", ; + "ISO8859-4", ; + "ISO8859-5", ; + "ISO8859-9", ; + "ISO8859-10", ; + "ISO8859-13", ; + "ISO8859-14", ; + "ISO8859-15", ; + "ISO8859-16", ; + "CP1250", ; + "CP1251", ; + "CP1252", ; + "CP1254", ; + "CP1257", ; + "KOI8-R", ; + "Symbol-Set", ; + "ZapfDingbats-Set" } + + /* Set page mode to use outlines. */ + HPDF_SetPageMode(pdf, HPDF_PAGE_MODE_USE_OUTLINE) + + /* get default font */ + font := HPDF_GetFont(pdf, "Helvetica", NIL) + + /* load font object */ + font_name := HPDF_LoadType1FontFromFile(pdf, cAfm, cPfb ) + + /* create outline root. */ + root = HPDF_CreateOutline(pdf, NIL, "Encoding list", NIL) + HPDF_Outline_SetOpened(root, .t.) + + for i := 1 to len( encodings ) + page = HPDF_AddPage(pdf) + + HPDF_Page_SetWidth(page, PAGE_WIDTH) + HPDF_Page_SetHeight(page, PAGE_HEIGHT) + + outline = HPDF_CreateOutline(pdf, root, encodings[i], NIL) + dst = HPDF_Page_CreateDestination(page) + HPDF_Destination_SetXYZ(dst, 0, HPDF_Page_GetHeight(page), 1) + + /* HPDF_Destination_SetFitB(dst) */ + HPDF_Outline_SetDestination(outline, dst) + + HPDF_Page_SetFontAndSize(page, font, 15) + draw_graph(page) + + HPDF_Page_BeginText(page) + HPDF_Page_SetFontAndSize(page, font, 20) + HPDF_Page_MoveTextPos(page, 40, PAGE_HEIGHT - 50) + HPDF_Page_ShowText(page, encodings[i] ) + HPDF_Page_ShowText(page, " Encoding" ) + HPDF_Page_EndText(page) + + if (encodings[i] == "Symbol-Set") + font2 = HPDF_GetFont(pdf, "Symbol", NIL) + elseif (encodings[i] == "ZapfDingbats-Set") + font2 = HPDF_GetFont(pdf, "ZapfDingbats", NIL) + else + font2 = HPDF_GetFont(pdf, font_name, encodings[i]) + endif + + HPDF_Page_SetFontAndSize(page, font2, 14) + draw_fonts(page) + next + + return nil +//----------------------------------------------------------------------// +static function draw_graph( page ) + Local buf, i, x, y + + /* Draw 16 X 15 cells */ + + /* Draw vertical lines. */ + HPDF_Page_SetLineWidth(page, 0.5) + + for i := 0 to 17 + x = i * CELL_WIDTH + 40; + + HPDF_Page_MoveTo(page, x, PAGE_HEIGHT - 60) + HPDF_Page_LineTo(page, x, 40) + HPDF_Page_Stroke(page) + + if (i > 0 .and. i <= 16) + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, x + 5, PAGE_HEIGHT - 75) + buf := NumToHex( i-1 ) + HPDF_Page_ShowText(page, buf) + HPDF_Page_EndText(page) + endif + next + + /* Draw horizontal lines. */ + for i := 0 to 15 + y := i * CELL_HEIGHT + 40 + + HPDF_Page_MoveTo(page, 40, y) + HPDF_Page_LineTo(page, PAGE_WIDTH - 40, y) + HPDF_Page_Stroke(page) + + if (i < 14) + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, 45, y + 5) + buf := NumToHex( 15-i ) + HPDF_Page_ShowText(page, buf) + HPDF_Page_EndText(page) + endif + next + Return nil +//----------------------------------------------------------------------// +Static function draw_fonts(page) + Local i,j,buf, x, y, d + + HPDF_Page_BeginText(page) + + /* Draw all character from 0x20 to 0xFF to the canvas. */ + for i := 1 to 16 + for j := 1 to 16 + y = PAGE_HEIGHT - 55 - ((i - 1) * CELL_HEIGHT) + x = j * CELL_WIDTH + 50 + + buf := (i - 1) * 16 + (j - 1) + if (buf >= 32) + d := x - HPDF_Page_TextWidth( page, chr( buf ) ) / 2 + HPDF_Page_TextOut( page, d, y, chr( buf ) ) + endif + next + next + + HPDF_Page_EndText(page) + + Return nil +//----------------------------------------------------------------------// +Static Function Page_Graphics( pdf ) + Local page, pos + + /* add a new page object. */ + page := HPDF_AddPage(pdf) + + HPDF_Page_SetHeight(page, 220) + HPDF_Page_SetWidth(page, 200) + + /* draw grid to the page */ + //print_grid(pdf, page) + + /* draw pie chart + * + * A: 45% Red + * B: 25% Blue + * C: 15% green + * D: other yellow + */ + + /* A */ + HPDF_Page_SetRGBFill(page, 1.0, 0, 0) + HPDF_Page_MoveTo(page, 100, 100) + HPDF_Page_LineTo(page, 100, 180) + HPDF_Page_Arc(page, 100, 100, 80, 0, 360 * 0.45) + pos := HPDF_Page_GetCurrentPos(page) + HPDF_Page_LineTo(page, 100, 100) + HPDF_Page_Fill(page) + + /* B */ + HPDF_Page_SetRGBFill(page, 0, 0, 1.0) + HPDF_Page_MoveTo(page, 100, 100) + HPDF_Page_LineTo(page, pos[1], pos[2]) + HPDF_Page_Arc(page, 100, 100, 80, 360 * 0.45, 360 * 0.7) + pos := HPDF_Page_GetCurrentPos(page) + HPDF_Page_LineTo(page, 100, 100) + HPDF_Page_Fill(page) + + /* C */ + HPDF_Page_SetRGBFill(page, 0, 1.0, 0) + HPDF_Page_MoveTo(page, 100, 100) + HPDF_Page_LineTo(page, pos[1], pos[2]) + HPDF_Page_Arc(page, 100, 100, 80, 360 * 0.7, 360 * 0.85) + pos := HPDF_Page_GetCurrentPos(page) + HPDF_Page_LineTo(page, 100, 100) + HPDF_Page_Fill(page) + + /* D */ + HPDF_Page_SetRGBFill(page, 1.0, 1.0, 0) + HPDF_Page_MoveTo(page, 100, 100) + HPDF_Page_LineTo(page, pos[1], pos[2]) + HPDF_Page_Arc(page, 100, 100, 80, 360 * 0.85, 360) + pos := HPDF_Page_GetCurrentPos(page) + HPDF_Page_LineTo(page, 100, 100) + HPDF_Page_Fill(page) + + /* draw center circle */ + HPDF_Page_SetGrayStroke(page, 0) + HPDF_Page_SetGrayFill(page, 1) + HPDF_Page_Circle(page, 100, 100, 30) + HPDF_Page_Fill(page) + + Return nil +//----------------------------------------------------------------------// +Static Function Page_Annotation( pdf ) + Local rect1 := {50 , 350, 150, 400} + Local rect2 := {210, 350, 350, 400} + Local rect3 := {50 , 250, 150, 300} + Local rect4 := {210, 250, 350, 300} + Local rect5 := {50 , 150, 150, 200} + Local rect6 := {210, 150, 350, 200} + Local rect7 := {50 , 50 , 150, 100} + Local rect8 := {210, 50 , 350, 100} + + Local page, font, encoding, annot + + /* use Times-Roman font. */ + font = HPDF_GetFont(pdf, "Times-Roman", "WinAnsiEncoding") + + page = HPDF_AddPage(pdf) + + HPDF_Page_SetWidth(page, 400) + HPDF_Page_SetHeight(page, 500) + + HPDF_Page_BeginText(page) + HPDF_Page_SetFontAndSize(page, font, 16) + HPDF_Page_MoveTextPos(page, 130, 450) + HPDF_Page_ShowText(page, "Annotation Demo") + HPDF_Page_EndText(page) + + + annot = HPDF_Page_CreateTextAnnot(page, rect1, ; + "Annotation with Comment Icons"+chr(13)+chr(10)+; + "This annotation set to be opened initially.",; + NIL) + + HPDF_TextAnnot_SetIcon(annot, HPDF_ANNOT_ICON_COMMENT) + HPDF_TextAnnot_SetOpened(annot, HPDF_TRUE) + + annot = HPDF_Page_CreateTextAnnot(page, rect2, "Annotation with Key Icon", NIL) + HPDF_TextAnnot_SetIcon(annot, HPDF_ANNOT_ICON_PARAGRAPH) + + annot = HPDF_Page_CreateTextAnnot(page, rect3, "Annotation with Note Icon", NIL) + HPDF_TextAnnot_SetIcon(annot, HPDF_ANNOT_ICON_NOTE) + + annot = HPDF_Page_CreateTextAnnot(page, rect4, "Annotation with Help Icon", NIL) + HPDF_TextAnnot_SetIcon(annot, HPDF_ANNOT_ICON_HELP) + + annot = HPDF_Page_CreateTextAnnot(page, rect5, "Annotation with NewParagraph Icon", NIL) + HPDF_TextAnnot_SetIcon(annot, HPDF_ANNOT_ICON_NEW_PARAGRAPH) + + annot = HPDF_Page_CreateTextAnnot(page, rect6, "Annotation with Paragraph Icon", NIL) + HPDF_TextAnnot_SetIcon(annot, HPDF_ANNOT_ICON_PARAGRAPH) + + annot = HPDF_Page_CreateTextAnnot(page, rect7, "Annotation with Insert Icon", NIL) + HPDF_TextAnnot_SetIcon(annot, HPDF_ANNOT_ICON_INSERT) + + encoding = HPDF_GetEncoder(pdf, "ISO8859-2") + + HPDF_Page_CreateTextAnnot(page, rect8,"Annotation with ISO8859 text モヤユヨラリル", encoding) + + HPDF_Page_SetFontAndSize(page, font, 11) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, rect1[1] + 35, rect1[2] - 20) + HPDF_Page_ShowText(page, "Comment Icon.") + HPDF_Page_EndText(page) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, rect2[1] + 35, rect2[2] - 20) + HPDF_Page_ShowText(page, "Key Icon") + HPDF_Page_EndText(page) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, rect3[1] + 35, rect3[2] - 20) + HPDF_Page_ShowText(page, "Note Icon.") + HPDF_Page_EndText(page) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, rect4[1] + 35, rect4[2] - 20) + HPDF_Page_ShowText(page, "Help Icon") + HPDF_Page_EndText(page) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, rect5[1] + 35, rect5[2] - 20) + HPDF_Page_ShowText(page, "NewParagraph Icon") + HPDF_Page_EndText(page) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, rect6[1] + 35, rect6[2] - 20) + HPDF_Page_ShowText(page, "Paragraph Icon") + HPDF_Page_EndText(page) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, rect7[1] + 35, rect7[2] - 20) + HPDF_Page_ShowText(page, "Insert Icon") + HPDF_Page_EndText(page) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, rect8[1] + 35, rect8[2] - 20) + HPDF_Page_ShowText(page, "Text Icon(ISO8859-2 text)") + HPDF_Page_EndText(page) + + Return nil +//----------------------------------------------------------------------// +#define NULL NIL +//----------------------------------------------------------------------// +Static function Page_Images( pdf ) + Local font, page, dst, image, image1, image2, image3 + Local x, y, angle, angle1, angle2, rad, rad1, rad2, iw, ih + Local cImagePath := "c:\harbour\contrib\hbhpdf\tests\" + + /* create default-font */ + font := HPDF_GetFont(pdf, "Helvetica", NULL) + + /* add a new page object. */ + page := HPDF_AddPage(pdf) + + HPDF_Page_SetWidth(page, 550) + HPDF_Page_SetHeight(page, 500) + + dst := HPDF_Page_CreateDestination(page) + HPDF_Destination_SetXYZ(dst, 0, HPDF_Page_GetHeight(page), 1) + HPDF_SetOpenAction(pdf, dst) + + HPDF_Page_BeginText(page) + HPDF_Page_SetFontAndSize(page, font, 20) + HPDF_Page_MoveTextPos(page, 220, HPDF_Page_GetHeight(page) - 70) + HPDF_Page_ShowText(page, "ImageDemo") + HPDF_Page_EndText(page) + + /* load image file. */ + image := HPDF_LoadPngImageFromFile(pdf, cImagePath+"basn3p02.png") + + /* image1 is masked by image2. */ + image1 := HPDF_LoadPngImageFromFile(pdf, cImagePath+"basn3p02.png") + + /* image2 is a mask image. */ + image2 := HPDF_LoadPngImageFromFile(pdf, cImagePath+"basn0g01.png") + + /* image3 is a RGB-color image. we use this image for color-mask + * demo. + */ + image3 = HPDF_LoadPngImageFromFile(pdf, cImagePath+"maskimage.png") + + iw := HPDF_Image_GetWidth(image) + ih := HPDF_Image_GetHeight(image) + HPDF_Page_SetLineWidth(page, 0.5) + + x := 100 + y := HPDF_Page_GetHeight(page) - 150; + + /* Draw image to the canvas.(normal-mode with actual size.)*/ + HPDF_Page_DrawImage(page, image, x, y, iw, ih) + + show_description_1(page, x, y, "Actual Size") + + x += 150 + + /* Scalling image(X direction) */ + HPDF_Page_DrawImage(page, image, x, y, iw * 1.5, ih) + + show_description_1(page, x, y, "Scalling image(X direction)") + + x += 150 + + /* Scalling image(Y direction). */ + HPDF_Page_DrawImage(page, image, x, y, iw, ih * 1.5) + show_description_1(page, x, y, "Scalling image(Y direction)") + + x := 100 + y -= 120 + + /* Skewing image. */ + angle1 := 10 + angle2 := 20 + rad1 := angle1 / 180 * 3.141592 + rad2 := angle2 / 180 * 3.141592 + + HPDF_Page_GSave(page) + HPDF_Page_Concat(page, iw, tan(rad1) * iw, tan(rad2) * ih, ih, x, y) + HPDF_Page_ExecuteXObject(page, image) + HPDF_Page_GRestore(page) + + show_description_1(page, x, y, "Skewing image") + + x += 150 + + /* Rotating image */ + angle = 30 /* rotation of 30 degrees. */ + rad = angle / 180 * 3.141592 /* Calcurate the radian value. */ + + HPDF_Page_GSave(page) + HPDF_Page_Concat(page, iw * cos(rad), ; + iw * sin(rad), ; + ih * -sin(rad), ; + ih * cos(rad), ; + x, y) + HPDF_Page_ExecuteXObject(page, image) + HPDF_Page_GRestore(page) + + show_description_1(page, x, y, "Rotating image") + + x += 150 + + /* draw masked image. */ + + /* Set image2 to the mask image of image1 */ + HPDF_Image_SetMaskImage(image1, image2) + + HPDF_Page_SetRGBFill(page, 0, 0, 0) + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, x - 6, y + 14) + HPDF_Page_ShowText(page, "MASKMASK") + HPDF_Page_EndText(page) + + HPDF_Page_DrawImage(page, image1, x - 3, y - 3, iw + 6, ih + 6) + + show_description_1(page, x, y, "masked image") + + x := 100 + y -= 120 + + /* color mask. */ + HPDF_Page_SetRGBFill(page, 0, 0, 0) + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, x - 6, y + 14) + HPDF_Page_ShowText(page, "MASKMASK") + HPDF_Page_EndText(page) + + HPDF_Image_SetColorMask(image3, 0, 255, 0, 0, 0, 255) + HPDF_Page_DrawImage(page, image3, x, y, iw, ih) + + show_description_1(page, x, y, "Color Mask") + + Return nil +//----------------------------------------------------------------------// +Static function show_description_1( page, x, y, text ) + Local buf + + HPDF_Page_MoveTo(page, x, y - 10) + HPDF_Page_LineTo(page, x, y + 10) + HPDF_Page_MoveTo(page, x - 10, y) + HPDF_Page_LineTo(page, x + 10, y) + HPDF_Page_Stroke(page) + + HPDF_Page_SetFontAndSize(page, HPDF_Page_GetCurrentFont(page), 8) + HPDF_Page_SetRGBFill(page, 0, 0, 0) + + HPDF_Page_BeginText(page) + + buf := "x="+ltrim(str(x,10,0))+",y="+ltrim(str(y,10,0)) + + HPDF_Page_MoveTextPos(page, x - HPDF_Page_TextWidth(page, buf) - 5, y - 10) + HPDF_Page_ShowText(page, buf) + HPDF_Page_EndText(page) + + HPDF_Page_BeginText(page) + HPDF_Page_MoveTextPos(page, x - 20, y - 25) + HPDF_Page_ShowText(page, text) + HPDF_Page_EndText(page) + + Return nil +//----------------------------------------------------------------------// diff --git a/harbour/contrib/hbhpdf/tests/maskimage.png b/harbour/contrib/hbhpdf/tests/maskimage.png new file mode 100644 index 0000000000000000000000000000000000000000..d896abadb7a97faf9ad69826505657fe64a1ebbc GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WVmw_OLn`LH4Rz#VFyOfK_y75~ zTP~($va!{F)a=d#Wzp$Pz2`8aj} literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbhpdf/tests/penguinattack.ttf b/harbour/contrib/hbhpdf/tests/penguinattack.ttf new file mode 100644 index 0000000000000000000000000000000000000000..622ae2d634195b4c9305e6264baf9f81464ffc52 GIT binary patch literal 70356 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 U=bRp%zSZQ^Ui&-YH_DIy*|*3Vu>b%7 literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbhpdf/tests/sjis.txt b/harbour/contrib/hbhpdf/tests/sjis.txt new file mode 100644 index 0000000000..a76ec3b9bf --- /dev/null +++ b/harbour/contrib/hbhpdf/tests/sjis.txt @@ -0,0 +1 @@ +アメンボ赤いなあいうえお。浮き藻に小エビもおよいでる。 \ No newline at end of file