"Fossies" - the Fresh Open Source Software Archive 
Member "xpdf-4.04/CHANGES" (18 Apr 2022, 139475 Bytes) of package /linux/misc/xpdf-4.04.tar.gz:
As a special service "Fossies" has tried to format the requested text file into HTML format (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
See also the latest
Fossies "Diffs" side-by-side code changes report for "CHANGES":
4.03_vs_4.04.
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
365 0.80 (98-nov-27)
366 ----------------
367 Support for some Japanese fonts (Type 0 fonts using the Adobe-Japan1-2
368 character collection, horizontal only).
369 Added pdfinfo application.
370 Added pdftopbm application.
371 Added pdfimages application.
372 Added -papercolor option and .paperColor resource.
373 Fixed divide-by-zero problem in XOutputDev Type 3 font matrix kludge.
374 Font subset char names can be 'Bxx' as well as 'Cxx' and 'Gxx'.
375 Fixed bug in color space conversion in DCTStream filter (YCC->RGB was
376 correct, YCCK->CMYK was broken).
377 Added XRef::getDocInfo() and PDFDoc::getDocInfo() to support pdfinfo.
378 Optimized GfxImageColorMap.
379 Lexer::getStream(), getPos(), and setPos() check for null stream.
380 Decryption code now does strings as well as streams.
381 ASCII85 decoder rounds short tuples up instead of down.
382 CropBox and MediaBox can be non-integers.
383 PostScript output:
384 - Use a rectangle operator.
385 - Call setpagedevice with page size.
386 - Insert %%PageOrientation comments.
387 - Add paper size flags (-paperw and -paperh) to xpdf and pdftops.
388 - If HAVE_POPEN is not defined, and user tries to print to '|...',
389 the PSOutputDev destructor tried to write to the PS file.
390 - Added support for forms (pdftops -form).
391 Removed error messages for empty paths in stroke, fill, etc. operators.
392 Don't allow flatnesses less than 1 in XOutputDev (this speeds up
393 rendering a little bit when there are lots of tiny curves).
394 Moved the font subset character name guessing from GfxFont to
395 XOutputDev and TextOutputDev - now these files print correctly.
396 Cast argument to XFree() to XPointer; add XPointer definition where
397 necessary (portability fixes).
398 Various minor VMS fixes.
399 Changes to configure script and Makefiles:
400 - Print a warning if X is missing.
401 - Use C++ when checking select() argument type (HP-UX).
402 - Use 0 instead of NULL when checking select().
403 - Default to gcc instead of c++.
404 - Get rid of AC_C_INLINE -- this is meant for C, not C++.
405 - Changed -USE_GZIP to -DUSE_GZIP.
406 - Added ability to compile ouside of the source tree.
407 - Added .cc.o rule to {goo,ltk,xpdf}/Makefile.in.
408 - Added @LIBS@ to XLIBS in xpdf/Makefile.in.
409 - In top-level Makefile.in: added '-' to clean commands; added
410 distclean rule.
411 - Create install directories.
412 - Use INSTALL_DATA (instead of INSTALL) for man pages.
413 - Changed xpdf-ltk.h rule to avoid leaving an empty file when
414 ltkbuild fails.
415 - Change things so that by default, ltkbuild is not built and
416 xpdf-ltk.h is not rebuilt.
417 - Use AM_PROG_CC_STDC to add compiler flags for ANSI C.
418 - Modify autoconf's builtin macros to check for xlC.
419 - Use Steve Robbins' smr_CHECK_LIB to test for pixmap library (Xpm)
420 -- this should fix the problems on systems that have the library
421 but not the include file.
422 - Added better test for sys/select.h, sys/bsdtypes.h, strings.h,
423 bstring.h.
424 - New VMS make scripts from Martin P.J. Zinser.
425 - Moved dependences into Makefile.in -- this gets rid of problems
426 with 'cc -MM' (which is gcc-specific) and 'include Makefile.dep'
427 (which isn't supported by all make implementations). Also changed
428 all non-system include files to '#include "..."' (from '<...>').
429 Tweaked the TextOutputDev heuristics slightly.
430 Modify Gfx to use a stack of resources -- this is necessary for Form
431 XObjects, which can define their own local resources; also modified
432 PSOutputDev to dump fonts used by forms.
433 Look for excessively large MediaBox (compared to CropBox) and shrink
434 it to CropBox.
435 Minor fix to scrolling when dragging a selection.
436 Various patches for pdftex and Win32 support.
437 Deal with Separation colorspaces by using their alternate colorspace
438 entry.
439 Added PBMOutputDev for pdftopbm application.
440 Added ImageOutputDev for pdfimages application.
441 Separated XOutputDev into LTKOutputDev + XOutputDev.
442 Added support for 1-D and mixed 1-D/2-D (Group 3) decoding to
443 CCITTDecode filter.
444 Added resetImage(), getImagePixel(), and skipImageLine() to Stream
445 class; used these in XOutputDev, PSOutputDev, and ImageOutputDev.
446 Implemented predictor for LZW and Flate filters.
447 In pdfImM1 in PSOutputDev prolog: div should be idiv.
448 Changed output from printUsage() function in parseargs to look nicer.
449
450 0.90 (99-aug-02)
451 ----------------
452 Added Type 1/1C font rendering, using t1lib.
453 Added "backward" and "forward" buttons.
454 Added fit-page and fit-page-width zoom factors; replaced zoom-in and
455 zoom-out buttons with a zoom popup menu.
456 Type 1C fonts are converted to Type 1 and embedded in PostScript.
457 Support vertical Japanese text.
458 Added Japanese text support (EUC-JP) to pdftotext.
459 Bumped PDF version to 1.3. Added stub functions for ri and sh
460 operators. (But there are still some missing 1.3 features.)
461 Added -raw option to pdftotext.
462 Minor changes to allow compiling under MS Visual C++ 5.0.
463 Top-level makefile: changed 'mkdir -p' to '-mkdir -p'.
464 Configure script: added X_CFLAGS to smr_CHECK_LIB(Xpm).
465 Added Xpm_CFLAGS to xpdf/Makefile.in (this is needed to get the -I for
466 the xpm includes).
467 Rewrote code that handles font encodings; added support for Type 1C
468 fonts.
469 In the setpagedevice dictionary in PostScript output - added a
470 /Policies entry which tells the PS interpreter to scale the page to
471 fit the available paper.
472 Changed PageUp behavior slightly: move to bottom (instead of top) of
473 previous page.
474 TextPage used character's dx (width + char space) instead of just its
475 width.
476 Read base URI from document Catalog (for URI-type links).
477 Minor change to configure script to avoid using 'unset'.
478 Fixed bugs in CropBox inheritance.
479 Fixed a bug in resource stack handling for form objects.
480 Display forms even if they have a missing/incorrect FormType.
481 Fixed a bug in stream predictors -- the predictor parameters (width,
482 comps, bits) don't need to match the actual image parameters.
483 Completely rearranged the predictor code.
484 Fixed PostScript output to correctly handle stream predictors.
485 Don't segfault on empty (zero-page) documents.
486 Added the xpdf.viKeys feature.
487 Added the ffi and ffl ligatures to XOutputDev and TextOutputDev.
488 Pdftotext and pdfimages now check okToCopy().
489 Added a '-q' flag to all programs (except pdfinfo) to suppress
490 messages and errors.
491 Deal with DeviceN colorspaces by using their alternate colorspace
492 entry.
493 Change PostScript output so setpagedevice is only called once, at the
494 very beginning of the document (to avoid problems on duplex
495 printers).
496 Changes to configure script and makefiles for DOS/DJGPP.
497 FontEncoding::getCharCode() looked for (code>0) instead of (code>=0).
498 Added keypad arrow keys, etc. to xpdf.
499 Minor changes to gfile.{h,cpp} (<windows.h>) to compile under VC++.
500 Fixed CCITTFaxStream to correctly handle all parameters.
501 Modifications to gfile.{h,cc} for Acorn.
502 Some minor changes for OS/2.
503 Added 'SHELL = /bin/sh' to Makefiles.
504 Compare file version to pdfVersionNum+0.0001 to avoid floating point
505 precision problems.
506 Added LDFLAGS to Makefiles.
507 Removed strip entirely from configure and Makefiles.
508 Fixed a bug in choosing the correct DCTStream color transform.
509
510 0.91 (2000-aug-14)
511 ------------------
512 Added TrueType font rendering, using FreeType.
513 Support for Chinese fonts (Type 0 fonts using the Adobe-GB1-2
514 character collection).
515 Decryption code is included with the main distribution (now that the
516 US export regulations are a little bit less irrational).
517 Added (very basic) support for generating PostScript with Japanese
518 fonts -- only tested with ghostscript so far.
519 Added support for generating EPS files (pdftops -eps).
520 Much-improved image filtering in xpdf (for downsampling and for
521 transforms other than 0/90/180/270-degree rotations).
522 Implemented a basic full-screen (presentation) mode (xpdf
523 -fullscreen). (There is currently no way to switch between window
524 and full-screen modes on the fly -- this will be fixed in a later
525 release.)
526 Added "reload" menu item.
527 Do a better job with anti-aliased Type 1 fonts on non-white
528 backgrounds.
529 Handle Lab color spaces.
530 Handle non-null user passwords.
531 Avoid security hole with tmpnam()/fopen() -- added openTempFile() in
532 goo/gfile.cc. [Thanks to Joseph S. Myers for pointing this out.]
533 Filter out quote marks (' and ") in URLs before running urlCommand to
534 avoid a potential security hole. [Thanks to Frank Doepper for
535 pointing this out.]
536 Fixed TrueColor detection to look at the complete list of available
537 visuals, not just the default visual.
538 In gfile.h, changed NAMLEN(dirent) macro to NAMLEN(d).
539 Removed copyright character from start-up banners.
540 In the open and save dialogs, if the open/save button is pressed with
541 no file name, the dialog is not canceled.
542 Added Xpm_CFLAGS to ltk/Makefile.
543 XOutputDev::updateLineAttrs was using dashLength before it was
544 defined.
545 In top-level Makefile.in, use INSTALL_PROGRAM instead of INSTALL.
546 In man page, recommend -q instead of -err in .mailcap.
547 Changes for GNOME / Bonobo support:
548 - Separated Stream classes into BaseStream and FilterStream trees.
549 - Got rid of all FileStream-specific stuff.
550 - Added a PDFDoc constructor that takes a BaseStream* instead of a
551 file name.
552 Allow newlines inside strings (Photoshop does this).
553 Don't require whitespace between tokens in consecutive content
554 streams (for pages that specify an array of streams).
555 Look at MissingWidth when constructing font character widths array.
556 Fixed a bug that caused incorrect PostScript output for images that
557 use 8-bit indexed color spaces with < 256 colors in the palette.
558 Handle case where embedded font file is bad (this was seg faulting).
559 Minor changes for Windows/pdftex.
560 Work around a bug in PDF files from the IBM patent server.
561 Fixed bugs in PostScript form generation: use pdfStartPage instead of
562 pdfSetup; problem with inline images.
563 Minor bug fix in FlateStream::loadFixedCodes().
564 Added %%DocumentMedia and %%PageMedia comments to the PostScript so
565 that gsview (a Windows frontend for ghostscript) gets the right
566 paper size.
567 Draw AcroForm fields that have appearance annotations.
568 Bounds check gray, CMYK, and RGB values (in GfxColor).
569 Moved the link border drawing code into Page (from PDFDoc).
570 Minor modifications for pdftohtml.
571 PSOutputDev: use the Type 3 font scaling kludge from XOutputDev.
572 Separation color spaces were handled incorrectly in images.
573 Fixed a bug with form bounding boxes.
574 Modified the t1lib support -- replace libt1x code with my own code.
575 Type 1 and TrueType fonts are now handled similarly, and clipping
576 works on Type 1 fonts.
577 Don't print copyright banner (xpdf); add -v switch to get copyright
578 and version info (all apps); get rid of -err switch (xpdf).
579 Automatically reload the PDF file if it has been changed, i.e., if the
580 modification time is different.
581 Fixed a memory (malloc size) bug in CCITTFaxStream.
582 Fixed two bugs in FontEncoding::hash() -- handle zero-length character
583 names (which were found in a (buggy?) PDF file), and handle
584 character names with high-bit-set characters (use unsigned ints).
585 Added PDFDoc::isLinearized() and corresponding code in pdfinfo.cc.
586 Handle files with an incorrect page count in the Pages dictionary
587 (FOP, from the Apache project produces a page count of 0).
588 Handle TrueType equivalents to the Base14 fonts (Arial, TimesNewRoman,
589 CourierNew) -- Adobe's tools use these names without embedding the
590 fonts.
591 Tweaked the Type 3 font sizing kludge.
592 Changed pdfimages (ImageOutputDev) so it doesn't output JPEG files for
593 4-component color spaces, since these seem to confuse most image
594 viewers.
595 Added support for generating OPI comments (pdftops -opi).
596 In XOutputDev::drawImage() and drawImageMask(), check for images that
597 are completely off-page.
598 Use the provided alternate or a default (DeviceGray/RGB/CMYK) color
599 space for ICCBased color spaces.
600 Incorporated MacOS-specific code from Leonard Rosenthol.
601 Configure script switches to C++ for the strings.h/bstring.h test.
602 Gfx::opRestore() calls clearPath() to handle (apparently) buggy PDF
603 files produced by FreeHand.
604 The /Type field in most dictionaries is optional (PDF 1.3 change).
605 Move printCommands variable definition into Gfx.cc.
606 If page is smaller than paper, center the PostScript output.
607 Fix a minor bug in the SELECT_TAKES_INT detection in the configure
608 script.
609 TextOutputDev filters out control characters.
610 Changed enough occurrences of 'char *' to 'const char *' to keep gcc
611 2.95 from barfing.
612 Support for Latin-2 and Latin-5 in pdftotext (however, this will only
613 work if the PDF file contains correct font encodings, which seems to
614 be rare).
615 TextOutputDev converts "eightoldstyle" to "eight", etc.
616 Don't use the return value from sprintf() -- most systems return the
617 length, but some return the string.
618 Minor fixes for SunOS 4.
619 Configure script looks for both select() and fd_set in sys/select.h.
620 Configure script checks for gethostbyname() in -lbsd (for LynxOS).
621 Fix missing closepath bug in PostScript output.
622 Change PostScript portrait/landscape mode selection so it only uses
623 landscape if the page width is greater than the paper width.
624 Tweaked the VMS code in makePathAbsolute().
625
626 0.91a (2000-oct-11)
627 -------------------
628 Implemented separable CMYK PostScript output (the -level1sep switch to
629 pdftops).
630 Implemented Pattern color spaces with tiling patterns (polygon fills
631 only).
632 Implemented Stamp annotations.
633 Implemented Named link actions.
634 Fixed a really dumb bug in the TrueColor code in SFont (which affects
635 both Type 1 and TrueType font rendering on 16-bit displays).
636 Rewrote the GfxColorSpace / GfxColor code.
637 Switched from djgppcfg to dj_make.bat (from Michael Richmond).
638 Bug in the Type 1 encoding parser -- couldn't handle lines of the form
639 'dup NNN/name put' (with no space between the code and the name).
640 Fixed the mkstemp() test in configure.in -- switched from
641 AC_TRY_COMPILE to AC_TRY_LINK and added <unistd.h>.
642 Added DESTDIR to top-level Makefile.in.
643 Fixed an incorrect OPI comment in PSOutputDev.
644 Minor tweak to the CCITTFax code to avoid writing past the end of an
645 array on an invalid data stream.
646 Xpdf crashed if the user selected 'reload' when no document was
647 loaded.
648 Look for character names of the form "xx" (two hex digits with no
649 leading alphabetic char) and 'cNNN' (decimal digits with a leading
650 alphabetic char that happens to be a hex digit).
651 FlateStream didn't correctly handle zero-length streams.
652 Xref reconstruction didn't handle the case where the opening "<<"
653 immediately followed "trailer" with no intervening whitespace.
654 Fix the %%DocumentSuppliedResources comment in EPS output.
655 Scale annotations to fit their rectangles.
656 Added Stream::close() to handle cases (e.g., patterns) where a Stream
657 object is used multiple times before it is deleted.
658 Added the topLevel arg to Gfx::go() so it doesn't call out->dump() for
659 every pattern element (and form).
660 Rearranged the GfxResources class.
661 Clean up white space handling in Lexer.
662 Make the dpi parameter to PDFDoc::displayPage etc. a double - this
663 avoids margin gaps with fit-page and fit-width.
664 Fix a rounding problem in xpdf.cc that was causing the window to
665 sometimes be one pixel too small.
666 Fixed a minor bug in dealing with Base-14 TrueType font names.
667 Fixed Lab -> RGB color space conversion.
668 Added support for opacity values (from PDF 1.4) to GfxState and
669 OutputDev. [Thanks to Leonard Rosenthol.]
670 Implemented type 2 functions; rearranged the Function class
671 hierarchy.
672
673 0.91b (2000-oct-29)
674 -------------------
675 Print a warning about Type 3 fonts (XOutputDev, PSOutputDev).
676 Added the scroll lock behavior to 'n' and 'p' keys in xpdf.
677 Change FileStream buffer size to a #define'd constant.
678 Renamed Pattern to GfxPattern to avoid clashes with Windows and MacOS
679 types.
680 Added CNS (Big5) Chinese font support (CHINESE_CNS_SUPPORT); renamed
681 CHINESE_SUPPORT to CHINESE_GB_SUPPORT.
682
683 0.91c (2000-nov-19)
684 -------------------
685 Fix an endianness problem in the Type 1 font code which resulted in an
686 incorrect display with "-t1lib plain" on big-endian systems.
687 CCITTFax stream decoder will skip over extra zero bits at end of line,
688 even if EncodedByteAlign flag wasn't set.
689 Added Big5 support to pdftotext (with CHINESE_CNS_SUPPORT enabled).
690 Fixed a typo in the CNS/Big5 encoding translation table.
691 Change the form code in PSOutputDev to store images in arrays of
692 strings.
693 The xref reconstruction (for damaged files) now also looks for
694 'endstream' tags, and the parser uses this information when setting
695 up stream objects.
696 In pdfinfo, convert Unicode chars in the 00xx range into 8-bit chars;
697 print a warning if there are any other Unicode chars.
698
699 0.92 (2000-dec-03)
700 ------------------
701 Fixed %%BeginResource comment (for xpdf procset) in PostScript
702 output.
703 Added "-title" switch and "xpdf.title" resource to set the window
704 title.
705 Check for <freetype.h> in addition to <freetype/freetype.h>.
706 Upgraded the configure script to smr_macros 0.2.4 - this should fix a
707 bug where configure wasn't correctly finding t1lib.
708
709 0.92a (2000-dec-17)
710 -------------------
711 Added 'extern "C" { ... }' in various places for ANSI C++ compliance.
712 Tweaked the code that figures out DPI for fit-to-page and fit-to-width
713 modes.
714 Fixed the image transformation code in XOutputDev -- no more missing
715 lines.
716 Implemented color key image masking in XOutputDev.
717
718 0.92b (2001-jan-07)
719 -------------------
720 Fixed a bug in the error-checking code in the Separation/DeviceN color
721 space parsing functions. [Thanks to Lidia Mirkin.]
722 Added wheel mouse support (mouse buttons 4 and 5). [Thanks to
723 Thorsten Schreiner.]
724 Added preliminary support for FreeType 2 (disabled by default).
725
726 0.92c (2001-jun-04)
727 -------------------
728 Fixed a bug in the new image transformation code.
729 Look for character names of the form "<letter><digit><digit>", instead
730 of looking for names beginning with a few specific letters.
731 T1FontFile::T1FontFile wasn't initializing vars, and ~T1FontFile
732 wasn't checking before calling T1_DeleteFont -- this caused crashes
733 if it tried to open a nonexistent font file.
734 Catalog::Catalog didn't set baseURI to NULL early enough.
735 Tweak the check for strings.h in the configure script.
736 Yet another fix for the image rotation code in XOutputDev --
737 off-by-one problem when upsampling.
738 Handle Type 1/1C encodings when using FreeType 2.
739 Allow FreeType2 to render user-supplied Type 1 base fonts.
740 Opening a new file from full-screen mode tried to scroll.
741 Fixed a bug in GfxFont constructor (missing check for NULL base font
742 name).
743 Don't crash if a Type 1 font's FontBBox is non-integer.
744 Pdfinfo prints page size.
745 Tweak for the alpha hack in T1Font/TTFont: sample the middle pixel
746 instead of the top-left pixel.
747 Automatically activate the text input widget in the find window.
748 Changed a Japanese char code mapping in XOutputDev and TextOutputDev:
749 period was being incorrectly mapped to small circle (end-of-sentence
750 character).
751 Add the 0/+/-/z/w key bindings to control the zoom setting.
752 Fixed ImageOutputDev (pdfimages) to correctly handle inline image
753 masks.
754 Extract ascent/descent info from font descriptor.
755
756 0.92d (2001-jun-26)
757 -------------------
758 Embed TrueType fonts in PostScript output. (Added a "-noembtt" flag
759 to pdftops.)
760 Extract encoding from TrueType fonts.
761 Moved Function classes to a separate file (Function.h/cc).
762 Implemented multi-dimensional sampled Functions.
763 Implemented Type 4 (PostScript calculator) Functions.
764 For Type 0 fonts, FontDescriptor is in descendant font, not parent.
765 [Thanks to Lidia Mirkin.]
766 Added the "-htmlmeta" option to pdftotext.
767 In TextOutputDev, when computing the number of blank lines to insert,
768 do a sanity check on the result.
769 If both FlateDecode and some other filter (e.g., DCTDecode) were
770 applied to an image stream, getPSFilter() crashed instead of just
771 returning NULL.
772 Handle the /Identity function.
773
774 0.92e (2001-aug-23)
775 -------------------
776 Widths in font dict should override built-in font widths.
777 Changed "rotate left/right" menu items to "rotate
778 clockwise/counterclockwise".
779 The link parsing code choked if the Border array was incorrect (too
780 short).
781 Modified PSOutputDev to output CMYK for fill/stroke colors.
782
783 0.93 (2001-oct-25)
784 ------------------
785 Implement PDF 1.4 (128-bit) decryption.
786 Bump supported PDF version number to 1.4.
787 Text output for Simplified Chinese. [Thanks to Cheung Siu Fai.]
788 Read an app-defaults file for Xpdf.
789 Read a system-wide config file (<prefix>/etc/xpdfrc) if ~/.xpdfrc
790 doesn't exist.
791 Accept and verify owner password; if correct, allow all actions.
792 Added a "-level2sep" option to pdftops to generate Level 2 separable
793 PostScript. The PostScript separation convention operators are used
794 to handle custom (spot) colors. [Thanks to Thomas Freitag for help
795 on this.]
796 Add support for FreeType 2 to the configure script. Warning: this
797 requires FT 2.0.5 or newer.
798 Fixed the bounding rectangle overlap test in the disconnected subpath
799 fill hack in XOutputDev.
800 Stupid typo in font name table in PSOutputDev.
801 Changing the zoom setting with a keyboard shortcut didn't update the
802 displayed setting.
803 Modified the mouse wheel support and added the second wheel (mouse
804 buttons 6 and 7). [Thanks to Michal Pasternak.]
805 Character and word spacing is affected by horizontal scaling (display
806 and PS output). [Thanks to Eddy Ng.]
807 Rotation specified by the text matrix, character spacing, and
808 horizontal scaling interacted incorrectly (display and PS output).
809 Some broken Type 1/1C fonts have a zero BBox -- kludge around this by
810 assuming a largeish BBox.
811 Handle PDF files with an incorrect (too small) xref table size.
812 Allow "-?" and "--help" as aliases for "-h" (all apps).
813 Correctly handle unescaped parens in strings in Lexer.
814 Fixed a bug in LTK where a menu got posted multiple times if you right
815 clicked while a page was being rendered.
816 Removed a comma inside a string in configure.in.
817 Kludge around broken PDF files that use char 32 but encode it as
818 .notdef instead of space.
819 Clean up various compiler warnings: use constructor args like "fooA"
820 if there is a field named "foo". Everything now compiles cleanly
821 under gcc 2.91.66, 2.95.2, and 3.0.1.
822 Page objects now read all of the page rectangles (MediaBox, CropBox,
823 BleedBox, TrimBox, ArtBox), as requested by the pdfTeX folks.
824 Added a new PDFRectangle struct to hold these.
825 Use XOutputDev's Type 3 font size hack in TextOutputDev too, so it
826 does a little better job of extracting text in Type 3 fonts.
827 Modify pdfimages to write one-bit images as PBM files.
828 Work around a bug in cygwin's implementation of fseek.
829
830 0.93a (2001-nov-21)
831 -------------------
832 Implemented the sh (shaded fill) operator for the axial shading type.
833 Minor fixes to avoid compiler warnings.
834 Cleaned up global variables -- moved many into instance vars and
835 function args.
836 Minor fixes for OS/2.
837 Fix the system config file path for VMS.
838 Fix an uninitialized var in XOutputDev that caused crashes on Alphas.
839 Don't incrementally update the display in full-screen mode.
840 For Type 1/1C fonts, use the FontBBox from the PDF FontDescriptor
841 (instead of the one in the font file) if present -- this avoids
842 problems with fonts that have non-standard FontMatrixes.
843 Add the Euro character to WinAnsiEncoding.
844 Track the bounding box of the clip region to make rendering patterns
845 more efficient.
846 Fix openTempFile() for Win32.
847
848 0.93b (2001-dec-11)
849 -------------------
850 Added a duplex option to PSOutputDev and a -duplex switch to pdftops.
851 Added XRef::PDFgetDocInfoNF() for pdftex project.
852 Updated the VMS build script.
853
854 0.93c (2001-dec-12)
855 -------------------
856 Completely rewrote the code that handles font encodings:
857 - everything is Unicode-based
858 - 16-bit fonts are handled much more cleanly
859 - text output encoding can be set more flexibly
860 New .xpdfrc config files.
861
862 1.00 (2002-feb-01)
863 ------------------
864 More work on the font encoding rewrite:
865 - use the ToUnicode font dict entry
866 - pdfinfo and pdftotext (with '-htmlmeta') convert info strings to
867 the selected text encoding
868 Added key bindings for forward ('v') and backward ('b').
869 Added the pdffonts program which lists the fonts used in a PDF file.
870 Fixed several problems in the TrueType font embedding code (for
871 PostScript output).
872 Accept named destination on command line.
873 Added several new items to pdfinfo: file size, PDF version, tagged
874 (yes or no), XML metadata (with the -meta option).
875 Pdftops didn't get the portrait/landscape setting correct for PDF
876 files with rotated pages.
877 The TrueTypeFontFile class (including the Type 42 converter) now
878 understands cmap format 6.
879 Improved the "about" window -- mention the GPL, add a list of key
880 bindings.
881 Added Zcaron and zcaron characters to WinAnsiEncoding.
882 The '0' keyboard shortcut didn't update the zoom popup menu.
883 Handle the complete list of alternate names for the Base14 fonts.
884 Fixed substitute font scaling in XOutputDev - scale only the width,
885 not the height.
886 Implemented stitching (type 3) functions.
887 Handle the case of moveto/closepath/clip, which defines an empty
888 clipping region.
889 Move dependences into separate Makefile.dep files; get rid of the
890 distdepend target.
891 Move all of the configure-script-generated -D options out of the
892 Makefiles and into a top-level .h file (aconf.h).
893 Cleaned up the FreeType 1/2 detection code in the configure script.
894 Pdfinfo prints dates in a more readable format.
895 Fixed a bug in the Paeth image predictor.
896 Handle annotations with multiple states.
897 Another workaround for buggy X servers: clip points that are way out
898 of bounds.
899 Added libpaper support (for Debian).
900 Generate PostScript DSC resource comments for PS (not just EPS)
901 files.
902 The save and restore (q/Q) operators shouldn't save/restore the path.
903 Performance optimization: disable pattern drawing in TextOutputDev.
904
905 1.00a (2002-feb-25)
906 -------------------
907 Added an optimized special case for one-bit images in XOutputDev.
908 Implemented CID TrueType font embedding; added a psEmbedCIDTrueType
909 option.
910 The initialZoom X resource was broken.
911 The reverse MacRoman encoding should return 32 for "space" (not 202,
912 which is an alternate encoding).
913 Tweaks to the FreeType 2 support: only disable hinting if the bytecode
914 interpreter is disabled (i.e., disable autohinting but not bytecode
915 hinting); add some padding to the glyph cache for CJK fonts.
916 Added level3 and level3Sep options for the psLevel setting and
917 corresponding -level3 and -level3Sep options to pdftops.
918 Added a -level2 option to pdftops for consistency.
919 Avoid a divide by zero in pdftotext. [Thanks to William Bader.]
920 Added a Greek language support package. [Thanks to Alexandros
921 Diamantidis and Maria Adaloglou.]
922 Don't bother trying to extract a "builtin" encoding from a TrueType
923 font.
924 Accept either a page number or a page reference in a link
925 destination.
926 Update the fontFixedWidth flag in GfxFont after reading the char
927 widths (used by the Acorn RiscOS port).
928 Removed yet another (illegal but not caught by gcc) class specified
929 from a .h file.
930 Avoid using snprintf - it's not available everywhere.
931 Improved the CMYK->RGB transform.
932 Use mkstemps where available.
933
934 1.01 (2002-may-20)
935 ------------------
936 Implemented Type 3 fonts.
937 Implemented PostScript CID font embedding; added a
938 psEmbedCIDPostScriptFonts option.
939 Implemented PostScript 16-bit font substitution; added psNamedFont16
940 and psFont16 options.
941 Moved the initialZoom setting from X resources to the xpdfrc file.
942 Implemented the radial shading type in the sh (shaded fill) operator.
943 [Thanks to Mike Sweet.]
944 Added an 'include' command to the xpdfrc format.
945 Added the displayNamedCIDFontX option so different fonts can be used
946 within one character collection.
947 Added a simple reverse video mode (-rv switch, xpdf.reverseVideo
948 resource).
949 Implemented stroked text in XOutputDev (with t1lib and FreeType2).
950 [Thanks to Leonard Rosenthol.]
951 Implemented stroked text in PSOutputDev.
952 Added a built-in Unicode map for UCS-2.
953 New key binding in xpdf: 'g' activates the page number text field.
954 PSOutputDev will now embed external TrueType fonts in addition to
955 external Type 1 fonts.
956 The psEmbedType1Fonts and psEmbedTrueTypeFonts options were missing
957 the "Fonts" suffix.
958 Documentation in xpdf.1 for -freetype option was wrong.
959 Added the Big5ascii Unicode map to the Chinese-traditional support
960 package (maps 7-bit ASCII straight through). [Thanks to Lawrence
961 Lai.]
962 Modified the EUC-CN and EUC-JP encodings to pass 7-bit ASCII straight
963 through. [Thanks to Lawrence Lai.]
964 Avoid a divide by zero in XOutputDev. [Thanks to Simon Burge.]
965 Remove old code in openTempFile that removed an extension from the
966 name returned by tmpnam.
967 Tweak the scrolling behavior when switching pages. [Thanks to Case
968 Jones.]
969 In the code that guesses character names (for font subsets), also
970 handle names of the form 'ABnnn'. [Thanks to Colin Granville.]
971 Fix the transform code for annotations.
972 Improved the CMap file parser to handle more general PostScript
973 lexical conventions.
974 Added '-enc' option to pdfinfo.
975 Added the small caps and oldstyle numbers from Adobe's Unicode
976 corporate use area to the Latin1 and ASCII7 Unicode maps.
977 The code in TextOutputDev that guesses Type 3 font size could generate
978 a zero size, which resulted in div-by-zero errors.
979 Various tools (including Adobe's) occasionally embed Type 1 fonts but
980 label them Type 1C - so check for a '%!' at the start.
981 Some tools embed Type 1C fonts with an extra whitespace char at the
982 beginning - just skip over it.
983 Fixed a typo in the Simplified Chinese add-to-xpdfrc file.
984 Updates to dj_make.bat and the djgpp build instructions.
985 Added a Turkish language support package.
986 Updated VMS build scripts. [Thanks to Martin Zinser.]
987 Modify the incremental display update code to redraw less often if
988 most of the commands are vector graphics, as opposed to text and
989 images.
990 Tweak the Type 1 font bbox code to look at the bboxes in both the PDF
991 font object and the embedded font file.
992 Fixed the ETenms-B5-H CMap file (for traditional Chinese) to map the
993 Latin characters to their proportional versions.
994 Added an optional displayCIDFontX entry for one of the Arphic TrueType
995 fonts in the traditional Chinese 'add-to-xpdfrc' file.
996 Remove leading '-' on include statements in Makefiles.
997 Added psASCIIHex parameter.
998 Added the GBK Unicode map to the simplified Chinese language pack.
999 Pdftotext now opens the text file in binary mode to avoid Microsoft's
1000 annoying automatic end-of-line translation stuff.
1001 Added an executeCommand function in goo/gfile.cc. [Thanks to Mikhail
1002 Kruk.]
1003 The %ALDImagePosition OPI comment was wrong if the page was scaled to
1004 a different paper size.
1005 The OPI code was saving the default transform matrix before calling
1006 setpagedevice, which can change the matrix.
1007 Fixed a crash when an inline image dictionary contains garbage.
1008 Upgraded to autoconf 2.53.
1009 Use unsigned int file offsets, to allow access to PDF files in the 2-4
1010 GB size range; use fseek64/ftell64 if available.
1011 Fixed two floating point exception cases that came up with broken PDF
1012 files.
1013 Avoid a crash when printing an error message regarding an unnamed
1014 font.
1015 Default link border width should be 1. [Thanks to Michael Pfeiffer.]
1016 Minor tweak to build with FreeType 2.1.0.
1017 Handle "weird" characters in PostScript font names.
1018 PSOutputDev now handles PostScript XObjects.
1019 Added several more page attributes for the pdftex project.
1020 Transferred the copyright to Glyph & Cog, LLC.
1021
1022 2.00 (2002-nov-04)
1023 ------------------
1024 Switched to the Motif toolkit.
1025 Support multiple open documents (in separate windows).
1026 Added document outlines to the viewer.
1027 Modified the text extraction (placement) algorithm.
1028 Implemented the JBIG2 decoder.
1029 Added a Latin2 language support package.
1030 Added support for movie annotations.
1031 Switched back to native LZW decompression code.
1032 Text extraction from Type 3 fonts was (partly) broken.
1033 The owner password checking code was missing a step in the case of
1034 128-bit encryption.
1035 Added the 'printCommands' option to the xpdfrc file.
1036 Added key binding for '?' to bring up the about/help dialog.
1037 In TextOutputDev, ignore any text that's outside the page bounding
1038 box.
1039 Text extraction throws away "tiny" characters after the first 20000
1040 per page, to avoid really slow runtimes with PDF files that use
1041 special fonts to do shading or cross-hatching; added the
1042 'textKeepTinyChars' option to disable this behavior.
1043 Text extraction discards duplicated text (fake boldface, shadow
1044 effects).
1045 Added ctrl-F as a key binding for find.
1046 Added a "find next" function, bound to ctrl-G.
1047 Added ctrl-P as a key binding for print.
1048 Modified the DCT decoder to handle progressive and non-interleaved
1049 JPEG streams.
1050 Added key bindings for ctrl-Home and ctrl-End.
1051 Allow the initialZoom setting to be made in either the xpdfrc file or
1052 as an X resource.
1053 Added a Hebrew language support package. [Thanks to Roy Arav.]
1054 The "make distclean" target now creates (empty) Makefile.dep files in
1055 the three subdirectories.
1056 Initialize XRef::ownerPasswordOk.
1057 Correctly handle stroking of Type 3 fonts in PSOutputDev.
1058 Generate correct PostScript for fonts with "weird" character names
1059 (e.g., "(").
1060 Generate correct PostScript for images using Indexed color spaces with
1061 DeviceN base color spaces.
1062 Added lowercase Roman numerals to ISO-2022-CN.unicodeMap (simplified
1063 Chinese support package).
1064 Tweak the image scaling code to better handle flipped (top-bottom
1065 and/or left-right) images.
1066 Generate correct PostScript code for inline images and images in Type
1067 3 fonts which are too large for a single PS string.
1068 Correctly handle indexed color spaces whose base color spaces have
1069 component ranges other than [0,1].
1070 Optimized the DCT decoder.
1071 Fixed mistakes in the list of key bindings in the about/help dialog.
1072 Optimized the Flate decoder.
1073 Add literal names for punctuation and digits to the Unicode name
1074 table.
1075 Cygwin's popen wants mode "r", not "rb".
1076 Fixed a bug in the Type 4 function parser (the "if" operator wasn't
1077 parsed correctly).
1078 Fix a bug in PS output for TrueType fonts with no PDF encoding.
1079 Make the bbox size in FTFont more liberal (to avoid problems with
1080 fonts that have incorrect bboxes).
1081 Reverse the colors in PBM files generated by pdfimages, so the common
1082 case (an image mask filled with black) comes out correct.
1083 Add fseeko/ftello support which is basically identical to
1084 fseek64/ftell64. [Thanks to Nassib Nassar.]
1085 Modified column assignment in text extractor to account for characters
1086 that convert to multiple characters in the output encoding.
1087 Fix TrueType fonts which have an incorrect cmap table length.
1088 Work around a pragma bug in the version of gcc that ships with MacOS X
1089 10.2. [Thanks to Frank Siegert and Andrew Stone.]
1090 Fix a problem that was causing an infinite loop when a damaged content
1091 stream contains an 'ID' command inside a dictionary.
1092 Handle the case where systempapername() returns NULL (libpaper
1093 support).
1094 Handle fonts which are defined directly in the font resource
1095 dictionary rather than as separate objects.
1096 Track process colors in Level 1 separable PostScript.
1097 Pdfinfo now checks the return value from mktime to avoid seg faults in
1098 flakey strftime implementations.
1099 If duplex is not enabled in PostScript output, leave the duplex
1100 setting alone, allowing the spooler to insert its own setting.
1101 Added three missing fclose calls.
1102 Change the default encoding for TrueType fonts (used when the PDF file
1103 doesn't specify an encoding) from MacRomanEncoding to
1104 WinAnsiEncoding.
1105 Move X_CFLAGS to the end of the list in CXXFLAGS (in Makefile.in) to
1106 avoid some of the FreeType2 include path problems.
1107 Fixed an obscure bug in the LZW decoder. [Thanks to Martin
1108 Schroeder.]
1109 Fixed a bug in decryption when using the newer (PDF 1.4) algorithm
1110 with shorter-than-128-bit keys.
1111 Minor optimization for image data streams: the ImageStream class can
1112 return an entire buffered line.
1113
1114 2.01 (2002-dec-05)
1115 ------------------
1116 Redesigned the text extraction process:
1117 - process the text into "reading order"
1118 - added a "-layout" flag to pdftotext to switch back to the old
1119 style, where physical layout is maintained
1120 - use of the "-raw" flag is no longer recommended
1121 Added the -reload option for xpdf (in remote mode).
1122 Added support for external CID fonts; added the displayCIDFontT1 and
1123 displayNamedCIDFontT1 commands to the xpdfrc file.
1124 Handle the case of moveto/newpath/clip, which defines an empty
1125 clipping region (just like moveto/closepath/clip).
1126 Accept XYZ link destinations with missing array elements.
1127 Fix some problems with state save/restore triggered by Type 3 fonts
1128 that reference other fonts.
1129 Accept bogus font names based on "Symbol": Symbol,{Bold,Italic,
1130 BoldItalic}.
1131 Fixed color and font resource names in the xpdf man page.
1132 Was using delete instead of gfree in OutlineItem::~OutlineItem.
1133 Set the busy cursor in the find dialog while searching.
1134 Map variants of the copyright, trademark, and registered trademark
1135 symbols to the proper Unicode codes, not to Adobe's corporate use
1136 area codes.
1137 Fixed a floating point exception bug in TextOutputDev (check for a
1138 too-small denominator).
1139 Fixed a typo in TextOutputDev, in the code that generating blank lines
1140 to add vertical whitespace.
1141 Config files whose last line didn't end with a LF (or CR+LF) weren't
1142 being handled correctly.
1143 The code that handled CIDToGIDMaps in Type 2 CIDFonts was broken.
1144 Check the per-glyph bounding box in Type 3 fonts, and don't try to
1145 cache glyphs with bogus bboxes.
1146 Allow ToUnicode CMaps to use fewer than four hex digits in the Unicode
1147 char indexes.
1148 Added multithreading protection to the GlobalParams class.
1149 Fixed a bug in end-of-stream detection with the TIFF predictor.
1150 Added some characters to MacRomanEncoding to match up with Apple's
1151 definition.
1152
1153 2.02 (2003-mar-24)
1154 ------------------
1155 Rewrote the text extractor code that assembles words into lines to
1156 better handle vertically overlapping lines.
1157 Add the "match" option for paper size (in PostScript output).
1158 Added support for external 16-bit TrueType fonts; added the
1159 displayCIDFontTT and displayNamedCIDFontTT commands to the xpdfrc
1160 file.
1161 Added an Arabic language support package.
1162 Added the Windows-1255 encoding to the Hebrew language package.
1163 A missing NULL check was causing a crash when closing the file in a
1164 single window (which clears out the window, but leaves it open).
1165 Deal with TrueType fonts whose glyph data is out of order - this
1166 affected both FreeType rasterization and PostScript generation.
1167 Munge font names in PSOutputDev to avoid names that are problematic
1168 for ghostscript because they start with an out-of-limits number
1169 (e.g., 1e999foo).
1170 Modify the TrueType font encoding deciphering algorithm in yet another
1171 attempt to match up with Acrobat's behavior.
1172 Bounds check the indexHigh value in indexed color spaces.
1173 The text extractor no longer bothers trying to get an average
1174 character width for Type 3 fonts, since it generally doesn't work
1175 very well (because Type 3 metrics are unreliable).
1176 Don't crash if the user hits ctrl-G ("find again") before doing a
1177 find.
1178 Set the button pixmap foreground color correctly.
1179 Handle text drawn backward on 180 degree rotated pages.
1180 Added a magic call to XtUngrabButton after calling XmCreatePopupMenu
1181 which appears to prevent some very odd problems (idea taken from the
1182 DDD source code).
1183 Fix the MacOS X fix (needed to include <AvailabilityMacros.h>).
1184 Fixed a bunch of Motif 1.x / X11R5 incompatibilities. [Thanks to
1185 William Bader and Albert Chin-A-Young.]
1186 Fixed various bugs in previously untested code in the JBIG2 decoder.
1187 Modify the XPDFCore destructor to avoid a bogus warning message from
1188 OpenMotif 2.2.
1189 Modified the Type 1C font parser to do proper bounds checking.
1190 Fixed the bounds checking in the TrueType font parser.
1191 Text extractor shouldn't do block merging in physical layout mode.
1192 Fixed a problem in PSOutputDev in level2sep mode with images in a
1193 Separation color space and with a non-default Decode array.
1194 Text extraction with "-raw" was concatenating lines from the bottom of
1195 one column and the top of the next.
1196 Handle Type 1C subroutines in the font converters.
1197 Correctly handle progressive JPEG images whose scans are slightly
1198 different sizes (e.g., the Y scan rounds up to a multiple of 8
1199 pixels and the Cb/Cr scans round up to 16 pixels).
1200 Avoid a potential divide-by-zero problem in TextOutputDev.
1201 Modified the T1Font and FTFont modules to correctly handle glyphs that
1202 are larger than the font's claimed bounding box.
1203 Tweak dupMaxDeltaX parameter in TextOutputDev to avoid triggering on
1204 double characters.
1205 Improved detection in pdfinfo for ISO paper sizes. [Thanks to Hartmut
1206 Henkel.]
1207 Xpdf wasn't responding to the TARGETS atom, which prevented pasting
1208 the selection into various applications. [Thanks to Phillip Ezolt.]
1209 Handle XObjects with recursive references in their Resources
1210 dictionaries (in PSOutputDev).
1211 Change PSOutputDev to deal with invalid PDF files that use
1212 non-embedded TrueType fonts with no encoding.
1213 Check for undersized Widths arrays in fonts.
1214 Add bounds checking code to Array class.
1215 Updated VMS build scripts. [Thanks to Martin Zinser.]
1216 Tweak the TrueType font handling code (again):
1217 - char codes in symbolic fonts may or may not be offset by 0xf000
1218 - discard empty tables because they sometimes confuse FreeType
1219 Fixed bounds checking in the Flate decoder.
1220 Removed a bogus error message for exponential functions without
1221 explicit C0/C1 values. [Thanks to Hartmut Henkel.]
1222 Handle the other Unicode cmap type (platform=0) in TrueType fonts.
1223 Added support for the SGI Motif horizontal paned window widget.
1224 [Thanks to Felix Ritter.]
1225 Ignore extra elements in link destination arrays.
1226 Accept external Type 1 font files with a suffix of ".ps" or no suffix
1227 at all.
1228 Add a bounds check in the DCT decoder.
1229 Added instructions for building xpdf.exe under cygwin/XFree86.
1230 Tweaked the word separation parameter for raw-mode text extraction.
1231
1232 2.03 (2003-oct-10)
1233 ------------------
1234 Rewrote the text extractor to:
1235 - do a better job with rotated text;
1236 - handle right-to-left scripts;
1237 - be faster.
1238 Changed the zoom setting to use a percentage (relative to 72 dpi)
1239 instead of a zoom "factor".
1240 If the PDF file has an outline, open the outline pane initially.
1241 Added -f and -l options to pdfinfo; print multiple page sizes.
1242 The HAVE_XTAPPSETEXITFLAG test in XPDFApp.cc was backwards.
1243 The BitsPerComponent entry is optional in image mask objects.
1244 Render any annotation with an appearance stream, instead of just
1245 Widget and Stamp annotations.
1246 Fix a bug in the TrueType font checker: the test for an unsorted
1247 'loca' table was wrong.
1248 Modify the TrueType cmap selection algorithm yet again to try to match
1249 Adobe's behavior.
1250 Changed sqrt(2) to sqrt(2.0) in pdfinfo.cc to make various compilers
1251 happy.
1252 Fixed a deadlock problem (when MULTITHREADING is set); cleaned up some
1253 other problems with the locking code.
1254 Fixed a bug in the interpolation code for type 0 (sampled) functions.
1255 Implemented type 1 (function-based) shaded fills.
1256 Fixed some stupid bugs in the JBIG2 decoder (introduced with the
1257 previous optimization work).
1258 Fixed a typo in the code that parses vertical font metrics for CID
1259 fonts that was causing a seg fault.
1260 Fixed a couple of bugs that were causing seg faults with badly damaged
1261 PDF files.
1262 Limit the number of nested Forms to avoid infinite recursion (in buggy
1263 PDF files).
1264 Add a special case for rectangular clip regions - make sure these
1265 don't drop pixels on the right and bottom edges.
1266 Tell FreeType not to use glyph bitmaps when in anti-aliased mode.
1267 Read all of the border style info for links.
1268 All of the shaded fill types now do at least one bisection to avoid
1269 problems when the colors at the endpoints of the domain are the
1270 same.
1271 If the Length2 parameter for an embedded Type 1 font was incorrect
1272 (too small), pdftops was losing font data.
1273 Deal with (broken) DCT streams that use the same component ID number
1274 for different components.
1275 The MediaBox page attribute was not being inherited correctly.
1276 Fixed a bug in the Type 1C font converter related to local
1277 subroutines.
1278 The Type 1C -> Type 1 font converter was allocating the font dictionary
1279 one slot too small.
1280 Added a missing private dictionary entry to Type 1 fonts generated by
1281 the Type 1C converter. [Thanks to Michael Shell.]
1282 Fixed bugs in the tiling pattern fill code.
1283 Try the TrueType 0xf000 char code offset hack for the MacRoman
1284 encoding too (in addition to MS Symbol).
1285 Update the font metrics info for the Base 14 fonts to include the Euro
1286 character.
1287 SECURITY HOLE: Escape various characters in URLs before running a web
1288 browser (or movie viewer). [Fixed in 2.02p11]
1289 SECURITY HOLE: In the dialog used to verify "launch" links, provide a
1290 scrolling view if the command to be run is excessively long. [Fixed
1291 in 2.02p11]
1292 Added an option to disable insertion of page breaks (form feed
1293 characters) in extracted text (pdftotext -nopgbrk; xpdfrc
1294 "textPageBreaks" option).
1295 Check for 8-bit fonts that specify an out-of-range FirstChar or
1296 LastChar.
1297 Correctly handle an obsolete Type 2 charstring op (in the Type
1298 1C-to-Type 1 font converter). [Thanks to Helge Blischke.]
1299 Use the font encoding info to fill in holes in the ToUnicode map.
1300 Added character names for Bulgarian (in the Cyrillic support pacakage)
1301 and Greek.
1302 Handle clipping to text in xpdf and pdftops.
1303 Fix color space detection in DCT decoder. [Thanks to Dwight Kelly.]
1304 Added the "unicodeToUnicode" xpdfrc option, intended (initially) for
1305 Arabic support.
1306 Handle the case in PSOutputDev where two font objects refer to the
1307 same embedded TrueType font, but with different encodings. [Thanks
1308 to Frank Siegert.]
1309 Kill any pre-existing path before drawing a form (or annotation).
1310 Save state before rendering page content; restore state afterward.
1311 Fix Stream::reset/close to work correctly with encoder streams; fix
1312 PSOutputDev to use Stream::close consistently.
1313 Fix a seg fault when hitting the 'back' button after closing a file.
1314 GfxState::getStrokeGray was returning the fill gray value (this only
1315 affected Level 1 PS output).
1316 Change PSOutputDev to reuse dictionaries in Level 1 mode (since Level
1317 1 PS interpreters don't do garbage collection). [Thanks to Frank
1318 Siegert.]
1319 PSOutputDev was generating incorrect translations for landscape-mode
1320 pages.
1321 Implemented shading pattern color spaces.
1322 PSOutputDev wasn't correctly handling Type 3 fonts which used image
1323 resources (as opposed to inline images). [Thanks to Frank Siegert.]
1324 The fix from 1.00 which clipped out-of-bounds points was a bit too
1325 aggressive.
1326 Do proper Floyd-Steinberg dithering in XOutputDev.
1327 Don't automatically check for a null owner password (to match Adobe's
1328 behavior).
1329 Allow the FlateDecode filter in Level 3 PostScript output.
1330 Fixed small bugs in the Type 1C -> Type 1 converter and Type 1C ->
1331 Type 0 converter. [Thanks to Tom Kacvinsky.]
1332 Work around another weird Motif problem with the right button menu
1333 (which was sometimes causing the menu to not be displayed).
1334 Make the code that handles fonts defined directly in the resource dict
1335 more robust.
1336 Add a brief description of the outline pane to the xpdf man page.
1337 Ignore extra operands to content stream operators.
1338 Fixed a bug in the CCITTFax decoder.
1339 Allow the Count entry in a Pages dictionary to be a real number
1340 (because some PDF generators actually do this).
1341 Shading pattern fills weren't being clipped correctly.
1342 Incorrect shallow copies in GfxRadialShading and StitchingFunction.
1343 The StitchingFunction destructor wasn't checking for funcs being
1344 NULL.
1345 Change the TrueType code-to-GID mapping code so it looks at the
1346 TrueType 'post' table.
1347 Set the print command in the print dialog once at startup, don't
1348 change it each time a file is (re)loaded.
1349 Generate the %%BoundingBox comment in regular PostScript files (not
1350 just EPS files).
1351 Fixed a bug in the Unicode CMap parser.
1352
1353 3.00 (2004-jan-22)
1354 ------------------
1355 New PDF rasterizer ("Splash").
1356 Added support for PDF 1.5:
1357 - JPX (JPEG 2000) decoder
1358 - XRef streams
1359 - object streams
1360 - DeviceN color spaces with up to 32 components
1361 - Added new CMaps to the CJK language support packages
1362 Replaced pdftopbm with pdftoppm (which can generate PBM, PGM, and PPM
1363 files).
1364 Reorganized the font file parser code into a new library ("Fofi").
1365 Removed support for FreeType 1.x.
1366 Removed support for X server fonts - Xpdf (and pdftoppm) will now
1367 search for the URW fonts (from ghostscript).
1368 Changed the "-t1lib" and "-freetype" switches; replaced the
1369 "t1libControl" and "freetypeControl" config file options with
1370 "enableT1lib", "enableFreeType", and "antialias".
1371 Added the "-box" option to pdfinfo.
1372 Added imageable area support to PSOutputDev (for CUPS); added the
1373 "psImageableArea" config file option.
1374 Added the "-nocrop", "-expand", "-noshrink", and "-nocenter" switches
1375 to pdftops; added the "psCrop", "psExpandSmaller", "psShrinkLarger",
1376 and "psCenter" config file options.
1377 Dictionary size was in PostScript code generated for Type 3 fonts.
1378 The PS code generated for images in Type 3 characters was broken.
1379 Tweaked the text extractor.
1380 Accept xref entries that are one byte too short (matching Adobe's
1381 behavior).
1382 Change things so "xpdf -h" and "xpdf -v" work if DISPLAY isn't set.
1383 Fix a problem in the damaged file repair code that handles the trailer
1384 dictionary.
1385 Use the "Last" entries in "Outlines" objects - this avoids a problem
1386 with PDF files generated by buggy software that, e.g., sets the last
1387 item's Next pointer to point to itself.
1388 PSOutputDev was not handling DeviceN color spaces correctly in Level 2
1389 images.
1390 Fixed a stupid little bug that broke PS output for JBIG2 images.
1391 Work around a Lesstif bug: set up an extra callback so hitting <Enter>
1392 in the find dialog performs a search. [Thanks to Elliott Hughes.]
1393 Pdftops was crashing on zero page PDF files.
1394 Add an AC_PREREQ call to configure.in.
1395 Change the 'find' dialog so the text entry box resizes with the
1396 dialog.
1397 Skip extraneous zero bits at the start of a CCITTFax stream.
1398 The PostScript text clipping operator was missing a 'newpath'.
1399 [Thanks to Frank Siegert.]
1400 Fix a bug in tiling patterns with bboxes that don't start at (0,0).
1401 Fix a bug in Type 3 font handling with rotated text.
1402 The tiled pattern fill code was destroying the current path, which
1403 broke the fill+stroke operators when the fill color space was a
1404 tiled pattern.
1405 ICCBased color spaces don't always set their Ranges values correctly,
1406 so just use the values from the alternate color space.
1407 Modified GHash to accept int or void* - this avoids some conversion
1408 warnings.
1409 Check for missing Type 3 CharProcs - avoid a segfault.
1410 Pdffonts now marks all Type 3 fonts as embedded.
1411 Outline entries with no Title string weren't being handled correctly,
1412 resulting in segfaults.
1413 PSOutputDev now forces the text horizontal scale factor to be non-zero
1414 to avoid singular font matrices in the PS code.
1415 Tweaked the error recovery in the CCITTFax decoder.
1416 The LZW/Flate predictor should treat any Predictor value (in the
1417 stream dictionary) >= 10 identically.
1418 PSOutputDev and pdffonts check for NULL font objects (which can
1419 happen, e.g., because of missing CMap files).
1420 Swap the left and right mouse wheel button numbers.
1421 EPS output ("pdftops -eps") now uses the CropBox instead of the
1422 MediaBox as the EPS bounding box.
1423
1424 3.01 (2005-aug-17)
1425 ------------------
1426 Added the continuous view mode, including the '-cont' switch and the
1427 'continuousView' config file option.
1428 At high zoom levels, don't rasterize the entire page - this avoids
1429 problems running out of memory.
1430 Added "search backward" and "match case" options to the find dialog.
1431 Support explicitly masked images and soft masked images.
1432 Add support to DCTStream for 16-bit quant tables.
1433 Don't segfault if the user clicks on an outline entry with a broken
1434 destination.
1435 Changed the makefiles and configure script to skip building pdftoppm
1436 (in addition to xpdf) if X, Motif, or FreeType is not found; changed
1437 the error message in the configure script to match.
1438 Move an inline function in JArithmeticDecoder.cc to avoid compiler
1439 errors.
1440 Fixed a bug in the rasterizer that was sometimes causing infinite
1441 loops with round line caps on vertical lines.
1442 Various rasterizer optimizations.
1443 Look for intermediate resize events - try to avoid lagging when the
1444 user is doing an opaque resize.
1445 The FormType key in Form XObjects is optional.
1446 Handle external 16-bit TrueType fonts correctly, using the Unicode
1447 cmap.
1448 Add class declarations to TextOutputDev.h to work with stricter C++
1449 compilers.
1450 Support FreeType's weird include file stuff (ft2build.h, etc.).
1451 Fixed a bug handling empty paths.
1452 Fixed a text positioning problem in PostScript output.
1453 Handle TrueType collections in FoFiTrueType.cc.
1454 FoFiTrueType constructor was reporting a failure if the post table was
1455 bad - this should be non-fatal.
1456 Type 1 font parser was missing a NULL test.
1457 Mask chars passed to isdigit in goo/parseargs.c to avoid problems with
1458 signed chars.
1459 Added more error checking to the CCITTFax decoder.
1460 Fixed a bug (computing the MCU size) in the DCT decoder.
1461 Change a test in the Splash stroke code to avoid x86 floating point
1462 weirdness.
1463 Reorganized the decryption code to allow security handler plugins;
1464 removed the NO_DECRYPTION #ifdefs.
1465 Added a plugin interface, initially just for security handlers.
1466 Support color key masked images and explicitly masked images in PS
1467 output (Level 2 only).
1468 When checking for aliases of the Base 14 fonts, ignore spaces in the
1469 specified font name.
1470 Handle encrypted PDF files that are missing the file ID string.
1471 Handle tiling patterns more efficiently in the PostScript output.
1472 Rewrote the code that handles color spaces in PostScript output.
1473 Fixed a bug in the Type 1C font parser - zero-length indexes (and
1474 zero-length names) weren't handled correctly.
1475 Handle shaded fills more efficiently in the PostScript output.
1476 Implement the remaining shading types (4-7).
1477 Rearranged the Splash color modes.
1478 Add the EarlyChange parameter to LZWStream when generating PostScript.
1479 Check for zero values in line dash arrays in PSOutputDev.
1480 Fixed an uninitialized variable in JArithmeticDecoder which was
1481 causing crashes.
1482 Treat unknown CMap names as identity mappings (to match Adobe's
1483 behavior).
1484 Fixed bugs in the XRef parser related to XRef streams in updated
1485 files.
1486 Added a missing call to FT_Done_Glyph which was causing a memory leak.
1487 [Thanks to Dave Formanek.]
1488 Fixed a bug in text copying that was causing the last word to be
1489 dropped on some pages.
1490 Tweaked the image width/height computation in Splash::drawImage and
1491 Splash::fillImageMask to make striped images work better.
1492 Ignore minus signs in the middle of numbers (to match Adobe's
1493 behavior).
1494 Missing '%s' in format strings for dates in pdftotext '-htmlmeta'
1495 mode.
1496 Change the TrueType code-to-GID mapping code so it looks at the
1497 standard name-to-Unicode mapping before the ToUnicode mapping
1498 defined in the font object.
1499 Added a matteColor setting (command line option and X resource).
1500 Tweaked the CMYK->RGB transform.
1501 Fix some problems in tracking the character position (to match up with
1502 Adobe's highlight file format).
1503 Handle moveto/closepath/stroke correctly.
1504 Check for singular text matrices and font size of zero in PSOutputDev.
1505 Clip PS output to the size of the page (avoiding any gibberish that
1506 lies outside the MediaBox, in the case where the MediaBox is smaller
1507 than the paper).
1508 If the line dash element in an annotation's Border array is of an
1509 invalid type (i.e., not an array), don't draw the link at all (this
1510 matches Adobe's behavior).
1511 Don't remap small caps and oldstyle glyphs in the name-to-Unicode
1512 table - it messes up TrueType font encodings.
1513 Pdftoppm wasn't setting the paper color correctly in mono and gray
1514 modes (this only showed up on big-endian machines).
1515 Missing NULL check was causing crashes when attempting to read non-PDF
1516 files that happened to contain the string '%PDF'.
1517 Fixed a problem in the text extractor that was breaking up words.
1518 Handle vertical text (CJK fonts) in PS output with TrueType fonts that
1519 are missing the vertical metrics tables.
1520 Handle the case where a font object and the corresponding embedded
1521 font are different types.
1522 Handle basic crypt filter functionality.
1523 Added more value checking in the XRef parser, to avoid potential
1524 security problems.
1525 Updated the CJK language support packages: replaced the
1526 displayCIDFontX references with displayCIDFontTT; added pointers to
1527 free TrueType fonts.
1528 Added a missing error message when SplashOutputDev can't parse an
1529 embedded TrueType font file.
1530 PDFCore and TextOutputDev now correctly handle searching for Unicode
1531 strings, including real Unicode case-folding.
1532 Throw away tiling pattern fills that are completely outside the clip
1533 region.
1534 The JPEG 2000 inverse reversible multiple component transform code was
1535 wrong.
1536 Fixed some bugs in shading pattern fills: clipping was wrong, and
1537 background color was not implemented.
1538 Added tool tips for the toolbar buttons.
1539 Decrease the max depth of recursive patch mesh filling if the pattern
1540 has a large number of patches.
1541 Highlight the find text whenever the find dialog is mapped.
1542 Handle page boundary boxes with reversed coordinates.
1543 Fixed a bug in the text extractor code that handles duplicated text.
1544 Optimization work on SampledFunction::transform().
1545 Use the CropBox instead of the MediaBox as the display region.
1546 Dither for PseudoColor (8-bit) displays.
1547 Fix a bug in DCTStream that was causing an infinite loop with
1548 corrupted DCT image data.
1549 Fix a bug in the ToUnicode CMap parser.
1550 Fix a bug in the text extractor - negative font sizes weren't being
1551 handled correctly.
1552 Fix a bug in the text extractor - in certain cases, out-of-bounds text
1553 could cause crashes (generally only in damaged PDF files).
1554 Fix a read-past-end-of-array bug in the JBIG2 decoder.
1555 Fix a case where pdftops was generating lines longer than 255 chars.
1556 Optimize redraws - don't regenerate the XImage every time redrawRect
1557 is called.
1558 The ASCII85 decoder wasn't skipping whitespace properly.
1559 Optimize text extraction: skip (non-inline) image setup entirely.
1560 Added initial transparency support (stroke/fill alpha and blend mode).
1561 Added support for the overprint setting in PostScript output.
1562 Fixed various buffer overflow bugs.
1563 Handle negative font sizes and horizontal scaling correctly - this
1564 affected PSOutputDev for all text operators, as well as the TJ
1565 operator for all OutputDevs.
1566 Fixed a buffer overflow in the CCITTFax decoder.
1567 Fixed an out-of-order entry in the list of font name aliases.
1568 Fixed a backward loop in the PostScriptFunction code.
1569 Treat a zero-length base URI the same way as a nonexistent base URI.
1570 Add a divide-by-zero check in TextOutputDev (the problem was happening
1571 in cases of mixed horizontal and vertical text).
1572 PSOutputDev wasn't rounding the page bounding box coordinates
1573 correctly.
1574 Support the SOF1 marker in DCT (JPEG) image streams.
1575 Minor changes to GlobalParams.h and JPXStream.h because some compilers
1576 don't like anonymous structs inside anonymous unions.
1577 Xpdf now complains about a negative page number.
1578 Changed GString::cmp and GString::cmpN to correctly handle '\0' chars
1579 in the middle of strings.
1580 Fixed the radial shading code; corrected the handling of the 'extend'
1581 parameters.
1582 Added the gmallocn and greallocn functions.
1583 Fixed a bug in the TIFF image component predictor which shows up with
1584 components that are not 1 or 8 bits wide.
1585 Optimized FlateStream::loadFixedCodes().
1586 For non-embedded Base-14 fonts, don't use the ascent/descent/bbox
1587 values from the FontDescriptor - various PDF generators get them
1588 wrong.
1589 Fixed a bug in the text extractor - words on the same line (especially
1590 in tables) were being split vertically onto multiple lines.
1591 Automatically select the correct radio button ("print with command"
1592 vs. "print to file") in the print dialog.
1593 Don't create the "open" and "save as" dialogs until needed - this
1594 avoids stat-ing every file in the directory at startup.
1595 Changed the Big5 and Big5ascii encodings (in the traditional Chinese
1596 language support package) to include characters from the Unicode
1597 database (which aren't mentioned in the Adobe character collection
1598 documentation).
1599 Added the '-pagecrop' switch to pdftops.
1600 Tweaked the RGB->gray and CMYK->gray conversion functions to match the
1601 PDF spec.
1602 The JPEG 2000 decoder wasn't correctly handling codeblocks split
1603 across multiple packets/layers.
1604 Fixed a typecast that caused compile errors on 64-bit systems.
1605 The CMap parser wasn't handling the 'cidchar' construct.
1606 Handle the case in PSOutputDev where two font objects refer to the
1607 same embedded 16-bit TrueType font, but with different CIDToGIDMaps.
1608 Changed the configure script to report more accurate warnings when
1609 it can't find X / Motif / FreeType.
1610 Encryption with revision=2 always uses a 40-bit key, regardless of the
1611 specified Length value.
1612 Yet another minor change to the TrueType font encoding deciphering
1613 algorithm.
1614 Don't completely invalidate the Catalog if one (or more) of the page
1615 objects are bogus -- just skip over those pages.
1616 Removed the workaround in pdftops for too-small Length2 values in Type
1617 1 fonts -- it was causing problems on various PostScript printers.
1618 Started adding error checking to the JBIG2 decoder (this is nowhere
1619 near complete yet).
1620 Extended the "unicodeToUnicode" config option to also apply to CID
1621 fonts.
1622 Added the narrow Latin characters to the Adobe-Korea1.cidToUnicode
1623 file in the Korean language support package.
1624 Fixed the code that handles page rotation in PSOutputDev.
1625 When converting a Type 1C glyph to a Type 1 glyph, insert closepath
1626 operators as appropriate.
1627 Check for a sane 'loca' table in TrueType fonts (FoFiTrueType::parse).
1628 Fix PSOutputDev to correctly handle the case of an empty name in a
1629 font encoding.
1630
1631 3.02 (2007-feb-27)
1632 ------------------
1633 Added anti-aliasing for vector graphics; added the vectorAntialias
1634 xpdfrc option; added the "-aaVector" switch to xpdf and pdftoppm.
1635 Implemented stroke adjustment (always enabled by default, ignoring the
1636 SA parameter, to match Adobe's behavior), and added the strokeAdjust
1637 xpdfrc command.
1638 Support PDF 1.6 and PDF 1.7.
1639 Added support for AES decryption.
1640 Added support for OpenType fonts (only tested with 8-bit CFF data so
1641 far).
1642 Added user-configurable key/mouse bindings - the bind/unbind xpdfrc
1643 commands.
1644 Cleaned up the full-screen mode code and added the ability to toggle
1645 it on the fly (the default key binding is alt-f).
1646 Pdfimages with the -j option now writes JPEG files for 1-component
1647 (grayscale) DCT images, in addition to 3-component (RGB) images.
1648 Fixed bugs in handling sampled (type 0) functions with 32-bit
1649 samples.
1650 Fixed some things to support DeviceN color spaces with up to 32
1651 colorants.
1652 Pdftops now constructs the %%Creator and %%Title DSC comments from the
1653 relevant information in the PDF Info dictionary.
1654 Tweak the TrueType font encoding deciphering algorithm.
1655 Added the "mapUnkownCharNames" xpdfrc option.
1656 Fix a bug (that only showed up with certain window managers) in the
1657 intermediate resize event optimization. [Thanks to Michael Rogers.]
1658 Check for a broken/missing embedded font (this was causing xpdf to
1659 crash).
1660 Added support for transfer functions in PostScript output.
1661 Be a bit more tolerant of Link destinations that contain null values
1662 for positioning parameters.
1663 Use ordered dot dithering instead of clustered dot dithering at
1664 resolutions below 300 dpi (for monochrome output).
1665 Fixed security holes (bounds checking issues) in several places.
1666 Don't bother creating a SplashFont (allocating memory) for fonts that
1667 are only used for hidden text - this avoids problems with fonts of
1668 unreasonably large sizes.
1669 Clipping in TextOutputDev was off for characters on the left edge of
1670 the page.
1671 The scn and SCN operators weren't correctly handling colors with more
1672 than four components.
1673 FoFiType1::writeEncoded wasn't always correctly finding the end of the
1674 encoding.
1675 Use the ColorTransform parameter in the DCTDecode stream dictionary.
1676 Type 3 fonts are allowed to have a bbox of [0 0 0 0], which means
1677 "unspecified" -- don't issue error messages in that case.
1678 Perform the transform (to device space) in Splash instead of in
1679 SplashOutputDev -- this is needed to correctly handle round joins
1680 and caps on stroked paths.
1681 PSOutputDev now rasterizes any pages that use transparency.
1682 Limit the crop, bleed, trim, and art boxes to the edges of the media
1683 box (per the PDF spec).
1684 Change GString to increase the allocation increment by powers of two.
1685 Handle whitespace in hex strings in CMap files/streams.
1686 Use strings instead of names for separation colorant names in
1687 PSOutputDev.
1688 For explicitly masked images where the mask is higher resolution than
1689 the image, use the soft mask code.
1690 Avoid problems with very large x-steps in the PostScript output for
1691 tiling pattern fills.
1692 Avoid a divide-by-zero in stitching functions which have a subfunction
1693 with empty bounds.
1694 Honor the "Hidden", "NoView", and "Print" flags on annotations.
1695 Rewrote the pixel rendering code in Splash to use a single set of
1696 pixel pipeline functions.
1697 Added support for transparency groups and soft masks.
1698 Fixed the transparency blend functions to match the addendum published
1699 by Adobe.
1700 Changed Splash/SplashBitmap to store alpha in a separate plane.
1701 Setting the color space now selects the correct default color for that
1702 color space.
1703 Remove the mutex lock from GlobalParams::getErrQuiet() to avoid a
1704 deadlock when parseCIDToUnicode() or parseUnicodeToUnicode() calls
1705 it from inside a locked section.
1706 Added error checking (on the argument count) in the sc/SC/scn/SCN
1707 operators.
1708 Skip over notdef glyphs in TrueType fonts (which sometimes get drawn
1709 as little boxes), to match Adobe's behavior.
1710 Painting operations in a Separation color space with the "None"
1711 colorant or a DeviceN color space with all colorants set to "None"
1712 never mark the page.
1713 Fixed an obscure bug in the JPX decoder - it wasn't reading the extra
1714 stuffing byte in the case where the last byte of a packet header was
1715 0xff.
1716 Change the TrueType font parser (FoFiTrueType) to change the glyph
1717 count rather than report an error if the 'loca' table is too small.
1718 Fixed a couple of bugs in the JBIG2 decoder.
1719 Added stochastic clustered dot dithering.
1720 Added the screenType, screenSize, screenDotRadius, screenGamma,
1721 screenBlackThreshold, and screenWhiteThreshold xpdfrc settings.
1722 PSOutputDev now correctly handles invalid Type 3 charprocs which don't
1723 start with a d0 or d1 operator
1724 FreeType 2.2.x support - get rid of the FT_INTERNAL_OBJECTS_H include,
1725 and add some 'const' declarations.
1726 Handle PDFDocEncoding in Info dictionary strings.
1727 Tweak the xref repair code - ignore whitespace at the start of lines
1728 when looking for objects.
1729 Added the "-exec" switch to xpdf.
1730 Removed the xpdf.viKeys X resource.
1731 Changed the color key / explicit masked image code in PSOutputDev to
1732 generate better PS code, including a Level 3 option.
1733 Tweaked the DEBUG_MEM code for performance.
1734 Move the JBIG2 global stream reading code into reset() instead of the
1735 constructor - this way, pdftotext doesn't end up reading the global
1736 stream.
1737 Added the "-preload" option to pdftops and the psPreload xpdfrc
1738 command.
1739 Added the "zoom to selection" command (on the popup menu).
1740 Fix a bug (in xpdf/pdftoppm/pdftops) with tiling patterns whose bbox
1741 size is different from their xStep/yStep.
1742 Implemented stroke with pattern color spaces.
1743 Following a link to a page whose CropBox was different from the
1744 MediaBox was resulting in an incorrect scroll position.
1745 Parse truncated date strings from the Info dictionary correctly.
1746 Change FoFiType1 to handle Type 1 fonts with two /Encoding keys.
1747 Extend the PSOutputDev shaded fill code to handle DeviceCMYK shaded
1748 fills in level2sep and level3sep modes.
1749 Detect infinite loops in the Page tree.
1750 Optimized the ASCII85Encoder code.
1751 Tweaked the text extractor to do a better job of lining up rows of
1752 text.
1753 Leave images compressed (or re-compress them with RLE) in PostScript
1754 output when setting up images for forms and Type 3 fonts (or with
1755 -preload).
1756 Extend FoFiType1 to handle Type 1 fonts with octal character codes in
1757 their encodings.
1758 Use a custom string formatter to avoid problems with locale-based decimal
1759 formatting (commas instead of periods) in PS output.
1760 Allow comments in PostScript-type functions.
1761 Change the TrueType font parser (FoFiTrueType) to delete glyf table
1762 entries that are too short.
1763
1764 3.03 (2011-aug-15)
1765 ------------------
1766 Added the "fixed pitch" text extraction mode.
1767 Modified "pdftops -paper match" to handle PDF files with
1768 different-sized pages, i.e., it will now select the matching paper
1769 size on a page-by-page basis.
1770 Add ability for pdftoppm to write to stdout.
1771 Added the pdfdetach tool.
1772 Implemented 256-bit AES decryption.
1773 Commented out the t1lib section in the configure script -- t1lib has
1774 some potential security holes, and hasn't been updated in years.
1775 Redesigned the font configuration xpdfrc commands: removed the
1776 displayFontT1, displayFontTT, displayNamedCIDFontT1,
1777 displayCIDFontT1, displayNamedCIDFontTT, displayCIDFontTT, psFont,
1778 psNamedFont16, and psFont16 commands; added the fontFile,
1779 fontFileCC, psResidentFont, psResidentFont16, and psResidentFontCC
1780 commands.
1781 Switched from GPLv2 to dual v2/v3 licensing.
1782 Performance: cache tiling patterns.
1783 Implemented text fills with pattern color spaces.
1784 Rewrote the image and image mask rendering code to be more accurate
1785 and faster.
1786 Fixed a bug in PDFCore that could sometimes cause crashes at high zoom
1787 levels.
1788 Implemented embedded CMap streams.
1789 Added the 'setSelection' command.
1790 Added the 'rotateCCW' and 'rotateCW' commands.
1791 Added the 'psFontPassthrough' xpdfrc command.
1792 Added the 'launchCommand' xpdfrc command.
1793 Implemented alpha-type soft masks.
1794 Added "Form: AcroForm|XFA|none" to pdfinfo output.
1795 Added support for image masks filled with pattern color spaces.
1796 Text search wasn't finding all occurrences of a string on rotated pages
1797 (i.e., pages where the primary rotation, as displayed, was not
1798 horizontal).
1799 The text extractor now uses "ActualText" spans if they are present.
1800 Modified PSOutputDev so it always check for transparency; if Splash is
1801 not available, it now prints a warning.
1802 Handle the blending color space for soft masks.
1803 Added the disableFreeTypeHinting xpdfrc option.
1804 Added the psAlwaysRasterize xpdfrc option.
1805 Added support for transfer functions in the rasterizer.
1806 Optimized the JPEG 2000 decoder to use less memory.
1807 Do fill adjustment (similar to stroke adjustment) on simple
1808 rectangular fills.
1809 Added the antialiasPrinting xpdfrc setting.
1810 Added '%i', '%j', and '%k' (mouse pointer page and position) to the
1811 available options for the 'run' command.
1812 Links with the underlined border style were being drawn with the lines
1813 over, instead of under, the text.
1814 Add #include <aconf.h> to XPDFTree.cc (to avoid problems with certain
1815 compilers).
1816 Change XRef::fetch() to avoid infinite loops caused by odd damage to
1817 the xref table (e.g., where a stream object's "Length" value is an
1818 indirect reference that points to another stream object).
1819 Minor fix in GString.cc to deal with an error in newer C++ compilers
1820 (pow() can take int or double args).
1821 Handle embedded fonts which are declared with the wrong font type,
1822 including 8-bit fonts declared as CID fonts and vice versa; this
1823 was causing various problems, including crashes and invalid
1824 PostScript output.
1825 In text extractor, don't drop horizontally overlapping words onto a
1826 separate line.
1827 The numbers in the operand to the TJ operator should be multiplied by
1828 the current horizontal scaling parameter.
1829 Fixed a bug in the Type 1C-to-Type 1 font converter -- need to escape
1830 strings in the font dictionary.
1831 The zero-font-size check in PSOutputDev.cc was broken.
1832 Fixes for the form field appearance regeneration code: handle Unicode
1833 strings (by downconverting to Latin1); check for "True" in addition
1834 to "Yes" as a button value.
1835 Modify XPDFTree to limit the widget height to 32767 pixels -- this
1836 avoids crashes with very large outlines.
1837 Modify FoFiType1 to handle PFB headers in Type 1 font files.
1838 Allow image mask decode arrays to be [1.0 0.0] in addition to [1 0].
1839 Tweak the form field appearance regeneration code.
1840 PSOutputDev now sets up resources for DR dictionaries in forms (in
1841 case the form field appearances are regenerated).
1842 For TrueType fonts which are marked symbolic, the cmaps should be
1843 ignored.
1844 Change the handling of numeric characters in Unicode text output --
1845 they are now treated as left-to-right, which isn't strictly correct,
1846 but does result in correct visual formatting.
1847 Modify FoFiTrueType to handle bogus loca table entries where the
1848 offset is past the end of the glyf table.
1849 Fixed shading pattern fills to do clipping and background fills
1850 correctly.
1851 Change the code that reads the page tree to be more flexible with
1852 regard to improperly constructed trees.
1853 Changed the PostScript header comment from "Produced by xpdf/pdftops
1854 x.yy" to "XpdfVersion: x.yy" to make it (mostly) DSC-compliant.
1855 Fixed PSOutputDev to handle page rotation correctly where the PDF page
1856 is rotated 90 or 270 degrees and the page width (before rotation) is
1857 greater than its height (and vice versa for 0 or 180 degrees).
1858 Unbalanced save/restores inside form XObjects (which can be happen in
1859 damaged or incorrectly constructed PDF files) could cause crashes.
1860 The CCITTFax decoder could go into an infinite loop on certain types
1861 of corrupt input.
1862 Added the "drawAnnotations" xpdfrc command.
1863 Added the "psUncompressPreloadedImages" xpdfrc command.
1864 Escape newlines and other non-printable characters in the custom color
1865 DSC comments in PostScript output.
1866 Added the tilingPatternFill and *ShadedFill functions to
1867 PreScanOutputDev to speed it up.
1868 Too many elements in an image's Decode array should not be a fatal
1869 error.
1870 Fixed a buffer overflow security hole in StreamPredictor.
1871 Empty pages (zero-length content streams and null contents) were
1872 causing crashes in continuous view mode.
1873 Handle line dash arrays that start with a zero element correctly.
1874 PreScanOutputDev was not correctly detecting all transparency - in
1875 some places, it was looking only at the blending mode, and not at
1876 the opacity setting.
1877 Force halftone screen size to be a power of 2. This allows optimizing
1878 the halftoning code.
1879 Fixed a bug in the JBIG2 MMR decoder (and also in the CCITTFax
1880 decoder) that was causing array references with negative indexes.
1881 Fixed a bug in the transparency code that was causing memory overruns.
1882 Fixed a 64-bit bug in the ASCII85 encoder.
1883 The focusToPageNum was crashing in full-screen mode - it should simply
1884 do nothing.
1885 Added '%p' (current page number) to the available options for the 'run'
1886 command.
1887 Tweak the behavior with PDF files that have pages of different widths
1888 in continuous mode: scroll horizontally to avoid blank space on the
1889 left side (when changing pages via entering a page number or
1890 clicking on a link).
1891 A closepath followed by a lineto should create a new subpath for the
1892 lineto.
1893 Fixed a buffer overflow in the CCITTFax decoder.
1894 Adobe Acrobat appears to ignore the flatness setting when rasterizing
1895 curves, so Xpdf now does the same. (Oddly, Acrobat passes the
1896 flatness setting through to PostScript output, which ends up making
1897 the PS file look different from the PDF file - so Xpdf continues to
1898 pass flatness through to PS files, too.)
1899 Pdfimages now ignores tiling pattern fills (for performance reasons).
1900 Fixed a bug in PDFCore that could sometimes cause crashes at high zoom
1901 levels.
1902 Use std::sort (with functors) in place of qsort (if available) - this
1903 can be significantly faster.
1904 Hitting "close" while Xpdf is in full-screen mode (with only one file
1905 open) was crashing.
1906 Tweak the TrueType font encoding deciphering algorithm.
1907 Rewrote the CCITTFax decoder inner loop - this fixes a security hole.
1908 Fixed two security holes (missing bounds checks) in the DCT decoder.
1909 Do the correct zooming for "Fit" and "FitR" destinations.
1910 Implement the rotation value in the form field appearance regeneration
1911 code.
1912 When PSOutputDev rasterizes a page (because it contains transparency),
1913 the image is broken into stripes if it is above a size threshold.
1914 Don't clip the other page boxes to the MediaBox at the intermediate
1915 (Pages) nodes; only do it at the leaf (Page) nodes - the other boxes
1916 can be specified before the MediaBox is specified.
1917 Split several special cases off from Splash::pipeRun, for performance.
1918 Add a sanity check for excessively large font sizes (which caused
1919 problems because Xpdf tried to allocate memory for a font cache).
1920 Fixed a bug in the GfxCIDFont constructor involving reading the
1921 vertical metrics.
1922 Rewrote the code that handles annotation transforms - it was not
1923 handling non-rectangular transforms correctly.
1924 Tweak the Type 3 bbox code to allow some slack on the left/bottom
1925 edges, as well as the top/right edges.
1926 Fixed a bug that was causing problems rendering Type 3 fonts to 1-bit
1927 monochrome output.
1928 Handle the case where AES padding is invalid.
1929 Changed XRef::getNumObjects to return the number of used entries,
1930 instead of the same value as returned by XRef::getSize().
1931 Ignore bogus entries in the TrueType table directory instead of
1932 immediately giving up on the font.
1933 Fixed a bug in the radial shading code that could cause divide-by-zero
1934 errors.
1935 Tweaked the TrueType font fixup code to deal with an extra zero entry
1936 at the end of the loca table.
1937 Increased font cache sizes to improve performance.
1938 Tweaked the TrueType notdef kludge to skip the notdef glyph only if it
1939 was caused by a character for which a Unicode/MacRoman mapping could
1940 not be found.
1941 Added another font size sanity check, this time for Type 3 glyphs.
1942 Added initial support for optional content (layers) - no GUI yet.
1943 For CID fonts that specify the 'Adobe-Identity' or 'Adobe-UCS'
1944 collection, use an identity mapping for char code-to-Unicode
1945 conversion.
1946 Updated the error function to take a category argument, and to use
1947 GString::format instead of printf; added an error callback.
1948 The PDF spec claims that names are limited to 127 chars, but Distiller
1949 8 will produce longer names, and Acrobat 8 will accept longer names
1950 -- Xpdf will now handle them, too.
1951 Change the Catalog code so it doesn't load the entire page tree at
1952 startup (this only helps the command line tools - the viewer scans
1953 all of the pages at startup).
1954 Clip opacity values to the range [0,1].
1955 Handle glyph names of the form 'unixxxx' (similar to Ann, Axx, etc.).
1956 Resolution of rasterized pages in PostScript output was not being
1957 computed correctly (resulting in overly large images).
1958 Extend the mapUnknownCharNames config command to cover CID fonts.
1959 Zero-length segments in the middle of stroked paths were not being
1960 handled correctly -- they should be completely ignored, except for
1961 the special case of a zero-length path with round line caps.
1962 Various optimizations to the Splash rasterizer.
1963 Allow "Identity" and "Default" as the transfer function in soft masks.
1964 Tweaked the ToUnicode CMap parser to allow <00xx> char codes for 8-bit
1965 fonts.
1966 TextPage::clear() was not clearing the lists of underlines and links.
1967 Changed the CCITTFax decoder to correctly handle the interaction
1968 between the EndOfLine and EncodedByteAlign parameters.
1969 Fixed a bug where xpdf wouldn't go to a destination specified on the
1970 command line, if continuous mode was enabled
1971 (xpdf -cont file.pdf +foo).
1972 Fixed a bug in the FreeType interface code which was causing incorrect
1973 positioning/sizing of characters.
1974 Tweaked the FreeType interface code - use 'light' hinting with Type 1
1975 fonts (because it generally looks better).
1976 Tweak the Windows font searching code to handle "Black" fonts.
1977 Fixed a bug in the PostScript-type function parser -- real numbers
1978 that start with a decimal point weren't being handled correctly.
1979 Changed the way filled-and-stroked text is handled -- use Splash to do
1980 both the fill and the stroke (rather than using the font ending to
1981 do the fill and Splash to do the stroke); also turn off stroke
1982 adjustment when drawing stroked text.
1983 Ignore generation numbers on compressed objects (to match Adobe's
1984 behavior).
1985 Changed the PostScript PageSize policy from 3 to 6 (choose next
1986 largest paper size, don't rescale).
1987 Check that the mask values for color key masked images are in range --
1988 both Ghostscript and Distiller choke on the PostScript if invalid
1989 mask colors are specified.
1990 Fixed a bug in generic region decoding in the JBIG2 decoder.
1991 Fixed the lexer to handle large real numbers correctly.
1992 Pdftops wasn't correctly handling tiling patterns that use both fill
1993 and stroke operators.
1994 Report an error if the Size array in a sampled function includes any
1995 zeros.
1996 The PostScriptFunction.codeString field wasn't being initialized
1997 correctly.
1998 Invalid object streams were not being handled correctly.
1999 Check for loops in xref tables.
2000 Handle the case where a content stream ends after the 'ID' operator
2001 which starts inline image data.
2002 Check for invalid object streams (i.e., an object stream can't be
2003 inside another object stream.
2004 Add a recursion limit to the object parser - this avoids stack
2005 overflows with various sorts of damaged PDF files.
2006 Handle various parameter settings in the extended graphics state
2007 dictionary.
2008 An invalid document outline (missing fields) could cause a crash.
2009 Added an overprint preview mode (for CMYK output only).
2010 Correctly handle FitH/BH/V/BV link destinations that contain null
2011 values for positioning parameters.
2012 If the PDF file doesn't define a BaseURI, set one based on the
2013 location of the PDF file -- this allows relative links to be handled
2014 correctly.
2015 Use ResusableStreamDecode when generating Level 3 PostScript for an
2016 explicitly masked image.
2017 Tweak the Type 1 font parser to handle encodings with multiple
2018 characters on one line.
2019 Invert subtractive color components before passing them to the
2020 blending function.
2021 Fix an invalid array access in SplashOutputDev::setSoftMask() in CMYK
2022 mode.
2023 A PS interpreter may attempt to read past the end of a preloaded
2024 image, so we need to check for that.
2025 Fixed several overflow/uninit bugs in JBIG2Stream.
2026 Fix the CCITTFax decoder to correctly find end-of-file (RTC/EOFB)
2027 markers when the EndOfLine parameter is false.
2028 Don't limit the startxref offset to 10 digits - some PDF generators
2029 use extra leading zeros.
2030 Use the "DV" (default value) field in text annotations if the "V"
2031 (value) field is missing.
2032 Increase the number of digits printed for floating point numbers in
2033 PostScript output -- it was running into numerical accuracy problems
2034 on large pages.
2035 Fixed integer overflow bugs in Catalog.cc and GfxFont.cc.
2036 Zero-length tables in TrueType fonts should be treated as missing.
2037 ToUnicode CMaps map char codes to Unicode; .cidToUnicode files map
2038 CIDs to Unicode -- ToUnicodeCMaps were being handled incorrectly.
2039 Added the "psRasterResolution" and "psRasterMono" xpdfrc commands.
2040 Added code to FoFiTrueType to check for entries in the table directory
2041 with bogus tags -- this handles the case where the number of tables
2042 given in the header is too high.
2043 Negative shift values in the PostScript bitshift operator were being
2044 handled incorrectly.
2045 GfxICCBasedColorSpace was not correctly bounds-checking the number of
2046 components.
2047 Check SampledFunction input values for NaNs.
2048 Fix a divide-by-zero when the page width or height is zero.
2049 Fix a bug positioning text in PostScript output - if the last char in
2050 a string has an incorrect width in the PDF font object, that messes
2051 up the total string width, so we have to position individual chars.
2052 In PostScript output, if CID font substitution fails, drop all text in
2053 that font.
2054 Handle PDF files that set the stream/string decryption filters to
2055 Identity (i.e., no encryption).
2056 Avoid passing a zero font size to FreeType.
2057 Tweak raw mode in the text extractor to handle words on the same line
2058 drawn in the wrong order.
2059 Pdftops was generating a singular transform matrix for annotations
2060 whose bounding boxes had zero width or height.
2061 Handle embedded OpenType CFF fonts with CIDToGIDMaps.
2062 Remove the old kludge from PSOutputDev that was converting char 32
2063 from ".notdef" to "space".
2064 Allow CCITTFax images to be more than 32k pixels wide.
2065 Modified the CMap parser to handle usecmap with Identity-H/V.
2066 Added some parameter checking in the JPX decoder.
2067 Added checks for infinite loops in PDF objects - for color spaces,
2068 functions, optional content, and outline items.
2069 Add support for mouse button bindings up to button 32 (old limit was
2070 7).
2071 Fixed a bug in the decryption code for revision 3 with keyLength < 16
2072 -- the owner password was not being handled correctly. [Thanks to
2073 Matthias Franz.]
2074 Optimize SampledFunction: pull index computation code out of the
2075 transform function; cache the last transform.
2076 Tweaked the font naming algorithm in PSOutputDev.
2077 Treat mirrored (as opposed to rotated) text the same as upright text
2078 in pdftotext.
2079 Fixed buffer overflows in Splash and SplashBitmap.
2080 Check for bogus character codes (e.g., <ffffffff>) in ToUnicode CMaps.
2081 The radial shading code (in both Gfx.cc and PSOutputDev.cc) was not
2082 computing the s bounds properly.
2083 Drop empty subpaths in clip and fill (but not stroke) operations -
2084 this can significantly speed up clip performance in the weird case
2085 where a PDF file does "<x> <y> <w> <h> re <x> <y> m h W n".
2086 Added code to FoFiTrueType to check for an invalid loca format field
2087 in the head table.
2088 The axial shading code (in Gfx.cc, but not PSOutputDev.cc) was not
2089 computing the incremental polygon vertices correctly.
2090 Set the character width in TextOutputDev to something sensible for
2091 vertical fonts.
2092 Added basic support to the text extractor for vertical writing mode.
2093 The non-interactive tools (pdftotext, pdftops) now free Page objects
2094 after using them, avoiding performance problems with pages that have
2095 huge resource dictionaries.
2096 Check for line dash arrays like [0], and draw nothing at all (to match
2097 Acrobat's behavior).
2098 Add a sanity check for the ascent/descent values in FontDescriptors.
2099 Single-point paths with a line dash were causing a crash.
2100 Correctly handle Level 3 PostScript output with masked images inside
2101 patterns.
2102 Tweaked the xref repair code so that it runs if the catalog is messed
2103 up (in addition to running if the xref table is damaged).
2104 If Indexed color space tables (streams or strings) are too small,
2105 reduce the max index instead of throwing away the color space.
2106 Change the CMap parser to allocate memory only when it sees a mapping,
2107 not when it sees a 'codespacerange' declaration -- this avoids
2108 allocating huge amounts of memory for CMaps with large, unused
2109 codespaceranges.
2110 In monochrome mode, treat lines with width <= 1 as hairlines (to match
2111 Acrobat's behavior).
2112 Cache the last transform for PostScript-type functions.
2113 Added the "-rawdates" option to pdfinfo.
2114 Optimized ImageStream::getLine().
2115 Fixed the Hue, Saturation, Color, and Luminosity blend functions to
2116 match Adobe's spec.
2117 Fixed the non-isolated group compositing computation.
2118 Skip extraneous unused data at the end of JBIG2 segments.
2119 Change the algorithm that stroke/fill adjustment uses so that the
2120 edges of adjacent strokes/fills line up.
2121 Do stroke adjustment on end caps when cap style is butt or projecting.
2122 Fixed a security hole: Gfx.parser was not being initialized to NULL.
2123 Fixed a security hole: integer bounds check in the Type 1 encoding
2124 parser in FoFiType1.cc.
2125 If an embedded font object is invalid or non-existent, do font
2126 substitution (same as if there were no embedded font).
2127 TextOutputDev was reusing an old font in the case where the font
2128 changed but the font size and character positioning stayed the same.
2129 When starting a transparency group, copy the fill/stroke colors from
2130 the graphics state.
2131 Tweaked the fixed-point code.
2132 When a TrueType font is declared resident (with a psFont command),
2133 don't munge the encoding.
2134 Look for URIs starting with "www." and treat them as absolute "http:"
2135 URIs, not as relative URIs (to match Adobe's behavior).
2136 Added code to FoFiTrueType to check for a zero-entry cmap table.
2137 Tweaked the font substitution code to do a better job of scaling the
2138 substituted font.
2139 Require at least two splits in the axial shading color bisection.
2140 Optimized JBIG2Stream::readGenericBitmap().
2141 JPXStream wasn't correctly handling row padding for images with fewer
2142 than 8 bits per component.
2143 Optimized the ToUnicode CMap parser.
2144 Added a "whole words only" option to text searches.
2145 Check for valid component parameters in the DCT decoder.
2146 Implement embedding of external 16-bit fonts (without subsetting) in
2147 PostScript output.
2148 Added the minLineWidth xpdfrc command.
2149 Added warning messages for font substitutions.
2150
2151 3.04 (2014-may-28)
2152 ------------------
2153 New text extractor.
2154 Added the pdftohtml tool.
2155 Added the pdftopng tool.
2156 New trapezoid-based rasterizer core (for performance).
2157 Generate appearance streams for Line, PolyLine, and Polygon
2158 annotations.
2159 Added the closeWindowOrQuit command, and changed the default binding
2160 for ctrl-W from closeWindow to closeWindowOrQuit.
2161 Implemented the new AES-256 mode (R=6, Acrobat X).
2162 Add an object cache.
2163 Added a small cache for object streams.
2164 Modify PSOutputDev to use LZW compression instead of RLE, with a
2165 fallback to RLE if the "psLZW no" setting is given.
2166 Pdfinfo now prints page rotation info.
2167 Modified ImageOutputDev, used by pdfimages, to output the masks and
2168 soft masks used when drawing images.
2169 Remove non-printable characters from error output, just in case they
2170 might cause problems for the terminal program.
2171 Added initial support for Code3of9 bar codes in XFA forms.
2172 Added the mapExtTrueTypeFontsViaUnicode xpdfrc command.
2173 Apply stroke adjustment to rectangular images and clipping regions (in
2174 addition to strokes and fills).
2175 Decode JPEG 2000 images at less than full resolution if the full res
2176 image isn't needed (i.e., if the raw image is higher resolution than
2177 the output).
2178 Implemented knockout groups.
2179 Removed t1lib support.
2180 Added support for images with 16-bit components.
2181 Rewrote the Dict class to use a hash table; as a side effect, this
2182 handles dictionaries with multiple definitions for a key, which are
2183 in violation of the spec, but Acrobat appears to handle.
2184 The transformed line width computation -- used to implement the
2185 minLineWidth setting, and the hairline threshold in monochrome mode --
2186 was incorrect.
2187 Pdftops was not correctly handling the case where it couldn't find
2188 a 16-bit font -- this led to crashes and/or invalid PostScript.
2189 A bug in FlateStream::getBlock() was causing problems with narrow
2190 images.
2191 Use the correct _WIN32 define instead of WIN32.
2192 Use copy-on-write for the clip path in SplashState (when doing gsave),
2193 for performance.
2194 Added a Solaris-specific entry to the ghostscript font search path.
2195 SplashState was initializing line width to 0 instead of 1.
2196 Abort processing on a content stream after getting 500 errors
2197 (undefined operator, wrong number of args) -- this avoids very long
2198 processing time for malicious PDF files using bogus RLE encoded
2199 content streams.
2200 Added the psUseCropBoxAsPage xpdfrc option; "pdftops -pagecrop" now
2201 sets psUseCropBoxAsPage; "pdftops -pagecrop -paper match" now uses
2202 the CropBox as the page size.
2203 Re-architected the AcroForm support code into a separate AcroForm
2204 module.
2205 Fixed the handling of overprinting/transparency interaction, using
2206 the CompatibleOverprint blend mode.
2207 The TIFF predictor code for the 1-bit-per-pixel case was broken.
2208 For triangle and patch mesh shadings (types 4-7) with color functions,
2209 interpolate the function parameter not the color.
2210 Check the fontFile/fontDir commands before (instead of after) doing
2211 Base-14 substitution in PS output.
2212 Correctly handle non-embedded TrueType fonts that have an Identity
2213 ToUnicode mapping (display and PS output were failing).
2214 Added support for XFA form rendering, including an "enableXFA" xpdfrc
2215 setting.
2216 Handle PFB Type 1 fonts when generating PostScript output.
2217 Unwind any extraneous saved graphics state at the end of the page
2218 (before drawing annotations).
2219 Added some integer overflow checks in the GString class.
2220 Handle 16-bit components in JPEG 2000 images.
2221 ActualText spans can end without a valid font, in which case
2222 TextPage::beginWord was crashing.
2223 The Domain entry in function shadings wasn't being parsed correctly.
2224 Fixed a bug in the JPEG decoder - successive approximation
2225 (progressive mode) coefficients weren't being handled correctly.
2226 Added a better infinite loop test to the xref parser.
2227 When generating PostScript, merge reused TrueType fonts (if their
2228 code-to-GID mappings are the same).
2229 Tweak the Gouraud triangle shaded fill code to end the recursive
2230 splitting if the triangles get sufficiently small.
2231 Do bilinear interpolation when upsampling images.
2232 When skipping extraneous image data from an inline image, look for
2233 EI<whitespace> instead of just EI.
2234 When writing to stdout on Windows, pdftoppm now sets the file mode to
2235 binary. [Thanks to Robert Frunzke.]
2236 Accept strings as well as names for the BaseFont entry in font
2237 objects.
2238 Removed the TEXTOUT_WORD_LIST config option (with the new text
2239 extractor, this is always enabled).
2240 Fixed a bug in the JBIG2 decoder (the TPGD context for template #3 in
2241 readGenericBitmap was incorrect).
2242 Rewrote the PostScriptFunction code for performance.
2243 Handle 8-bit OpenType CFF fonts that are missing required tables in
2244 the OpenType wrapper.
2245 Handle tiling patterns with reversed coordinates in their bounding
2246 boxes.
2247 Added support for 64-bit file offsets, i.e., PDF files larger than
2248 2GB.
2249 Optimize the code that rasterizes pattern-filled image masks.
2250 Added support for Mac OS X system fonts (Base-14 only).
2251 The backdrop color in luminosity-type soft mask groups was not being
2252 handled correctly.
2253 Modified behavior of "pdftops -paper match -duplex ..." - it will now
2254 duplex consecutive same-sized pages.
2255 Tweak the handling of degenerate fills ('moveto lineto fill') to
2256 match Adobe.
2257 Don't honor the OPM=1 setting with ICCBased CMYK color spaces.
2258 Whole-word searches were treating certain punctuation (Unicode number
2259 separators and terminators) as part of the word, e.g., searching for
2260 "foo" would not match "foo,".
2261 Use the TextString class everywhere it makes sense.
2262 Removed the unnecessary segment sort in Splash (performance
2263 optimization).
2264 Handle hyperlinks that use Widget-type annotations.
2265 Fix up the integer overflow checks to avoid issues with clever
2266 compilers. [Thanks to Nickolai Zeldovich.]
2267 Correctly handle streams with missing Length entries in damaged PDF
2268 files.
2269 Added a compile-time option (LOAD_FONTS_FROM_MEM) to load fonts from
2270 memory rather than temporary files on disk.
2271 Added the psRasterSliceSize xpdfrc option.
2272 Fixed a case in the JPEG 2000 arithmetic decoder where extra data is
2273 present in packet i, and needs to be saved for use in packet i+1.
2274 Fixed a bug in the JPEG 2000 decoder related to images with fewer than
2275 8 bits per component.
2276 Handle the case in PSOutputDev where slice size overflows a 32-bit
2277 integer.
2278 Add (partial) support for TrueType cmap format 2.
2279 Always pass FT_LOAD_NO_BITMAP to FreeType -- bitmaps apparently fail
2280 with rotated characters.
2281 Support fonts specified in ExtGState dictionaries.
2282 Annotations with empty Border arrays should not draw a border.
2283 Fix the CMap parser to handle large CID ranges.
2284 Check for Type 3 CharProcs that call q or Q before the d0/d1 operator,
2285 and treat them as uncacheable.
2286 Invert the selection color when starting in reverse video mode.
2287 Device{Gray,RGB,CMYK} cannot be mapped via a resource dict.
2288 Changed the PS output for masked images (explicit and color key
2289 masking): use a plain old clip path instead of rectclip to avoid
2290 array overflows.
2291 Check the StemSnapH/V arrays when converting Type 1C fonts to Type 1 -
2292 if there are any duplicate or out-of-order values, skip that
2293 StemSnapH/V array.
2294 Added the psMinLineWidth xpdfrc setting.
2295 Fix an obscure issue in converting TrueType fonts to Type 42, related
2296 to empty glyph descriptions (12 zero bytes).
2297 Pdftops now reports an error if there were any I/O errors writing to
2298 the PS output file.
2299 Fix vertical text (CJK fonts) in PS output -- offset the character
2300 origin correctly.
2301 Increased the number of digits used by pdfimages for the image number
2302 from three to four.
2303 Handle right-to-left (e.g., Arabic) ligatures correctly in the text
2304 extractor.
2305 Added the -loc and -locPS options to pdffonts.
2306 Extend the object parser recursion limit to cover Stream::addFilters()
2307 / Stream::makeFilters() - to avoid another possibility of stack
2308 overflow.
2309 Disable FreeType autohinting, because it can fail badly with font
2310 subsets that use invalid glyph names -- except in the case of Type 1
2311 fonts, which look much better with light autohinting.
2312 Modified the rasterizer pipeline functions to process a scan line at a
2313 time (for performance).
2314 Removed VMS build support (it hasn't been updated in ages).
2315 Removed pdftotext's '-htmlmeta' option (use pdftohtml instead).
2316 PSOutputDev's font/form setup code, and pdffonts, were not scanning
2317 soft mask groups in ExtGState dictionaries.
2318 Invalid DCT input (e.g., from a damaged PDF file) could overflow the
2319 dctClip array.
2320 When upsampling an image mask or image with a large resulting image
2321 size, do it in stream mode instead of prescaling the whole image
2322 (to avoid running out of memory).
2323 Added infinite loop detection to pdffonts.
2324
2325 4.00 (2017-aug-10)
2326 ------------------
2327 Complete rewrite of the xpdf GUI, using Qt instead of Motif.
2328 Multithreaded rasterization in the viewer - pages are now rasterized
2329 in a separate thread so that scrolling and other UI activity is not
2330 blocked.
2331 Added a linear text selection mode.
2332 Limit transparency groups to the clip rectangle (performance
2333 optimization).
2334 Optimized the SplashScreen code, used in 1-bit monochrome mode.
2335 Added setmode calls to pdftopng, when writing to stdout on Windows.
2336 [Thanks to Robert Schroll.]
2337 Regenerate the appearance stream for an AcroForm field if there is
2338 no appearance stream, even if NeedAppearances isn't set.
2339 When regenerating AcroForm field appearance streams, use a default
2340 font (Helvetica) for fields that don't have a valid font.
2341 When the line width is increased by the minLineWidth setting, force
2342 the line join mode to "bevel" to avoid "whiskers" at sharp corners.
2343 Change the pdftoppm/pdftopng resolution (-r) argument from an integer
2344 to floating point.
2345 Use the FontDescriptor 'CapHeight' value in place of 'Ascent' if it's
2346 available.
2347 OC (optional content) entries in image XObjects were being ignored.
2348 Added support for preblended soft-masked images.
2349 Added optional support for using libjpeg to decode DCT (JPEG)
2350 streams.
2351 Transparency groups weren't being composited correctly in mono1 mode.
2352 Switched to a different IDCT transform in the DCT (JPEG) decoder, to
2353 get better accuracy; the new transform is also a bit faster.
2354 Modified the polygon scan converter to avoid O(n^2) performance, which
2355 can get really bad with paths that have extremely large numbers of
2356 segments.
2357 Added the maxTileWidth, maxTileHeight, tileCacheSize, and
2358 workerThreads xpdfrc settings.
2359 Modified PSOutputDev so it doesn't output resources (fonts, etc.) for
2360 pages that are rasterized (because they use transparency).
2361 Added the -alpha flag to pdftopng.
2362 Handle TrueType fonts with out-of-bounds loca entries.
2363 Optimize consectutive "q" (gsave) operations in PostScript output.
2364 Various improvements to the XFA rendering code.
2365 Added the -nodiag flag to pdftotext.
2366 Switched to cmake instead of autoconf.
2367 Look for Widget-type annotations that aren't attached to the
2368 AcroForm, and add them to the AcroForm.
2369 Added the "-z" option to pdftohtml.
2370 The JPEG 2000 decoder now treats invalid boxes after the image
2371 codestream as non-fatal errors.
2372 Improved the handling of drop caps in pdftohtml.
2373 Added the "psNeverRasterize" setting.
2374 Pdftohtml now converts invisible PDF text to transparent HTML text.
2375 Check for zero-width/height bitmaps in the JBIG2 decoder -- these can
2376 happen in corrupted JBIG2 streams.
2377 Pdfimages was inverting 1-bit monochrome images.
2378 Added CCITTFaxStream::getBlock() to speed up the CCITTFax decoder.
2379 Added resolution info to PNG files generated by pdftopng.
2380 The DCT decoder now ignores non-Adobe APP14 markers (rather than
2381 generating an error).
2382 Regenerate appearance streams for FreeText annotations.
2383 The TextString class now handles UTF-16LE in addition to UTF-16BE.
2384 (UTF-16LE isn't allowed by the PDF spec, but I've seen it used.)
2385 Added the simple one-column text extraction mode (pdftotext -simple).
2386 Added a -cmyk option to pdftoppm to write CMYK PAM files.
2387 Modified pdfinfo to output "static XFA" or "dynamic XFA", rather than
2388 just "XFA".
2389 Added the "drawFormFields" xpdfrc command.
2390 Various performance optimizations in the rasterizer.
2391 Fixed the tiling pattern code to avoid stripes between pattern cells,
2392 and to honor the TilingType flag.
2393 Always split axial shadings into 256 slices.
2394 Handle the case where an optional content block is left open at the
2395 end of a page content stream.
2396 Accept code-to-CID-type CMaps as ToUnicode CMaps (to work around buggy
2397 PDF generators).
2398 Unicode-to-unicode maps weren't working correctly with fonts that have
2399 an "Identity" encoding.
2400 Modify the lexer to interpret "--123.4" as -123.4, "--123" as 0, and
2401 "123-45" as "123" to match Adobe's behavior.
2402 The text extractor now reverses the order of side-by-side columns for
2403 right-to-left scripts.
2404 Worked on right-to-left script support in pdftohtml (still not
2405 complete).
2406 Switched the default display mode to continuous (from single page).
2407 Added the "-bom" switch to pdftotext.
2408 Share font objects when multiple font tags point to the same object.
2409 The transfer function goes before alpha blending in the rasterizer
2410 pipeline.
2411 Added the "-allinvisible" switch to pdftohtml.
2412 Added overprint mode (OPM) support in Level 3 PostScript output.
2413 Added support for DeviceN color spaces in Level 3 PostScript output.
2414 Added the "-userunit" option to pdftops.
2415 Added the "-raw" and "-list" options to pdfimages.
2416 Pdfimages now writes PGM files (instead of PPM files) for DeviceGray
2417 and CalGray images.
2418 Added grayscale PostScript output -- added the '-level2gray' and
2419 '-level3gray' switches to pdftops.
2420 Fix up Type 1 fonts when embedding in PostScript.
2421 Added the "problematic" column to pdffonts output.
2422 Generate an appearance stream for signature fields in AcroForms.
2423 Correctly handle line dash patterns with zero-length segments when the
2424 line cap is butt or project.
2425 Added the "strokeAdjust cad" xpdfrc option; fixed some issues with
2426 stroke adjustment and projecting line caps.
2427 Added support for Code128B bar codes in XFA forms.
2428 Look at both the ON and OFF arrays in the default OCCD (optional
2429 content config dict), to work around certain broken PDF files.
2430 Added support for XFA 'numericEdit' fields.
2431 Added support for 'picture' formatting in XFA forms.
2432 Added mouseClickN events (in addition to mousePressN and
2433 mouseReleaseN).
2434 External CID OpenType CFF fonts should map through Unicode (similarly
2435 to external CID TrueType fonts).
2436 Handle axial and radial shadings in SplashOutputDev, in device space.
2437 Use the PDF 2.0 inline image length field.
2438 Handle duplicate embedded Type 1 font names in PostScript output.
2439 Handle the case of a stroked closed path with a dash pattern -- if the
2440 dash pattern is "on" at both the start and end of a subpath, it
2441 should be joined.
2442 If the line dash phase is negative, add a multiple of 2x the total
2443 dash length.
2444 Indexed color space indexes should be clipped to [0,hival].
2445 Fix the handling of the text render mode with Type 3 fonts, in the
2446 rasterizer and in PostScript output.
2447 CID font metrics shouldn't be sorted - the PDF 2.0 spec says that, in
2448 the case of duplicate entries, the first entry should be used.
2449 PSOutputDev now converts tiling patterns to PostScript tiling patterns
2450 (in Level 2/3).
2451 Fixed a security hole in SecurityHandler.cc (uninitialized variables).
2452 This vulnerability was discovered by Kushal Shah of Fortinet's
2453 FortiGuard Labs.
2454 Fixed a security hole in Function.cc (write past end of array).
2455 Fixed a security hole with the use of d0/d1 operators outside of a
2456 Type3 CharProc [CVE-2016-9027].
2457
2458 4.01 (2019-feb-18)
2459 ------------------
2460 Added remote server mode back into xpdf.
2461 Add support for Unicode file names for the command line tools on
2462 Windows.
2463 Added the tabStateFile setting, the saveTabState/loadTabState
2464 commands, and the "-tabstate" switch to xpdf. [Thanks to Christian
2465 Barthel for the suggestion.]
2466 Added the defaultPrinter xpdfrc setting.
2467 Removed the psFile xpdfrc option (should have been removed in the 4.00
2468 release).
2469 Tweaked the TrueType encoding/cmap code again, to get closer to the
2470 PDF 2.0 spec, and to fix a problem (difference between Xpdf and
2471 Adobe) with a specific PDF file.
2472 Optimized transparency group rasterization: only composite the part of
2473 the group bitmap that was modified.
2474 If vector antialiasing is disabled, use the narrow stroke code for
2475 lines less than one pixel wide.
2476 Do not map through Unicode for non-embedded CID TrueType fonts with
2477 encoding = Identity-H and char collection = Adobe-Identity -- this
2478 matches Adobe's behavior on a somewhat common case.
2479 The CCITTFax decoder now aborts after 1000 error messages, avoiding
2480 problems with huge data expansion for badly corrupted CCITTFax
2481 streams.
2482 The xref loop detection code was only looking at xref tables, and not
2483 xref streams. (CVE-2018-7174) [Thanks to skysider for the bug
2484 report.]
2485 The JPX decoder wasn't checking to make sure the number of components
2486 is non-zero. (CVE-2018-7175) [Thanks to skysider for the bug
2487 report.]
2488 Modify the lexer to accept leading '+' signs on numbers.
2489 Pdftohtml wasn't setting the background image width/height attributes
2490 correctly for rotated pages.
2491 Ignore color-setting operators in cached Type 3 characters.
2492 Support color-key masking in Level3Gray PS output with preload.
2493 Xpdf was crashing on zero-page PDF files.
2494 Added the unicodeRemapping xpdfrc option.
2495 Change the cursor when the mouse is over text (in linear selection
2496 mode).
2497 Support external OpenType CFF fonts for PostScript output.
2498 Handle choice-type AcroForm fields that have separate display values
2499 and export values.
2500 Increased the supported PDF version from 1.7 to 2.0. (This isn't a
2501 change in functionality. The code was already in place -- I just
2502 forgot to bump the PDF version number.)
2503 Added the dropFont xpdfrc option.
2504 Added support for PDF417 barcodes in XFA forms.
2505 Modified pdfinfo to look at both the Info dict and the XML metadata.
2506 Check for invalid line cap/join values. [Thanks to
2507 fish@360TeamSeri0us for the bug report.]
2508 Modified the object stream cache to hold onto more object streams, if
2509 they're being used.
2510 Don't look at the "DV" (default value) key in AcroForm fields -- that
2511 should only be used when a form is explicitly reset.
2512 Accept 8-byte values in xref streams.
2513 Two DCTStream bugs: don't allow SOF headers between progressive scans;
2514 check for invalid Huffman table indexes. [Thanks to
2515 fish@360TeamSeri0us for the bug reports.]
2516 Check for uses of the scn/SCN operators with no arguments. [Thanks to
2517 fish@360TeamSeri0us for the bug report.]
2518 Correctly handle indexed color spaces with empty lookup tables.
2519 [Thanks to fish@360TeamSeri0us for the bug report.]
2520 Support large bitmaps (>4GB) on 64-bit systems.
2521 Soft masks are always isolated.
2522 When "undoing" preblended image/softmask data, clip the resulting
2523 color values to avoid problems with incorrect data.
2524 Set the default text encoding to UCS-2 in Xpdf, so that copying to the
2525 clipboard works as expected.
2526 Added a sanity check for JBIG2 symbol height. (CVE-2018-7173)
2527 [Reported by skysider.]
2528 Check for uninitialized value in JPXStream::fillReadBuf.
2529 (CVE-2018-7452) [Thanks to skysider for the bug report.]
2530 Don't try to load an XFAForm if the PDF file has zero pages.
2531 (CVE-2018-7454) [Thanks to skysider for the bug report.]
2532 Check for invalid line cap/join values. (CVE-2018-16368) [Thanks to
2533 fish@360TeamSeri0us for the bug report.]
2534 If the page count is greater than 50k, rescan the page tree and count
2535 the pages. This prevents long load times where various tools try to
2536 read pages 1 through n. (CVE-2018-18651) [Thanks to krace for the
2537 bug report.]
2538 Handle a null font name in PSOutputDev::setupEmbeddedType1Font.
2539 [Thanks to r4xis for the bug report.]
2540 Check for invalid quant table indexes in the DCT decoder. [Thanks to
2541 r4xis for the bug report.]
2542
2543 4.01.01 (2019-mar-14)
2544 ---------------------
2545 The PDFDoc(BaseStream) initializer wasn't working correctly.
2546 Fixed a missing array bounds check in PSOutputDev. [Thanks to
2547 Loginsoft for the bug report.]
2548 If the "U" string used for RC4 decryption is short, Adobe apparently
2549 zero-pads it, so Xpdf now does the same.
2550 Pdffonts now checks more carefully for loops between objects.
2551 Fixed a problem parsing large real numbers. [Thanks to Loginsoft for
2552 the bug report.]
2553
2554 4.02 (2019-sep-25)
2555 ------------------
2556 Pdftohtml now extracts embedded fonts (TrueType and CFF only).
2557 Added the margin settings (-marginl -marginr -margint -marginb) to
2558 pdftotext.
2559 Various user interface tweaks:
2560 - added a toolbar button to toggle (show/hide) the sidebar
2561 - added view menu items to toggle (show/hide) the sidebar and
2562 toolbar
2563 - added the 'showToolbar', 'hideToolbar', 'toggleToolbar',
2564 'expandSidebar', and 'shrinkSidebar' commands
2565 - added the 'initialDisplayMode', 'initialToolbarState', and
2566 'initialSelectMode' xpdfrc settings
2567 - rearranged the xpdf toolbar
2568 Implemented drag-and-drop, so that PDF files can be drag-and-dropped
2569 onto an already-open xpdf window.
2570 Added the option to display page labels, rather than page numbers.
2571 Implemented the missing 'openInNewWin' command.
2572 Added the 'openFileIn', 'openFileAtDestIn', 'openFileAtPageIn', and
2573 'openIn' commands; removed the 'openInNewWin' command.
2574 Added the '-open' switch to xpdf.
2575 Added the reverseVideoInvertImages setting.
2576 Page-up and page-down now "snap" to the nearest page, if it's within a
2577 few pixels. This avoids annoying behavior when the window is a tiny
2578 bit too short or too tall for a page.
2579 Properly handle overprint in non-isolated transparency groups.
2580 Missing null check in Gfx::opSetExtGState(). [Thanks to
2581 pwd@360TeamSeri0us for the bug report.]
2582 The DCT decoder doesn't handle a sampling factor of 3 -- check for
2583 this and report an error. [Thanks for Agostino Sarubbo of Gentoo
2584 for the bug report.]
2585 Check for images with a Pattern color space, and report an error.
2586 [Thanks to TeamSeri0us for the bug report.]
2587 Check that the Width, Height, and BitsPerComponent are valid in image
2588 soft masks. [Thanks to TeamSeri0us for the bug report.]
2589 Check for zero page width/height in PSOutputDev. [Thanks to
2590 TeamSeri0us for the bug report.]
2591 Check for divide-by-zero in PostScript functions. [Thanks to
2592 TeamSeri0us for the bug report.]
2593 Properly handle overprint in shading pattern strokes.
2594 The "save image" feature in Xpdf wasn't getting the user-specified
2595 page number correctly.
2596 PostScript doesn't support progressive or non-interleaved DCT (JPEG)
2597 streams, so check for those and re-encode them in PS output.
2598 Splash now caches the most recent scaled image, in case it is
2599 immediately reused -- this results in a significant speedup in
2600 certain cases.
2601 Fixed a problem with parsing the TrueType loca table. [Thanks to
2602 Pangu Lab for the bug report.]
2603 Fixed a problem with int overflow on image bounds. [Thanks to
2604 Pangu Lab for the bug report.]
2605 Fixed a problem with TrueType font parsing where there is gibberish in
2606 the TrueType table directory. [Thanks to Pangu Lab for the bug
2607 report.]
2608 Fixed a problem with JPX image resolution reduction. [Thanks to Pangu
2609 Lab for the bug report.]
2610 Fixed a problem with non-isolated transparency groups in 1-bit
2611 monochrome mode. [Thanks to Pangu Lab for the bug report.]
2612 Fixed various bugs in FoFi. [Thanks to Pangu Lab for the bug
2613 reports.]
2614 Added a missing bounds check to Annot::setFillColor(). [Thanks to
2615 Pangu Lab for the bug report.]
2616 Added a check on the DCT quant table selector. [Thanks to Pangu Lab
2617 for the bug report.]
2618 Fixed a problem with the Type 3 font cache running out of entries.
2619 [Thanks to Pangu Lab for the bug report.]
2620 Fixed an integer overflow bug in SampledFunction. [Thanks to Pangu
2621 Lab for the bug report.]
2622 Fixed an integer overflow bug in the tiling pattern size. [Thanks to
2623 Martin Muskens at Ergosoft for the bug report.]
2624 Fixed a read-past-end-of-buffer in the Type 1 font parser. [Thanks to
2625 Pangu Lab for the bug report.]
2626 Fixed an int overflow bug in the JBIG2 decoder. [Thanks to
2627 TeamSeri0us for the bug report.]
2628 Added a missing bounds check to GfxPatchMeshShading::parse(). [Thanks
2629 to TeamSeri0us for the bug report.]
2630 JPEG 2000 tile indexes were being computed incorrectly. [Thanks to
2631 TeamSeri0us for the bug report.]
2632 Large sample separation values in a JPX stream were resulting in
2633 zero-width/height tiles, which caused problems. [Thanks to Pangu
2634 Lab for the bug report.]
2635 The XFA parser now looks for "ancestor matches" when searching for
2636 data to fill a form field.
2637 Fixed an uninitialized variable in BuiltinFontWidths::getWidth().
2638 [Thanks to Martin Muskens at Ergosoft for the bug report.]
2639 If there are no popupMenuCmd instances, construct a popup menu with
2640 basic instructions pointing to 'popupMenuCmd'.
2641 Ignore color operators in uncolored tiling patterns. [Thanks to
2642 Martin Muskens at Ergosoft for the bug report.]
2643 Pdftotext raw mode output looks for space characters.
2644 Increased the width of the font name column in the pdffonts output.
2645 Function objects weren't checking their input/output counts properly.
2646 [Thanks to Pangu Lab for the bug report.]
2647 TextPage::findGaps() wasn't checking the x/y min/max values for int
2648 overflow. [Thanks to Taolaw for the bug report.]
2649
2650 4.03 (2021-jan-28)
2651 ------------------
2652 Implemented selection extension via shift-click, and word/line
2653 selection via double/triple click.
2654 Added default bindings for ctrl-mousewheel-up/down to zoom in/out.
2655 Added the "-nofonts" option to pdftohtml.
2656 Added the "simple2" mode to pdftotext.
2657 Added the "-rot" flag to xpdf, pdftoppm, and pdftopng.
2658 Added the "-listencodings" flag to pdftotext.
2659 Added the 'copyLinkTarget' command.
2660 Added the 'selectionColor' xpdfrc setting.
2661 Added the 'initialSidebarWidth' xpdfrc setting.
2662 Added support for @"..." strings in xpdfrc files. This includes using
2663 '%' as an escape character, and also the '${DATADIR}' variable.
2664 Added a help menu item that shows all of the key bindings.
2665 Reorganized the gradient shading rasterization code to avoid
2666 transparency artifacts between triangles/patches.
2667 Use interpolation rather than subdivision to rasterize Gouraud
2668 triangle shadings.
2669 Allow escaping (via the \x01 character) in command args, so that "xpdf
2670 -open foo(123).pdf" works correctly.
2671 Extended the damaged file repair code to handle PDF files that use
2672 xref streams and object streams.
2673 Modified pdfinfo to print the encryption algorithm used (if any).
2674 Handle Windows shortcut (.lnk) files in Xpdf and in the command line
2675 tools.
2676 Display an error dialog when trying to copy text from a protected
2677 file.
2678 Updated all four of the CJK language support packages with the latest
2679 Adobe data.
2680 Modified pdftohtml to draw 'invisible' text over non-horizontal words.
2681 Catalog.pageLabels wasn't being properly initialized to NULL. [Thanks
2682 to Dhiraj for the bug report.]
2683 Added a sanity check for JBIG2 symbol width. [Reported by Marc
2684 Schoenefeld.]
2685 Fixed a bug in the fontconfig calls that was causing Xpdf to crash.
2686 The Type 3 font cache code wasn't correctly handling the case where a
2687 Type 3 char refers to another char in the same T3 font. [Thanks to
2688 Pangu Lab for the bug report.]
2689 Xpdf was crashing if 'view page labels' was enabled without any
2690 document open. [Thanks to TeamSeri0us for the bug report.]
2691 The Type 1C-to-Type 1 font converter wasn't checking for
2692 divide-by-zero with rational numbers. [Thanks to TeamSeri0us for
2693 the bug report.]
2694 Fixed a bug in the TrueType font parser - zero-length loca tables
2695 weren't handled correctly. [Thanks to TeamSeri0us for the bug
2696 report.]
2697 Fixed an integer overflow bug in the transparency group setup code.
2698 [Thanks to TeamSeri0us for the bug report.]
2699 Pdfinfo with the "-box" option was crashing on zero-page PDF files.
2700 [Thanks to TeamSeri0us for the bug report.]
2701 The code that caches scaled images wasn't checking the rendering
2702 intent. [Thanks to Martin Muskens at Ergosoft for the bug report.]
2703 The JBIG2 decoder now checks for gibberish values in various segment
2704 headers, but keeps any data decoded prior to that.
2705 Fixed two bugs in the FoFi code that handles CFF fonts. [Thanks to
2706 dsmic for the bug report.]
2707 Redesigned the image scaling code, for performance.
2708 Cleaned up the code that sanity-checks font sizes to avoid trying to
2709 allocate too much memory for the font cache.
2710 Implemented precincts in the JPEG 2000 decoder.
2711 The page-up/down snapping code was calling TileMap::getPageTopY() with
2712 invalid page numbers. [Thanks to dfandrich for the bug report.]
2713 Added missing error-checking when parsing an annotation appearance
2714 stream's bbox.
2715 Handled UTF-16 sequences in ToUnicode maps.
2716 Rewrote the code that draws static XFA forms: combined it with the
2717 AcroForm code, to match Adobe's behavior. Removed the enableXFA
2718 xpdfrc setting.
2719 Check for indirect references in content streams and report an error.
2720 Doing overprint preview in tiling patterns requires tracking the
2721 overprint mask at each pixel.
2722 Check for "decompression bombs" in Flate and LZW streams.
2723 The nextPageNoScroll and prevPageNoScroll commands weren't working
2724 correctly in continuous mode.
2725 Disable stroke adjustment when drawing Type 3 characters.
2726 The "xpdf -open" flag now constructs an absolute path, so it's not
2727 dependent on the current directory when xpdf was started.
2728 Check for infinite loops in Type 1C charstring subroutines. [Thanks
2729 to blbi for the bug report.]
2730 Fixed an incomplete test for headless CFF files. [Thanks to Chengbin
2731 for the bug report.]
2732 Tweaked the code that computes segment slope in SplashXPath.cc to
2733 avoid problems with extremely small coordinate values. [Thanks to
2734 Chengbin for the bug report.]
2735 Check for an invalid segment length in PSOutputDev's PFB parse.
2736 [Thanks to Chengbin for the bug report.]
2737 Check for JPEG 2000 segments that are only allowed in the first
2738 tile-part of a tile. [Thanks to Chengbin for the bug report.]
2739 Check for invalid AcroForm ListBox field top index. [Thanks to
2740 Chengbin for the bug report.]
2741 Check for invalid mesh shading parameters. [Thanks to Chengbin for
2742 the bug report.]
2743
2744 4.04 (2022-apr-18)
2745 ------------------
2746 When closing a file, save the current page number in ~/.xpdf.pages,
2747 and restore it next time the file is opened. This can be disabled
2748 with "savePageNumbers no" in your xpdfrc file.
2749 Allow the tab list to be reordered, using drag-and-drop.
2750 Added a document information dialog, with metadata and fonts, to xpdf.
2751 Pdftohtml now generates HTML links for URI links anchored on text.
2752 Added the useTrueTypeUnicodeMapping xpdfrc setting.
2753 Added the 'enableXFA' xpdfrc setting back: if set to 'no', xpdf will
2754 not read an XFA form, meaning all form info comes from the AcroForm.
2755 Add support for long paths on Windows 10.
2756 Added the "-formfields" option to pdftohtml.
2757 Added the "-embedbackground" and "-embedfonts" options to pdftohtml.
2758 Added the "-vstretch" option to pdftohtml.
2759 Added the "-verbose" flag to pdfimages, pdftohtml, pdftopng, pdftoppm,
2760 pdftops, and pdftotext.
2761 Added the showAttachmentsPane, showLayersPane, and showOutlinePane
2762 commands.
2763 Added the 'openFile2' command to xpdf.
2764 Added the showMenuBar, hideMenuBar, and toggleMenuBar commands to
2765 xpdf.
2766 Rearrange file names in the tab list to "foo.pdf [/full/path/]", to
2767 improve the usability of the (narrow) tab list.
2768 Added the 'imageMaskAntialias' xpdfrc setting.
2769 Added the '-table' switch to pdftohtml.
2770 Fixed a couple of progression order bugs in the JPEG 2000 decoder.
2771 [Thanks to shellway for the bug reports.]
2772 Fixed a problem with subsampled pixel index computations in the JPEG
2773 2000 decoder. [Thanks to shellway for the bug report.]
2774 Fixed a couple of memory leaks triggered by fuzzed PDF files. [Thanks
2775 to shellway for the bug report.]
2776 Changed pdftohtml to generate spans with 'class=' instead of 'id=', so
2777 there aren't duplicate ids. Also removed the unused id in the
2778 background img element.
2779 Optimized SplashOutputDev::drawTilingPattern for the case where the
2780 tile is much larger than the area being drawn (i.e., the clipping
2781 bbox). In this case, we can render just the needed portion of the
2782 tile.
2783 Added a missing zero check for precinct size in the JPEG 2000 decoder.
2784 [Thanks to shellway for the bug report.]
2785 Added a missing null check in the XFA form scanner. [Thanks to Taolaw
2786 for the bug report.]
2787 Deal with xref streams that include a free entry with gen=0xffffffff.
2788 Fixed a problematic corner case in looking up XObject resources.
2789 [Thanks to shellway for the bug report.]
2790 The unicodeRemapping config command wasn't correctly handling unsorted
2791 remapping files.
2792 Improved handling of RTL text in the text extractor.
2793 Extended the saveTabState/loadTabState commands to save/restore
2794 display mode, zoom, rotation, and scroll position for each tab.
2795 Added support for Qt6.
2796 Added a missing bounds check on stream DecodeParms arrays. [Thanks to
2797 minipython for the bug report.]
2798 Fixed an integer overflow check in XRef::readXRefTable. [Thanks to
2799 yangshufan for the bug report.]
2800 The builtin Latin1 encoding was mapping 'endash' instead of
2801 'softhyphen' to 0xad. [Thanks to Jach Fong for the bug report.]
2802 Fixed a bug in PSOutputDev::checkPageSlice() when built without
2803 SPLASH_CMYK. [Thanks to irfanariq for the bug report.]
2804 Added missing array length and type checks in Gfx::doForm(). [Thanks
2805 to shaohua for the bug report.]
2806 Fixed an integer overflow security hole in the JBIG2 decoder.
2807 Substitute Helvetica for undefined fonts and bad font objects.
2808 Added an integer overflow check in JPXStream. (JPXStream issue)
2809 [Thanks to Shin Ando @ Ricera Security for the bug report.]
2810 The DCT (JPEG) decoder was allowing the 'interleaved' flag to be
2811 changed after the first scan of the image. (CVE-2022-24106) [Thanks
2812 to Shin Ando @ Ricera Security for the bug report.]