source: main/trunk/binaries/mac/intel/xpdf-tools/CHANGES@ 32219

Last change on this file since 32219 was 32219, checked in by ak19, 3 years ago

Committing xpdf-tools binaries for mac (v. 4.00 as for Win and Linux xpdf-tools binaries committed before) as they work with the test files. Aiming to build our own xpdf-tools from src for unix sometime hereafter, but in the meantime, there are these binaries.

File size: 118.4 KB
10.2 (95-dec-12)
3First public release.
60.3 (96-jan-13)
8LZW patent workaround.
9Implemented inline images.
10Fixed (mostly) disjoint polygon fills.
11Added remote server stuff.
12Added page number on command line.
13Fixed problem with font encodings which caused character misalignment.
14Fixed inverted CCITT decoding and inverted image mask drawing.
15Now compiles under gcc 2.7.x (ignore those stupid 'unused parameter'
16 warnings).
17Many minor bug fixes and optimizations.
200.4 (96-apr-24)
22Implemented DCT filter.
23Implemented PostScript output; wrote pdftops program.
24Implemented links.
25Implemented font rotation -- I was wrong: X11R6 servers *do* support
26 font rotation (by specifying a matrix in place of a size).
27Added bindings for Home/End, Page Up/Down, arrow keys.
28Added initialZoom resource and -z option.
29Added geometry resource and -g option.
30Fixed image size off-by-one bug.
31Fixed bug where page content is reference to an array of streams.
32Cleaned up uninitialized variables which were causing random problems
33 on various platforms.
34Manually skip whitespace before calling atoi() for startxref.
35Replaced calls to XrmCombineFileDatabase() with calls to
36 XrmGetFileDatabase() and XrmMergeDatabases() so it will work under
37 older versions of X.
38Fixed problem with reading multiple xref tables in updated PDF files.
39Check for encryption and print appropriate error message.
40Rudimentary dithering of images.
41Fixed bug in CCITTFax filter (pass mode followed by horizontal mode).
42Optimized drawImage() and drawImageMask().
43Changed 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 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
52For 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
56Fixed window resizing infinite oscillation bug.
57Fixed problem with string-type (as opposed to stream-type) indexed
58 color space lookup tables (which are used in inline images).
59If 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).
61Added -rgb (color cube size) option.
62Various minor bug fixes.
650.5 (96-may-23)
67Fixed bug in LTKWindow which broke the remote server mode.
68Fixed 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.
76Set default MediaBox to 8.5" x 11" to deal with non-compliant PDF
77 files which don't specify a MediaBox.
78Added DEBUG_MEM stuff in gmem.c and
79Fixed memory leaks:
80 - LTKWindow didn't delete the LTKBox.
81 - LinkAction needs a virtual destructor.
82Use $(RANLIB) variable in goo/Makefile and ltk/Makefile.
83Allocate image data after calling XCreateImage, using
84 image->bytes_per_line -- works in 24-bit mode now.
85DCTStream rounds width of rowBuf lines up to the next multiple of
86 mcuWidth, so last MCU doesn't run off end of buffer.
87Increase size of block (from 255 to 1024 bytes) read at end of file to
88 search for 'startxref'.
89Skip past garbage at start of file, look for '%PDF'.
90Moved more compiler options out of Makefiles into Makefile.config.
91Top-level Makefile uses '$(MAKE)' instead of 'make' for making
92 subdirectories.
93Space/PageDown/Next and Backspace/PageUp/Previous now moves to
94 next/previous page if already scrolled to bottom/top of current
95 page.
980.5a (96-jul-09)
100[not a public release]
101For 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.
103Deal with font subsets by converting character names of the form
104 'Cnnnn' to the appropriate character from the standard encoding.
105Extract encoding from embedded Type 1 fonts.
106Kludge to fill one-pixel thick polygons.
107Changed X font encoding to use endash for hyphen (gets rid of too-long
108 hyphens).
109Handle Resources key in Pages dictionaries (needed for pstoedit
110 output).
111Fix comment handling in Parser (needed for pstoedit output).
112Move Bezier curve conversion from GfxState to XOutputDev; look at
113 flatness parameter in GfxState.
114Change all of the path functions in XOutputDev (stroke, fill, clip) to
115 use the same path transformation/conversion function.
116Rewrote PostScript output driver as a subclass of OutputDev; removed
117 duplicated code (ps_ functions) from Gfx.
118Fixed bug in xref code with small (< 1024 bytes) PDF files.
119Implemented BX/EX operators.
120Added PDFDoc class.
1230.6 (96-nov-12)
125Add support for PostScript output to stdout (-) and to a command
126 (|lpr); added -ps option and psFile resource.
127Decryption 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.
131Added .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.
135Incremental display: display is updated after every 200 commands.
136Added 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.
148Added file name to window title.
149Implemented RunLength filter.
150Implemented forms.
151Convert ObjType to an enum.
152Changed isDict("Pages") to isDict() (in to deal with
153 incorrect PDF files.
154Changed color selection so that very pale colors don't map to white.
155Fixed bug in CCITTFax filter (multiple make-up codes).
156In GString::clear(): need to set length to 0 before calling resize().
157Base initial window size on first displayed page, not page 1; deal
158 correctly with rotated pages.
159Added ltkGetIntResource() and LTKApp::getIntResource().
160PostScript 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.
169Initialize character widths to zero (this caused crashes on OSF/1).
170Handle image masks which go outside of pixmap.
171Makefile.config changes:
172 - Remove -o in C++ compile rule.
173 - Add $(AR) variable.
174Code which read char widths from font dictionary read all but the last
175 width.
176Add 'return 0;' to main() in xpdf and pdftops.
177Allow fonts to use StandardEncoding.
178Convert man pages to VMS help files.
1800.7 (97-may-28)
182Implemented FlateDecode filter (for PDF 1.2).
183Basic xref table reconstruction for damaged files
184New pdftotext program converts PDF to plain text.
185Implemented menus in LTK; added a menu to xpdf.
186Added open and save functions; allow xpdf to start without any PDF
187 file.
188Implemented text find.
189Implemented text select/copy.
190Change mouse cursor when it's over a link.
191Embed Type 1 fonts in PostScript output.
192Moved rotate functions to menu; added quit to menu.
193Fixed 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).
196Support 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.
200A moveto op all by itself should just be discarded, instead of
201 generating a subpath with one point (this was causing seg faults).
202Balanced parentheses in strings don't need to be escaped.
203Tj operator in PostScript prolog didn't check for zero when dividing
204 by length of string.
205Implemented selection in LTK; TextIn widgets support dragging/copy/
206 paste.
207Handle font subsets that use hex character codes.
208Added icon pixmap; added the XPMLIB and NO_XPM variables to
209 Makefile.config.
210Fixed subtle bug in use of horizontal scaling parameter (it affects
211 only the width of drawn characters, not positioning done in text
212 space).
213Memory 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.
218Handle image masks which go off the pixmap on the top and/or left.
219Fixed inline functions which had two return statements (to make the
220 HP, SCO, and other cfront-based compilers happy).
221Fixed 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).
224If page content is an array of streams, the streams are concatenated;
225 objects and commands can span multiple streams.
226If file open fails, try lower-casing and upper-casing the file name.
227Commands should end when lexer sees a '/' character.
228GString::append(char *, int) was broken.
229Changed LTKScrollingCanvas redraw to be more efficient: copy as much
230 as possible from window before copying from off-screen pixmap.
231Ignore gs (set extended graphics state) operator.
232Handle colorspaces (CalGray/RGB are treated as DeviceGray/RGB; the
233 weird colorspaces are not yet implemented).
234Named destinations (for links) can be strings as well as names; deal
235 with the names tree in the catalog.
236Clip to the page CropBox.
237Added '-q' to gzip options (to suppress warnings, in case user has -v
238 in GZIP env var).
239Added 'include Makefile.config' to top-level Makefile.
240Added INSTALL variable to Makefile.config; used in top-level
241 Makefile.
242Always initialize LinkDest left/bottom/top/right/zoom fields (bogus
243 floating point values were causing crashes on Alpha).
244Added Makefile.config options for Digital Unix (DEC compilers), HP-UX
245 (HP compilers), SCO Unix, and Evans & Sutherland ES/OS.
246Added flag to set stream mode in fopen call for VMS.
247Rewrote Link module.
248Pages with no contents shouldn't cause an error message.
249In PostScript output: pdfImM needs to set fill color before doing
250 imagemask.
251If font doesn't specify character widths, use widths from built-in
252 font, based on font flags.
253Fixed LTK scrollbar to delay before repeating and to control the
254 period between repeats.
255Removed window/widget copy() methods (they were untested and unused).
256Unknown filter types produce a single error message instead of a
257 stream of errors.
258Added a dummy target in top-level Makefile so making individual
259 executables (e.g., 'make pdftops') should now work.
260Added optional xpdf-flip.ltk with buttons on right side instead of
261 bottom of window.
2630.7a (98-feb-22)
265Moved find command from menu to toolbar button ('f' key still works).
266Support TrueColor visuals.
267Added a -cmap option and a installCmap resource to install a private
268 colormap.
269Mouse button 2 pans the window.
270Selecting a URI link now executes a configurable command (from the
271 urlCommand resource).
272Added a "link info" display which shows the URL or file for the link
273 under the mouse.
274Don'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.
277Recognize (and quietly ignore) marked content operators (BMC, BDC,
278 EMC, MP, DP).
279Recognize new color-setting operators (scn, SCN).
280Added A4_PAPER option.
281Embed external Type 1 font files (this currently only works with PFA
282 files).
283Added "-level1" option (in xpdf and pdftops) to generate Level 1
284 PostScript.
285Setup autoconf -- replaced Makefile.config. Added SELECT_TAKES_INT
286 flag, and use configure to autodetect (for HP-UX).
287Fixed appendToPath() to behave reasonably when appending ".." to root
288 directory.
289Fixed array size in FlateStream::compHuffmanCodes() (was causing xpdf
290 to crash under OSF/1).
291ASCII85Stream, ASCIIHexStream, and DCTStream didn't check for EOF and
292 could run past the end of the stream in damaged files.
293Handle hex escapes (#xx) in names. Still allow the name /# for
294 backward-compatibility.
295Check for NULL characters in encoding array in (was calling
296 strcmp() with NULL which crashed under Solaris).
297PageAttrs::PageAttrs() didn't initialize crop box boundaries.
298Changed uses of lookup() to lookupNF() in
299Fixed type checking of operators which take a variable number of
300 args.
301Gfx::buildImageStream() doesn't need to check for parser (since I got
302 rid of the bogus array-of-command thing).
303XOutputFont matches on font reference instead of font tag (similar to
304 PSOutputDev fix).
305Fixed bug in position calculation for multi-char substitutions in
306 XOutputDev.
307Cleaned up local variables which hid class variables.
308Optimized variable length decoding in CCITTFaxStream.
309Set link border width to zero if Border dictionary entry is missing.
310Throw away zero-length strings in TextOutputDev -- they don't have
311 valid xMin/xMax values.
312Swapped order of XLIBS and XPMLIB in xpdf/Makefile.
313Deleted 'LTKApp::' in function declaration in LTKApp.h.
314Changed '(XKeyEvent *)&event' to '&event.xkey' in
315Check that the link rectangle coordinates are in the correct order,
316 and swap if necessary.
317TextOutputDev didn't set text to NULL, which caused pdftotext to
318 segfault if it couldn't open it's output file.
319Fixed a hash table search bug in GfxFontEncoding::getCharCode().
320Cleaned up colorspace code: rewrote GfxColorSpace and added
321 GfxImageColorMap; cleaned up PSOutputDev::doImage.
322Handle named colorspaces in images.
323Correctly set the default color after a colorspace change.
324Old setcolor operators now set the colorspace.
325Fixed bug with uncompressed blocks in FlateStream.
326Fixed bug with fixed Huffman code table in FlateStream.
327Added 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.)
333Create a new GC for selection -- xor black and white (instead of LTK
334 foreground and background).
335Fixed crash with blank lines in .xpdfrc.
336Allow spaces in font descriptors in fontmap lines in .xpdfrc.
337Check for bogus object number in XRef::fetch().
338Use MacRomanEncoding for TrueType fonts that don't specify an
339 encoding.
340Certain PDF generators apparently don't include FontDescriptors for
341 Arial, TimesNewRoman, and CourierNew -- set GfxFont flags
342 appropriately.
343Fixed a bug in width guessing in GfxFont -- sans serif and serif were
344 swapped.
345Rewrote XRef::readXRef() to avoid using a parser to read the xref
346 entries.
347Added NO_TEXT_SELECT option.
348Ignore APPn/COM/etc. markers in DCT streams.
349Replaced select() with XMultiplexInput() in for VMS.
350Handle 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.
353Optimized DCT decoder; switched to integer arithmetic.
354The "/Type /Annots" field in an annotation dictionary is optional.
355Check for null nameTree in Catalog::findDest().
356In XOutputDev, search user font map before default font map.
357Added "normal" SETWIDTH parameter to all font descriptors in
358 XOutputDev (some systems have a narrow-width Helvetica font).
359Added FOPEN_READ_BIN and FOPEN_WRITE_BIN to support Win32.
360Added a hack which allows better font substitution for some Type 3
361 fonts. Also allow character names of the form /nn and /nnn.
362Added <strings.h> and <bstring.h> to (needed by AIX and IRIX
363 for bzero() declaration for FD_ZERO).
3650.80 (98-nov-27)
367Support for some Japanese fonts (Type 0 fonts using the Adobe-Japan1-2
368 character collection, horizontal only).
369Added pdfinfo application.
370Added pdftopbm application.
371Added pdfimages application.
372Added -papercolor option and .paperColor resource.
373Fixed divide-by-zero problem in XOutputDev Type 3 font matrix kludge.
374Font subset char names can be 'Bxx' as well as 'Cxx' and 'Gxx'.
375Fixed bug in color space conversion in DCTStream filter (YCC->RGB was
376 correct, YCCK->CMYK was broken).
377Added XRef::getDocInfo() and PDFDoc::getDocInfo() to support pdfinfo.
378Optimized GfxImageColorMap.
379Lexer::getStream(), getPos(), and setPos() check for null stream.
380Decryption code now does strings as well as streams.
381ASCII85 decoder rounds short tuples up instead of down.
382CropBox and MediaBox can be non-integers.
383PostScript 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).
391Removed error messages for empty paths in stroke, fill, etc. operators.
392Don't allow flatnesses less than 1 in XOutputDev (this speeds up
393 rendering a little bit when there are lots of tiny curves).
394Moved the font subset character name guessing from GfxFont to
395 XOutputDev and TextOutputDev - now these files print correctly.
396Cast argument to XFree() to XPointer; add XPointer definition where
397 necessary (portability fixes).
398Various minor VMS fixes.
399Changes 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}/
408 - Added @LIBS@ to XLIBS in xpdf/
409 - In top-level 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 -- 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 '<...>').
429Tweaked the TextOutputDev heuristics slightly.
430Modify 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.
433Look for excessively large MediaBox (compared to CropBox) and shrink
434 it to CropBox.
435Minor fix to scrolling when dragging a selection.
436Various patches for pdftex and Win32 support.
437Deal with Separation colorspaces by using their alternate colorspace
438 entry.
439Added PBMOutputDev for pdftopbm application.
440Added ImageOutputDev for pdfimages application.
441Separated XOutputDev into LTKOutputDev + XOutputDev.
442Added support for 1-D and mixed 1-D/2-D (Group 3) decoding to
443 CCITTDecode filter.
444Added resetImage(), getImagePixel(), and skipImageLine() to Stream
445 class; used these in XOutputDev, PSOutputDev, and ImageOutputDev.
446Implemented predictor for LZW and Flate filters.
447In pdfImM1 in PSOutputDev prolog: div should be idiv.
448Changed output from printUsage() function in parseargs to look nicer.
4500.90 (99-aug-02)
452Added Type 1/1C font rendering, using t1lib.
453Added "backward" and "forward" buttons.
454Added fit-page and fit-page-width zoom factors; replaced zoom-in and
455 zoom-out buttons with a zoom popup menu.
456Type 1C fonts are converted to Type 1 and embedded in PostScript.
457Support vertical Japanese text.
458Added Japanese text support (EUC-JP) to pdftotext.
459Bumped PDF version to 1.3. Added stub functions for ri and sh
460 operators. (But there are still some missing 1.3 features.)
461Added -raw option to pdftotext.
462Minor changes to allow compiling under MS Visual C++ 5.0.
463Top-level makefile: changed 'mkdir -p' to '-mkdir -p'.
464Configure script: added X_CFLAGS to smr_CHECK_LIB(Xpm).
465Added Xpm_CFLAGS to xpdf/ (this is needed to get the -I for
466 the xpm includes).
467Rewrote code that handles font encodings; added support for Type 1C
468 fonts.
469In 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.
472Changed PageUp behavior slightly: move to bottom (instead of top) of
473 previous page.
474TextPage used character's dx (width + char space) instead of just its
475 width.
476Read base URI from document Catalog (for URI-type links).
477Minor change to configure script to avoid using 'unset'.
478Fixed bugs in CropBox inheritance.
479Fixed a bug in resource stack handling for form objects.
480Display forms even if they have a missing/incorrect FormType.
481Fixed 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.
484Fixed PostScript output to correctly handle stream predictors.
485Don't segfault on empty (zero-page) documents.
486Added the xpdf.viKeys feature.
487Added the ffi and ffl ligatures to XOutputDev and TextOutputDev.
488Pdftotext and pdfimages now check okToCopy().
489Added a '-q' flag to all programs (except pdfinfo) to suppress
490 messages and errors.
491Deal with DeviceN colorspaces by using their alternate colorspace
492 entry.
493Change PostScript output so setpagedevice is only called once, at the
494 very beginning of the document (to avoid problems on duplex
495 printers).
496Changes to configure script and makefiles for DOS/DJGPP.
497FontEncoding::getCharCode() looked for (code>0) instead of (code>=0).
498Added keypad arrow keys, etc. to xpdf.
499Minor changes to gfile.{h,cpp} (<windows.h>) to compile under VC++.
500Fixed CCITTFaxStream to correctly handle all parameters.
501Modifications to gfile.{h,cc} for Acorn.
502Some minor changes for OS/2.
503Added 'SHELL = /bin/sh' to Makefiles.
504Compare file version to pdfVersionNum+0.0001 to avoid floating point
505 precision problems.
506Added LDFLAGS to Makefiles.
507Removed strip entirely from configure and Makefiles.
508Fixed a bug in choosing the correct DCTStream color transform.
5100.91 (2000-aug-14)
512Added TrueType font rendering, using FreeType.
513Support for Chinese fonts (Type 0 fonts using the Adobe-GB1-2
514 character collection).
515Decryption code is included with the main distribution (now that the
516 US export regulations are a little bit less irrational).
517Added (very basic) support for generating PostScript with Japanese
518 fonts -- only tested with ghostscript so far.
519Added support for generating EPS files (pdftops -eps).
520Much-improved image filtering in xpdf (for downsampling and for
521 transforms other than 0/90/180/270-degree rotations).
522Implemented 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.)
526Added "reload" menu item.
527Do a better job with anti-aliased Type 1 fonts on non-white
528 backgrounds.
529Handle Lab color spaces.
530Handle non-null user passwords.
531Avoid security hole with tmpnam()/fopen() -- added openTempFile() in
532 goo/ [Thanks to Joseph S. Myers for pointing this out.]
533Filter 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.]
536Fixed TrueColor detection to look at the complete list of available
537 visuals, not just the default visual.
538In gfile.h, changed NAMLEN(dirent) macro to NAMLEN(d).
539Removed copyright character from start-up banners.
540In the open and save dialogs, if the open/save button is pressed with
541 no file name, the dialog is not canceled.
542Added Xpm_CFLAGS to ltk/Makefile.
543XOutputDev::updateLineAttrs was using dashLength before it was
544 defined.
545In top-level, use INSTALL_PROGRAM instead of INSTALL.
546In man page, recommend -q instead of -err in .mailcap.
547Changes 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.
552Allow newlines inside strings (Photoshop does this).
553Don't require whitespace between tokens in consecutive content
554 streams (for pages that specify an array of streams).
555Look at MissingWidth when constructing font character widths array.
556Fixed a bug that caused incorrect PostScript output for images that
557 use 8-bit indexed color spaces with < 256 colors in the palette.
558Handle case where embedded font file is bad (this was seg faulting).
559Minor changes for Windows/pdftex.
560Work around a bug in PDF files from the IBM patent server.
561Fixed bugs in PostScript form generation: use pdfStartPage instead of
562 pdfSetup; problem with inline images.
563Minor bug fix in FlateStream::loadFixedCodes().
564Added %%DocumentMedia and %%PageMedia comments to the PostScript so
565 that gsview (a Windows frontend for ghostscript) gets the right
566 paper size.
567Draw AcroForm fields that have appearance annotations.
568Bounds check gray, CMYK, and RGB values (in GfxColor).
569Moved the link border drawing code into Page (from PDFDoc).
570Minor modifications for pdftohtml.
571PSOutputDev: use the Type 3 font scaling kludge from XOutputDev.
572Separation color spaces were handled incorrectly in images.
573Fixed a bug with form bounding boxes.
574Modified 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.
577Don't print copyright banner (xpdf); add -v switch to get copyright
578 and version info (all apps); get rid of -err switch (xpdf).
579Automatically reload the PDF file if it has been changed, i.e., if the
580 modification time is different.
581Fixed a memory (malloc size) bug in CCITTFaxStream.
582Fixed 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).
585Added PDFDoc::isLinearized() and corresponding code in
586Handle files with an incorrect page count in the Pages dictionary
587 (FOP, from the Apache project produces a page count of 0).
588Handle TrueType equivalents to the Base14 fonts (Arial, TimesNewRoman,
589 CourierNew) -- Adobe's tools use these names without embedding the
590 fonts.
591Tweaked the Type 3 font sizing kludge.
592Changed pdfimages (ImageOutputDev) so it doesn't output JPEG files for
593 4-component color spaces, since these seem to confuse most image
594 viewers.
595Added support for generating OPI comments (pdftops -opi).
596In XOutputDev::drawImage() and drawImageMask(), check for images that
597 are completely off-page.
598Use the provided alternate or a default (DeviceGray/RGB/CMYK) color
599 space for ICCBased color spaces.
600Incorporated MacOS-specific code from Leonard Rosenthol.
601Configure script switches to C++ for the strings.h/bstring.h test.
602Gfx::opRestore() calls clearPath() to handle (apparently) buggy PDF
603 files produced by FreeHand.
604The /Type field in most dictionaries is optional (PDF 1.3 change).
605Move printCommands variable definition into
606If page is smaller than paper, center the PostScript output.
607Fix a minor bug in the SELECT_TAKES_INT detection in the configure
608 script.
609TextOutputDev filters out control characters.
610Changed enough occurrences of 'char *' to 'const char *' to keep gcc
611 2.95 from barfing.
612Support 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).
615TextOutputDev converts "eightoldstyle" to "eight", etc.
616Don't use the return value from sprintf() -- most systems return the
617 length, but some return the string.
618Minor fixes for SunOS 4.
619Configure script looks for both select() and fd_set in sys/select.h.
620Configure script checks for gethostbyname() in -lbsd (for LynxOS).
621Fix missing closepath bug in PostScript output.
622Change PostScript portrait/landscape mode selection so it only uses
623 landscape if the page width is greater than the paper width.
624Tweaked the VMS code in makePathAbsolute().
6260.91a (2000-oct-11)
628Implemented separable CMYK PostScript output (the -level1sep switch to
629 pdftops).
630Implemented Pattern color spaces with tiling patterns (polygon fills
631 only).
632Implemented Stamp annotations.
633Implemented Named link actions.
634Fixed a really dumb bug in the TrueColor code in SFont (which affects
635 both Type 1 and TrueType font rendering on 16-bit displays).
636Rewrote the GfxColorSpace / GfxColor code.
637Switched from djgppcfg to dj_make.bat (from Michael Richmond).
638Bug 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).
640Fixed the mkstemp() test in -- switched from
641 AC_TRY_COMPILE to AC_TRY_LINK and added <unistd.h>.
642Added DESTDIR to top-level
643Fixed an incorrect OPI comment in PSOutputDev.
644Minor tweak to the CCITTFax code to avoid writing past the end of an
645 array on an invalid data stream.
646Xpdf crashed if the user selected 'reload' when no document was
647 loaded.
648Look 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).
651FlateStream didn't correctly handle zero-length streams.
652Xref reconstruction didn't handle the case where the opening "<<"
653 immediately followed "trailer" with no intervening whitespace.
654Fix the %%DocumentSuppliedResources comment in EPS output.
655Scale annotations to fit their rectangles.
656Added Stream::close() to handle cases (e.g., patterns) where a Stream
657 object is used multiple times before it is deleted.
658Added the topLevel arg to Gfx::go() so it doesn't call out->dump() for
659 every pattern element (and form).
660Rearranged the GfxResources class.
661Clean up white space handling in Lexer.
662Make the dpi parameter to PDFDoc::displayPage etc. a double - this
663 avoids margin gaps with fit-page and fit-width.
664Fix a rounding problem in that was causing the window to
665 sometimes be one pixel too small.
666Fixed a minor bug in dealing with Base-14 TrueType font names.
667Fixed Lab -> RGB color space conversion.
668Added support for opacity values (from PDF 1.4) to GfxState and
669 OutputDev. [Thanks to Leonard Rosenthol.]
670Implemented type 2 functions; rearranged the Function class
671 hierarchy.
6730.91b (2000-oct-29)
675Print a warning about Type 3 fonts (XOutputDev, PSOutputDev).
676Added the scroll lock behavior to 'n' and 'p' keys in xpdf.
677Change FileStream buffer size to a #define'd constant.
678Renamed Pattern to GfxPattern to avoid clashes with Windows and MacOS
679 types.
680Added CNS (Big5) Chinese font support (CHINESE_CNS_SUPPORT); renamed
6830.91c (2000-nov-19)
685Fix an endianness problem in the Type 1 font code which resulted in an
686 incorrect display with "-t1lib plain" on big-endian systems.
687CCITTFax stream decoder will skip over extra zero bits at end of line,
688 even if EncodedByteAlign flag wasn't set.
689Added Big5 support to pdftotext (with CHINESE_CNS_SUPPORT enabled).
690Fixed a typo in the CNS/Big5 encoding translation table.
691Change the form code in PSOutputDev to store images in arrays of
692 strings.
693The xref reconstruction (for damaged files) now also looks for
694 'endstream' tags, and the parser uses this information when setting
695 up stream objects.
696In pdfinfo, convert Unicode chars in the 00xx range into 8-bit chars;
697 print a warning if there are any other Unicode chars.
6990.92 (2000-dec-03)
701Fixed %%BeginResource comment (for xpdf procset) in PostScript
702 output.
703Added "-title" switch and "xpdf.title" resource to set the window
704 title.
705Check for <freetype.h> in addition to <freetype/freetype.h>.
706Upgraded the configure script to smr_macros 0.2.4 - this should fix a
707 bug where configure wasn't correctly finding t1lib.
7090.92a (2000-dec-17)
711Added 'extern "C" { ... }' in various places for ANSI C++ compliance.
712Tweaked the code that figures out DPI for fit-to-page and fit-to-width
713 modes.
714Fixed the image transformation code in XOutputDev -- no more missing
715 lines.
716Implemented color key image masking in XOutputDev.
7180.92b (2001-jan-07)
720Fixed a bug in the error-checking code in the Separation/DeviceN color
721 space parsing functions. [Thanks to Lidia Mirkin.]
722Added wheel mouse support (mouse buttons 4 and 5). [Thanks to
723 Thorsten Schreiner.]
724Added preliminary support for FreeType 2 (disabled by default).
7260.92c (2001-jun-04)
728Fixed a bug in the new image transformation code.
729Look for character names of the form "<letter><digit><digit>", instead
730 of looking for names beginning with a few specific letters.
731T1FontFile::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.
734Catalog::Catalog didn't set baseURI to NULL early enough.
735Tweak the check for strings.h in the configure script.
736Yet another fix for the image rotation code in XOutputDev --
737 off-by-one problem when upsampling.
738Handle Type 1/1C encodings when using FreeType 2.
739Allow FreeType2 to render user-supplied Type 1 base fonts.
740Opening a new file from full-screen mode tried to scroll.
741Fixed a bug in GfxFont constructor (missing check for NULL base font
742 name).
743Don't crash if a Type 1 font's FontBBox is non-integer.
744Pdfinfo prints page size.
745Tweak for the alpha hack in T1Font/TTFont: sample the middle pixel
746 instead of the top-left pixel.
747Automatically activate the text input widget in the find window.
748Changed a Japanese char code mapping in XOutputDev and TextOutputDev:
749 period was being incorrectly mapped to small circle (end-of-sentence
750 character).
751Add the 0/+/-/z/w key bindings to control the zoom setting.
752Fixed ImageOutputDev (pdfimages) to correctly handle inline image
753 masks.
754Extract ascent/descent info from font descriptor.
7560.92d (2001-jun-26)
758Embed TrueType fonts in PostScript output. (Added a "-noembtt" flag
759 to pdftops.)
760Extract encoding from TrueType fonts.
761Moved Function classes to a separate file (Function.h/cc).
762Implemented multi-dimensional sampled Functions.
763Implemented Type 4 (PostScript calculator) Functions.
764For Type 0 fonts, FontDescriptor is in descendant font, not parent.
765 [Thanks to Lidia Mirkin.]
766Added the "-htmlmeta" option to pdftotext.
767In TextOutputDev, when computing the number of blank lines to insert,
768 do a sanity check on the result.
769If both FlateDecode and some other filter (e.g., DCTDecode) were
770 applied to an image stream, getPSFilter() crashed instead of just
771 returning NULL.
772Handle the /Identity function.
7740.92e (2001-aug-23)
776Widths in font dict should override built-in font widths.
777Changed "rotate left/right" menu items to "rotate
778 clockwise/counterclockwise".
779The link parsing code choked if the Border array was incorrect (too
780 short).
781Modified PSOutputDev to output CMYK for fill/stroke colors.
7830.93 (2001-oct-25)
785Implement PDF 1.4 (128-bit) decryption.
786Bump supported PDF version number to 1.4.
787Text output for Simplified Chinese. [Thanks to Cheung Siu Fai.]
788Read an app-defaults file for Xpdf.
789Read a system-wide config file (<prefix>/etc/xpdfrc) if ~/.xpdfrc
790 doesn't exist.
791Accept and verify owner password; if correct, allow all actions.
792Added 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.]
796Add support for FreeType 2 to the configure script. Warning: this
797 requires FT 2.0.5 or newer.
798Fixed the bounding rectangle overlap test in the disconnected subpath
799 fill hack in XOutputDev.
800Stupid typo in font name table in PSOutputDev.
801Changing the zoom setting with a keyboard shortcut didn't update the
802 displayed setting.
803Modified the mouse wheel support and added the second wheel (mouse
804 buttons 6 and 7). [Thanks to Michal Pasternak.]
805Character and word spacing is affected by horizontal scaling (display
806 and PS output). [Thanks to Eddy Ng.]
807Rotation specified by the text matrix, character spacing, and
808 horizontal scaling interacted incorrectly (display and PS output).
809Some broken Type 1/1C fonts have a zero BBox -- kludge around this by
810 assuming a largeish BBox.
811Handle PDF files with an incorrect (too small) xref table size.
812Allow "-?" and "--help" as aliases for "-h" (all apps).
813Correctly handle unescaped parens in strings in Lexer.
814Fixed a bug in LTK where a menu got posted multiple times if you right
815 clicked while a page was being rendered.
816Removed a comma inside a string in
817Kludge around broken PDF files that use char 32 but encode it as
818 .notdef instead of space.
819Clean 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.
822Page 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.
825Use 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.
827Modify pdfimages to write one-bit images as PBM files.
828Work around a bug in cygwin's implementation of fseek.
8300.93a (2001-nov-21)
832Implemented the sh (shaded fill) operator for the axial shading type.
833Minor fixes to avoid compiler warnings.
834Cleaned up global variables -- moved many into instance vars and
835 function args.
836Minor fixes for OS/2.
837Fix the system config file path for VMS.
838Fix an uninitialized var in XOutputDev that caused crashes on Alphas.
839Don't incrementally update the display in full-screen mode.
840For 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.
843Add the Euro character to WinAnsiEncoding.
844Track the bounding box of the clip region to make rendering patterns
845 more efficient.
846Fix openTempFile() for Win32.
8480.93b (2001-dec-11)
850Added a duplex option to PSOutputDev and a -duplex switch to pdftops.
851Added XRef::PDFgetDocInfoNF() for pdftex project.
852Updated the VMS build script.
8540.93c (2001-dec-12)
856Completely 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
860New .xpdfrc config files.
8621.00 (2002-feb-01)
864More 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
868Added key bindings for forward ('v') and backward ('b').
869Added the pdffonts program which lists the fonts used in a PDF file.
870Fixed several problems in the TrueType font embedding code (for
871 PostScript output).
872Accept named destination on command line.
873Added several new items to pdfinfo: file size, PDF version, tagged
874 (yes or no), XML metadata (with the -meta option).
875Pdftops didn't get the portrait/landscape setting correct for PDF
876 files with rotated pages.
877The TrueTypeFontFile class (including the Type 42 converter) now
878 understands cmap format 6.
879Improved the "about" window -- mention the GPL, add a list of key
880 bindings.
881Added Zcaron and zcaron characters to WinAnsiEncoding.
882The '0' keyboard shortcut didn't update the zoom popup menu.
883Handle the complete list of alternate names for the Base14 fonts.
884Fixed substitute font scaling in XOutputDev - scale only the width,
885 not the height.
886Implemented stitching (type 3) functions.
887Handle the case of moveto/closepath/clip, which defines an empty
888 clipping region.
889Move dependences into separate Makefile.dep files; get rid of the
890 distdepend target.
891Move all of the configure-script-generated -D options out of the
892 Makefiles and into a top-level .h file (aconf.h).
893Cleaned up the FreeType 1/2 detection code in the configure script.
894Pdfinfo prints dates in a more readable format.
895Fixed a bug in the Paeth image predictor.
896Handle annotations with multiple states.
897Another workaround for buggy X servers: clip points that are way out
898 of bounds.
899Added libpaper support (for Debian).
900Generate PostScript DSC resource comments for PS (not just EPS)
901 files.
902The save and restore (q/Q) operators shouldn't save/restore the path.
903Performance optimization: disable pattern drawing in TextOutputDev.
9051.00a (2002-feb-25)
907Added an optimized special case for one-bit images in XOutputDev.
908Implemented CID TrueType font embedding; added a psEmbedCIDTrueType
909 option.
910The initialZoom X resource was broken.
911The reverse MacRoman encoding should return 32 for "space" (not 202,
912 which is an alternate encoding).
913Tweaks 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.
916Added level3 and level3Sep options for the psLevel setting and
917 corresponding -level3 and -level3Sep options to pdftops.
918Added a -level2 option to pdftops for consistency.
919Avoid a divide by zero in pdftotext. [Thanks to William Bader.]
920Added a Greek language support package. [Thanks to Alexandros
921 Diamantidis and Maria Adaloglou.]
922Don't bother trying to extract a "builtin" encoding from a TrueType
923 font.
924Accept either a page number or a page reference in a link
925 destination.
926Update the fontFixedWidth flag in GfxFont after reading the char
927 widths (used by the Acorn RiscOS port).
928Removed yet another (illegal but not caught by gcc) class specified
929 from a .h file.
930Avoid using snprintf - it's not available everywhere.
931Improved the CMYK->RGB transform.
932Use mkstemps where available.
9341.01 (2002-may-20)
936Implemented Type 3 fonts.
937Implemented PostScript CID font embedding; added a
938 psEmbedCIDPostScriptFonts option.
939Implemented PostScript 16-bit font substitution; added psNamedFont16
940 and psFont16 options.
941Moved the initialZoom setting from X resources to the xpdfrc file.
942Implemented the radial shading type in the sh (shaded fill) operator.
943 [Thanks to Mike Sweet.]
944Added an 'include' command to the xpdfrc format.
945Added the displayNamedCIDFontX option so different fonts can be used
946 within one character collection.
947Added a simple reverse video mode (-rv switch, xpdf.reverseVideo
948 resource).
949Implemented stroked text in XOutputDev (with t1lib and FreeType2).
950 [Thanks to Leonard Rosenthol.]
951Implemented stroked text in PSOutputDev.
952Added a built-in Unicode map for UCS-2.
953New key binding in xpdf: 'g' activates the page number text field.
954PSOutputDev will now embed external TrueType fonts in addition to
955 external Type 1 fonts.
956The psEmbedType1Fonts and psEmbedTrueTypeFonts options were missing
957 the "Fonts" suffix.
958Documentation in xpdf.1 for -freetype option was wrong.
959Added the Big5ascii Unicode map to the Chinese-traditional support
960 package (maps 7-bit ASCII straight through). [Thanks to Lawrence
961 Lai.]
962Modified the EUC-CN and EUC-JP encodings to pass 7-bit ASCII straight
963 through. [Thanks to Lawrence Lai.]
964Avoid a divide by zero in XOutputDev. [Thanks to Simon Burge.]
965Remove old code in openTempFile that removed an extension from the
966 name returned by tmpnam.
967Tweak the scrolling behavior when switching pages. [Thanks to Case
968 Jones.]
969In the code that guesses character names (for font subsets), also
970 handle names of the form 'ABnnn'. [Thanks to Colin Granville.]
971Fix the transform code for annotations.
972Improved the CMap file parser to handle more general PostScript
973 lexical conventions.
974Added '-enc' option to pdfinfo.
975Added the small caps and oldstyle numbers from Adobe's Unicode
976 corporate use area to the Latin1 and ASCII7 Unicode maps.
977The code in TextOutputDev that guesses Type 3 font size could generate
978 a zero size, which resulted in div-by-zero errors.
979Various tools (including Adobe's) occasionally embed Type 1 fonts but
980 label them Type 1C - so check for a '%!' at the start.
981Some tools embed Type 1C fonts with an extra whitespace char at the
982 beginning - just skip over it.
983Fixed a typo in the Simplified Chinese add-to-xpdfrc file.
984Updates to dj_make.bat and the djgpp build instructions.
985Added a Turkish language support package.
986Updated VMS build scripts. [Thanks to Martin Zinser.]
987Modify 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.
990Tweak the Type 1 font bbox code to look at the bboxes in both the PDF
991 font object and the embedded font file.
992Fixed the ETenms-B5-H CMap file (for traditional Chinese) to map the
993 Latin characters to their proportional versions.
994Added an optional displayCIDFontX entry for one of the Arphic TrueType
995 fonts in the traditional Chinese 'add-to-xpdfrc' file.
996Remove leading '-' on include statements in Makefiles.
997Added psASCIIHex parameter.
998Added the GBK Unicode map to the simplified Chinese language pack.
999Pdftotext now opens the text file in binary mode to avoid Microsoft's
1000 annoying automatic end-of-line translation stuff.
1001Added an executeCommand function in goo/ [Thanks to Mikhail
1002 Kruk.]
1003The %ALDImagePosition OPI comment was wrong if the page was scaled to
1004 a different paper size.
1005The OPI code was saving the default transform matrix before calling
1006 setpagedevice, which can change the matrix.
1007Fixed a crash when an inline image dictionary contains garbage.
1008Upgraded to autoconf 2.53.
1009Use unsigned int file offsets, to allow access to PDF files in the 2-4
1010 GB size range; use fseek64/ftell64 if available.
1011Fixed two floating point exception cases that came up with broken PDF
1012 files.
1013Avoid a crash when printing an error message regarding an unnamed
1014 font.
1015Default link border width should be 1. [Thanks to Michael Pfeiffer.]
1016Minor tweak to build with FreeType 2.1.0.
1017Handle "weird" characters in PostScript font names.
1018PSOutputDev now handles PostScript XObjects.
1019Added several more page attributes for the pdftex project.
1020Transferred the copyright to Glyph & Cog, LLC.
10222.00 (2002-nov-04)
1024Switched to the Motif toolkit.
1025Support multiple open documents (in separate windows).
1026Added document outlines to the viewer.
1027Modified the text extraction (placement) algorithm.
1028Implemented the JBIG2 decoder.
1029Added a Latin2 language support package.
1030Added support for movie annotations.
1031Switched back to native LZW decompression code.
1032Text extraction from Type 3 fonts was (partly) broken.
1033The owner password checking code was missing a step in the case of
1034 128-bit encryption.
1035Added the 'printCommands' option to the xpdfrc file.
1036Added key binding for '?' to bring up the about/help dialog.
1037In TextOutputDev, ignore any text that's outside the page bounding
1038 box.
1039Text 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.
1043Text extraction discards duplicated text (fake boldface, shadow
1044 effects).
1045Added ctrl-F as a key binding for find.
1046Added a "find next" function, bound to ctrl-G.
1047Added ctrl-P as a key binding for print.
1048Modified the DCT decoder to handle progressive and non-interleaved
1049 JPEG streams.
1050Added key bindings for ctrl-Home and ctrl-End.
1051Allow the initialZoom setting to be made in either the xpdfrc file or
1052 as an X resource.
1053Added a Hebrew language support package. [Thanks to Roy Arav.]
1054The "make distclean" target now creates (empty) Makefile.dep files in
1055 the three subdirectories.
1056Initialize XRef::ownerPasswordOk.
1057Correctly handle stroking of Type 3 fonts in PSOutputDev.
1058Generate correct PostScript for fonts with "weird" character names
1059 (e.g., "(").
1060Generate correct PostScript for images using Indexed color spaces with
1061 DeviceN base color spaces.
1062Added lowercase Roman numerals to ISO-2022-CN.unicodeMap (simplified
1063 Chinese support package).
1064Tweak the image scaling code to better handle flipped (top-bottom
1065 and/or left-right) images.
1066Generate correct PostScript code for inline images and images in Type
1067 3 fonts which are too large for a single PS string.
1068Correctly handle indexed color spaces whose base color spaces have
1069 component ranges other than [0,1].
1070Optimized the DCT decoder.
1071Fixed mistakes in the list of key bindings in the about/help dialog.
1072Optimized the Flate decoder.
1073Add literal names for punctuation and digits to the Unicode name
1074 table.
1075Cygwin's popen wants mode "r", not "rb".
1076Fixed a bug in the Type 4 function parser (the "if" operator wasn't
1077 parsed correctly).
1078Fix a bug in PS output for TrueType fonts with no PDF encoding.
1079Make the bbox size in FTFont more liberal (to avoid problems with
1080 fonts that have incorrect bboxes).
1081Reverse the colors in PBM files generated by pdfimages, so the common
1082 case (an image mask filled with black) comes out correct.
1083Add fseeko/ftello support which is basically identical to
1084 fseek64/ftell64. [Thanks to Nassib Nassar.]
1085Modified column assignment in text extractor to account for characters
1086 that convert to multiple characters in the output encoding.
1087Fix TrueType fonts which have an incorrect cmap table length.
1088Work around a pragma bug in the version of gcc that ships with MacOS X
1089 10.2. [Thanks to Frank Siegert and Andrew Stone.]
1090Fix a problem that was causing an infinite loop when a damaged content
1091 stream contains an 'ID' command inside a dictionary.
1092Handle the case where systempapername() returns NULL (libpaper
1093 support).
1094Handle fonts which are defined directly in the font resource
1095 dictionary rather than as separate objects.
1096Track process colors in Level 1 separable PostScript.
1097Pdfinfo now checks the return value from mktime to avoid seg faults in
1098 flakey strftime implementations.
1099If duplex is not enabled in PostScript output, leave the duplex
1100 setting alone, allowing the spooler to insert its own setting.
1101Added three missing fclose calls.
1102Change the default encoding for TrueType fonts (used when the PDF file
1103 doesn't specify an encoding) from MacRomanEncoding to
1104 WinAnsiEncoding.
1105Move X_CFLAGS to the end of the list in CXXFLAGS (in to
1106 avoid some of the FreeType2 include path problems.
1107Fixed an obscure bug in the LZW decoder. [Thanks to Martin
1108 Schroeder.]
1109Fixed a bug in decryption when using the newer (PDF 1.4) algorithm
1110 with shorter-than-128-bit keys.
1111Minor optimization for image data streams: the ImageStream class can
1112 return an entire buffered line.
11142.01 (2002-dec-05)
1116Redesigned 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
1121Added the -reload option for xpdf (in remote mode).
1122Added support for external CID fonts; added the displayCIDFontT1 and
1123 displayNamedCIDFontT1 commands to the xpdfrc file.
1124Handle the case of moveto/newpath/clip, which defines an empty
1125 clipping region (just like moveto/closepath/clip).
1126Accept XYZ link destinations with missing array elements.
1127Fix some problems with state save/restore triggered by Type 3 fonts
1128 that reference other fonts.
1129Accept bogus font names based on "Symbol": Symbol,{Bold,Italic,
1130 BoldItalic}.
1131Fixed color and font resource names in the xpdf man page.
1132Was using delete instead of gfree in OutlineItem::~OutlineItem.
1133Set the busy cursor in the find dialog while searching.
1134Map variants of the copyright, trademark, and registered trademark
1135 symbols to the proper Unicode codes, not to Adobe's corporate use
1136 area codes.
1137Fixed a floating point exception bug in TextOutputDev (check for a
1138 too-small denominator).
1139Fixed a typo in TextOutputDev, in the code that generating blank lines
1140 to add vertical whitespace.
1141Config files whose last line didn't end with a LF (or CR+LF) weren't
1142 being handled correctly.
1143The code that handled CIDToGIDMaps in Type 2 CIDFonts was broken.
1144Check the per-glyph bounding box in Type 3 fonts, and don't try to
1145 cache glyphs with bogus bboxes.
1146Allow ToUnicode CMaps to use fewer than four hex digits in the Unicode
1147 char indexes.
1148Added multithreading protection to the GlobalParams class.
1149Fixed a bug in end-of-stream detection with the TIFF predictor.
1150Added some characters to MacRomanEncoding to match up with Apple's
1151 definition.
11532.02 (2003-mar-24)
1155Rewrote the text extractor code that assembles words into lines to
1156 better handle vertically overlapping lines.
1157Add the "match" option for paper size (in PostScript output).
1158Added support for external 16-bit TrueType fonts; added the
1159 displayCIDFontTT and displayNamedCIDFontTT commands to the xpdfrc
1160 file.
1161Added an Arabic language support package.
1162Added the Windows-1255 encoding to the Hebrew language package.
1163A 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).
1165Deal with TrueType fonts whose glyph data is out of order - this
1166 affected both FreeType rasterization and PostScript generation.
1167Munge 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).
1170Modify the TrueType font encoding deciphering algorithm in yet another
1171 attempt to match up with Acrobat's behavior.
1172Bounds check the indexHigh value in indexed color spaces.
1173The 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).
1176Don't crash if the user hits ctrl-G ("find again") before doing a
1177 find.
1178Set the button pixmap foreground color correctly.
1179Handle text drawn backward on 180 degree rotated pages.
1180Added 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).
1183Fix the MacOS X fix (needed to include <AvailabilityMacros.h>).
1184Fixed a bunch of Motif 1.x / X11R5 incompatibilities. [Thanks to
1185 William Bader and Albert Chin-A-Young.]
1186Fixed various bugs in previously untested code in the JBIG2 decoder.
1187Modify the XPDFCore destructor to avoid a bogus warning message from
1188 OpenMotif 2.2.
1189Modified the Type 1C font parser to do proper bounds checking.
1190Fixed the bounds checking in the TrueType font parser.
1191Text extractor shouldn't do block merging in physical layout mode.
1192Fixed a problem in PSOutputDev in level2sep mode with images in a
1193 Separation color space and with a non-default Decode array.
1194Text extraction with "-raw" was concatenating lines from the bottom of
1195 one column and the top of the next.
1196Handle Type 1C subroutines in the font converters.
1197Correctly 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).
1200Avoid a potential divide-by-zero problem in TextOutputDev.
1201Modified the T1Font and FTFont modules to correctly handle glyphs that
1202 are larger than the font's claimed bounding box.
1203Tweak dupMaxDeltaX parameter in TextOutputDev to avoid triggering on
1204 double characters.
1205Improved detection in pdfinfo for ISO paper sizes. [Thanks to Hartmut
1206 Henkel.]
1207Xpdf wasn't responding to the TARGETS atom, which prevented pasting
1208 the selection into various applications. [Thanks to Phillip Ezolt.]
1209Handle XObjects with recursive references in their Resources
1210 dictionaries (in PSOutputDev).
1211Change PSOutputDev to deal with invalid PDF files that use
1212 non-embedded TrueType fonts with no encoding.
1213Check for undersized Widths arrays in fonts.
1214Add bounds checking code to Array class.
1215Updated VMS build scripts. [Thanks to Martin Zinser.]
1216Tweak 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
1219Fixed bounds checking in the Flate decoder.
1220Removed a bogus error message for exponential functions without
1221 explicit C0/C1 values. [Thanks to Hartmut Henkel.]
1222Handle the other Unicode cmap type (platform=0) in TrueType fonts.
1223Added support for the SGI Motif horizontal paned window widget.
1224 [Thanks to Felix Ritter.]
1225Ignore extra elements in link destination arrays.
1226Accept external Type 1 font files with a suffix of ".ps" or no suffix
1227 at all.
1228Add a bounds check in the DCT decoder.
1229Added instructions for building xpdf.exe under cygwin/XFree86.
1230Tweaked the word separation parameter for raw-mode text extraction.
12322.03 (2003-oct-10)
1234Rewrote the text extractor to:
1235 - do a better job with rotated text;
1236 - handle right-to-left scripts;
1237 - be faster.
1238Changed the zoom setting to use a percentage (relative to 72 dpi)
1239 instead of a zoom "factor".
1240If the PDF file has an outline, open the outline pane initially.
1241Added -f and -l options to pdfinfo; print multiple page sizes.
1242The HAVE_XTAPPSETEXITFLAG test in was backwards.
1243The BitsPerComponent entry is optional in image mask objects.
1244Render any annotation with an appearance stream, instead of just
1245 Widget and Stamp annotations.
1246Fix a bug in the TrueType font checker: the test for an unsorted
1247 'loca' table was wrong.
1248Modify the TrueType cmap selection algorithm yet again to try to match
1249 Adobe's behavior.
1250Changed sqrt(2) to sqrt(2.0) in to make various compilers
1251 happy.
1252Fixed a deadlock problem (when MULTITHREADING is set); cleaned up some
1253 other problems with the locking code.
1254Fixed a bug in the interpolation code for type 0 (sampled) functions.
1255Implemented type 1 (function-based) shaded fills.
1256Fixed some stupid bugs in the JBIG2 decoder (introduced with the
1257 previous optimization work).
1258Fixed a typo in the code that parses vertical font metrics for CID
1259 fonts that was causing a seg fault.
1260Fixed a couple of bugs that were causing seg faults with badly damaged
1261 PDF files.
1262Limit the number of nested Forms to avoid infinite recursion (in buggy
1263 PDF files).
1264Add a special case for rectangular clip regions - make sure these
1265 don't drop pixels on the right and bottom edges.
1266Tell FreeType not to use glyph bitmaps when in anti-aliased mode.
1267Read all of the border style info for links.
1268All 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.
1271If the Length2 parameter for an embedded Type 1 font was incorrect
1272 (too small), pdftops was losing font data.
1273Deal with (broken) DCT streams that use the same component ID number
1274 for different components.
1275The MediaBox page attribute was not being inherited correctly.
1276Fixed a bug in the Type 1C font converter related to local
1277 subroutines.
1278The Type 1C -> Type 1 font converter was allocating the font dictionary
1279 one slot too small.
1280Added a missing private dictionary entry to Type 1 fonts generated by
1281 the Type 1C converter. [Thanks to Michael Shell.]
1282Fixed bugs in the tiling pattern fill code.
1283Try the TrueType 0xf000 char code offset hack for the MacRoman
1284 encoding too (in addition to MS Symbol).
1285Update the font metrics info for the Base 14 fonts to include the Euro
1286 character.
1287SECURITY HOLE: Escape various characters in URLs before running a web
1288 browser (or movie viewer). [Fixed in 2.02p11]
1289SECURITY 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]
1292Added an option to disable insertion of page breaks (form feed
1293 characters) in extracted text (pdftotext -nopgbrk; xpdfrc
1294 "textPageBreaks" option).
1295Check for 8-bit fonts that specify an out-of-range FirstChar or
1296 LastChar.
1297Correctly handle an obsolete Type 2 charstring op (in the Type
1298 1C-to-Type 1 font converter). [Thanks to Helge Blischke.]
1299Use the font encoding info to fill in holes in the ToUnicode map.
1300Added character names for Bulgarian (in the Cyrillic support pacakage)
1301 and Greek.
1302Handle clipping to text in xpdf and pdftops.
1303Fix color space detection in DCT decoder. [Thanks to Dwight Kelly.]
1304Added the "unicodeToUnicode" xpdfrc option, intended (initially) for
1305 Arabic support.
1306Handle 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.]
1309Kill any pre-existing path before drawing a form (or annotation).
1310Save state before rendering page content; restore state afterward.
1311Fix Stream::reset/close to work correctly with encoder streams; fix
1312 PSOutputDev to use Stream::close consistently.
1313Fix a seg fault when hitting the 'back' button after closing a file.
1314GfxState::getStrokeGray was returning the fill gray value (this only
1315 affected Level 1 PS output).
1316Change PSOutputDev to reuse dictionaries in Level 1 mode (since Level
1317 1 PS interpreters don't do garbage collection). [Thanks to Frank
1318 Siegert.]
1319PSOutputDev was generating incorrect translations for landscape-mode
1320 pages.
1321Implemented shading pattern color spaces.
1322PSOutputDev wasn't correctly handling Type 3 fonts which used image
1323 resources (as opposed to inline images). [Thanks to Frank Siegert.]
1324The fix from 1.00 which clipped out-of-bounds points was a bit too
1325 aggressive.
1326Do proper Floyd-Steinberg dithering in XOutputDev.
1327Don't automatically check for a null owner password (to match Adobe's
1328 behavior).
1329Allow the FlateDecode filter in Level 3 PostScript output.
1330Fixed small bugs in the Type 1C -> Type 1 converter and Type 1C ->
1331 Type 0 converter. [Thanks to Tom Kacvinsky.]
1332Work around another weird Motif problem with the right button menu
1333 (which was sometimes causing the menu to not be displayed).
1334Make the code that handles fonts defined directly in the resource dict
1335 more robust.
1336Add a brief description of the outline pane to the xpdf man page.
1337Ignore extra operands to content stream operators.
1338Fixed a bug in the CCITTFax decoder.
1339Allow the Count entry in a Pages dictionary to be a real number
1340 (because some PDF generators actually do this).
1341Shading pattern fills weren't being clipped correctly.
1342Incorrect shallow copies in GfxRadialShading and StitchingFunction.
1343The StitchingFunction destructor wasn't checking for funcs being
1344 NULL.
1345Change the TrueType code-to-GID mapping code so it looks at the
1346 TrueType 'post' table.
1347Set the print command in the print dialog once at startup, don't
1348 change it each time a file is (re)loaded.
1349Generate the %%BoundingBox comment in regular PostScript files (not
1350 just EPS files).
1351Fixed a bug in the Unicode CMap parser.
13533.00 (2004-jan-22)
1355New PDF rasterizer ("Splash").
1356Added 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
1362Replaced pdftopbm with pdftoppm (which can generate PBM, PGM, and PPM
1363 files).
1364Reorganized the font file parser code into a new library ("Fofi").
1365Removed support for FreeType 1.x.
1366Removed support for X server fonts - Xpdf (and pdftoppm) will now
1367 search for the URW fonts (from ghostscript).
1368Changed the "-t1lib" and "-freetype" switches; replaced the
1369 "t1libControl" and "freetypeControl" config file options with
1370 "enableT1lib", "enableFreeType", and "antialias".
1371Added the "-box" option to pdfinfo.
1372Added imageable area support to PSOutputDev (for CUPS); added the
1373 "psImageableArea" config file option.
1374Added the "-nocrop", "-expand", "-noshrink", and "-nocenter" switches
1375 to pdftops; added the "psCrop", "psExpandSmaller", "psShrinkLarger",
1376 and "psCenter" config file options.
1377Dictionary size was in PostScript code generated for Type 3 fonts.
1378The PS code generated for images in Type 3 characters was broken.
1379Tweaked the text extractor.
1380Accept xref entries that are one byte too short (matching Adobe's
1381 behavior).
1382Change things so "xpdf -h" and "xpdf -v" work if DISPLAY isn't set.
1383Fix a problem in the damaged file repair code that handles the trailer
1384 dictionary.
1385Use 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.
1388PSOutputDev was not handling DeviceN color spaces correctly in Level 2
1389 images.
1390Fixed a stupid little bug that broke PS output for JBIG2 images.
1391Work around a Lesstif bug: set up an extra callback so hitting <Enter>
1392 in the find dialog performs a search. [Thanks to Elliott Hughes.]
1393Pdftops was crashing on zero page PDF files.
1394Add an AC_PREREQ call to
1395Change the 'find' dialog so the text entry box resizes with the
1396 dialog.
1397Skip extraneous zero bits at the start of a CCITTFax stream.
1398The PostScript text clipping operator was missing a 'newpath'.
1399 [Thanks to Frank Siegert.]
1400Fix a bug in tiling patterns with bboxes that don't start at (0,0).
1401Fix a bug in Type 3 font handling with rotated text.
1402The 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.
1405ICCBased color spaces don't always set their Ranges values correctly,
1406 so just use the values from the alternate color space.
1407Modified GHash to accept int or void* - this avoids some conversion
1408 warnings.
1409Check for missing Type 3 CharProcs - avoid a segfault.
1410Pdffonts now marks all Type 3 fonts as embedded.
1411Outline entries with no Title string weren't being handled correctly,
1412 resulting in segfaults.
1413PSOutputDev now forces the text horizontal scale factor to be non-zero
1414 to avoid singular font matrices in the PS code.
1415Tweaked the error recovery in the CCITTFax decoder.
1416The LZW/Flate predictor should treat any Predictor value (in the
1417 stream dictionary) >= 10 identically.
1418PSOutputDev and pdffonts check for NULL font objects (which can
1419 happen, e.g., because of missing CMap files).
1420Swap the left and right mouse wheel button numbers.
1421EPS output ("pdftops -eps") now uses the CropBox instead of the
1422 MediaBox as the EPS bounding box.
14243.01 (2005-aug-17)
1426Added the continuous view mode, including the '-cont' switch and the
1427 'continuousView' config file option.
1428At high zoom levels, don't rasterize the entire page - this avoids
1429 problems running out of memory.
1430Added "search backward" and "match case" options to the find dialog.
1431Support explicitly masked images and soft masked images.
1432Add support to DCTStream for 16-bit quant tables.
1433Don't segfault if the user clicks on an outline entry with a broken
1434 destination.
1435Changed 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.
1438Move an inline function in to avoid compiler
1439 errors.
1440Fixed a bug in the rasterizer that was sometimes causing infinite
1441 loops with round line caps on vertical lines.
1442Various rasterizer optimizations.
1443Look for intermediate resize events - try to avoid lagging when the
1444 user is doing an opaque resize.
1445The FormType key in Form XObjects is optional.
1446Handle external 16-bit TrueType fonts correctly, using the Unicode
1447 cmap.
1448Add class declarations to TextOutputDev.h to work with stricter C++
1449 compilers.
1450Support FreeType's weird include file stuff (ft2build.h, etc.).
1451Fixed a bug handling empty paths.
1452Fixed a text positioning problem in PostScript output.
1453Handle TrueType collections in
1454FoFiTrueType constructor was reporting a failure if the post table was
1455 bad - this should be non-fatal.
1456Type 1 font parser was missing a NULL test.
1457Mask chars passed to isdigit in goo/parseargs.c to avoid problems with
1458 signed chars.
1459Added more error checking to the CCITTFax decoder.
1460Fixed a bug (computing the MCU size) in the DCT decoder.
1461Change a test in the Splash stroke code to avoid x86 floating point
1462 weirdness.
1463Reorganized the decryption code to allow security handler plugins;
1464 removed the NO_DECRYPTION #ifdefs.
1465Added a plugin interface, initially just for security handlers.
1466Support color key masked images and explicitly masked images in PS
1467 output (Level 2 only).
1468When checking for aliases of the Base 14 fonts, ignore spaces in the
1469 specified font name.
1470Handle encrypted PDF files that are missing the file ID string.
1471Handle tiling patterns more efficiently in the PostScript output.
1472Rewrote the code that handles color spaces in PostScript output.
1473Fixed a bug in the Type 1C font parser - zero-length indexes (and
1474 zero-length names) weren't handled correctly.
1475Handle shaded fills more efficiently in the PostScript output.
1476Implement the remaining shading types (4-7).
1477Rearranged the Splash color modes.
1478Add the EarlyChange parameter to LZWStream when generating PostScript.
1479Check for zero values in line dash arrays in PSOutputDev.
1480Fixed an uninitialized variable in JArithmeticDecoder which was
1481 causing crashes.
1482Treat unknown CMap names as identity mappings (to match Adobe's
1483 behavior).
1484Fixed bugs in the XRef parser related to XRef streams in updated
1485 files.
1486Added a missing call to FT_Done_Glyph which was causing a memory leak.
1487 [Thanks to Dave Formanek.]
1488Fixed a bug in text copying that was causing the last word to be
1489 dropped on some pages.
1490Tweaked the image width/height computation in Splash::drawImage and
1491 Splash::fillImageMask to make striped images work better.
1492Ignore minus signs in the middle of numbers (to match Adobe's
1493 behavior).
1494Missing '%s' in format strings for dates in pdftotext '-htmlmeta'
1495 mode.
1496Change 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.
1499Added a matteColor setting (command line option and X resource).
1500Tweaked the CMYK->RGB transform.
1501Fix some problems in tracking the character position (to match up with
1502 Adobe's highlight file format).
1503Handle moveto/closepath/stroke correctly.
1504Check for singular text matrices and font size of zero in PSOutputDev.
1505Clip 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).
1508If 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).
1511Don't remap small caps and oldstyle glyphs in the name-to-Unicode
1512 table - it messes up TrueType font encodings.
1513Pdftoppm wasn't setting the paper color correctly in mono and gray
1514 modes (this only showed up on big-endian machines).
1515Missing NULL check was causing crashes when attempting to read non-PDF
1516 files that happened to contain the string '%PDF'.
1517Fixed a problem in the text extractor that was breaking up words.
1518Handle vertical text (CJK fonts) in PS output with TrueType fonts that
1519 are missing the vertical metrics tables.
1520Handle the case where a font object and the corresponding embedded
1521 font are different types.
1522Handle basic crypt filter functionality.
1523Added more value checking in the XRef parser, to avoid potential
1524 security problems.
1525Updated the CJK language support packages: replaced the
1526 displayCIDFontX references with displayCIDFontTT; added pointers to
1527 free TrueType fonts.
1528Added a missing error message when SplashOutputDev can't parse an
1529 embedded TrueType font file.
1530PDFCore and TextOutputDev now correctly handle searching for Unicode
1531 strings, including real Unicode case-folding.
1532Throw away tiling pattern fills that are completely outside the clip
1533 region.
1534The JPEG 2000 inverse reversible multiple component transform code was
1535 wrong.
1536Fixed some bugs in shading pattern fills: clipping was wrong, and
1537 background color was not implemented.
1538Added tool tips for the toolbar buttons.
1539Decrease the max depth of recursive patch mesh filling if the pattern
1540 has a large number of patches.
1541Highlight the find text whenever the find dialog is mapped.
1542Handle page boundary boxes with reversed coordinates.
1543Fixed a bug in the text extractor code that handles duplicated text.
1544Optimization work on SampledFunction::transform().
1545Use the CropBox instead of the MediaBox as the display region.
1546Dither for PseudoColor (8-bit) displays.
1547Fix a bug in DCTStream that was causing an infinite loop with
1548 corrupted DCT image data.
1549Fix a bug in the ToUnicode CMap parser.
1550Fix a bug in the text extractor - negative font sizes weren't being
1551 handled correctly.
1552Fix a bug in the text extractor - in certain cases, out-of-bounds text
1553 could cause crashes (generally only in damaged PDF files).
1554Fix a read-past-end-of-array bug in the JBIG2 decoder.
1555Fix a case where pdftops was generating lines longer than 255 chars.
1556Optimize redraws - don't regenerate the XImage every time redrawRect
1557 is called.
1558The ASCII85 decoder wasn't skipping whitespace properly.
1559Optimize text extraction: skip (non-inline) image setup entirely.
1560Added initial transparency support (stroke/fill alpha and blend mode).
1561Added support for the overprint setting in PostScript output.
1562Fixed various buffer overflow bugs.
1563Handle 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.
1566Fixed a buffer overflow in the CCITTFax decoder.
1567Fixed an out-of-order entry in the list of font name aliases.
1568Fixed a backward loop in the PostScriptFunction code.
1569Treat a zero-length base URI the same way as a nonexistent base URI.
1570Add a divide-by-zero check in TextOutputDev (the problem was happening
1571 in cases of mixed horizontal and vertical text).
1572PSOutputDev wasn't rounding the page bounding box coordinates
1573 correctly.
1574Support the SOF1 marker in DCT (JPEG) image streams.
1575Minor changes to GlobalParams.h and JPXStream.h because some compilers
1576 don't like anonymous structs inside anonymous unions.
1577Xpdf now complains about a negative page number.
1578Changed GString::cmp and GString::cmpN to correctly handle '\0' chars
1579 in the middle of strings.
1580Fixed the radial shading code; corrected the handling of the 'extend'
1581 parameters.
1582Added the gmallocn and greallocn functions.
1583Fixed a bug in the TIFF image component predictor which shows up with
1584 components that are not 1 or 8 bits wide.
1585Optimized FlateStream::loadFixedCodes().
1586For non-embedded Base-14 fonts, don't use the ascent/descent/bbox
1587 values from the FontDescriptor - various PDF generators get them
1588 wrong.
1589Fixed a bug in the text extractor - words on the same line (especially
1590 in tables) were being split vertically onto multiple lines.
1591Automatically select the correct radio button ("print with command"
1592 vs. "print to file") in the print dialog.
1593Don't create the "open" and "save as" dialogs until needed - this
1594 avoids stat-ing every file in the directory at startup.
1595Changed 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).
1599Added the '-pagecrop' switch to pdftops.
1600Tweaked the RGB->gray and CMYK->gray conversion functions to match the
1601 PDF spec.
1602The JPEG 2000 decoder wasn't correctly handling codeblocks split
1603 across multiple packets/layers.
1604Fixed a typecast that caused compile errors on 64-bit systems.
1605The CMap parser wasn't handling the 'cidchar' construct.
1606Handle the case in PSOutputDev where two font objects refer to the
1607 same embedded 16-bit TrueType font, but with different CIDToGIDMaps.
1608Changed the configure script to report more accurate warnings when
1609 it can't find X / Motif / FreeType.
1610Encryption with revision=2 always uses a 40-bit key, regardless of the
1611 specified Length value.
1612Yet another minor change to the TrueType font encoding deciphering
1613 algorithm.
1614Don't completely invalidate the Catalog if one (or more) of the page
1615 objects are bogus -- just skip over those pages.
1616Removed the workaround in pdftops for too-small Length2 values in Type
1617 1 fonts -- it was causing problems on various PostScript printers.
1618Started adding error checking to the JBIG2 decoder (this is nowhere
1619 near complete yet).
1620Extended the "unicodeToUnicode" config option to also apply to CID
1621 fonts.
1622Added the narrow Latin characters to the Adobe-Korea1.cidToUnicode
1623 file in the Korean language support package.
1624Fixed the code that handles page rotation in PSOutputDev.
1625When converting a Type 1C glyph to a Type 1 glyph, insert closepath
1626 operators as appropriate.
1627Check for a sane 'loca' table in TrueType fonts (FoFiTrueType::parse).
1628Fix PSOutputDev to correctly handle the case of an empty name in a
1629 font encoding.
16313.02 (2007-feb-27)
1633Added anti-aliasing for vector graphics; added the vectorAntialias
1634 xpdfrc option; added the "-aaVector" switch to xpdf and pdftoppm.
1635Implemented stroke adjustment (always enabled by default, ignoring the
1636 SA parameter, to match Adobe's behavior), and added the strokeAdjust
1637 xpdfrc command.
1638Support PDF 1.6 and PDF 1.7.
1639Added support for AES decryption.
1640Added support for OpenType fonts (only tested with 8-bit CFF data so
1641 far).
1642Added user-configurable key/mouse bindings - the bind/unbind xpdfrc
1643 commands.
1644Cleaned up the full-screen mode code and added the ability to toggle
1645 it on the fly (the default key binding is alt-f).
1646Pdfimages with the -j option now writes JPEG files for 1-component
1647 (grayscale) DCT images, in addition to 3-component (RGB) images.
1648Fixed bugs in handling sampled (type 0) functions with 32-bit
1649 samples.
1650Fixed some things to support DeviceN color spaces with up to 32
1651 colorants.
1652Pdftops now constructs the %%Creator and %%Title DSC comments from the
1653 relevant information in the PDF Info dictionary.
1654Tweak the TrueType font encoding deciphering algorithm.
1655Added the "mapUnkownCharNames" xpdfrc option.
1656Fix a bug (that only showed up with certain window managers) in the
1657 intermediate resize event optimization. [Thanks to Michael Rogers.]
1658Check for a broken/missing embedded font (this was causing xpdf to
1659 crash).
1660Added support for transfer functions in PostScript output.
1661Be a bit more tolerant of Link destinations that contain null values
1662 for positioning parameters.
1663Use ordered dot dithering instead of clustered dot dithering at
1664 resolutions below 300 dpi (for monochrome output).
1665Fixed security holes (bounds checking issues) in several places.
1666Don'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.
1669Clipping in TextOutputDev was off for characters on the left edge of
1670 the page.
1671The scn and SCN operators weren't correctly handling colors with more
1672 than four components.
1673FoFiType1::writeEncoded wasn't always correctly finding the end of the
1674 encoding.
1675Use the ColorTransform parameter in the DCTDecode stream dictionary.
1676Type 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.
1678Perform 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.
1681PSOutputDev now rasterizes any pages that use transparency.
1682Limit the crop, bleed, trim, and art boxes to the edges of the media
1683 box (per the PDF spec).
1684Change GString to increase the allocation increment by powers of two.
1685Handle whitespace in hex strings in CMap files/streams.
1686Use strings instead of names for separation colorant names in
1687 PSOutputDev.
1688For explicitly masked images where the mask is higher resolution than
1689 the image, use the soft mask code.
1690Avoid problems with very large x-steps in the PostScript output for
1691 tiling pattern fills.
1692Avoid a divide-by-zero in stitching functions which have a subfunction
1693 with empty bounds.
1694Honor the "Hidden", "NoView", and "Print" flags on annotations.
1695Rewrote the pixel rendering code in Splash to use a single set of
1696 pixel pipeline functions.
1697Added support for transparency groups and soft masks.
1698Fixed the transparency blend functions to match the addendum published
1699 by Adobe.
1700Changed Splash/SplashBitmap to store alpha in a separate plane.
1701Setting the color space now selects the correct default color for that
1702 color space.
1703Remove the mutex lock from GlobalParams::getErrQuiet() to avoid a
1704 deadlock when parseCIDToUnicode() or parseUnicodeToUnicode() calls
1705 it from inside a locked section.
1706Added error checking (on the argument count) in the sc/SC/scn/SCN
1707 operators.
1708Skip over notdef glyphs in TrueType fonts (which sometimes get drawn
1709 as little boxes), to match Adobe's behavior.
1710Painting 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.
1713Fixed 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.
1716Change the TrueType font parser (FoFiTrueType) to change the glyph
1717 count rather than report an error if the 'loca' table is too small.
1718Fixed a couple of bugs in the JBIG2 decoder.
1719Added stochastic clustered dot dithering.
1720Added the screenType, screenSize, screenDotRadius, screenGamma,
1721 screenBlackThreshold, and screenWhiteThreshold xpdfrc settings.
1722PSOutputDev now correctly handles invalid Type 3 charprocs which don't
1723 start with a d0 or d1 operator
1724FreeType 2.2.x support - get rid of the FT_INTERNAL_OBJECTS_H include,
1725 and add some 'const' declarations.
1726Handle PDFDocEncoding in Info dictionary strings.
1727Tweak the xref repair code - ignore whitespace at the start of lines
1728 when looking for objects.
1729Added the "-exec" switch to xpdf.
1730Removed the xpdf.viKeys X resource.
1731Changed the color key / explicit masked image code in PSOutputDev to
1732 generate better PS code, including a Level 3 option.
1733Tweaked the DEBUG_MEM code for performance.
1734Move 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.
1737Added the "-preload" option to pdftops and the psPreload xpdfrc
1738 command.
1739Added the "zoom to selection" command (on the popup menu).
1740Fix a bug (in xpdf/pdftoppm/pdftops) with tiling patterns whose bbox
1741 size is different from their xStep/yStep.
1742Implemented stroke with pattern color spaces.
1743Following a link to a page whose CropBox was different from the
1744 MediaBox was resulting in an incorrect scroll position.
1745Parse truncated date strings from the Info dictionary correctly.
1746Change FoFiType1 to handle Type 1 fonts with two /Encoding keys.
1747Extend the PSOutputDev shaded fill code to handle DeviceCMYK shaded
1748 fills in level2sep and level3sep modes.
1749Detect infinite loops in the Page tree.
1750Optimized the ASCII85Encoder code.
1751Tweaked the text extractor to do a better job of lining up rows of
1752 text.
1753Leave 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).
1756Extend FoFiType1 to handle Type 1 fonts with octal character codes in
1757 their encodings.
1758Use a custom string formatter to avoid problems with locale-based decimal
1759 formatting (commas instead of periods) in PS output.
1760Allow comments in PostScript-type functions.
1761Change the TrueType font parser (FoFiTrueType) to delete glyf table
1762 entries that are too short.
17643.03 (2011-aug-15)
1766Added the "fixed pitch" text extraction mode.
1767Modified "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.
1770Add ability for pdftoppm to write to stdout.
1771Added the pdfdetach tool.
1772Implemented 256-bit AES decryption.
1773Commented out the t1lib section in the configure script -- t1lib has
1774 some potential security holes, and hasn't been updated in years.
1775Redesigned 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.
1781Switched from GPLv2 to dual v2/v3 licensing.
1782Performance: cache tiling patterns.
1783Implemented text fills with pattern color spaces.
1784Rewrote the image and image mask rendering code to be more accurate
1785 and faster.
1786Fixed a bug in PDFCore that could sometimes cause crashes at high zoom
1787 levels.
1788Implemented embedded CMap streams.
1789Added the 'setSelection' command.
1790Added the 'rotateCCW' and 'rotateCW' commands.
1791Added the 'psFontPassthrough' xpdfrc command.
1792Added the 'launchCommand' xpdfrc command.
1793Implemented alpha-type soft masks.
1794Added "Form: AcroForm|XFA|none" to pdfinfo output.
1795Added support for image masks filled with pattern color spaces.
1796Text 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).
1799The text extractor now uses "ActualText" spans if they are present.
1800Modified PSOutputDev so it always check for transparency; if Splash is
1801 not available, it now prints a warning.
1802Handle the blending color space for soft masks.
1803Added the disableFreeTypeHinting xpdfrc option.
1804Added the psAlwaysRasterize xpdfrc option.
1805Added support for transfer functions in the rasterizer.
1806Optimized the JPEG 2000 decoder to use less memory.
1807Do fill adjustment (similar to stroke adjustment) on simple
1808 rectangular fills.
1809Added the antialiasPrinting xpdfrc setting.
1810Added '%i', '%j', and '%k' (mouse pointer page and position) to the
1811 available options for the 'run' command.
1812Links with the underlined border style were being drawn with the lines
1813 over, instead of under, the text.
1814Add #include <aconf.h> to (to avoid problems with certain
1815 compilers).
1816Change 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).
1819Minor fix in to deal with an error in newer C++ compilers
1820 (pow() can take int or double args).
1821Handle 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.
1825In text extractor, don't drop horizontally overlapping words onto a
1826 separate line.
1827The numbers in the operand to the TJ operator should be multiplied by
1828 the current horizontal scaling parameter.
1829Fixed a bug in the Type 1C-to-Type 1 font converter -- need to escape
1830 strings in the font dictionary.
1831The zero-font-size check in was broken.
1832Fixes 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.
1835Modify XPDFTree to limit the widget height to 32767 pixels -- this
1836 avoids crashes with very large outlines.
1837Modify FoFiType1 to handle PFB headers in Type 1 font files.
1838Allow image mask decode arrays to be [1.0 0.0] in addition to [1 0].
1839Tweak the form field appearance regeneration code.
1840PSOutputDev now sets up resources for DR dictionaries in forms (in
1841 case the form field appearances are regenerated).
1842For TrueType fonts which are marked symbolic, the cmaps should be
1843 ignored.
1844Change 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.
1847Modify FoFiTrueType to handle bogus loca table entries where the
1848 offset is past the end of the glyf table.
1849Fixed shading pattern fills to do clipping and background fills
1850 correctly.
1851Change the code that reads the page tree to be more flexible with
1852 regard to improperly constructed trees.
1853Changed the PostScript header comment from "Produced by xpdf/pdftops
1854 x.yy" to "XpdfVersion: x.yy" to make it (mostly) DSC-compliant.
1855Fixed 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).
1858Unbalanced save/restores inside form XObjects (which can be happen in
1859 damaged or incorrectly constructed PDF files) could cause crashes.
1860The CCITTFax decoder could go into an infinite loop on certain types
1861 of corrupt input.
1862Added the "drawAnnotations" xpdfrc command.
1863Added the "psUncompressPreloadedImages" xpdfrc command.
1864Escape newlines and other non-printable characters in the custom color
1865 DSC comments in PostScript output.
1866Added the tilingPatternFill and *ShadedFill functions to
1867 PreScanOutputDev to speed it up.
1868Too many elements in an image's Decode array should not be a fatal
1869 error.
1870Fixed a buffer overflow security hole in StreamPredictor.
1871Empty pages (zero-length content streams and null contents) were
1872 causing crashes in continuous view mode.
1873Handle line dash arrays that start with a zero element correctly.
1874PreScanOutputDev 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.
1877Force halftone screen size to be a power of 2. This allows optimizing
1878 the halftoning code.
1879Fixed a bug in the JBIG2 MMR decoder (and also in the CCITTFax
1880 decoder) that was causing array references with negative indexes.
1881Fixed a bug in the transparency code that was causing memory overruns.
1882Fixed a 64-bit bug in the ASCII85 encoder.
1883The focusToPageNum was crashing in full-screen mode - it should simply
1884 do nothing.
1885Added '%p' (current page number) to the available options for the 'run'
1886 command.
1887Tweak 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).
1891A closepath followed by a lineto should create a new subpath for the
1892 lineto.
1893Fixed a buffer overflow in the CCITTFax decoder.
1894Adobe 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.)
1899Pdfimages now ignores tiling pattern fills (for performance reasons).
1900Fixed a bug in PDFCore that could sometimes cause crashes at high zoom
1901 levels.
1902Use std::sort (with functors) in place of qsort (if available) - this
1903 can be significantly faster.
1904Hitting "close" while Xpdf is in full-screen mode (with only one file
1905 open) was crashing.
1906Tweak the TrueType font encoding deciphering algorithm.
1907Rewrote the CCITTFax decoder inner loop - this fixes a security hole.
1908Fixed two security holes (missing bounds checks) in the DCT decoder.
1909Do the correct zooming for "Fit" and "FitR" destinations.
1910Implement the rotation value in the form field appearance regeneration
1911 code.
1912When PSOutputDev rasterizes a page (because it contains transparency),
1913 the image is broken into stripes if it is above a size threshold.
1914Don'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.
1917Split several special cases off from Splash::pipeRun, for performance.
1918Add a sanity check for excessively large font sizes (which caused
1919 problems because Xpdf tried to allocate memory for a font cache).
1920Fixed a bug in the GfxCIDFont constructor involving reading the
1921 vertical metrics.
1922Rewrote the code that handles annotation transforms - it was not
1923 handling non-rectangular transforms correctly.
1924Tweak the Type 3 bbox code to allow some slack on the left/bottom
1925 edges, as well as the top/right edges.
1926Fixed a bug that was causing problems rendering Type 3 fonts to 1-bit
1927 monochrome output.
1928Handle the case where AES padding is invalid.
1929Changed XRef::getNumObjects to return the number of used entries,
1930 instead of the same value as returned by XRef::getSize().
1931Ignore bogus entries in the TrueType table directory instead of
1932 immediately giving up on the font.
1933Fixed a bug in the radial shading code that could cause divide-by-zero
1934 errors.
1935Tweaked the TrueType font fixup code to deal with an extra zero entry
1936 at the end of the loca table.
1937Increased font cache sizes to improve performance.
1938Tweaked 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.
1941Added another font size sanity check, this time for Type 3 glyphs.
1942Added initial support for optional content (layers) - no GUI yet.
1943For CID fonts that specify the 'Adobe-Identity' or 'Adobe-UCS'
1944 collection, use an identity mapping for char code-to-Unicode
1945 conversion.
1946Updated the error function to take a category argument, and to use
1947 GString::format instead of printf; added an error callback.
1948The 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.
1951Change 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).
1954Clip opacity values to the range [0,1].
1955Handle glyph names of the form 'unixxxx' (similar to Ann, Axx, etc.).
1956Resolution of rasterized pages in PostScript output was not being
1957 computed correctly (resulting in overly large images).
1958Extend the mapUnknownCharNames config command to cover CID fonts.
1959Zero-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.
1962Various optimizations to the Splash rasterizer.
1963Allow "Identity" and "Default" as the transfer function in soft masks.
1964Tweaked the ToUnicode CMap parser to allow <00xx> char codes for 8-bit
1965 fonts.
1966TextPage::clear() was not clearing the lists of underlines and links.
1967Changed the CCITTFax decoder to correctly handle the interaction
1968 between the EndOfLine and EncodedByteAlign parameters.
1969Fixed 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).
1972Fixed a bug in the FreeType interface code which was causing incorrect
1973 positioning/sizing of characters.
1974Tweaked the FreeType interface code - use 'light' hinting with Type 1
1975 fonts (because it generally looks better).
1976Tweak the Windows font searching code to handle "Black" fonts.
1977Fixed a bug in the PostScript-type function parser -- real numbers
1978 that start with a decimal point weren't being handled correctly.
1979Changed 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.
1983Ignore generation numbers on compressed objects (to match Adobe's
1984 behavior).
1985Changed the PostScript PageSize policy from 3 to 6 (choose next
1986 largest paper size, don't rescale).
1987Check 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.
1990Fixed a bug in generic region decoding in the JBIG2 decoder.
1991Fixed the lexer to handle large real numbers correctly.
1992Pdftops wasn't correctly handling tiling patterns that use both fill
1993 and stroke operators.
1994Report an error if the Size array in a sampled function includes any
1995 zeros.
1996The PostScriptFunction.codeString field wasn't being initialized
1997 correctly.
1998Invalid object streams were not being handled correctly.
1999Check for loops in xref tables.
2000Handle the case where a content stream ends after the 'ID' operator
2001 which starts inline image data.
2002Check for invalid object streams (i.e., an object stream can't be
2003 inside another object stream.
2004Add a recursion limit to the object parser - this avoids stack
2005 overflows with various sorts of damaged PDF files.
2006Handle various parameter settings in the extended graphics state
2007 dictionary.
2008An invalid document outline (missing fields) could cause a crash.
2009Added an overprint preview mode (for CMYK output only).
2010Correctly handle FitH/BH/V/BV link destinations that contain null
2011 values for positioning parameters.
2012If 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.
2015Use ResusableStreamDecode when generating Level 3 PostScript for an
2016 explicitly masked image.
2017Tweak the Type 1 font parser to handle encodings with multiple
2018 characters on one line.
2019Invert subtractive color components before passing them to the
2020 blending function.
2021Fix an invalid array access in SplashOutputDev::setSoftMask() in CMYK
2022 mode.
2023A PS interpreter may attempt to read past the end of a preloaded
2024 image, so we need to check for that.
2025Fixed several overflow/uninit bugs in JBIG2Stream.
2026Fix the CCITTFax decoder to correctly find end-of-file (RTC/EOFB)
2027 markers when the EndOfLine parameter is false.
2028Don't limit the startxref offset to 10 digits - some PDF generators
2029 use extra leading zeros.
2030Use the "DV" (default value) field in text annotations if the "V"
2031 (value) field is missing.
2032Increase the number of digits printed for floating point numbers in
2033 PostScript output -- it was running into numerical accuracy problems
2034 on large pages.
2035Fixed integer overflow bugs in and
2036Zero-length tables in TrueType fonts should be treated as missing.
2037ToUnicode CMaps map char codes to Unicode; .cidToUnicode files map
2038 CIDs to Unicode -- ToUnicodeCMaps were being handled incorrectly.
2039Added the "psRasterResolution" and "psRasterMono" xpdfrc commands.
2040Added 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.
2043Negative shift values in the PostScript bitshift operator were being
2044 handled incorrectly.
2045GfxICCBasedColorSpace was not correctly bounds-checking the number of
2046 components.
2047Check SampledFunction input values for NaNs.
2048Fix a divide-by-zero when the page width or height is zero.
2049Fix 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.
2052In PostScript output, if CID font substitution fails, drop all text in
2053 that font.
2054Handle PDF files that set the stream/string decryption filters to
2055 Identity (i.e., no encryption).
2056Avoid passing a zero font size to FreeType.
2057Tweak raw mode in the text extractor to handle words on the same line
2058 drawn in the wrong order.
2059Pdftops was generating a singular transform matrix for annotations
2060 whose bounding boxes had zero width or height.
2061Handle embedded OpenType CFF fonts with CIDToGIDMaps.
2062Remove the old kludge from PSOutputDev that was converting char 32
2063 from ".notdef" to "space".
2064Allow CCITTFax images to be more than 32k pixels wide.
2065Modified the CMap parser to handle usecmap with Identity-H/V.
2066Added some parameter checking in the JPX decoder.
2067Added checks for infinite loops in PDF objects - for color spaces,
2068 functions, optional content, and outline items.
2069Add support for mouse button bindings up to button 32 (old limit was
2070 7).
2071Fixed 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.]
2074Optimize SampledFunction: pull index computation code out of the
2075 transform function; cache the last transform.
2076Tweaked the font naming algorithm in PSOutputDev.
2077Treat mirrored (as opposed to rotated) text the same as upright text
2078 in pdftotext.
2079Fixed buffer overflows in Splash and SplashBitmap.
2080Check for bogus character codes (e.g., <ffffffff>) in ToUnicode CMaps.
2081The radial shading code (in both and was not
2082 computing the s bounds properly.
2083Drop 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".
2086Added code to FoFiTrueType to check for an invalid loca format field
2087 in the head table.
2088The axial shading code (in, but not was not
2089 computing the incremental polygon vertices correctly.
2090Set the character width in TextOutputDev to something sensible for
2091 vertical fonts.
2092Added basic support to the text extractor for vertical writing mode.
2093The non-interactive tools (pdftotext, pdftops) now free Page objects
2094 after using them, avoiding performance problems with pages that have
2095 huge resource dictionaries.
2096Check for line dash arrays like [0], and draw nothing at all (to match
2097 Acrobat's behavior).
2098Add a sanity check for the ascent/descent values in FontDescriptors.
2099Single-point paths with a line dash were causing a crash.
2100Correctly handle Level 3 PostScript output with masked images inside
2101 patterns.
2102Tweaked 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).
2104If Indexed color space tables (streams or strings) are too small,
2105 reduce the max index instead of throwing away the color space.
2106Change 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.
2110In monochrome mode, treat lines with width <= 1 as hairlines (to match
2111 Acrobat's behavior).
2112Cache the last transform for PostScript-type functions.
2113Added the "-rawdates" option to pdfinfo.
2114Optimized ImageStream::getLine().
2115Fixed the Hue, Saturation, Color, and Luminosity blend functions to
2116 match Adobe's spec.
2117Fixed the non-isolated group compositing computation.
2118Skip extraneous unused data at the end of JBIG2 segments.
2119Change the algorithm that stroke/fill adjustment uses so that the
2120 edges of adjacent strokes/fills line up.
2121Do stroke adjustment on end caps when cap style is butt or projecting.
2122Fixed a security hole: Gfx.parser was not being initialized to NULL.
2123Fixed a security hole: integer bounds check in the Type 1 encoding
2124 parser in
2125If an embedded font object is invalid or non-existent, do font
2126 substitution (same as if there were no embedded font).
2127TextOutputDev was reusing an old font in the case where the font
2128 changed but the font size and character positioning stayed the same.
2129When starting a transparency group, copy the fill/stroke colors from
2130 the graphics state.
2131Tweaked the fixed-point code.
2132When a TrueType font is declared resident (with a psFont command),
2133 don't munge the encoding.
2134Look for URIs starting with "www." and treat them as absolute "http:"
2135 URIs, not as relative URIs (to match Adobe's behavior).
2136Added code to FoFiTrueType to check for a zero-entry cmap table.
2137Tweaked the font substitution code to do a better job of scaling the
2138 substituted font.
2139Require at least two splits in the axial shading color bisection.
2140Optimized JBIG2Stream::readGenericBitmap().
2141JPXStream wasn't correctly handling row padding for images with fewer
2142 than 8 bits per component.
2143Optimized the ToUnicode CMap parser.
2144Added a "whole words only" option to text searches.
2145Check for valid component parameters in the DCT decoder.
2146Implement embedding of external 16-bit fonts (without subsetting) in
2147 PostScript output.
2148Added the minLineWidth xpdfrc command.
2149Added warning messages for font substitutions.
21513.04 (2014-may-28)
2153New text extractor.
2154Added the pdftohtml tool.
2155Added the pdftopng tool.
2156New trapezoid-based rasterizer core (for performance).
2157Generate appearance streams for Line, PolyLine, and Polygon
2158 annotations.
2159Added the closeWindowOrQuit command, and changed the default binding
2160 for ctrl-W from closeWindow to closeWindowOrQuit.
2161Implemented the new AES-256 mode (R=6, Acrobat X).
2162Add an object cache.
2163Added a small cache for object streams.
2164Modify PSOutputDev to use LZW compression instead of RLE, with a
2165 fallback to RLE if the "psLZW no" setting is given.
2166Pdfinfo now prints page rotation info.
2167Modified ImageOutputDev, used by pdfimages, to output the masks and
2168 soft masks used when drawing images.
2169Remove non-printable characters from error output, just in case they
2170 might cause problems for the terminal program.
2171Added initial support for Code3of9 bar codes in XFA forms.
2172Added the mapExtTrueTypeFontsViaUnicode xpdfrc command.
2173Apply stroke adjustment to rectangular images and clipping regions (in
2174 addition to strokes and fills).
2175Decode 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).
2178Implemented knockout groups.
2179Removed t1lib support.
2180Added support for images with 16-bit components.
2181Rewrote 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.
2184The transformed line width computation -- used to implement the
2185 minLineWidth setting, and the hairline threshold in monochrome mode --
2186 was incorrect.
2187Pdftops was not correctly handling the case where it couldn't find
2188 a 16-bit font -- this led to crashes and/or invalid PostScript.
2189A bug in FlateStream::getBlock() was causing problems with narrow
2190 images.
2191Use the correct _WIN32 define instead of WIN32.
2192Use copy-on-write for the clip path in SplashState (when doing gsave),
2193 for performance.
2194Added a Solaris-specific entry to the ghostscript font search path.
2195SplashState was initializing line width to 0 instead of 1.
2196Abort 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.
2200Added the psUseCropBoxAsPage xpdfrc option; "pdftops -pagecrop" now
2201 sets psUseCropBoxAsPage; "pdftops -pagecrop -paper match" now uses
2202 the CropBox as the page size.
2203Re-architected the AcroForm support code into a separate AcroForm
2204 module.
2205Fixed the handling of overprinting/transparency interaction, using
2206 the CompatibleOverprint blend mode.
2207The TIFF predictor code for the 1-bit-per-pixel case was broken.
2208For triangle and patch mesh shadings (types 4-7) with color functions,
2209 interpolate the function parameter not the color.
2210Check the fontFile/fontDir commands before (instead of after) doing
2211 Base-14 substitution in PS output.
2212Correctly handle non-embedded TrueType fonts that have an Identity
2213 ToUnicode mapping (display and PS output were failing).
2214Added support for XFA form rendering, including an "enableXFA" xpdfrc
2215 setting.
2216Handle PFB Type 1 fonts when generating PostScript output.
2217Unwind any extraneous saved graphics state at the end of the page
2218 (before drawing annotations).
2219Added some integer overflow checks in the GString class.
2220Handle 16-bit components in JPEG 2000 images.
2221ActualText spans can end without a valid font, in which case
2222 TextPage::beginWord was crashing.
2223The Domain entry in function shadings wasn't being parsed correctly.
2224Fixed a bug in the JPEG decoder - successive approximation
2225 (progressive mode) coefficients weren't being handled correctly.
2226Added a better infinite loop test to the xref parser.
2227When generating PostScript, merge reused TrueType fonts (if their
2228 code-to-GID mappings are the same).
2229Tweak the Gouraud triangle shaded fill code to end the recursive
2230 splitting if the triangles get sufficiently small.
2231Do bilinear interpolation when upsampling images.
2232When skipping extraneous image data from an inline image, look for
2233 EI<whitespace> instead of just EI.
2234When writing to stdout on Windows, pdftoppm now sets the file mode to
2235 binary. [Thanks to Robert Frunzke.]
2236Accept strings as well as names for the BaseFont entry in font
2237 objects.
2238Removed the TEXTOUT_WORD_LIST config option (with the new text
2239 extractor, this is always enabled).
2240Fixed a bug in the JBIG2 decoder (the TPGD context for template #3 in
2241 readGenericBitmap was incorrect).
2242Rewrote the PostScriptFunction code for performance.
2243Handle 8-bit OpenType CFF fonts that are missing required tables in
2244 the OpenType wrapper.
2245Handle tiling patterns with reversed coordinates in their bounding
2246 boxes.
2247Added support for 64-bit file offsets, i.e., PDF files larger than
2248 2GB.
2249Optimize the code that rasterizes pattern-filled image masks.
2250Added support for Mac OS X system fonts (Base-14 only).
2251The backdrop color in luminosity-type soft mask groups was not being
2252 handled correctly.
2253Modified behavior of "pdftops -paper match -duplex ..." - it will now
2254 duplex consecutive same-sized pages.
2255Tweak the handling of degenerate fills ('moveto lineto fill') to
2256 match Adobe.
2257Don't honor the OPM=1 setting with ICCBased CMYK color spaces.
2258Whole-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,".
2261Use the TextString class everywhere it makes sense.
2262Removed the unnecessary segment sort in Splash (performance
2263 optimization).
2264Handle hyperlinks that use Widget-type annotations.
2265Fix up the integer overflow checks to avoid issues with clever
2266 compilers. [Thanks to Nickolai Zeldovich.]
2267Correctly handle streams with missing Length entries in damaged PDF
2268 files.
2269Added a compile-time option (LOAD_FONTS_FROM_MEM) to load fonts from
2270 memory rather than temporary files on disk.
2271Added the psRasterSliceSize xpdfrc option.
2272Fixed 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.
2274Fixed a bug in the JPEG 2000 decoder related to images with fewer than
2275 8 bits per component.
2276Handle the case in PSOutputDev where slice size overflows a 32-bit
2277 integer.
2278Add (partial) support for TrueType cmap format 2.
2279Always pass FT_LOAD_NO_BITMAP to FreeType -- bitmaps apparently fail
2280 with rotated characters.
2281Support fonts specified in ExtGState dictionaries.
2282Annotations with empty Border arrays should not draw a border.
2283Fix the CMap parser to handle large CID ranges.
2284Check for Type 3 CharProcs that call q or Q before the d0/d1 operator,
2285 and treat them as uncacheable.
2286Invert the selection color when starting in reverse video mode.
2287Device{Gray,RGB,CMYK} cannot be mapped via a resource dict.
2288Changed 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.
2291Check 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.
2294Added the psMinLineWidth xpdfrc setting.
2295Fix an obscure issue in converting TrueType fonts to Type 42, related
2296 to empty glyph descriptions (12 zero bytes).
2297Pdftops now reports an error if there were any I/O errors writing to
2298 the PS output file.
2299Fix vertical text (CJK fonts) in PS output -- offset the character
2300 origin correctly.
2301Increased the number of digits used by pdfimages for the image number
2302 from three to four.
2303Handle right-to-left (e.g., Arabic) ligatures correctly in the text
2304 extractor.
2305Added the -loc and -locPS options to pdffonts.
2306Extend the object parser recursion limit to cover Stream::addFilters()
2307 / Stream::makeFilters() - to avoid another possibility of stack
2308 overflow.
2309Disable 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.
2312Modified the rasterizer pipeline functions to process a scan line at a
2313 time (for performance).
2314Removed VMS build support (it hasn't been updated in ages).
2315Removed pdftotext's '-htmlmeta' option (use pdftohtml instead).
2316PSOutputDev's font/form setup code, and pdffonts, were not scanning
2317 soft mask groups in ExtGState dictionaries.
2318Invalid DCT input (e.g., from a damaged PDF file) could overflow the
2319 dctClip array.
2320When 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).
2323Added infinite loop detection to pdffonts.
23254.00 (2017-aug-10)
2327Complete rewrite of the xpdf GUI, using Qt instead of Motif.
2328Multithreaded rasterization in the viewer - pages are now rasterized
2329 in a separate thread so that scrolling and other UI activity is not
2330 blocked.
2331Added a linear text selection mode.
2332Limit transparency groups to the clip rectangle (performance
2333 optimization).
2334Optimized the SplashScreen code, used in 1-bit monochrome mode.
2335Added setmode calls to pdftopng, when writing to stdout on Windows.
2336 [Thanks to Robert Schroll.]
2337Regenerate the appearance stream for an AcroForm field if there is
2338 no appearance stream, even if NeedAppearances isn't set.
2339When regenerating AcroForm field appearance streams, use a default
2340 font (Helvetica) for fields that don't have a valid font.
2341When the line width is increased by the minLineWidth setting, force
2342 the line join mode to "bevel" to avoid "whiskers" at sharp corners.
2343Change the pdftoppm/pdftopng resolution (-r) argument from an integer
2344 to floating point.
2345Use the FontDescriptor 'CapHeight' value in place of 'Ascent' if it's
2346 available.
2347OC (optional content) entries in image XObjects were being ignored.
2348Added support for preblended soft-masked images.
2349Added optional support for using libjpeg to decode DCT (JPEG)
2350 streams.
2351Transparency groups weren't being composited correctly in mono1 mode.
2352Switched to a different IDCT transform in the DCT (JPEG) decoder, to
2353 get better accuracy; the new transform is also a bit faster.
2354Modified 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.
2357Added the maxTileWidth, maxTileHeight, tileCacheSize, and
2358 workerThreads xpdfrc settings.
2359Modified PSOutputDev so it doesn't output resources (fonts, etc.) for
2360 pages that are rasterized (because they use transparency).
2361Added the -alpha flag to pdftopng.
2362Handle TrueType fonts with out-of-bounds loca entries.
2363Optimize consectutive "q" (gsave) operations in PostScript output.
2364Various improvements to the XFA rendering code.
2365Added the -nodiag flag to pdftotext.
2366Switched to cmake instead of autoconf.
2367Look for Widget-type annotations that aren't attached to the
2368 AcroForm, and add them to the AcroForm.
2369Added the "-z" option to pdftohtml.
2370The JPEG 2000 decoder now treats invalid boxes after the image
2371 codestream as non-fatal errors.
2372Improved the handling of drop caps in pdftohtml.
2373Added the "psNeverRasterize" setting.
2374Pdftohtml now converts invisible PDF text to transparent HTML text.
2375Check for zero-width/height bitmaps in the JBIG2 decoder -- these can
2376 happen in corrupted JBIG2 streams.
2377Pdfimages was inverting 1-bit monochrome images.
2378Added CCITTFaxStream::getBlock() to speed up the CCITTFax decoder.
2379Added resolution info to PNG files generated by pdftopng.
2380The DCT decoder now ignores non-Adobe APP14 markers (rather than
2381 generating an error).
2382Regenerate appearance streams for FreeText annotations.
2383The 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.)
2385Added the simple one-column text extraction mode (pdftotext -simple).
2386Added a -cmyk option to pdftoppm to write CMYK PAM files.
2387Modified pdfinfo to output "static XFA" or "dynamic XFA", rather than
2388 just "XFA".
2389Added the "drawFormFields" xpdfrc command.
2390Various performance optimizations in the rasterizer.
2391Fixed the tiling pattern code to avoid stripes between pattern cells,
2392 and to honor the TilingType flag.
2393Always split axial shadings into 256 slices.
2394Handle the case where an optional content block is left open at the
2395 end of a page content stream.
2396Accept code-to-CID-type CMaps as ToUnicode CMaps (to work around buggy
2397 PDF generators).
2398Unicode-to-unicode maps weren't working correctly with fonts that have
2399 an "Identity" encoding.
2400Modify the lexer to interpret "--123.4" as -123.4, "--123" as 0, and
2401 "123-45" as "123" to match Adobe's behavior.
2402The text extractor now reverses the order of side-by-side columns for
2403 right-to-left scripts.
2404Worked on right-to-left script support in pdftohtml (still not
2405 complete).
2406Switched the default display mode to continuous (from single page).
2407Added the "-bom" switch to pdftotext.
2408Share font objects when multiple font tags point to the same object.
2409The transfer function goes before alpha blending in the rasterizer
2410 pipeline.
2411Added the "-allinvisible" switch to pdftohtml.
2412Added overprint mode (OPM) support in Level 3 PostScript output.
2413Added support for DeviceN color spaces in Level 3 PostScript output.
2414Added the "-userunit" option to pdftops.
2415Added the "-raw" and "-list" options to pdfimages.
2416Pdfimages now writes PGM files (instead of PPM files) for DeviceGray
2417 and CalGray images.
2418Added grayscale PostScript output -- added the '-level2gray' and
2419 '-level3gray' switches to pdftops.
2420Fix up Type 1 fonts when embedding in PostScript.
2421Added the "problematic" column to pdffonts output.
2422Generate an appearance stream for signature fields in AcroForms.
2423Correctly handle line dash patterns with zero-length segments when the
2424 line cap is butt or project.
2425Added the "strokeAdjust cad" xpdfrc option; fixed some issues with
2426 stroke adjustment and projecting line caps.
2427Added support for Code128B bar codes in XFA forms.
2428Look at both the ON and OFF arrays in the default OCCD (optional
2429 content config dict), to work around certain broken PDF files.
2430Added support for XFA 'numericEdit' fields.
2431Added support for 'picture' formatting in XFA forms.
2432Added mouseClickN events (in addition to mousePressN and
2433 mouseReleaseN).
2434External CID OpenType CFF fonts should map through Unicode (similarly
2435 to external CID TrueType fonts).
2436Handle axial and radial shadings in SplashOutputDev, in device space.
2437Use the PDF 2.0 inline image length field.
2438Handle duplicate embedded Type 1 font names in PostScript output.
2439Handle 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.
2442If the line dash phase is negative, add a multiple of 2x the total
2443 dash length.
2444Indexed color space indexes should be clipped to [0,hival].
2445Fix the handling of the text render mode with Type 3 fonts, in the
2446 rasterizer and in PostScript output.
2447CID 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.
2449PSOutputDev now converts tiling patterns to PostScript tiling patterns
2450 (in Level 2/3).
2451Fixed a security hole in (uninitialized variables).
2452 This vulnerability was discovered by Kushal Shah of Fortinet's
2453 FortiGuard Labs.
2454Fixed a security hole in (write past end of array).
2455Fixed a security hole with the use of d0/d1 operators outside of a
2456 Type3 CharProc [CVE-2016-9027].
Note: See TracBrowser for help on using the repository browser.