void k2gui_overlay_open_bitmap(WILLUSBITMAP *bmp) { char tempfile[MAXFILENAMELEN]; wfile_abstmpnam(tempfile); wfile_newext(tempfile,NULL,"png"); bmp_write(bmp,tempfile,NULL,100); willusgui_open_file_ex(tempfile); }
static void gs_postprocess(char *filename) { char tempname[MAXFILENAMELEN]; int status; double size; if ((status=willusgs_init(stdout))<0) { static int warn=0; if (warn==0) { k2printf("\a"); warn=1; } k2printf("\n" TTEXT_WARN "** Error %d initializing Ghostscript. Post-process step aborted. **" TTEXT_NORMAL "\n\n",status); return; } wfile_abstmpnam(tempname); k2printf("Post processing " TTEXT_MAGENTA "%s" TTEXT_NORMAL " with Ghostscript...\n", filename); status=willusgs_ps_to_pdf(tempname,filename,-1,-1,NULL); if (status<0) { static int warn=0; if (warn==0) { k2printf("\a"); warn=1; } k2printf("\n" TTEXT_WARN "** Error %d running Ghostscript. Post-process step aborted. **" TTEXT_NORMAL "\n\n",status); remove(tempname); return; } status=wfile_copy_file(filename,tempname,0); if (status==0) { static int warn=0; if (warn==0) { k2printf("\a"); warn=1; } k2printf("\n" TTEXT_WARN "** Error copying temp file %s to %s. Post-process error. **" TTEXT_NORMAL "\n\n",tempname,filename); return; } remove(tempname); size=wfile_size(filename); k2printf(TTEXT_BOLD " ... %d bytes" TTEXT_NORMAL " written to " TTEXT_MAGENTA "%s" TTEXT_NORMAL " (%.1f MB).\n",(int)size,filename,size/1024./1024.); }
static int stream_deflate(pdf_document *xref,fz_context *ctx,int pageref,int pagegen, int *length) { fz_buffer *strbuf; int n; unsigned char *p; #ifdef HAVE_Z_LIB char tempfile[512]; gzFile gz; FILE *f; int nw; #endif strbuf=pdf_load_stream(xref,pageref,pagegen); n=fz_buffer_storage(ctx,strbuf,&p); #ifdef HAVE_Z_LIB wfile_abstmpnam(tempfile); gz=gzopen(tempfile,"sab7"); gzwrite(gz,p,n); gzclose(gz); nw=wfile_size(tempfile); fz_resize_buffer(ctx,strbuf,nw+1); fz_buffer_storage(ctx,strbuf,&p); f=fopen(tempfile,"rb"); if (f==NULL || fread(p,1,nw,f)<nw) aprintf(ANSI_RED "** wmupdf: Error writing compressed stream to PDF file! **\n" ANSI_NORMAL); if (f!=NULL) fclose(f); remove(tempfile); p[nw]='\n'; strbuf->len=nw+1; pdf_update_stream(xref,pageref,strbuf); fz_drop_buffer(ctx,strbuf); /* printf(" After drop, xref->table[%d].stm_buf=%p, refs=%d\n",pageref,xref->table[pageref].stm_buf, xref->table[pageref].stm_buf->refs); */ (*length)=nw; return(1); #else fz_drop_buffer(ctx,strbuf); (*length)=n; return(0); #endif }