コード例 #1
0
ファイル: pdfapp.c プロジェクト: FuangCao/cavan-20150921
static void pdfapp_open_xps(pdfapp_t *app, char *filename, int fd)
{
	fz_error error;
	fz_stream *file;

	file = fz_open_fd(fd);
	error = xps_open_stream(&app->xps, file);
	if (error)
		pdfapp_error(app, fz_rethrow(error, "cannot open document '%s'", filename));
	fz_close(file);

	app->doctitle = filename;

	app->pagecount = xps_count_pages(app->xps);
}
コード例 #2
0
ファイル: xpsdraw.c プロジェクト: Sjith/PDFProject
static void drawrange(xps_context *ctx, char *range)
{
	int page, spage, epage;
	char *spec, *dash;

	spec = fz_strsep(&range, ",");
	while (spec)
	{
		dash = strchr(spec, '-');

		if (dash == spec)
			spage = epage = xps_count_pages(ctx);
		else
			spage = epage = atoi(spec);

		if (dash)
		{
			if (strlen(dash) > 1)
				epage = atoi(dash + 1);
			else
				epage = xps_count_pages(ctx);
		}

		spage = CLAMP(spage, 1, xps_count_pages(ctx));
		epage = CLAMP(epage, 1, xps_count_pages(ctx));

		if (spage < epage)
			for (page = spage; page <= epage; page++)
				drawpage(ctx, page);
		else
			for (page = spage; page >= epage; page--)
				drawpage(ctx, page);

		spec = fz_strsep(&range, ",");
	}
}