Пример #1
0
static tiff_document *
tiff_open_document_with_stream(fz_context *ctx, fz_stream *file)
{
	tiff_document *doc;

	doc = fz_new_document(ctx, sizeof *doc);

	doc->super.close = (fz_document_close_fn *)tiff_close_document;
	doc->super.count_pages = (fz_document_count_pages_fn *)tiff_count_pages;
	doc->super.load_page = (fz_document_load_page_fn *)tiff_load_page;
	doc->super.meta = (fz_document_meta_fn *)tiff_meta;

	fz_try(ctx)
	{
		doc->buffer = fz_read_all(ctx, file, 1024);
		doc->page_count = fz_load_tiff_subimage_count(ctx, doc->buffer->data, doc->buffer->len);
	}
	fz_catch(ctx)
	{
		tiff_close_document(ctx, doc);
		fz_rethrow(ctx);
	}

	return doc;
}
Пример #2
0
static tiff_document *
tiff_open_document_with_stream(fz_context *ctx, fz_stream *file)
{
	tiff_document *doc;

	doc = fz_new_document(ctx, tiff_document);

	doc->super.drop_document = (fz_document_drop_fn *)tiff_drop_document;
	doc->super.count_pages = (fz_document_count_pages_fn *)tiff_count_pages;
	doc->super.load_page = (fz_document_load_page_fn *)tiff_load_page;
	doc->super.lookup_metadata = (fz_document_lookup_metadata_fn *)tiff_lookup_metadata;

	fz_try(ctx)
	{
		size_t len;
		unsigned char *data;
		doc->buffer = fz_read_all(ctx, file, 1024);
		len = fz_buffer_storage(ctx, doc->buffer, &data);
		doc->page_count = fz_load_tiff_subimage_count(ctx, data, len);
	}
	fz_catch(ctx)
	{
		fz_drop_document(ctx, &doc->super);
		fz_rethrow(ctx);
	}

	return doc;
}