Advertisement
Guest User

Xpdf Tools v4.03 CHANGES

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