CVS update: php3/functions

From: Date: Thu, 01 Jul 1999 20:21:40 +0000
Subject: CVS update: php3/functions
Groups: php.dev 
Request: Send a blank email to php-dev+get-7952@lists.php.net to get a copy of this message
Date: Thursday July 1, 1999 @ 16:21 Author: steinm Update of /repository/php3/functions In directory php:/tmp/cvs-serv5234/functions Modified Files: cpdf.c pdf.c php3_cpdf.h php3_pdf.h Log Message: more hypertext function Index: php3/functions/cpdf.c diff -u php3/functions/cpdf.c:1.12 php3/functions/cpdf.c:1.13 --- php3/functions/cpdf.c:1.12 Wed Jun 16 07:34:17 1999 +++ php3/functions/cpdf.c Thu Jul 1 16:21:40 1999 @@ -27,7 +27,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: cpdf.c,v 1.12 1999/06/16 11:34:17 ssb Exp $ */ +/* $Id: cpdf.c,v 1.13 1999/07/01 20:21:40 steinm Exp $ */ /* cpdflib.h -- C language API definitions for ClibPDF library * Copyright (C) 1998 FastIO Systems, All Rights Reserved. */ @@ -146,7 +146,7 @@ #if HAVE_LIBGD13 {"cpdf_place_inline_image", php3_cpdf_place_inline_image, NULL}, #endif - {"cpdf_set_annotation", php3_cpdf_set_annotation, NULL}, + {"cpdf_add_annotation", php3_cpdf_add_annotation, NULL}, {"cpdf_add_outline", php3_cpdf_add_outline, NULL}, {"cpdf_set_action_url", php3_cpdf_set_action_url, NULL}, {NULL, NULL, NULL} @@ -2399,9 +2399,9 @@ /* }}} */ #endif -/* {{{ proto void cpdf_set_annotation(int pdfdoc, double xll, double yll, double xur, double xur, string title, string text[, int mode]) +/* {{{ proto void cpdf_add_annotation(int pdfdoc, double xll, double yll, double xur, double xur, string title, string text[, int mode]) Sets annotation */ -void php3_cpdf_set_annotation(INTERNAL_FUNCTION_PARAMETERS) { +void php3_cpdf_add_annotation(INTERNAL_FUNCTION_PARAMETERS) { pval *argv[11]; int id, type, argc, mode=0; int *pdf; Index: php3/functions/pdf.c diff -u php3/functions/pdf.c:1.36 php3/functions/pdf.c:1.37 --- php3/functions/pdf.c:1.36 Thu Jul 1 11:28:49 1999 +++ php3/functions/pdf.c Thu Jul 1 16:21:40 1999 @@ -27,7 +27,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pdf.c,v 1.36 1999/07/01 15:28:49 steinm Exp $ */ +/* $Id: pdf.c,v 1.37 1999/07/01 20:21:40 steinm Exp $ */ /* pdflib 0.6 is subject to the ALADDIN FREE PUBLIC LICENSE. Copyright (C) 1997 Thomas Merz. */ @@ -65,6 +65,7 @@ typedef struct pdflib_global_struct{ int le_pdf_image; #if HAVE_PDFLIB2 + int le_outline; #else int le_pdf_info; #endif @@ -79,6 +80,7 @@ # define PDF_TLS_VARS int le_pdf_image; #if HAVE_PDFLIB2 +int le_outline; #else int le_pdf_info; #endif @@ -155,6 +157,8 @@ {"pdf_place_image", php3_pdf_place_image, NULL}, {"pdf_put_image", php3_pdf_put_image, NULL}, {"pdf_execute_image", php3_pdf_execute_image, NULL}, + {"pdf_add_weblink", php3_pdf_add_weblink, NULL}, + {"pdf_add_annotation", php3_pdf_add_annotation, NULL}, {NULL, NULL, NULL} }; @@ -205,10 +209,17 @@ #endif } +#if HAVE_PDFLIB2 +static void _free_outline(int *outline) +{ +} +#endif + int php3_minit_pdf(INIT_FUNC_ARGS) { PDF_GLOBAL(le_pdf_image) = register_list_destructors(_free_pdf_image, NULL); #if HAVE_PDFLIB2 + PDF_GLOBAL(le_outline) = register_list_destructors(_free_outline, NULL); #else PDF_GLOBAL(le_pdf_info) = register_list_destructors(_free_pdf_info, NULL); #endif @@ -1930,34 +1941,58 @@ } /* }}} */ -/* {{{ proto void pdf_add_outline(int pdfdoc, string text); +/* {{{ proto void pdf_add_outline(int pdfdoc, string text, int parent, int open); Add bookmark for current page */ void php3_pdf_add_outline(INTERNAL_FUNCTION_PARAMETERS) { - pval *arg1, *arg2; + pval *arg1, *arg2, *arg3, *arg4; int id, type; + int *outline, *parent; PDF *pdf; PDF_TLS_VARS; +#if HAVE_PDFLIB2 + if (ARG_COUNT(ht) != 4 || getParameters(ht, 4, &arg1, &arg2, &arg3, &arg4) == FAILURE) { + WRONG_PARAM_COUNT; + } +#else if (ARG_COUNT(ht) != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) { WRONG_PARAM_COUNT; } +#endif convert_to_long(arg1); convert_to_string(arg2); +#if HAVE_PDFLIB2 + convert_to_long(arg3); + convert_to_long(arg4); +#endif id=arg1->value.lval; pdf = php3_list_find(id,&type); if(!pdf || type!=PDF_GLOBAL(le_pdf)) { - php3_error(E_WARNING,"Unable to find file identifier %d",id); + php3_error(E_WARNING,"Unable to find document identifier %d",id); RETURN_FALSE; } #if HAVE_PDFLIB2 - PDF_add_bookmark(pdf, estrdup(arg2->value.str.val), 0, 0); + id=arg3->value.lval; + parent = php3_list_find(id,&type); + if(!parent || type!=PDF_GLOBAL(le_outline)) { + php3_error(E_WARNING,"Unable to find identifier %d",id); + RETURN_FALSE; + } + + outline=emalloc(sizeof(int)); + *outline = PDF_add_bookmark(pdf, estrdup(arg2->value.str.val), *parent, arg4->value.lval); + id = php3_list_insert(outline,PDF_GLOBAL(le_outline)); + RETURN_LONG(id); #else PDF_add_outline(pdf, estrdup(arg2->value.str.val)); + RETURN_TRUE; #endif - RETURN_TRUE; +#if HAVE_PDFLIB2 +#else +#endif } /* }}} */ @@ -2407,6 +2442,47 @@ } PDF_add_weblink(pdf, (float) arg2->value.dval, (float) arg3->value.dval, (float) arg4->value.dval, (float) arg5->value.dval, arg6->value.str.val); + + RETURN_TRUE; +} +/* }}} */ + +/* {{{ proto void pdf_add_annotation(int pdfdoc, double xll, double yll, double xur, double xur, string title, string text) + Sets annotation */ +void php3_pdf_add_annotation(INTERNAL_FUNCTION_PARAMETERS) { + pval *argv[11]; + int id, type, argc; + PDF *pdf; + PDF_TLS_VARS; + + argc = ARG_COUNT(ht); + if(argc != 7) + WRONG_PARAM_COUNT; + if (getParametersArray(ht, argc, argv) == FAILURE) + WRONG_PARAM_COUNT; + + convert_to_long(argv[0]); + convert_to_double(argv[1]); + convert_to_double(argv[2]); + convert_to_double(argv[3]); + convert_to_double(argv[4]); + convert_to_string(argv[5]); + convert_to_string(argv[6]); + id=argv[0]->value.lval; + pdf = php3_list_find(id,&type); + if(!pdf || type!=PDF_GLOBAL(le_pdf)) { + php3_error(E_WARNING,"Unable to find identifier %d",id); + RETURN_FALSE; + } + + PDF_add_note(argv[0]->value.lval, + (float) argv[1]->value.dval, + (float) argv[2]->value.dval, + (float) argv[3]->value.dval, + (float) argv[4]->value.dval, + argv[6]->value.str.val, + argv[5]->value.str.val, + "note", 1); RETURN_TRUE; } Index: php3/functions/php3_cpdf.h diff -u php3/functions/php3_cpdf.h:1.8 php3/functions/php3_cpdf.h:1.9 --- php3/functions/php3_cpdf.h:1.8 Tue Jun 1 14:15:12 1999 +++ php3/functions/php3_cpdf.h Thu Jul 1 16:21:40 1999 @@ -26,7 +26,7 @@ | Authors: Uwe Steinmann | +----------------------------------------------------------------------+ */ -/* $Id: php3_cpdf.h,v 1.8 1999/06/01 18:15:12 steinm Exp $ */ +/* $Id: php3_cpdf.h,v 1.9 1999/07/01 20:21:40 steinm Exp $ */ #ifndef _PHP3_CPDF_H #define _PHP3_CPDF_H @@ -109,7 +109,7 @@ extern void php3_cpdf_finalize(INTERNAL_FUNCTION_PARAMETERS); extern void php3_cpdf_output_buffer(INTERNAL_FUNCTION_PARAMETERS); extern void php3_cpdf_save_to_file(INTERNAL_FUNCTION_PARAMETERS); -extern void php3_cpdf_set_annotation(INTERNAL_FUNCTION_PARAMETERS); +extern void php3_cpdf_add_annotation(INTERNAL_FUNCTION_PARAMETERS); extern void php3_cpdf_import_jpeg(INTERNAL_FUNCTION_PARAMETERS); #if HAVE_LIBGD13 extern void php3_cpdf_place_inline_image(INTERNAL_FUNCTION_PARAMETERS); Index: php3/functions/php3_pdf.h diff -u php3/functions/php3_pdf.h:1.10 php3/functions/php3_pdf.h:1.11 --- php3/functions/php3_pdf.h:1.10 Tue Jun 8 05:16:34 1999 +++ php3/functions/php3_pdf.h Thu Jul 1 16:21:40 1999 @@ -26,7 +26,7 @@ | Authors: Uwe Steinmann | +----------------------------------------------------------------------+ */ -/* $Id: php3_pdf.h,v 1.10 1999/06/08 09:16:34 steinm Exp $ */ +/* $Id: php3_pdf.h,v 1.11 1999/07/01 20:21:40 steinm Exp $ */ #ifndef _PHP3_PDF_H #define _PHP3_PDF_H @@ -116,6 +116,8 @@ extern void php3_pdf_place_image(INTERNAL_FUNCTION_PARAMETERS); extern void php3_pdf_put_image(INTERNAL_FUNCTION_PARAMETERS); extern void php3_pdf_execute_image(INTERNAL_FUNCTION_PARAMETERS); +extern void php3_pdf_add_weblink(INTERNAL_FUNCTION_PARAMETERS); +extern void php3_pdf_add_annotation(INTERNAL_FUNCTION_PARAMETERS); #else #define pdf_module_ptr NULL #endif

« previous php.dev (#7952) next »