php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #3811 Unknown Symbol in PDFLIB 3.0
Submitted: 2000-03-12 07:17 UTC Modified: 2000-07-24 17:36 UTC
From: tswan at ics dot olemiss dot edu Assigned:
Status: Closed Package: Other
PHP Version: 4.0 Beta 4 Patch Level 1 OS: Linux 2.2.14 Apache 1.3.12 (Redh
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: tswan at ics dot olemiss dot edu
New email:
PHP Version: OS:

 

 [2000-03-12 07:17 UTC] tswan at ics dot olemiss dot edu
PHP compile fine with PDFLib 3.0 however when restarting apache I get an unknown symbol error... Included below is the diff to handle the changes...

Keep up the good work !!! :)

<<<<< CUT HERE >>>>>
252c252
< #if PDFLIB_MINORVERSION > 0
---
> #if ((PDFLIB_MINORVERSION > 0) && (PDFLIB_MAJORVERSION >= 2))
2255c2255
< #if PDFLIB_MINORVERSION == 0
---
> #if (PDFLIB_MINORVERSION == 0) && (PDFLIB_MAJORVERSION < 3) 
2351c2351
< #if PDFLIB_MINORVERSION > 0
---
> #if (PDFLIB_MINORVERSION > 0) || (PDFLIB_MAJORVERSION >= 3)
2360c2360
< #if PDFLIB_MINORVERSION > 0
---
> #if (PDFLIB_MINORVERSION > 0) || (PDFLIB_MAJORVERSION >= 3)
2393c2393
< #if PDFLIB_MINORVERSION >= 01
---
> #if ((PDFLIB_MAJORVERSION == 2) && (PDFLIB_MINORVERSION >= 01)) || (PDFLIB_MAJORVERSION >= 3) 
2402c2402
< #if PDFLIB_MINORVERSION >= 01
---
> #if ((PDFLIB_MAJORVERSION == 2) && (PDFLIB_MINORVERSION >= 01)) || (PDFLIB_MAJORVERSION >= 3) 

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2000-03-12 08:13 UTC] tswan at ics dot olemiss dot edu
One minor mistake on my part...

Corrected Diff

---- CUT HERE ----
< #if PDFLIB_MINORVERSION > 0
---
> #if ((PDFLIB_MINORVERSION > 0) && (PDFLIB_MAJORVERSION <= 2)) || (PDFLIB_MAJORVERSION >= 3)
2255c2255
< #if PDFLIB_MINORVERSION == 0
---
> #if ((PDFLIB_MINORVERSION < 1) && (PDFLIB_MAJORVERSION < 3))
2351c2351
< #if PDFLIB_MINORVERSION > 0
---
> #if (PDFLIB_MINORVERSION > 0) || (PDFLIB_MAJORVERSION >= 3)
2360c2360
< #if PDFLIB_MINORVERSION > 0
---
> #if (PDFLIB_MINORVERSION > 0) || (PDFLIB_MAJORVERSION >= 3)
2393c2393
< #if PDFLIB_MINORVERSION >= 01
---
> #if ((PDFLIB_MAJORVERSION == 2) && (PDFLIB_MINORVERSION >= 01)) || (PDFLIB_MAJORVERSION >= 3) 
2402c2402
< #if PDFLIB_MINORVERSION >= 01
---
> #if ((PDFLIB_MAJORVERSION == 2) && (PDFLIB_MINORVERSION >= 01)) || (PDFLIB_MAJORVERSION >= 3) 
 [2000-03-15 00:36 UTC] tswan at ics dot olemiss dot edu
Sorry... I opened up a whole can of worms on this one... this I believe would be the complete patch... I'm new at using pdflib so, I can't verify if everything is working correctly although I
believe it is.  If someone could let me know I would be very happy.

Thanks...
Thomas

