]> www.fi.muni.cz Git - evince.git/commitdiff
Totaly re-hash stream architecture ... again :-)
authorMichael Meeks <mmeeks@src.gnome.org>
Thu, 19 Aug 1999 17:57:59 +0000 (17:57 +0000)
committerMichael Meeks <mmeeks@src.gnome.org>
Thu, 19 Aug 1999 17:57:59 +0000 (17:57 +0000)
Now we can compile but not run auxiliary utils.

16 files changed:
pdf/xpdf/ChangeLog
pdf/xpdf/Makefile.am
pdf/xpdf/Object.h
pdf/xpdf/PDFDoc.cc
pdf/xpdf/PDFDoc.h
pdf/xpdf/Parser.cc
pdf/xpdf/Stream.cc
pdf/xpdf/Stream.h
pdf/xpdf/XRef.cc
pdf/xpdf/XRef.h
pdf/xpdf/bonobo-image-x-pdf.cc
pdf/xpdf/pdfimages.cc
pdf/xpdf/pdfinfo.cc
pdf/xpdf/pdftopbm.cc
pdf/xpdf/pdftops.cc
pdf/xpdf/pdftotext.cc

index b31f44debcc930fbd650151e0a565ed10f386bd2..bc9f82c46f1d520528d19d46a801745815ca4260 100644 (file)
@@ -1,3 +1,10 @@
+1999-08-19  Michael Meeks  <michael@imaginator.com>
+
+       * PDFDoc.cc: Altered to read / write lines.
+
+       * PDFDoc.cc: Move FileStream::checkHeader so its called
+       in FileStream constructor.
+
 1999-08-18  Michael Meeks  <michael@imaginator.com>
 
        * gpdf.cc: cloned from test-container.
index 606479c49a3cedac3eee440c54d8d0f9e67289cf..3c95d80c6f478d36a4749c12db5f789ed515750a 100644 (file)
@@ -11,8 +11,7 @@ else
 gui = xpdf
 endif
 
-#bin_PROGRAMS = pdftops pdftotext pdfinfo pdftopbm pdfimages $(gui) bonobo-image-x-pdf
-bin_PROGRAMS = bonobo-image-x-pdf gpdf
+bin_PROGRAMS = pdftops pdftotext pdfinfo pdftopbm pdfimages $(gui) bonobo-image-x-pdf
 
 common_sources =               \
        Array.cc                \
@@ -57,8 +56,8 @@ gpdf_LDADD =                  \
 
 bonobo_image_x_pdf_SOURCES =   \
        $(common_sources)       \
-       BonoboFile.h            \
-       BonoboFile.cc           \
+       BonoboStream.h          \
+       BonoboStream.cc         \
        GOutputDev.cc           \
        bonobo-image-x-pdf.cc
 
index 305d28a3e71a048cb13723afc0a829a706269236..cb7a4180263837e6b6fae740325cb3e376c63333 100644 (file)
@@ -18,7 +18,6 @@
 #include "gtypes.h"
 #include "gmem.h"
 #include "GString.h"
-#include "BaseFile.h"
 
 class Array;
 class Dict;
@@ -178,7 +177,7 @@ public:
   char *streamGetLine(char *buf, int size);
   int streamGetPos();
   void streamSetPos(int pos);
-  BaseFile streamGetFile();
+/*  BaseFile streamGetFile();*/
   Dict *streamGetDict();
 
   // Output.
@@ -291,8 +290,8 @@ inline int Object::streamGetPos()
 inline void Object::streamSetPos(int pos)
   { stream->setPos(pos); }
 
-inline BaseFile Object::streamGetFile()
-  { return stream->getFile(); }
+/*inline BaseFile Object::streamGetFile()
+  { return stream->getFile(); }*/
 
 inline Dict *Object::streamGetDict()
   { return stream->getDict(); }
index 599ceb1047256dbd9f6be5efdaf53a1cb7020e5f..e2dcd5495d9b407b7c5a47d21f0341d27ddf4f27 100644 (file)
 // PDFDoc
 //------------------------------------------------------------------------
 
