int closePdfFile( soPdfFile* pdfFile ) { assert(pdfFile != NULL); if (pdfFile->pageTree) { pdf_droppagetree(pdfFile->pageTree); pdfFile->pageTree = NULL; } if (pdfFile->xref) { if (pdfFile->xref->store) { pdf_dropstore(pdfFile->xref->store); pdfFile->xref->store = NULL; } pdf_closexref(pdfFile->xref); } return 0; }
void epdf_document_delete(Epdf_Document* doc) { if(!doc) return; if(doc->outline) { pdf_dropoutline(doc->outline); doc->outline = NULL; } if(doc->xref->store) { pdf_dropstore(doc->xref->store); doc->xref->store = NULL; } pdf_closexref(doc->xref); doc->xref = NULL; if(doc->rast) { fz_droprenderer(doc->rast); doc->rast = NULL; } free(doc); }
void pdfapp_close(pdfapp_t *app) { if (app->pages) pdf_droppagetree(app->pages); app->pages = nil; if (app->page) pdf_droppage(app->page); app->page = nil; if (app->image) fz_droppixmap(app->image); app->image = nil; if (app->outline) pdf_dropoutline(app->outline); app->outline = nil; if (app->xref->store) pdf_dropstore(app->xref->store); app->xref->store = nil; pdf_closexref(app->xref); app->xref = nil; }
static void pdfClose(PDFContext* ctx) { if (ctx->page) pdf_droppage(ctx->page); ctx->page = 0; if (ctx->pages) pdf_droppagetree(ctx->pages); ctx->pages = 0; /*if (ctx->image) fz_droppixmap(ctx->image); ctx->image = nil;*/ if (ctx->outline) pdf_dropoutline(ctx->outline); ctx->outline = 0; if (ctx->xref->store) pdf_dropstore(ctx->xref->store); ctx->xref->store = 0; pdf_closexref(ctx->xref); ctx->xref = 0; if (ctx->rast) fz_droprenderer(ctx->rast); ctx->rast = 0; //printf("alloc_current = %d\n", (int)alloc_current); }
void pdfapp_close(pdfapp_t *app) { if (app->cache) fz_freeglyphcache(app->cache); app->cache = nil; if (app->page) pdf_droppage(app->page); app->page = nil; if (app->image) fz_droppixmap(app->image); app->image = nil; if (app->text) fz_freetextspan(app->text); app->text = nil; if (app->outline) pdf_dropoutline(app->outline); app->outline = nil; if (app->xref->store) pdf_dropstore(app->xref->store); app->xref->store = nil; pdf_closexref(app->xref); app->xref = nil; }
void closexref(void) { if (cleanup) cleanup(); if (xref) { pdf_closexref(xref); xref = nil; } basename = nil; }
void pdfapp_close(pdfapp_t *app) { #if 0 if (app->page) pdf_droppage(app->page); app->page = nil; if (app->image) fz_droppixmap(app->image); app->image = nil; /* if (app->outline) pdf_dropoutline(app->outline); app->outline = nil;*/ if (app->xref->store) pdf_dropstore(app->xref->store); app->xref->store = nil; pdf_closexref(app->xref); app->xref = nil; #else if (app->cache) fz_free_glyph_cache(app->cache); app->cache = NULL; if (app->image) fz_drop_pixmap(app->image); app->image = NULL; if (app->outline) pdf_free_outline(app->outline); app->outline = NULL; if (app->xref) { if (app->xref->store) pdf_free_store(app->xref->store); app->xref->store = NULL; pdf_free_xref(app->xref); app->xref = NULL; } fz_flush_warnings(); #endif }
NPError NPP_Destroy(NPP inst, NPSavedData **saved) { pdfmoz_t *moz = inst->pdata; int i; //MSG("NPP_Destroy"); inst->pdata = NULL; DeleteObject(moz->graybrush); DestroyCursor(moz->arrow); DestroyCursor(moz->hand); DestroyCursor(moz->wait); fz_free(moz->dibinf); for (i = 0; i < moz->pagecount; i++) { if (moz->pages[i].obj) fz_dropobj(moz->pages[i].obj); if (moz->pages[i].page) pdf_droppage(moz->pages[i].page); if (moz->pages[i].image) fz_droppixmap(moz->pages[i].image); } fz_free(moz->pages); if (moz->xref) { if (moz->xref->store) { pdf_dropstore(moz->xref->store); moz->xref->store = nil; } pdf_closexref(moz->xref); } fz_free(moz); return NPERR_NO_ERROR; }
void closesrc(void) { if (srcpages) { pdf_droppagetree(srcpages); srcpages = nil; } if (src) { if (src->store) { pdf_dropstore(src->store); src->store = nil; } pdf_closexref(src); src = nil; } srcname = nil; }
void cleanmain(int argc, char **argv) { int doencrypt = 0; int dogarbage = 0; int doexpand = 0; pdf_crypt *encrypt = nil; char *infile; char *outfile = "out.pdf"; char *userpw = ""; char *ownerpw = ""; unsigned perms = 0xfffff0c0; /* nothing allowed */ int keylen = 40; char *password = ""; fz_error *error; int c; while ((c = getopt(argc, argv, "d:egn:o:p:u:x")) != -1) { switch (c) { case 'p': /* see TABLE 3.15 User access permissions */ perms = 0xfffff0c0; if (strchr(optarg, 'p')) /* print */ perms |= (1 << 2) | (1 << 11); if (strchr(optarg, 'm')) /* modify */ perms |= (1 << 3) | (1 << 10); if (strchr(optarg, 'c')) /* copy */ perms |= (1 << 4) | (1 << 9); if (strchr(optarg, 'a')) /* annotate / forms */ perms |= (1 << 5) | (1 << 8); break; case 'd': password = optarg; break; case 'e': doencrypt ++; break; case 'g': dogarbage ++; break; case 'n': keylen = atoi(optarg); break; case 'o': ownerpw = optarg; break; case 'u': userpw = optarg; break; case 'x': doexpand ++; break; default: cleanusage(); break; } } if (argc - optind < 1) cleanusage(); infile = argv[optind++]; if (argc - optind > 0) outfile = argv[optind++]; opensrc(infile, password, 0); if (doencrypt) { fz_obj *id = fz_dictgets(src->trailer, "ID"); if (!id) { error = fz_packobj(&id, "[(ABCDEFGHIJKLMNOP)(ABCDEFGHIJKLMNOP)]"); if (error) die(error); } else fz_keepobj(id); error = pdf_newencrypt(&encrypt, userpw, ownerpw, perms, keylen, id); if (error) die(error); fz_dropobj(id); } if (doexpand) cleanexpand(); if (dogarbage) { preloadobjstms(); pdf_garbagecollect(src); } error = pdf_savexref(src, outfile, encrypt); if (error) die(error); if (encrypt) pdf_dropcrypt(encrypt); pdf_closexref(src); }
void editmain(int argc, char **argv) { char *outfile = "out.pdf"; fz_error *error; int c; while ((c = getopt(argc, argv, "o:")) != -1) { switch (c) { case 'o': outfile = optarg; break; default: editusage(); break; } } if (optind == argc) editusage(); error = pdf_newxref(&editxref); if (error) die(error); error = pdf_initxref(editxref); if (error) die(error); error = fz_newarray(&editpagelist, 100); if (error) die(error); error = fz_newarray(&editmodelist, 100); if (error) die(error); while (optind < argc) { if (strstr(argv[optind], ".pdf")) { if (editobjects) editflushobjects(); opensrc(argv[optind], "", 1); error = fz_newarray(&editobjects, 100); if (error) die(error); } else if (!strcmp(argv[optind], "copy")) editmode = COPY; else if (!strcmp(argv[optind], "over")) editmode = OVER; else if (!strcmp(argv[optind], "2up")) editmode = NUP2; else if (!strcmp(argv[optind], "4up")) editmode = NUP4; else if (!strcmp(argv[optind], "8up")) editmode = NUP8; else editpages(argv[optind]); optind++; } if (editobjects) editflushobjects(); closesrc(); editflushpagetree(); editflushcatalog(); error = pdf_savexref(editxref, outfile, nil); if (error) die(error); pdf_closexref(editxref); }