<--- CUT HERE -- patch for ext/pdf/pdf.c --->
101a102
> /* All Versions < 2.30 */
190c191,192
< #if PDFLIB_MAJORVERSION > 1 & PDFLIB_MINORVERSION > 0
---
> #if (PDFLIB_MAJORVERSION == 2 && PDFLIB_MINORVERSION > 0) || (PDFLIB_MAJORVERSION >= 3)
> /* All Versions >= 2.01 */
226c228,229
< #if PDFLIB_MAJORVERSION >= 2 & PDFLIB_MINORVERSION >= 10
---
> #if (PDFLIB_MAJORVERSION == 2 && PDFLIB_MINORVERSION >= 10) || (PDFLIB_MAJORVERSION >= 3)
> /* All Versions >= 2.10 */
245c248,249
< #if PDFLIB_MAJORVERSION >= 3 | (PDFLIB_MAJORVERSION >= 2 & PDFLIB_MINORVERSION >= 20)
---
> #if (PDFLIB_MAJORVERSION >= 3) || (PDFLIB_MAJORVERSION == 2 && PDFLIB_MINORVERSION >= 20)
> /* All Versions >= 2.20 */
252c256,257
< #if PDFLIB_MINORVERSION > 0
---
> #if (PDFLIB_MAJORVERSION == 2 && PDFLIB_MINORVERSION > 0) || (PDFLIB_MAJORVERSION >= 3)
> /* All Versions >= 2.01 */
423c428,429
< #if PDFLIB_MAJORVERSION >= 2 & PDFLIB_MINORVERSION >= 10
---
> #if ((PDFLIB_MAJORVERSION == 2) && (PDFLIB_MINORVERSION >= 10)) || (PDFLIB_MAJORVERSION >= 3)
> /* Versions >= 2.10 */
443c449,450
< #if PDFLIB_MAJORVERSION > 1 & PDFLIB_MINORVERSION > 0
---
> #if ((PDFLIB_MAJORVERSION == 2) && (PDFLIB_MINORVERSION >= 1)) || (PDFLIB_MAJORVERSION >= 3)
> /* All Versions >= 2.01 */
449c456,457
< #if PDFLIB_MAJORVERSION >= 2 & PDFLIB_MINORVERSION >= 10 & defined PDF_OPEN_MEM_SUPPORTED
---
> #if (PDFLIB_MAJORVERSION >= 3) || (PDFLIB_MAJORVERSION == 2 && PDFLIB_MINORVERSION >= 10 && defined PDF_OPEN_MEM_SUPPORTED)
> /* All Versions >= 2.10 */
454c462,463
< #if PDFLIB_MAJORVERSION >= 3 | (PDFLIB_MAJORVERSION >= 2 & PDFLIB_MINORVERSION >= 20) & defined PDF_OPEN_MEM_SUPPORTED
---
> #if (PDFLIB_MAJORVERSION >= 3) || (PDFLIB_MAJORVERSION >= 2 && PDFLIB_MINORVERSION >= 20 && defined PDF_OPEN_MEM_SUPPORTED)
> /* All Versions >= 2.20 */
639a649
> /* All Versions >= 2.00 */
652a663
> /* All Versions >= 2.00 */
880c891,892
< #if PDFLIB_MAJORVERSION < 3 & PDFLIB_MINORVERSION < 30
---
> #if PDFLIB_MAJORVERSION < 3 && PDFLIB_MINORVERSION < 30
> /* All Versions < 2.30 */
2255c2267,2268
< #if PDFLIB_MINORVERSION == 0
---
> #if ((PDFLIB_MINORVERSION < 1) && (PDFLIB_MAJORVERSION < 3))
> /* All Versions <= 2.00 */
2351c2364,2365
< #if PDFLIB_MINORVERSION > 0
---
> #if (PDFLIB_MINORVERSION > 0) || (PDFLIB_MAJORVERSION >= 3)
> /* All Versions >= 2.01 */
2360c2374,2375
< #if PDFLIB_MINORVERSION > 0
---
> #if (PDFLIB_MINORVERSION > 0) || (PDFLIB_MAJORVERSION >= 3)
> /* All Versions >= 2.01 */
2393c2408,2409
< #if PDFLIB_MINORVERSION >= 01
---
> #if ((PDFLIB_MAJORVERSION == 2) && (PDFLIB_MINORVERSION >= 1)) || (PDFLIB_MAJORVERSION >= 3) 
> /* All Versions >= 2.01 */
2402c2418,2419
< #if PDFLIB_MINORVERSION >= 01
---
> #if ((PDFLIB_MAJORVERSION == 2) && (PDFLIB_MINORVERSION >= 01)) || (PDFLIB_MAJORVERSION >= 3) 
> /* All Versions >= 2.01 */
[root@tangent pdf]# [root@tangent pdf]# 
 [2000-03-24 02:33 UTC] tswan at ics dot olemiss dot edu
I found some more things I left out... sorry...

I added some more functions the changes PDFlib 3.0 API.  This 
includes PDF_show_boxed(),PDF_open_png(), PDF_open_image_file().
I'm still learning to use PDFlib in PHP so I'm still assuming I
haven't botched anything... (It works so far)... I would
appreciate it if someone were to check it for me against what
they are doing.

The changes include the following...

pdf_show_boxed(pdfdoc pdf, string text, float left, float bottom, 
      float width, float height, string hmode, string reserved)
pdf = file descriptor
text = text to be displayed in the box
left = position from left side of page
bottom = position from bottom of page
width = width of the text box
height = height of the text box
hmode = justification for text box can be 
         "centered","left","right","justify", or "fulljustify"

Added PDF_open_png(pdfdoc pdf, string filename)
opens a png_image if linked agains libPNG.

Added PDF_open_image_file(pdfdoc pdf, string imagetype, string filename)
where imagetype = "png","tiff","jpeg", or "gif"

All PDF_open_{imagetype} calls now use the PDF_open_image_file()
call in PDFlib instead of the older call.

Two patches are included... seperated by 
****************** FOR {FILENAME} *******************

Sorry I didn't know how to diff for multiple files...

****************** FOR PHP_PDF.H *******************

--- /usr/src/php-4.0b4pl1/ext/pdf/php_pdf.h	Mon Feb 21 10:23:07 2000
+++ php_pdf.h	Fri Mar 24 00:04:45 2000
@@ -57,6 +57,9 @@
 PHP_FUNCTION(pdf_begin_page);
 PHP_FUNCTION(pdf_end_page);
 PHP_FUNCTION(pdf_show);
+#if (PDFLIB_MAJORVERSION >= 3)
+PHP_FUNCTION(pdf_show_boxed);
+#endif
 PHP_FUNCTION(pdf_show_xy);
 PHP_FUNCTION(pdf_set_font);
 PHP_FUNCTION(pdf_get_font);
@@ -110,6 +113,10 @@
 PHP_FUNCTION(pdf_set_duration);
 PHP_FUNCTION(pdf_open_jpeg);
 PHP_FUNCTION(pdf_open_tiff);
+#if (PDFLIB_MAJORVERSION >=3 )
+PHP_FUNCTION(pdf_open_png);
+PHP_FUNCTION(pdf_open_image_file);
+#endif
 #if HAVE_LIBGD13
 PHP_FUNCTION(pdf_open_memory_image);
 #endif
@@ -125,6 +132,9 @@
 PHP_FUNCTION(pdf_set_border_color);
 PHP_FUNCTION(pdf_get_image_width);
 PHP_FUNCTION(pdf_get_image_height);
+#if (PDFLIB_MAJORVERSION >= 3)
+PHP_FUNCTION(pdf_text_box);
+#endif
 #else
 #define pdf_module_ptr NULL
 #endif


****************** FOR PDF.C *******************

--- /usr/src/php-4.0b4pl1/ext/pdf/pdf.c	Mon Feb 21 10:23:07 2000
+++ pdf.c	Fri Mar 24 01:21:29 2000
@@ -92,6 +92,9 @@
 	PHP_FE(pdf_begin_page, NULL)
 	PHP_FE(pdf_end_page, NULL)
 	PHP_FE(pdf_show, NULL)
+#if (PDFLIB_MAJORVERSION >= 3)
+	PHP_FE(pdf_show_boxed, NULL)
+#endif
 	PHP_FE(pdf_show_xy, NULL)
 	PHP_FE(pdf_set_font, NULL)
 	PHP_FE(pdf_set_leading, NULL)
