Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pdf/xpdf/pdf-document.cc
diff options
context:
space:
mode:
Diffstat (limited to 'pdf/xpdf/pdf-document.cc')
-rw-r--r--pdf/xpdf/pdf-document.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/pdf/xpdf/pdf-document.cc b/pdf/xpdf/pdf-document.cc
index 76229db..ed3b505 100644
--- a/pdf/xpdf/pdf-document.cc
+++ b/pdf/xpdf/pdf-document.cc
@@ -197,6 +197,25 @@ pdf_document_load (EvDocument *document,
return TRUE;
}
+static gboolean
+pdf_document_save (EvDocument *document,
+ const char *uri,
+ GError **error)
+{
+ PdfDocument *pdf_document = PDF_DOCUMENT (document);
+ char *filename;
+ gboolean retval = FALSE;
+
+ filename = g_filename_from_uri (uri, NULL, error);
+ if (filename != NULL) {
+ GString *fname = new GString (filename);
+
+ retval = pdf_document->doc->saveAs (fname);
+ }
+
+ return retval;
+}
+
static int
pdf_document_get_n_pages (EvDocument *document)
{
@@ -975,6 +994,7 @@ static void
pdf_document_document_iface_init (EvDocumentIface *iface)
{
iface->load = pdf_document_load;
+ iface->save = pdf_document_save;
iface->get_n_pages = pdf_document_get_n_pages;
iface->set_page = pdf_document_set_page;
iface->get_page = pdf_document_get_page;