source: trunk/third/gpdf/CHANGES @ 21033

Revision 21033, 66.6 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r21032, which included commits to RCS files with non-trunk default branches.
Line 
1NOTE: This file lists the changes to the underlying Xpdf
2program. Changes to the GNOME PDF Viewer are listed in ChangeLog and
3NEWS.
4
50.2 (95-dec-12)
6---------------
7First public release.
8
9
100.3 (96-jan-13)
11---------------
12LZW patent workaround.
13Implemented inline images.
14Fixed (mostly) disjoint polygon fills.
15Added remote server stuff.
16Added page number on command line.
17Fixed problem with font encodings which caused character misalignment.
18Fixed inverted CCITT decoding and inverted image mask drawing.
19Now compiles under gcc 2.7.x (ignore those stupid 'unused parameter'
20  warnings).
21Many minor bug fixes and optimizations.
22
23
240.4 (96-apr-24)
25---------------
26Implemented DCT filter.
27Implemented PostScript output; wrote pdftops program.
28Implemented links.
29Implemented font rotation -- I was wrong: X11R6 servers *do* support
30  font rotation (by specifying a matrix in place of a size).
31Added bindings for Home/End, Page Up/Down, arrow keys.
32Added initialZoom resource and -z option.
33Added geometry resource and -g option.
34Fixed image size off-by-one bug.
35Fixed bug where page content is reference to an array of streams.
36Cleaned up uninitialized variables which were causing random problems
37  on various platforms.
38Manually skip whitespace before calling atoi() for startxref.
39Replaced calls to XrmCombineFileDatabase() with calls to
40  XrmGetFileDatabase() and XrmMergeDatabases() so it will work under
41  older versions of X.
42Fixed problem with reading multiple xref tables in updated PDF files.
43Check for encryption and print appropriate error message.
44Rudimentary dithering of images.
45Fixed bug in CCITTFax filter (pass mode followed by horizontal mode).
46Optimized drawImage() and drawImageMask().
47Changed several things to ease porting:
48  - changed '__inline' to 'inline' (to adhere to the ANSI standard)
49  - surrounded interface/implementation pragmas with #ifdef _GNUC__
50  - got rid of empty array initializer lists
51  - moved Operator type definition from Gfx.cc to Gfx.h
52  - renamed String, uint, etc.
53  - ability to uncompress to file (NO_POPEN and USE_GZIP flags)
54  - added definitions of XK_Page_Up/Down and XPointer for old versions
55    of X
56For VMS port:
57  - use correct Xdefaults name for VMS, get rid of ltkGetHomeDir()
58  - added '#include <stddef.h>' before all X includes
59  - renamed files with multiple periods in their names
60Fixed window resizing infinite oscillation bug.
61Fixed problem with string-type (as opposed to stream-type) indexed
62  color space lookup tables (which are used in inline images).
63If an X font is not found, try smaller and then larger sizes (this is
64  useful for old or broken X servers which can't scale bitmap fonts).
65Added -rgb (color cube size) option.
66Various minor bug fixes.
67
68
690.5 (96-may-23)
70---------------
71Fixed bug in LTKWindow which broke the remote server mode.
72Fixed PostScript output:
73  - doesn't seg fault if file is unwritable.
74  - incorrect DSC comment - need colon in '%%Page:'.
75  - use 'imagemask' command for masks.
76  - output filters in the correct order.
77  - Stream::isBinary() checks the next-to-bottom, not top, stream.
78  - if page width > height, rotate it 90 degrees.
79  - if page is larger than paper size, scale it down.
80Set default MediaBox to 8.5" x 11" to deal with non-compliant PDF
81  files which don't specify a MediaBox.
82Added DEBUG_MEM stuff in gmem.c and gmempp.cc.
83Fixed memory leaks:
84  - LTKWindow didn't delete the LTKBox.
85  - LinkAction needs a virtual destructor.
86Use $(RANLIB) variable in goo/Makefile and ltk/Makefile.
87Allocate image data after calling XCreateImage, using
88  image->bytes_per_line -- works in 24-bit mode now.
89DCTStream rounds width of rowBuf lines up to the next multiple of
90  mcuWidth, so last MCU doesn't run off end of buffer.
91Increase size of block (from 255 to 1024 bytes) read at end of file to
92  search for 'startxref'.
93Skip past garbage at start of file, look for '%PDF'.
94Moved more compiler options out of Makefiles into Makefile.config.
95Top-level Makefile uses '$(MAKE)' instead of 'make' for making
96  subdirectories.
97Space/PageDown/Next and Backspace/PageUp/Previous now moves to
98  next/previous page if already scrolled to bottom/top of current
99  page.
100
101
1020.5a (96-jul-09)
103----------------
104[not a public release]
105For PDF 1.2 (a.k.a. Amber, a.k.a. Acrobat 3) support:
106  - look for trailer after first xref instead of at end of file.
107Deal with font subsets by converting character names of the form
108  'Cnnnn' to the appropriate character from the standard encoding.
109Extract encoding from embedded Type 1 fonts.
110Kludge to fill one-pixel thick polygons.
111Changed X font encoding to use endash for hyphen (gets rid of too-long
112  hyphens).
113Handle Resources key in Pages dictionaries (needed for pstoedit
114  output).
115Fix comment handling in Parser (needed for pstoedit output).
116Move Bezier curve conversion from GfxState to XOutputDev; look at
117  flatness parameter in GfxState.
118Change all of the path functions in XOutputDev (stroke, fill, clip) to
119  use the same path transformation/conversion function.
120Rewrote PostScript output driver as a subclass of OutputDev; removed
121  duplicated code (ps_ functions) from Gfx.
122Fixed bug in xref code with small (< 1024 bytes) PDF files.
123Implemented BX/EX operators.
124Added PDFDoc class.
125
126
1270.6 (96-nov-12)
128---------------
129Add support for PostScript output to stdout (-) and to a command
130  (|lpr); added -ps option and psFile resource.
131Decryption is implemented but not included in the distribution due to
132  legal restrictions: the decryption algorithm is a trade secret of
133  RSA, Inc., and the U.S.A. still has bogus export controls on
134  cryptography software.
135Added .xpdfrc config file:
136  - Added fontmap parameter: user can map PDF font names to X fonts.
137  - Added fontpath parameter: search for Type 1 font if encoding is
138    not in PDF file.
139Incremental display: display is updated after every 200 commands.
140Added forward and backward by-10-page buttons.
141Links:
142  - Implement links with "Launch" actions that point to PDF files.
143  - Draw borders around links.
144  - Handle links with named destinations.
145  - GoToR links specify a page number instead of a page reference.
146Optimizations:
147  - Rewrote Stream to use buffering, and added lookChar() functions;
148    rewrote Lexer to take advantage of this.
149  - Use hash tables for name->code mapping in font encodings.
150  - Made XOutputDev::doCurve() iterative, changed /2 to *0.5, and
151    changed the flatness test.
152Added file name to window title.
153Implemented RunLength filter.
154Implemented forms.
155Convert ObjType to an enum.
156Changed isDict("Pages") to isDict() (in Catalog.cc) to deal with
157  incorrect PDF files.
158Changed color selection so that very pale colors don't map to white.
159Fixed bug in CCITTFax filter (multiple make-up codes).
160In GString::clear(): need to set length to 0 before calling resize().
161Base initial window size on first displayed page, not page 1; deal
162  correctly with rotated pages.
163Added ltkGetIntResource() and LTKApp::getIntResource().
164PostScript output fixes:
165  - Escape backslashes in strings.
166  - When doing ASCII85 encoding, keep both chars of EOF marker ('~>')
167    on same line.
168  - Add extra line '%-EOD-' after image data streams; call wrapper
169    functions for image and imagemask which look for this line -- this
170    should fix the 'too much data in stream' bug.
171  - Font tags can be reused for different fonts on different pages --
172    so use font object reference (number/generation) instead.
173Initialize character widths to zero (this caused crashes on OSF/1).
174Handle image masks which go outside of pixmap.
175Makefile.config changes:
176  - Remove -o in C++ compile rule.
177  - Add $(AR) variable.
178Code which read char widths from font dictionary read all but the last
179  width.
180Add 'return 0;' to main() in xpdf and pdftops.
181Allow fonts to use StandardEncoding.
182Convert man pages to VMS help files.
183
1840.7 (97-may-28)
185---------------
186Implemented FlateDecode filter (for PDF 1.2).
187Basic xref table reconstruction for damaged files
188New pdftotext program converts PDF to plain text.
189Implemented menus in LTK; added a menu to xpdf.
190Added open and save functions; allow xpdf to start without any PDF
191  file.
192Implemented text find.
193Implemented text select/copy.
194Change mouse cursor when it's over a link.
195Embed Type 1 fonts in PostScript output.
196Moved rotate functions to menu; added quit to menu.
197Fixed stroke color bug in PostScript output (was using fill color
198  instead of stroke color; this sometimes caused lines to be missing
199  (white) in PostScript output).
200Support Launch-type links -- pops up a dialog before executing
201  anything.  Expects the A (action) dictionary to contain a Unix
202  dictionary with F (file) and P (paremeter) keys just like the Win
203  dictionary.
204A moveto op all by itself should just be discarded, instead of
205  generating a subpath with one point (this was causing seg faults).
206Balanced parentheses in strings don't need to be escaped.
207Tj operator in PostScript prolog didn't check for zero when dividing
208  by length of string.
209Implemented selection in LTK; TextIn widgets support dragging/copy/
210  paste.
211Handle font subsets that use hex character codes.
212Added icon pixmap; added the XPMLIB and NO_XPM variables to
213  Makefile.config.
214Fixed subtle bug in use of horizontal scaling parameter (it affects
215  only the width of drawn characters, not positioning done in text
216  space).
217Memory testing (with DEBUG_MEM):
218  - gmalloc now fills memory blocks with garbage to catch unitialized
219    fields.
220  - gfree fills memory blocks with garbage to catch uses of freed
221    blocks.
222Handle image masks which go off the pixmap on the top and/or left.
223Fixed inline functions which had two return statements (to make the
224  HP, SCO, and other cfront-based compilers happy).
225Fixed bug which caused seg faults when following a link to a different
226  file (info in LinkGoto object was used after link was deleted by
227  loadFile).
228If page content is an array of streams, the streams are concatenated;
229  objects and commands can span multiple streams.
230If file open fails, try lower-casing and upper-casing the file name.
231Commands should end when lexer sees a '/' character.
232GString::append(char *, int) was broken.
233Changed LTKScrollingCanvas redraw to be more efficient: copy as much
234  as possible from window before copying from off-screen pixmap.
235Ignore gs (set extended graphics state) operator.
236Handle colorspaces (CalGray/RGB are treated as DeviceGray/RGB; the
237  weird colorspaces are not yet implemented).
238Named destinations (for links) can be strings as well as names; deal
239  with the names tree in the catalog.
240Clip to the page CropBox.
241Added '-q' to gzip options (to suppress warnings, in case user has -v
242  in GZIP env var).
243Added 'include Makefile.config' to top-level Makefile.
244Added INSTALL variable to Makefile.config; used in top-level
245  Makefile.
246Always initialize LinkDest left/bottom/top/right/zoom fields (bogus
247  floating point values were causing crashes on Alpha).
248Added Makefile.config options for Digital Unix (DEC compilers), HP-UX
249  (HP compilers), SCO Unix, and Evans & Sutherland ES/OS.
250Added flag to set stream mode in fopen call for VMS.
251Rewrote Link module.
252Pages with no contents shouldn't cause an error message.
253In PostScript output: pdfImM needs to set fill color before doing
254  imagemask.
255If font doesn't specify character widths, use widths from built-in
256  font, based on font flags.
257Fixed LTK scrollbar to delay before repeating and to control the
258  period between repeats.
259Removed window/widget copy() methods (they were untested and unused).
260Unknown filter types produce a single error message instead of a
261  stream of errors.
262Added a dummy target in top-level Makefile so making individual
263  executables (e.g., 'make pdftops') should now work.
264Added optional xpdf-flip.ltk with buttons on right side instead of
265  bottom of window.
266
2670.7a (98-feb-22)
268----------------
269Moved find command from menu to toolbar button ('f' key still works).
270Support TrueColor visuals.
271Added a -cmap option and a installCmap resource to install a private
272  colormap.
273Mouse button 2 pans the window.
274Selecting a URI link now executes a configurable command (from the
275  urlCommand resource).
276Added a "link info" display which shows the URL or file for the link
277  under the mouse.
278Don't draw (or convert to PostScript) text drawn in render modes 3 and
279  7 -- this is invisible text, used by Acrobat Capture; this text is
280  still passed to the TextPage object so that selection works.
281Recognize (and quietly ignore) marked content operators (BMC, BDC,
282  EMC, MP, DP).
283Recognize new color-setting operators (scn, SCN).
284Added A4_PAPER option.
285Embed external Type 1 font files (this currently only works with PFA
286  files).
287Added "-level1" option (in xpdf and pdftops) to generate Level 1
288  PostScript.
289Setup autoconf -- replaced Makefile.config.  Added SELECT_TAKES_INT
290  flag, and use configure to autodetect (for HP-UX).
291Fixed appendToPath() to behave reasonably when appending ".." to root
292  directory.
293Fixed array size in FlateStream::compHuffmanCodes() (was causing xpdf
294  to crash under OSF/1).
295ASCII85Stream, ASCIIHexStream, and DCTStream didn't check for EOF and
296  could run past the end of the stream in damaged files.
297Handle hex escapes (#xx) in names.  Still allow the name /# for
298  backward-compatibility.
299Check for NULL characters in encoding array in GfxFont.cc (was calling
300  strcmp() with NULL which crashed under Solaris).
301PageAttrs::PageAttrs() didn't initialize crop box boundaries.
302Changed uses of lookup() to lookupNF() in XRef.cc.
303Fixed type checking of operators which take a variable number of
304  args.
305Gfx::buildImageStream() doesn't need to check for parser (since I got
306  rid of the bogus array-of-command thing).
307XOutputFont matches on font reference instead of font tag (similar to
308  PSOutputDev fix).
309Fixed bug in position calculation for multi-char substitutions in
310  XOutputDev.
311Cleaned up local variables which hid class variables.
312Optimized variable length decoding in CCITTFaxStream.
313Set link border width to zero if Border dictionary entry is missing.
314Throw away zero-length strings in TextOutputDev -- they don't have
315  valid xMin/xMax values.
316Swapped order of XLIBS and XPMLIB in xpdf/Makefile.
317Deleted 'LTKApp::' in function declaration in LTKApp.h.
318Changed '(XKeyEvent *)&event' to '&event.xkey' in LTKApp.cc.
319Check that the link rectangle coordinates are in the correct order,
320  and swap if necessary.
321TextOutputDev didn't set text to NULL, which caused pdftotext to
322  segfault if it couldn't open it's output file.
323Fixed a hash table search bug in GfxFontEncoding::getCharCode().
324Cleaned up colorspace code: rewrote GfxColorSpace and added
325  GfxImageColorMap; cleaned up PSOutputDev::doImage.
326Handle named colorspaces in images.
327Correctly set the default color after a colorspace change.
328Old setcolor operators now set the colorspace.
329Fixed bug with uncompressed blocks in FlateStream.
330Fixed bug with fixed Huffman code table in FlateStream.
331Added hash table of X windows (for LTKWindow and LTKWidget) to LTKApp
332  and replaced calls to XQueryTree with hash table searches -- this
333  avoids a roundtrip to the server for each event and also fixes the
334  problem where XQueryTree crashed if the window no longer existed
335  (with leftover events from a destroyed window).  (Thanks to Yair
336  Lenga for the suggestion.)
337Create a new GC for selection -- xor black and white (instead of LTK
338  foreground and background).
339Fixed crash with blank lines in .xpdfrc.
340Allow spaces in font descriptors in fontmap lines in .xpdfrc.
341Check for bogus object number in XRef::fetch().
342Use MacRomanEncoding for TrueType fonts that don't specify an
343  encoding.
344Certain PDF generators apparently don't include FontDescriptors for
345  Arial, TimesNewRoman, and CourierNew -- set GfxFont flags
346  appropriately.
347Fixed a bug in width guessing in GfxFont -- sans serif and serif were
348  swapped.
349Rewrote XRef::readXRef() to avoid using a parser to read the xref
350  entries.
351Added NO_TEXT_SELECT option.
352Ignore APPn/COM/etc. markers in DCT streams.
353Replaced select() with XMultiplexInput() in LTKApp.cc for VMS.
354Handle WM_DELETE_WINDOW protocol -- if you ask the window manager to
355  delete the xpdf window, xpdf will exit cleanly; other
356  windows/dialogs are simply closed.
357Optimized DCT decoder; switched to integer arithmetic.
358The "/Type /Annots" field in an annotation dictionary is optional.
359Check for null nameTree in Catalog::findDest().
360In XOutputDev, search user font map before default font map.
361Added "normal" SETWIDTH parameter to all font descriptors in
362  XOutputDev (some systems have a narrow-width Helvetica font).
363Added FOPEN_READ_BIN and FOPEN_WRITE_BIN to support Win32.
364Added a hack which allows better font substitution for some Type 3
365  fonts.  Also allow character names of the form /nn and /nnn.
366Added <strings.h> and <bstring.h> to LTKApp.cc (needed by AIX and IRIX
367  for bzero() declaration for FD_ZERO).
368
3690.80 (98-nov-27)
370----------------
371Support for some Japanese fonts (Type 0 fonts using the Adobe-Japan1-2
372  character collection, horizontal only).
373Added pdfinfo application.
374Added pdftopbm application.
375Added pdfimages application.
376Added -papercolor option and .paperColor resource.
377Fixed divide-by-zero problem in XOutputDev Type 3 font matrix kludge.
378Font subset char names can be 'Bxx' as well as 'Cxx' and 'Gxx'.
379Fixed bug in color space conversion in DCTStream filter (YCC->RGB was
380  correct, YCCK->CMYK was broken).
381Added XRef::getDocInfo() and PDFDoc::getDocInfo() to support pdfinfo.
382Optimized GfxImageColorMap.
383Lexer::getStream(), getPos(), and setPos() check for null stream.
384Decryption code now does strings as well as streams.
385ASCII85 decoder rounds short tuples up instead of down.
386CropBox and MediaBox can be non-integers.
387PostScript output:
388  - Use a rectangle operator.
389  - Call setpagedevice with page size.
390  - Insert %%PageOrientation comments.
391  - Add paper size flags (-paperw and -paperh) to xpdf and pdftops.
392  - If HAVE_POPEN is not defined, and user tries to print to '|...',
393    the PSOutputDev destructor tried to write to the PS file.
394  - Added support for forms (pdftops -form).
395Removed error messages for empty paths in stroke, fill, etc. operators.
396Don't allow flatnesses less than 1 in XOutputDev (this speeds up
397  rendering a little bit when there are lots of tiny curves).
398Moved the font subset character name guessing from GfxFont to
399  XOutputDev and TextOutputDev - now these files print correctly.
400Cast argument to XFree() to XPointer; add XPointer definition where
401  necessary (portability fixes).
402Various minor VMS fixes.
403Changes to configure script and Makefiles:
404  - Print a warning if X is missing.
405  - Use C++ when checking select() argument type (HP-UX).
406  - Use 0 instead of NULL when checking select().
407  - Default to gcc instead of c++.
408  - Get rid of AC_C_INLINE -- this is meant for C, not C++.
409  - Changed -USE_GZIP to -DUSE_GZIP.
410  - Added ability to compile ouside of the source tree.
411  - Added .cc.o rule to {goo,ltk,xpdf}/Makefile.in.
412  - Added @LIBS@ to XLIBS in xpdf/Makefile.in.
413  - In top-level Makefile.in: added '-' to clean commands; added
414    distclean rule.
415  - Create install directories.
416  - Use INSTALL_DATA (instead of INSTALL) for man pages.
417  - Changed xpdf-ltk.h rule to avoid leaving an empty file when
418    ltkbuild fails.
419  - Change things so that by default, ltkbuild is not built and
420    xpdf-ltk.h is not rebuilt.
421  - Use AM_PROG_CC_STDC to add compiler flags for ANSI C.
422  - Modify autoconf's builtin macros to check for xlC.
423  - Use Steve Robbins' smr_CHECK_LIB to test for pixmap library (Xpm)
424    -- this should fix the problems on systems that have the library
425    but not the include file.
426  - Added better test for sys/select.h, sys/bsdtypes.h, strings.h,
427    bstring.h.
428  - New VMS make scripts from Martin P.J. Zinser.
429  - Moved dependences into Makefile.in -- this gets rid of problems
430    with 'cc -MM' (which is gcc-specific) and 'include Makefile.dep'
431    (which isn't supported by all make implementations).  Also changed
432    all non-system include files to '#include "..."' (from '<...>').
433Tweaked the TextOutputDev heuristics slightly.
434Modify Gfx to use a stack of resources -- this is necessary for Form
435  XObjects, which can define their own local resources; also modified
436  PSOutputDev to dump fonts used by forms.
437Look for excessively large MediaBox (compared to CropBox) and shrink
438  it to CropBox.
439Minor fix to scrolling when dragging a selection.
440Various patches for pdftex and Win32 support.
441Deal with Separation colorspaces by using their alternate colorspace
442  entry.
443Added PBMOutputDev for pdftopbm application.
444Added ImageOutputDev for pdfimages application.
445Separated XOutputDev into LTKOutputDev + XOutputDev.
446Added support for 1-D and mixed 1-D/2-D (Group 3) decoding to
447  CCITTDecode filter.
448Added resetImage(), getImagePixel(), and skipImageLine() to Stream
449  class; used these in XOutputDev, PSOutputDev, and ImageOutputDev.
450Implemented predictor for LZW and Flate filters.
451In pdfImM1 in PSOutputDev prolog: div should be idiv.
452Changed output from printUsage() function in parseargs to look nicer.
453
4540.90 (99-aug-02)
455----------------
456Added Type 1/1C font rendering, using t1lib.
457Added "backward" and "forward" buttons.
458Added fit-page and fit-page-width zoom factors; replaced zoom-in and
459  zoom-out buttons with a zoom popup menu.
460Type 1C fonts are converted to Type 1 and embedded in PostScript.
461Support vertical Japanese text.
462Added Japanese text support (EUC-JP) to pdftotext.
463Bumped PDF version to 1.3.  Added stub functions for ri and sh
464  operators. (But there are still some missing 1.3 features.)
465Added -raw option to pdftotext.
466Minor changes to allow compiling under MS Visual C++ 5.0.
467Top-level makefile: changed 'mkdir -p' to '-mkdir -p'.
468Configure script: added X_CFLAGS to smr_CHECK_LIB(Xpm).
469Added Xpm_CFLAGS to xpdf/Makefile.in (this is needed to get the -I for
470  the xpm includes).
471Rewrote code that handles font encodings; added support for Type 1C
472  fonts.
473In the setpagedevice dictionary in PostScript output - added a
474  /Policies entry which tells the PS interpreter to scale the page to
475  fit the available paper.
476Changed PageUp behavior slightly: move to bottom (instead of top) of
477  previous page.
478TextPage used character's dx (width + char space) instead of just its
479  width.
480Read base URI from document Catalog (for URI-type links).
481Minor change to configure script to avoid using 'unset'.
482Fixed bugs in CropBox inheritance.
483Fixed a bug in resource stack handling for form objects.
484Display forms even if they have a missing/incorrect FormType.
485Fixed a bug in stream predictors -- the predictor parameters (width,
486  comps, bits) don't need to match the actual image parameters.
487  Completely rearranged the predictor code.
488Fixed PostScript output to correctly handle stream predictors.
489Don't segfault on empty (zero-page) documents.
490Added the xpdf.viKeys feature.
491Added the ffi and ffl ligatures to XOutputDev and TextOutputDev.
492Pdftotext and pdfimages now check okToCopy().
493Added a '-q' flag to all programs (except pdfinfo) to suppress
494  messages and errors.
495Deal with DeviceN colorspaces by using their alternate colorspace
496  entry.
497Change PostScript output so setpagedevice is only called once, at the
498  very beginning of the document (to avoid problems on duplex
499  printers).
500Changes to configure script and makefiles for DOS/DJGPP.
501FontEncoding::getCharCode() looked for (code>0) instead of (code>=0).
502Added keypad arrow keys, etc. to xpdf.
503Minor changes to gfile.{h,cpp} (<windows.h>) to compile under VC++.
504Fixed CCITTFaxStream to correctly handle all parameters.
505Modifications to gfile.{h,cc} for Acorn.
506Some minor changes for OS/2.
507Added 'SHELL = /bin/sh' to Makefiles.
508Compare file version to pdfVersionNum+0.0001 to avoid floating point
509  precision problems.
510Added LDFLAGS to Makefiles.
511Removed strip entirely from configure and Makefiles.
512Fixed a bug in choosing the correct DCTStream color transform.
513
5140.91 (2000-aug-14)
515------------------
516Added TrueType font rendering, using FreeType.
517Support for Chinese fonts (Type 0 fonts using the Adobe-GB1-2
518  character collection).
519Decryption code is included with the main distribution (now that the
520  US export regulations are a little bit less irrational).
521Added (very basic) support for generating PostScript with Japanese
522  fonts -- only tested with ghostscript so far.
523Added support for generating EPS files (pdftops -eps).
524Much-improved image filtering in xpdf (for downsampling and for
525  transforms other than 0/90/180/270-degree rotations).
526Implemented a basic full-screen (presentation) mode (xpdf
527  -fullscreen).  (There is currently no way to switch between window
528  and full-screen modes on the fly -- this will be fixed in a later
529  release.)
530Added "reload" menu item.
531Do a better job with anti-aliased Type 1 fonts on non-white
532  backgrounds.
533Handle Lab color spaces.
534Handle non-null user passwords.
535Avoid security hole with tmpnam()/fopen() -- added openTempFile() in
536  goo/gfile.cc.  [Thanks to Joseph S. Myers for pointing this out.]
537Filter out quote marks (' and ") in URLs before running urlCommand to
538  avoid a potential security hole.  [Thanks to Frank Doepper for
539  pointing this out.]
540Fixed TrueColor detection to look at the complete list of available
541  visuals, not just the default visual.
542In gfile.h, changed NAMLEN(dirent) macro to NAMLEN(d).
543Removed copyright character from start-up banners.
544In the open and save dialogs, if the open/save button is pressed with
545  no file name, the dialog is not canceled.
546Added Xpm_CFLAGS to ltk/Makefile.
547XOutputDev::updateLineAttrs was using dashLength before it was
548  defined.
549In top-level Makefile.in, use INSTALL_PROGRAM instead of INSTALL.
550In man page, recommend -q instead of -err in .mailcap.
551Changes for GNOME / Bonobo support:
552  - Separated Stream classes into BaseStream and FilterStream trees.
553  - Got rid of all FileStream-specific stuff.
554  - Added a PDFDoc constructor that takes a BaseStream* instead of a
555    file name.
556Allow newlines inside strings (Photoshop does this).
557Don't require whitespace between tokens in consecutive content
558  streams (for pages that specify an array of streams).
559Look at MissingWidth when constructing font character widths array.
560Fixed a bug that caused incorrect PostScript output for images that
561  use 8-bit indexed color spaces with < 256 colors in the palette.
562Handle case where embedded font file is bad (this was seg faulting).
563Minor changes for Windows/pdftex.
564Work around a bug in PDF files from the IBM patent server.
565Fixed bugs in PostScript form generation: use pdfStartPage instead of
566  pdfSetup; problem with inline images.
567Minor bug fix in FlateStream::loadFixedCodes().
568Added %%DocumentMedia and %%PageMedia comments to the PostScript so
569  that gsview (a Windows frontend for ghostscript) gets the right
570  paper size.
571Draw AcroForm fields that have appearance annotations.
572Bounds check gray, CMYK, and RGB values (in GfxColor).
573Moved the link border drawing code into Page (from PDFDoc).
574Minor modifications for pdftohtml.
575PSOutputDev: use the Type 3 font scaling kludge from XOutputDev.
576Separation color spaces were handled incorrectly in images.
577Fixed a bug with form bounding boxes.
578Modified the t1lib support -- replace libt1x code with my own code.
579  Type 1 and TrueType fonts are now handled similarly, and clipping
580  works on Type 1 fonts.
581Don't print copyright banner (xpdf); add -v switch to get copyright
582  and version info (all apps); get rid of -err switch (xpdf).
583Automatically reload the PDF file if it has been changed, i.e., if the
584  modification time is different.
585Fixed a memory (malloc size) bug in CCITTFaxStream.
586Fixed two bugs in FontEncoding::hash() -- handle zero-length character
587  names (which were found in a (buggy?) PDF file), and handle
588  character names with high-bit-set characters (use unsigned ints).
589Added PDFDoc::isLinearized() and corresponding code in pdfinfo.cc.
590Handle files with an incorrect page count in the Pages dictionary
591  (FOP, from the Apache project produces a page count of 0).
592Handle TrueType equivalents to the Base14 fonts (Arial, TimesNewRoman,
593  CourierNew) -- Adobe's tools use these names without embedding the
594  fonts.
595Tweaked the Type 3 font sizing kludge.
596Changed pdfimages (ImageOutputDev) so it doesn't output JPEG files for
597  4-component color spaces, since these seem to confuse most image
598  viewers.
599Added support for generating OPI comments (pdftops -opi).
600In XOutputDev::drawImage() and drawImageMask(), check for images that
601  are completely off-page.
602Use the provided alternate or a default (DeviceGray/RGB/CMYK) color
603  space for ICCBased color spaces.
604Incorporated MacOS-specific code from Leonard Rosenthol.
605Configure script switches to C++ for the strings.h/bstring.h test.
606Gfx::opRestore() calls clearPath() to handle (apparently) buggy PDF
607  files produced by FreeHand.
608The /Type field in most dictionaries is optional (PDF 1.3 change).
609Move printCommands variable definition into Gfx.cc.
610If page is smaller than paper, center the PostScript output.
611Fix a minor bug in the SELECT_TAKES_INT detection in the configure
612  script.
613TextOutputDev filters out control characters.
614Changed enough occurrences of 'char *' to 'const char *' to keep gcc
615  2.95 from barfing.
616Support for Latin-2 and Latin-5 in pdftotext (however, this will only
617  work if the PDF file contains correct font encodings, which seems to
618  be rare).
619TextOutputDev converts "eightoldstyle" to "eight", etc.
620Don't use the return value from sprintf() -- most systems return the
621  length, but some return the string.
622Minor fixes for SunOS 4.
623Configure script looks for both select() and fd_set in sys/select.h.
624Configure script checks for gethostbyname() in -lbsd (for LynxOS).
625Fix missing closepath bug in PostScript output.
626Change PostScript portrait/landscape mode selection so it only uses
627  landscape if the page width is greater than the paper width.
628Tweaked the VMS code in makePathAbsolute().
629
6300.91a (2000-oct-11)
631-------------------
632Implemented separable CMYK PostScript output (the -level1sep switch to
633  pdftops).
634Implemented Pattern color spaces with tiling patterns (polygon fills
635  only).
636Implemented Stamp annotations.
637Implemented Named link actions.
638Fixed a really dumb bug in the TrueColor code in SFont (which affects
639  both Type 1 and TrueType font rendering on 16-bit displays).
640Rewrote the GfxColorSpace / GfxColor code.
641Switched from djgppcfg to dj_make.bat (from Michael Richmond).
642Bug in the Type 1 encoding parser -- couldn't handle lines of the form
643  'dup NNN/name put' (with no space between the code and the name).
644Fixed the mkstemp() test in configure.in -- switched from
645  AC_TRY_COMPILE to AC_TRY_LINK and added <unistd.h>.
646Added DESTDIR to top-level Makefile.in.
647Fixed an incorrect OPI comment in PSOutputDev.
648Minor tweak to the CCITTFax code to avoid writing past the end of an
649  array on an invalid data stream.
650Xpdf crashed if the user selected 'reload' when no document was
651  loaded.
652Look for character names of the form "xx" (two hex digits with no
653  leading alphabetic char) and 'cNNN' (decimal digits with a leading
654  alphabetic char that happens to be a hex digit).
655FlateStream didn't correctly handle zero-length streams.
656Xref reconstruction didn't handle the case where the opening "<<"
657  immediately followed "trailer" with no intervening whitespace.
658Fix the %%DocumentSuppliedResources comment in EPS output.
659Scale annotations to fit their rectangles.
660Added Stream::close() to handle cases (e.g., patterns) where a Stream
661  object is used multiple times before it is deleted.
662Added the topLevel arg to Gfx::go() so it doesn't call out->dump() for
663  every pattern element (and form).
664Rearranged the GfxResources class.
665Clean up white space handling in Lexer.
666Make the dpi parameter to PDFDoc::displayPage etc. a double - this
667  avoids margin gaps with fit-page and fit-width.
668Fix a rounding problem in xpdf.cc that was causing the window to
669  sometimes be one pixel too small.
670Fixed a minor bug in dealing with Base-14 TrueType font names.
671Fixed Lab -> RGB color space conversion.
672Added support for opacity values (from PDF 1.4) to GfxState and
673  OutputDev.  [Thanks to Leonard Rosenthol.]
674Implemented type 2 functions; rearranged the Function class
675  hierarchy.
676
6770.91b (2000-oct-29)
678-------------------
679Print a warning about Type 3 fonts (XOutputDev, PSOutputDev).
680Added the scroll lock behavior to 'n' and 'p' keys in xpdf.
681Change FileStream buffer size to a #define'd constant.
682Renamed Pattern to GfxPattern to avoid clashes with Windows and MacOS
683  types.
684Added CNS (Big5) Chinese font support (CHINESE_CNS_SUPPORT); renamed
685  CHINESE_SUPPORT to CHINESE_GB_SUPPORT.
686
6870.91c (2000-nov-19)
688-------------------
689Fix an endianness problem in the Type 1 font code which resulted in an
690  incorrect display with "-t1lib plain" on big-endian systems.
691CCITTFax stream decoder will skip over extra zero bits at end of line,
692  even if EncodedByteAlign flag wasn't set.
693Added Big5 support to pdftotext (with CHINESE_CNS_SUPPORT enabled).
694Fixed a typo in the CNS/Big5 encoding translation table.
695Change the form code in PSOutputDev to store images in arrays of
696  strings.
697The xref reconstruction (for damaged files) now also looks for
698  'endstream' tags, and the parser uses this information when setting
699  up stream objects.
700In pdfinfo, convert Unicode chars in the 00xx range into 8-bit chars;
701  print a warning if there are any other Unicode chars.
702
7030.92 (2000-dec-03)
704------------------
705Fixed %%BeginResource comment (for xpdf procset) in PostScript
706  output.
707Added "-title" switch and "xpdf.title" resource to set the window
708  title.
709Check for <freetype.h> in addition to <freetype/freetype.h>.
710Upgraded the configure script to smr_macros 0.2.4 - this should fix a
711  bug where configure wasn't correctly finding t1lib.
712
7130.92a (2000-dec-17)
714-------------------
715Added 'extern "C" { ... }' in various places for ANSI C++ compliance.
716Tweaked the code that figures out DPI for fit-to-page and fit-to-width
717  modes.
718Fixed the image transformation code in XOutputDev -- no more missing
719  lines.
720Implemented color key image masking in XOutputDev.
721
7220.92b (2001-jan-07)
723-------------------
724Fixed a bug in the error-checking code in the Separation/DeviceN color
725  space parsing functions.  [Thanks to Lidia Mirkin.]
726Added wheel mouse support (mouse buttons 4 and 5).  [Thanks to
727  Thorsten Schreiner.]
728Added preliminary support for FreeType 2 (disabled by default).
729
7300.92c (2001-jun-04)
731-------------------
732Fixed a bug in the new image transformation code.
733Look for character names of the form "<letter><digit><digit>", instead
734  of looking for names beginning with a few specific letters.
735T1FontFile::T1FontFile wasn't initializing vars, and ~T1FontFile
736  wasn't checking before calling T1_DeleteFont -- this caused crashes
737  if it tried to open a nonexistent font file.
738Catalog::Catalog didn't set baseURI to NULL early enough.
739Tweak the check for strings.h in the configure script.
740Yet another fix for the image rotation code in XOutputDev --
741  off-by-one problem when upsampling.
742Handle Type 1/1C encodings when using FreeType 2.
743Allow FreeType2 to render user-supplied Type 1 base fonts.
744Opening a new file from full-screen mode tried to scroll.
745Fixed a bug in GfxFont constructor (missing check for NULL base font
746  name).
747Don't crash if a Type 1 font's FontBBox is non-integer.
748Pdfinfo prints page size.
749Tweak for the alpha hack in T1Font/TTFont: sample the middle pixel
750  instead of the top-left pixel.
751Automatically activate the text input widget in the find window.
752Changed a Japanese char code mapping in XOutputDev and TextOutputDev:
753  period was being incorrectly mapped to small circle (end-of-sentence
754  character).
755Add the 0/+/-/z/w key bindings to control the zoom setting.
756Fixed ImageOutputDev (pdfimages) to correctly handle inline image
757  masks.
758Extract ascent/descent info from font descriptor.
759
7600.92d (2001-jun-26)
761-------------------
762Embed TrueType fonts in PostScript output.  (Added a "-noembtt" flag
763  to pdftops.)
764Extract encoding from TrueType fonts.
765Moved Function classes to a separate file (Function.h/cc).
766Implemented multi-dimensional sampled Functions.
767Implemented Type 4 (PostScript calculator) Functions.
768For Type 0 fonts, FontDescriptor is in descendant font, not parent.
769  [Thanks to Lidia Mirkin.]
770Added the "-htmlmeta" option to pdftotext.
771In TextOutputDev, when computing the number of blank lines to insert,
772  do a sanity check on the result.
773If both FlateDecode and some other filter (e.g., DCTDecode) were
774  applied to an image stream, getPSFilter() crashed instead of just
775  returning NULL.
776Handle the /Identity function.
777
7780.92e (2001-aug-23)
779-------------------
780Widths in font dict should override built-in font widths.
781Changed "rotate left/right" menu items to "rotate
782  clockwise/counterclockwise".
783The link parsing code choked if the Border array was incorrect (too
784  short).
785Modified PSOutputDev to output CMYK for fill/stroke colors.
786
7870.93 (2001-oct-25)
788------------------
789Implement PDF 1.4 (128-bit) decryption.
790Bump supported PDF version number to 1.4.
791Text output for Simplified Chinese.  [Thanks to Cheung Siu Fai.]
792Read an app-defaults file for Xpdf.
793Read a system-wide config file (<prefix>/etc/xpdfrc) if ~/.xpdfrc
794  doesn't exist.
795Accept and verify owner password; if correct, allow all actions.
796Added a "-level2sep" option to pdftops to generate Level 2 separable
797  PostScript.  The PostScript separation convention operators are used
798  to handle custom (spot) colors.  [Thanks to Thomas Freitag for help
799  on this.]
800Add support for FreeType 2 to the configure script.  Warning: this
801  requires FT 2.0.5 or newer.
802Fixed the bounding rectangle overlap test in the disconnected subpath
803  fill hack in XOutputDev.
804Stupid typo in font name table in PSOutputDev.
805Changing the zoom setting with a keyboard shortcut didn't update the
806  displayed setting.
807Modified the mouse wheel support and added the second wheel (mouse
808  buttons 6 and 7).  [Thanks to Michal Pasternak.]
809Character and word spacing is affected by horizontal scaling (display
810  and PS output).  [Thanks to Eddy Ng.]
811Rotation specified by the text matrix, character spacing, and
812  horizontal scaling interacted incorrectly (display and PS output).
813Some broken Type 1/1C fonts have a zero BBox -- kludge around this by
814  assuming a largeish BBox.
815Handle PDF files with an incorrect (too small) xref table size.
816Allow "-?" and "--help" as aliases for "-h" (all apps).
817Correctly handle unescaped parens in strings in Lexer.
818Fixed a bug in LTK where a menu got posted multiple times if you right
819  clicked while a page was being rendered.
820Removed a comma inside a string in configure.in.
821Kludge around broken PDF files that use char 32 but encode it as
822  .notdef instead of space.
823Clean up various compiler warnings: use constructor args like "fooA"
824  if there is a field named "foo".  Everything now compiles cleanly
825  under gcc 2.91.66, 2.95.2, and 3.0.1.
826Page objects now read all of the page rectangles (MediaBox, CropBox,
827  BleedBox, TrimBox, ArtBox), as requested by the pdfTeX folks.
828  Added a new PDFRectangle struct to hold these.
829Use XOutputDev's Type 3 font size hack in TextOutputDev too, so it
830  does a little better job of extracting text in Type 3 fonts.
831Modify pdfimages to write one-bit images as PBM files.
832Work around a bug in cygwin's implementation of fseek.
833
8340.93a (2001-nov-21)
835-------------------
836Implemented the sh (shaded fill) operator for the axial shading type.
837Minor fixes to avoid compiler warnings.
838Cleaned up global variables -- moved many into instance vars and
839  function args.
840Minor fixes for OS/2.
841Fix the system config file path for VMS.
842Fix an uninitialized var in XOutputDev that caused crashes on Alphas.
843Don't incrementally update the display in full-screen mode.
844For Type 1/1C fonts, use the FontBBox from the PDF FontDescriptor
845  (instead of the one in the font file) if present -- this avoids
846  problems with fonts that have non-standard FontMatrixes.
847Add the Euro character to WinAnsiEncoding.
848Track the bounding box of the clip region to make rendering patterns
849  more efficient.
850Fix openTempFile() for Win32.
851
8520.93b (2001-dec-11)
853-------------------
854Added a duplex option to PSOutputDev and a -duplex switch to pdftops.
855Added XRef::PDFgetDocInfoNF() for pdftex project.
856Updated the VMS build script.
857
8580.93c (2001-dec-12)
859-------------------
860Completely rewrote the code that handles font encodings:
861  - everything is Unicode-based
862  - 16-bit fonts are handled much more cleanly
863  - text output encoding can be set more flexibly
864New .xpdfrc config files.
865
8661.00 (2002-feb-01)
867------------------
868More work on the font encoding rewrite:
869  - use the ToUnicode font dict entry
870  - pdfinfo and pdftotext (with '-htmlmeta') convert info strings to
871    the selected text encoding
872Added key bindings for forward ('v') and backward ('b').
873Added the pdffonts program which lists the fonts used in a PDF file.
874Fixed several problems in the TrueType font embedding code (for
875  PostScript output).
876Accept named destination on command line.
877Added several new items to pdfinfo: file size, PDF version, tagged
878  (yes or no), XML metadata (with the -meta option).
879Pdftops didn't get the portrait/landscape setting correct for PDF
880  files with rotated pages.
881The TrueTypeFontFile class (including the Type 42 converter) now
882  understands cmap format 6.
883Improved the "about" window -- mention the GPL, add a list of key
884  bindings.
885Added Zcaron and zcaron characters to WinAnsiEncoding.
886The '0' keyboard shortcut didn't update the zoom popup menu.
887Handle the complete list of alternate names for the Base14 fonts.
888Fixed substitute font scaling in XOutputDev - scale only the width,
889  not the height.
890Implemented stitching (type 3) functions.
891Handle the case of moveto/closepath/clip, which defines an empty
892  clipping region.
893Move dependences into separate Makefile.dep files; get rid of the
894  distdepend target.
895Move all of the configure-script-generated -D options out of the
896  Makefiles and into a top-level .h file (aconf.h).
897Cleaned up the FreeType 1/2 detection code in the configure script.
898Pdfinfo prints dates in a more readable format.
899Fixed a bug in the Paeth image predictor.
900Handle annotations with multiple states.
901Another workaround for buggy X servers: clip points that are way out
902  of bounds.
903Added libpaper support (for Debian).
904Generate PostScript DSC resource comments for PS (not just EPS)
905  files.
906The save and restore (q/Q) operators shouldn't save/restore the path.
907Performance optimization: disable pattern drawing in TextOutputDev.
908
9091.00a (2002-feb-25)
910-------------------
911Added an optimized special case for one-bit images in XOutputDev.
912Implemented CID TrueType font embedding; added a psEmbedCIDTrueType
913  option.
914The initialZoom X resource was broken.
915The reverse MacRoman encoding should return 32 for "space" (not 202,
916  which is an alternate encoding).
917Tweaks to the FreeType 2 support: only disable hinting if the bytecode
918  interpreter is disabled (i.e., disable autohinting but not bytecode
919  hinting); add some padding to the glyph cache for CJK fonts.
920Added level3 and level3Sep options for the psLevel setting and
921  corresponding -level3 and -level3Sep options to pdftops.
922Added a -level2 option to pdftops for consistency.
923Avoid a divide by zero in pdftotext.  [Thanks to William Bader.]
924Added a Greek language support package.  [Thanks to Alexandros
925  Diamantidis and Maria Adaloglou.]
926Don't bother trying to extract a "builtin" encoding from a TrueType
927  font.
928Accept either a page number or a page reference in a link
929  destination.
930Update the fontFixedWidth flag in GfxFont after reading the char
931  widths (used by the Acorn RiscOS port).
932Removed yet another (illegal but not caught by gcc) class specified
933  from a .h file.
934Avoid using snprintf - it's not available everywhere.
935Improved the CMYK->RGB transform.
936Use mkstemps where available.
937
9381.01 (2002-may-20)
939------------------
940Implemented Type 3 fonts.
941Implemented PostScript CID font embedding; added a
942  psEmbedCIDPostScriptFonts option.
943Implemented PostScript 16-bit font substitution; added psNamedFont16
944  and psFont16 options.
945Moved the initialZoom setting from X resources to the xpdfrc file.
946Implemented the radial shading type in the sh (shaded fill) operator.
947  [Thanks to Mike Sweet.]
948Added an 'include' command to the xpdfrc format.
949Added the displayNamedCIDFontX option so different fonts can be used
950  within one character collection.
951Added a simple reverse video mode (-rv switch, xpdf.reverseVideo
952  resource).
953Implemented stroked text in XOutputDev (with t1lib and FreeType2).
954  [Thanks to Leonard Rosenthol.]
955Implemented stroked text in PSOutputDev.
956Added a built-in Unicode map for UCS-2.
957New key binding in xpdf: 'g' activates the page number text field.
958PSOutputDev will now embed external TrueType fonts in addition to
959  external Type 1 fonts.
960The psEmbedType1Fonts and psEmbedTrueTypeFonts options were missing
961  the "Fonts" suffix.
962Documentation in xpdf.1 for -freetype option was wrong.
963Added the Big5ascii Unicode map to the Chinese-traditional support
964  package (maps 7-bit ASCII straight through).  [Thanks to Lawrence
965  Lai.]
966Modified the EUC-CN and EUC-JP encodings to pass 7-bit ASCII straight
967  through.  [Thanks to Lawrence Lai.]
968Avoid a divide by zero in XOutputDev.  [Thanks to Simon Burge.]
969Remove old code in openTempFile that removed an extension from the
970  name returned by tmpnam.
971Tweak the scrolling behavior when switching pages.  [Thanks to Case
972  Jones.]
973In the code that guesses character names (for font subsets), also
974  handle names of the form 'ABnnn'.  [Thanks to Colin Granville.]
975Fix the transform code for annotations.
976Improved the CMap file parser to handle more general PostScript
977  lexical conventions.
978Added '-enc' option to pdfinfo.
979Added the small caps and oldstyle numbers from Adobe's Unicode
980  corporate use area to the Latin1 and ASCII7 Unicode maps.
981The code in TextOutputDev that guesses Type 3 font size could generate
982  a zero size, which resulted in div-by-zero errors.
983Various tools (including Adobe's) occasionally embed Type 1 fonts but
984  label them Type 1C - so check for a '%!' at the start.
985Some tools embed Type 1C fonts with an extra whitespace char at the
986  beginning - just skip over it.
987Fixed a typo in the Simplified Chinese add-to-xpdfrc file.
988Updates to dj_make.bat and the djgpp build instructions.
989Added a Turkish language support package.
990Updated VMS build scripts.  [Thanks to Martin Zinser.]
991Modify the incremental display update code to redraw less often if
992  most of the commands are vector graphics, as opposed to text and
993  images.
994Tweak the Type 1 font bbox code to look at the bboxes in both the PDF
995  font object and the embedded font file.
996Fixed the ETenms-B5-H CMap file (for traditional Chinese) to map the
997  Latin characters to their proportional versions.
998Added an optional displayCIDFontX entry for one of the Arphic TrueType
999  fonts in the traditional Chinese 'add-to-xpdfrc' file.
1000Remove leading '-' on include statements in Makefiles.
1001Added psASCIIHex parameter.
1002Added the GBK Unicode map to the simplified Chinese language pack.
1003Pdftotext now opens the text file in binary mode to avoid Microsoft's
1004  annoying automatic end-of-line translation stuff.
1005Added an executeCommand function in goo/gfile.cc.  [Thanks to Mikhail
1006  Kruk.]
1007The %ALDImagePosition OPI comment was wrong if the page was scaled to
1008  a different paper size.
1009The OPI code was saving the default transform matrix before calling
1010  setpagedevice, which can change the matrix.
1011Fixed a crash when an inline image dictionary contains garbage.
1012Upgraded to autoconf 2.53.
1013Use unsigned int file offsets, to allow access to PDF files in the 2-4
1014  GB size range; use fseek64/ftell64 if available.
1015Fixed two floating point exception cases that came up with broken PDF
1016  files.
1017Avoid a crash when printing an error message regarding an unnamed
1018  font.
1019Default link border width should be 1.  [Thanks to Michael Pfeiffer.]
1020Minor tweak to build with FreeType 2.1.0.
1021Handle "weird" characters in PostScript font names.
1022PSOutputDev now handles PostScript XObjects.
1023Added several more page attributes for the pdftex project.
1024Transferred the copyright to Glyph & Cog, LLC.
1025
10262.00 (2002-nov-04)
1027------------------
1028Switched to the Motif toolkit.
1029Support multiple open documents (in separate windows).
1030Added document outlines to the viewer.
1031Modified the text extraction (placement) algorithm.
1032Implemented the JBIG2 decoder.
1033Added a Latin2 language support package.
1034Added support for movie annotations.
1035Switched back to native LZW decompression code.
1036Text extraction from Type 3 fonts was (partly) broken.
1037The owner password checking code was missing a step in the case of
1038  128-bit encryption.
1039Added the 'printCommands' option to the xpdfrc file.
1040Added key binding for '?' to bring up the about/help dialog.
1041In TextOutputDev, ignore any text that's outside the page bounding
1042  box.
1043Text extraction throws away "tiny" characters after the first 20000
1044  per page, to avoid really slow runtimes with PDF files that use
1045  special fonts to do shading or cross-hatching; added the
1046  'textKeepTinyChars' option to disable this behavior.
1047Text extraction discards duplicated text (fake boldface, shadow
1048  effects).
1049Added ctrl-F as a key binding for find.
1050Added a "find next" function, bound to ctrl-G.
1051Added ctrl-P as a key binding for print.
1052Modified the DCT decoder to handle progressive and non-interleaved
1053  JPEG streams.
1054Added key bindings for ctrl-Home and ctrl-End.
1055Allow the initialZoom setting to be made in either the xpdfrc file or
1056  as an X resource.
1057Added a Hebrew language support package.  [Thanks to Roy Arav.]
1058The "make distclean" target now creates (empty) Makefile.dep files in
1059  the three subdirectories.
1060Initialize XRef::ownerPasswordOk.
1061Correctly handle stroking of Type 3 fonts in PSOutputDev.
1062Generate correct PostScript for fonts with "weird" character names
1063  (e.g., "(").
1064Generate correct PostScript for images using Indexed color spaces with
1065  DeviceN base color spaces.
1066Added lowercase Roman numerals to ISO-2022-CN.unicodeMap (simplified
1067  Chinese support package).
1068Tweak the image scaling code to better handle flipped (top-bottom
1069  and/or left-right) images.
1070Generate correct PostScript code for inline images and images in Type
1071  3 fonts which are too large for a single PS string.
1072Correctly handle indexed color spaces whose base color spaces have
1073  component ranges other than [0,1].
1074Optimized the DCT decoder.
1075Fixed mistakes in the list of key bindings in the about/help dialog.
1076Optimized the Flate decoder.
1077Add literal names for punctuation and digits to the Unicode name
1078  table.
1079Cygwin's popen wants mode "r", not "rb".
1080Fixed a bug in the Type 4 function parser (the "if" operator wasn't
1081  parsed correctly).
1082Fix a bug in PS output for TrueType fonts with no PDF encoding.
1083Make the bbox size in FTFont more liberal (to avoid problems with
1084  fonts that have incorrect bboxes).
1085Reverse the colors in PBM files generated by pdfimages, so the common
1086  case (an image mask filled with black) comes out correct.
1087Add fseeko/ftello support which is basically identical to
1088  fseek64/ftell64.  [Thanks to Nassib Nassar.]
1089Modified column assignment in text extractor to account for characters
1090  that convert to multiple characters in the output encoding.
1091Fix TrueType fonts which have an incorrect cmap table length.
1092Work around a pragma bug in the version of gcc that ships with MacOS X
1093  10.2.  [Thanks to Frank Siegert and Andrew Stone.]
1094Fix a problem that was causing an infinite loop when a damaged content
1095  stream contains an 'ID' command inside a dictionary.
1096Handle the case where systempapername() returns NULL (libpaper
1097  support).
1098Handle fonts which are defined directly in the font resource
1099  dictionary rather than as separate objects.
1100Track process colors in Level 1 separable PostScript.
1101Pdfinfo now checks the return value from mktime to avoid seg faults in
1102  flakey strftime implementations.
1103If duplex is not enabled in PostScript output, leave the duplex
1104  setting alone, allowing the spooler to insert its own setting.
1105Added three missing fclose calls.
1106Change the default encoding for TrueType fonts (used when the PDF file
1107  doesn't specify an encoding) from MacRomanEncoding to
1108  WinAnsiEncoding.
1109Move X_CFLAGS to the end of the list in CXXFLAGS (in Makefile.in) to
1110  avoid some of the FreeType2 include path problems.
1111Fixed an obscure bug in the LZW decoder.  [Thanks to Martin
1112  Schroeder.]
1113Fixed a bug in decryption when using the newer (PDF 1.4) algorithm
1114  with shorter-than-128-bit keys.
1115Minor optimization for image data streams: the ImageStream class can
1116  return an entire buffered line.
1117
11182.01 (2002-dec-05)
1119------------------
1120Redesigned the text extraction process:
1121  - process the text into "reading order"
1122  - added a "-layout" flag to pdftotext to switch back to the old
1123    style, where physical layout is maintained
1124  - use of the "-raw" flag is no longer recommended
1125Added the -reload option for xpdf (in remote mode).
1126Added support for external CID fonts; added the displayCIDFontT1 and
1127  displayNamedCIDFontT1 commands to the xpdfrc file.
1128Handle the case of moveto/newpath/clip, which defines an empty
1129  clipping region (just like moveto/closepath/clip).
1130Accept XYZ link destinations with missing array elements.
1131Fix some problems with state save/restore triggered by Type 3 fonts
1132  that reference other fonts.
1133Accept bogus font names based on "Symbol": Symbol,{Bold,Italic,
1134  BoldItalic}.
1135Fixed color and font resource names in the xpdf man page.
1136Was using delete instead of gfree in OutlineItem::~OutlineItem.
1137Set the busy cursor in the find dialog while searching.
1138Map variants of the copyright, trademark, and registered trademark
1139  symbols to the proper Unicode codes, not to Adobe's corporate use
1140  area codes.
1141Fixed a floating point exception bug in TextOutputDev (check for a
1142  too-small denominator).
1143Fixed a typo in TextOutputDev, in the code that generating blank lines
1144  to add vertical whitespace.
1145Config files whose last line didn't end with a LF (or CR+LF) weren't
1146  being handled correctly.
1147The code that handled CIDToGIDMaps in Type 2 CIDFonts was broken.
1148Check the per-glyph bounding box in Type 3 fonts, and don't try to
1149  cache glyphs with bogus bboxes.
1150Allow ToUnicode CMaps to use fewer than four hex digits in the Unicode
1151  char indexes.
1152Added multithreading protection to the GlobalParams class.
1153Fixed a bug in end-of-stream detection with the TIFF predictor.
1154Added some characters to MacRomanEncoding to match up with Apple's
1155  definition.
1156
11572.02 (2003-mar-24)
1158------------------
1159Rewrote the text extractor code that assembles words into lines to
1160  better handle vertically overlapping lines.
1161Add the "match" option for paper size (in PostScript output).
1162Added support for external 16-bit TrueType fonts; added the
1163  displayCIDFontTT and displayNamedCIDFontTT commands to the xpdfrc
1164  file.
1165Added an Arabic language support package.
1166Added the Windows-1255 encoding to the Hebrew language package.
1167A missing NULL check was causing a crash when closing the file in a
1168  single window (which clears out the window, but leaves it open).
1169Deal with TrueType fonts whose glyph data is out of order - this
1170  affected both FreeType rasterization and PostScript generation.
1171Munge font names in PSOutputDev to avoid names that are problematic
1172  for ghostscript because they start with an out-of-limits number
1173  (e.g., 1e999foo).
1174Modify the TrueType font encoding deciphering algorithm in yet another
1175  attempt to match up with Acrobat's behavior.
1176Bounds check the indexHigh value in indexed color spaces.
1177The text extractor no longer bothers trying to get an average
1178  character width for Type 3 fonts, since it generally doesn't work
1179  very well (because Type 3 metrics are unreliable).
1180Don't crash if the user hits ctrl-G ("find again") before doing a
1181  find.
1182Set the button pixmap foreground color correctly.
1183Handle text drawn backward on 180 degree rotated pages.
1184Added a magic call to XtUngrabButton after calling XmCreatePopupMenu
1185  which appears to prevent some very odd problems (idea taken from the
1186  DDD source code).
1187Fix the MacOS X fix (needed to include <AvailabilityMacros.h>).
1188Fixed a bunch of Motif 1.x / X11R5 incompatibilities.  [Thanks to
1189  William Bader and Albert Chin-A-Young.]
1190Fixed various bugs in previously untested code in the JBIG2 decoder.
1191Modify the XPDFCore destructor to avoid a bogus warning message from
1192  OpenMotif 2.2.
1193Modified the Type 1C font parser to do proper bounds checking.
1194Fixed the bounds checking in the TrueType font parser.
1195Text extractor shouldn't do block merging in physical layout mode.
1196Fixed a problem in PSOutputDev in level2sep mode with images in a
1197  Separation color space and with a non-default Decode array.
1198Text extraction with "-raw" was concatenating lines from the bottom of
1199  one column and the top of the next.
1200Handle Type 1C subroutines in the font converters.
1201Correctly handle progressive JPEG images whose scans are slightly
1202  different sizes (e.g., the Y scan rounds up to a multiple of 8
1203  pixels and the Cb/Cr scans round up to 16 pixels).
1204Avoid a potential divide-by-zero problem in TextOutputDev.
1205Modified the T1Font and FTFont modules to correctly handle glyphs that
1206  are larger than the font's claimed bounding box.
1207Tweak dupMaxDeltaX parameter in TextOutputDev to avoid triggering on
1208  double characters.
1209Improved detection in pdfinfo for ISO paper sizes.  [Thanks to Hartmut
1210  Henkel.]
1211Xpdf wasn't responding to the TARGETS atom, which prevented pasting
1212  the selection into various applications.  [Thanks to Phillip Ezolt.]
1213Handle XObjects with recursive references in their Resources
1214  dictionaries (in PSOutputDev).
1215Change PSOutputDev to deal with invalid PDF files that use
1216  non-embedded TrueType fonts with no encoding.
1217Check for undersized Widths arrays in fonts.
1218Add bounds checking code to Array class.
1219Updated VMS build scripts.  [Thanks to Martin Zinser.]
1220Tweak the TrueType font handling code (again):
1221  - char codes in symbolic fonts may or may not be offset by 0xf000
1222  - discard empty tables because they sometimes confuse FreeType
1223Fixed bounds checking in the Flate decoder.
1224Removed a bogus error message for exponential functions without
1225  explicit C0/C1 values.  [Thanks to Hartmut Henkel.]
1226Handle the other Unicode cmap type (platform=0) in TrueType fonts.
1227Added support for the SGI Motif horizontal paned window widget.
1228  [Thanks to Felix Ritter.]
1229Ignore extra elements in link destination arrays.
1230Accept external Type 1 font files with a suffix of ".ps" or no suffix
1231  at all.
1232Add a bounds check in the DCT decoder.
1233Added instructions for building xpdf.exe under cygwin/XFree86.
1234Tweaked the word separation parameter for raw-mode text extraction.
1235
12362.03 (2003-oct-10)
1237------------------
1238Rewrote the text extractor to:
1239  - do a better job with rotated text;
1240  - handle right-to-left scripts;
1241  - be faster.
1242Changed the zoom setting to use a percentage (relative to 72 dpi)
1243  instead of a zoom "factor".
1244If the PDF file has an outline, open the outline pane initially.
1245Added -f and -l options to pdfinfo; print multiple page sizes.
1246The HAVE_XTAPPSETEXITFLAG test in XPDFApp.cc was backwards.
1247The BitsPerComponent entry is optional in image mask objects.
1248Render any annotation with an appearance stream, instead of just
1249  Widget and Stamp annotations.
1250Fix a bug in the TrueType font checker: the test for an unsorted
1251  'loca' table was wrong.
1252Modify the TrueType cmap selection algorithm yet again to try to match
1253  Adobe's behavior.
1254Changed sqrt(2) to sqrt(2.0) in pdfinfo.cc to make various compilers
1255  happy.
1256Fixed a deadlock problem (when MULTITHREADING is set); cleaned up some
1257  other problems with the locking code.
1258Fixed a bug in the interpolation code for type 0 (sampled) functions.
1259Implemented type 1 (function-based) shaded fills.
1260Fixed some stupid bugs in the JBIG2 decoder (introduced with the
1261  previous optimization work).
1262Fixed a typo in the code that parses vertical font metrics for CID
1263  fonts that was causing a seg fault.
1264Fixed a couple of bugs that were causing seg faults with badly damaged
1265  PDF files.
1266Limit the number of nested Forms to avoid infinite recursion (in buggy
1267  PDF files).
1268Add a special case for rectangular clip regions - make sure these
1269  don't drop pixels on the right and bottom edges.
1270Tell FreeType not to use glyph bitmaps when in anti-aliased mode.
1271Read all of the border style info for links.
1272All of the shaded fill types now do at least one bisection to avoid
1273  problems when the colors at the endpoints of the domain are the
1274  same.
1275If the Length2 parameter for an embedded Type 1 font was incorrect
1276  (too small), pdftops was losing font data.
1277Deal with (broken) DCT streams that use the same component ID number
1278  for different components.
1279The MediaBox page attribute was not being inherited correctly.
1280Fixed a bug in the Type 1C font converter related to local
1281  subroutines.
1282The Type 1C -> Type 1 font converter was allocating the font dictionary
1283  one slot too small.
1284Added a missing private dictionary entry to Type 1 fonts generated by
1285  the Type 1C converter.  [Thanks to Michael Shell.]
1286Fixed bugs in the tiling pattern fill code.
1287Try the TrueType 0xf000 char code offset hack for the MacRoman
1288  encoding too (in addition to MS Symbol).
1289Update the font metrics info for the Base 14 fonts to include the Euro
1290  character.
1291SECURITY HOLE: Escape various characters in URLs before running a web
1292  browser (or movie viewer).  [Fixed in 2.02p11]
1293SECURITY HOLE: In the dialog used to verify "launch" links, provide a
1294  scrolling view if the command to be run is excessively long.  [Fixed
1295  in 2.02p11]
1296Added an option to disable insertion of page breaks (form feed
1297  characters) in extracted text (pdftotext -nopgbrk; xpdfrc
1298  "textPageBreaks" option).
1299Check for 8-bit fonts that specify an out-of-range FirstChar or
1300  LastChar.
1301Correctly handle an obsolete Type 2 charstring op (in the Type
1302  1C-to-Type 1 font converter).  [Thanks to Helge Blischke.]
1303Use the font encoding info to fill in holes in the ToUnicode map.
1304Added character names for Bulgarian (in the Cyrillic support pacakage)
1305  and Greek.
1306Handle clipping to text in xpdf and pdftops.
1307Fix color space detection in DCT decoder.  [Thanks to Dwight Kelly.]
1308Added the "unicodeToUnicode" xpdfrc option, intended (initially) for
1309  Arabic support.
1310Handle the case in PSOutputDev where two font objects refer to the
1311  same embedded TrueType font, but with different encodings.  [Thanks
1312  to Frank Siegert.]
1313Kill any pre-existing path before drawing a form (or annotation).
1314Save state before rendering page content; restore state afterward.
1315Fix Stream::reset/close to work correctly with encoder streams; fix
1316  PSOutputDev to use Stream::close consistently.
1317Fix a seg fault when hitting the 'back' button after closing a file.
1318GfxState::getStrokeGray was returning the fill gray value (this only
1319  affected Level 1 PS output).
1320Change PSOutputDev to reuse dictionaries in Level 1 mode (since Level
1321  1 PS interpreters don't do garbage collection).  [Thanks to Frank
1322  Siegert.]
1323PSOutputDev was generating incorrect translations for landscape-mode
1324  pages.
1325Implemented shading pattern color spaces.
1326PSOutputDev wasn't correctly handling Type 3 fonts which used image
1327  resources (as opposed to inline images).  [Thanks to Frank Siegert.]
1328The fix from 1.00 which clipped out-of-bounds points was a bit too
1329  aggressive.
1330Do proper Floyd-Steinberg dithering in XOutputDev.
1331Don't automatically check for a null owner password (to match Adobe's
1332  behavior).
1333Allow the FlateDecode filter in Level 3 PostScript output.
1334Fixed small bugs in the Type 1C -> Type 1 converter and Type 1C ->
1335  Type 0 converter.  [Thanks to Tom Kacvinsky.]
1336Work around another weird Motif problem with the right button menu
1337  (which was sometimes causing the menu to not be displayed).
1338Make the code that handles fonts defined directly in the resource dict
1339  more robust.
1340Add a brief description of the outline pane to the xpdf man page.
1341Ignore extra operands to content stream operators.
1342Fixed a bug in the CCITTFax decoder.
1343Allow the Count entry in a Pages dictionary to be a real number
1344  (because some PDF generators actually do this).
1345Shading pattern fills weren't being clipped correctly.
1346Incorrect shallow copies in GfxRadialShading and StitchingFunction.
1347The StitchingFunction destructor wasn't checking for funcs being
1348  NULL.
1349Change the TrueType code-to-GID mapping code so it looks at the
1350  TrueType 'post' table.
1351Set the print command in the print dialog once at startup, don't
1352  change it each time a file is (re)loaded.
1353Generate the %%BoundingBox comment in regular PostScript files (not
1354  just EPS files).
1355Fixed a bug in the Unicode CMap parser.
1356
13573.00 (2004-jan-22)
1358------------------
1359New PDF rasterizer ("Splash").
1360Added support for PDF 1.5:
1361  - JPX (JPEG 2000) decoder
1362  - XRef streams
1363  - object streams
1364  - DeviceN color spaces with up to 32 components
1365  - Added new CMaps to the CJK language support packages
1366Replaced pdftopbm with pdftoppm (which can generate PBM, PGM, and PPM
1367  files).
1368Reorganized the font file parser code into a new library ("Fofi").
1369Removed support for FreeType 1.x.
1370Removed support for X server fonts - Xpdf (and pdftoppm) will now
1371  search for the URW fonts (from ghostscript).
1372Changed the "-t1lib" and "-freetype" switches; replaced the
1373  "t1libControl" and "freetypeControl" config file options with
1374  "enableT1lib", "enableFreeType", and "antialias".
1375Added the "-box" option to pdfinfo.
1376Added imageable area support to PSOutputDev (for CUPS); added the
1377  "psImageableArea" config file option.
1378Added the "-nocrop", "-expand", "-noshrink", and "-nocenter" switches
1379  to pdftops; added the "psCrop", "psExpandSmaller", "psShrinkLarger",
1380  and "psCenter" config file options.
1381Dictionary size was in PostScript code generated for Type 3 fonts.
1382The PS code generated for images in Type 3 characters was broken.
1383Tweaked the text extractor.
1384Accept xref entries that are one byte too short (matching Adobe's
1385  behavior).
1386Change things so "xpdf -h" and "xpdf -v" work if DISPLAY isn't set.
1387Fix a problem in the damaged file repair code that handles the trailer
1388  dictionary.
1389Use the "Last" entries in "Outlines" objects - this avoids a problem
1390  with PDF files generated by buggy software that, e.g., sets the last
1391  item's Next pointer to point to itself.
1392PSOutputDev was not handling DeviceN color spaces correctly in Level 2
1393  images.
1394Fixed a stupid little bug that broke PS output for JBIG2 images.
1395Work around a Lesstif bug: set up an extra callback so hitting <Enter>
1396  in the find dialog performs a search.  [Thanks to Elliott Hughes.]
1397Pdftops was crashing on zero page PDF files.
1398Add an AC_PREREQ call to configure.in.
1399Change the 'find' dialog so the text entry box resizes with the
1400  dialog.
1401Skip extraneous zero bits at the start of a CCITTFax stream.
1402The PostScript text clipping operator was missing a 'newpath'.
1403  [Thanks to Frank Siegert.]
1404Fix a bug in tiling patterns with bboxes that don't start at (0,0).
1405Fix a bug in Type 3 font handling with rotated text.
1406The tiled pattern fill code was destroying the current path, which
1407  broke the fill+stroke operators when the fill color space was a
1408  tiled pattern.
1409ICCBased color spaces don't always set their Ranges values correctly,
1410  so just use the values from the alternate color space.
1411Modified GHash to accept int or void* - this avoids some conversion
1412  warnings.
1413Check for missing Type 3 CharProcs - avoid a segfault.
1414Pdffonts now marks all Type 3 fonts as embedded.
1415Outline entries with no Title string weren't being handled correctly,
1416  resulting in segfaults.
1417PSOutputDev now forces the text horizontal scale factor to be non-zero
1418  to avoid singular font matrices in the PS code.
1419Tweaked the error recovery in the CCITTFax decoder.
1420The LZW/Flate predictor should treat any Predictor value (in the
1421  stream dictionary) >= 10 identically.
1422PSOutputDev and pdffonts check for NULL font objects (which can
1423  happen, e.g., because of missing CMap files).
1424Swap the left and right mouse wheel button numbers.
1425EPS output ("pdftops -eps") now uses the CropBox instead of the
1426  MediaBox as the EPS bounding box.
Note: See TracBrowser for help on using the repository browser.