"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "xpdf/pdftoppm.cc" between
xpdf-4.03.tar.gz and xpdf-4.04.tar.gz

About: Xpdf is a PDF viewer for X.

pdftoppm.cc  (xpdf-4.03):pdftoppm.cc  (xpdf-4.04)
skipping to change at line 29 skipping to change at line 29
#include "gmem.h" #include "gmem.h"
#include "gmempp.h" #include "gmempp.h"
#include "parseargs.h" #include "parseargs.h"
#include "GString.h" #include "GString.h"
#include "GlobalParams.h" #include "GlobalParams.h"
#include "Object.h" #include "Object.h"
#include "PDFDoc.h" #include "PDFDoc.h"
#include "SplashBitmap.h" #include "SplashBitmap.h"
#include "Splash.h" #include "Splash.h"
#include "SplashOutputDev.h" #include "SplashOutputDev.h"
#include "Error.h"
#include "config.h" #include "config.h"
static int firstPage = 1; static int firstPage = 1;
static int lastPage = 0; static int lastPage = 0;
static double resolution = 150; static double resolution = 150;
static GBool mono = gFalse; static GBool mono = gFalse;
static GBool gray = gFalse; static GBool gray = gFalse;
#if SPLASH_CMYK #if SPLASH_CMYK
static GBool cmyk = gFalse; static GBool cmyk = gFalse;
#endif #endif
static int rotate = 0; static int rotate = 0;
static char enableFreeTypeStr[16] = ""; static char enableFreeTypeStr[16] = "";
static char antialiasStr[16] = ""; static char antialiasStr[16] = "";
static char vectorAntialiasStr[16] = ""; static char vectorAntialiasStr[16] = "";
static char ownerPassword[33] = ""; static char ownerPassword[33] = "";
static char userPassword[33] = ""; static char userPassword[33] = "";
static GBool verbose = gFalse;
static GBool quiet = gFalse; static GBool quiet = gFalse;
static char cfgFileName[256] = ""; static char cfgFileName[256] = "";
static GBool printVersion = gFalse; static GBool printVersion = gFalse;
static GBool printHelp = gFalse; static GBool printHelp = gFalse;
static ArgDesc argDesc[] = { static ArgDesc argDesc[] = {
{"-f", argInt, &firstPage, 0, {"-f", argInt, &firstPage, 0,
"first page to print"}, "first page to print"},
{"-l", argInt, &lastPage, 0, {"-l", argInt, &lastPage, 0,
"last page to print"}, "last page to print"},
skipping to change at line 79 skipping to change at line 81
"enable FreeType font rasterizer: yes, no"}, "enable FreeType font rasterizer: yes, no"},
#endif #endif
{"-aa", argString, antialiasStr, sizeof(antialiasStr), {"-aa", argString, antialiasStr, sizeof(antialiasStr),
"enable font anti-aliasing: yes, no"}, "enable font anti-aliasing: yes, no"},
{"-aaVector", argString, vectorAntialiasStr, sizeof(vectorAntialiasStr) , {"-aaVector", argString, vectorAntialiasStr, sizeof(vectorAntialiasStr) ,
"enable vector anti-aliasing: yes, no"}, "enable vector anti-aliasing: yes, no"},
{"-opw", argString, ownerPassword, sizeof(ownerPassword), {"-opw", argString, ownerPassword, sizeof(ownerPassword),
"owner password (for encrypted files)"}, "owner password (for encrypted files)"},
{"-upw", argString, userPassword, sizeof(userPassword), {"-upw", argString, userPassword, sizeof(userPassword),
"user password (for encrypted files)"}, "user password (for encrypted files)"},
{"-verbose", argFlag, &verbose, 0,
"print per-page status information"},
{"-q", argFlag, &quiet, 0, {"-q", argFlag, &quiet, 0,
"don't print any messages or errors"}, "don't print any messages or errors"},
{"-cfg", argString, cfgFileName, sizeof(cfgFileName), {"-cfg", argString, cfgFileName, sizeof(cfgFileName),
"configuration file to use in place of .xpdfrc"}, "configuration file to use in place of .xpdfrc"},
{"-v", argFlag, &printVersion, 0, {"-v", argFlag, &printVersion, 0,
"print copyright and version info"}, "print copyright and version info"},
{"-h", argFlag, &printHelp, 0, {"-h", argFlag, &printHelp, 0,
"print usage information"}, "print usage information"},
{"-help", argFlag, &printHelp, 0, {"-help", argFlag, &printHelp, 0,
"print usage information"}, "print usage information"},
skipping to change at line 104 skipping to change at line 108
}; };
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
PDFDoc *doc; PDFDoc *doc;
char *fileName; char *fileName;
char *ppmRoot; char *ppmRoot;
GString *ppmFile; GString *ppmFile;
GString *ownerPW, *userPW; GString *ownerPW, *userPW;
SplashColor paperColor; SplashColor paperColor;
SplashOutputDev *splashOut; SplashOutputDev *splashOut;
GBool ok; GBool ok, toStdout, printStatusInfo;
int exitCode; int exitCode;
int pg, n; int pg, n;
const char *ext; const char *ext;
#ifdef DEBUG_FP_LINUX #ifdef DEBUG_FP_LINUX
// enable exceptions on floating point div-by-zero // enable exceptions on floating point div-by-zero
feenableexcept(FE_DIVBYZERO); feenableexcept(FE_DIVBYZERO);
// force 64-bit rounding: this avoids changes in output when minor // force 64-bit rounding: this avoids changes in output when minor
// code changes result in spills of x87 registers; it also avoids // code changes result in spills of x87 registers; it also avoids
// differences in output with valgrind's 64-bit floating point // differences in output with valgrind's 64-bit floating point
skipping to change at line 150 skipping to change at line 154
fprintf(stderr, "%s\n", xpdfCopyright); fprintf(stderr, "%s\n", xpdfCopyright);
if (!printVersion) { if (!printVersion) {
printUsage("pdftoppm", "<PDF-file> <PPM-root>", argDesc); printUsage("pdftoppm", "<PDF-file> <PPM-root>", argDesc);
} }
goto err0; goto err0;
} }
fileName = argv[1]; fileName = argv[1];
ppmRoot = argv[2]; ppmRoot = argv[2];
// read config file // read config file
if (cfgFileName[0] && !pathIsFile(cfgFileName)) {
error(errConfig, -1, "Config file '{0:s}' doesn't exist or isn't a file",
cfgFileName);
}
globalParams = new GlobalParams(cfgFileName); globalParams = new GlobalParams(cfgFileName);
globalParams->setupBaseFonts(NULL); globalParams->setupBaseFonts(NULL);
if (enableFreeTypeStr[0]) { if (enableFreeTypeStr[0]) {
if (!globalParams->setEnableFreeType(enableFreeTypeStr)) { if (!globalParams->setEnableFreeType(enableFreeTypeStr)) {
fprintf(stderr, "Bad '-freetype' value on command line\n"); fprintf(stderr, "Bad '-freetype' value on command line\n");
} }
} }
if (antialiasStr[0]) { if (antialiasStr[0]) {
if (!globalParams->setAntialias(antialiasStr)) { if (!globalParams->setAntialias(antialiasStr)) {
fprintf(stderr, "Bad '-aa' value on command line\n"); fprintf(stderr, "Bad '-aa' value on command line\n");
} }
} }
if (vectorAntialiasStr[0]) { if (vectorAntialiasStr[0]) {
if (!globalParams->setVectorAntialias(vectorAntialiasStr)) { if (!globalParams->setVectorAntialias(vectorAntialiasStr)) {
fprintf(stderr, "Bad '-aaVector' value on command line\n"); fprintf(stderr, "Bad '-aaVector' value on command line\n");
} }
} }
if (verbose) {
globalParams->setPrintStatusInfo(verbose);
}
if (quiet) { if (quiet) {
globalParams->setErrQuiet(quiet); globalParams->setErrQuiet(quiet);
} }
// open PDF file // open PDF file
if (ownerPassword[0]) { if (ownerPassword[0]) {
ownerPW = new GString(ownerPassword); ownerPW = new GString(ownerPassword);
} else { } else {
ownerPW = NULL; ownerPW = NULL;
} }
skipping to change at line 213 skipping to change at line 224
} else if (gray) { } else if (gray) {
ext = "pgm"; ext = "pgm";
#if SPLASH_CMYK #if SPLASH_CMYK
} else if (cmyk) { } else if (cmyk) {
ext = "pam"; ext = "pam";
#endif #endif
} else { } else {
ext = "ppm"; ext = "ppm";
} }
// check for stdout; set up to print per-page status info
toStdout = !strcmp(ppmRoot, "-");
printStatusInfo = !toStdout && globalParams->getPrintStatusInfo();
// write PPM files // write PPM files
if (mono) { if (mono) {
paperColor[0] = 0xff; paperColor[0] = 0xff;
splashOut = new SplashOutputDev(splashModeMono1, 1, gFalse, paperColor); splashOut = new SplashOutputDev(splashModeMono1, 1, gFalse, paperColor);
} else if (gray) { } else if (gray) {
paperColor[0] = 0xff; paperColor[0] = 0xff;
splashOut = new SplashOutputDev(splashModeMono8, 1, gFalse, paperColor); splashOut = new SplashOutputDev(splashModeMono8, 1, gFalse, paperColor);
#if SPLASH_CMYK #if SPLASH_CMYK
} else if (cmyk) { } else if (cmyk) {
paperColor[0] = paperColor[1] = paperColor[2] = paperColor[3] = 0; paperColor[0] = paperColor[1] = paperColor[2] = paperColor[3] = 0;
splashOut = new SplashOutputDev(splashModeCMYK8, 1, gFalse, paperColor); splashOut = new SplashOutputDev(splashModeCMYK8, 1, gFalse, paperColor);
#endif // SPLASH_CMYK #endif // SPLASH_CMYK
} else { } else {
paperColor[0] = paperColor[1] = paperColor[2] = 0xff; paperColor[0] = paperColor[1] = paperColor[2] = 0xff;
splashOut = new SplashOutputDev(splashModeRGB8, 1, gFalse, paperColor); splashOut = new SplashOutputDev(splashModeRGB8, 1, gFalse, paperColor);
} }
splashOut->startDoc(doc->getXRef()); splashOut->startDoc(doc->getXRef());
for (pg = firstPage; pg <= lastPage; ++pg) { for (pg = firstPage; pg <= lastPage; ++pg) {
if (printStatusInfo) {
fflush(stderr);
printf("[processing page %d]\n", pg);
fflush(stdout);
}
doc->displayPage(splashOut, pg, resolution, resolution, rotate, doc->displayPage(splashOut, pg, resolution, resolution, rotate,
gFalse, gTrue, gFalse); gFalse, gTrue, gFalse);
if (!strcmp(ppmRoot, "-")) { if (toStdout) {
#ifdef _WIN32 #ifdef _WIN32
_setmode(_fileno(stdout), _O_BINARY); _setmode(_fileno(stdout), _O_BINARY);
#endif #endif
splashOut->getBitmap()->writePNMFile(stdout); splashOut->getBitmap()->writePNMFile(stdout);
} else { } else {
ppmFile = GString::format("{0:s}-{1:06d}.{2:s}", ppmRoot, pg, ext); ppmFile = GString::format("{0:s}-{1:06d}.{2:s}", ppmRoot, pg, ext);
splashOut->getBitmap()->writePNMFile(ppmFile->getCString()); splashOut->getBitmap()->writePNMFile(ppmFile->getCString());
delete ppmFile; delete ppmFile;
} }
} }
 End of changes. 9 change blocks. 
2 lines changed or deleted 22 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)