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'
17 Many minor bug fixes and optimizations.
22 Implemented DCT filter.
23 Implemented PostScript output; wrote pdftops program.
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
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
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
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.
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.
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
93 Space/PageDown/Next and Backspace/PageUp/Previous now moves to
94 next/previous page if already scrolled to bottom/top of current
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
109 Handle Resources key in Pages dictionaries (needed for pstoedit
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.
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
135 Incremental display: display is updated after every 200 commands.
136 Added forward and backward by-10-page buttons.
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.
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.
151 Convert ObjType to an enum.
152 Changed isDict("Pages") to isDict() (in Catalog.cc) to deal with
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 ('~>')
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
176 Add 'return 0;' to main() in xpdf and pdftops.
177 Allow fonts to use StandardEncoding.
178 Convert man pages to VMS help files.
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
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
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
205 Implemented selection in LTK; TextIn widgets support dragging/copy/
207 Handle font subsets that use hex character codes.
208 Added icon pixmap; added the XPMLIB and NO_XPM variables to
210 Fixed subtle bug in use of horizontal scaling parameter (it affects
211 only the width of drawn characters, not positioning done in text
213 Memory testing (with DEBUG_MEM):
214 - gmalloc now fills memory blocks with garbage to catch unitialized
216 - gfree fills memory blocks with garbage to catch uses of freed
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
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
239 Added 'include Makefile.config' to top-level Makefile.
240 Added INSTALL variable to Makefile.config; used in top-level
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.
248 Pages with no contents shouldn't cause an error message.
249 In PostScript output: pdfImM needs to set fill color before doing
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
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
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
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
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,
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
283 Added "-level1" option (in xpdf and pdftops) to generate Level 1
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
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
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
305 Fixed bug in position calculation for multi-char substitutions in
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
340 Certain PDF generators apparently don't include FontDescriptors for
341 Arial, TimesNewRoman, and CourierNew -- set GfxFont flags
343 Fixed a bug in width guessing in GfxFont -- sans serif and serif were
345 Rewrote XRef::readXRef() to avoid using a parser to read the xref
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).
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.
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
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
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,
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
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
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
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.
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
467 Rewrote code that handles font encodings; added support for Type 1C
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
474 TextPage used character's dx (width + char space) instead of just its
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
491 Deal with DeviceN colorspaces by using their alternate colorspace
493 Change PostScript output so setpagedevice is only called once, at the
494 very beginning of the document (to avoid problems on duplex
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
506 Added LDFLAGS to Makefiles.
507 Removed strip entirely from configure and Makefiles.
508 Fixed a bug in choosing the correct DCTStream color transform.
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
526 Added "reload" menu item.
527 Do a better job with anti-aliased Type 1 fonts on non-white
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
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
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
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
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
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
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
609 TextOutputDev filters out control characters.
610 Changed enough occurrences of 'char *' to 'const char *' to keep gcc
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
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().
628 Implemented separable CMYK PostScript output (the -level1sep switch to
630 Implemented Pattern color spaces with tiling patterns (polygon fills
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
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
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
680 Added CNS (Big5) Chinese font support (CHINESE_CNS_SUPPORT); renamed
681 CHINESE_SUPPORT to CHINESE_GB_SUPPORT.
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
693 The xref reconstruction (for damaged files) now also looks for
694 'endstream' tags, and the parser uses this information when setting
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.
701 Fixed %%BeginResource comment (for xpdf procset) in PostScript
703 Added "-title" switch and "xpdf.title" resource to set the window
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.
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
714 Fixed the image transformation code in XOutputDev -- no more missing
716 Implemented color key image masking in XOutputDev.
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
724 Added preliminary support for FreeType 2 (disabled by default).
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
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
751 Add the 0/+/-/z/w key bindings to control the zoom setting.
752 Fixed ImageOutputDev (pdfimages) to correctly handle inline image
754 Extract ascent/descent info from font descriptor.
758 Embed TrueType fonts in PostScript output. (Added a "-noembtt" flag
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
772 Handle the /Identity function.
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
781 Modified PSOutputDev to output CMYK for fill/stroke colors.
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
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
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
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.
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
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
846 Fix openTempFile() for Win32.
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.
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.
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
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
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,
886 Implemented stitching (type 3) functions.
887 Handle the case of moveto/closepath/clip, which defines an empty
889 Move dependences into separate Makefile.dep files; get rid of the
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
899 Added libpaper support (for Debian).
900 Generate PostScript DSC resource comments for PS (not just EPS)
902 The save and restore (q/Q) operators shouldn't save/restore the path.
903 Performance optimization: disable pattern drawing in TextOutputDev.
907 Added an optimized special case for one-bit images in XOutputDev.
908 Implemented CID TrueType font embedding; added a psEmbedCIDTrueType
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
924 Accept either a page number or a page reference in a link
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
930 Avoid using snprintf - it's not available everywhere.
931 Improved the CMYK->RGB transform.
932 Use mkstemps where available.
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
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
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
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
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
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
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
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
1013 Avoid a crash when printing an error message regarding an unnamed
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.
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
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
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
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
1050 Added key bindings for ctrl-Home and ctrl-End.
1051 Allow the initialZoom setting to be made in either the xpdfrc file or
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
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
1075 Cygwin's popen wants mode "r", not "rb".
1076 Fixed a bug in the Type 4 function parser (the "if" operator wasn't
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
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
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
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.
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,
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
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
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
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
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
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
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
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
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
1205 Improved detection in pdfinfo for ISO paper sizes. [Thanks to Hartmut
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
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.
1234 Rewrote the text extractor to:
1235 - do a better job with rotated text;
1236 - handle right-to-left scripts;
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
1250 Changed sqrt(2) to sqrt(2.0) in pdfinfo.cc to make various compilers
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
1262 Limit the number of nested Forms to avoid infinite recursion (in buggy
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
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
1278 The Type 1C -> Type 1 font converter was allocating the font dictionary
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
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
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
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)
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
1306 Handle the case in PSOutputDev where two font objects refer to the
1307 same embedded TrueType font, but with different encodings. [Thanks
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
1319 PSOutputDev was generating incorrect translations for landscape-mode
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
1326 Do proper Floyd-Steinberg dithering in XOutputDev.
1327 Don't automatically check for a null owner password (to match Adobe's
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
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
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
1351 Fixed a bug in the Unicode CMap parser.
1355 New PDF rasterizer ("Splash").
1356 Added support for PDF 1.5:
1357 - JPX (JPEG 2000) decoder
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
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
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
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
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
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
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
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.
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
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
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
1448 Add class declarations to TextOutputDev.h to work with stricter C++
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
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
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
1482 Treat unknown CMap names as identity mappings (to match Adobe's
1484 Fixed bugs in the XRef parser related to XRef streams in updated
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
1494 Missing '%s' in format strings for dates in pdftotext '-htmlmeta'
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
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
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
1534 The JPEG 2000 inverse reversible multiple component transform code was
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
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
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
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'
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
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
1599 Added the '-pagecrop' switch to pdftops.
1600 Tweaked the RGB->gray and CMYK->gray conversion functions to match the
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
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
1620 Extended the "unicodeToUnicode" config option to also apply to CID
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
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
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
1642 Added user-configurable key/mouse bindings - the bind/unbind xpdfrc
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
1650 Fixed some things to support DeviceN color spaces with up to 32
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
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
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
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
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
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
1700 Changed Splash/SplashBitmap to store alpha in a separate plane.
1701 Setting the color space now selects the correct default color for that
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
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
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
1737 Added the "-preload" option to pdftops and the psPreload xpdfrc
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
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
1756 Extend FoFiType1 to handle Type 1 fonts with octal character codes in
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.