📄 pdf.c
字号:
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 void pdf_skew(int 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 void pdf_setflat(int 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(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 void pdf_setlinejoin(int 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(E_WARNING,"Parameter of pdf_setlinejoin() must be between 0 and 2"); RETURN_FALSE; } */ PDF_setlinejoin(pdf, Z_LVAL_PP(arg2)); RETURN_TRUE;}/* }}} *//* {{{ proto void pdf_setlinecap(int 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(E_WARNING,"Parameter of pdf_setlinecap() must be > 0 and <= 2"); RETURN_FALSE; } */ PDF_setlinecap(pdf, Z_LVAL_PP(arg2)); RETURN_TRUE;}/* }}} *//* {{{ proto void pdf_setmiterlimit(int 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(E_WARNING,"Parameter of pdf_setmiterlimit() must be >= 1"); RETURN_FALSE; } */ PDF_setmiterlimit(pdf, (float) Z_DVAL_PP(arg2)); RETURN_TRUE;}/* }}} *//* {{{ proto void pdf_setlinewidth(int 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 void pdf_setdash(int 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 void pdf_moveto(int 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 void pdf_curveto(int 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 void pdf_lineto(int 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 void pdf_circle(int 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 void pdf_arc(int 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 void pdf_rect(int 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 void pdf_closepath(int 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 void pdf_closepath_stroke(int 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 void pdf_stroke(int 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 void pdf_fill(int 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 void pdf_fill_stroke(int 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 void pdf_closepath_fill_stroke(int 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 void pdf_endpath(int 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 void pdf_clip(int 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 void pdf_set_parameter(int 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(int 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); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -