⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pdf.c

📁 php-4.4.7学习linux时下载的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
	}	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 void pdf_end_page(int 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 void pdf_show(int 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 void pdf_show_xy(int 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(int 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 void pdf_set_font(int 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(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 void pdf_set_value(int 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(int 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(int 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(int 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(int 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 void pdf_set_leading(int pdfdoc, float distance)   Sets distance between text lines */PHP_FUNCTION(pdf_set_leading) {	_php_pdf_set_value(INTERNAL_FUNCTION_PARAM_PASSTHRU, "leading");}/* }}} *//* {{{ proto void pdf_set_text_rendering(int pdfdoc, int mode)   Determines how text is rendered */PHP_FUNCTION(pdf_set_text_rendering) {	_php_pdf_set_value(INTERNAL_FUNCTION_PARAM_PASSTHRU, "textrendering");}/* }}} *//* {{{ proto void pdf_set_horiz_scaling(int pdfdoc, float scale)   Sets horizontal scaling of text */PHP_FUNCTION(pdf_set_horiz_scaling) {	_php_pdf_set_value(INTERNAL_FUNCTION_PARAM_PASSTHRU, "horizscaling");}/* }}} *//* {{{ proto void pdf_set_text_rise(int pdfdoc, float value)   Sets the text rise */PHP_FUNCTION(pdf_set_text_rise) {	_php_pdf_set_value(INTERNAL_FUNCTION_PARAM_PASSTHRU, "textrise");}/* }}} *//* {{{ proto void pdf_set_char_spacing(int pdfdoc, float space)   Sets character spacing */PHP_FUNCTION(pdf_set_char_spacing){	_php_pdf_set_value(INTERNAL_FUNCTION_PARAM_PASSTHRU, "charspacing");}/* }}} *//* {{{ proto void pdf_set_word_spacing(int pdfdoc, float space)   Sets spacing between words */PHP_FUNCTION(pdf_set_word_spacing){	_php_pdf_set_value(INTERNAL_FUNCTION_PARAM_PASSTHRU, "wordspacing");}/* }}} *//* {{{ proto void pdf_set_text_pos(int 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 void pdf_continue_text(int 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(int 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;		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 void pdf_save(int 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 void pdf_restore(int 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 void pdf_translate(int 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 void pdf_scale(int 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 void pdf_rotate(int pdfdoc, float angle)   Sets rotation */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -