diff --git a/utils/pdftohtml.1 b/utils/pdftohtml.1 index fbcc077..6cdc6c6 100644 --- a/utils/pdftohtml.1 +++ b/utils/pdftohtml.1 @@ -52,6 +52,9 @@ use standard output .B \-zoom zoom the pdf document (default 1.5) .TP +.B \-r +Specifies the resolution, in DPI (default 72 DPI) +.TP .B \-xml output for XML post-processing .TP diff --git a/utils/pdftohtml.cc b/utils/pdftohtml.cc index 87a4d69..13dc16b 100644 --- a/utils/pdftohtml.cc +++ b/utils/pdftohtml.cc @@ -70,6 +70,7 @@ GBool ignore=gFalse; GBool useSplash=gTrue; char extension[5]="png"; double scale=1.5; +int resolution=72; GBool noframes=gFalse; GBool stout=gFalse; GBool xml=gFalse; @@ -113,6 +114,8 @@ static const ArgDesc argDesc[] = { "use standard output"}, {"-zoom", argFP, &scale, 0, "zoom the pdf document (default 1.5)"}, + {"-r", argInt, &resolution, 0, + "resolution to render the pdf document (default 72)"}, {"-xml", argFlag, &xml, 0, "output for XML post-processing"}, {"-hidden", argFlag, &showHidden, 0, @@ -419,13 +422,16 @@ int main(int argc, char *argv[]) { pg_h = tmp; } - doc->displayPage(splashOut, pg, 72, 72, 0, gTrue, gFalse, gFalse); + doc->displayPage(splashOut, pg, + resolution, resolution, + 0, gTrue, gFalse, gFalse); SplashBitmap *bitmap = splashOut->getBitmap(); imgFileName = GooString::format("{0:s}{1:03d}.{2:s}", htmlFileName->getCString(), pg, extension); - bitmap->writeImgFile(format, imgFileName->getCString(), 72, 72); + bitmap->writeImgFile(format, imgFileName->getCString(), + resolution, resolution); delete imgFileName; } @@ -448,7 +454,7 @@ int main(int argc, char *argv[]) { gTrue, gFalse, gFalse); delete psOut; - /*sprintf(buf, "%s -sDEVICE=png16m -dBATCH -dNOPROMPT -dNOPAUSE -r72 -sOutputFile=%s%%03d.png -g%dx%d -q %s", GHOSTSCRIPT, htmlFileName->getCString(), w, h, + /*sprintf(buf, "%s -sDEVICE=png16m -dBATCH -dNOPROMPT -dNOPAUSE -r%d -sOutputFile=%s%%03d.png -g%dx%d -q %s", GHOSTSCRIPT, resolution, htmlFileName->getCString(), w, h, psFileName->getCString());*/ GooString *gsCmd = new GooString(GHOSTSCRIPT); @@ -456,7 +462,7 @@ int main(int argc, char *argv[]) { gsCmd->append(" -sDEVICE="); gsCmd->append(gsDevice); gsCmd->append(" -dBATCH -dNOPROMPT -dNOPAUSE -r"); - sc = GooString::fromInt(static_cast(72*scale)); + sc = GooString::fromInt(static_cast(resolution*scale)); gsCmd->append(sc); gsCmd->append(" -sOutputFile="); gsCmd->append("\""); @@ -464,10 +470,11 @@ int main(int argc, char *argv[]) { gsCmd->append("%03d."); gsCmd->append(extension); gsCmd->append("\" -g"); - tw = GooString::fromInt(static_cast(scale*w)); + tw = GooString::fromInt(static_cast(scale*w*resolution/72.0)); gsCmd->append(tw); gsCmd->append("x"); th = GooString::fromInt(static_cast(scale*h)); + th = GooString::fromInt(static_cast(scale*h*resolution/72.0)); gsCmd->append(th); gsCmd->append(" -q \""); gsCmd->append(psFileName);