@@ -99,6 +102,7 @@
 	PHP_FE(pdf_set_horiz_scaling, NULL)
 	PHP_FE(pdf_set_text_rise, NULL)
 #if PDFLIB_MAJORVERSION < 3 & PDFLIB_MINORVERSION < 30
+/* All Versions < 2.30 */
 	PHP_FE(pdf_set_text_matrix, NULL)
 #endif
 	PHP_FE(pdf_set_text_pos, NULL)
@@ -187,7 +191,8 @@
 	if(outline) efree(outline);
 }
 
-#if PDFLIB_MAJORVERSION > 1 & PDFLIB_MINORVERSION > 0
+#if (PDFLIB_MAJORVERSION == 2 && PDFLIB_MINORVERSION > 0) || (PDFLIB_MAJORVERSION >= 3)
+/* All Versions >= 2.01 */
 static void custom_errorhandler(PDF *p, int type, const char*shortmsg) {
 	switch (type){
 		case PDF_NonfatalError:
@@ -223,7 +228,8 @@
 }
 #endif
 
-#if PDFLIB_MAJORVERSION >= 2 & PDFLIB_MINORVERSION >= 10
+#if (PDFLIB_MAJORVERSION == 2 && PDFLIB_MINORVERSION >= 10) || (PDFLIB_MAJORVERSION >= 3)
+/* All Versions >= 2.10 */
 static size_t pdf_flushwrite(PDF *p, void *data, size_t size){
 	if(php_header())
 		return(php_write(data, size));
@@ -242,14 +248,16 @@
 PHP_MINFO_FUNCTION(pdf) {
 	/* need to use a PHPAPI function here because it is external module in windows */
 	php_printf("pdflib %d.%02d<BR>",  PDF_get_majorversion(), PDF_get_minorversion());
-#if PDFLIB_MAJORVERSION >= 3 | (PDFLIB_MAJORVERSION >= 2 & PDFLIB_MINORVERSION >= 20)
+#if (PDFLIB_MAJORVERSION >= 3) || (PDFLIB_MAJORVERSION == 2 && PDFLIB_MINORVERSION >= 20)
+/* All Versions >= 2.20 */
 		php_printf("The CJK fonts supported.");
 #endif
 #ifdef PDF_OPEN_MEM_SUPPORTED
 	php_printf("Support for in memory pdf creation.");
 #endif
 
-#if PDFLIB_MINORVERSION > 0
+#if (PDFLIB_MAJORVERSION == 2 && PDFLIB_MINORVERSION > 0) || (PDFLIB_MAJORVERSION >= 3)
+/* All Versions >= 2.01 */
 		php_printf("The function pdf_put_image() and pdf_execute_image() are <B>not</B> available");
 #else
 		php_printf("The function pdf_put_image() and pdf_execute_image() are available");
@@ -420,7 +428,8 @@
 	int argc;
 	PDF_TLS_VARS;
 
-#if PDFLIB_MAJORVERSION >= 2 & PDFLIB_MINORVERSION >= 10
+#if ((PDFLIB_MAJORVERSION == 2) && (PDFLIB_MINORVERSION >= 10)) || (PDFLIB_MAJORVERSION >= 3)
+/* Versions >= 2.10 */
 	argc = ARG_COUNT(ht);
 	if(argc > 1)
 		WRONG_PARAM_COUNT;
@@ -440,18 +449,21 @@
 	/* XXX should do anzend_list_addref for <fp> here! */
 #endif
 
-#if PDFLIB_MAJORVERSION > 1 & PDFLIB_MINORVERSION > 0
+#if ((PDFLIB_MAJORVERSION == 2) && (PDFLIB_MINORVERSION >= 1)) || (PDFLIB_MAJORVERSION >= 3)
+/* All Versions >= 2.01 */
 	pdf = PDF_new2(custom_errorhandler, pdf_emalloc, pdf_realloc, pdf_efree, NULL);
 #else
 	pdf = PDF_new();
 #endif
 
-#if PDFLIB_MAJORVERSION >= 2 & PDFLIB_MINORVERSION >= 10 & defined PDF_OPEN_MEM_SUPPORTED
+#if (PDFLIB_MAJORVERSION >= 3) || (PDFLIB_MAJORVERSION == 2 && PDFLIB_MINORVERSION >= 10 && defined PDF_OPEN_MEM_SUPPORTED)
+/* All Versions >= 2.10 */
 	if(fp) {
 		if (0 > PDF_open_fp(pdf, fp))
 			RETURN_FALSE;
 	} else {
-#if PDFLIB_MAJORVERSION >= 3 | (PDFLIB_MAJORVERSION >= 2 & PDFLIB_MINORVERSION >= 20) & defined PDF_OPEN_MEM_SUPPORTED
+#if (PDFLIB_MAJORVERSION >= 3) || (PDFLIB_MAJORVERSION >= 2 && PDFLIB_MINORVERSION >= 20 && defined PDF_OPEN_MEM_SUPPORTED)
+/* All Versions >= 2.20 */
 		PDF_open_mem(pdf, pdf_flushwrite);
 #else
 		if (0 > PDF_open_mem(pdf, pdf_flushwrite))
@@ -578,6 +590,53 @@
 }
 /* }}} */
 
+/* {{{ proto void pdf_show_boxed(int pdfdoc, string text, float left, float bottom, float width, 
+	float height, string hmode, string reserved)
+   Output text at constrained to a box defined by left, bottom, width, height
+   Options to fill are alignments (specified as a string in hmode):
+   	left, right, center, justify, fulljustify
+   Returns false if the text could not fit in the region specified,
+   Returns the number of letters that couldn't fit in the box
+
+   	*/
+PHP_FUNCTION(pdf_show_boxed) {
+#if (PDFLIB_MAJORVERSION >= 3)
+	pval *arg1, *arg2, *arg3, *arg4, *arg5, *arg6, *arg7;
+	int id, type, returnval;
+	PDF *pdf;
+	PDF_TLS_VARS;
+
+	if (ARG_COUNT(ht) != 7 || 
+		getParameters(ht, 7, &arg1, &arg2, &arg3, &arg4, &arg5, &arg6, &arg7) == FAILURE) {
+		WRONG_PARAM_COUNT;
+	}
+
+	convert_to_long(arg1);
+	convert_to_string(arg2);
+	convert_to_double(arg3);
+	convert_to_double(arg4);
+	convert_to_double(arg5);
+	convert_to_double(arg6);
+	convert_to_string(arg7);
+	id=arg1->value.lval;
+	pdf = zend_list_find(id,&type);
+	if(!pdf || type!=PDF_GLOBAL(le_pdf)) {
+		php_error(E_WARNING,"Unable to find file identifier %d",id);
+		RETURN_FALSE;
+	}
+
+	/* Note: The 8th argument is supposed to be null, otherwise it balks */
+	returnval = PDF_show_boxed(pdf, arg2->value.str.val, (float) arg3->value.dval, (float) arg4->value.dval, 
+		(float) arg5->value.dval, (float) arg6->value.dval, arg7->value.str.val, 
+		NULL);
+	RETURN_LONG(returnval);
+#else
+	php_error(E_WARNING,"PDF_show_boxed() is not supported in this version of PDFlib %d",id);
+	RETURN FALSE;
+#endif
+}
+/* }}} */
+
 /* {{{ proto void pdf_show_xy(int pdfdoc, string text, double x-koor, double y-koor)
    Output text at position */
 PHP_FUNCTION(pdf_show_xy) {
@@ -637,6 +696,7 @@
 	convert_to_string(arg2);
 	convert_to_double(arg3);
 #if PDFLIB_MAJORVERSION >= 2
+/* All Versions >= 2.00 */
 	convert_to_string(arg4);
 #else
 	convert_to_long(arg4);
@@ -650,6 +710,7 @@
 	}
 
 #if PDFLIB_MAJORVERSION >= 2
+/* All Versions >= 2.00 */
 	font = PDF_findfont(pdf, arg2->value.str.val, arg4->value.str.val, embed);
 #else	
 	if((arg4->value.lval > 5) || (arg4->value.lval < 0)) {
@@ -877,7 +938,8 @@
 }
 /* }}} */
 
-#if PDFLIB_MAJORVERSION < 3 & PDFLIB_MINORVERSION < 30
+#if PDFLIB_MAJORVERSION < 3 && PDFLIB_MINORVERSION < 30
+/* All Versions < 2.30 */
 /* {{{ proto void pdf_set_text_matrix(int pdfdoc, arry matrix)
    Sets the text matrix */
 PHP_FUNCTION(pdf_set_text_matrix) {
@@ -2124,8 +2186,11 @@
 		RETURN_FALSE;
 	}
 
+#if (PDFLIB_MAJORVERSION >= 3)
+	pdf_image = PDF_open_image_file(pdf, "gif", arg2->value.str.val, "", 0);
+#else
 	pdf_image = PDF_open_GIF(pdf, arg2->value.str.val);
-
+#endif
 	if(pdf_image < 0) {
 		php_error(E_WARNING, "Could not open image");
 		RETURN_FALSE;
@@ -2158,7 +2223,11 @@
 		RETURN_FALSE;
 	}
 
+#if (PDFLIB_MAJORVERSION >= 3)
+	pdf_image = PDF_open_image_file(pdf, "jpeg", arg2->value.str.val, "", 0);
+#else
 	pdf_image = PDF_open_JPEG(pdf, arg2->value.str.val);
+#endif
 
 	if(pdf_image < 0) {
 		php_error(E_WARNING, "Could not open image");
@@ -2192,7 +2261,11 @@
 		RETURN_FALSE;
 	}
 
+#if (PDFLIB_MAJORVERSION >= 3)
+	pdf_image = PDF_open_image_file(pdf, "tiff", arg2->value.str.val, "", 0);
+#else
 	pdf_image = PDF_open_TIFF(pdf, arg2->value.str.val);
+#endif
 
 	if(pdf_image < 0) {
 		php_error(E_WARNING, "Could not open image");
@@ -2203,6 +2276,86 @@
 	RETURN_LONG(id);
 }
 /* }}} */
+/* {{{ proto int pdf_open_png(int pdf, string tifffile)
+   Opens a PNG file and returns an image for placement in a pdf document. 
+   Available on if PDFlib version is 3.0 or greater*/
+#ifdef HAVE_LIBPNG
+PHP_FUNCTION(pdf_open_png) {
+	pval *arg1, *arg2;
+	int id, type;
+	int pdf_image;
+	PDF *pdf;
+	PDF_TLS_VARS;
+
+	if (ARG_COUNT(ht) != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
+		WRONG_PARAM_COUNT;
+	}
+
+	convert_to_long(arg1);
+	convert_to_string(arg2);
+	id=arg1->value.lval;
+	pdf = zend_list_find(id,&type);
+	if(!pdf || type!=PDF_GLOBAL(le_pdf)) {
+		php_error(E_WARNING,"Unable to find file identifier %d",id);
+		RETURN_FALSE;
+	}
+
+	pdf_image = PDF_open_image_file(pdf, "png", arg2->value.str.val, "", 0);
+
+	if(pdf_image < 0) {
+		php_error(E_WARNING, "Could not open image");
+		RETURN_FALSE;
+	}
+
+	id = zend_list_insert((void *) pdf_image,PDF_GLOBAL(le_pdf_image));
+	RETURN_LONG(id);
+}
+#endif
+/* }}} */
+
+#if (PDLIB_MAJORVERSION >= 3)
+/* All versions 3.0 or greater */
+/* {{{ proto int pdf_open_image_file(int pdf, string imagetype, string imagefile)
+   Opens a PNG file and returns an image for placement in a pdf document. 
+   Replaces PDF_open_GIF,PDF_open_TIFF,PDF_open_JPEG, and adds the ability to
+   open PNG files. 
+   
+   Syntax: pdf_open_image_file($pdf, "gif" | "jpeg" | "tiff" | "png", $filename);
+   
+   Available if PDFlib version is 3.0 or greater*/
+PHP_FUNCTION(pdf_open_image_file) {
+	pval *arg1, *arg2, *arg3;
+	int id, type;
+	int pdf_image;
+	PDF *pdf;
+	PDF_TLS_VARS;
+
+	if (ARG_COUNT(ht) != 3 || getParameters(ht, 3, &arg1, &arg2, &arg3) == FAILURE) {
+		WRONG_PARAM_COUNT;
+	}
+
+	convert_to_long(arg1);
+	convert_to_string(arg2);
+	conver_to_string(arg3);
+	id=arg1->value.lval;
+	pdf = zend_list_find(id,&type);
+	if(!pdf || type!=PDF_GLOBAL(le_pdf)) {
+		php_error(E_WARNING,"Unable to find file identifier %d",id);
+		RETURN_FALSE;
+	}
+
+	pdf_image = PDF_open_image_file(pdf, arg2->value.str.val, arg3->value.str.val, "", 0);
+
+	if(pdf_image < 0) {
+		php_error(E_WARNING, "Could not open image");
+		RETURN_FALSE;
+	}
+
+	id = zend_list_insert((void *) pdf_image,PDF_GLOBAL(le_pdf_image));
+	RETURN_LONG(id);
+}
+#endif
+/* }}} */
 
 #if HAVE_LIBGD13
 /* {{{ proto int pdf_open_memory_image(int pdf, int image)
@@ -2252,7 +2405,8 @@
 	}
 
 
-#if PDFLIB_MINORVERSION == 0
+#if ((PDFLIB_MINORVERSION < 1) && (PDFLIB_MAJORVERSION < 3))
+/* All Versions <= 2.00 */
 		pdf_image = PDF_open_memory_image(pdf, buffer, im->sx, im->sy, 3, 8);
 #else
 		pdf_image = PDF_open_image(pdf, "raw", "memory", buffer, im->sx*im->sy*3, im->sx, im->sy, 3, 8, NULL);
@@ -2348,7 +2502,8 @@
 /* {{{ proto void pdf_put_image(int pdf, int pdfimage)
    Stores image in the pdf document for later use */
 PHP_FUNCTION(pdf_put_image) {
-#if PDFLIB_MINORVERSION > 0
+#if (PDFLIB_MINORVERSION > 0) || (PDFLIB_MAJORVERSION >= 3)
+/* All Versions >= 2.01 */
 #else
 	pval *arg1, *arg2;
 	int id, type;
@@ -2357,7 +2512,8 @@
 #endif
 	PDF_TLS_VARS;
 	
-#if PDFLIB_MINORVERSION > 0
+#if (PDFLIB_MINORVERSION > 0) || (PDFLIB_MAJORVERSION >= 3)
+/* All Versions >= 2.01 */
 	php_error(E_WARNING, "Version 2.01 of pdflib does not need the pdf_put_image() anymore, check the docs!");
 #else
 	if (ARG_COUNT(ht) != 2 || getParameters(ht, 2, &arg1, &arg2) == FAILURE) {
@@ -2390,7 +2546,8 @@
 /* {{{ proto void pdf_execute_image(int pdf, int pdfimage, int x, int y, int scale)
    Places stored image in the pdf document */
 PHP_FUNCTION(pdf_execute_image) {
-#if PDFLIB_MINORVERSION >= 01
+#if ((PDFLIB_MAJORVERSION == 2) && (PDFLIB_MINORVERSION >= 1)) || (PDFLIB_MAJORVERSION >= 3) 
+/* All Versions >= 2.01 */
 #else
 	pval *arg1, *arg2, *arg3, *arg4, *arg5;
 	int id, type;
@@ -2399,7 +2556,8 @@
 	PDF_TLS_VARS;
 #endif
 
-#if PDFLIB_MINORVERSION >= 01
+#if ((PDFLIB_MAJORVERSION == 2) && (PDFLIB_MINORVERSION >= 01)) || (PDFLIB_MAJORVERSION >= 3) 
+/* All Versions >= 2.01 */
 	php_error(E_WARNING, "Version 2.01 of pdflib does not need the pdf_execute_image() anymore, check the docs!");
 #else
 	if (ARG_COUNT(ht) != 5 || getParameters(ht, 5, &arg1, &arg2, &arg3, &arg4, &arg5) == FAILURE) {

 [2000-07-24 17:36 UTC] david@php.net
Please contact Uwe Steinmann <steinm@php.net> to discuss this patch, see MAINTAINERS file. It's not a bug.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Fri Jul 04 09:01:34 2025 UTC