typedef fz_device *(fz_document_writer_begin_page_fn)(fz_context *ctx, fz_document_writer *wri, fz_rect mediabox)
Function type to start the process of writing a page to a document.
Returns a fz_device to write page contents to.
typedef void (fz_document_writer_end_page_fn)(fz_context *ctx, fz_document_writer *wri, fz_device *dev)
Function type to end the process of writing a page to a document.
typedef void (fz_document_writer_close_writer_fn)(fz_context *ctx, fz_document_writer *wri)
Function type to end the process of writing pages to a document.
This writes any file level trailers required. After this completes successfully the file is up to date and complete.
typedef void (fz_document_writer_drop_writer_fn)(fz_context *ctx, fz_document_writer *wri)
Function type to discard an fz_document_writer. This may be called at any time during the process to release all the resources owned by the writer.
Calling drop without having previously called close may leave the file in an inconsistent state and the user of the fz_document_writer would need to do any cleanup required.
#define fz_new_derived_document_writer(CTX,TYPE,BEGIN_PAGE,END_PAGE,CLOSE,DROP)
fz_document_writer *
fz_new_document_writer (
fz_context *ctx,
const char *path,
const char *format,
const char *options
)
Create a new fz_document_writer, for a file of the given type.
fz_document_writer *
fz_new_document_writer_with_output (
fz_context *ctx,
fz_output *out,
const char *format,
const char *options
)
Like fz_new_document_writer but takes a fz_output for writing the result. Only works for multi-page formats.
fz_document_writer *
fz_new_document_writer_with_buffer (
fz_context *ctx,
fz_buffer *buf,
const char *format,
const char *options
)
fz_document_writer *
fz_new_pdf_writer (
fz_context *ctx,
const char *path,
const char *options
)
Document writers for various possible output formats.
All of the “_with_output” variants pass the ownership of out in immediately upon calling. The writers are responsible for dropping the fz_output when they are finished with it (even if they throw an exception during creation).
fz_document_writer *
fz_new_pdf_writer_with_output (
fz_context *ctx,
fz_output *out,
const char *options
)
fz_document_writer *
fz_new_svg_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_svg_writer_with_output (
fz_context *ctx,
fz_output *out,
const char *options
)
fz_document_writer *
fz_new_text_writer (
fz_context *ctx,
const char *format,
const char *path,
const char *options
)
fz_document_writer *
fz_new_text_writer_with_output (
fz_context *ctx,
const char *format,
fz_output *out,
const char *options
)
fz_document_writer *
fz_new_odt_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_odt_writer_with_output (
fz_context *ctx,
fz_output *out,
const char *options
)
fz_document_writer *
fz_new_docx_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_docx_writer_with_output (
fz_context *ctx,
fz_output *out,
const char *options
)
fz_document_writer *
fz_new_ps_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_ps_writer_with_output (
fz_context *ctx,
fz_output *out,
const char *options
)
fz_document_writer *
fz_new_pcl_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_pcl_writer_with_output (
fz_context *ctx,
fz_output *out,
const char *options
)
fz_document_writer *
fz_new_pclm_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_pclm_writer_with_output (
fz_context *ctx,
fz_output *out,
const char *options
)
fz_document_writer *
fz_new_pwg_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_pwg_writer_with_output (
fz_context *ctx,
fz_output *out,
const char *options
)
fz_document_writer *
fz_new_cbz_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_cbz_writer_with_output (
fz_context *ctx,
fz_output *out,
const char *options
)
fz_document_writer *
fz_new_csv_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_csv_writer_with_output (
fz_context *ctx,
fz_output *out,
const char *options
)
typedef int (fz_pdfocr_progress_fn)(fz_context *ctx, void *progress_arg, int page, int percent)
Used to report progress of the OCR operation.
Return 0 to continue progress, return 1 to cancel the operation.
fz_document_writer *
fz_new_pdfocr_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_pdfocr_writer_with_output (
fz_context *ctx,
fz_output *out,
const char *options
)
void
fz_pdfocr_writer_set_progress (
fz_context *ctx,
fz_document_writer *writer,
fz_pdfocr_progress_fn *progress,
void *
)
fz_document_writer *
fz_new_jpeg_pixmap_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_png_pixmap_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_pam_pixmap_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_pnm_pixmap_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_pgm_pixmap_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_ppm_pixmap_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_pbm_pixmap_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_document_writer *
fz_new_pkm_pixmap_writer (
fz_context *ctx,
const char *path,
const char *options
)
fz_device *
fz_begin_page (
fz_context *ctx,
fz_document_writer *wri,
fz_rect mediabox
)
Called to start the process of writing a page to a document.
Returns a borrowed fz_device to write page contents to. This should be kept if required, and only dropped if it was kept.
void
fz_end_page (
fz_context *ctx,
fz_document_writer *wri
)
Called to end the process of writing a page to a document.
void
fz_write_document (
fz_context *ctx,
fz_document_writer *wri,
fz_document *doc
)
Convenience function to feed all the pages of a document to fz_begin_page/fz_run_page/fz_end_page.
void
fz_close_document_writer (
fz_context *ctx,
fz_document_writer *wri
)
Called to end the process of writing pages to a document.
This writes any file level trailers required. After this completes successfully the file is up to date and complete.
void
fz_drop_document_writer (
fz_context *ctx,
fz_document_writer *wri
)
Called to discard a fz_document_writer. This may be called at any time during the process to release all the resources owned by the writer.
Calling drop without having previously called close may leave the file in an inconsistent state.
fz_document_writer *fz_new_pixmap_writer(fz_context *ctx, const char *path, const char *options, const char *default_path, int n,
void (*save)(fz_context *ctx, fz_pixmap *pix, const char *filename))
fz_document_writer *fz_new_pixmap_writer_with_output(fz_context *ctx, fz_output *out, const char *options, int n,
void (*write)(fz_context *ctx, fz_output *out, fz_pixmap *pix))
extern const char *fz_pdf_write_options_usage
extern const char *fz_svg_write_options_usage
extern const char *fz_pcl_write_options_usage
extern const char *fz_pclm_write_options_usage
extern const char *fz_pwg_write_options_usage
extern const char *fz_pdfocr_write_options_usage
Implementation details: subject to change.
struct fz_document_writer
{
fz_document_writer_begin_page_fn *begin_page;
fz_document_writer_end_page_fn *end_page;
fz_document_writer_close_writer_fn *close_writer;
fz_document_writer_drop_writer_fn *drop_writer;
fz_device *dev;
}
Structure is public to allow other structures to be derived from it. Do not access members directly.
fz_document_writer *
fz_new_document_writer_of_size (
fz_context *ctx,
size_t size,
fz_document_writer_begin_page_fn *begin_page,
fz_document_writer_end_page_fn *end_page,
fz_document_writer_close_writer_fn *close,
fz_document_writer_drop_writer_fn *drop
)
Internal function to allocate a block for a derived document_writer structure, with the base structure’s function pointers populated correctly, and the extra space zero initialised.