X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fpython%2Fgfx.c;h=427b3df5761cd4996eb8fcc3463bb938702b3a83;hb=9704bfcd1ddcad5250d7d4aeb1d27225f1792b34;hp=239822daaecc38f9932cc4f856874d6219f85a1b;hpb=cb0c7b634740e1298cf8de76c2ef87b4abaf19c9;p=swftools.git diff --git a/lib/python/gfx.c b/lib/python/gfx.c index 239822d..427b3df 100644 --- a/lib/python/gfx.c +++ b/lib/python/gfx.c @@ -75,7 +75,10 @@ PyDoc_STRVAR(output_save_doc, \ "Saves the contents of an output device to a file\n" "Depending on what the output device is, the contents\n" "of the file may be plain text, an image, an SWF file,\n" -"etc.\n"); +"etc.\n" +"For the ImageList device, several files (named\n" +"filename.1.png, filename.2.png etc.) might be created)\n" +); static PyObject* output_save(PyObject* _self, PyObject* args, PyObject* kwargs) { OutputObject* self = (OutputObject*)_self; @@ -130,12 +133,26 @@ static PyObject* output_endpage(PyObject* _self, PyObject* args, PyObject* kwarg self->output_device->endpage(self->output_device); return PY_NONE; } +PyDoc_STRVAR(output_setParameter_doc, \ +"setParameter(key, value)\n\n" +"Set a output-device dependent parameter" +); +static PyObject* output_setParameter(PyObject* _self, PyObject* args, PyObject* kwargs) +{ + OutputObject* self = (OutputObject*)_self; + static char *kwlist[] = {"key", "value", NULL}; + char*key=0,*value=0; + if (args && !PyArg_ParseTupleAndKeywords(args, kwargs, "ss", kwlist, &key, &value)) + return NULL; + self->output_device->setparameter(self->output_device, key, value); + return PY_NONE; +} PyDoc_STRVAR(f_createSWF_doc, \ "SWF()\n\n" "Creates a device which renders documents to SWF (Flash) files.\n" "Depending on the way the document parser behaves (see the poly2bitmap\n" "and bitmap parameters), the resulting SWF might use vector operations\n" -"and Flash Texts to display the document, or just a single bitmap\n" +"and Flash Texts to display the document, or just a single bitmap.\n" ); static PyObject* f_createSWF(PyObject* parent, PyObject* args, PyObject* kwargs) { @@ -153,9 +170,8 @@ PyDoc_STRVAR(f_createImageList_doc, \ "ImageList()\n\n" "Creates a device which renders documents to bitmaps.\n" "Each page that is rendered will create new bitmap.\n" -"As, right now, the only way to access the bitmaps is\n" -"by using the save() function on the imagelist, you can\n" -"currently only retrieve the first bitmap/page.\n" +"Using save(), you can save the images to a number\n" +"of files\n" ); static PyObject* f_createImageList(PyObject* parent, PyObject* args, PyObject* kwargs) { @@ -350,7 +366,6 @@ PyDoc_STRVAR(f_createPassThrough_doc, \ "to page.render().\n" "device needs to be a class implementing at least the following functions:\n\n" "setparameter(key,value)\n" -"startpage(width,height)\n" "startclip(outline)\n" "endclip()\n" "stroke(outline, width, color, capstyle, jointstyle, miterLimit)\n" @@ -360,9 +375,8 @@ PyDoc_STRVAR(f_createPassThrough_doc, \ "addfont(font)\n" "drawchar(font, glyph, color, matrix)\n" "drawlink(outline, url)\n" -"finish()\n\n" "If any of these functions are not defined, a error message will be printed,\n" -"however the rendering process will be continued.\n" +"however the rendering process will *not* be aborted.\n" ); static PyObject* f_createPassThrough(PyObject* parent, PyObject* args, PyObject* kwargs) { @@ -401,6 +415,7 @@ static PyMethodDef output_methods[] = {"save", (PyCFunction)output_save, METH_KEYWORDS, output_save_doc}, {"startpage", (PyCFunction)output_startpage, METH_KEYWORDS, output_startpage_doc}, {"endpage", (PyCFunction)output_endpage, METH_KEYWORDS, output_endpage_doc}, + {"setParameter", (PyCFunction)output_setParameter, METH_KEYWORDS, output_setParameter_doc}, {0,0,0,0} }; @@ -497,7 +512,7 @@ static PyObject* page_render(PyObject* _self, PyObject* args, PyObject* kwargs) PyDoc_STRVAR(page_asImage_doc, \ "asImage(width, height)\n\n" "Creates a bitmap from a page. The bitmap will be returned as a string\n" -"containing RGB triplets. The bitmap will have the specified width and\n" +"containing RGB triplets. The bitmap will be rescaled to the specified width and\n" "height. The aspect ratio of width and height doesn't need to be the same\n" "as the page.\n" ); @@ -589,14 +604,13 @@ static int page_print(PyObject * _self, FILE *fi, int flags) PyDoc_STRVAR(doc_getPage_doc, "getPage(nr)\n\n" -"\n" "Get one page from a document file. The nr parameter specifies\n" "which page to retrieve. Counting starts at 1, so the first page\n" "can be retrieved by\n" " page = doc.getPage(1)\n" ".\n" "You can find out how many pages a document contains by querying\n" -"it's pages field (doc.pages)\n" +"its pages field (doc.pages)\n" ); static PyObject* doc_getPage(PyObject* _self, PyObject* args, PyObject* kwargs) { @@ -621,7 +635,6 @@ static PyObject* doc_getPage(PyObject* _self, PyObject* args, PyObject* kwargs) PyDoc_STRVAR(doc_getInfo_doc, "getInfo(key)\n\n" -"\n" "Retrieve some information about a document. For PDF files, key\n" "can have the following values:\n\n" "\"title\", \"subject\", \"keywords\", \"author\", \"creator\", \"producer\",\n" @@ -646,9 +659,8 @@ static PyObject* doc_getInfo(PyObject* _self, PyObject* args, PyObject* kwargs) PyDoc_STRVAR(doc_setParameter_doc, "setParameter(key, value)\n\n" -"\n" "Pass a parameter or setting to the document parser. Unlike\n" -"the module level setoption() function, the parameters set\n" +"the module level setparameter() function, the parameters set\n" "using setParameter will only be valid for the object itself\n" "during its lifetime.\n" ); @@ -684,9 +696,10 @@ static PyObject* f_open(PyObject* parent, PyObject* args, PyObject* kwargs) char*filename; char*type; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ss", kwlist, &type, &filename)) { + static char *kwlist2[] = {"filename", NULL}; type = "pdf"; PyErr_Clear(); - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s", kwlist, &filename)) + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s", kwlist2, &filename)) return NULL; } @@ -754,7 +767,7 @@ PyDoc_STRVAR(output_doc, "object directly (i.e., from a class), however you can\n" "use a PassThrough() device to pass things over to Python.\n" "Examples for classes implementing the Output class are: \n" -"ImageList, SWF, PlainText, PassThrough\n" +"ImageList, SWF, PlainText and PassThrough.\n" ); static PyTypeObject OutputClass = { @@ -813,19 +826,18 @@ static PyTypeObject DocClass = //===================================================================== -PyDoc_STRVAR(f_setoption_doc, \ -"setoption(key,value)\n\n" -"\n" +PyDoc_STRVAR(f_setparameter_doc, \ +"setparameter(key,value)\n\n" "Set a parameter in the gfx module (which might affect the PDF\n" "parser or any of the rendering backends). This is a parameter\n" -"which would usually be passed with the \"-s\" option to pdf2swf\n" +"which would usually be passed with the \"-s\" option to pdf2swf.\n" "For a list of all parameters, see the output of\n" " pdf2swf -s help\n" "and\n" " pdf2swf somefile.pdf -s help\n" ".\n" ); -static PyObject* f_setoption(PyObject* self, PyObject* args, PyObject* kwargs) +static PyObject* f_setparameter(PyObject* self, PyObject* args, PyObject* kwargs) { static char *kwlist[] = {"key", "value", NULL}; char*key=0,*value=0; @@ -897,7 +909,8 @@ static PyMethodDef pdf2swf_methods[] = {"open", (PyCFunction)f_open, METH_KEYWORDS, f_open_doc}, {"addfont", (PyCFunction)f_addfont, METH_KEYWORDS, f_addfont_doc}, {"addfontdir", (PyCFunction)f_addfontdir, METH_KEYWORDS, f_addfontdir_doc}, - {"setoption", (PyCFunction)f_setoption, METH_KEYWORDS, f_setoption_doc}, + {"setoption", (PyCFunction)f_setparameter, METH_KEYWORDS, f_setparameter_doc}, // for backwards-compatibility + {"setparameter", (PyCFunction)f_setparameter, METH_KEYWORDS, f_setparameter_doc}, {"verbose", (PyCFunction)f_verbose, METH_KEYWORDS, f_verbose_doc}, /* devices */