int bmp_get_one_document_page(WILLUSBITMAP *src,K2PDFOPT_SETTINGS *k2settings, int src_type,char *filename, int pageno,double dpi,int bpp,FILE *out) { if (src_type==SRC_TYPE_PDF) { int status; #ifdef HAVE_MUPDF_LIB static char *mupdferr_trygs=TTEXT_WARN "\a\n ** ERROR reading from " TTEXT_BOLD2 "%s" TTEXT_WARN "using MuPDF. Trying Ghostscript...\n\n" TTEXT_NORMAL; status=0; if (k2settings->usegs<=0) { #if (WILLUSDEBUGX & 0x80000000) printf("\a\a\n\n\n\n\n\n\n\n\n ****** FAKING MUPDF--IGNORING SOURCE DOCUMENT!! *****\n\n\n\n\n\n\n"); status=bmp_read(src,"out.png",NULL); if (status==0 && bpp!=24) bmp_convert_to_grayscale(src); return(status); #else status=bmpmupdf_pdffile_to_bmp(src,filename,pageno,dpi*k2settings->document_scale_factor,bpp); if (!status || k2settings->usegs<0) return(status); #endif } /* Switch to Postscript since MuPDF failed */ if (k2settings->usegs==0) { k2printf(mupdferr_trygs,filename); k2settings->usegs=1; } #endif #ifdef HAVE_GHOSTSCRIPT_LIB if (willusgs_init(stdout) < 0) { k2sys_enter_to_exit(k2settings); exit(20); } #endif bmp_set_pdf_pageno(pageno); bmp_set_pdf_dpi(dpi); /* k2printf("Converting " TTEXT_BOLD2 "%s" TTEXT_NORMAL " page %2d to %d dpi bitmap ... ",filename,i,dpi); fflush(stdout); */ status=bmp_read(src,filename,NULL); if (!status && bpp==8) bmp_convert_to_greyscale(src); return(status); } else #ifdef HAVE_DJVU_LIB if (src_type==SRC_TYPE_DJVU) return(bmpdjvu_djvufile_to_bmp(src,filename,pageno,dpi*k2settings->document_scale_factor,bpp,out)); else #endif return(-1); }
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.); }