//
// pdftops.cc
//
-// Copyright 1996-2002 Glyph & Cog, LLC
+// Copyright 1996-2003 Glyph & Cog, LLC
//
//========================================================================
static int paperWidth = 0;
static int paperHeight = 0;
static GBool duplex = gFalse;
-static char ownerPassword[33] = "";
-static char userPassword[33] = "";
+static char ownerPassword[33] = "\001";
+static char userPassword[33] = "\001";
static GBool quiet = gFalse;
static char cfgFileName[256] = "";
static GBool printVersion = gFalse;
{"-noembcidtt", argFlag, &noEmbedCIDTTFonts, 0,
"don't embed CID TrueType fonts"},
{"-paper", argString, paperSize, sizeof(paperSize),
- "paper size (letter, legal, A4, A3)"},
+ "paper size (letter, legal, A4, A3, match)"},
{"-paperw", argInt, &paperWidth, 0,
"paper width, in points"},
{"-paperh", argInt, &paperHeight, 0,
PSOutputDev *psOut;
GBool ok;
char *p;
+ int exitCode;
+
+ exitCode = 99;
// parse args
ok = parseArgs(argDesc, &argc, argv);
if (paperSize[0]) {
if (!globalParams->setPSPaperSize(paperSize)) {
fprintf(stderr, "Invalid paper size\n");
- exit(1);
+ delete fileName;
+ goto err0;
}
} else {
if (paperWidth) {
}
// open PDF file
- if (ownerPassword[0]) {
+ if (ownerPassword[0] != '\001') {
ownerPW = new GString(ownerPassword);
} else {
ownerPW = NULL;
}
- if (userPassword[0]) {
+ if (userPassword[0] != '\001') {
userPW = new GString(userPassword);
} else {
userPW = NULL;
delete ownerPW;
}
if (!doc->isOk()) {
+ exitCode = 1;
goto err1;
}
// check for print permission
if (!doc->okToPrint()) {
error(-1, "Printing this document is not allowed.");
+ exitCode = 3;
goto err1;
}
psOut = new PSOutputDev(psFileName->getCString(), doc->getXRef(),
doc->getCatalog(), firstPage, lastPage, mode);
if (psOut->isOk()) {
- doc->displayPages(psOut, firstPage, lastPage, 72, 0, gFalse);
+ doc->displayPages(psOut, firstPage, lastPage, 72, 72, 0, gFalse);
+ } else {
+ delete psOut;
+ exitCode = 2;
+ goto err2;
}
delete psOut;
+ exitCode = 0;
+
// clean up
err2:
delete psFileName;
err1:
delete doc;
+ err0:
delete globalParams;
// check for memory leaks
Object::memCheck(stderr);
gMemReport(stderr);
- return 0;
+ return exitCode;
}