diff --git a/NEWS b/NEWS index cff7d843033..024a2724bdf 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,7 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2004, PHP 5 Release Candidate 3 +- Moved the PDFLib extension to PECL. (Wez) - Added support for dumping private/protected properties to var_dump(). (Andrey) - Added count() support for COM arrays. (Wez) diff --git a/ext/pdf/CREDITS b/ext/pdf/CREDITS deleted file mode 100644 index 8bf39a06950..00000000000 --- a/ext/pdf/CREDITS +++ /dev/null @@ -1,2 +0,0 @@ -PDF -Uwe Steinmann, Rainer Schaaf diff --git a/ext/pdf/config.m4 b/ext/pdf/config.m4 deleted file mode 100644 index 3c8cee6596d..00000000000 --- a/ext/pdf/config.m4 +++ /dev/null @@ -1,137 +0,0 @@ -dnl -dnl $Id$ -dnl - -PHP_ARG_WITH(pdflib,for PDFlib support, -[ --with-pdflib[=DIR] Include PDFlib support.]) - -if test -z "$PHP_JPEG_DIR"; then - PHP_ARG_WITH(jpeg-dir, for the location of libjpeg, - [ --with-jpeg-dir[=DIR] PDFLIB: define libjpeg install directory. - (OPTIONAL for PDFlib v4)], no, no) -fi - -if test -z "$PHP_PNG_DIR"; then - PHP_ARG_WITH(png-dir, for the location of libpng, - [ --with-png-dir[=DIR] PDFLIB: define libpng install directory. - (OPTIONAL for PDFlib v4)], no, no) -fi - -if test -z "$PHP_ZLIB_DIR"; then - PHP_ARG_WITH(zlib-dir, for the location of libz, - [ --with-zlib-dir[=DIR] PDFLIB: define libz install directory. - (OPTIONAL for PDFlib v4)], no, no) -fi - -PHP_ARG_WITH(tiff-dir, for the location of libtiff, -[ --with-tiff-dir[=DIR] PDFLIB: define libtiff install directory. - (OPTIONAL for PDFlib v4)], no, no) - -if test "$PHP_PDFLIB" != "no"; then - - PHP_NEW_EXTENSION(pdf, pdf.c, $ext_shared) - PHP_SUBST(PDF_SHARED_LIBADD) - - dnl # - dnl # Optional libraries for PDFlib - dnl # - - dnl # libjpeg - if test "$PHP_JPEG_DIR" != "no"; then - PHP_CHECK_LIBRARY(jpeg,jpeg_read_header, - [ - PHP_ADD_LIBRARY_WITH_PATH(jpeg, $PHP_JPEG_DIR/lib, PDF_SHARED_LIBADD) - ],[ - AC_MSG_ERROR([libjpeg not found!]) - ],[ - -L$PHP_JPEG_DIR/lib - ]) - else - AC_MSG_WARN([If configure fails, try --with-jpeg-dir=]) - fi - - dnl # libpng - if test "$PHP_PNG_DIR" != "no"; then - PHP_CHECK_LIBRARY(png,png_create_info_struct, - [ - PHP_ADD_LIBRARY_WITH_PATH(png, $PHP_PNG_DIR/lib, PDF_SHARED_LIBADD) - ],[ - AC_MSG_ERROR([libpng not found!]) - ],[ - -L$PHP_PNG_DIR/lib - ]) - else - AC_MSG_WARN([If configure fails, try --with-png-dir=]) - fi - - dnl # libtiff - if test "$PHP_TIFF_DIR" != "no"; then - PHP_CHECK_LIBRARY(tiff,TIFFOpen, - [ - PHP_ADD_LIBRARY_WITH_PATH(tiff, $PHP_TIFF_DIR/lib, PDF_SHARED_LIBADD) - ],[ - AC_MSG_ERROR([libtiff not found!]) - ],[ - -L$PHP_TIFF_DIR/lib - ]) - else - AC_MSG_WARN([If configure fails, try --with-tiff-dir=]) - fi - - dnl # zlib - AC_MSG_CHECKING([for the location of zlib]) - if test "$PHP_ZLIB_DIR" = "no"; then - AC_MSG_RESULT([no. If configure fails, try --with-zlib-dir=]) - else - AC_MSG_RESULT([$PHP_ZLIB_DIR]) - PHP_ADD_LIBRARY_WITH_PATH(z, $PHP_ZLIB_DIR/lib, PDF_SHARED_LIBADD) - fi - - dnl # - dnl # The main PDFlib configure - dnl # - - dnl # MacOSX requires this - case $host_alias in - *darwin*) - PHP_ADD_FRAMEWORK(CoreServices) - PHP_ADD_FRAMEWORK(ApplicationServices) - ;; - esac - - case $PHP_PDFLIB in - yes) - AC_CHECK_LIB(pdf, PDF_show_boxed, [ - AC_DEFINE(HAVE_PDFLIB,1,[ ]) - PHP_ADD_LIBRARY(pdf,, PDF_SHARED_LIBADD) - ],[ - AC_MSG_ERROR([ -PDFlib extension requires at least pdflib 3.x. You may also need libtiff, libjpeg, libpng and libz. -Use the options --with-tiff-dir=, --with-jpeg-dir=, --with-png-dir= and --with-zlib-dir= -See config.log for more information. -]) - ]) - ;; - *) - if test -f "$PHP_PDFLIB/include/pdflib.h" ; then - - PHP_CHECK_LIBRARY(pdf, PDF_show_boxed, - [ - AC_DEFINE(HAVE_PDFLIB,1,[ ]) - PHP_ADD_LIBRARY_WITH_PATH(pdf, $PHP_PDFLIB/lib, PDF_SHARED_LIBADD) - PHP_ADD_INCLUDE($PHP_PDFLIB/include) - ],[ - AC_MSG_ERROR([ -PDFlib extension requires at least pdflib 3.x. You may also need libtiff, libjpeg, libpng and libz. -Use the options --with-tiff-dir=, --with-jpeg-dir=, --with-png-dir= and --with-zlib-dir= -See config.log for more information. -]) - ],[ - -L$PHP_PDFLIB/lib $PDF_SHARED_LIBADD - ]) - else - AC_MSG_ERROR([pdflib.h not found! Check the path passed to --with-pdflib=. PATH should be the install prefix directory.]) - fi - ;; - esac -fi diff --git a/ext/pdf/config.w32 b/ext/pdf/config.w32 deleted file mode 100644 index 017d197358d..00000000000 --- a/ext/pdf/config.w32 +++ /dev/null @@ -1,22 +0,0 @@ -// $Id$ -// vim:ft=javascript - -ARG_WITH("pdf", "PDF support", "no"); - -if (PHP_PDF != "no") { - - if (CHECK_HEADER_ADD_INCLUDE("pdflib.h", "CFLAGS_PDF", PHP_PDF) && - CHECK_LIB("libtiff.lib", "pdf", PHP_PDF) && - CHECK_LIB("libpng.lib", "pdf", PHP_PDF) && - CHECK_LIB("zlib.lib", "pdf", PHP_PDF) && - CHECK_LIB("gdi32.lib", "pdf", PHP_PDF) && - CHECK_LIB("pdflib.lib", "pdf", PHP_PDF)) { - EXTENSION('pdf', 'pdf.c'); - - AC_DEFINE('HAVE_PDFLIB', 1); - - } else { - WARNING("pdf not enabled; libraries and headers not found"); - } -} - diff --git a/ext/pdf/package.xml b/ext/pdf/package.xml deleted file mode 100644 index c5b05b102cc..00000000000 --- a/ext/pdf/package.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - pdf - PDF Form Data Format functions - - - steinm - Uwe Steinmann - steinm@php.net - lead - - - ??? - Rainer Schaaf - ???@php.net - developer - - - -The PDF functions in this extension can create PDF files -using the PDFlib library created by Thomas Merz. - - PHP - - beta - 5.0rc1 - 2004-03-19 - -package.xml added to support intallation using pear installer - - - - - - - - - - - - - - - - - - diff --git a/ext/pdf/pdf.c b/ext/pdf/pdf.c deleted file mode 100644 index 2131ca22398..00000000000 --- a/ext/pdf/pdf.c +++ /dev/null @@ -1,3248 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 5 | - +----------------------------------------------------------------------+ - | Copyright (c) 1997-2004 The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.0 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_0.txt. | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Uwe Steinmann | - | Rainer Schaaf | - +----------------------------------------------------------------------+ -*/ - -/* $Id$ */ - -/* pdflib 2.02 ... 3.0x is subject to the ALADDIN FREE PUBLIC LICENSE. - Copyright (C) 1997-1999 Thomas Merz. 2000-2001 PDFlib GmbH */ -/* Note that there is no code from the pdflib package in this file */ - -/* {{{ includes - */ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "php.h" -#include "php_ini.h" -#include "php_globals.h" -#include "zend_list.h" -#include "ext/standard/head.h" -#include "ext/standard/info.h" -#include "ext/standard/file.h" -#include "php_streams.h" - -#if HAVE_LIBGD13 -#include "ext/gd/php_gd.h" -#if HAVE_GD_BUNDLED -#include "ext/gd/libgd/gd.h" -#else -#include "gd.h" -#endif -static int le_gd; -#endif - -#ifdef HAVE_UNISTD_H -# include -#endif -#ifdef PHP_WIN32 -# include -# include -#endif -/* }}} */ - -#if HAVE_PDFLIB - -#include "php_pdf.h" - -static int le_pdf; - -/* {{{ constants - * to adopt the php way of error handling to PDFlib - * The image related functions in PDFlib return -1 on error - * but they may return 0 (FALSE) in normal cases - * so this offset will repair this - */ -#define PDFLIB_IMAGE_OFFSET 1 -#define PDFLIB_FONT_OFFSET 1 -#define PDFLIB_PDI_OFFSET 1 -#define PDFLIB_PATTERN_OFFSET 1 -#define PDFLIB_SPOT_OFFSET 1 -/* }}} */ - -/* {{{ pdf_functions[] - */ -function_entry pdf_functions[] = { - PHP_FE(pdf_new, NULL) /* new function */ - PHP_FE(pdf_delete, NULL) /* new function */ - PHP_FE(pdf_open_file, NULL) /* new function */ - PHP_FE(pdf_get_buffer, NULL) /* new function */ - PHP_FE(pdf_close, NULL) - PHP_FE(pdf_begin_page, NULL) - PHP_FE(pdf_end_page, NULL) - PHP_FE(pdf_get_majorversion, NULL) - PHP_FE(pdf_get_minorversion, NULL) - PHP_FE(pdf_get_value, NULL) - PHP_FE(pdf_set_value, NULL) - PHP_FE(pdf_get_parameter, NULL) - PHP_FE(pdf_set_parameter, NULL) - PHP_FE(pdf_findfont, NULL) /* new function */ - PHP_FE(pdf_setfont, NULL) /* new function */ - PHP_FE(pdf_show, NULL) - PHP_FE(pdf_show_xy, NULL) - PHP_FE(pdf_continue_text, NULL) - PHP_FE(pdf_show_boxed, NULL) - PHP_FE(pdf_stringwidth, NULL) /* new parameters: [int font, float size] */ - PHP_FE(pdf_set_text_pos, NULL) - PHP_FE(pdf_setdash, NULL) - PHP_FE(pdf_setpolydash, NULL) /* new function: not yet finished */ - PHP_FE(pdf_setflat, NULL) - PHP_FE(pdf_setlinejoin, NULL) - PHP_FE(pdf_setlinecap, NULL) - PHP_FE(pdf_setmiterlimit, NULL) - PHP_FE(pdf_setlinewidth, NULL) - PHP_FE(pdf_save, NULL) - PHP_FE(pdf_restore, NULL) - PHP_FE(pdf_translate, NULL) - PHP_FE(pdf_scale, NULL) - PHP_FE(pdf_rotate, NULL) - PHP_FE(pdf_skew, NULL) - PHP_FE(pdf_concat, NULL) /* new function */ - PHP_FE(pdf_moveto, NULL) - PHP_FE(pdf_lineto, NULL) - PHP_FE(pdf_curveto, NULL) - PHP_FE(pdf_circle, NULL) - PHP_FE(pdf_arc, NULL) - PHP_FE(pdf_rect, NULL) - PHP_FE(pdf_closepath, NULL) - PHP_FE(pdf_stroke, NULL) - PHP_FE(pdf_closepath_stroke, NULL) - PHP_FE(pdf_fill, NULL) - PHP_FE(pdf_fill_stroke, NULL) - PHP_FE(pdf_closepath_fill_stroke, NULL) - PHP_FE(pdf_clip, NULL) - PHP_FE(pdf_endpath, NULL) - PHP_FE(pdf_open_image_file, NULL) /* new parameters: [char *stringpram, int intparam] */ - PHP_FE(pdf_open_ccitt, NULL) /* new function */ - PHP_FE(pdf_open_image, NULL) /* new function */ - PHP_FE(pdf_close_image, NULL) - PHP_FE(pdf_place_image, NULL) - PHP_FE(pdf_add_bookmark, NULL) - PHP_FE(pdf_set_info, NULL) - PHP_FE(pdf_attach_file, NULL) /* new function */ - PHP_FE(pdf_add_note, NULL) /* new function */ - PHP_FE(pdf_add_pdflink, NULL) - PHP_FE(pdf_add_locallink, NULL) /* new function */ - PHP_FE(pdf_add_launchlink, NULL)/* new function */ - PHP_FE(pdf_add_weblink, NULL) - PHP_FE(pdf_set_border_style, NULL) - PHP_FE(pdf_set_border_color, NULL) - PHP_FE(pdf_set_border_dash, NULL) - - /* End of the official PDFLIB V3.x API */ - - /* aliases for compatibility reasons */ - PHP_FALIAS(pdf_add_outline, pdf_add_bookmark, NULL) - - /* old font handling */ - PHP_FE(pdf_set_font, NULL) /* deprecated */ - PHP_FE(pdf_get_font, NULL) /* deprecated */ - PHP_FE(pdf_get_fontname, NULL) /* deprecated */ - PHP_FE(pdf_get_fontsize, NULL) /* deprecated */ - - /* old way of starting a PDF document */ - PHP_FE(pdf_open, NULL) /* deprecated */ - - /* old stuff for setting infos */ - PHP_FE(pdf_set_info_creator, NULL) /* deprecated */ - PHP_FE(pdf_set_info_title, NULL) /* deprecated */ - PHP_FE(pdf_set_info_subject, NULL) /* deprecated */ - PHP_FE(pdf_set_info_author, NULL) /* deprecated */ - PHP_FE(pdf_set_info_keywords, NULL) /* deprecated */ - PHP_FE(pdf_set_leading, NULL) /* deprecated */ - PHP_FE(pdf_set_text_rendering, NULL) /* deprecated */ - PHP_FE(pdf_set_horiz_scaling, NULL) /* deprecated */ - PHP_FE(pdf_set_text_rise, NULL) /* deprecated */ - PHP_FE(pdf_set_char_spacing, NULL) /* deprecated */ - PHP_FE(pdf_set_word_spacing, NULL) /* deprecated */ - PHP_FE(pdf_set_transition, NULL) /* deprecated */ - PHP_FE(pdf_set_duration, NULL) /* deprecated */ - PHP_FE(pdf_get_image_height, NULL) /* deprecated */ - PHP_FE(pdf_get_image_width, NULL) /* deprecated */ - - /* old stuff for opening images */ - PHP_FE(pdf_open_jpeg, NULL) /* deprecated */ - PHP_FE(pdf_open_tiff, NULL) /* deprecated */ - PHP_FE(pdf_open_png, NULL) /* deprecated */ - PHP_FE(pdf_open_gif, NULL) /* deprecated */ - - /* some more stuff for compatibility */ - PHP_FE(pdf_add_annotation, NULL) -#if HAVE_LIBGD13 - PHP_FE(pdf_open_memory_image, NULL) -#endif - /* depreciatet after V4.0 of PDFlib */ - PHP_FE(pdf_setgray_fill, NULL) - PHP_FE(pdf_setgray_stroke, NULL) - PHP_FE(pdf_setgray, NULL) - PHP_FE(pdf_setrgbcolor_fill, NULL) - PHP_FE(pdf_setrgbcolor_stroke, NULL) - PHP_FE(pdf_setrgbcolor, NULL) - -#if (PDFLIB_MAJORVERSION >= 4) -/* support for new functions in PDFlib V4.0 */ - PHP_FE(pdf_open_pdi, NULL) - PHP_FE(pdf_close_pdi, NULL) - PHP_FE(pdf_open_pdi_page, NULL) - PHP_FE(pdf_place_pdi_page, NULL) - PHP_FE(pdf_close_pdi_page, NULL) - PHP_FE(pdf_get_pdi_parameter, NULL) - PHP_FE(pdf_get_pdi_value, NULL) - PHP_FE(pdf_begin_pattern, NULL) - PHP_FE(pdf_end_pattern, NULL) - PHP_FE(pdf_begin_template, NULL) - PHP_FE(pdf_end_template, NULL) - PHP_FE(pdf_setcolor, NULL) - PHP_FE(pdf_makespotcolor, NULL) - PHP_FE(pdf_arcn, NULL) - PHP_FE(pdf_add_thumbnail, NULL) - PHP_FE(pdf_initgraphics, NULL) - PHP_FE(pdf_setmatrix, NULL) -#endif /* PDFlib >= V4 */ - - {NULL, NULL, NULL} -}; -/* }}} */ - -/* {{{ pdf_module_entry - */ -zend_module_entry pdf_module_entry = { - STANDARD_MODULE_HEADER, - "pdf", - pdf_functions, - PHP_MINIT(pdf), - PHP_MSHUTDOWN(pdf), - NULL, - NULL, - PHP_MINFO(pdf), - NO_VERSION_YET, - STANDARD_MODULE_PROPERTIES -}; -/* }}} */ - -#ifdef COMPILE_DL_PDF -ZEND_GET_MODULE(pdf) -#endif - -/* {{{ _free_pdf_doc - */ -static void _free_pdf_doc(zend_rsrc_list_entry *rsrc TSRMLS_DC) -{ - PDF *pdf = (PDF *)rsrc->ptr; - PDF_delete(pdf); -} -/* }}} */ - -/* {{{ custom_errorhandler - */ -static void custom_errorhandler(PDF *p, int type, const char *shortmsg) -{ - TSRMLS_FETCH(); - - if (type == PDF_NonfatalError) { - /* - * PDFlib warnings should be visible to the user. - * If he decides to live with PDFlib warnings - * he may use the PDFlib function - * pdf_set_parameter($p, "warning" 0) to switch off - * the warnings inside PDFlib. - */ - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Internal PDFlib warning: %s", shortmsg); - return; - } else { - /* give up in all other cases */ - php_error_docref(NULL TSRMLS_CC, E_ERROR,"PDFlib error: %s", shortmsg); - } -} -/* }}} */ - -/* {{{ pdf_emalloc - */ -static void *pdf_emalloc(PDF *p, size_t size, const char *caller) -{ - return(emalloc(size)); -} -/* }}} */ - -/* {{{ pdf_realloc - */ -static void *pdf_realloc(PDF *p, void *mem, size_t size, const char *caller) -{ - return(erealloc(mem, size)); -} -/* }}} */ - -/* {{{ pdf_efree - */ -static void pdf_efree(PDF *p, void *mem) -{ - efree(mem); -} -/* }}} */ - -/* {{{ pdf_flushwrite - */ -static size_t pdf_flushwrite(PDF *p, void *data, size_t size) -{ - TSRMLS_FETCH(); - - return(php_write(data, size TSRMLS_CC)); -} -/* }}} */ - -/* {{{ PHP_MINFO_FUNCTION - */ -PHP_MINFO_FUNCTION(pdf) -{ - char tmp[32]; - - snprintf(tmp, 31, "%d.%02d", PDF_get_majorversion(), PDF_get_minorversion() ); - tmp[31]=0; - - php_info_print_table_start(); - php_info_print_table_row(2, "PDF Support", "enabled" ); -#if (PDFLIB_MAJORVERSION >= 4) - php_info_print_table_row(2, "PDFlib GmbH Version", PDFLIB_VERSIONSTRING ); -#else - php_info_print_table_row(2, "PDFlib GmbH Version", tmp ); -#endif - php_info_print_table_row(2, "Revision", "$Revision$" ); - php_info_print_table_end(); - -} -/* }}} */ - -/* {{{ PHP_MINIT_FUNCTION - */ -PHP_MINIT_FUNCTION(pdf) -{ - if ((PDF_get_majorversion() != PDFLIB_MAJORVERSION) || - (PDF_get_minorversion() != PDFLIB_MINORVERSION)) { - php_error_docref(NULL TSRMLS_CC, E_ERROR,"PDFlib error: Version mismatch in wrapper code"); - } - le_pdf = zend_register_list_destructors_ex(_free_pdf_doc, NULL, "pdf object", module_number); - - /* this does something like setlocale("C", ...) in PDFlib 3.x */ - PDF_boot(); - return SUCCESS; -} -/* }}} */ - -/* {{{ PHP_MSHUTDOWN_FUNCTION - */ -PHP_MSHUTDOWN_FUNCTION(pdf) -{ - PDF_shutdown(); - return SUCCESS; -} -/* }}} */ - -/* {{{ _php_pdf_set_info - */ -static void _php_pdf_set_info(INTERNAL_FUNCTION_PARAMETERS, char *field) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - PDF_set_info(pdf, field, Z_STRVAL_PP(arg2)); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_set_info(resource pdfdoc, string fieldname, string value) - Fills an info field of the document */ -PHP_FUNCTION(pdf_set_info) -{ - zval **arg1, **arg2, **arg3; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - convert_to_string_ex(arg3); - PDF_set_info(pdf, Z_STRVAL_PP(arg2), Z_STRVAL_PP(arg3)); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_set_info_creator(resource pdfdoc, string creator) - Fills the creator field of the document */ -PHP_FUNCTION(pdf_set_info_creator) -{ - _php_pdf_set_info(INTERNAL_FUNCTION_PARAM_PASSTHRU, "Creator"); -} -/* }}} */ - -/* {{{ proto bool pdf_set_info_title(resource pdfdoc, string title) - Fills the title field of the document */ -PHP_FUNCTION(pdf_set_info_title) -{ - _php_pdf_set_info(INTERNAL_FUNCTION_PARAM_PASSTHRU, "Title"); -} -/* }}} */ - -/* {{{ proto bool pdf_set_info_subject(resource pdfdoc, string subject) - Fills the subject field of the document */ -PHP_FUNCTION(pdf_set_info_subject) -{ - _php_pdf_set_info(INTERNAL_FUNCTION_PARAM_PASSTHRU, "Subject"); -} -/* }}} */ - -/* {{{ proto bool pdf_set_info_author(resource pdfdoc, string author) - Fills the author field of the document */ -PHP_FUNCTION(pdf_set_info_author) -{ - _php_pdf_set_info(INTERNAL_FUNCTION_PARAM_PASSTHRU, "Author"); -} -/* }}} */ - -/* {{{ proto bool pdf_set_info_keywords(resource pdfdoc, string keywords) - Fills the keywords field of the document */ -PHP_FUNCTION(pdf_set_info_keywords) -{ - _php_pdf_set_info(INTERNAL_FUNCTION_PARAM_PASSTHRU, "Keywords"); -} -/* }}} */ - -/* {{{ proto resource pdf_open([resource filedesc]) - Opens a new pdf document. If filedesc is NULL, document is created in memory. This is the old interface, only for compatibility use pdf_new + pdf_open_file instead */ -PHP_FUNCTION(pdf_open) -{ - zval **file; - FILE *fp = NULL; - PDF *pdf; - int argc = ZEND_NUM_ARGS(); - - if(argc > 1) { - WRONG_PARAM_COUNT; - } else if (argc != 1 || zend_get_parameters_ex(1, &file) == FAILURE) { - fp = NULL; - } else { - php_stream *stream; - - php_stream_from_zval(stream, file); - - if (php_stream_cast(stream, PHP_STREAM_AS_STDIO, (void*)&fp, 1) == FAILURE) { - RETURN_FALSE; - } - } - - pdf = PDF_new2(custom_errorhandler, pdf_emalloc, pdf_realloc, pdf_efree, NULL); - - if(fp) { - if (PDF_open_fp(pdf, fp) < 0) { - RETURN_FALSE; - } - } else { - PDF_open_mem(pdf, pdf_flushwrite); - } -#if (PDFLIB_MAJORVERSION >= 4) - PDF_set_parameter(pdf, "imagewarning", "true"); -#endif - PDF_set_parameter(pdf, "binding", "PHP"); - - ZEND_REGISTER_RESOURCE(return_value, pdf, le_pdf); -} - -/* }}} */ - -/* {{{ proto bool pdf_close(resource pdfdoc) - Closes the pdf document */ -PHP_FUNCTION(pdf_close) -{ - zval **arg1; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - PDF_close(pdf); - - RETURN_TRUE; -} - -/* }}} */ - -/* {{{ proto bool pdf_begin_page(resource pdfdoc, float width, float height) - Starts page */ -PHP_FUNCTION(pdf_begin_page) -{ - zval **arg1, **arg2, **arg3; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - PDF_begin_page(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_end_page(resource pdfdoc) - Ends page */ -PHP_FUNCTION(pdf_end_page) -{ - zval **arg1; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - PDF_end_page(pdf); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_show(resource pdfdoc, string text) - Output text at current position */ -PHP_FUNCTION(pdf_show) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - PDF_show2(pdf, Z_STRVAL_PP(arg2), Z_STRLEN_PP(arg2)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_show_xy(resource pdfdoc, string text, float x_koor, float y_koor) - Output text at position */ -PHP_FUNCTION(pdf_show_xy) -{ - zval **arg1, **arg2, **arg3, **arg4; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - convert_to_double_ex(arg3); - convert_to_double_ex(arg4); - PDF_show_xy2(pdf, Z_STRVAL_PP(arg2), Z_STRLEN_PP(arg2), (float) Z_DVAL_PP(arg3), (float) Z_DVAL_PP(arg4)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto int pdf_show_boxed(resource pdfdoc, string text, float x_koor, float y_koor, float width, float height, string mode [, string feature]) - Output text formated in a boxed */ -PHP_FUNCTION(pdf_show_boxed) -{ - zval **argv[8]; - int argc = ZEND_NUM_ARGS(); - int nr; - char *feature; - PDF *pdf; - - if (((argc < 7) || (argc > 8)) || zend_get_parameters_array_ex(argc, argv) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, argv[0], -1, "pdf object", le_pdf); - - convert_to_string_ex(argv[1]); - convert_to_double_ex(argv[2]); - convert_to_double_ex(argv[3]); - convert_to_double_ex(argv[4]); - convert_to_double_ex(argv[5]); - convert_to_string_ex(argv[6]); - - if(argc == 8) { - convert_to_string_ex(argv[7]); - feature = Z_STRVAL_PP(argv[7]); - } else { - feature = NULL; - } - - nr = PDF_show_boxed(pdf, Z_STRVAL_PP(argv[1]), - (float) Z_DVAL_PP(argv[2]), - (float) Z_DVAL_PP(argv[3]), - (float) Z_DVAL_PP(argv[4]), - (float) Z_DVAL_PP(argv[5]), - Z_STRVAL_PP(argv[6]), - feature); - - RETURN_LONG(nr); -} -/* }}} */ - -/* {{{ proto bool pdf_set_font(resource pdfdoc, string font, float size, string encoding [, int embed]) - Select the current font face, size and encoding */ -PHP_FUNCTION(pdf_set_font) -{ - zval **arg1, **arg2, **arg3, **arg4, **arg5; - int font, embed; - PDF *pdf; - - switch (ZEND_NUM_ARGS()) { - case 4: - if (zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE) { - WRONG_PARAM_COUNT; - } - embed = 0; - break; - case 5: - if (zend_get_parameters_ex(5, &arg1, &arg2, &arg3, &arg4, &arg5) == FAILURE) { - WRONG_PARAM_COUNT; - } - convert_to_long_ex(arg5); - embed = Z_LVAL_PP(arg5); - break; - default: - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - convert_to_double_ex(arg3); - convert_to_string_ex(arg4); - - font = PDF_findfont(pdf, Z_STRVAL_PP(arg2), Z_STRVAL_PP(arg4), embed); - if (font == -1) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Font %s not found", Z_STRVAL_PP(arg2)); - RETURN_FALSE; - } - - PDF_setfont(pdf, font, (float) Z_DVAL_PP(arg3)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ _php_pdf_set_value - */ -static void _php_pdf_set_value(INTERNAL_FUNCTION_PARAMETERS, char *field) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - PDF_set_value(pdf, field, (float)Z_DVAL_PP(arg2)); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_set_value(resource pdfdoc, string key, float value) - Sets arbitrary value */ -PHP_FUNCTION(pdf_set_value) -{ - zval **arg1, **arg2, **arg3; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - convert_to_double_ex(arg3); - PDF_set_value(pdf, Z_STRVAL_PP(arg2), (float)Z_DVAL_PP(arg3)); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto float pdf_get_value(resource pdfdoc, string key, float modifier) - Gets arbitrary value */ -PHP_FUNCTION(pdf_get_value) -{ - zval **argv[3]; - int argc = ZEND_NUM_ARGS(); - PDF *pdf; - double value; - - if(((argc < 2) || (argc > 3)) || zend_get_parameters_array_ex(argc, argv) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, argv[0], -1, "pdf object", le_pdf); - - convert_to_string_ex(argv[1]); - if(argc == 3) - convert_to_double_ex(argv[2]); - - if(0 == (strcmp(Z_STRVAL_PP(argv[1]), "imagewidth"))) { - if(argc < 3) WRONG_PARAM_COUNT; - value = PDF_get_value(pdf, Z_STRVAL_PP(argv[1]), (float)Z_DVAL_PP(argv[2])-PDFLIB_IMAGE_OFFSET); - } else if(0 == (strcmp(Z_STRVAL_PP(argv[1]), "imageheight"))) { - if(argc < 3) WRONG_PARAM_COUNT; - value = PDF_get_value(pdf, Z_STRVAL_PP(argv[1]), (float)Z_DVAL_PP(argv[2])-PDFLIB_IMAGE_OFFSET); - } else if(0 == (strcmp(Z_STRVAL_PP(argv[1]), "resx"))) { - if(argc < 3) WRONG_PARAM_COUNT; - value = PDF_get_value(pdf, Z_STRVAL_PP(argv[1]), (float)Z_DVAL_PP(argv[2])-PDFLIB_IMAGE_OFFSET); - } else if(0 == (strcmp(Z_STRVAL_PP(argv[1]), "resy"))) { - if(argc < 3) WRONG_PARAM_COUNT; - value = PDF_get_value(pdf, Z_STRVAL_PP(argv[1]), (float)Z_DVAL_PP(argv[2])-PDFLIB_IMAGE_OFFSET); - } else if(0 == (strcmp(Z_STRVAL_PP(argv[1]), "capheight"))) { - if(argc < 3) WRONG_PARAM_COUNT; - value = PDF_get_value(pdf, Z_STRVAL_PP(argv[1]), (float)Z_DVAL_PP(argv[2])-PDFLIB_FONT_OFFSET); - } else if(0 == (strcmp(Z_STRVAL_PP(argv[1]), "ascender"))) { - if(argc < 3) WRONG_PARAM_COUNT; - value = PDF_get_value(pdf, Z_STRVAL_PP(argv[1]), (float)Z_DVAL_PP(argv[2])-PDFLIB_FONT_OFFSET); - } else if(0 == (strcmp(Z_STRVAL_PP(argv[1]), "descender"))) { - if(argc < 3) WRONG_PARAM_COUNT; - value = PDF_get_value(pdf, Z_STRVAL_PP(argv[1]), (float)Z_DVAL_PP(argv[2])-PDFLIB_FONT_OFFSET); - } else if(0 == (strcmp(Z_STRVAL_PP(argv[1]), "font"))) { - value = PDF_get_value(pdf, Z_STRVAL_PP(argv[1]), 0.0)+PDFLIB_FONT_OFFSET; - } else { - if(argc < 3) { - value = PDF_get_value(pdf, Z_STRVAL_PP(argv[1]), 0.0); - } else { - value = PDF_get_value(pdf, Z_STRVAL_PP(argv[1]), (float)Z_DVAL_PP(argv[2])); - } - } - - RETURN_DOUBLE(value); -} -/* }}} */ - -/* {{{ proto int pdf_get_font(resource pdfdoc) - Gets the current font */ -PHP_FUNCTION(pdf_get_font) -{ - zval **arg1; - int font; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - font = (int) PDF_get_value(pdf, "font", 0); - RETURN_LONG(font+PDFLIB_FONT_OFFSET); -} -/* }}} */ - -/* {{{ proto string pdf_get_fontname(resource pdfdoc) - Gets the current font name */ -PHP_FUNCTION(pdf_get_fontname) -{ - zval **arg1; - char *fontname; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - fontname = (char *) PDF_get_parameter(pdf, "fontname", 0); - RETURN_STRING(fontname, 1); -} -/* }}} */ - -/* {{{ proto float pdf_get_fontsize(resource pdfdoc) - Gets the current font size */ -PHP_FUNCTION(pdf_get_fontsize) -{ - zval **arg1; - float fontsize; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - fontsize = PDF_get_value(pdf, "fontsize", 0); - RETURN_DOUBLE(fontsize); -} -/* }}} */ - -/* {{{ proto bool pdf_set_leading(resource pdfdoc, float distance) - Sets distance between text lines */ -PHP_FUNCTION(pdf_set_leading) -{ - _php_pdf_set_value(INTERNAL_FUNCTION_PARAM_PASSTHRU, "leading"); -} -/* }}} */ - -/* {{{ proto bool pdf_set_text_rendering(resource pdfdoc, int mode) - Determines how text is rendered */ -PHP_FUNCTION(pdf_set_text_rendering) -{ - _php_pdf_set_value(INTERNAL_FUNCTION_PARAM_PASSTHRU, "textrendering"); -} -/* }}} */ - -/* {{{ proto bool pdf_set_horiz_scaling(resource pdfdoc, float scale) - Sets horizontal scaling of text */ -PHP_FUNCTION(pdf_set_horiz_scaling) -{ - _php_pdf_set_value(INTERNAL_FUNCTION_PARAM_PASSTHRU, "horizscaling"); -} -/* }}} */ - -/* {{{ proto bool pdf_set_text_rise(resource pdfdoc, float value) - Sets the text rise */ -PHP_FUNCTION(pdf_set_text_rise) -{ - _php_pdf_set_value(INTERNAL_FUNCTION_PARAM_PASSTHRU, "textrise"); -} -/* }}} */ - -/* {{{ proto bool pdf_set_char_spacing(resource pdfdoc, float space) - Sets character spacing */ -PHP_FUNCTION(pdf_set_char_spacing) -{ - _php_pdf_set_value(INTERNAL_FUNCTION_PARAM_PASSTHRU, "charspacing"); -} -/* }}} */ - -/* {{{ proto bool pdf_set_word_spacing(resource pdfdoc, float space) - Sets spacing between words */ -PHP_FUNCTION(pdf_set_word_spacing) -{ - _php_pdf_set_value(INTERNAL_FUNCTION_PARAM_PASSTHRU, "wordspacing"); -} -/* }}} */ - -/* {{{ proto bool pdf_set_text_pos(resource pdfdoc, float x, float y) - Sets the position of text for the next pdf_show call */ -PHP_FUNCTION(pdf_set_text_pos) -{ - zval **arg1, **arg2, **arg3; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - PDF_set_text_pos(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_continue_text(resource pdfdoc, string text) - Output text in next line */ -PHP_FUNCTION(pdf_continue_text) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - PDF_continue_text2(pdf, Z_STRVAL_PP(arg2), Z_STRLEN_PP(arg2)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto float pdf_stringwidth(resource pdfdoc, string text [, int font, float size]) - Returns width of text in current font */ -PHP_FUNCTION(pdf_stringwidth) -{ - zval **arg1, **arg2, **arg3, **arg4; - int font; - double width, size; - PDF *pdf; - - switch (ZEND_NUM_ARGS()) { - case 2: - if (zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) - WRONG_PARAM_COUNT; - break; - case 4: - if (zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE) - WRONG_PARAM_COUNT; - /* double convert_to_long_ex(arg3) - look below . is this needed ? */ - convert_to_long_ex(arg3); - break; - default: - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - if (ZEND_NUM_ARGS() == 2) { - font = (int)PDF_get_value(pdf, "font", 0)+PDFLIB_FONT_OFFSET; - size = PDF_get_value(pdf, "fontsize", 0); - } else { - convert_to_long_ex(arg3); - font = Z_LVAL_PP(arg3); - convert_to_double_ex(arg4); - size = Z_DVAL_PP(arg4); - } - width = (double) PDF_stringwidth2(pdf, - Z_STRVAL_PP(arg2), - Z_STRLEN_PP(arg2), - font-PDFLIB_FONT_OFFSET, - (float)size); - - RETURN_DOUBLE((double) width); -} -/* }}} */ - -/* {{{ proto bool pdf_save(resource pdfdoc) - Saves current enviroment */ -PHP_FUNCTION(pdf_save) -{ - zval **arg1; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - PDF_save(pdf); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_restore(resource pdfdoc) - Restores formerly saved enviroment */ -PHP_FUNCTION(pdf_restore) -{ - zval **arg1; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - PDF_restore(pdf); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_translate(resource pdfdoc, float x, float y) - Sets origin of coordinate system */ -PHP_FUNCTION(pdf_translate) -{ - zval **arg1, **arg2, **arg3; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - PDF_translate(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_scale(resource pdfdoc, float x_scale, float y_scale) - Sets scaling */ -PHP_FUNCTION(pdf_scale) -{ - zval **arg1, **arg2, **arg3; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - PDF_scale(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_rotate(resource pdfdoc, float angle) - Sets rotation */ -PHP_FUNCTION(pdf_rotate) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - PDF_rotate(pdf, (float) Z_DVAL_PP(arg2)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_skew(resource pdfdoc, float xangle, float yangle) - Skew the coordinate system */ -PHP_FUNCTION(pdf_skew) -{ - zval **arg1, **arg2, **arg3; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - PDF_skew(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_setflat(resource pdfdoc, float value) - Sets flatness */ -PHP_FUNCTION(pdf_setflat) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - /* pdflib will do this for you, will throw some exception - if((Z_LVAL_PP(arg2) > 100) && (Z_LVAL_PP(arg2) < 0)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Parameter of pdf_setflat() has to between 0 and 100"); - RETURN_FALSE; - } - */ - - PDF_setflat(pdf, (float) Z_DVAL_PP(arg2)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_setlinejoin(resource pdfdoc, int value) - Sets linejoin parameter */ -PHP_FUNCTION(pdf_setlinejoin) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_long_ex(arg2); - /* pdflib will do this for you, will throw some exception - if((Z_LVAL_PP(arg2) > 2) && (Z_LVAL_PP(arg2) < 0)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Parameter of pdf_setlinejoin() must be between 0 and 2"); - RETURN_FALSE; - } - */ - - PDF_setlinejoin(pdf, Z_LVAL_PP(arg2)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_setlinecap(resource pdfdoc, int value) - Sets linecap parameter */ -PHP_FUNCTION(pdf_setlinecap) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_long_ex(arg2); - /* pdflib will do this for you, will throw some exception - if((Z_LVAL_PP(arg2) > 2) && (Z_LVAL_PP(arg2) < 0)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Parameter of pdf_setlinecap() must be > 0 and <= 2"); - RETURN_FALSE; - } - */ - - PDF_setlinecap(pdf, Z_LVAL_PP(arg2)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_setmiterlimit(resource pdfdoc, float value) - Sets miter limit */ -PHP_FUNCTION(pdf_setmiterlimit) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - /* pdflib will do this for you, will throw some exception - if(Z_DVAL_PP(arg2) < 1) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Parameter of pdf_setmiterlimit() must be >= 1"); - RETURN_FALSE; - } - */ - - PDF_setmiterlimit(pdf, (float) Z_DVAL_PP(arg2)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_setlinewidth(resource pdfdoc, float width) - Sets line width */ -PHP_FUNCTION(pdf_setlinewidth) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - PDF_setlinewidth(pdf, (float) Z_DVAL_PP(arg2)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_setdash(resource pdfdoc, float black, float white) - Sets dash pattern */ -PHP_FUNCTION(pdf_setdash) -{ - zval **arg1, **arg2, **arg3; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - PDF_setdash(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_moveto(resource pdfdoc, float x, float y) - Sets current point */ -PHP_FUNCTION(pdf_moveto) -{ - zval **arg1, **arg2, **arg3; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - PDF_moveto(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_curveto(resource pdfdoc, float x1, float y1, float x2, float y2, float x3, float y3) - Draws a curve */ -PHP_FUNCTION(pdf_curveto) -{ - zval **arg1, **arg2, **arg3, **arg4, **arg5, **arg6, **arg7; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 7 || zend_get_parameters_ex(7, &arg1, &arg2, &arg3, &arg4, &arg5, &arg6, &arg7) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - convert_to_double_ex(arg4); - convert_to_double_ex(arg5); - convert_to_double_ex(arg6); - convert_to_double_ex(arg7); - - PDF_curveto(pdf, (float) Z_DVAL_PP(arg2), - (float) Z_DVAL_PP(arg3), - (float) Z_DVAL_PP(arg4), - (float) Z_DVAL_PP(arg5), - (float) Z_DVAL_PP(arg6), - (float) Z_DVAL_PP(arg7)); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_lineto(resource pdfdoc, float x, float y) - Draws a line */ -PHP_FUNCTION(pdf_lineto) -{ - zval **arg1, **arg2, **arg3; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - PDF_lineto(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_circle(resource pdfdoc, float x, float y, float radius) - Draws a circle */ -PHP_FUNCTION(pdf_circle) -{ - zval **arg1, **arg2, **arg3, **arg4; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - convert_to_double_ex(arg4); - PDF_circle(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3), (float) Z_DVAL_PP(arg4)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_arc(resource pdfdoc, float x, float y, float radius, float start, float end) - Draws an arc */ -PHP_FUNCTION(pdf_arc) -{ - zval **arg1, **arg2, **arg3, **arg4, **arg5, **arg6; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 6 || zend_get_parameters_ex(6, &arg1, &arg2, &arg3, &arg4, &arg5, &arg6) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - convert_to_double_ex(arg4); - convert_to_double_ex(arg5); - convert_to_double_ex(arg6); - - PDF_arc(pdf, (float) Z_DVAL_PP(arg2), - (float) Z_DVAL_PP(arg3), - (float) Z_DVAL_PP(arg4), - (float) Z_DVAL_PP(arg5), - (float) Z_DVAL_PP(arg6)); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_rect(resource pdfdoc, float x, float y, float width, float height) - Draws a rectangle */ -PHP_FUNCTION(pdf_rect) -{ - zval **arg1, **arg2, **arg3, **arg4, **arg5; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 5 || zend_get_parameters_ex(5, &arg1, &arg2, &arg3, &arg4, &arg5) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - convert_to_double_ex(arg4); - convert_to_double_ex(arg5); - - PDF_rect(pdf, (float) Z_DVAL_PP(arg2), - (float) Z_DVAL_PP(arg3), - (float) Z_DVAL_PP(arg4), - (float) Z_DVAL_PP(arg5)); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_closepath(resource pdfdoc) - Close path */ -PHP_FUNCTION(pdf_closepath) -{ - zval **arg1; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - PDF_closepath(pdf); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_closepath_stroke(resource pdfdoc) - Close path and draw line along path */ -PHP_FUNCTION(pdf_closepath_stroke) -{ - zval **arg1; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - PDF_closepath_stroke(pdf); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_stroke(resource pdfdoc) - Draw line along path path */ -PHP_FUNCTION(pdf_stroke) -{ - zval **arg1; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - PDF_stroke(pdf); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_fill(resource pdfdoc) - Fill current path */ -PHP_FUNCTION(pdf_fill) -{ - zval **arg1; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - PDF_fill(pdf); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_fill_stroke(resource pdfdoc) - Fill and stroke current path */ -PHP_FUNCTION(pdf_fill_stroke) -{ - zval **arg1; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - PDF_fill_stroke(pdf); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_closepath_fill_stroke(resource pdfdoc) - Close, fill and stroke current path */ -PHP_FUNCTION(pdf_closepath_fill_stroke) -{ - zval **arg1; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - PDF_closepath_fill_stroke(pdf); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_endpath(resource pdfdoc) - Ends current path */ -PHP_FUNCTION(pdf_endpath) -{ - zval **arg1; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - PDF_endpath(pdf); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_clip(resource pdfdoc) - Clips to current path */ -PHP_FUNCTION(pdf_clip) -{ - zval **arg1; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - PDF_clip(pdf); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_set_parameter(resource pdfdoc, string key, string value) - Sets arbitrary parameters */ -PHP_FUNCTION(pdf_set_parameter) -{ - zval **arg1, **arg2, **arg3; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - convert_to_string_ex(arg3); - - PDF_set_parameter(pdf, Z_STRVAL_PP(arg2), Z_STRVAL_PP(arg3)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto string pdf_get_parameter(resource pdfdoc, string key, mixed modifier) - Gets arbitrary parameters */ -PHP_FUNCTION(pdf_get_parameter) -{ - zval **argv[3]; - int argc = ZEND_NUM_ARGS(); - PDF *pdf; - char *value; - - if(((argc < 2) || (argc > 3)) || zend_get_parameters_array_ex(argc, argv) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, argv[0], -1, "pdf object", le_pdf); - - convert_to_string_ex(argv[1]); - if(argc == 3) { - convert_to_double_ex(argv[2]); - value = (char *) PDF_get_parameter(pdf, Z_STRVAL_PP(argv[1]), (float) Z_DVAL_PP(argv[2])); - } else { - value = (char *) PDF_get_parameter(pdf, Z_STRVAL_PP(argv[1]), 0.0); - } - - RETURN_STRING(value, 1); -} -/* }}} */ - -/* {{{ proto bool pdf_setgray_fill(resource pdfdoc, float value) - Sets filling color to gray value */ -PHP_FUNCTION(pdf_setgray_fill) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); -#if (PDFLIB_MAJORVERSION >= 4) - PDF_setcolor(pdf, "fill", "gray", (float) Z_DVAL_PP(arg2), 0, 0, 0); -#else - PDF_setgray_fill(pdf, (float) Z_DVAL_PP(arg2)); -#endif - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_setgray_stroke(resource pdfdoc, float value) - Sets drawing color to gray value */ -PHP_FUNCTION(pdf_setgray_stroke) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); -#if (PDFLIB_MAJORVERSION >= 4) - PDF_setcolor(pdf, "stroke", "gray", (float) Z_DVAL_PP(arg2), 0, 0, 0); -#else - PDF_setgray_stroke(pdf, (float) Z_DVAL_PP(arg2)); -#endif - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_setgray(resource pdfdoc, float value) - Sets drawing and filling color to gray value */ -PHP_FUNCTION(pdf_setgray) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); -#if (PDFLIB_MAJORVERSION >= 4) - PDF_setcolor(pdf, "both", "gray", (float) Z_DVAL_PP(arg2), 0, 0, 0); -#else - PDF_setgray(pdf, (float) Z_DVAL_PP(arg2)); -#endif - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_setrgbcolor_fill(resource pdfdoc, float red, float green, float blue) - Sets filling color to RGB color value */ -PHP_FUNCTION(pdf_setrgbcolor_fill) -{ - zval **arg1, **arg2, **arg3, **arg4; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - convert_to_double_ex(arg4); -#if (PDFLIB_MAJORVERSION >= 4) - PDF_setcolor(pdf, "fill", "rgb", (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3), (float) Z_DVAL_PP(arg4), 0); -#else - PDF_setrgbcolor_fill(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3), (float) Z_DVAL_PP(arg4)); -#endif - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_setrgbcolor_stroke(resource pdfdoc, float red, float green, float blue) - Sets drawing color to RGB color value */ -PHP_FUNCTION(pdf_setrgbcolor_stroke) -{ - zval **arg1, **arg2, **arg3, **arg4; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - convert_to_double_ex(arg4); -#if (PDFLIB_MAJORVERSION >= 4) - PDF_setcolor(pdf, "stroke", "rgb", (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3), (float) Z_DVAL_PP(arg4), 0); -#else - PDF_setrgbcolor_stroke(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3), (float) Z_DVAL_PP(arg4)); -#endif - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_setrgbcolor(resource pdfdoc, float red, float green, float blue) - Sets drawing and filling color to RGB color value */ -PHP_FUNCTION(pdf_setrgbcolor) -{ - zval **arg1, **arg2, **arg3, **arg4; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - convert_to_double_ex(arg4); -#if (PDFLIB_MAJORVERSION >= 4) - PDF_setcolor(pdf, "both", "rgb", (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3), (float) Z_DVAL_PP(arg4), 0); -#else - PDF_setrgbcolor(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3), (float) Z_DVAL_PP(arg4)); -#endif - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto int pdf_add_bookmark(resource pdfdoc, string text [, int parent [, int open]]) - Adds bookmark for current page */ -PHP_FUNCTION(pdf_add_bookmark) -{ - zval **arg1, **arg2, **arg3, **arg4; - int parentid, open, id; - PDF *pdf; - - switch (ZEND_NUM_ARGS()) { - case 2: - if (zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - break; - case 3: - if (zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { - WRONG_PARAM_COUNT; - } - break; - case 4: - if (zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE) { - WRONG_PARAM_COUNT; - } - break; - default: - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - - if (ZEND_NUM_ARGS() > 2) { - convert_to_long_ex(arg3); - parentid = Z_LVAL_PP(arg3); - - if (ZEND_NUM_ARGS() > 3) { - convert_to_long_ex(arg4); - open = Z_LVAL_PP(arg4); - } else { - open = 0; - } - } else { - parentid = 0; - open = 0; - } - - /* will never return 0 */ - id = PDF_add_bookmark(pdf, Z_STRVAL_PP(arg2), parentid, open); - - RETURN_LONG(id); -} -/* }}} */ - -/* {{{ proto bool pdf_set_transition(resource pdfdoc, int transition) - Sets transition between pages */ -PHP_FUNCTION(pdf_set_transition) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_long_ex(arg2); - - switch(Z_LVAL_PP(arg2)) { - case 0: - PDF_set_parameter(pdf, "transition", "none"); - break; - case 1: - PDF_set_parameter(pdf, "transition", "split"); - break; - case 2: - PDF_set_parameter(pdf, "transition", "blinds"); - break; - case 3: - PDF_set_parameter(pdf, "transition", "box"); - break; - case 4: - PDF_set_parameter(pdf, "transition", "wipe"); - break; - case 5: - PDF_set_parameter(pdf, "transition", "dissolve"); - break; - case 6: - PDF_set_parameter(pdf, "transition", "glitter"); - break; - case 7: - PDF_set_parameter(pdf, "transition", "replace"); - break; - default: - PDF_set_parameter(pdf, "transition", "none"); - } - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_set_duration(resource pdfdoc, float duration) - Sets duration between pages */ -PHP_FUNCTION(pdf_set_duration) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - PDF_set_value(pdf, "duration", (float) Z_DVAL_PP(arg2)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ _php_pdf_open_image - */ -static void _php_pdf_open_image(INTERNAL_FUNCTION_PARAMETERS, char *type) -{ - zval **arg1, **arg2; - PDF *pdf; - int pdf_image; - char *image; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - -#ifdef VIRTUAL_DIR - virtual_filepath(Z_STRVAL_PP(arg2), &image TSRMLS_CC); -#else - image = Z_STRVAL_PP(arg2); -#endif - - if (php_check_open_basedir(image TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(image, "rb+", CHECKUID_CHECK_MODE_PARAM))) { - RETURN_FALSE; - } - - pdf_image = PDF_open_image_file(pdf, type, image, "", 0); - - RETURN_LONG(pdf_image+PDFLIB_IMAGE_OFFSET); -} -/* }}} */ - -/* {{{ proto int pdf_open_gif(resource pdf, string giffile) - Opens a GIF file and returns an image for placement in a pdf object */ -PHP_FUNCTION(pdf_open_gif) -{ - _php_pdf_open_image(INTERNAL_FUNCTION_PARAM_PASSTHRU,"gif"); -} -/* }}} */ - -/* {{{ proto int pdf_open_jpeg(resource pdf, string jpegfile) - Opens a JPEG file and returns an image for placement in a PDF document */ -PHP_FUNCTION(pdf_open_jpeg) -{ - _php_pdf_open_image(INTERNAL_FUNCTION_PARAM_PASSTHRU,"jpeg"); -} -/* }}} */ - -/* {{{ proto int pdf_open_png(resource pdf, string pngfile) - Opens a PNG file and returns an image for placement in a PDF document */ -PHP_FUNCTION(pdf_open_png) -{ - _php_pdf_open_image(INTERNAL_FUNCTION_PARAM_PASSTHRU,"png"); -} -/* }}} */ - -/* {{{ proto int pdf_open_tiff(resource pdf, string tifffile) - Opens a TIFF file and returns an image for placement in a PDF document */ -PHP_FUNCTION(pdf_open_tiff) -{ - _php_pdf_open_image(INTERNAL_FUNCTION_PARAM_PASSTHRU,"tiff"); -} -/* }}} */ - -/* {{{ proto int pdf_open_image_file(resource pdf, string type, string file [, string stringparam, int intparam]) - Opens an image file of the given type and returns an image for placement in a PDF document */ -PHP_FUNCTION(pdf_open_image_file) -{ - zval **arg1, **arg2, **arg3, **arg4, **arg5; - PDF *pdf; - int pdf_image, argc; - char *image; - char *stringparam; - int intparam; - - switch ((argc = ZEND_NUM_ARGS())) { - case 3: - if (zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) - WRONG_PARAM_COUNT; - break; - case 5: - if (zend_get_parameters_ex(5, &arg1, &arg2, &arg3, &arg4, &arg5) == FAILURE) - WRONG_PARAM_COUNT; - break; - default: - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - convert_to_string_ex(arg3); - -#ifdef VIRTUAL_DIR - virtual_filepath(Z_STRVAL_PP(arg3), &image TSRMLS_CC); -#else - image = Z_STRVAL_PP(arg3); -#endif - - if (php_check_open_basedir(image TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(image, "rb+", CHECKUID_CHECK_MODE_PARAM))) { - RETURN_FALSE; - } - - if (argc == 3) { - pdf_image = PDF_open_image_file(pdf, Z_STRVAL_PP(arg2), image, "", 0); - } else { - convert_to_string_ex(arg4); - convert_to_long_ex(arg5); - - stringparam = Z_STRVAL_PP(arg4); - intparam = Z_LVAL_PP(arg5); - - /* adjust the image handle */ - if (!strcmp(stringparam, "masked")) - intparam -= PDFLIB_IMAGE_OFFSET; - - pdf_image = PDF_open_image_file(pdf, Z_STRVAL_PP(arg2), image, stringparam, intparam); - } - - if (pdf_image == -1) { - /* pdflib will do this for you, will throw some exception - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not open image: %s", image); - */ - RETURN_FALSE; - } - RETURN_LONG(pdf_image+PDFLIB_IMAGE_OFFSET); - -} -/* }}} */ - -#if HAVE_LIBGD13 -/* {{{ proto int pdf_open_memory_image(resource pdf, resource image) - Takes an GD image and returns an image for placement in a PDF document */ -PHP_FUNCTION(pdf_open_memory_image) -{ - zval **arg1, **arg2; - int i, j, color; - int pdf_image; - gdImagePtr im; - unsigned char *buffer, *ptr; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - ZEND_GET_RESOURCE_TYPE_ID(le_gd,"gd"); - if(!le_gd) - { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Unable to find handle for GD image stream. Please check the GD extension is loaded."); - } - ZEND_FETCH_RESOURCE(im, gdImagePtr, arg2, -1, "Image", le_gd); - - buffer = (unsigned char *) safe_emalloc(3 * im->sx, im->sy, 0); - - ptr = buffer; - for(i=0; isy; i++) { - for(j=0; jsx; j++) { -#if HAVE_LIBGD20 - if(gdImageTrueColor(im)) { - if (im->tpixels && gdImageBoundsSafe(im, j, i)) { - color = gdImageTrueColorPixel(im, j, i); - *ptr++ = (color >> 16) & 0xFF; - *ptr++ = (color >> 8) & 0xFF; - *ptr++ = color & 0xFF; - } - } else { -#endif - if (im->pixels && gdImageBoundsSafe(im, j, i)) { - color = im->pixels[i][j]; - *ptr++ = im->red[color]; - *ptr++ = im->green[color]; - *ptr++ = im->blue[color]; - } -#if HAVE_LIBGD20 - } -#endif - } - } - - pdf_image = PDF_open_image(pdf, "raw", "memory", buffer, im->sx*im->sy*3, im->sx, im->sy, 3, 8, NULL); - efree(buffer); - - if(pdf_image == -1) { - /* pdflib will do this for you, will throw some exception - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not open image"); - */ - efree(buffer); - RETURN_FALSE; - } - - RETURN_LONG(pdf_image+PDFLIB_IMAGE_OFFSET); -} -/* }}} */ -#endif /* HAVE_LIBGD13 */ - -/* {{{ proto void pdf_close_image(resource pdf, int pdfimage) - Closes the PDF image */ -PHP_FUNCTION(pdf_close_image) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - convert_to_long_ex(arg2); - - PDF_close_image(pdf, Z_LVAL_PP(arg2)-PDFLIB_IMAGE_OFFSET); -} -/* }}} */ - -/* {{{ proto bool pdf_place_image(resource pdf, int pdfimage, float x, float y, float scale) - Places image in the PDF document */ -PHP_FUNCTION(pdf_place_image) -{ - zval **arg1, **arg2, **arg3, **arg4, **arg5; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 5 || zend_get_parameters_ex(5, &arg1, &arg2, &arg3, &arg4, &arg5) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_long_ex(arg2); - convert_to_double_ex(arg3); - convert_to_double_ex(arg4); - convert_to_double_ex(arg5); - - PDF_place_image(pdf, Z_LVAL_PP(arg2)-PDFLIB_IMAGE_OFFSET, (float) Z_DVAL_PP(arg3), (float) Z_DVAL_PP(arg4), (float) Z_DVAL_PP(arg5)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto int pdf_get_image_width(resource pdf, int pdfimage) - Returns the width of an image */ -PHP_FUNCTION(pdf_get_image_width) -{ - zval **arg1, **arg2; - PDF *pdf; - int width; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - convert_to_long_ex(arg2); - - width = (int) PDF_get_value(pdf, "imagewidth", (float)Z_LVAL_PP(arg2)-PDFLIB_IMAGE_OFFSET); - RETURN_LONG(width); -} -/* }}} */ - -/* {{{ proto int pdf_get_image_height(resource pdf, int pdfimage) - Returns the height of an image */ -PHP_FUNCTION(pdf_get_image_height) -{ - zval **arg1, **arg2; - PDF *pdf; - int height; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - convert_to_long_ex(arg2); - - height = (int) PDF_get_value(pdf, "imageheight", (float)Z_LVAL_PP(arg2)-PDFLIB_IMAGE_OFFSET); - RETURN_LONG(height); -} -/* }}} */ - -/* {{{ proto bool pdf_add_weblink(resource pdfdoc, float llx, float lly, float urx, float ury, string url) - Adds link to web resource */ -PHP_FUNCTION(pdf_add_weblink) -{ - zval **arg1, **arg2, **arg3, **arg4, **arg5, **arg6; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 6 || zend_get_parameters_ex(6, &arg1, &arg2, &arg3, &arg4, &arg5, &arg6) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - convert_to_double_ex(arg4); - convert_to_double_ex(arg5); - convert_to_string_ex(arg6); - PDF_add_weblink(pdf, (float) Z_DVAL_PP(arg2), - (float) Z_DVAL_PP(arg3), - (float) Z_DVAL_PP(arg4), - (float) Z_DVAL_PP(arg5), - Z_STRVAL_PP(arg6)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_add_pdflink(resource pdfdoc, float llx, float lly, float urx, float ury, string filename, int page, string dest) - Adds link to PDF document */ -PHP_FUNCTION(pdf_add_pdflink) -{ - zval **arg1, **arg2, **arg3, **arg4, **arg5, **arg6, **arg7, **arg8; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 8 || zend_get_parameters_ex(8, &arg1, &arg2, &arg3, &arg4, &arg5, &arg6, &arg7, &arg8) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - convert_to_double_ex(arg4); - convert_to_double_ex(arg5); - convert_to_string_ex(arg6); - convert_to_long_ex(arg7); - convert_to_string_ex(arg8); - PDF_add_pdflink(pdf, (float) Z_DVAL_PP(arg2), - (float) Z_DVAL_PP(arg3), - (float) Z_DVAL_PP(arg4), - (float) Z_DVAL_PP(arg5), - Z_STRVAL_PP(arg6), - Z_LVAL_PP(arg7), - Z_STRVAL_PP(arg8)); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_set_border_style(resource pdfdoc, string style, float width) - Sets style of box surounding all kinds of annotations and link */ -PHP_FUNCTION(pdf_set_border_style) -{ - zval **arg1, **arg2, **arg3; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - convert_to_double_ex(arg3); - PDF_set_border_style(pdf, Z_STRVAL_PP(arg2), (float) Z_DVAL_PP(arg3)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_set_border_color(resource pdfdoc, float red, float green, float blue) - Sets color of box surounded all kinds of annotations and links */ -PHP_FUNCTION(pdf_set_border_color) -{ - zval **arg1, **arg2, **arg3, **arg4; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - convert_to_double_ex(arg4); - PDF_set_border_color(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3), (float) Z_DVAL_PP(arg4)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_set_border_dash(resource pdfdoc, float black, float white) - Sets the border dash style of all kinds of annotations and links */ -PHP_FUNCTION(pdf_set_border_dash) -{ - zval **arg1, **arg2, **arg3; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - PDF_set_border_dash(pdf, (float) Z_DVAL_PP(arg2), (float) Z_DVAL_PP(arg3)); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_add_annotation(resource pdfdoc, float xll, float yll, float xur, float xur, string title, string text) - Sets annotation (depreciated use pdf_add_note instead) */ -PHP_FUNCTION(pdf_add_annotation) -{ - zval **argv[7]; - PDF *pdf; - - if(ZEND_NUM_ARGS() != 7 || zend_get_parameters_array_ex(7, argv) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, argv[0], -1, "pdf object", le_pdf); - - convert_to_double_ex(argv[1]); - convert_to_double_ex(argv[2]); - convert_to_double_ex(argv[3]); - convert_to_double_ex(argv[4]); - convert_to_string_ex(argv[5]); - convert_to_string_ex(argv[6]); - - PDF_add_note(pdf, (float) Z_DVAL_PP(argv[1]), - (float) Z_DVAL_PP(argv[2]), - (float) Z_DVAL_PP(argv[3]), - (float) Z_DVAL_PP(argv[4]), - Z_STRVAL_PP(argv[6]), - Z_STRVAL_PP(argv[5]), - "note", 1); - - RETURN_TRUE; -} -/* }}} */ - -/* RJS: START OF NEW CODE */ - -/* {{{ proto resource pdf_new() - Creates a new PDF object */ -PHP_FUNCTION(pdf_new) -{ - PDF *pdf; - - pdf = PDF_new2(custom_errorhandler, pdf_emalloc, pdf_realloc, pdf_efree, NULL); -#if (PDFLIB_MAJORVERSION >= 4) - PDF_set_parameter(pdf, "imagewarning", "true"); -#endif - PDF_set_parameter(pdf, "binding", "PHP"); - - ZEND_REGISTER_RESOURCE(return_value, pdf, le_pdf); -} -/* }}} */ - -/* {{{ proto int pdf_get_majorversion() - Returns the major version number of the PDFlib */ -PHP_FUNCTION(pdf_get_majorversion) -{ - if (ZEND_NUM_ARGS() != 0) { - WRONG_PARAM_COUNT; - } - - RETURN_LONG(PDF_get_majorversion()); -} -/* }}} */ - -/* {{{ proto int pdf_get_minorversion() - Returns the minor version number of the PDFlib */ -PHP_FUNCTION(pdf_get_minorversion) -{ - if (ZEND_NUM_ARGS() != 0) { - WRONG_PARAM_COUNT; - } - - RETURN_LONG(PDF_get_minorversion()); -} -/* }}} */ - -/* {{{ proto bool pdf_delete(resource pdfdoc) - Deletes the PDF object */ -PHP_FUNCTION(pdf_delete) -{ - zval **arg1; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - zend_list_delete(Z_RESVAL_PP(arg1)); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_open_file(resource pdfdoc [, string filename]) - Opens a new PDF document. If filename is NULL, document is created in memory. This is not yet fully supported */ - -PHP_FUNCTION(pdf_open_file) -{ - zval **arg1, **arg2; - int pdf_file; - char *filename; - int argc; - PDF *pdf; - - if((argc = ZEND_NUM_ARGS()) > 2) - WRONG_PARAM_COUNT; - - if (argc == 1) { - if (zend_get_parameters_ex(1, &arg1) == FAILURE) - WRONG_PARAM_COUNT; - } else { - if (zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - if (argc == 2) { - convert_to_string_ex(arg2); - filename = Z_STRVAL_PP(arg2); - - if (php_check_open_basedir(filename TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(filename, "wb+", CHECKUID_CHECK_MODE_PARAM))) { - RETURN_FALSE; - } - - pdf_file = PDF_open_file(pdf, filename); - } else { - /* open in memory */ - pdf_file = PDF_open_file(pdf, ""); - } - - if (pdf_file == -1) - RETURN_FALSE; - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto string pdf_get_buffer(resource pdfdoc) - Fetches the full buffer containig the generated PDF data */ -PHP_FUNCTION(pdf_get_buffer) -{ - zval **arg1; - long size; - PDF *pdf; - const char *buffer; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - buffer = PDF_get_buffer(pdf, &size); - - RETURN_STRINGL((char *)buffer, size, 1); -} -/* }}} */ - -/* {{{ proto int pdf_findfont(resource pdfdoc, string fontname, string encoding [, int embed]) - Prepares the font fontname for later use with pdf_setfont() */ -PHP_FUNCTION(pdf_findfont) -{ - zval **arg1, **arg2, **arg3, **arg4; - int embed, font; - const char *fontname, *encoding; - PDF *pdf; - - switch (ZEND_NUM_ARGS()) { - case 3: - if (zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { - WRONG_PARAM_COUNT; - } - embed = 0; - break; - case 4: - if (zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE) { - WRONG_PARAM_COUNT; - } - convert_to_long_ex(arg4); - embed = Z_LVAL_PP(arg4); - break; - default: - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - fontname = Z_STRVAL_PP(arg2); - - convert_to_string_ex(arg3); - encoding = Z_STRVAL_PP(arg3); - - font = PDF_findfont(pdf, fontname, encoding, embed); - if (font == -1) { - /* pdflib will do this for you, will throw some exception - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Font %s not found", fontname); - */ - RETURN_FALSE; - } - - RETURN_LONG(font+PDFLIB_FONT_OFFSET); -} -/* }}} */ - -/* {{{ proto bool pdf_setfont(resource pdfdoc, int font, float fontsize) - Sets the current font in the fiven fontsize */ -PHP_FUNCTION(pdf_setfont) -{ - zval **arg1, **arg2, **arg3; - int font; - float fontsize; - PDF *pdf; - - if(ZEND_NUM_ARGS() != 3) - WRONG_PARAM_COUNT; - if (zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) - WRONG_PARAM_COUNT; - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_long_ex(arg2); - font = Z_LVAL_PP(arg2); - - convert_to_double_ex(arg3); - fontsize = (float)Z_DVAL_PP(arg3); - - PDF_setfont(pdf, font-PDFLIB_FONT_OFFSET, fontsize); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_setpolydash(resource pdfdoc, float darray) - Sets more complicated dash pattern */ - -PHP_FUNCTION(pdf_setpolydash) -{ - zval **arg1, **arg2; - HashTable *array; - int len, i; - float *darray; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_array_ex(arg2); - array = Z_ARRVAL_PP(arg2); - len = zend_hash_num_elements(array); - - darray = safe_emalloc(len, sizeof(double), 0); - zend_hash_internal_pointer_reset(array); - for (i=0; i= 4) - -/* {{{ proto int pdf_open_pdi(resource pdf, string filename, string stringparam, int intparam); - * Open an existing PDF document and prepare it for later use. */ -PHP_FUNCTION(pdf_open_pdi) -{ - zval **arg1, **arg2, **arg3, **arg4; - PDF *pdf; - int pdi_handle; - char *file; - - if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - convert_to_string_ex(arg3); - convert_to_long_ex(arg4); - -#ifdef VIRTUAL_DIR - virtual_filepath(Z_STRVAL_PP(arg2), &file TSRMLS_CC); -#else - file = Z_STRVAL_PP(arg2); -#endif - - if (php_check_open_basedir(file TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(file, "rb+", CHECKUID_CHECK_MODE_PARAM))) { - RETURN_FALSE; - } - - pdi_handle = PDF_open_pdi(pdf, - file, - Z_STRVAL_PP(arg3), - Z_LVAL_PP(arg4)); - - RETURN_LONG(pdi_handle+PDFLIB_PDI_OFFSET); -} -/* }}} */ - -/* {{{ proto bool pdf_close_pdi(resource pdf, int doc); - * Close all open page handles, and close the input PDF document. */ -PHP_FUNCTION(pdf_close_pdi) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_long_ex(arg2); - - PDF_close_pdi(pdf, Z_LVAL_PP(arg2)-PDFLIB_PDI_OFFSET); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto int pdf_open_pdi_page(resource pdf, int doc, int page, string label); - * Prepare a page for later use with PDF_place_image(). */ -PHP_FUNCTION(pdf_open_pdi_page) -{ - zval **arg1, **arg2, **arg3, **arg4; - PDF *pdf; - int pdi_image; - - if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_long_ex(arg2); - convert_to_long_ex(arg3); - convert_to_string_ex(arg4); - - pdi_image = PDF_open_pdi_page(pdf, - Z_LVAL_PP(arg2)-PDFLIB_PDI_OFFSET, - Z_LVAL_PP(arg3), - Z_STRVAL_PP(arg4)); - - RETURN_LONG(pdi_image+PDFLIB_IMAGE_OFFSET); -} -/* }}} */ - -/* {{{ proto bool pdf_place_pdi_page(resource pdf, int page, float x, float y, float sx, float sy) - * Place a PDF page with the lower left corner at (x, y), and scale it. */ -PHP_FUNCTION(pdf_place_pdi_page) -{ - zval **arg1, **arg2, **arg3, **arg4, **arg5, **arg6; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 6 || zend_get_parameters_ex(6, &arg1, &arg2, &arg3, &arg4, &arg5, &arg6) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_long_ex(arg2); - convert_to_double_ex(arg3); - convert_to_double_ex(arg4); - convert_to_double_ex(arg5); - convert_to_double_ex(arg6); - - PDF_place_pdi_page(pdf, - Z_LVAL_PP(arg2)-PDFLIB_IMAGE_OFFSET, - (float) Z_DVAL_PP(arg3), - (float) Z_DVAL_PP(arg4), - (float) Z_DVAL_PP(arg5), - (float) Z_DVAL_PP(arg6)); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_close_pdi_page(resource pdf, int page); - * Close the page handle, and free all page-related resources. */ -PHP_FUNCTION(pdf_close_pdi_page) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_long_ex(arg2); - - PDF_close_pdi_page(pdf, Z_LVAL_PP(arg2)-PDFLIB_IMAGE_OFFSET); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto string pdf_get_pdi_parameter(resource pdf, string key, int doc, int page, int index); - * Get the contents of some PDI document parameter with string type. */ -PHP_FUNCTION(pdf_get_pdi_parameter) -{ - zval **arg1, **arg2, **arg3, **arg4, **arg5; - PDF *pdf; - const char *buffer; - int size; - - if (ZEND_NUM_ARGS() != 5 || zend_get_parameters_ex(5, &arg1, &arg2, &arg3, &arg4, &arg5) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - convert_to_long_ex(arg3); - convert_to_long_ex(arg4); - convert_to_long_ex(arg5); - - buffer = PDF_get_pdi_parameter(pdf, - Z_STRVAL_PP(arg2), - Z_LVAL_PP(arg3)-PDFLIB_PDI_OFFSET, - Z_LVAL_PP(arg4)-PDFLIB_IMAGE_OFFSET, - Z_LVAL_PP(arg5), - &size); - - RETURN_STRINGL((char *)buffer, size, 1); -} -/* }}} */ - -/* {{{ proto float pdf_get_pdi_value(resource pdf, string key, int doc, int page, int index); - * Get the contents of some PDI document parameter with numerical type. */ -PHP_FUNCTION(pdf_get_pdi_value) -{ - zval **arg1, **arg2, **arg3, **arg4, **arg5; - PDF *pdf; - double value; - - if (ZEND_NUM_ARGS() != 5 || zend_get_parameters_ex(5, &arg1, &arg2, &arg3, &arg4, &arg5) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - convert_to_long_ex(arg3); - convert_to_long_ex(arg4); - convert_to_long_ex(arg5); - - value = (double)PDF_get_pdi_value(pdf, - Z_STRVAL_PP(arg2), - Z_LVAL_PP(arg3)-PDFLIB_PDI_OFFSET, - Z_LVAL_PP(arg4)-PDFLIB_IMAGE_OFFSET, - Z_LVAL_PP(arg5)); - - RETURN_DOUBLE(value); -} -/* }}} */ - -/* {{{ proto int pdf_begin_pattern(resource pdf, float width, float height, float xstep, float ystep, int painttype); - * Start a new pattern definition. */ -PHP_FUNCTION(pdf_begin_pattern) -{ - zval **arg1, **arg2, **arg3, **arg4, **arg5, **arg6; - PDF *pdf; - int pattern_image; - - if (ZEND_NUM_ARGS() != 6 || zend_get_parameters_ex(6, &arg1, &arg2, &arg3, &arg4, &arg5, &arg6) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - convert_to_double_ex(arg4); - convert_to_double_ex(arg5); - convert_to_long_ex(arg6); - - pattern_image = PDF_begin_pattern(pdf, - (float) Z_DVAL_PP(arg2), - (float) Z_DVAL_PP(arg3), - (float) Z_DVAL_PP(arg4), - (float) Z_DVAL_PP(arg5), - Z_LVAL_PP(arg6)); - - RETURN_LONG(pattern_image+PDFLIB_PATTERN_OFFSET); -} -/* }}} */ - -/* {{{ proto bool pdf_end_pattern(resource pdf); - * Finish the pattern definition. */ -PHP_FUNCTION(pdf_end_pattern) -{ - zval **arg1; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - PDF_end_pattern(pdf); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto int pdf_begin_template(resource pdf, float width, float height); - * Start a new template definition. */ -PHP_FUNCTION(pdf_begin_template) -{ - zval **arg1, **arg2, **arg3; - PDF *pdf; - int tmpl_image; - - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - - tmpl_image = PDF_begin_template(pdf, - (float) Z_DVAL_PP(arg2), - (float) Z_DVAL_PP(arg3)); - - RETURN_LONG(tmpl_image+PDFLIB_IMAGE_OFFSET); -} -/* }}} */ - -/* {{{ proto bool pdf_end_template(resource pdf); - * Finish the template definition. */ -PHP_FUNCTION(pdf_end_template) -{ - zval **arg1; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - - PDF_end_template(pdf); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_setcolor(resource pdf, string type, string colorspace, float c1 [, float c2 [, float c3 [, float c4]]]); - * Set the current color space and color. */ -PHP_FUNCTION(pdf_setcolor) -{ - zval **arg1, **arg2, **arg3, **arg4, **arg5, **arg6, **arg7; - PDF *pdf; - double c1; - int argc = ZEND_NUM_ARGS(); - - if(argc < 4 || argc > 7) { - WRONG_PARAM_COUNT; - } - switch(argc) { - case 4: - if(zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE) { - WRONG_PARAM_COUNT; - } - break; - case 5: - if(zend_get_parameters_ex(5, &arg1, &arg2, &arg3, &arg4, &arg5) == FAILURE) { - WRONG_PARAM_COUNT; - } - break; - case 6: - if(zend_get_parameters_ex(6, &arg1, &arg2, &arg3, &arg4, &arg5, &arg6) == FAILURE) { - WRONG_PARAM_COUNT; - } - break; - case 7: - if(zend_get_parameters_ex(7, &arg1, &arg2, &arg3, &arg4, &arg5, &arg6, &arg7) == FAILURE) { - WRONG_PARAM_COUNT; - } - break; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - convert_to_string_ex(arg3); - convert_to_double_ex(arg4); - if(argc > 4) convert_to_double_ex(arg5); - if(argc > 5) convert_to_double_ex(arg6); - if(argc > 6) convert_to_double_ex(arg7); - - if (0 == (strcmp(Z_STRVAL_PP(arg3), "spot"))) { - c1 = Z_DVAL_PP(arg4)-PDFLIB_SPOT_OFFSET; - } else if(0 == (strcmp(Z_STRVAL_PP(arg3), "pattern"))) { - c1 = Z_DVAL_PP(arg4)-PDFLIB_PATTERN_OFFSET; - } else { - c1 = Z_DVAL_PP(arg4); - } - - PDF_setcolor(pdf, - Z_STRVAL_PP(arg2), - Z_STRVAL_PP(arg3), - (float) c1, - (float) ((argc>4) ? Z_DVAL_PP(arg5):0), - (float) ((argc>5) ? Z_DVAL_PP(arg6):0), - (float) ((argc>6) ? Z_DVAL_PP(arg7):0)); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto int pdf_makespotcolor(resource pdf, string spotname); - * Make a named spot color from the current color. */ -PHP_FUNCTION(pdf_makespotcolor) -{ - zval **arg1, **arg2; - PDF *pdf; - int spotcolor; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_string_ex(arg2); - - spotcolor = PDF_makespotcolor(pdf, - Z_STRVAL_PP(arg2), - Z_STRLEN_PP(arg2)); - - RETURN_LONG(spotcolor+PDFLIB_SPOT_OFFSET); -} -/* }}} */ - -/* {{{ proto bool pdf_arcn(resource pdf, float x, float y, float r, float alpha, float beta); - * Draw a clockwise circular arc from alpha to beta degrees. */ -PHP_FUNCTION(pdf_arcn) -{ - zval **arg1, **arg2, **arg3, **arg4, **arg5, **arg6; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 6 || zend_get_parameters_ex(6, &arg1, &arg2, &arg3, &arg4, &arg5, &arg6) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - convert_to_double_ex(arg4); - convert_to_double_ex(arg5); - convert_to_double_ex(arg6); - - PDF_arcn(pdf, - (float) Z_DVAL_PP(arg2), - (float) Z_DVAL_PP(arg3), - (float) Z_DVAL_PP(arg4), - (float) Z_DVAL_PP(arg5), - (float) Z_DVAL_PP(arg6)); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_initgraphics(resource pdf); - * Reset all implicit color and graphics state parameters to their defaults. */ -PHP_FUNCTION(pdf_initgraphics) -{ - zval **arg1; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - PDF_initgraphics(pdf); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_add_thumbnail(resource pdf, int image); - * Add an existing image as thumbnail for the current page. */ -PHP_FUNCTION(pdf_add_thumbnail) -{ - zval **arg1, **arg2; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_long_ex(arg2); - - PDF_add_thumbnail(pdf, - Z_LVAL_PP(arg2)-PDFLIB_IMAGE_OFFSET); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool pdf_setmatrix(resource pdf, float a, float b, float c, float d, float e, float f) - Explicitly set the current transformation matrix. */ -PHP_FUNCTION(pdf_setmatrix) -{ - zval **arg1, **arg2, **arg3, **arg4, **arg5, **arg6, **arg7; - PDF *pdf; - - if (ZEND_NUM_ARGS() != 7 || zend_get_parameters_ex(7, &arg1, &arg2, &arg3, &arg4, &arg5, &arg6, &arg7) == FAILURE) { - WRONG_PARAM_COUNT; - } - - ZEND_FETCH_RESOURCE(pdf, PDF *, arg1, -1, "pdf object", le_pdf); - - convert_to_double_ex(arg2); - convert_to_double_ex(arg3); - convert_to_double_ex(arg4); - convert_to_double_ex(arg5); - convert_to_double_ex(arg6); - convert_to_double_ex(arg7); - - PDF_setmatrix(pdf, - (float) Z_DVAL_PP(arg2), - (float) Z_DVAL_PP(arg3), - (float) Z_DVAL_PP(arg4), - (float) Z_DVAL_PP(arg5), - (float) Z_DVAL_PP(arg6), - (float) Z_DVAL_PP(arg7)); - - RETURN_TRUE; -} -/* }}} */ -#endif /* PDFlib >= V4 */ - -#endif - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 fdm=marker - * vim<600: sw=4 ts=4 - */ diff --git a/ext/pdf/pdf.dsp b/ext/pdf/pdf.dsp deleted file mode 100644 index 9d4a76c138f..00000000000 --- a/ext/pdf/pdf.dsp +++ /dev/null @@ -1,114 +0,0 @@ -# Microsoft Developer Studio Project File - Name="pdf" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=pdf - Win32 Release_TS -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "pdf.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "pdf.mak" CFG="pdf - Win32 Release_TS" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "pdf - Win32 Release_TS" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "pdf - Win32 Debug_TS" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "pdf - Win32 Release_TS" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release_TS" -# PROP BASE Intermediate_Dir "Release_TS" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release_TS" -# PROP Intermediate_Dir "Release_TS" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\..\Zend" /I "..\..\..\TSRM" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMPILE_DL_PDF" /D ZTS=1 /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\.." /I "..\..\main" /I "..\..\Zend" /I "..\..\TSRM" /D ZEND_DEBUG=0 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PDF_EXPORTS" /D "COMPILE_DL_PDF" /D "ZEND_WIN32" /D "PHP_WIN32" /D HAVE_PDFLIB=1 /D ZTS=1 /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x406 /d "NDEBUG" -# ADD RSC /l 0x406 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib php5ts.lib /nologo /dll /machine:I386 -# ADD LINK32 php5ts.lib pdflib.lib zlib.lib libpng.lib libtiff.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"..\..\Release_TS/php_pdf.dll" /libpath:"..\..\Release_TS" /libpath:"..\..\Release_TS_Inline" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "pdf - Win32 Debug_TS" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Debug_TS" -# PROP BASE Intermediate_Dir "Debug_TS" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug_TS" -# PROP Intermediate_Dir "Debug_TS" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\Zend" /I "..\..\TSRM" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMPILE_DL_PDF" /D ZTS=1 /YX /FD /c -# ADD CPP /nologo /MDd /W3 /GX /ZI /Od /I "..\.." /I "..\..\main" /I "..\..\Zend" /I "..\..\TSRM" /D ZEND_DEBUG=1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PDF_EXPORTS" /D "COMPILE_DL_PDF" /D ZTS=1 /D "ZEND_WIN32" /D "PHP_WIN32" /D HAVE_PDFLIB=1 /FR /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x406 /d "NDEBUG" -# ADD RSC /l 0x406 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib php5ts_debug.lib /nologo /dll /machine:I386 -# ADD LINK32 php5ts_debug.lib pdflib.lib zlib.lib libpng.lib libtiff.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"..\..\Debug_TS/php_pdf.dll" /libpath:"..\..\Debug_TS" - -!ENDIF - -# Begin Target - -# Name "pdf - Win32 Release_TS" -# Name "pdf - Win32 Debug_TS" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\pdf.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\php_pdf.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project diff --git a/ext/pdf/php_pdf.h b/ext/pdf/php_pdf.h deleted file mode 100644 index 204ad179ab5..00000000000 --- a/ext/pdf/php_pdf.h +++ /dev/null @@ -1,179 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 5 | - +----------------------------------------------------------------------+ - | Copyright (c) 1997-2004 The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.0 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_0.txt. | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Uwe Steinmann | - +----------------------------------------------------------------------+ -*/ - -/* $Id$ */ - -#ifndef PHP_PDF_H -#define PHP_PDF_H - -#if HAVE_PDFLIB - -#include - -extern zend_module_entry pdf_module_entry; -#define pdf_module_ptr &pdf_module_entry - -PHP_MINFO_FUNCTION(pdf); -PHP_MINIT_FUNCTION(pdf); -PHP_MSHUTDOWN_FUNCTION(pdf); -PHP_FUNCTION(pdf_new); /* new function */ -PHP_FUNCTION(pdf_delete); /* new function */ -PHP_FUNCTION(pdf_open_file); -PHP_FUNCTION(pdf_get_buffer); /* new function */ -PHP_FUNCTION(pdf_close); -PHP_FUNCTION(pdf_begin_page); -PHP_FUNCTION(pdf_end_page); -PHP_FUNCTION(pdf_get_majorversion); -PHP_FUNCTION(pdf_get_minorversion); -PHP_FUNCTION(pdf_get_value); -PHP_FUNCTION(pdf_set_value); -PHP_FUNCTION(pdf_get_parameter); -PHP_FUNCTION(pdf_set_parameter); -PHP_FUNCTION(pdf_findfont); /* new function */ -PHP_FUNCTION(pdf_setfont); /* new function */ -PHP_FUNCTION(pdf_show); -PHP_FUNCTION(pdf_show_xy); -PHP_FUNCTION(pdf_continue_text); -PHP_FUNCTION(pdf_show_boxed); -PHP_FUNCTION(pdf_stringwidth); /* new parameters: [int font, float size] */ -PHP_FUNCTION(pdf_set_text_pos); -PHP_FUNCTION(pdf_setdash); -PHP_FUNCTION(pdf_setpolydash); /* new function: not yet finished */ -PHP_FUNCTION(pdf_setflat); -PHP_FUNCTION(pdf_setlinejoin); -PHP_FUNCTION(pdf_setlinecap); -PHP_FUNCTION(pdf_setmiterlimit); -PHP_FUNCTION(pdf_setlinewidth); -PHP_FUNCTION(pdf_save); -PHP_FUNCTION(pdf_restore); -PHP_FUNCTION(pdf_translate); -PHP_FUNCTION(pdf_scale); -PHP_FUNCTION(pdf_rotate); -PHP_FUNCTION(pdf_skew); -PHP_FUNCTION(pdf_concat); /* new function */ -PHP_FUNCTION(pdf_moveto); -PHP_FUNCTION(pdf_lineto); -PHP_FUNCTION(pdf_curveto); -PHP_FUNCTION(pdf_circle); -PHP_FUNCTION(pdf_arc); -PHP_FUNCTION(pdf_rect); -PHP_FUNCTION(pdf_closepath); -PHP_FUNCTION(pdf_stroke); -PHP_FUNCTION(pdf_closepath_stroke); -PHP_FUNCTION(pdf_fill); -PHP_FUNCTION(pdf_fill_stroke); -PHP_FUNCTION(pdf_closepath_fill_stroke); -PHP_FUNCTION(pdf_clip); -PHP_FUNCTION(pdf_endpath); -PHP_FUNCTION(pdf_setgray_fill); -PHP_FUNCTION(pdf_setgray_stroke); -PHP_FUNCTION(pdf_setgray); -PHP_FUNCTION(pdf_setrgbcolor_fill); -PHP_FUNCTION(pdf_setrgbcolor_stroke); -PHP_FUNCTION(pdf_setrgbcolor); -PHP_FUNCTION(pdf_open_image_file); /* new parameters: [char *stringpram, int intparam] */ -PHP_FUNCTION(pdf_open_ccitt); /* new function */ -PHP_FUNCTION(pdf_open_image); /* new function: checkit not yet completeted :( */ -PHP_FUNCTION(pdf_close_image); -PHP_FUNCTION(pdf_place_image); -PHP_FUNCTION(pdf_add_bookmark); -PHP_FUNCTION(pdf_set_info); -PHP_FUNCTION(pdf_attach_file); /* new function */ -PHP_FUNCTION(pdf_add_note); /* new function */ -PHP_FUNCTION(pdf_add_pdflink); -PHP_FUNCTION(pdf_add_locallink); /* new function */ -PHP_FUNCTION(pdf_add_launchlink); /* new function */ -PHP_FUNCTION(pdf_add_weblink); -PHP_FUNCTION(pdf_set_border_style); -PHP_FUNCTION(pdf_set_border_color); -PHP_FUNCTION(pdf_set_border_dash); - -/* RJS: - End of the official PDFLIB V3.x API */ - -/* old font handling */ -PHP_FUNCTION(pdf_set_font); /* deprecated */ -PHP_FUNCTION(pdf_get_font); /* deprecated */ -PHP_FUNCTION(pdf_get_fontname); /* deprecated */ -PHP_FUNCTION(pdf_get_fontsize); /* deprecated */ - -/* old way of starting a PDF document */ -PHP_FUNCTION(pdf_open); /* deprecated */ - -/* old stuff for setting infos */ -PHP_FUNCTION(pdf_set_info_creator); /* deprecated */ -PHP_FUNCTION(pdf_set_info_title); /* deprecated */ -PHP_FUNCTION(pdf_set_info_subject); /* deprecated */ -PHP_FUNCTION(pdf_set_info_author); /* deprecated */ -PHP_FUNCTION(pdf_set_info_keywords); /* deprecated */ -PHP_FUNCTION(pdf_set_leading); /* deprecated */ -PHP_FUNCTION(pdf_set_text_rendering); /* deprecated */ -PHP_FUNCTION(pdf_set_horiz_scaling); /* deprecated */ -PHP_FUNCTION(pdf_set_text_rise); /* deprecated */ -PHP_FUNCTION(pdf_set_char_spacing); /* deprecated */ -PHP_FUNCTION(pdf_set_word_spacing); /* deprecated */ -PHP_FUNCTION(pdf_set_transition); /* deprecated */ -PHP_FUNCTION(pdf_set_duration); /* deprecated */ -PHP_FUNCTION(pdf_get_image_height); /* deprecated */ -PHP_FUNCTION(pdf_get_image_width); /* deprecated */ - -/* old stuff for opening images */ -PHP_FUNCTION(pdf_open_jpeg); /* deprecated */ -PHP_FUNCTION(pdf_open_tiff); /* deprecated */ -PHP_FUNCTION(pdf_open_png); /* deprecated */ -PHP_FUNCTION(pdf_open_gif); /* deprecated */ - -/* some more stuff for compatibility */ -PHP_FUNCTION(pdf_add_annotation); -#if HAVE_LIBGD13 -PHP_FUNCTION(pdf_open_memory_image); -#endif - -#if (PDFLIB_MAJORVERSION >= 4) -/* support for new functions in PDFlib V4.0 */ -PHP_FUNCTION(pdf_open_pdi); -PHP_FUNCTION(pdf_close_pdi); -PHP_FUNCTION(pdf_open_pdi_page); -PHP_FUNCTION(pdf_place_pdi_page); -PHP_FUNCTION(pdf_close_pdi_page); -PHP_FUNCTION(pdf_get_pdi_parameter); -PHP_FUNCTION(pdf_get_pdi_value); -PHP_FUNCTION(pdf_begin_pattern); -PHP_FUNCTION(pdf_end_pattern); -PHP_FUNCTION(pdf_setcolor); -PHP_FUNCTION(pdf_makespotcolor); -PHP_FUNCTION(pdf_begin_template); -PHP_FUNCTION(pdf_end_template); -PHP_FUNCTION(pdf_arcn); -PHP_FUNCTION(pdf_add_thumbnail); -PHP_FUNCTION(pdf_initgraphics); -PHP_FUNCTION(pdf_setmatrix); -#endif /* PDFlib >= V4 */ - -#ifdef ZTS -#define PDFG(v) TSRMG(pdf_globals_id, php_pdf_globals *, v) -#else -#define PDFG(v) (pdf_globals.v) -#endif - - -#else -#define pdf_module_ptr NULL -#endif -#define phpext_pdf_ptr pdf_module_ptr -#endif /* PHP_PDF_H */