static PyObject* f_createPlainText(PyObject* parent, PyObject* args, PyObject* kwargs) { static char *kwlist[] = {NULL}; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "", kwlist)) return NULL; OutputObject*self = PyObject_New(OutputObject, &OutputClass); self->output_device = (gfxdevice_t*)malloc(sizeof(gfxdevice_t)); gfxdevice_text_init(self->output_device); return (PyObject*)self; }
int main(int argn, char *argv[]) { processargs(argn, argv); initLog(0,-1,0,0,-1,loglevel); if(!filename) { fprintf(stderr, "Please specify an input file\n"); exit(1); } if(!outputname) { if(filename) { outputname = stripFilename(filename, ".out"); msg("<notice> Output filename not given. Writing to %s", outputname); } } if(!outputname) { fprintf(stderr, "Please use -o to specify an output file\n"); exit(1); } is_in_range(0x7fffffff, pagerange); if(pagerange) driver->setparameter(driver, "pages", pagerange); if(!filename) { args_callback_usage(argv[0]); exit(0); } gfxdocument_t* doc = driver->open(driver, filename); if(!doc) { msg("<error> Couldn't open %s", filename); exit(1); } if(!format) { char*x = strrchr(outputname, '.'); if(x) format = x+1; } gfxresult_t*result = 0; #ifdef HAVE_LRF if(!strcasecmp(format, "lrf")) { gfxdevice_t lrf; gfxdevice_lrf_init(&lrf); gfxdevice_t rescale; gfxdevice_rescale_init(&rescale, &lrf, 592, 732, 0); gfxdevice_t*out = &rescale; out->setparameter(out, "keepratio", "1"); out->setparameter(out, "pagepattern", outputname); gfxdevice_t bbox2,*bbox=&bbox2; gfxdevice_bbox_init(bbox); bbox->setparameter(bbox, "graphics", "0"); int pagenr; for(pagenr = 1; pagenr <= doc->num_pages; pagenr++) { if(is_in_range(pagenr, pagerange)) { gfxpage_t* page = doc->getpage(doc, pagenr); bbox->startpage(bbox,-1,-1); page->render(page, bbox); gfxbbox_t b = gfxdevice_bbox_getbbox(bbox); out->startpage(out, b.xmax-b.xmin, b.ymax-b.ymin); page->rendersection(page, out, -b.xmin, -b.ymin, 0,0,b.xmax-b.xmin,b.ymax-b.ymin); out->endpage(out); page->destroy(page); } } result = out->finish(out); } else #endif { gfxdevice_t _out,*out=&_out; if(!strcasecmp(format, "ocr")) { gfxdevice_ocr_init(out); } else if(!strcasecmp(format, "swf")) { gfxdevice_swf_init(out); } else if(!strcasecmp(format, "img") || !strcasecmp(format, "png")) { gfxdevice_render_init(out); out->setparameter(out, "antialize", "4"); } else if(!strcasecmp(format, "txt")) { gfxdevice_text_init(out); } else if(!strcasecmp(format, "log")) { gfxdevice_file_init(out, "/tmp/device.log"); } else if(!strcasecmp(format, "pdf")) { gfxdevice_pdf_init(out); } else { msg("<error> Invalid output format: %s", format); exit(1); } int pagenr; for(pagenr = 1; pagenr <= doc->num_pages; pagenr++) { if(is_in_range(pagenr, pagerange)) { gfxpage_t* page = doc->getpage(doc, pagenr); out->startpage(out, page->width, page->height); page->render(page, out); out->endpage(out); page->destroy(page); } } result = out->finish(out); } if(result) { if(result->save(result, outputname) < 0) { exit(1); } result->destroy(result); } doc->destroy(doc); driver->destroy(driver); return 0; }