mirror of
				https://github.com/kovidgoyal/calibre.git
				synced 2025-11-03 19:17:02 -05:00 
			
		
		
		
	Add func to get num of pages ina pdf using poppler
This commit is contained in:
		
							parent
							
								
									bb9d414c4a
								
							
						
					
					
						commit
						dd542318af
					
				@ -85,6 +85,32 @@ extern "C" {
 | 
			
		||||
        return ans;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    static PyObject *
 | 
			
		||||
    pdfreflow_get_numpages(PyObject *self, PyObject *args) {
 | 
			
		||||
        char *pdfdata;
 | 
			
		||||
        int num = 0;
 | 
			
		||||
        Py_ssize_t size;
 | 
			
		||||
        map<string,string> info;
 | 
			
		||||
 | 
			
		||||
        if (!PyArg_ParseTuple(args, "s#", &pdfdata, &size))
 | 
			
		||||
            return NULL;
 | 
			
		||||
 | 
			
		||||
        Reflow *reflow = NULL;
 | 
			
		||||
        try {
 | 
			
		||||
            reflow = new Reflow(pdfdata, size);
 | 
			
		||||
            num = reflow->numpages();
 | 
			
		||||
        } catch (std::exception &e) {
 | 
			
		||||
            PyErr_SetString(PyExc_RuntimeError, e.what()); delete reflow; return NULL;
 | 
			
		||||
        } catch (...) {
 | 
			
		||||
            PyErr_SetString(PyExc_RuntimeError,
 | 
			
		||||
                    "Unknown exception raised while getting metadata from PDF"); delete reflow; return NULL;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        delete reflow; reflow = NULL;
 | 
			
		||||
        return Py_BuildValue("i", num);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    static PyObject *
 | 
			
		||||
    pdfreflow_set_metadata(PyObject *self, PyObject *args) {
 | 
			
		||||
        char *pdfdata;
 | 
			
		||||
@ -144,6 +170,10 @@ extern "C" {
 | 
			
		||||
        "get_metadata(info_dict)\n\n"
 | 
			
		||||
                "Set metadata in the specified PDF. Currently broken."
 | 
			
		||||
        },
 | 
			
		||||
        {"get_numpages", pdfreflow_get_numpages, METH_VARARGS,
 | 
			
		||||
        "get_numpages(pdf_data)\n\n"
 | 
			
		||||
                "Get number of pages in the PDF."
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        {NULL, NULL, 0, NULL}
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user