summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/mupdf/fitz.h1
-rw-r--r--include/mupdf/fitz/buffer.h2
-rw-r--r--include/mupdf/fitz/output.h10
-rw-r--r--include/mupdf/fitz/unzip.h6
-rw-r--r--include/mupdf/fitz/writer.h28
5 files changed, 47 insertions, 0 deletions
diff --git a/include/mupdf/fitz.h b/include/mupdf/fitz.h
index ec0c87a4..6f4e431d 100644
--- a/include/mupdf/fitz.h
+++ b/include/mupdf/fitz.h
@@ -58,6 +58,7 @@ extern "C" {
#include "mupdf/fitz/util.h"
/* Output formats */
+#include "mupdf/fitz/writer.h"
#include "mupdf/fitz/output-pnm.h"
#include "mupdf/fitz/output-png.h"
#include "mupdf/fitz/output-pwg.h"
diff --git a/include/mupdf/fitz/buffer.h b/include/mupdf/fitz/buffer.h
index 2749c32c..1a8eb80c 100644
--- a/include/mupdf/fitz/buffer.h
+++ b/include/mupdf/fitz/buffer.h
@@ -130,6 +130,8 @@ void fz_append_buffer(fz_context *ctx, fz_buffer *buf, fz_buffer *extra);
void fz_write_buffer(fz_context *ctx, fz_buffer *buf, const void *data, int len);
void fz_write_buffer_byte(fz_context *ctx, fz_buffer *buf, int val);
void fz_write_buffer_rune(fz_context *ctx, fz_buffer *buf, int val);
+void fz_write_buffer_int32_le(fz_context *ctx, fz_buffer *buf, int x);
+void fz_write_buffer_int16_le(fz_context *ctx, fz_buffer *buf, int x);
void fz_write_buffer_bits(fz_context *ctx, fz_buffer *buf, int val, int bits);
void fz_write_buffer_pad(fz_context *ctx, fz_buffer *buf);
int fz_buffer_printf(fz_context *ctx, fz_buffer *buffer, const char *fmt, ...);
diff --git a/include/mupdf/fitz/output.h b/include/mupdf/fitz/output.h
index 8b59d386..35f61aa7 100644
--- a/include/mupdf/fitz/output.h
+++ b/include/mupdf/fitz/output.h
@@ -97,6 +97,16 @@ static inline void fz_write_int32_le(fz_context *ctx, fz_output *out, int x)
fz_write(ctx, out, data, 4);
}
+static inline void fz_write_int16_le(fz_context *ctx, fz_output *out, int x)
+{
+ char data[2];
+
+ data[0] = x;
+ data[1] = x>>8;
+
+ fz_write(ctx, out, data, 2);
+}
+
static inline void fz_write_byte(fz_context *ctx, fz_output *out, unsigned char x)
{
fz_write(ctx, out, &x, 1);
diff --git a/include/mupdf/fitz/unzip.h b/include/mupdf/fitz/unzip.h
index b19ffbd9..64b2b94b 100644
--- a/include/mupdf/fitz/unzip.h
+++ b/include/mupdf/fitz/unzip.h
@@ -19,4 +19,10 @@ void fz_drop_archive(fz_context *ctx, fz_archive *ar);
int fz_count_archive_entries(fz_context *ctx, fz_archive *zip);
const char *fz_list_archive_entry(fz_context *ctx, fz_archive *zip, int idx);
+typedef struct fz_zip_writer_s fz_zip_writer;
+
+fz_zip_writer *fz_new_zip_writer(fz_context *ctx, const char *filename);
+void fz_write_zip_entry(fz_context *ctx, fz_zip_writer *zip, const char *name, fz_buffer *buf, int compress);
+void fz_drop_zip_writer(fz_context *ctx, fz_zip_writer *zip);
+
#endif
diff --git a/include/mupdf/fitz/writer.h b/include/mupdf/fitz/writer.h
new file mode 100644
index 00000000..e318568e
--- /dev/null
+++ b/include/mupdf/fitz/writer.h
@@ -0,0 +1,28 @@
+#ifndef MUPDF_FITZ_WRITER_H
+#define MUPDF_FITZ_WRITER_H
+
+#include "mupdf/fitz/system.h"
+#include "mupdf/fitz/context.h"
+#include "mupdf/fitz/output.h"
+#include "mupdf/fitz/document.h"
+#include "mupdf/fitz/device.h"
+
+typedef struct fz_document_writer_s fz_document_writer;
+
+struct fz_document_writer_s
+{
+ fz_device *(*begin_page)(fz_context *ctx, fz_document_writer *wri, const fz_rect *mediabox, fz_matrix *ctm);
+ void (*end_page)(fz_context *ctx, fz_document_writer *wri, fz_device *dev);
+ void (*drop_imp)(fz_context *ctx, fz_document_writer *wri);
+};
+
+fz_document_writer *fz_new_document_writer(fz_context *ctx, const char *path, const char *format, const char *options);
+
+fz_device *fz_begin_page(fz_context *ctx, fz_document_writer *wri, const fz_rect *mediabox, fz_matrix *ctm);
+void fz_end_page(fz_context *ctx, fz_document_writer *wri, fz_device *dev);
+void fz_drop_document_writer(fz_context *ctx, fz_document_writer *wri);
+
+fz_document_writer *fz_new_cbz_writer(fz_context *ctx, const char *path, const char *options);
+fz_document_writer *fz_new_pdf_writer(fz_context *ctx, const char *path, const char *options);
+
+#endif