home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / programs / textual / pdf / Docs / xpdf_docs / CHANGES < prev    next >
Text File  |  1998-02-22  |  17KB  |  364 lines

  1. 0.2 (95-dec-12)
  2. ---------------
  3. First public release.
  4.  
  5.  
  6. 0.3 (96-jan-13)
  7. ---------------
  8. LZW patent workaround.
  9. Implemented inline images.
  10. Fixed (mostly) disjoint polygon fills.
  11. Added remote server stuff.
  12. Added page number on command line.
  13. Fixed problem with font encodings which caused character misalignment.
  14. Fixed inverted CCITT decoding and inverted image mask drawing.
  15. Now compiles under gcc 2.7.x (ignore those stupid 'unused parameter'
  16.   warnings).
  17. Many minor bug fixes and optimizations.
  18.  
  19.  
  20. 0.4 (96-apr-24)
  21. ---------------
  22. Implemented DCT filter.
  23. Implemented PostScript output; wrote pdftops program.
  24. Implemented links.
  25. Implemented font rotation -- I was wrong: X11R6 servers *do* support
  26.   font rotation (by specifying a matrix in place of a size).
  27. Added bindings for Home/End, Page Up/Down, arrow keys.
  28. Added initialZoom resource and -z option.
  29. Added geometry resource and -g option.
  30. Fixed image size off-by-one bug.
  31. Fixed bug where page content is reference to an array of streams.
  32. Cleaned up uninitialized variables which were causing random problems
  33.   on various platforms.
  34. Manually skip whitespace before calling atoi() for startxref.
  35. Replaced calls to XrmCombineFileDatabase() with calls to
  36.   XrmGetFileDatabase() and XrmMergeDatabases() so it will work under
  37.   older versions of X.
  38. Fixed problem with reading multiple xref tables in updated PDF files.
  39. Check for encryption and print appropriate error message.
  40. Rudimentary dithering of images.
  41. Fixed bug in CCITTFax filter (pass mode followed by horizontal mode).
  42. Optimized drawImage() and drawImageMask().
  43. Changed several things to ease porting:
  44.   - changed '__inline' to 'inline' (to adhere to the ANSI standard)
  45.   - surrounded interface/implementation pragmas with #ifdef _GNUC__
  46.   - got rid of empty array initializer lists
  47.   - moved Operator type definition from Gfx.cc to Gfx.h
  48.   - renamed String, uint, etc.
  49.   - ability to uncompress to file (NO_POPEN and USE_GZIP flags)
  50.   - added definitions of XK_Page_Up/Down and XPointer for old versions
  51.     of X
  52. For VMS port:
  53.   - use correct Xdefaults name for VMS, get rid of ltkGetHomeDir()
  54.   - added '#include <stddef.h>' before all X includes
  55.   - renamed files with multiple periods in their names
  56. Fixed window resizing infinite oscillation bug.
  57. Fixed problem with string-type (as opposed to stream-type) indexed
  58.   color space lookup tables (which are used in inline images).
  59. If an X font is not found, try smaller and then larger sizes (this is
  60.   useful for old or broken X servers which can't scale bitmap fonts).
  61. Added -rgb (color cube size) option.
  62. Various minor bug fixes.
  63.  
  64.  
  65. 0.5 (96-may-23)
  66. ---------------
  67. Fixed bug in LTKWindow which broke the remote server mode.
  68. Fixed PostScript output:
  69.   - doesn't seg fault if file is unwritable.
  70.   - incorrect DSC comment - need colon in '%%Page:'.
  71.   - use 'imagemask' command for masks.
  72.   - output filters in the correct order.
  73.   - Stream::isBinary() checks the next-to-bottom, not top, stream.
  74.   - if page width > height, rotate it 90 degrees.
  75.   - if page is larger than paper size, scale it down.
  76. Set default MediaBox to 8.5" x 11" to deal with non-compliant PDF
  77.   files which don't specify a MediaBox.
  78. Added DEBUG_MEM stuff in gmem.c and gmempp.cc.
  79. Fixed memory leaks:
  80.   - LTKWindow didn't delete the LTKBox.
  81.   - LinkAction needs a virtual destructor.
  82. Use $(RANLIB) variable in goo/Makefile and ltk/Makefile.
  83. Allocate image data after calling XCreateImage, using
  84.   image->bytes_per_line -- works in 24-bit mode now.
  85. DCTStream rounds width of rowBuf lines up to the next multiple of
  86.   mcuWidth, so last MCU doesn't run off end of buffer.
  87. Increase size of block (from 255 to 1024 bytes) read at end of file to
  88.   search for 'startxref'.
  89. Skip past garbage at start of file, look for '%PDF'.
  90. Moved more compiler options out of Makefiles into Makefile.config.
  91. Top-level Makefile uses '$(MAKE)' instead of 'make' for making
  92.   subdirectories.
  93. Space/PageDown/Next and Backspace/PageUp/Previous now moves to
  94.   next/previous page if already scrolled to bottom/top of current
  95.   page.
  96.  
  97.  
  98. 0.5a (96-jul-09)
  99. ----------------
  100. [not a public release]
  101. For PDF 1.2 (a.k.a. Amber, a.k.a. Acrobat 3) support:
  102.   - look for trailer after first xref instead of at end of file.
  103. Deal with font subsets by converting character names of the form
  104.   'Cnnnn' to the appropriate character from the standard encoding.
  105. Extract encoding from embedded Type 1 fonts.
  106. Kludge to fill one-pixel thick polygons.
  107. Changed X font encoding to use endash for hyphen (gets rid of too-long
  108.   hyphens).
  109. Handle Resources key in Pages dictionaries (needed for pstoedit
  110.   output).
  111. Fix comment handling in Parser (needed for pstoedit output).
  112. Move Bezier curve conversion from GfxState to XOutputDev; look at
  113.   flatness parameter in GfxState.
  114. Change all of the path functions in XOutputDev (stroke, fill, clip) to
  115.   use the same path transformation/conversion function.
  116. Rewrote PostScript output driver as a subclass of OutputDev; removed
  117.   duplicated code (ps_ functions) from Gfx.
  118. Fixed bug in xref code with small (< 1024 bytes) PDF files.
  119. Implemented BX/EX operators.
  120. Added PDFDoc class.
  121.  
  122.  
  123. 0.6 (96-nov-12)
  124. ---------------
  125. Add support for PostScript output to stdout (-) and to a command
  126.   (|lpr); added -ps option and psFile resource.
  127. Decryption is implemented but not included in the distribution due to
  128.   legal restrictions: the decryption algorithm is a trade secret of
  129.   RSA, Inc., and the U.S.A. still has bogus export controls on
  130.   cryptography software.
  131. Added .xpdfrc config file:
  132.   - Added fontmap parameter: user can map PDF font names to X fonts.
  133.   - Added fontpath parameter: search for Type 1 font if encoding is
  134.     not in PDF file.
  135. Incremental display: display is updated after every 200 commands.
  136. Added forward and backward by-10-page buttons.
  137. Links:
  138.   - Implement links with "Launch" actions that point to PDF files.
  139.   - Draw borders around links.
  140.   - Handle links with named destinations.
  141.   - GoToR links specify a page number instead of a page reference.
  142. Optimizations:
  143.   - Rewrote Stream to use buffering, and added lookChar() functions;
  144.     rewrote Lexer to take advantage of this.
  145.   - Use hash tables for name->code mapping in font encodings.
  146.   - Made XOutputDev::doCurve() iterative, changed /2 to *0.5, and
  147.     changed the flatness test.
  148. Added file name to window title.
  149. Implemented RunLength filter.
  150. Implemented forms.
  151. Convert ObjType to an enum.
  152. Changed isDict("Pages") to isDict() (in Catalog.cc) to deal with
  153.   incorrect PDF files.
  154. Changed color selection so that very pale colors don't map to white.
  155. Fixed bug in CCITTFax filter (multiple make-up codes).
  156. In GString::clear(): need to set length to 0 before calling resize().
  157. Base initial window size on first displayed page, not page 1; deal
  158.   correctly with rotated pages.
  159. Added ltkGetIntResource() and LTKApp::getIntResource().
  160. PostScript output fixes:
  161.   - Escape backslashes in strings.
  162.   - When doing ASCII85 encoding, keep both chars of EOF marker ('~>')
  163.     on same line.
  164.   - Add extra line '%-EOD-' after image data streams; call wrapper
  165.     functions for image and imagemask which look for this line -- this
  166.     should fix the 'too much data in stream' bug.
  167.   - Font tags can be reused for different fonts on different pages --
  168.     so use font object reference (number/generation) instead.
  169. Initialize character widths to zero (this caused crashes on OSF/1).
  170. Handle image masks which go outside of pixmap.
  171. Makefile.config changes:
  172.   - Remove -o in C++ compile rule.
  173.   - Add $(AR) variable.
  174. Code which read char widths from font dictionary read all but the last
  175.   width.
  176. Add 'return 0;' to main() in xpdf and pdftops.
  177. Allow fonts to use StandardEncoding.
  178. Convert man pages to VMS help files.
  179.  
  180. 0.7 (97-may-28)
  181. ---------------
  182. Implemented FlateDecode filter (for PDF 1.2).
  183. Basic xref table reconstruction for damaged files
  184. New pdftotext program converts PDF to plain text.
  185. Implemented menus in LTK; added a menu to xpdf.
  186. Added open and save functions; allow xpdf to start without any PDF
  187.   file.
  188. Implemented text find.
  189. Implemented text select/copy.
  190. Change mouse cursor when it's over a link.
  191. Embed Type 1 fonts in PostScript output.
  192. Moved rotate functions to menu; added quit to menu.
  193. Fixed stroke color bug in PostScript output (was using fill color
  194.   instead of stroke color; this sometimes caused lines to be missing
  195.   (white) in PostScript output).
  196. Support Launch-type links -- pops up a dialog before executing
  197.   anything.  Expects the A (action) dictionary to contain a Unix
  198.   dictionary with F (file) and P (paremeter) keys just like the Win
  199.   dictionary.
  200. A moveto op all by itself should just be discarded, instead of
  201.   generating a subpath with one point (this was causing seg faults).
  202. Balanced parentheses in strings don't need to be escaped.
  203. Tj operator in PostScript prolog didn't check for zero when dividing
  204.   by length of string.
  205. Implemented selection in LTK; TextIn widgets support dragging/copy/
  206.   paste.
  207. Handle font subsets that use hex character codes.
  208. Added icon pixmap; added the XPMLIB and NO_XPM variables to
  209.   Makefile.config.
  210. Fixed subtle bug in use of horizontal scaling parameter (it affects
  211.   only the width of drawn characters, not positioning done in text
  212.   space).
  213. Memory testing (with DEBUG_MEM):
  214.   - gmalloc now fills memory blocks with garbage to catch unitialized
  215.     fields.
  216.   - gfree fills memory blocks with garbage to catch uses of freed
  217.     blocks.
  218. Handle image masks which go off the pixmap on the top and/or left.
  219. Fixed inline functions which had two return statements (to make the
  220.   HP, SCO, and other cfront-based compilers happy).
  221. Fixed bug which caused seg faults when following a link to a different
  222.   file (info in LinkGoto object was used after link was deleted by
  223.   loadFile).
  224. If page content is an array of streams, the streams are concatenated;
  225.   objects and commands can span multiple streams.
  226. If file open fails, try lower-casing and upper-casing the file name.
  227. Commands should end when lexer sees a '/' character.
  228. GString::append(char *, int) was broken.
  229. Changed LTKScrollingCanvas redraw to be more efficient: copy as much
  230.   as possible from window before copying from off-screen pixmap.
  231. Ignore gs (set extended graphics state) operator.
  232. Handle colorspaces (CalGray/RGB are treated as DeviceGray/RGB; the
  233.   weird colorspaces are not yet implemented).
  234. Named destinations (for links) can be strings as well as names; deal
  235.   with the names tree in the catalog.
  236. Clip to the page CropBox.
  237. Added '-q' to gzip options (to suppress warnings, in case user has -v
  238.   in GZIP env var).
  239. Added 'include Makefile.config' to top-level Makefile.
  240. Added INSTALL variable to Makefile.config; used in top-level
  241.   Makefile.
  242. Always initialize LinkDest left/bottom/top/right/zoom fields (bogus
  243.   floating point values were causing crashes on Alpha).
  244. Added Makefile.config options for Digital Unix (DEC compilers), HP-UX
  245.   (HP compilers), SCO Unix, and Evans & Sutherland ES/OS.
  246. Added flag to set stream mode in fopen call for VMS.
  247. Rewrote Link module.
  248. Pages with no contents shouldn't cause an error message.
  249. In PostScript output: pdfImM needs to set fill color before doing
  250.   imagemask.
  251. If font doesn't specify character widths, use widths from built-in
  252.   font, based on font flags.
  253. Fixed LTK scrollbar to delay before repeating and to control the
  254.   period between repeats.
  255. Removed window/widget copy() methods (they were untested and unused).
  256. Unknown filter types produce a single error message instead of a
  257.   stream of errors.
  258. Added a dummy target in top-level Makefile so making individual
  259.   executables (e.g., 'make pdftops') should now work.
  260. Added optional xpdf-flip.ltk with buttons on right side instead of
  261.   bottom of window.
  262.  
  263. 0.7a (98-feb-22)
  264. ----------------
  265. Moved find command from menu to toolbar button ('f' key still works).
  266. Support TrueColor visuals.
  267. Added a -cmap option and a installCmap resource to install a private
  268.   colormap.
  269. Mouse button 2 pans the window.
  270. Selecting a URI link now executes a configurable command (from the
  271.   urlCommand resource).
  272. Added a "link info" display which shows the URL or file for the link
  273.   under the mouse.
  274. Don't draw (or convert to PostScript) text drawn in render modes 3 and
  275.   7 -- this is invisible text, used by Acrobat Capture; this text is
  276.   still passed to the TextPage object so that selection works.
  277. Recognize (and quietly ignore) marked content operators (BMC, BDC,
  278.   EMC, MP, DP).
  279. Recognize new color-setting operators (scn, SCN).
  280. Added A4_PAPER option.
  281. Embed external Type 1 font files (this currently only works with PFA
  282.   files).
  283. Added "-level1" option (in xpdf and pdftops) to generate Level 1
  284.   PostScript.
  285. Setup autoconf -- replaced Makefile.config.  Added SELECT_TAKES_INT
  286.   flag, and use configure to autodetect (for HP-UX).
  287. Fixed appendToPath() to behave reasonably when appending ".." to root
  288.   directory.
  289. Fixed array size in FlateStream::compHuffmanCodes() (was causing xpdf
  290.   to crash under OSF/1).
  291. ASCII85Stream, ASCIIHexStream, and DCTStream didn't check for EOF and
  292.   could run past the end of the stream in damaged files.
  293. Handle hex escapes (#xx) in names.  Still allow the name /# for
  294.   backward-compatibility.
  295. Check for NULL characters in encoding array in GfxFont.cc (was calling
  296.   strcmp() with NULL which crashed under Solaris).
  297. PageAttrs::PageAttrs() didn't initialize crop box boundaries.
  298. Changed uses of lookup() to lookupNF() in XRef.cc.
  299. Fixed type checking of operators which take a variable number of
  300.   args.
  301. Gfx::buildImageStream() doesn't need to check for parser (since I got
  302.   rid of the bogus array-of-command thing).
  303. XOutputFont matches on font reference instead of font tag (similar to
  304.   PSOutputDev fix).
  305. Fixed bug in position calculation for multi-char substitutions in
  306.   XOutputDev.
  307. Cleaned up local variables which hid class variables.
  308. Optimized variable length decoding in CCITTFaxStream.
  309. Set link border width to zero if Border dictionary entry is missing.
  310. Throw away zero-length strings in TextOutputDev -- they don't have
  311.   valid xMin/xMax values.
  312. Swapped order of XLIBS and XPMLIB in xpdf/Makefile.
  313. Deleted 'LTKApp::' in function declaration in LTKApp.h.
  314. Changed '(XKeyEvent *)&event' to '&event.xkey' in LTKApp.cc.
  315. Check that the link rectangle coordinates are in the correct order,
  316.   and swap if necessary.
  317. TextOutputDev didn't set text to NULL, which caused pdftotext to
  318.   segfault if it couldn't open it's output file.
  319. Fixed a hash table search bug in GfxFontEncoding::getCharCode().
  320. Cleaned up colorspace code: rewrote GfxColorSpace and added
  321.   GfxImageColorMap; cleaned up PSOutputDev::doImage.
  322. Handle named colorspaces in images.
  323. Correctly set the default color after a colorspace change.
  324. Old setcolor operators now set the colorspace.
  325. Fixed bug with uncompressed blocks in FlateStream.
  326. Fixed bug with fixed Huffman code table in FlateStream.
  327. Added hash table of X windows (for LTKWindow and LTKWidget) to LTKApp
  328.   and replaced calls to XQueryTree with hash table searches -- this
  329.   avoids a roundtrip to the server for each event and also fixes the
  330.   problem where XQueryTree crashed if the window no longer existed
  331.   (with leftover events from a destroyed window).  (Thanks to Yair
  332.   Lenga for the suggestion.)
  333. Create a new GC for selection -- xor black and white (instead of LTK
  334.   foreground and background).
  335. Fixed crash with blank lines in .xpdfrc.
  336. Allow spaces in font descriptors in fontmap lines in .xpdfrc.
  337. Check for bogus object number in XRef::fetch().
  338. Use MacRomanEncoding for TrueType fonts that don't specify an
  339.   encoding.
  340. Certain PDF generators apparently don't include FontDescriptors for
  341.   Arial, TimesNewRoman, and CourierNew -- set GfxFont flags
  342.   appropriately.
  343. Fixed a bug in width guessing in GfxFont -- sans serif and serif were
  344.   swapped.
  345. Rewrote XRef::readXRef() to avoid using a parser to read the xref
  346.   entries.
  347. Added NO_TEXT_SELECT option.
  348. Ignore APPn/COM/etc. markers in DCT streams.
  349. Replaced select() with XMultiplexInput() in LTKApp.cc for VMS.
  350. Handle WM_DELETE_WINDOW protocol -- if you ask the window manager to
  351.   delete the xpdf window, xpdf will exit cleanly; other
  352.   windows/dialogs are simply closed.
  353. Optimized DCT decoder; switched to integer arithmetic.
  354. The "/Type /Annots" field in an annotation dictionary is optional.
  355. Check for null nameTree in Catalog::findDest().
  356. In XOutputDev, search user font map before default font map.
  357. Added "normal" SETWIDTH parameter to all font descriptors in
  358.   XOutputDev (some systems have a narrow-width Helvetica font).
  359. Added FOPEN_READ_BIN and FOPEN_WRITE_BIN to support Win32.
  360. Added a hack which allows better font substitution for some Type 3
  361.   fonts.  Also allow character names of the form /nn and /nnn.
  362. Added <strings.h> and <bstring.h> to LTKApp.cc (needed by AIX and IRIX
  363.   for bzero() declaration for FD_ZERO).
  364.