-PDFDoc::PDFDoc(BaseFile file1, GString *fileName1) {
-  FileStream *str;
+PDFDoc::PDFDoc(Stream *str1, GString *fileName1) {
   Object catObj;
-  Object obj;
 
   // setup
   ok = gFalse;
   catalog = NULL;
   xref = NULL;
-  file = NULL;
   links = NULL;
 
   fileName = fileName1;
-  file = file1;
-  if (!file)
+  if (!str1)
     return;
 
   // create stream
-  obj.initNull();
-  str  = new FileStream(file, 0, -1, &obj);
+/*  obj.initNull(); */
+/*  str  = new FileStream(file, 0, -1, &obj); */
+  str = str1;
 
   // check header
-  str->checkHeader();
+/*  str->checkHeader(); FIXME */
 
   // read xref table
   xref = new XRef(str);
-  delete str;
+/*  delete str; */
   if (!xref->isOk()) {
     error(-1, "Couldn't read xref table");
     return;
@@ -79,8 +76,10 @@ PDFDoc::~PDFDoc() {
     delete catalog;
   if (xref)
     delete xref;
-  if (file)
-    bfclose(file);
+  if (str) {
+    delete (str);
+    str = NULL;
+  }
   if (fileName)
     delete fileName;
   if (links)
@@ -133,9 +132,9 @@ GBool PDFDoc::saveAs(GString *name) {
     error(-1, "Couldn't open file '%s'", name->getCString());
     return gFalse;
   }
-  brewind(file);
-  while ((n = bfread(buf, 1, sizeof(buf), file)) > 0)
-    fwrite(buf, 1, n, f);
+  str->reset();
+  while (str->getLine (buf, 4096))
+    fputs (buf, f);
   fclose(f);
   return gTrue;
 }
index c5a247032350f21fd7ed2e3dd673d36e8a21a76a..f76cfaf891f6e5234515e5c44089abc5e30b06e9 100644 (file)
@@ -15,7 +15,6 @@
 
 #include <stdio.h>
 #include "Link.h"
-#include "BaseFile.h"
 
 class GString;
 class XRef;
@@ -32,7 +31,7 @@ class LinkDest;
 class PDFDoc {
 public:
 
-  PDFDoc(BaseFile file, GString *fileName1);
+  PDFDoc(Stream *str1, GString *fileName1);
   ~PDFDoc();
 
   // Was PDF document successfully opened?
@@ -97,7 +96,7 @@ private:
   void getLinks(int page);
 
   GString *fileName;
-  BaseFile file;
+  Stream  *str;
   XRef *xref;
   Catalog *catalog;
   Links *links;
index 49968f32564c2636cc97c13ab5b34ae1aaefa8cb..0b61002c4ca56391817d4e25ff043407089f83f8 100644 (file)
@@ -126,7 +126,7 @@ Stream *Parser::makeStream(Object *dict) {
   }
 
   // make base stream
-  str = new FileStream(lexer->getStream()->getFile(), pos, length, dict);
+  str = lexer->getStream()->subStream (pos, length, dict);
 
   // get filters
   str = str->addFilters(dict);
index 6e52d791c5a6d0c8f1c9fe7a2091f943204bbb28..c15d517033f81d20e2b95b3f396ee150e989dd53 100644 (file)
@@ -511,8 +511,76 @@ GBool StreamPredictor::getNextLine() {
 // FileStream
 //------------------------------------------------------------------------
 
-FileStream::FileStream(BaseFile f1, int start1, int length1, Object *dict1) {
+GBool FileStream::checkHeader() {
+  char hdrBuf[headerSearchSize+1];
+  char *p;
+  double version;
+  int i;
+
+  for (i = 0; i < headerSearchSize; ++i)
+    hdrBuf[i] = getChar();
+  hdrBuf[headerSearchSize] = '\0';
+  for (i = 0; i < headerSearchSize - 5; ++i) {
+    if (!strncmp(&hdrBuf[i], "%PDF-", 5))
+      break;
+  }
+  if (i >= headerSearchSize - 5) {
+    error(-1, "May not be a PDF file (continuing anyway)");
+    return gFalse;
+  }
+  start += i;
+  p = strtok(&hdrBuf[i+5], " \t\n\r");
+  version = atof(p);
+  if (!(hdrBuf[i+5] >= '0' && hdrBuf[i+5] <= '9') ||
+      version > pdfVersionNum + 0.0001) {
+    error(getPos(), "PDF version %s -- xpdf supports version %s"
+         " (continuing anyway)", p, pdfVersion);
+    return gFalse;
+  }
+  return gTrue;
+}
+
+FILE *fileOpen (GString *fileName1) {
+  GString *fileName2;
+  // try to open file
+  fileName2 = NULL;
+  FILE *file;
+
+#ifdef VMS
+  if (!(file = fopen(fileName->getCString(), "rb", "ctx=stm"))) {
+    error(-1, "Couldn't open file '%s'", fileName->getCString());
+    return NULL;
+  }
+#else
+  if (!(file = fopen(fileName1->getCString(), "rb"))) {
+    fileName2 = fileName1->copy();
+    fileName2->lowerCase();
+    if (!(file = fopen(fileName2->getCString(), "rb"))) {
+      fileName2->upperCase();
+      if (!(file = fopen(fileName2->getCString(), "rb"))) {
+       error(-1, "Couldn't open file '%s'", fileName1->getCString());
+       delete fileName2;
+       return NULL;
+      }
+    }
+    delete fileName2;
+  }
+#endif
+  return file;
+}
+
+FileStream::FileStream(FILE *f1) {
   f = f1;
+  start = 0;
+  length = -1;
+  bufPtr = bufEnd = buf;
+  bufPos = start;
+  savePos = -1;
+  dict.initNull();
+  checkHeader();
+}
+
+Stream *FileStream::subStream (int start1, int length1, Object *dict1) {
   start = start1;
   length = length1;
   bufPtr = bufEnd = buf;
@@ -523,13 +591,13 @@ FileStream::FileStream(BaseFile f1, int start1, int length1, Object *dict1) {
 
 FileStream::~FileStream() {
   if (savePos >= 0)
-    bfseek(f, savePos, SEEK_SET);
+    fseek(f, savePos, SEEK_SET);
   dict.free();
 }
 
 void FileStream::reset() {
-  savePos = (int)bftell(f);
-  bfseek(f, start, SEEK_SET);
+  savePos = (int)ftell(f);
+  fseek(f, start, SEEK_SET);
   bufPtr = bufEnd = buf;
   bufPos = start;
 }
@@ -545,7 +613,7 @@ GBool FileStream::fillBuf() {
     n = start + length - bufPos;
   else
     n = 256;
-  n = bfread(buf, 1, n, f);
+  n = fread(buf, 1, n, f);
   bufEnd = buf + n;
   if (bufPtr >= bufEnd)
     return gFalse;
@@ -556,48 +624,19 @@ void FileStream::setPos(int pos1) {
   long size;
 
   if (pos1 >= 0) {
-    bfseek(f, pos1, SEEK_SET);
+    fseek(f, pos1, SEEK_SET);
     bufPos = pos1;
   } else {
-    bfseek(f, 0, SEEK_END);
-    size = bftell(f);
+    fseek(f, 0, SEEK_END);
+    size = ftell(f);
     if (pos1 < -size)
       pos1 = (int)(-size);
-    bfseek(f, pos1, SEEK_END);
-    bufPos = (int)bftell(f);
+    fseek(f, pos1, SEEK_END);
+    bufPos = (int)ftell(f);
   }
   bufPtr = bufEnd = buf;
 }
 
-GBool FileStream::checkHeader() {
-  char hdrBuf[headerSearchSize+1];
-  char *p;
-  double version;
-  int i;
-
-  for (i = 0; i < headerSearchSize; ++i)
-    hdrBuf[i] = getChar();
-  hdrBuf[headerSearchSize] = '\0';
-  for (i = 0; i < headerSearchSize - 5; ++i) {
-    if (!strncmp(&hdrBuf[i], "%PDF-", 5))
-      break;
-  }
-  if (i >= headerSearchSize - 5) {
-    error(-1, "May not be a PDF file (continuing anyway)");
-    return gFalse;
-  }
-  start += i;
-  p = strtok(&hdrBuf[i+5], " \t\n\r");
-  version = atof(p);
-  if (!(hdrBuf[i+5] >= '0' && hdrBuf[i+5] <= '9') ||
-      version > pdfVersionNum + 0.0001) {
-    error(getPos(), "PDF version %s -- xpdf supports version %s"
-         " (continuing anyway)", p, pdfVersion);
-    return gFalse;
-  }
-  return gTrue;
-}
-
 //------------------------------------------------------------------------
 // SubStream
 //------------------------------------------------------------------------
index 14e68eaa3f181ee7797f4cf35ad03d873140300b..06af0d7ac3ffb4a3f740ee5a5e4bf6c3f7c3f666 100644 (file)
@@ -16,7 +16,6 @@
 #include <stdio.h>
 #include "gtypes.h"
 #include "Object.h"
-#include "BaseFile.h"
 
 //------------------------------------------------------------------------
 
@@ -83,8 +82,11 @@ public:
   // Get the base FileStream or SubStream of this stream.
   virtual Stream *getBaseStream() = 0;
 
-  // Get the base file of this stream.
-  virtual BaseFile getFile() = 0;
+  // Get a substream of this stream.
+  virtual Stream *subStream (int start1, int length1, Object *dict1) = 0;
+
+  // Get start offset of a stream's data.
+  virtual int     getStart  () = 0;
 
   // Get the dictionary associated with this stream.
   virtual Dict *getDict() = 0;
@@ -175,10 +177,12 @@ private:
 // FileStream
 //------------------------------------------------------------------------
 
+// Portable pdf open helper function.
+extern FILE *fileOpen (GString *fileName1);
+
 class FileStream: public Stream {
 public:
-
-  FileStream(BaseFile f1, int start1, int length1, Object *dict1);
+  FileStream(FILE *f1);
   virtual ~FileStream();
   virtual StreamKind getKind() { return strFile; }
   virtual void reset();
@@ -190,21 +194,16 @@ public:
   virtual void setPos(int pos1);
   virtual GBool isBinary(GBool last = gTrue) { return last; }
   virtual Stream *getBaseStream() { return this; }
-  virtual BaseFile getFile() { return f; }
+  virtual Stream *subStream (int start1, int length1, Object *dict1);
+  virtual int     getStart  () { return start; }
   virtual Dict *getDict() { return dict.getDict(); }
 
-  // Check for a PDF header on this stream.  Skip past some garbage
-  // if necessary.
-  GBool checkHeader();
-
-  // Get position of first byte of stream within the file.
-  int getStart() { return start; }
-
 private:
 
   GBool fillBuf();
+  GBool checkHeader();
 
-  BaseFile f;
+  FILE *f;
   int start;
   int length;
   char buf[256];
@@ -231,7 +230,9 @@ public:
   virtual int getPos() { return str->getPos(); }
   virtual GBool isBinary(GBool last = gTrue) { return last; }
   virtual Stream *getBaseStream() { return this; }
-  virtual BaseFile getFile() { return str->getFile(); }
+  virtual Stream *subStream (int start1, int length1, Object *dict1)
+    { return str->subStream (start1, length1, dict1); }
+  virtual int     getStart  () { return str->getStart (); }
   virtual Dict *getDict() { return dict.getDict(); }
 
 private:
@@ -258,7 +259,9 @@ public:
   virtual GString *getPSFilter(char *indent);
   virtual GBool isBinary(GBool last = gTrue);
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual BaseFile getFile() { return str->getFile(); }
+  virtual Stream *subStream (int start1, int length1, Object *dict1)
+    { return str->subStream (start1, length1, dict1); }
+  virtual int     getStart  () { return str->getStart (); }
   virtual Dict *getDict() { return str->getDict(); }
 
 private:
@@ -286,7 +289,9 @@ public:
   virtual GString *getPSFilter(char *indent);
   virtual GBool isBinary(GBool last = gTrue);
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual BaseFile getFile() { return str->getFile(); }
+  virtual Stream *subStream (int start1, int length1, Object *dict1)
+    { return str->subStream (start1, length1, dict1); }
+  virtual int     getStart  () { return str->getStart (); }
   virtual Dict *getDict() { return str->getDict(); }
 
 private:
@@ -317,7 +322,9 @@ public:
   virtual GString *getPSFilter(char *indent);
   virtual GBool isBinary(GBool last = gTrue);
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual BaseFile getFile() { return str->getFile(); }
+  virtual Stream *subStream (int start1, int length1, Object *dict1)
+    { return str->subStream (start1, length1, dict1); }
+  virtual int     getStart  () { return str->getStart (); }
   virtual Dict *getDict() { return str->getDict(); }
 
 private:
@@ -359,7 +366,9 @@ public:
   virtual GString *getPSFilter(char *indent);
   virtual GBool isBinary(GBool last = gTrue);
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual BaseFile getFile() { return str->getFile(); }
+  virtual Stream *subStream (int start1, int length1, Object *dict1)
+    { return str->subStream (start1, length1, dict1); }
+  virtual int     getStart  () { return str->getStart (); }
   virtual Dict *getDict() { return str->getDict(); }
 
 private:
@@ -395,7 +404,9 @@ public:
   virtual GString *getPSFilter(char *indent);
   virtual GBool isBinary(GBool last = gTrue);
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual BaseFile getFile() { return str->getFile(); }
+  virtual Stream *subStream (int start1, int length1, Object *dict1)
+    { return str->subStream (start1, length1, dict1); }
+  virtual int     getStart  () { return str->getStart (); }
   virtual Dict *getDict() { return str->getDict(); }
 
 private:
@@ -462,7 +473,9 @@ public:
   virtual GString *getPSFilter(char *indent);
   virtual GBool isBinary(GBool last = gTrue);
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual BaseFile getFile() { return str->getFile(); }
+  virtual Stream *subStream (int start1, int length1, Object *dict1)
+    { return str->subStream (start1, length1, dict1); }
+  virtual int     getStart  () { return str->getStart (); }
   virtual Dict *getDict() { return str->getDict(); }
   Stream *getRawStream() { return str; }
 
@@ -553,7 +566,9 @@ public:
   virtual GString *getPSFilter(char *indent);
   virtual GBool isBinary(GBool last = gTrue);
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual BaseFile getFile() { return str->getFile(); }
+  virtual Stream *subStream (int start1, int length1, Object *dict1)
+    { return str->subStream (start1, length1, dict1); }
+  virtual int     getStart  () { return str->getStart (); }
   virtual Dict *getDict() { return str->getDict(); }
 
 private:
@@ -607,7 +622,9 @@ public:
   virtual GString *getPSFilter(char *indent)  { return NULL; }
   virtual GBool isBinary(GBool last = gTrue) { return gFalse; }
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual BaseFile getFile() { return str->getFile(); }
+  virtual Stream *subStream (int start1, int length1, Object *dict1)
+    { return str->subStream (start1, length1, dict1); }
+  virtual int     getStart  () { return str->getStart (); }
   virtual Dict *getDict() { return str->getDict(); }
 
 private:
@@ -632,7 +649,9 @@ public:
   virtual GString *getPSFilter(char *indent) { return NULL; }
   virtual GBool isBinary(GBool last = gTrue) { return gFalse; }
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual BaseFile getFile() { return str->getFile(); }
+  virtual Stream *subStream (int start1, int length1, Object *dict1)
+    { return str->subStream (start1, length1, dict1); }
+  virtual int     getStart  () { return str->getStart (); }
   virtual Dict *getDict() { return str->getDict(); }
   virtual GBool isEncoder() { return gTrue; }
 
@@ -662,7 +681,9 @@ public:
   virtual GString *getPSFilter(char *indent) { return NULL; }
   virtual GBool isBinary(GBool last = gTrue) { return gFalse; }
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual BaseFile getFile() { return str->getFile(); }
+  virtual Stream *subStream (int start1, int length1, Object *dict1)
+    { return str->subStream (start1, length1, dict1); }
+  virtual int     getStart  () { return str->getStart (); }
   virtual Dict *getDict() { return str->getDict(); }
   virtual GBool isEncoder() { return gTrue; }
 
@@ -697,7 +718,9 @@ public:
   virtual GString *getPSFilter(char *indent) { return NULL; }
   virtual GBool isBinary(GBool last = gTrue) { return gFalse; }
   virtual Stream *getBaseStream() { return str->getBaseStream(); }
-  virtual BaseFile getFile() { return str->getFile(); }
+  virtual Stream *subStream (int start1, int length1, Object *dict1)
+    { return str->subStream (start1, length1, dict1); }
+  virtual int     getStart  () { return str->getStart (); }
   virtual Dict *getDict() { return str->getDict(); }
   virtual GBool isEncoder() { return gTrue; }
 
index cc9bee8040a19f1b7d2179d18ce4f013b35baae7..c725a4a3c74d3b9c9d5bb38ee070336a49343cb3 100644 (file)
@@ -38,7 +38,7 @@ XRef *xref = NULL;
 // XRef
 //------------------------------------------------------------------------
 
-XRef::XRef(FileStream *str) {
+XRef::XRef(Stream *str1) {
   XRef *oldXref;
   int pos;
   int i;
@@ -53,7 +53,7 @@ XRef::XRef(FileStream *str) {
   xref = NULL;
 
   // read the trailer
-  file = str->getFile();
+  str = str1;
   start = str->getStart();
   pos = readTrailer(str);
 
@@ -105,7 +105,7 @@ XRef::~XRef() {
 
 // Read startxref position, xref table size, and root.  Returns
 // first xref position.
-int XRef::readTrailer(FileStream *str) {
+int XRef::readTrailer(Stream *str) {
   Parser *parser;
   Object obj;
   char buf[xrefSearchSize+1];
@@ -166,7 +166,7 @@ int XRef::readTrailer(FileStream *str) {
 
   // read trailer dict
   obj.initNull();
-  parser = new Parser(new Lexer(new FileStream(file, start + pos1, -1, &obj)));
+  parser = new Parser(new Lexer(str->subStream (start + pos1, -1, &obj)));
   parser->getObj(&trailerDict);
   if (trailerDict.isDict()) {
     trailerDict.dictLookupNF("Size", &obj);
@@ -193,7 +193,7 @@ int XRef::readTrailer(FileStream *str) {
 }
 
 // Read an xref table and the prev pointer from the trailer.
-GBool XRef::readXRef(FileStream *str, int *pos) {
+GBool XRef::readXRef(Stream *str, int *pos) {
   Parser *parser;
   Object obj, obj2;
   char s[20];
@@ -258,8 +258,7 @@ GBool XRef::readXRef(FileStream *str, int *pos) {
 
   // read prev pointer from trailer dictionary
   obj.initNull();
-  parser = new Parser(new Lexer(
-    new FileStream(file, str->getPos(), -1, &obj)));
+  parser = new Parser(new Lexer(str->subStream (str->getPos(), -1, &obj)));
   parser->getObj(&obj);
   if (!obj.isCmd("trailer"))
     goto err1;
@@ -288,7 +287,7 @@ GBool XRef::readXRef(FileStream *str, int *pos) {
 }
 
 // Attempt to construct an xref table for a damaged file.
-GBool XRef::constructXRef(FileStream *str) {
+GBool XRef::constructXRef(Stream *str) {
   Parser *parser;
   Object obj;
   char buf[256];
@@ -312,8 +311,7 @@ GBool XRef::constructXRef(FileStream *str) {
     // got trailer dictionary
     if (!strncmp(p, "trailer", 7)) {
       obj.initNull();
-      parser = new Parser(new Lexer(
-                new FileStream(file, start + pos + 8, -1, &obj)));
+      parser = new Parser(new Lexer(str->subStream(start + pos + 8, -1, &obj)));
       if (!trailerDict.isNone())
        trailerDict.free();
       parser->getObj(&trailerDict);
@@ -416,8 +414,7 @@ Object *XRef::fetch(int num, int gen, Object *obj) {
   e = &entries[num];
   if (e->gen == gen && e->offset >= 0) {
     obj1.initNull();
-    parser = new Parser(new Lexer(
-      new FileStream(file, start + e->offset, -1, &obj1)));
+    parser = new Parser(new Lexer(str->subStream(start + e->offset, -1, &obj1)));
     parser->getObj(&obj1);
     parser->getObj(&obj2);
     parser->getObj(&obj3);
index e8874c7ecf683d259ae1981a6b05417510700055..7ef411dddde1ded811638492682edea8e263f118 100644 (file)
@@ -16,7 +16,6 @@
 #include <stdio.h>
 #include "gtypes.h"
 #include "Object.h"
-#include "BaseFile.h"
 
 class Dict;
 class FileStream;
@@ -35,7 +34,7 @@ class XRef {
 public:
 
   // Constructor.  Read xref table from stream.
-  XRef(FileStream *str);
+  XRef(Stream *str);
 
   // Destructor.
   ~XRef();
@@ -61,7 +60,7 @@ public:
 
 private:
 
-  BaseFile file;               // input file
+  Stream *str;                 // input file
   int start;                   // offset in file (to allow for garbage
                                //   at beginning of file)
   XRefEntry *entries;          // xref entries
@@ -70,9 +69,9 @@ private:
   GBool ok;                    // true if xref table is valid
   Object trailerDict;          // trailer dictionary
 
-  int readTrailer(FileStream *str);
-  GBool readXRef(FileStream *str, int *pos);
-  GBool constructXRef(FileStream *str);
+  int readTrailer(Stream *str);
+  GBool readXRef(Stream *str, int *pos);
+  GBool constructXRef(Stream *str);
   GBool checkEncrypted();
 };
 
index 4cb8b1d61f765dfe83f446cdc495a4abbee21785..a7ac11a0284f218748c2240237771c7bb1e14c06 100644 (file)
@@ -37,6 +37,7 @@ extern "C" {
 #include "Params.h"
 #include "Error.h"
 #include "config.h"
+#include "BonoboStream.h"
 
 GBool printCommands = gFalse;
 
@@ -214,7 +215,8 @@ load_image_from_stream (GnomePersistStream *ps, GNOME_Stream stream, void *data)
 
        printf ("Loading PDF from persiststream\n");
        bonobo_object_data->stream = stream;
-       bonobo_object_data->pdf = new PDFDoc (stream, new GString ("Bonobo.pdf"));
+       bonobo_object_data->pdf = new PDFDoc (new BonoboStream (stream),
+                                             new GString ("Bonobo.pdf"));
        printf ("Done load\n");
        if (!(bonobo_object_data->pdf->isOk())) {
          g_warning ("Duff pdf data\n");
index 9d7a484799381d07ba89695ba6fc729d78e5e4c7..3742249613ff95e030c683a3b87ba808d70f2079 100644 (file)
@@ -74,7 +74,7 @@ int main(int argc, char *argv[]) {
 
   // open PDF fihe
   xref = NULL;
-  doc = new PDFDoc(bxpdfopen(fileName), fileName);
+  doc = new PDFDoc(new FileStream(fileOpen(fileName)), fileName);
   if (!doc->isOk()) {
     goto err1;
   }
index 78664aa2ba482b896c7b3e9576081006587a57f3..510e12e7bba66dcfdbc70a501077f98da09b09e7 100644 (file)
@@ -61,7 +61,7 @@ int main(int argc, char *argv[]) {
 
   // open PDF file
   xref = NULL;
-  doc = new PDFDoc(bxpdfopen(fileName), fileName);
+  doc = new PDFDoc(new FileStream(fileOpen(fileName)), fileName);
   if (!doc->isOk())
     exit(1);
 
index 51adb491baa1057d47c99f68b5b1f26eca61914b..c77130e3f74a88412d3e752c88332271d393a500 100644 (file)
@@ -74,7 +74,7 @@ int main(int argc, char *argv[]) {
 
   // open PDF file
   xref = NULL;
-  doc = new PDFDoc(bxpdfopen(fileName), fileName);
+  doc = new PDFDoc(new FileStream (fileOpen (fileName)), fileName);
   if (!doc->isOk())
     exit(1);
 
index d79681e44c20c8b1997ffb530d2f03cf467b865c..07dca22d960bea6d65ff61cee84299ee210c2701 100644 (file)
@@ -61,6 +61,7 @@ int main(int argc, char *argv[]) {
   PDFDoc *doc;
   GString *fileName;
   GString *psFileName;
+  FILE *file;
   PSOutputDev *psOut;
   GBool ok;
   char *p;
@@ -87,7 +88,7 @@ int main(int argc, char *argv[]) {
 
   // open PDF file
   xref = NULL;
-  doc = new PDFDoc(bxpdfopen(fileName), fileName);
+  doc = new PDFDoc(new FileStream (fileOpen (fileName)), fileName);
   if (!doc->isOk()) {
     goto err1;
   }
index f0b2b3a8261ed999de9ed9d8b353fe793b0302e0..95ae83290eb787d121108f6aa03f09253a368861 100644 (file)
@@ -84,7 +84,7 @@ int main(int argc, char *argv[]) {
 
   // open PDF file
   xref = NULL;
-  doc = new PDFDoc(bxpdfopen(fileName), fileName);
+  doc = new PDFDoc(new FileStream (fileOpen(fileName)), fileName);
   if (!doc->isOk()) {
     goto err1;
   }