本文整理汇总了C++中pdf_to_int函数的典型用法代码示例。如果您正苦于以下问题:C++ pdf_to_int函数的具体用法?C++ pdf_to_int怎么用?C++ pdf_to_int使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了pdf_to_int函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: gathershadings
static void
gathershadings(int page, pdf_obj *pageref, pdf_obj *pageobj, pdf_obj *dict)
{
int i, n;
n = pdf_dict_len(dict);
for (i = 0; i < n; i++)
{
pdf_obj *shade;
pdf_obj *type;
int k;
shade = pdf_dict_get_val(dict, i);
if (!pdf_is_dict(shade))
{
fz_warn(ctx, "not a shading dict (%d %d R)", pdf_to_num(shade), pdf_to_gen(shade));
continue;
}
type = pdf_dict_gets(shade, "ShadingType");
if (!pdf_is_int(type) || pdf_to_int(type) < 1 || pdf_to_int(type) > 7)
{
fz_warn(ctx, "not a shading type (%d %d R)", pdf_to_num(shade), pdf_to_gen(shade));
type = NULL;
}
for (k = 0; k < shadings; k++)
if (!pdf_objcmp(shading[k].u.shading.obj, shade))
break;
if (k < shadings)
continue;
shadings++;
shading = fz_resize_array(ctx, shading, shadings, sizeof(struct info));
shading[shadings - 1].page = page;
shading[shadings - 1].pageref = pageref;
shading[shadings - 1].pageobj = pageobj;
shading[shadings - 1].u.shading.obj = shade;
shading[shadings - 1].u.shading.type = type;
}
}
开发者ID:UIKit0,项目名称:mupdf,代码行数:43,代码来源:mupdfinfo.c
示例2: pdf_decode_params_load
decode_params *
pdf_decode_params_load(pdf_obj *obj)
{
decode_params *dp = pdf_malloc(sizeof(decode_params));
if (!obj)
return 0;
if (!dp)
return 0;
memset(dp, 0, sizeof(decode_params));
dp->predictor = pdf_to_int(pdf_dict_get(obj, "Predictor"));
dp->colors = pdf_to_int(pdf_dict_get(obj, "Colors"));
dp->bitspercomponent = pdf_to_int(pdf_dict_get(obj, "BitsPerComponent"));
dp->columns = pdf_to_int(pdf_dict_get(obj, "Columns"));
dp->earlychange = pdf_to_int(pdf_dict_get(obj, "EarlyChange"));
return dp;
}
开发者ID:wongm168,项目名称:PegDF,代码行数:19,代码来源:pdfstream.c
示例3: pdf_count_pages
int
pdf_count_pages(pdf_document *doc)
{
if (doc->page_count == 0)
{
pdf_obj *count = pdf_dict_getp(pdf_trailer(doc), "Root/Pages/Count");
doc->page_count = pdf_to_int(count);
}
return doc->page_count;
}
开发者ID:codepongo,项目名称:sumatrapdf,代码行数:10,代码来源:pdf-page.c
示例4: pdf_load_font_descriptor
static void
pdf_load_font_descriptor(pdf_font_desc *fontdesc, pdf_document *doc, pdf_obj *dict, char *collection, char *basefont, int iscidfont, int has_encoding)
{
pdf_obj *obj1, *obj2, *obj3, *obj;
char *fontname, *origname;
FT_Face face;
fz_context *ctx = doc->ctx;
/* Prefer BaseFont; don't bother with FontName */
origname = basefont;
/* SumatraPDF: handle /BaseFont /Arial,Bold+000041 /FontName /Arial,Bold */
if (strchr(basefont, '+') && pdf_is_name(pdf_dict_gets(dict, "FontName")))
origname = pdf_to_name(pdf_dict_gets(dict, "FontName"));
/* cf. http://code.google.com/p/sumatrapdf/issues/detail?id=1616 */
if (strlen(origname) > 7 && origname[6] == '+')
origname += 7;
/* Look through list of alternate names for built in fonts */
fontname = clean_font_name(origname);
fontdesc->flags = pdf_to_int(pdf_dict_gets(dict, "Flags"));
fontdesc->italic_angle = pdf_to_real(pdf_dict_gets(dict, "ItalicAngle"));
fontdesc->ascent = pdf_to_real(pdf_dict_gets(dict, "Ascent"));
fontdesc->descent = pdf_to_real(pdf_dict_gets(dict, "Descent"));
fontdesc->cap_height = pdf_to_real(pdf_dict_gets(dict, "CapHeight"));
fontdesc->x_height = pdf_to_real(pdf_dict_gets(dict, "XHeight"));
fontdesc->missing_width = pdf_to_real(pdf_dict_gets(dict, "MissingWidth"));
obj1 = pdf_dict_gets(dict, "FontFile");
obj2 = pdf_dict_gets(dict, "FontFile2");
obj3 = pdf_dict_gets(dict, "FontFile3");
obj = obj1 ? obj1 : obj2 ? obj2 : obj3;
if (pdf_is_indirect(obj))
{
fz_try(ctx)
{
pdf_load_embedded_font(doc, fontdesc, fontname, obj);
}
fz_catch(ctx)
{
fz_rethrow_if(ctx, FZ_ERROR_TRYLATER);
fz_warn(ctx, "ignored error when loading embedded font; attempting to load system font");
if (origname != fontname && !iscidfont)
pdf_load_builtin_font(ctx, fontdesc, fontname);
else
pdf_load_system_font(ctx, fontdesc, fontname, collection, has_encoding);
}
}
else
{
if (origname != fontname && !iscidfont)
开发者ID:superbatonchik,项目名称:mupdf-converter,代码行数:54,代码来源:pdf-font.c
示例5: juggler_add_pages_from_file
ErrorCode juggler_add_pages_from_file(juggler_t *dest, juggler_t *src, int dest_index)
{
pdf_obj *dest_pages = pdf_dict_getp(dest->ctx,
pdf_trailer(dest->ctx, dest->pdf), "Root/Pages");
int dest_pages_index = pdf_array_len(dest->ctx,
pdf_dict_gets(dest->ctx, dest_pages, "Kids"));
/* be aware that this function does not change the two variables if the page
index is greater than the number of pages */
find_destination_pages(dest->ctx,
dest_pages, dest_index, &dest_pages, &dest_pages_index);
pdf_obj *dest_kids = pdf_dict_gets(dest->ctx, dest_pages, "Kids");
if(!pdf_is_indirect(dest->ctx, dest_pages) ||
!pdf_is_dict(dest->ctx, dest_pages) || !pdf_is_array(dest->ctx, dest_kids))
{
return(ERROR_INVALID_RANGE);
}
pdf_obj *pages_root = pdf_dict_getp(src->ctx, pdf_trailer(src->ctx, src->pdf), "Root/Pages");
if(!pdf_is_indirect(src->ctx, pages_root) || !pdf_is_dict(src->ctx, pages_root))
return(ERROR_NO_PAGES);
/* if we copy the root pages-node and it's referenced objects, we will copy
all pages and all objects those pages need */
pdf_obj *new_pages_ref = copy_object_single(dest->ctx, dest->pdf, src->ctx, src->pdf, pages_root);
/* insert new pages-node */
pdf_array_insert_drop(dest->ctx, dest_kids, new_pages_ref, dest_pages_index);
/* update the parent */
pdf_obj *new_pages_parent = pdf_new_indirect(dest->ctx, dest->pdf,
pdf_to_num(dest->ctx, dest_pages), pdf_to_gen(dest->ctx, dest_pages));
pdf_dict_puts_drop(dest->ctx, new_pages_ref, "Parent", new_pages_parent);
/* TODO: If dest_pages contains anything inheritable but not the new node
we need to insert empty items to prevent this inerhitance */
/* update count */
int new_count = pdf_to_int(dest->ctx,
pdf_dict_gets(dest->ctx, dest_pages, "Count")) + src->pagecount;
pdf_dict_puts_drop(dest->ctx, dest_pages, "Count",
pdf_new_int(dest->ctx, dest->pdf, new_count));
/* let MuPDF rebuild the page tree */
pdf_finish_edit(dest->ctx, dest->pdf);
dest->pdf->page_count = new_count;
/* update juggler's state */
juggler_page_tree_changed_due_to_insert(dest, dest_index, src->pagecount);
return(NoError);
}
开发者ID:s-k2,项目名称:Juggler,代码行数:53,代码来源:page-add.c
示例6: pdf_load_image_stream
static fz_buffer *
pdf_load_image_stream(fz_context *ctx, pdf_document *doc, int num, int gen, int orig_num, int orig_gen, fz_compression_params *params, int *truncated)
{
fz_stream *stm = NULL;
pdf_obj *dict, *obj;
int i, len, n;
fz_buffer *buf;
fz_var(buf);
if (num > 0 && num < pdf_xref_len(ctx, doc))
{
pdf_xref_entry *entry = pdf_get_xref_entry(ctx, doc, num);
/* Return ref to existing buffer, but only if uncompressed,
* or shortstoppable */
if (can_reuse_buffer(ctx, entry, params))
return fz_keep_buffer(ctx, entry->stm_buf);
}
dict = pdf_load_object(ctx, doc, num, gen);
len = pdf_to_int(ctx, pdf_dict_get(ctx, dict, PDF_NAME_Length));
obj = pdf_dict_get(ctx, dict, PDF_NAME_Filter);
len = pdf_guess_filter_length(len, pdf_to_name(ctx, obj));
n = pdf_array_len(ctx, obj);
for (i = 0; i < n; i++)
len = pdf_guess_filter_length(len, pdf_to_name(ctx, pdf_array_get(ctx, obj, i)));
pdf_drop_obj(ctx, dict);
stm = pdf_open_image_stream(ctx, doc, num, gen, orig_num, orig_gen, params);
fz_try(ctx)
{
if (truncated)
buf = fz_read_best(ctx, stm, len, truncated);
else
buf = fz_read_all(ctx, stm, len);
}
fz_always(ctx)
{
fz_drop_stream(ctx, stm);
}
fz_catch(ctx)
{
fz_rethrow_message(ctx, "cannot read raw stream (%d %d R)", num, gen);
}
return buf;
}
开发者ID:PuzzleFlow,项目名称:mupdf,代码行数:50,代码来源:pdf-stream.c
示例7: pdf_load_pattern
pdf_pattern *
pdf_load_pattern(fz_context *ctx, pdf_document *doc, pdf_obj *dict)
{
pdf_pattern *pat;
pdf_obj *obj;
if ((pat = pdf_find_item(ctx, pdf_drop_pattern_imp, dict)) != NULL)
{
return pat;
}
pat = fz_malloc_struct(ctx, pdf_pattern);
FZ_INIT_STORABLE(pat, 1, pdf_drop_pattern_imp);
pat->document = doc;
pat->resources = NULL;
pat->contents = NULL;
fz_try(ctx)
{
/* Store pattern now, to avoid possible recursion if objects refer back to this one */
pdf_store_item(ctx, dict, pat, pdf_pattern_size(pat));
pat->ismask = pdf_to_int(ctx, pdf_dict_get(ctx, dict, PDF_NAME_PaintType)) == 2;
pat->xstep = pdf_to_real(ctx, pdf_dict_get(ctx, dict, PDF_NAME_XStep));
pat->ystep = pdf_to_real(ctx, pdf_dict_get(ctx, dict, PDF_NAME_YStep));
obj = pdf_dict_gets(ctx, dict, "BBox");
pdf_to_rect(ctx, obj, &pat->bbox);
obj = pdf_dict_gets(ctx, dict, "Matrix");
if (obj)
pdf_to_matrix(ctx, obj, &pat->matrix);
else
pat->matrix = fz_identity;
pat->resources = pdf_dict_get(ctx, dict, PDF_NAME_Resources);
if (pat->resources)
pdf_keep_obj(ctx, pat->resources);
pat->contents = pdf_keep_obj(ctx, dict);
}
fz_catch(ctx)
{
pdf_remove_item(ctx, pdf_drop_pattern_imp, dict);
pdf_drop_pattern(ctx, pat);
fz_rethrow_message(ctx, "cannot load pattern (%d %d R)", pdf_to_num(ctx, dict), pdf_to_gen(ctx, dict));
}
return pat;
}
开发者ID:GKerison,项目名称:mupdf-1,代码行数:49,代码来源:pdf-pattern.c
示例8: pdf_load_pattern
pdf_pattern *
pdf_load_pattern(pdf_document *xref, pdf_obj *dict)
{
pdf_pattern *pat;
pdf_obj *obj;
fz_context *ctx = xref->ctx;
if ((pat = pdf_find_item(ctx, pdf_free_pattern_imp, dict)))
{
return pat;
}
pat = fz_malloc_struct(ctx, pdf_pattern);
FZ_INIT_STORABLE(pat, 1, pdf_free_pattern_imp);
pat->resources = NULL;
pat->contents = NULL;
/* Store pattern now, to avoid possible recursion if objects refer back to this one */
pdf_store_item(ctx, dict, pat, pdf_pattern_size(pat));
pat->ismask = pdf_to_int(pdf_dict_gets(dict, "PaintType")) == 2;
pat->xstep = pdf_to_real(pdf_dict_gets(dict, "XStep"));
pat->ystep = pdf_to_real(pdf_dict_gets(dict, "YStep"));
obj = pdf_dict_gets(dict, "BBox");
pdf_to_rect(ctx, obj, &pat->bbox);
obj = pdf_dict_gets(dict, "Matrix");
if (obj)
pdf_to_matrix(ctx, obj, &pat->matrix);
else
pat->matrix = fz_identity;
pat->resources = pdf_dict_gets(dict, "Resources");
if (pat->resources)
pdf_keep_obj(pat->resources);
fz_try(ctx)
{
pat->contents = pdf_keep_obj(dict);
}
fz_catch(ctx)
{
pdf_remove_item(ctx, pdf_free_pattern_imp, dict);
pdf_drop_pattern(ctx, pat);
fz_throw(ctx, "cannot load pattern stream (%d %d R)", pdf_to_num(dict), pdf_to_gen(dict));
}
return pat;
}
开发者ID:AvinashKiran,项目名称:mupdf,代码行数:49,代码来源:pdf_pattern.c
示例9: pdf_load_font_descriptor
static void
pdf_load_font_descriptor(pdf_font_desc *fontdesc, pdf_document *xref, pdf_obj *dict, char *collection, char *basefont)
{
pdf_obj *obj1, *obj2, *obj3, *obj;
char *fontname;
char *origname;
FT_Face face;
fz_context *ctx = xref->ctx;
if (!strchr(basefont, ',') || strchr(basefont, '+'))
origname = pdf_to_name(pdf_dict_gets(dict, "FontName"));
else
origname = basefont;
fontname = clean_font_name(origname);
fontdesc->flags = pdf_to_int(pdf_dict_gets(dict, "Flags"));
fontdesc->italic_angle = pdf_to_real(pdf_dict_gets(dict, "ItalicAngle"));
fontdesc->ascent = pdf_to_real(pdf_dict_gets(dict, "Ascent"));
fontdesc->descent = pdf_to_real(pdf_dict_gets(dict, "Descent"));
fontdesc->cap_height = pdf_to_real(pdf_dict_gets(dict, "CapHeight"));
fontdesc->x_height = pdf_to_real(pdf_dict_gets(dict, "XHeight"));
fontdesc->missing_width = pdf_to_real(pdf_dict_gets(dict, "MissingWidth"));
obj1 = pdf_dict_gets(dict, "FontFile");
obj2 = pdf_dict_gets(dict, "FontFile2");
obj3 = pdf_dict_gets(dict, "FontFile3");
obj = obj1 ? obj1 : obj2 ? obj2 : obj3;
if (pdf_is_indirect(obj))
{
fz_try(ctx)
{
pdf_load_embedded_font(fontdesc, xref, obj);
}
fz_catch(ctx)
{
fz_warn(ctx, "ignored error when loading embedded font; attempting to load system font");
if (origname != fontname)
pdf_load_builtin_font(ctx, fontdesc, fontname);
else
pdf_load_system_font(ctx, fontdesc, fontname, collection);
/* RJW: "cannot load font descriptor (%d %d R)", pdf_to_num(dict), pdf_to_gen(dict) */
}
}
else
{
if (origname != fontname)
开发者ID:yitoa,项目名称:YTReader,代码行数:47,代码来源:pdf_font.c
示例10: pdf_load_font_descriptor
static void
pdf_load_font_descriptor(pdf_font_desc *fontdesc, pdf_document *doc, pdf_obj *dict, char *collection, char *basefont, int iscidfont)
{
pdf_obj *obj1, *obj2, *obj3, *obj;
char *fontname, *origname;
FT_Face face;
fz_context *ctx = doc->ctx;
/* Prefer BaseFont; don't bother with FontName */
origname = basefont;
/* Look through list of alternate names for built in fonts */
fontname = clean_font_name(origname);
fontdesc->flags = pdf_to_int(pdf_dict_gets(dict, "Flags"));
fontdesc->italic_angle = pdf_to_real(pdf_dict_gets(dict, "ItalicAngle"));
fontdesc->ascent = pdf_to_real(pdf_dict_gets(dict, "Ascent"));
fontdesc->descent = pdf_to_real(pdf_dict_gets(dict, "Descent"));
fontdesc->cap_height = pdf_to_real(pdf_dict_gets(dict, "CapHeight"));
fontdesc->x_height = pdf_to_real(pdf_dict_gets(dict, "XHeight"));
fontdesc->missing_width = pdf_to_real(pdf_dict_gets(dict, "MissingWidth"));
obj1 = pdf_dict_gets(dict, "FontFile");
obj2 = pdf_dict_gets(dict, "FontFile2");
obj3 = pdf_dict_gets(dict, "FontFile3");
obj = obj1 ? obj1 : obj2 ? obj2 : obj3;
if (pdf_is_indirect(obj))
{
fz_try(ctx)
{
pdf_load_embedded_font(doc, fontdesc, fontname, obj);
}
fz_catch(ctx)
{
fz_rethrow_if(ctx, FZ_ERROR_TRYLATER);
fz_warn(ctx, "ignored error when loading embedded font; attempting to load system font");
if (origname != fontname && !iscidfont)
pdf_load_builtin_font(ctx, fontdesc, fontname);
else
pdf_load_system_font(ctx, fontdesc, fontname, collection);
}
}
else
{
if (origname != fontname && !iscidfont)
开发者ID:haggl,项目名称:mupdf,代码行数:46,代码来源:pdf-font.c
示例11: load_icc_based
static fz_colorspace *
load_icc_based(pdf_document *xref, pdf_obj *dict)
{
int n;
n = pdf_to_int(pdf_dict_gets(dict, "N"));
switch (n)
{
case 1: return fz_device_gray;
case 3: return fz_device_rgb;
case 4: return fz_device_cmyk;
}
fz_throw(xref->ctx, "syntaxerror: ICCBased must have 1, 3 or 4 components");
return NULL; /* Stupid MSVC */
}
开发者ID:Ernest0x,项目名称:mupdf,代码行数:17,代码来源:pdf_colorspace.c
示例12: pdf_delete_page
void
pdf_delete_page(pdf_document *doc, int at)
{
pdf_obj *parent, *kids;
int i;
pdf_lookup_page_loc(doc, at, &parent, &i);
kids = pdf_dict_gets(parent, "Kids");
pdf_array_delete(kids, i);
while (parent)
{
int count = pdf_to_int(pdf_dict_gets(parent, "Count"));
pdf_dict_puts_drop(parent, "Count", pdf_new_int(doc, count - 1));
parent = pdf_dict_gets(parent, "Parent");
}
}
开发者ID:codepongo,项目名称:sumatrapdf,代码行数:17,代码来源:pdf-page.c
示例13: pdf_load_transition
static void
pdf_load_transition(pdf_document *doc, pdf_page *page, pdf_obj *transdict)
{
char *name;
pdf_obj *obj;
int type;
obj = pdf_dict_gets(transdict, "D");
page->transition.duration = (obj ? pdf_to_real(obj) : 1);
page->transition.vertical = (pdf_to_name(pdf_dict_gets(transdict, "Dm"))[0] != 'H');
page->transition.outwards = (pdf_to_name(pdf_dict_gets(transdict, "M"))[0] != 'I');
/* FIXME: If 'Di' is None, it should be handled differently, but
* this only affects Fly, and we don't implement that currently. */
page->transition.direction = (pdf_to_int(pdf_dict_gets(transdict, "Di")));
/* FIXME: Read SS for Fly when we implement it */
/* FIXME: Read B for Fly when we implement it */
name = pdf_to_name(pdf_dict_gets(transdict, "S"));
if (!strcmp(name, "Split"))
type = FZ_TRANSITION_SPLIT;
else if (!strcmp(name, "Blinds"))
type = FZ_TRANSITION_BLINDS;
else if (!strcmp(name, "Box"))
type = FZ_TRANSITION_BOX;
else if (!strcmp(name, "Wipe"))
type = FZ_TRANSITION_WIPE;
else if (!strcmp(name, "Dissolve"))
type = FZ_TRANSITION_DISSOLVE;
else if (!strcmp(name, "Glitter"))
type = FZ_TRANSITION_GLITTER;
else if (!strcmp(name, "Fly"))
type = FZ_TRANSITION_FLY;
else if (!strcmp(name, "Push"))
type = FZ_TRANSITION_PUSH;
else if (!strcmp(name, "Cover"))
type = FZ_TRANSITION_COVER;
else if (!strcmp(name, "Uncover"))
type = FZ_TRANSITION_UNCOVER;
else if (!strcmp(name, "Fade"))
type = FZ_TRANSITION_FADE;
else
type = FZ_TRANSITION_NONE;
page->transition.type = type;
}
开发者ID:codepongo,项目名称:sumatrapdf,代码行数:45,代码来源:pdf-page.c
示例14: pdfout_data_scalar_from_pdf
pdfout_data *
pdfout_data_scalar_from_pdf (fz_context *ctx, pdf_obj *obj)
{
const char *s;
if (pdf_is_null (ctx, obj))
return pdfout_data_scalar_new (ctx, "null", strlen ("null"));
else if (pdf_is_bool (ctx, obj))
{
if (pdf_to_bool (ctx, obj))
s = "true";
else
s = "false";
return pdfout_data_scalar_new (ctx, s, strlen (s));
}
else if (pdf_is_name (ctx, obj))
{
s = pdf_to_name (ctx, obj);
return pdfout_data_scalar_new (ctx, s, strlen (s));
}
else if (pdf_is_string (ctx, obj))
{
int len;
char *str = pdfout_str_obj_to_utf8 (ctx, obj, &len);
pdfout_data *result = pdfout_data_scalar_new (ctx, str, len);
free (str);
return result;
}
else if (pdf_is_int (ctx, obj))
{
int n = pdf_to_int (ctx, obj);
char buf[200];
int len = pdfout_snprintf (ctx, buf, "%d", n);
return pdfout_data_scalar_new (ctx, buf, len);
}
else if (pdf_is_real (ctx, obj))
{
float f = pdf_to_real (ctx, obj);
char buf[200];
int len = pdfout_snprintf (ctx, buf, "%g", f);
return pdfout_data_scalar_new (ctx, buf, len);
}
else
abort();
}
开发者ID:amba,项目名称:pdfout,代码行数:45,代码来源:data.c
示例15: pdf_load_image_stream
fz_buffer *
pdf_load_image_stream(pdf_document *xref, int num, int gen, int orig_num, int orig_gen, pdf_image_params *params)
{
fz_context *ctx = xref->ctx;
fz_stream *stm = NULL;
pdf_obj *dict, *obj;
int i, len, n;
fz_buffer *buf;
fz_var(buf);
if (num > 0 && num < xref->len && xref->table[num].stm_buf)
return fz_keep_buffer(xref->ctx, xref->table[num].stm_buf);
dict = pdf_load_object(xref, num, gen);
/* RJW: "cannot load stream dictionary (%d %d R)", num, gen */
len = pdf_to_int(pdf_dict_gets(dict, "Length"));
obj = pdf_dict_gets(dict, "Filter");
len = pdf_guess_filter_length(len, pdf_to_name(obj));
n = pdf_array_len(obj);
for (i = 0; i < n; i++)
len = pdf_guess_filter_length(len, pdf_to_name(pdf_array_get(obj, i)));
pdf_drop_obj(dict);
stm = pdf_open_image_stream(xref, num, gen, orig_num, orig_gen, params);
/* RJW: "cannot open stream (%d %d R)", num, gen */
fz_try(ctx)
{
buf = fz_read_all(stm, len);
}
fz_always(ctx)
{
fz_close(stm);
}
fz_catch(ctx)
{
fz_throw(ctx, "cannot read raw stream (%d %d R)", num, gen);
}
return buf;
}
开发者ID:JMQCode,项目名称:iBooks,代码行数:44,代码来源:pdf_stream.c
示例16: load_icc_based
static fz_colorspace *
load_icc_based(pdf_document *doc, pdf_obj *dict)
{
int n;
pdf_obj *obj;
fz_context *ctx = doc->ctx;
n = pdf_to_int(pdf_dict_gets(dict, "N"));
obj = pdf_dict_gets(dict, "Alternate");
if (obj)
{
fz_colorspace *cs_alt = NULL;
fz_try(ctx)
{
cs_alt = pdf_load_colorspace(doc, obj);
if (cs_alt->n != n)
{
fz_drop_colorspace(ctx, cs_alt);
fz_throw(ctx, FZ_ERROR_GENERIC, "ICCBased /Alternate colorspace must have %d components", n);
}
}
fz_catch(ctx)
{
cs_alt = NULL;
}
if (cs_alt)
return cs_alt;
}
switch (n)
{
case 1: return fz_device_gray(ctx);
case 3: return fz_device_rgb(ctx);
case 4: return fz_device_cmyk(ctx);
}
fz_throw(ctx, FZ_ERROR_GENERIC, "syntaxerror: ICCBased must have 1, 3 or 4 components");
}
开发者ID:azaleafisitania,项目名称:sumatrapdf,代码行数:41,代码来源:pdf-colorspace.c
示例17: pdf_set_text_annot_position
void pdf_set_text_annot_position(fz_context *ctx, pdf_document *doc, pdf_annot *annot, fz_point pt)
{
fz_matrix ctm;
fz_rect rect;
int flags;
fz_invert_matrix(&ctm, &annot->page->ctm);
rect.x0 = pt.x;
rect.x1 = pt.x + TEXT_ANNOT_SIZE;
rect.y0 = pt.y;
rect.y1 = pt.y + TEXT_ANNOT_SIZE;
fz_transform_rect(&rect, &ctm);
pdf_dict_put_drop(ctx, annot->obj, PDF_NAME_Rect, pdf_new_rect(ctx, doc, &rect));
flags = pdf_to_int(ctx, pdf_dict_get(ctx, annot->obj, PDF_NAME_F));
flags |= (F_NoZoom|F_NoRotate);
pdf_dict_put_drop(ctx, annot->obj, PDF_NAME_F, pdf_new_int(ctx, doc, flags));
update_rect(ctx, annot);
}
开发者ID:Leadrive,项目名称:mupdf-converter,代码行数:21,代码来源:pdf-annot-edit.c
示例18: pdfout_page_labels_get
pdfout_data *
pdfout_page_labels_get (fz_context *ctx, pdf_document *doc)
{
pdf_obj *trailer = pdf_trailer (ctx, doc);
pdf_obj *labels_obj = pdf_dict_getp (ctx, trailer, "Root/PageLabels");
pdf_obj *array = pdf_dict_gets (ctx, labels_obj, "Nums");
if (array && pdf_is_array (ctx, array) == false)
pdfout_throw (ctx, "Nums is not an array");
int length = pdf_array_len (ctx, array);
pdfout_data *labels = pdfout_data_array_new (ctx);
for (int i = 0; i < length / 2; ++i)
{
pdf_obj *object = pdf_array_get (ctx, array, 2 * i);
if (pdf_is_int (ctx, object) == false)
pdfout_throw (ctx, "key in number tree not an int");
pdfout_data *hash = pdfout_data_hash_new (ctx);
int page = pdf_to_int (ctx, object);
if (page < 0)
pdfout_throw (ctx, "key in number tree is < 0");
push_int_key (ctx, hash, "page", page);
pdf_obj *dict = pdf_array_get (ctx, array, 2 * i + 1);
if (pdf_is_dict (ctx, dict) == false)
pdfout_throw (ctx, "value in number tree not a dict");
parse_dict (ctx, dict, hash);
pdfout_data_array_push (ctx, labels, hash);
}
return labels;
}
开发者ID:amba,项目名称:pdfout,代码行数:40,代码来源:page-labels.c
示例19: pdf_set_text_annot_position
void pdf_set_text_annot_position(fz_context *ctx, pdf_annot *annot, fz_point pt)
{
pdf_document *doc = annot->page->doc;
fz_matrix page_ctm, inv_page_ctm;
fz_rect rect;
int flags;
pdf_page_transform(ctx, annot->page, NULL, &page_ctm);
fz_invert_matrix(&inv_page_ctm, &page_ctm);
rect.x0 = pt.x;
rect.x1 = pt.x + TEXT_ANNOT_SIZE;
rect.y0 = pt.y;
rect.y1 = pt.y + TEXT_ANNOT_SIZE;
fz_transform_rect(&rect, &inv_page_ctm);
pdf_dict_put_drop(ctx, annot->obj, PDF_NAME_Rect, pdf_new_rect(ctx, doc, &rect));
flags = pdf_to_int(ctx, pdf_dict_get(ctx, annot->obj, PDF_NAME_F));
flags |= (PDF_ANNOT_IS_NO_ZOOM|PDF_ANNOT_IS_NO_ROTATE);
pdf_dict_put_drop(ctx, annot->obj, PDF_NAME_F, pdf_new_int(ctx, doc, flags));
}
开发者ID:ArtifexSoftware,项目名称:mupdf,代码行数:22,代码来源:pdf-annot-edit.c
示例20: execute_action
static void execute_action(fz_context *ctx, pdf_document *doc, pdf_obj *obj, pdf_obj *a)
{
if (a)
{
pdf_obj *type = pdf_dict_get(ctx, a, PDF_NAME_S);
if (pdf_name_eq(ctx, type, PDF_NAME_JavaScript))
{
pdf_obj *js = pdf_dict_get(ctx, a, PDF_NAME_JS);
if (js)
{
char *code = pdf_to_utf8(ctx, doc, js);
fz_try(ctx)
{
pdf_js_execute(doc->js, code);
}
fz_always(ctx)
{
fz_free(ctx, code);
}
fz_catch(ctx)
{
fz_rethrow(ctx);
}
}
}
else if (pdf_name_eq(ctx, type, PDF_NAME_ResetForm))
{
reset_form(ctx, doc, pdf_dict_get(ctx, a, PDF_NAME_Fields), pdf_to_int(ctx, pdf_dict_get(ctx, a, PDF_NAME_Flags)) & 1);
}
else if (pdf_name_eq(ctx, type, PDF_NAME_Named))
{
pdf_obj *name = pdf_dict_get(ctx, a, PDF_NAME_N);
if (pdf_name_eq(ctx, name, PDF_NAME_Print))
pdf_event_issue_print(ctx, doc);
}
}
开发者ID:mandeep57,项目名称:mupdf,代码行数:38,代码来源:pdf-form.c
注:本文中的pdf_to_int函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论