summaryrefslogtreecommitdiff
path: root/source/fitz
diff options
context:
space:
mode:
Diffstat (limited to 'source/fitz')
-rw-r--r--source/fitz/output-cbz.c4
-rw-r--r--source/fitz/writer.c15
2 files changed, 15 insertions, 4 deletions
diff --git a/source/fitz/output-cbz.c b/source/fitz/output-cbz.c
index d6f1e07c..d9aff180 100644
--- a/source/fitz/output-cbz.c
+++ b/source/fitz/output-cbz.c
@@ -60,7 +60,7 @@ cbz_end_page(fz_context *ctx, fz_document_writer *wri_, fz_device *dev)
}
static void
-cbz_drop_imp(fz_context *ctx, fz_document_writer *wri_)
+cbz_close(fz_context *ctx, fz_document_writer *wri_)
{
fz_cbz_writer *wri = (fz_cbz_writer*)wri_;
fz_try(ctx)
@@ -80,7 +80,7 @@ fz_new_cbz_writer(fz_context *ctx, const char *path, const char *options)
wri = fz_malloc_struct(ctx, fz_cbz_writer);
wri->super.begin_page = cbz_begin_page;
wri->super.end_page = cbz_end_page;
- wri->super.drop_imp = cbz_drop_imp;
+ wri->super.close = cbz_close;
fz_try(ctx)
wri->zip = fz_new_zip_writer(ctx, path);
diff --git a/source/fitz/writer.c b/source/fitz/writer.c
index b015b5bb..cb4ca77a 100644
--- a/source/fitz/writer.c
+++ b/source/fitz/writer.c
@@ -54,15 +54,26 @@ fz_new_document_writer(fz_context *ctx, const char *path, const char *format, co
if (!fz_strcasecmp(format, "cbz"))
return fz_new_cbz_writer(ctx, path, options);
+ if (!fz_strcasecmp(format, "pdf"))
+ return fz_new_pdf_writer(ctx, path, options);
fz_throw(ctx, FZ_ERROR_GENERIC, "unknown document format: %s", format);
}
void
+fz_close_document_writer(fz_context *ctx, fz_document_writer *wri)
+{
+ if (wri->close)
+ wri->close(ctx, wri);
+ wri->close = NULL;
+ fz_free(ctx, wri);
+}
+
+void
fz_drop_document_writer(fz_context *ctx, fz_document_writer *wri)
{
- if (wri->drop_imp)
- wri->drop_imp(ctx, wri);
+ if (wri->close)
+ wri->close(ctx, wri);
fz_free(ctx, wri);
}