⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pdftopbm.cc

📁 source code: Covert TXT to PDF
💻 CC
字号:
//========================================================================//// pdftopbm.cc//// Copyright 1998-2002 Glyph & Cog, LLC////========================================================================#include <aconf.h>#include <stdio.h>#include <stdlib.h>#include <stddef.h>#include <string.h>#include "parseargs.h"#include "GString.h"#include "gmem.h"#include "GlobalParams.h"#include "Object.h"#include "Stream.h"#include "Array.h"#include "Dict.h"#include "XRef.h"#include "Catalog.h"#include "Page.h"#include "PDFDoc.h"#include "PBMOutputDev.h"#include "Error.h"#include "config.h"static int firstPage = 1;static int lastPage = 0;static int resolution = 150;static char ownerPassword[33] = "";static char userPassword[33] = "";static GBool quiet = gFalse;static char cfgFileName[256] = "";static GBool printVersion = gFalse;static GBool printHelp = gFalse;static ArgDesc argDesc[] = {  {"-f",      argInt,      &firstPage,     0,   "first page to print"},  {"-l",      argInt,      &lastPage,      0,   "last page to print"},  {"-r",      argInt,      &resolution,    0,   "resolution, in DPI (default is 150)"},  {"-opw",    argString,   ownerPassword,  sizeof(ownerPassword),   "owner password (for encrypted files)"},  {"-upw",    argString,   userPassword,   sizeof(userPassword),   "user password (for encrypted files)"},  {"-q",      argFlag,     &quiet,         0,   "don't print any messages or errors"},  {"-cfg",        argString,      cfgFileName,    sizeof(cfgFileName),   "configuration file to use in place of .xpdfrc"},  {"-v",      argFlag,     &printVersion,  0,   "print copyright and version info"},  {"-h",      argFlag,     &printHelp,     0,   "print usage information"},  {"-help",   argFlag,     &printHelp,     0,   "print usage information"},  {"--help",  argFlag,     &printHelp,     0,   "print usage information"},  {"-?",      argFlag,     &printHelp,     0,   "print usage information"},  {NULL}};int main(int argc, char *argv[]) {  PDFDoc *doc;  GString *fileName;  char *pbmRoot;  GString *ownerPW, *userPW;  PBMOutputDev *pbmOut;  GBool ok;  int exitCode;  exitCode = 99;  // parse args  ok = parseArgs(argDesc, &argc, argv);  if (!ok || argc != 3 || printVersion || printHelp) {    fprintf(stderr, "pdftopbm version %s\n", xpdfVersion);    fprintf(stderr, "%s\n", xpdfCopyright);    if (!printVersion) {      printUsage("pdftopbm", "<PDF-file> <PBM-root>", argDesc);    }    goto err0;  }  fileName = new GString(argv[1]);  pbmRoot = argv[2];  // read config file  globalParams = new GlobalParams(cfgFileName);  if (quiet) {    globalParams->setErrQuiet(quiet);  }  // open PDF file  if (ownerPassword[0]) {    ownerPW = new GString(ownerPassword);  } else {    ownerPW = NULL;  }  if (userPassword[0]) {    userPW = new GString(userPassword);  } else {    userPW = NULL;  }  doc = new PDFDoc(fileName, ownerPW, userPW);  if (userPW) {    delete userPW;  }  if (ownerPW) {    delete ownerPW;  }  if (!doc->isOk()) {    exitCode = 1;    goto err1;  }  // get page range  if (firstPage < 1)    firstPage = 1;  if (lastPage < 1 || lastPage > doc->getNumPages())    lastPage = doc->getNumPages();  // write PBM files  pbmOut = PBMOutputDev::makePBMOutputDev(NULL, pbmRoot);  pbmOut->startDoc(doc->getXRef());  doc->displayPages(pbmOut, firstPage, lastPage, resolution, 0, gFalse);  PBMOutputDev::killPBMOutputDev(pbmOut);  exitCode = 0;  // clean up err1:  delete doc;  delete globalParams; err0:  // check for memory leaks  Object::memCheck(stderr);  gMemReport(stderr);  return exitCode;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -