"Fossies" - the Fresh Open Source Software Archive  

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

About: Xpdf is a PDF viewer for X.

pdftopng.cc  (xpdf-4.03):pdftopng.cc  (xpdf-4.04)
skipping to change at line 28 skipping to change at line 28
#include "gmempp.h" #include "gmempp.h"
#include "parseargs.h" #include "parseargs.h"
#include "GString.h" #include "GString.h"
#include "gfile.h" #include "gfile.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;
static GBool pngAlpha = gFalse; static GBool pngAlpha = gFalse;
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 74 skipping to change at line 76
"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 105 skipping to change at line 109
static void finishPNG(png_structp *png, png_infop *pngInfo); static void finishPNG(png_structp *png, png_infop *pngInfo);
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
PDFDoc *doc; PDFDoc *doc;
char *fileName; char *fileName;
char *pngRoot; char *pngRoot;
GString *pngFile; GString *pngFile;
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; int pg;
png_structp png; png_structp png;
png_infop pngInfo; png_infop pngInfo;
FILE *f; FILE *f;
exitCode = 99; exitCode = 99;
// parse args // parse args
fixCommandLine(&argc, &argv); fixCommandLine(&argc, &argv);
skipping to change at line 137 skipping to change at line 141
fprintf(stderr, "%s\n", xpdfCopyright); fprintf(stderr, "%s\n", xpdfCopyright);
if (!printVersion) { if (!printVersion) {
printUsage("pdftopng", "<PDF-file> <PNG-root>", argDesc); printUsage("pdftopng", "<PDF-file> <PNG-root>", argDesc);
} }
goto err0; goto err0;
} }
fileName = argv[1]; fileName = argv[1];
pngRoot = argv[2]; pngRoot = 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 187 skipping to change at line 198
exitCode = 1; exitCode = 1;
goto err1; goto err1;
} }
// get page range // get page range
if (firstPage < 1) if (firstPage < 1)
firstPage = 1; firstPage = 1;
if (lastPage < 1 || lastPage > doc->getNumPages()) if (lastPage < 1 || lastPage > doc->getNumPages())
lastPage = doc->getNumPages(); lastPage = doc->getNumPages();
// check for stdout; set up to print per-page status info
toStdout = !strcmp(pngRoot, "-");
printStatusInfo = !toStdout && globalParams->getPrintStatusInfo();
// write PNG files // write PNG 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);
} 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);
} }
if (pngAlpha) { if (pngAlpha) {
splashOut->setNoComposite(gTrue); splashOut->setNoComposite(gTrue);
} }
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 (mono) { if (mono) {
if (!strcmp(pngRoot, "-")) { if (toStdout) {
f = stdout; f = stdout;
#ifdef _WIN32 #ifdef _WIN32
_setmode(_fileno(f), _O_BINARY); _setmode(_fileno(f), _O_BINARY);
#endif #endif
} else { } else {
pngFile = GString::format("{0:s}-{1:06d}.png", pngRoot, pg); pngFile = GString::format("{0:s}-{1:06d}.png", pngRoot, pg);
if (!(f = openFile(pngFile->getCString(), "wb"))) { if (!(f = openFile(pngFile->getCString(), "wb"))) {
exit(2); exit(2);
} }
delete pngFile; delete pngFile;
} }
setupPNG(&png, &pngInfo, f, setupPNG(&png, &pngInfo, f,
1, PNG_COLOR_TYPE_GRAY, resolution, splashOut->getBitmap()); 1, PNG_COLOR_TYPE_GRAY, resolution, splashOut->getBitmap());
writePNGData(png, splashOut->getBitmap()); writePNGData(png, splashOut->getBitmap());
finishPNG(&png, &pngInfo); finishPNG(&png, &pngInfo);
fclose(f); fclose(f);
} else if (gray) { } else if (gray) {
if (!strcmp(pngRoot, "-")) { if (toStdout) {
f = stdout; f = stdout;
#ifdef _WIN32 #ifdef _WIN32
_setmode(_fileno(f), _O_BINARY); _setmode(_fileno(f), _O_BINARY);
#endif #endif
} else { } else {
pngFile = GString::format("{0:s}-{1:06d}.png", pngRoot, pg); pngFile = GString::format("{0:s}-{1:06d}.png", pngRoot, pg);
if (!(f = openFile(pngFile->getCString(), "wb"))) { if (!(f = openFile(pngFile->getCString(), "wb"))) {
exit(2); exit(2);
} }
delete pngFile; delete pngFile;
} }
setupPNG(&png, &pngInfo, f, setupPNG(&png, &pngInfo, f,
8, pngAlpha ? PNG_COLOR_TYPE_GRAY_ALPHA : PNG_COLOR_TYPE_GRAY, 8, pngAlpha ? PNG_COLOR_TYPE_GRAY_ALPHA : PNG_COLOR_TYPE_GRAY,
resolution, splashOut->getBitmap()); resolution, splashOut->getBitmap());
writePNGData(png, splashOut->getBitmap()); writePNGData(png, splashOut->getBitmap());
finishPNG(&png, &pngInfo); finishPNG(&png, &pngInfo);
fclose(f); fclose(f);
} else { // RGB } else { // RGB
if (!strcmp(pngRoot, "-")) { if (toStdout) {
f = stdout; f = stdout;
#ifdef _WIN32 #ifdef _WIN32
_setmode(_fileno(f), _O_BINARY); _setmode(_fileno(f), _O_BINARY);
#endif #endif
} else { } else {
pngFile = GString::format("{0:s}-{1:06d}.png", pngRoot, pg); pngFile = GString::format("{0:s}-{1:06d}.png", pngRoot, pg);
if (!(f = openFile(pngFile->getCString(), "wb"))) { if (!(f = openFile(pngFile->getCString(), "wb"))) {
exit(2); exit(2);
} }
delete pngFile; delete pngFile;
 End of changes. 11 change blocks. 
4 lines changed or deleted 24 lines changed or added

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