mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
...
This commit is contained in:
parent
238bc24cf2
commit
37a38b606c
@ -13,10 +13,9 @@ import os, sys
|
|||||||
|
|
||||||
from calibre.utils.config import OptionParser
|
from calibre.utils.config import OptionParser
|
||||||
from calibre.utils.logging import Log
|
from calibre.utils.logging import Log
|
||||||
from calibre.constants import preferred_encoding
|
from calibre.constants import preferred_encoding, plugins
|
||||||
from calibre.ebooks.pdf.verify import is_valid_pdfs, is_encrypted
|
from calibre.ebooks.pdf.verify import is_valid_pdfs, is_encrypted
|
||||||
from calibre import prints
|
from calibre import prints
|
||||||
from calibre.utils.podofo import podofo, podofo_err
|
|
||||||
|
|
||||||
USAGE = '\n%prog %%name ' + _('''\
|
USAGE = '\n%prog %%name ' + _('''\
|
||||||
file.pdf ...
|
file.pdf ...
|
||||||
@ -33,6 +32,7 @@ def option_parser(name):
|
|||||||
return OptionParser(usage=usage)
|
return OptionParser(usage=usage)
|
||||||
|
|
||||||
def print_info(pdf_path):
|
def print_info(pdf_path):
|
||||||
|
podofo, podofo_err = plugins['podofo']
|
||||||
if not podofo:
|
if not podofo:
|
||||||
raise RuntimeError('Failed to load PoDoFo with error:'+podofo_err)
|
raise RuntimeError('Failed to load PoDoFo with error:'+podofo_err)
|
||||||
p = podofo.PDFDoc()
|
p = podofo.PDFDoc()
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
using namespace pdf;
|
using namespace pdf;
|
||||||
|
|
||||||
|
// Constructor/desctructor {{{
|
||||||
static void
|
static void
|
||||||
PDFDoc_dealloc(PDFDoc* self)
|
PDFDoc_dealloc(PDFDoc* self)
|
||||||
{
|
{
|
||||||
@ -29,7 +30,9 @@ PDFDoc_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||||||
|
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
}
|
}
|
||||||
|
// }}}
|
||||||
|
|
||||||
|
// Loading/Opening of PDF files {{{
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PDFDoc_load(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
PDFDoc_load(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
||||||
char *buffer; Py_ssize_t size;
|
char *buffer; Py_ssize_t size;
|
||||||
@ -63,7 +66,9 @@ PDFDoc_open(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
|||||||
|
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
// }}}
|
||||||
|
|
||||||
|
// Saving/writing of PDF files {{{
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PDFDoc_save(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
PDFDoc_save(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
||||||
char *buffer;
|
char *buffer;
|
||||||
@ -97,7 +102,9 @@ PDFDoc_write(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
|||||||
if (ans == NULL) PyErr_NoMemory();
|
if (ans == NULL) PyErr_NoMemory();
|
||||||
return ans;
|
return ans;
|
||||||
}
|
}
|
||||||
|
// }}}
|
||||||
|
|
||||||
|
// extract_first_page() {{{
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PDFDoc_extract_first_page(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
PDFDoc_extract_first_page(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
||||||
try {
|
try {
|
||||||
@ -108,7 +115,9 @@ PDFDoc_extract_first_page(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
|||||||
}
|
}
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
// }}}
|
||||||
|
|
||||||
|
// page_count() {{{
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PDFDoc_page_count(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
PDFDoc_page_count(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
||||||
int count;
|
int count;
|
||||||
@ -119,8 +128,9 @@ PDFDoc_page_count(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
return Py_BuildValue("i", count);
|
return Py_BuildValue("i", count);
|
||||||
}
|
} // }}}
|
||||||
|
|
||||||
|
// delete_page {{{
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PDFDoc_delete_page(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
PDFDoc_delete_page(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
||||||
int num = 0;
|
int num = 0;
|
||||||
@ -134,12 +144,13 @@ PDFDoc_delete_page(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
|||||||
} else return NULL;
|
} else return NULL;
|
||||||
|
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
} // }}}
|
||||||
|
|
||||||
|
// append() {{{
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PDFDoc_append(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
PDFDoc_append(PDFDoc *self, PyObject *args, PyObject *kwargs) {
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
} // }}}
|
||||||
|
|
||||||
// Properties {{{
|
// Properties {{{
|
||||||
|
|
||||||
@ -379,6 +390,7 @@ static PyMethodDef PDFDoc_methods[] = {
|
|||||||
{NULL} /* Sentinel */
|
{NULL} /* Sentinel */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Type definition {{{
|
||||||
PyTypeObject pdf::PDFDocType = {
|
PyTypeObject pdf::PDFDocType = {
|
||||||
PyObject_HEAD_INIT(NULL)
|
PyObject_HEAD_INIT(NULL)
|
||||||
0, /*ob_size*/
|
0, /*ob_size*/
|
||||||
@ -421,5 +433,5 @@ PyTypeObject pdf::PDFDocType = {
|
|||||||
PDFDoc_new, /* tp_new */
|
PDFDoc_new, /* tp_new */
|
||||||
|
|
||||||
};
|
};
|
||||||
|
// }}}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user