home *** CD-ROM | disk | FTP | other *** search
Text File | 2001-07-04 | 117.0 KB | 3,092 lines | [TEXT/ttxt] |
- V4.0.1 (May 18, 2001)
- =====================
-
- Bug fixes and enhancements
- ==========================
-
- - Removed the time-bomb feature of the beta versions which accidentally
- was still present in the release version of PDFlib 4.0.0 (p_basic.c).
-
- - PDF_show_boxed() erroneously returned the value 1 if the text completely
- fit in the box, and the last character was a newline (p_text.c).
-
- - Fixed a bug in the image mask handling which had some interaction with
- the total number of images, and the fact whether or not images had
- been closed and therefore image handles reused (p_image.c).
-
- - Non-interlaced PNG images were erroneously rejected when used as a
- mask (p_image.c).
-
- - Individual strips of separate multi-strip TIFF images could get mixed
- up under certain circumstances when the first image had already been
- closed before placing subsequent images (p_image.c, p_image.h, p_intern.h,
- p_basic.c).
-
- - The values of ascender and descender were wrong for TrueType fonts since
- we picked tab_hhea->ascender instead of tab_OS_2->sTypoAscender
- (p_truetype.c).
-
- - The scope check in PDF_stringwidth2() was too strict (p_text.c).
-
- - /FontName was garbled on EBCDIC platforms, but it's unused anyway (p_font.c).
-
- - Due to a bug in pdf_make_quoted_name() quoted characters in spot color names
- could appear with wrong hex codes (p_util.c).
-
- - Creating and deleting a PDFlib object without any documents created
- resulted in a wrong exception (p_stream.c)
-
- - Implements host encoding support for AS/400 and S/390 (p_util.c, p_font.c,
- p_intern.h)
-
- - Using a CID font caused a crash due to inappropriately freeing static strings
- (p_cid.h)
-
- - EBCDIC and CID encoding were rejected in PDF_show_boxed() even when no box
- justification was requested (width=0 and height=0) (p_text.c).
-
-
- Build process and platform support
- ==================================
-
- - Minor modifications for AIX compatibility (configure.in, tiff/tiff.h).
-
- - AS/400 fine-tuning (p_config.h, several *.c).
-
- - Fixed MVS-related macros (p_config.h)
-
- - Removed unnecessary PHP make targets which caused an error (Makefile.in,
- configure.in)
-
-
- Bindings
- ========
-
- - C:
- - Replaced the deprecated function setrgbcolor() with PDF_setcolor()
- in the pdfclock sample.
-
- - C++:
- - Replaced the deprecated function setrgbcolor() with PDF_setcolor()
- in the pdfclock sample.
-
- - Java:
- - Replaced the deprecated function setrgbcolor() with PDF_setcolor()
- in the pdfclock sample.
-
- - A few mainframe-related fixes in the wrapper code (pdflib_java.c).
-
- - Clear pending exceptions if any of the JNI functions in the initialization
- fails since JNI doesn't allow more than one pending exception.
- (pdflib_java.c).
-
- - Makes the private functions PDF_new() and PDF_delete() in the PDFlib
- Java object synchronized (pdflib.java).
-
- - Modified the internal version of the Java wrapper for use on the
- AS/400 (pdflib_java.c).
-
- - Perl:
- - Replaced the deprecated function PDF_setrgbcolor() with PDF_setcolor().
- in the pdfclock sample.
-
- - PHP:
- - Replaced the deprecated function PDF_setrgbcolor() with PDF_setcolor().
- in the pdfclock sample.
-
- - A required image handle conversion was missing in the wrapper code for
- PDF_open_image_file(), resulting in erroneous error messages when
- trying to mask images (pdf.c).
-
- - Python:
- - Replaced the deprecated function PDF_setrgbcolor() with PDF_setcolor().
- in the pdfclock sample.
-
- - Tcl:
- - Replaced the deprecated function PDF_setrgbcolor() with PDF_setcolor().
- in the pdfclock sample.
-
- - RPG
- - Introduced a new binding for ILE-RPG on the AS/400 (bind/rpg/*).
-
-
- V4.0.0 (April 18, 2001)
- =======================
-
- Bug fixes and enhancements
- ==========================
-
- - Implements a check in PDF_delete() in order to make sure that the caller
- acutally fetched the last chunk of PDF data via PDF_get_buffer()
- (p_intern.h, p_basic.c, p_stream.c).
-
- - Several modifications in the TrueType module (p_truetype.c):
- - Allow TrueType symbol fonts (such as Webdings and Wingdings) to be used
- with "builtin" encoding.
-
- - When font warnings are enabled (default) issue a concise error message
- when a TrueType font file can't be opened or read, or is empty.
-
- - The TrueType module didn't always correctly distinguish between
- exception and error return when a problem with a font was detected.
-
- - Fine-tuned the trace debug facility (several *.c).
-
- - Optimize the underline/overline/strikeout functions for empty text
- strings (p_text.c).
-
- - PDF_continue_text2() didn't correctly deal with a NULL text argument
- under certain conditions, and failed to enter a text block and set
- the text parameters (p_text.c).
-
- - Throw an exception in PDF_show_boxed() if the current font uses CID
- or EBCDIC encoding (p_text.c).
-
- - Change the scope back to object if fopen() fails in PDF_open_file().
- This guards against clients which fail to check the return value of
- PDF_open_file() (p_basic.c).
-
- - PDF_open_image() didn't set the use_raw flag for JPEG- and CCITT-
- compressed images, resulting in bad output filters (p_image.c).
-
- - Implements hooks for fetching encoding definitions from the host system
- (p_font.c, p_util.c).
-
- - Modifies the error handling machinery so that the error handler is never
- called with a NULL PDF pointer, even when the initial PDF allocation in
- PDF_new2() goes wrong. This way error handlers installed by the client
- are guaranteed to have access to thread- or object-specific data in all
- cases (p_basic.c).
-
-
- Build process and platform support
- ==================================
-
- - Adjusts more language bindings to Mac OS X (see below).
-
- - Disable the PHP binding if an external library was configured (configure.in).
-
- - Moves an inherited LDFLAGS variable to the front of EXTERNALLIBS in order
- to make external -L paths work (configure.in).
-
- - Installs the pdflib-config script to make it more useful (Makefile.in).
-
- - Extends the pdflib-config script to include auxiliary information such
- as PDFlib's install path, binding information, PDI existence, and a summary
- (pdflib-config.in).
-
- - AS/400 portability mods and support for more compile-time code pages
- (p_stream.c, p_config.h).
-
- - More MVS portability fixes (p_config.h tiff/port.h).
-
- - Change the libtool version number to 2:0:1 in order to somehow fix the bug
- in 3.03 which incorrectly increased the age entry (configure.in).
-
-
- Bindings
- ========
-
- - Perl:
- - Always call PDF_delete() in the error handler since the PDF pointer is now
- guaranteed to be different from NULL (pdflib_pl.c).
-
- - Removed -lm for $PERLLINK on HP-UX (configure.in).
-
- - PHP:
- - Cleans up the configure machinery which no longer must check for the
- presence of any auxiliary library (config.m4).
-
- - Python:
- - Always call PDF_delete() in the error handler since the PDF pointer is now
- guaranteed to be different from NULL (pdflib_py.c).
-
- - Introduces a hack for renaming the Python wrapper library on Mac OS X from
- libpdflib_py.dylib to pdflib_py.so(!), which apparently is what Python
- expects (Makefile.in).
-
- - Tcl:
- - Removed the pkgIndex.tcl Makefile target and rule because we no longer
- must build the index file dynamically (Makefile.in).
-
- - Introduces a hack for renaming the Tcl wrapper library on Mac OS X from
- libpdflib_tcl.dylib to pdflib_tcl.dylib (Makefile.in).
-
-
-
- V4.0.0beta3 quick fix (April 9, 2001)
- =====================================
-
- Bug fixes and enhancements
- ==========================
-
- - Add /Matrix and /FormType entries to the form xobjects dictionary.
- Although these are not required according to the PDF reference (new edition),
- they _are_ required according to the PDF reference (old edition) and -- more
- importantly -- by several PDF consumers such as Ghostscript, some
- Adobe RIPs, and the PostScript output of Acrobat 4.0 (but not 4.05).
- (p_template.c, pdi.c).
-
-
-
- V4.0.0beta3 (April 5, 2001)
- ===========================
-
- Bug fixes and enhancements
- ==========================
-
- - Consistently use the Windows API name for TrueType fonts, regardless of
- whether they have been read from file or retrieved from the host system
- (p_truetype.c).
-
- - TrueType symbol fonts couldn't be used (p_truetype.c).
-
- - Implements support for flate-compressed TIFF images (p_tiff.c, tiff/*.c).
-
- - Start a new text block when a font set if we are not currently in a text
- block. This seems to be required by some Adobe RIPs and some third-party
- PDF consumers, although explicitly allowed in the PDF reference (p_font.c).
-
- - Throws an exception when the PDF document is empty (p_basic.c).
-
- - Fixed a memory overwrite in XObjects handling (p_image.c).
-
- - Fixed several memory leaks in the PNG module, and dropped support
- for libpng versions older than 0.88 (p_png.c).
-
- - Changes the PNG handler so that we can process simple PNG images even
- without libpng attached (p_png.c).
-
- - Resources were dropped between documents, meaning that for example
- fonts had to be configured again and again for multiple output documents
- with the same PDFlib instance (p_basic.c).
-
- - Reworked parameter handling, and introduced a new table for important
- parameter properties such as the scope (p_params.c, p_params.h).
-
- - Updated the utility for converting font metrics to a C header file
- (util/compile_metrics.c).
-
- - Regenerated the built-in metrics for the core fonts with the following
- changes (p_metrics.h):
- - Uses the new Adobe AFMs as input which have minor changes.
- - Correctly use the width of the space character for all undefined
- characters instead of the fixed value 250.
- - Uses the current encoding definitions, which had a few updates.
- - Generate more tense output.
-
- - Modified the getopt() stuff for easier building the demo clients on
- Windows (clients/*.c).
-
- - Fixed a memory leak in the GIF reader when the requested file couldn't
- be opened (p_gif.c).
-
- - Fixed memory leaks in the font engine, related to TrueType fonts and
- the builtin core fonts (p_font.c, p_truetype.c).
-
- - The default for floating point output accuracy (3) was too small,
- as evidenced by the pdfclock example. Increased to 4 (p_basic.c).
-
- - Fixed a nasty bug in pdf_compress_init(): due to missing initialization
- importing PDF pages on an otherwise empty page could result in a crash
- on some platforms (p_stream.c).
-
-
- Build process and platform support
- ==================================
-
- - Changes a few details for better MVS support.
-
- - Updates the Mac project files including support for the language
- bindings (*.mcp).
-
- - Updated the project files for Borland C++ Builder (*.brp, *.bpf).
-
- - Consolidated the predefined encodings into a single header file
- (p_encoding.h).
-
- - Improved portability in code and build process for a number of Unix
- platforms.
-
- - Replaced the GIF test image with a new one (test/machine.gif).
-
- - Statically links all C samples and demo programs (*/Makefile.in,
- configure.in).
-
-
- Bindings
- ========
-
- - C:
- - Changes all clients to return 0 from the main program (*.c).
-
- - Runs the tests without libtool since we link statically (Makefile.in).
-
- - C++:
- - Adds typedefs to support the notion that all functions which are
- passed to PDFlib must be pure C (as opposed to C++) functions (pdflib.h,
- pdflib.hpp, pdflib.cpp).
-
- - Runs the tests without libtool since we link statically (Makefile.in).
-
- - Drops support for the Watcom compiler (pdflib.hpp, pdflib.cpp).
-
- - Changes namespace handling for non-gcc compilers (configure.in).
-
- - Adds casts to pacify the Sun compiler (image.cpp, personalize.cpp).
-
- - Java:
- - Adds a hack for Mac OS X to help the test and install process run even
- though OS X has its own idea of JNI library naming conventions
- (Makefile.in).
-
- - Perl:
- - Runs the tests without libtool since we supply -I options (Makefile.in).
-
- - Adds -lm (or equivalent) to the list of libraries against which the
- Perl wrapper is linked. This is required, for example, for some builds
- of Perl on Solaris (configure.in).
-
- - PHP:
- - Fixed a crash which was caused by a typo in the PDI memory functions.
-
- - Adds documentation on the PHP/PDFlib build process (readme.txt).
-
- - Python:
- - Fixes a systematic bug in all wrappers for the new 4.0 functions
- (pdflib_py.c, pdflib/pdflib.i).
-
- - Adds PDI examples (personalize.py, quickreference.py).
-
- - Tcl:
- - Renames the Tcl/PDFlib wrapper library on the Mac to pdflib_tcl.shlb,
- which is the name returned by Tcl's [info sharedlibextension] command
- (*.mcp).
-
-
- V4.0.0 beta2 (March 23, 2001)
- =============================
-
- Bug fixes and enhancements
- ==========================
-
- - Removes all attempts to "repair" the file if API calls are incomplete,
- or in bad order. This greatly simplifies cleanup in case of errors.
-
- - Fully implements a scoping system which enforces the scoping rules
- documented in the manual. This may break clients which do not adhere
- to the scoping rules, but got away with the old implementation,
- potentially producing bad PDF output (pdflib/*.c, p_intern.h).
-
- - The "imagewidth" and "imageheight" parameters are now supported for
- templates, too (p_template.c).
-
- - Implements custom memory handlers for libpng and tifflib (png/pngmem.c,
- pdflib/p_png.c, pdflib/p_tiff.c).
-
- - Relaxed the encoding check for AFM files since so many AFM files
- out there are just plain wrong (mostly those generated by Fontographer
- (p_afm.c).
-
- - Improves the Unicode bookmark samples so that they work correctly on
- EBCDIC platforms (pdftest.c).
-
- - Implements pdf_vsprintf() which does the "right thing" for all kinds
- of formatted PDF output. In addition, we finally get rid of cursed NLS
- (pdflib/*.c, pdi/*.c).
-
- - Moved the PDI dummy functions to p_template.c, and removed p_pdi.c from
- the distribution fileset.
-
- - Delays resource cleanup until PDF_delete() (instead of PDF_close()) in
- order to keep configuration information across PDF output documents
- (p_basic.c).
-
- - Implements a real tree structure for the /Pages tree instead of a linear
- array. This greatly improves Acrobat's performance when navigating
- _very_ large documents (p_basic.c, p_intern.h).
-
- - Fixes a problem related to TrueType font names which resulted in
- bad font cache misses due to internal name mismatches. We cured this
- by storing the PostScript name of a TrueType font separately (name
- table entry 6. The fullName field is used for this since fullName was
- unused anyway (p_font.h, p_font.c, p_truetype.c, p_afm.c, p_pfm.c,
- p_metrics.h, util/compile_metrics.c).
-
- - pdflib.upr was loaded to early. This especially affected host fonts
- where no upr file is required, but an exception was thrown nevertheless
- (p_util.c).
-
- - Added "CharacterSet" to the list of recognized AFM keywords (p_afm.c).
-
- - Modifies the TrueType parser to gracefully deal with Unicode-based
- Mac fonts, although these are not yet supported (p_truetype.c).
-
- - Replaces the core 14 AFM files with newer versions which cover the
- ExtendedRoman character set (315 instead of 229 glyphs), and are therefore
- better suited for PDFlib's powerful encoding machinery (fonts/*.afm).
-
- - Changed the accuracy of imagewidth and imageheight from int to float
- to account for imported PDF pages and templates (p_image.h, p_tiff.c,
- p_ccitt.c, p_jpeg.c, p_gif.c, p_image.c, p_template.c).
-
-
- Build process and platform support
- ==================================
-
- - Supports local (uninstalled) static versions of the auxiliary libraries
- via the LDFLAGS environment variable (configure.in).
-
- - A variety of portability fixes in the auxiliary libraries (tiff/*,
- png/*, flate/*) plus a few more in PDFlib (pdflib/*).
-
- - Modifies the MSVC++ project files for the new library structure (*.dsw,
- *.dsp).
-
- - Brings the CodeWarrior project file for Mac up to date (PDFlib.mcp).
-
- - Several bug fixes and improvements in the configure machinery
- (configure.in, pdflib-config.in, */Makefile.in).
-
-
- Bindings
- ========
-
- Java:
- - show_boxed didn't correctly retrieve its text argument as a
- Unicode string, resulting in wrong output for non-Latin-1 characters
- (pdflib_java.c).
-
- - stringwidth() didn't retrieve its text argument as a Unicode string
- (pdflib_java.c).
-
- Tcl:
- - Fully implements the use of Tcl's stub feature which allows us to
- use a single library with different Tcl versions (pdflib_tcl.c).
-
- - Modifies the index file so that it no longer requires the library
- name and the list of function names (pkgIndex.tcl).
-
- - PDF_show_boxed didn't correctly retrieve its text argument as a
- Unicode string, resulting in wrong output for non-ASCII characters
- (pdflib_tcl.c).
-
- - PDF_stringwidth() didn't retrieve its text argument as a Unicode string
- (pdflib_tcl.c).
-
-
- V4.0.0 beta1 (March 02, 2001)
- =============================
-
- New features
- ============
-
- - Implements support for the pattern color space (p_pattern.c, p_intern.h,
- p_basic.c, pdflib.h).
-
- - Adds support for spot color (p_color.c, p_intern.h, pdflib.h).
-
- - Adds a hook for attaching the PDF import library PDI (p_pdi.c).
-
- - Adds Unicode handling for TrueType and PostScript fonts (p_unicode.c,
- p_font.c, p_truetype.c).
-
- - Implements new parameters:
- major/minor/revision/version
- pdi
- pdiwarning
- CropBox/llx/lly/urx/ury
- BleedBox/llx/lly/urx/ury
- TrimBox/llx/lly/urx/ury
- ArtBox/llx/lly/urx/ury
-
-
- Bug fixes and enhancements
- ==========================
-
- - Major restructuring in order to better localize data types and
- related functions (most *.c and *.h).
-
- - Fixed a bug in the MacRoman encoding table: guilsinglleft and guilsinglright
- had a letter missing in their name. Since we never write MacRomanEncoding
- explicitly, the characters were available, but their widths were retrieved
- wrongly from an AFM file (e_macroman.h).
-
- - Added the missing Euro glyph to the cp1250 encoding table (cp1250.enc).
-
-
- Build process and platform support
- ==================================
-
- - Changes the library file name suffix for Mac OS X server (Rhapsody)
- from .so to .dylib (config/ltconfig).
-
- - Integrated zlib into the PDFlib distribution, configure, and make process,
- including a libtool-based Makefile. Similarly for parts of libpng and
- libtiff (configure.in, */Makefile.in, tiff/*, png/*, flate/*).
-
- - The search for Python's shared lib path could result in multi-line
- output under certain circumstances. We work around this with more
- sophisticated filtering of Python's sys.path, contributed by a user
- (configure.in).
-
-
- Distribution
- ============
-
- - Adds the Lucidux Sans PostScript font as a sample (fonts/lcdxsr.*).
-
- - Adds code page definitions for all ISO 8859 flavors and Windows 125X
- code pages (fonts/*.cpg).
-
- - Adds a PDI demo client in C (pdfimpose.c), and the quick reference
- and personalize demos for all supported language bindings.
-
- - Adds a few user-contributed improvements to the image client (pdfimage.c).
-
- - Removes config/pdflib.m4 since it is no longer required.
-
-
- Bindings
- ========
-
- PHP:
- - Adds a supported language binding for PHP (bind/php/*).
-
- Java:
- - Introduces PDF_VOLATILE in order to prevent scores of compiler
- warnings when building the wrapper (pdflib_java.c).
-
- Perl:
- - Introduces PDF_VOLATILE in order to prevent scores of compiler
- warnings when building the wrapper (pdflib_pl.c).
-
- Python:
- - Introduces PDF_VOLATILE in order to prevent scores of compiler
- warnings when building the wrapper (pdflib_py.c).
-
- Tcl:
- - Implements an initialization function to make the PDFlib extension
- work with safe builds of the Tcl interpreter (pdflib_tcl.c).
-
- - Introduces PDF_VOLATILE in order to prevent scores of compiler
- warnings when building the wrapper (pdflib_tcl.c).
-
-
- V3.5.0 (February 01, 2001)
- ==========================
-
- This version has only been released to a few customers.
-
-
- New features
- ============
-
- - Makes the CMYK functions supported API members (p_color.c).
-
- - Makes PDF_arcn() a supported API function (p_draw.c).
-
- - Makes PDF_add_thumbnail() a supported API function (p_draw.c).
-
- - Implements the template feature (p_image.c, p_template.c, p_intern.h,
- p_basic.c, p_text.c, pdflib.h, Makefile.in).
-
- - Implements TrueType font support (p_font.c, p_afm.c, p_pfm.c, p_font.h,
- p_util.c, p_basic.c, p_truetype.c, p_truetype.h, p_intern.h, p_cid.h,
- p_metrics.h, Makefile.in).
-
-
- Bug fixes and enhancements
- ==========================
-
- - PDF_open_mem() didn't work due to a typo (p_basic.c).
-
- - PDF_set_parameter(p, "flush", "none") didn't work due to a typo (p_basic.c).
-
-
- Build process, distribution, and platform support
- =================================================
-
- - Improvements for Mac OS X:
- - Makes libtool generate shared libraries (.dylib) on Mac OS X (ltconfig,
- ltmain.sh).
-
-
- Distribution
- ============
-
- - Introduces the new major.minor.revision version numbering scheme
- (many files).
-
-
- Bindings
- ========
-
- Java:
- - Makes the Java wrapper compatible with Mac OS X (pdflib_java.c).
-
-
- Tcl:
- - Configure now finds the Tcl header on Mac OS X (configure.in).
-
-
- V3.03 (December 22, 2000)
- =========================
-
- Bug fixes and enhancements
- ==========================
-
- - Contrary to the documentation, a == sequence in the UPR file didn't
- guarantee absolute file names (no directory prefix applied) if a
- prefix has been set using PDF_set_parameter(). This especially affected
- the ActiveX edition where the wrapper always set a prefix, and
- absolute resource names couldn't effecitvely be used. Similarly,
- the "==" syntax now works with when resources are set dynamically via
- PDF_set_parameter(). (p_util.c, p_basic.c).
-
- - Makes the JPEG reader more robust against damaged files (p_jpeg.c).
-
- - Implements an option in the image converter for printing details
- for damaged image files (clients/pdfimage.c).
-
- - Implements PDF_get_value() for the following parameters:
- leading, textrise, horizscaling, textrendering, charspacing, wordspacing.
- Implements PDF_get_parameter() for the following parameters:
- overline, underline, strikeout.
-
- - Reworks implementation and documentation of PDF_arc(), and fine-tunes
- several other graphics functions in the process (p_draw.c):
- - Re-implements the algorithm for cutting down arcs into smaller
- segments. This fixes a number of subtle bugs with certain parameter
- combinations, and introduces clearer documentation for all cases,
- including degenerate ones.
-
- - Defines the magic arc variable for the PDF_circle() algorithm
- with 8 instead of 4 decimal places in order to increase the
- accuracy (p_draw.c).
-
- - Introduces clear semantics for the behaviour of PDF_arc() and
- other functions when a current point is available, and when no
- current point has previously been set.
-
- - Introduces a (currently unsupported) PDF_arcn() function for
- drawing arcs in clockwise direction.
-
- - Removes the clearing loop for debug flags in PDF_new2() since the
- memset() for the PDF structure clears those anyway (p_basic.c).
-
- - Fixes subtle bugs in the text handling (p_text.c):
- - The combination of word or character spacing != 0 and underline/
- overline/strikeout text resulted in wrong text positioning.
-
- - After PDF_show_boxed() the call PDF_get_value("texty",0) returned
- a vertical position which was one line too high under the same
- circumstances as above.
-
- - Allows the external and internal data types for floating point
- calculations to be redefined via a #define. This is intended for
- applications which require improved accuracy, and not supported in the
- general case due to platform and binary compatibility issues (pdflib.h).
-
- - Implements a check to make sure that PDF_save() and PDF_restore() calls
- are balanced at the end of a page (p_basic.).
-
- - Removed the SWIG preprocessor conditionals since we don't use SWIG
- any more (pdflib.h).
-
- - Fixes a bug in PDFlib's object machinery, related to PDF page object
- numbers. Fortunately, the bug occurred only under very rare and subtle
- circumstances, but was severe nevertheless because it resulted in
- damaged PDF output, and erroneous "allocated but not used" messages
- (p_basic.c).
-
- - Changes the output accuracy of floating point numbers from four to
- six decimal places. This slightly affects output file size, but was
- necessary to defeat some accuracy problems. For example, stitching
- individual stripes of striped TIFF images could lead to visual
- artifacts in Acrobat (p_util.c).
-
- - Corrected a typo in the error message for bad page sizes with Acrobat
- 4 compatibility (p_basic.c).
-
- - Implements support for setting the document's base URI (p_intern.h,
- p_basic.c).
-
- - Changes the PNG error handling in order to make it source- and binary-
- compatible with libpng 1.08. and 1.1 (p_png.c).
-
- - Fixes two problems in PDF_show_boxed() (p_text.c):
- - Certain forced line breaks could cause a single character to disappear.
- - Forced line breaks could cause the preceding line to be ragged even
- in "justify" or "fulljustify" mode.
-
- - Improves TIFF handling:
- - Does no longer throw an exception if the imagewarning parameter is
- set to true, and the requested image number in a multi-page TIFF can
- not be retrieved (p_tiff.c).
-
- - Moves an increment operator outside a function call because the
- variable has been used as function parameter twice. This is not
- portable because the order of parameter evaluation is platform-
- dependent. The Compaq True64 compiler correctly spotted this (p_tiff.c).
-
- - Rejects TIFF images with a color depth other than 1, 2, 4, or 8 bits
- per sample since other values are not supported by PDF (p_tiff.c).
-
- - Changed the parameter handling for CCITT G3-compressed TIFF images,
- preventing "Read less image data than expected" messages in Acrobat
- (p_tiff.c).
-
- - Failure of the TIFF library to read an image file could result in a
- crash (p_tiff.c).
-
- - Made the AFM parser stricter in checking the 'StartCharMetrics' entry
- against the actual number of character entries in the file. This
- makes PDFlib more robust in case of bad AFMs, but may result in
- AFMs being rejected which previously have been accepted (p_afm.c).
-
- - Implements support for an arbitrary number of user-defined document
- information fields (p_hyper.c, p_intern.h).
-
- - The allowed range in the encoding parser was wrong, and must be 0-255
- instead of 1-256 (p_util.c).
-
- - Changed two entries in the Latin 2 encoding file since Adobe fonts
- use the character names T/tcommaaccent instead of T/tcedilla
- (fonts/iso8859-2.enc).
-
- - Adds unsupported code for generating the Crop, Bleed, Trim, and
- Art boxes in addition to the MediaBox. Later these will be adjustable
- by the client (p_intern.h, p_basic.c).
-
- - Prevents multiple PDF_open_*() calls without a matching PDF_close()
- (p_basic.c).
-
- - Referenced images were lacking an endobj token at the end of their
- (empty) data section (p_image.c).
-
- - Prevents the use of flush points from language bindings other than
- C or C++ (p_basic.c).
-
- - Two format strings for error messages were wrong in PDF_get_parameter()
- (p_basic.c).
-
- - Issue a NonfatalError when the obsolete function PDF_endpath() is
- called (p_draw.c).
-
- - Calling PDF_get_parameter(p, "resy", image) with an invalid image
- parameter resulted in a crash. Ironically, the crash occurred due to
- a malformed argument when the error message was formatted (p_basic.c).
-
- - The test program accidentally set the embedding parameter in several
- samples to 1 instead of 0 (pdftest.c).
-
- - Implements the "fontwarning" parameter. The default value is "true";
- setting it to "false" makes PDF_findfont() return -1 instead of throwing
- an exception (p_basic.c, p_font.c, p_util.c, p_intern.h).
-
- - Using PDF_findfont() before a document has been opened now results
- in a RuntimeError (p_font.c).
-
- - Implements a thumbnail hook for a customer. However, this hook is
- not available in the general version, and not yet supported in
- language bindings other than C (p_image.c).
-
- - Allows the base 14 fonts to be embedded (p_fonts.c).
-
- - Documents and implements the fact that /Producer and /CreationDate
- are not allowed as user-defined info keys (p_hyper.c).
-
- - Ensures that PDF_setfont() and PDF_stringwidth()/PDF_stringwidth2()
- cannot be called outside of page descriptions (p_text.c, p_font.c).
-
- - Safeguards against internal attempts at malloc()'ing 0 bytes (p_basic.c).
-
- - Fixes a number of EBCDIC-related bugs:
- - The description and author fields in PDF_attach_file() haven't been
- properly converted to PDFDocEncoding (p_annots.c).
-
- - PFA font files were treated wrongly (p_font.c).
-
- - PFM metrics file handling didn't work (p_pfm.c).
-
- - The "ebcdic" value of the encoding enum was wrong. This resulted in the
- compiled-in metrics not being found on native EBCDIC platforms
- (p_intern.h).
-
- - The debug array in the PDF struct was too small for use with
- control characters from the EBCDIC character set (p_intern.h).
-
- - The test for compilation on EBCDIC platforms didn't work reliably
- (p_config.h).
-
- - Introduces a flavor of the poem text where German special characters
- are encoded for EBCDIC (pdftest.c).
-
- - The Unicode sample for document info entries was defined too ASCII-
- centric in the demo program, and produced bad results (pdftest.c).
-
- - Fixes a typo in the unsupported CMYK functions (p_color.c).
-
- - Fixes the compile_metrics utility which was broken (util/compile_metrics.c).
-
- - Font metrics read in from a PFM file caused a memory leak. The function
- pdf_cleanup_font_struct() now works with all types of fonts, and is
- also called for fonts read in from PFM files (p_font.c, p_afm.c, p_intern.h).
-
-
- Build process, distribution, and platform support
- =================================================
-
- - Fixes a few configure buglets, and adds a new option (configure.in):
- - The --disable-cxx and --enable-cxx=no options didn't work;
-
- - The --disable-shared-pdflib and --enable-shared-pdflib=no options
- didn't work;
-
- - Implements --enable-profile.
-
- - Modifies "make install" in the pdflib subdirectory to do different
- things with the static vs. shared library (pdflib/Makefile.in).
-
- - Added an encoding file for Windows code page 1250 (central european)
- (fonts/cp1250.enc, fonts/pdflib.upr), and changes T/tcedilla to
- T/tcommaaccent in order to match Adobe conventions (fonts/iso8859-2.enc).
-
- - Enhancements for MacOS X server/Rhapsody 5.6/Darwin (configure.in).
- Set with_gnu_ld=yes which is required for GNU libtool (not to be
- confused with Apple's libtool).
-
- - S/390 enhancements:
- - Adds a new branch for shared library/DLL options on the S/390 in
- the libtool database (ltconfig).
-
- - Patches the libtool input for EBCDIC compatibility, and moves the
- source file names in compiler commands to the end for c89 (ltmain.sh).
-
- - Introduces a dedicated distribution kit for S/390, which has all
- text files converted to EBCDIC already (Makefile.in).
-
- - Uses compress instead of gzip for the S/390 distribution (Makefile.in).
-
- - Removes the PDF_PLATFORM since it is now supplied by the configure
- script (p_config.h).
-
- - Adds -DOS390 to the compiler options if appropriate, and sets the CC
- and LD variables (configure.in).
-
- - Changes a test for OS/2 in order to not catch S/390 (pdflib.h).
-
- - Introduces a compile-time switch to distinguish between Unix System
- Services and MVS on the S/390 (p_config.h, p_util.c).
-
- - Installing the static C library didn't work due to a typo
- (pdflib/Makefile.in).
-
-
- Bindings
- ========
-
- - Added a call to PDF_close_image() in the image samples for all language
- bindings (bind/*/image.*).
-
- - C++:
- - Implements unsupported wrapper functions for the CMYK functions
- (pdflib.hpp, pdflib.cpp).
-
- - Java:
- - Adds information on building the Java wrapper on S/390 (readme.txt).
-
- - Adds information about Apple WebObjects (readme.txt).
-
- - Adds information about J2EE and Apache JServ deployment (readme.txt).
-
- - Adds the JNI header path for MacOS X server (configure.in).
-
- - Adds the JNI header path for S/390 (configure.in).
-
- - Searches $JAVAINCLUDE/mvs for machine-dependent JNI headers (configure.in).
-
- - Makes the Java wrapper EBCDIC-safe, and implements changes required
- for the JNI on S/390 (pdflib_java.c).
-
- - Perl:
- - Searches for Perl 5.7.0 (configure.in).
-
- - Sets the standard output to binary mode in the CGI sample
- (pdfclock.pl.cgi).
-
- - Python:
- - Includes an "oldpython" configuration to build the PDFlib extension
- for Python < 2.0 on Windows (Python.dsp). PDFlib binaries for Python
- 1.x and 2.0 are included in the Windows binary distribution.
-
- - Updates the configure script for Python 2.0 (configure.in).
-
- - Tcl:
- - Searches for Tcl 8.4 (configure.in).
-
-
- Documentation
- =============
-
- - Splits the manual in an ActiveX edition and another one for all
- other language bindings (doc/PDFlib-manual.pdf).
-
- - Improved the form fields in the PDFlib order form (PDFlib-purchase-order.pdf).
-
- - Documents a workaround for problems when viewing the PDFlib purchase
- order form with Acrobat Reader on Unix/Linux (doc/readme_unix.txt).
-
- - Adds ColdFusion examples and documentation to the ActiveX edition.
-
-
-
- V3.02 (August 22, 2000)
- =======================
-
-
- Bug fixes and enhancements
- ==========================
-
- - Added state checks to the text functions (p_text.c).
-
- - Refined the error handling in PDF_open_image (p_basic.c, p_image.c).
-
- - Deactivated the default prefix entry in the UPR file because it could
- cause confusion with the ActiveX edition (pdflib.upr).
-
- - Multi-strip TIFF images didn't work correctly when placed with a scaling
- factor != 1 (p_image.c).
-
- - Implements a macro which aids in overcoming differences in libpng
- versions when it comes to accessing the setjmp buffer (p_png.c).
-
- - Fine-tuned the OS/2 test in p_config.h.
-
- - Allow negative box width and height in PDF_show_boxed() (p_text.c).
-
- - Added the debug version of the C runtime library to the debug configuration
- of the MSVC test and pdflib projects (test/test.dsp, pdflib/pdflib.dsp).
-
- - Under certain circumstances the GIF reader didn't work correctly due to
- missing variable initialization (p_gif.c).
-
- - pdftest.c couldn't be compiled in strict ANSI mode by some compilers due to
- two misplaced statements (which actually only serve as warning preventers)
- (pdftest.c).
-
- - Added an #if conditional because the Intel version of the Metrowerks compiler
- doesn't have setmode() (p_basic.c).
-
- - PDF_open_fp() resulted in a crash or PDFlib exception because the file pointer
- got overwritten due to wrong initialization order (p_basic.c).
-
-
- Build process, distribution, and platform support
- =================================================
-
- - Adds more AS/400 relevant information (doc/readme_ebcdic.txt).
-
- - Includes the files in the fonts directory in the binary distributions.
-
- - Extended the CodeWarrior project file for dual use on both Mac and
- Windows, and updated to CodeWarrior Pro 5 (PDFlib.mcp).
-
- - Fine-tuned support for S/390 (p_config.h, p_util.c).
-
- - Removed an obsolete file (pdflib/makefile.bcc).
-
-
- Bindings
- ========
-
- - C:
- - PDF_delete() was missing from two C samples (hello.c, image.c) and
- a demo client (clients/text2pdf.c);
-
- - Java:
- - No longer calls PDF_delete() in the Java exception generating mechanism
- since this may lead to multiple calls due to interference with PDFlib's
- finalize() method. This should fix long-standing problems with
- exceptions in some Java environments, especially Servlet engines
- (pdflib_java.c).
-
- - Adds a classFinalize() method (pdflib.java).
-
- - Adds throws clauses to all PDFlib Java and native methods. This change
- required the addition of an import statement (pdflib.java).
-
- - Adds throws clauses to all examples.
-
- - Renames the Java servlet example to PDFlibServlet.java.
-
- - Adds notes on using PDFlib with IBM WebSphere Application server
- and Allaire JRun (bind/java/readme.txt).
-
-
- Documentation
- =============
-
- - Marks PDF_endpath() as deprecated (pdflib.h).
-
- - Replaced the order form with an interactive version
- (doc/PDFlib-purchase-order.pdf).
-
-
- V3.01 (July 1, 2000)
- =====================
-
- New features and API
- ====================
-
- This release is binary-compatible to 3.0, but adds a few new features
- which are accessible through additional parameters to existing functions:
-
- - Implements the "fontencoding" parameter for retrieving the encoding of the
- current font (p_basic.c, p_font.c).
-
- - Implements "blind" mode in PDF_show_boxed() in order to check whether or not a
- string fits in a given box (p_text.c).
-
- - Adds support for multipage TIFF images via the "page" parameter
- of PDF_open_image_file() (p_tiff.c).
-
- - Implements pass-through mode for a variety of TIFF compression schemes.
- Compressed image data is no longer decompressed and recompressed, resulting
- in much faster TIFF procecessing. Correctly dealing with multi-strip images
- required rewriting parts of the image machinery (p_tiff.c, p_image.c,
- p_intern.h).
-
- - Adds support for CMYK TIFF images (p_tiff.c).
-
- - Implements pass-through mode in the GIF handler. This results in much faster
- GIF processing, but unfortunately restricts the number of supported GIF flavors
- to 8-bit, non-interlaced. As a side effect, this decreases the memory footprint
- of each PDF instance by more than 64 KB (p_gif.c, p_intern.h).
-
- - Implements the "openmode" parameter for setting the initial
- display of bookmarks, thumbnails, or fullscreen mode (p_intern.h,
- p_basic.c, p_hyper.c).
-
- - Implements the "bookmarkdest" parameter which allows changing the
- destination view of individual bookmarks (p_intern.h, p_hyper.c,
- p_basic.c).
-
- - Implements the "imagewarning" parameter which allows the client to get more
- detailed information about why PDF_open_image_file() or PDF_open_CCITT() failed
- (p_basic.c, p_jpeg.c, p_gif.c, p_tiff.c, p_png.c, p_ccitt.c).
-
-
- Bug fixes and enhancements
- ==========================
-
- - Outputs \r and \n in strings with a preceding backslash which seems to be
- required for proper handling of linebreaks in annotations (p_text.c).
-
- - Eliminate the exception caused by unknown category entries in the resource
- files.
- This behavior caused unnecessary exception when UPR files were created with the
- makepsres utility (p_util.c).
-
- - Implements an unsupported "memory32" mode for 32-bit aligned memory images in
- PDF_open_image() (p_image.c).
-
- - Negative horizontal scaling was taken into account for the underline/overline/
- strikeout distance from the baseline including its sign, which is wrong
- (p_text.c).
-
- - Increased several of the initial allocation chunk sizes since we saved 64K by
- the rewrite of the GIF module (p_intern.h).
-
- - Uses pdf_end_path() more efficiently in PDF_endpath() (p_draw.c).
-
- - After an image was rejected the next image could suffer from left-over
- information from the rejected image since proper initialization was missing
- (p_image.c).
-
- - Allows the compression level to be changed within a page description
- (p_basic.c).
-
- - Removed the warning about page sizes which are incompatible to Acrobat 3
- which was issued by default when a page was too large or too small. Now
- a RuntimeError is generated only in Acrobat 3 compatibility mode (p_basic.c).
-
- - PDF_close() closed the file handle even if it was provided by the client
- through PDF_open_fp() which is a bad attitude towards clients (p_basic.c).
-
- - PDF_open_mem() was broken: it provoked a wrong error message due to missing
- initialization (p_basic.).
-
- - Removed a number of obsolete functions which were no longer supported in
- PDFlib 3.0 but still available (p_jpeg.c, p_gif.c, p_tiff.c, p_gstate.c,
- p_text.c, p_hyper.c, pdflib.h, p_intern.h, p_basic.c,
- bind/[perl|tcl|python]/pdflib_*.c).
-
- - PDF_add_note interprets an empty icon parameter equivalent to a NULL value
- (p_annots.c).
-
- - Setting the transition parameter to an empty string is now equivalent to
- a NULL string value, and resets the transition to default (p_hyper.c).
-
- - Replaces the GIF test image with a non-interlaced version (test/pdflib.gif).
-
- - Eliminates a superfluous moveto in PDF_arc() when the current point and the
- starting point of the arc coincide. The redundant moveto broke subsequent
- closepath and fill behaviors (p_draw.c).
-
- - Changed several hex characters in strings to octal notation (pdftest.c).
-
- - Added a few casts to satisfy C++ compilers (p_font.c, p_pfm.c).
-
- - Re-implements PDF_set_text_matrix(), which is currently neither documented in
- the manual nor supported (p_text.c, pdflib.h).
-
- - Adds the "nativeunicode" parameter to Unicode-aware language wrappers in order
- to disable native Unicode processing. The default value is false (p_basic.c).
-
- - The "defined" preprocessor instruction was missing for the __BORLANDC__
- identifier (p_config.h).
-
- - Safeguards the interpretation of encoding and UPR files on Unix from
- Windows-style lineends (p_util.c).
-
- - An infinite loop could result when trying to attach a non-existent
- file with PDF_attach_file (p_basic.c).
-
- - The return type of PDF_get_buffer() was missing a const qualifier
- (pdflib.h, p_basic.c).
-
- - Separates the generation of a multi-threaded test program from the
- WIN32 environment in order to simplify building non-threaded tests
- with non-MS compilers (test/pdftest.c).
-
- - Removes several warnings about redundant variable assignments which
- were uncovered by the Borland compiler (p_afm.c, p_basic.c, p_draw.c,
- p_filter.c, p_font.c, p_jpeg.c, p_pfm.c, p_util.c, test/pdftest.c).
-
- - PDF_get_value() could crash when called with bad parameters. Ironically,
- the crash was not caused by the bad parameters but by a bug in the
- error message complaining about the bad parameters (p_basic.c).
-
- - PDF_setfont() and PDF_stringwidth2() now accept negative font sizes.
- The horizontal scaling factor may now also be negative.
- The underline/overline/strikeout functions use the absolute value
- of the calculated line width to ensure that the line width will be
- positive (p_font.c, p_text.c).
-
- - Changed the name of the "byte" typedef to "pdf_byte" (p_intern.h, many *.c).
-
- - Changed the default encoding in text2pdf.c from "winansi" to "host",
- and adds a command line option for the text encoding (pdftest.c).
-
- - The formula for calculating Bezier control points for the arc
- approximation gave wrong results due to a missing cast (!) in the
- C expression, resulting in ugly circle segments for certain parameter
- combinations (p_draw.c).
-
- - The vertical start position of the text line could be reset to 0 if graphics
- operators were issued between the PDF_show_xy and PDF_continue_text()
- calls (p_text.c).
-
- - Text output could be positioned one line too high if the character
- or word spacing was set != 0 because the leading value was not
- set correctly in PDF_show() and PDF_show_xy(). This bug also affected
- the horizontal positioning of PDF_show_boxed() (p_text.c).
-
- - PDF_continue_text now honors empty strings, i.e., moves to the start
- of the next line if the supplied string is empty (p_text.c).
-
- - The ISO 8859-2 encoding file had typos in the Zacute and Racute
- entries (iso8859-2.enc).
-
- - CMYK JPEG images resulted in corrupt PDF output due to a typo (p_image.c).
-
- - Fixed a non-portable construct involving the increment operator which
- resulted in wrong code when optimizing on True64 Unix (test/pdftest.c).
-
-
- Build process, distribution, and platform support
- =================================================
-
- - Introduced a new configuration "no auxiliary libs" for MSVC for building
- PDFlib without any auxiliary library present (*.dsp).
-
- - Changes the sample projects for MSVC++ from pdfclock to hello because this
- is better suited as the first example (c.dsp, cpp.dsp).
-
- - Makes the math library linker option (usually -lm) configurable via an option.
- This is only rarely required. The option is empty on MacOS X/Darwin
- (configure.in).
-
- - On Windows, switches to static versions of libpng, tifflib, and libz, and
- renamed libpng_static.lib to libpng.lib (*.dsp).
-
- - Adds support files for Borland C++ Builder 5.0 (*.bpf, *.bpr).
-
- - Adds -pthreads to the compiler options on OSF1 (configure.in).
-
- - Libtool output was sent to /dev/null in the bind Makefiles, which is
- a bad idea, and was changed (bind/*/Makefile.in).
-
- - By default the C++ binding is no longer enabled, since few people seem to
- actually use it and inconsistent handling of the standard C++ library causes
- frequent configuration trouble on several systems. It can be enabled with the
- --enable-cxx configure option (configure.in).
-
- - Changed the name of the C++ configure option from --with-cxx to the more
- appropriate --enable-cxx (configure.in).
-
- - Removes -ljpeg and -lz from the TIFFlib tests in the configure script, since
- these are't always required for libtiff, and missing additional libraries may
- cause linker error messages on some platforms if not installed. Platforms
- which require auxiliary libraries for TIFFlib can configure those with the
- new --with-tiffauxlib option (configure.in).
-
- - Changes the shared library mechanism in order to avoid problems with
- multiple dependent shared libs on platforms which don't support inter-
- library dependencies, or when the user doesn't have root privilege for
- installing the PDFlib shared library, for example on an ISP's server
- (configure.in, pdflib-config.in, all Makefile.in):
-
- - PDFlib is built as a libtool convenience library by default.
-
- - C/C++ language clients which prefer a shared PDFlib can request this via
- the --enable-shared-pdflib configure option. Other language bindings
- will not be available when this option is used.
-
- - Using non-installed versions of the auxiliary libraries now works as
- expected, but requires them to be built as static libs. Problems may
- arise if a local library directory contains a shared version of some
- auxiliary lib. The configure script will warn about this situation.
-
- - The PDFlib library will only be installed if it was built as a shared
- object. "make install" will install pdflib.h always, however.
-
- - All language wrapper libraries are still shared, but pull in the PDFlib core
- into the respective shared library.
-
- - Removes the dependencies from the client Makefile (clients/Makefile.in, configure.in).
-
- - The client and util Makefiles didn't use the configure-supplied macro for the
- name of the PDFlib core library (clients/Makefile.in, util/Makefile.in).
-
- - Switches to libtool 1.3.5 (config/*).
-
- - Removed all space characters after the -I compiler options since some
- compilers don't like this (configure.in).
-
- - Includes an encoding definition file for ISO 8859-9/Turkish, also
- known as Latin Alphabet No 5 (!) with additional character entries
- for Windows codepage 1254, and includes a corresponding
- entry in the UPR file (fonts/iso8859-9.enc, fonts/pdflib.upr).
-
- - Removes an obsolete file (test/graphdata).
-
- - The "clean" target didn't check whether or not a certain language
- binding actually had been built, resulting in errors for a global
- "make clean" (configure.in, Makefile.in).
-
- - Sets the LANG variable to empty string before calling the date
- command. Otherwise %p depends on the LANG setting, and may not
- work (Makefile.in).
-
- - Adds the list of dependent libraries (PDFLIBLINK) when linking the
- PDFlib shared library via libtool. Some platforms such as AIX require
- the names of all dependent libraries to be coded into the shared library
- file (pdflib/Makefile.in).
-
- - Fixed a number of EBCDIC-related bugs:
- - Bookmarks and annotation text didn't get converted to ASCII (p_hyper.c).
- - User-defined document information field names got converted to
- ASCII just one time too often, resulting in bad output (p_hyper.c).
- - The open mode for fopen() must be set to binary ("rb" and "wb"),
- otherwise PDF output will be screwed up, and images don't work
- (p_config.h).
-
- - Removed all occurrences of "-lc" in configure.in.
-
- - When searching for the TIFF library configure didn't check the lib
- subdirectory of any directory supplied via the --with-tifflib= option,
- contrary to the search applied for zlib and libpng, and the TIFFlib
- header files (configure.in).
-
- - Implements config/pdflib.m4 for use with the configure process of other
- packages which need to test for the availability of PDFlib.
-
- - Includes pdflib-config as an aid in configuring other packages which
- want to use PDFlib (configure.in, pdflib-config.in).
-
- - Fixed a typo in the SUFFIXES line which adversely affected some
- non-GNU makes (pdflib/Makefile.in).
-
- - Added a precompiler test for the EMX compiler on OS/2 (p_config.h).
-
-
- Bindings
- ========
-
- - C:
- - Includes an image sample (image.c).
-
- - The improved libtool scheme revealed a bug in the ordering of
- object files in the Makefile (Makefile.in).
-
- - C++:
- - Changed the name of the preprocessor define BROKEN_BOOL to PDF_BROKEN_BOOL
- (pdflib.hpp, pdflib.cpp).
-
- - Changed the C++ test files to return 0 (hello.cpp, image.cpp, pdfclock.cpp).
-
- - Added several casts to properly deal with the size method of C++
- strings (pdflib.cpp).
-
- - get_parameter() was accidentally missing from the wrapper code
- (pdflib.hpp, pdflib.cpp).
-
- - Adjusted the return type of PDF_get_buffer() (pdflib.hpp, pdflib.cpp).
-
- - Includes an image sample (image.cpp).
-
- - The improved libtool scheme revealed a bug in the ordering of
- objects in the Makefile (Makefile.in).
-
- - Changed the preprocessor conditionals for name space handling (pdflib.hpp).
-
- - Separates out the name of the standard C++ library, and sets it from
- the configure script. Determining whether it is required is however
- not yet finally implemented (configure.in, Makefile.in).
-
- - Java:
- - Adds /jdk1.2.[123] to the list of directories to be searched for the Java
- header files for the benefit of Cygwin users (configure.in).
-
- - Adds /usr/local/java and /usr/local/java/alpha to the list of
- directories to be searched for the Java header files (configure.in).
-
- - Implements the "nativeunicode" parameter (pdflib_java.c).
-
- - Includes a servlet sample (hello_servlet.java).
-
- - Makes the exception handling in the Java wrapper thread-safe, which was
- the last step to a completely thread-safe Java binding (pdflib_java.c).
-
- - Adds some notes on using PDFLib with Borland/Inprise JBuilder (readme.txt).
-
- - The error message for a bad PDFlib version used only a single significant
- digit (pdflib_java.c).
-
- - PDF_concat() had accidentally been declared public instead of private
- (pdflib.java).
-
- - Includes an image sample (image.java).
-
- - Implements several changes which are necessary for the AS/400 JNI
- implementation where jlong is a struct (pdflib_java.c):
-
- - Removes an unneccesary jlong initializer in the wrapper code of
- PDF_new().
-
- - Casts NULL to jbyteArray in the wrapper of PDF_get_buffer().
-
- - Adds a cast to the (jbyte *) argument of ReleaseByteArrayElements().
-
- - Conditionally uses a JNI-supplied macro for the assignment of
- jlong to long.
-
- - Made changes to the configure script in order to support the Kaffe
- VM which doesn't use the common jni_md.h in its JNI implementation
- (configure.in).
-
- - Relaxed javadoc generation since Kaffe doesn't have a javadoc
- implementation (Makefile.in).
-
- - The Unicode converter didn't report back the correct string length
- if the string was empty (pdflib_java.c).
-
- - libtool versioning information was missing (Makefile.in).
-
- - Perl:
- - Links the Perl wrapper against the Perl library on AIX, Cygwin, and
- OSF/1 (configure.in).
-
- - Removed a number of obsolete functions which were no longer supported in
- PDFlib 3.0 but still available (see doc/compatibility.txt for details).
-
- - PDF_concat still didn't work due to a glitch in the module file and a
- missing newXS entry (pdflib_pl.pm, pdflib_pl.c).
-
- - Adds a CGI variant of the pdfclock sample (pdfclock.pl.cgi).
-
- - Adjusted the return type of PDF_get_buffer() (pdflib_perl.c).
-
- - Includes an image sample (image.pl).
-
- - Cleaned up a few of the many warnings produced by the SWIG-generated
- wrapper code (pdflib_pl.c).
-
- - Implements a number of changes to make the wrapper compatible with
- Perl 5.6, mostly required by the discontinued use of PERL_OBJECT in
- the ActivePerl build:
-
- - Introduced another configuration called "oldperl" for building the
- wrapper for older ActivePerl versions (perl.dsp).
-
- - Added the XS macro to the export declaration of boot_pdflib_pl
- (pdflib_pl.c).
-
- - Searches for perl5.6.0 in the configure script (configure.in).
-
- - Changed the include and lib paths for Perl 5.6.0 on Windows (Perl.dsp).
-
- - Changed the include path in the VC project file to the Perl/lib/CORE
- directory (Perl.dsp).
-
- - Removed the /Tp option in the VC project file (no longer use C++ mode).
- (Perl.dsp).
-
- - Removed the PERL_OBJECT #define on Windows (pdflib_pl.c).
-
- - Changed all occurrences of CPerl to CPerlObj, and removed the respective
- macro definition (pdflib_pl.c).
-
- - Changed a preprocessor directive to make the wrapper code compatible
- with Perl 5.6 on Unix (pdflib_pl.c).
-
- - libtool versioning information was missing (Makefile.in).
-
- - Python:
- - Includes an image sample (image.py).
-
- - Changed the include and lib paths for Python 1.5.2 on Windows (Python.dsp).
-
- - Removed some dead code from the wrapper code (pdflib_py.c).
-
- - "make test" tried to make a hard link to a symbolic link, which
- doesn't work on all platforms (bind/python/Makefile.in).
-
- - libtool versioning information was missing (Makefile.in).
-
- - Tcl:
- - Implements the "nativeunicode" parameter (pdflib_tcl.c).
-
- - Removed a number of obsolete functions which were no longer supported in
- PDFlib 3.0 but still available (see doc/compatibility.txt for details).
-
- - Makes the exception handling in the Tcl wrapper thread-safe, which was
- the last step to a completely thread-safe Tcl binding (pdflib_tcl.c).
-
- - Adjusted the return type of PDF_get_buffer() (pdflib_tcl.c).
-
- - Includes an image sample (image.tcl).
-
- - Changed the include and lib paths for Tcl 8.3.1 on Windows (Tcl.dsp).
-
- - The wrapper now requires Tcl 8.2 or higher.
-
- - If appropriate, calls Tcl_InitStubs() for Tcl Stubs support
- (pdflib_tcl.c).
-
- - Queries the version number of the Tcl interpreter instead of
- relying on the static version number in the Tcl header used
- for compiling the wrapper (pdflib_tcl.c).
-
- - Added some preprocessor directives necessary for the mingw
- environment under Windows (pdflib_tcl.c).
-
- - Removed the DllMain function from the wrapper since it wasn't actually
- required but could cause trouble with some wrong precompiler settings
- (pdflib_tcl.c).
-
- - PDF_get_value and PDF_set_value were not properly reported to the
- Tcl interpreter, and were therefore unavailable (pdflib_tcl.c).
-
- - The Unicode converter didn't report back the correct string length
- if the string was empty (pdflib_tcl.c).
-
-
- Documentation
- =============
-
- - Adds many clarifications to the manual, as well as some basic text and
- graphics handling algorithms (PDFlib-manual.pdf).
-
- - Includes a PDF with point grid measures for common page sizes (grid.pdf).
-
- - Updated the Web locations of the png and zlib libraries (readme.txt,
- PDFlib-manual.pdf).
-
- - Added some information on forcing a certain compiler, or certain compiler
- flags (doc/readme_unix.txt).
-
- - Updated the PDFlib license (PDFlib-license.pdf).
-
- - Included the PDFlib order form (PDFlib-purchase-order.pdf).
-
-
- V3.0 (March 1, 2000)
- ====================
-
- New features and API
- ====================
-
- - Implements the "invert" parameter for PDF_open_image() in order to
- work around problems with certain 1-bit TIFF images (p_tiff.c).
-
- - Implements ascender, descender, and capheight parameters for get_value()
- (p_basic.c).
-
-
- Bug fixes and enhancements
- ==========================
-
- - Fixed a bad memory leak for all TIFFs which couldn't be handled
- in pass-through mode (p_tiff.c).
-
- - Track the text position even if the supplied string is NULL or
- empty (p_text.c).
-
- - PDFlib attempted to load the UPR resource file too early, even if
- the resource query could have been satisfied with dynamically loaded
- resources (p_util.c).
-
- - Empty resource file names (e.g. produced by an empty, but existing
- environment variable) were not handled correctly (p_util.c).
-
- - The y position calculations for PDF_show, PDF_show_xy, and
- PDF_continue_text were wrong for nonzero word spacing values.
- This also affected PDF_show_boxed (p_text.c).
-
- - Re-enabled the #ifdef'ed /EncodedByteAlign code (p_tiff.c).
-
- - Change the cleanup_...() functions in order to make them multiply
- callable. This was not the case for certain rare situations when an
- exception occured during cleanup (p_annots.c, p_basic.c, p_font.c,
- p_hyper.c, p_util.c, p_image.c).
-
- - The handling of font files with DOS line ends was broken on Unix
- systems (p_font.c).
-
- - The error machinery didn't recognize a certain recursive error situation
- related to the handling of corrupt font files (p_basic.c).
-
- - The font machinery now treats the AFM entry "StandardEncoding" like
- "AdobeStandardEncoding" since some AFMs use the former (wrong)
- variation (p_font.c).
-
- - The UPR resource names didn't work in PDF_set_parameter() due to
- a typo (p_basic.c).
-
- - CCITT-compressed TIFFs with multiple strips haven't been handled
- properly, and resulted in corrupt output. As a quick fix we revert
- to uncompressing and recompressing with Flate (p_tiff.c).
-
- - The PDF properties sheet in Windows explorer doesn't work when the
- Info dictionary keys are not followed by space characters. (This
- should be considered an Acrobat bug!) We therefore removed this
- optimization in order to work around this misfeature (p_hyper.c).
-
- - PDF_stringwidth2() didn't take the length argument into account (p_text.c).
-
-
- Build process, distribution, and platform support
- =================================================
-
- - configure improvements (configure.in):
- - configure failed to include -I in the include paths for the auxiliary libs.
- - configure failed to accept library paths supplied on the command line.
- - Unified the handling of the -I option for the various language
- include directories.
- - Adds -lm to the libpng tests.
- - The --disable-shared option didn't work.
-
- - Changed the install target so that it creates the install directories
- for library and header files if they don't exist. This was a problem
- especially on RedHat systems where /usr/local/include doesn't exist
- (pdflib/Makefile.in).
-
- - Removed the FORCE: target in the main Makefile (Makefile.in).
-
- - Added some preprocessor lines for Cygwin support (p_config.h, p_basic.c).
-
- - Switched to a static version of the PNG library due to problems with
- libpng.dll when used with static C runtime (*.dsp).
-
-
- Bindings
- ========
-
- - Java:
- - get_value didn't work because of a missing comment terminator (pdflib.java).
-
- - An exception in get_parameter could result in an access violation in
- Windows due to a bug in the wrapper code (pdflib_java.c).
-
- - Relaxed the compiler setting "strict ANSI" in the CodeWarrior project
- for the Java binding on the Mac, since the Apple-supplied Java
- headers for MRJ 2.2 do no longer compile in strict mode (pdflib.mcp).
-
- - Perl:
- - PDF_concat didn't work due to a glitch in pdflib_pm.pl.
-
- - Python:
- - PDF_open_image_file() was missing from the set of registered functions,
- and was therefore unavailable (pdflib_py.c).
-
- - Tcl:
- - Changed the Windows project file for Tcl 8.3 paths (tcl.dsp).
-
- - The Tcl install target didn't check whether the install directory
- already existed (Makefile.in).
-
-
- Documentation
- =============
-
- - Switched to version 8 of the Aladdin license (aladdin-license.txt).
-
-
- V2.30 (February 15, 2000)
- =========================
-
- New features and API
- ====================
-
- - Implements the ignoremask parameter for PDF_open_image_file() to
- allow the user to disable PDFlib's automatic transparency support.
-
- - Reactivates the disabled PDF_open_mem/writeproc interface for installing
- a callback to fetch the PDF data (p_basic.c, p_annots.c, p_image.c,
- p_font.c, p_stream.c, pdflib.h, p_intern.h).
-
- - Removes PDF_set_text_matrix() which has bad interactions with
- internal functions and properties of PDF, and doesn't offer any
- advantage to the client (p_text.c).
-
- - Path segment functions no longer reset the text position and matrix
- (p_text.c).
-
- - Implements PDF_get_value() and PDF_set_value() which (along with
- PDF_set_parameter()) replace the following functions (p_basic.c):
-
- get_font
- get_fontsize
- get_image_height
- get_image_width
-
- set_fillrule
- set_leading
- set_text_rise
- set_horiz_scaling
- set_text_rendering
- set_char_spacing
- set_word_spacing
- set_duration
- set_transition
-
- In bindings other than Java and ActiveX these are still available, however.
-
- - Interprets the image resolution in the image converter client, and
- adjusts both page size and scaling factors accordingly (pdfimage.c).
-
- - Reads the resolution or aspect ratio values from all image formats
- which support it, and passes the values to the client (p_jpeg.c, p_png.c,
- p_tiff.c, p_gif.c);
-
- - Implements and documents PDF_concat() (p_gstate.c).
-
- - Makes the default zoom factor (open action for the first page) user-
- settable through PDF_set_parameter() (p_basic.c).
-
-
- Bug fixes and enhancements
- ==========================
-
- - PDF_delete() didn't PDF_close() if called from the error handler (p_basic.c).
-
- - PDF_arc() didn't handle movetos correctly (p_draw.c).
-
- - Due to a subtle bug in the exception handling machinery non-fatal
- errors could cause recursive errors (p_basic.c).
-
- - PDF_show_boxed() didn't fully justify the second but last line under
- certain circumstances, and didn't get forced newlines right
- sometimes (p_text.c).
-
- - PDF_show_boxed() didn't take the text matrix into account correctly
- (p_text.c).
-
- - End the text object if the text render mode is set to one of the
- clipping modes (p_text.c).
-
- - Added an endpath operator to the clip operators to save the client from
- doing so (p_draw.c).
-
- - PDF_open_image() didn't check for a valid params pointer for one-
- component images (p_image.c).
-
- - Non-fatal errors could result in corrupt output due to a glitch
- in the error handling machinery (p_basic.c).
-
- - Implements data pass-through for CCITT-compressed TIFF images. This
- decreases the PDF output, and accelerates image processing (p_tiff.c,
- p_image.c, p_intern.h).
-
- - Changed the key of the duration setting from /D to /Dur. The former
- is only correct within a transition dictionary (p_basic.c).
-
- - Implements a complete text and graphics state tracking machinery,
- including save/restore (p_intern.h, p_gstate.c, p_draw.c, p_text.c,
- p_basic.c).
-
- - Disallows the use of the null character in user-defined encodings
- (p_util.c), and documents the fact.
-
- - Implemented a stricter state checking machinery for switching
- between path objects, text objects, image objects, and the general
- page description state (p_text.c, p_draw.c, p_gstate.c, p_image.c,
- p_intern.h).
-
- - The parameter checks in the text output functions were too strict,
- and erroneously rejected strings starting with a character code < 256
- in Unicode mode (p_text.c).
-
- - Removed several remains of an obsolete filename in comments
- and a project file (p_intern.h, pdflib_static.dsp).
-
- - Checks for a degenerate matrix in PDF_set_text_matrix() (p_text.c).
-
- - Renamed pdf_concat() to pdf_concat_raw() (p_gstate.c).
-
- - Simplifies the old and new stringwidth/show/show_xy/continue_text
- functions pairs such that the old simply relay to the new functions.
- A zero length parameter for the new functions is interpreted to
- mean C-style text (p_text.c).
-
- - Fixes the underline/overline/strikeout handling (p_text.c).
-
- - Made the prefix parameter public (p_basic.c.).
-
- - Relaxed the handling of metrics files where the font name has been
- changed, and doesn't match the user-supplied font name (p_afm.c,
- p_pfm.c).
-
- - The AFM and PFM modules threw NonfatalErrors even in severe cases
- (p_afm.c, p_pfm.c).
-
- - Added an omitted pdf_begin_text() call which resulted in bad PostScript
- output when the PDF was printed (p_text.c, p_font.c, p_intern.h).
-
- - An erroneous byte was output in the header section (p_basic.c).
-
-
- Build process, distribution, and platform support
- =================================================
-
- - Puts double quotes around all variables used in test statements
- in the configure script. This will make the script more resistant
- against test complaining when a variable happens to be empty (configure.in).
-
- - Moves the test for EBCDIC from configure to p_config.h.
-
- - Switches the language bindings on Windows to static C runtime
- libraries in order to avoid the dreaded problems with multiple
- versions of msvcrt.dll (*.dsp).
-
- - Added solaris as a subdirectory name in looking for jni_md.h, since
- it doesn't seem to be picked up via $ac_md_system (configure.in).
-
- - Added -lm -lc at a few places in order to help configure find the
- auxiliary libraries (configure.in).
-
- - Changed the handling of the PDF magic number to protect it from
- EBCDIC compilers (p_basic.c).
-
- - Introduces a binary distribution for Windows, generated with a
- JScript program run in Windows Script Host (shell programming a la
- Microsoft, oh my...).
-
- - Added "-ljpeg" to TIFFLIBLINK (configure.in).
-
- - Added "-lz -lm" to the TIFF library check (configure.in).
-
-
- Bindings
- ========
-
- - C++:
- - The C++ Makefile failed to set the CXX variable correctly (Makefile.in).
-
- - Implemented concat() (pdflib.hpp, pdflib.cpp).
-
- - show_boxed() didn't return a value (pdflib.cpp).
-
- - Java:
- - Reworked and fixed the exception handling (pdflib_java.c).
-
- - Changed the string extraction routines so that they handle empty
- strings gracefully (pdflib_java.c).
-
- - Implemented concat() (pdflib_java.c, pdflib.java).
-
- - Calls java and javadoc after compiling the Windows DLL (Java.dsp).
-
- - Perl:
- - Removed the export-dynamic option for libtool (Makefile.in).
-
- - Implemented PDF_concat() (pdflib_pl.c, pdflib_pl.pm).
-
- - Python:
- - Removed the export-dynamic option for libtool (Makefile.in).
-
- - Implemented PDF_concat() (pdflib_py.c).
-
- - Tcl:
- - PDF_open_image_file() was missing from the set of exported functions
- in the wrapper code (pdflib_tcl.c).
-
- - Conditionally compiles the wrapper in order to avoid the use of
- binary strings when compiling against Tcl 8.0 (pdflib_tcl.c).
-
- - Implemented PDF_concat() (pdflib_tcl.c, pkgIndex.tcl).
-
-
- Documentation
- =============
-
- - Documents the libtool library versioning scheme (readme_unix.txt).
-
-
-
- V2.20 (January 24, 2000)
- =========================
-
- New features and API
- ====================
-
- - Implements PDF_concat(), currently only for the C binding
- (pdflib.h, p_gstate.c).
-
- - Implements PDF_show_boxed(), the basis of which has been contributed
- by Leonard Rosenthol (pdflib.h, p_text.c, bind/*/*.c, pdflib_pl.pm,
- pkgIndex.tcl, pdflib.hpp, pdflib.cpp, pdflib.java).
-
- - Implements overline and strikethrough text, as suggested and contributed
- by Leonard Rosenthol. API, implementation and behavior parallel underlined
- text (p_intern.h, p_basic.c, p_text.c).
-
- - Implements PDF_get_buffer() for fetching the PDF output from memory
- for all language bindings.
-
-
- Bug fixes and enhancements
- ==========================
-
- - Fixed three bugs in the AS/400 codepage conversion table (p_stream.c).
-
- - Fixed a bug in the EBCDIC-safe handling of document info entries
- (p_hyper.c).
-
- - #ifdef'ed all code for dealing with the now obsolete flush parameter.
-
- - pdf_ebcdic2ascii() didn't return the correct string. Changed the caller
- such that the return isn't needed anyway (p_stream.c).
-
- - The binary PDF magic number was inadvertently written using pdf_puts()
- instead of pdf_write() which is wrong on EBCDIC machines (p_basic.c).
-
- - The debug and nodebug parameters are no longer documented nor supported.
- Nonfatal exceptions can be suppressed with the new warning parameter
- (p_basic.c).
-
- - Changes the error handling and memory management such that one pair of
- PDF_new()/PDF_delete() can accomodate multiple pairs of PDF_open_*()/
- PDF_close() without leaking memory (p_stream.c, p_basic.c).
-
- - Fixed a possible crash under rare circumstances, related to an
- exception being thrown when no real work has been done (p_stream.c).
-
- - Changes the underline/overline/strikeout calculations such that the
- width of the line is no longer taken into account for calculating
- the distance from the baseline (p_text.c).
-
- - Fixes problems related to setting the current text position via
- PDF_set_text_matrix() and PDF_set_text_position() (p_text.c).
-
- - Removes the transition settings from all clock samples since these
- may significantly slow down PDF the screen presentation, especially
- when served via the Web (bind/pdfclock.*).
-
- - Removes the dynamic TIFFlib attachment on Windows, and directly
- links to TIFFlib. The TIFFlib DLL will also be included in the
- binary distributions (p_basic.c, p_tiff.c, p_intern.h).
-
- - Changes the TIFF code to use the PDFlib-supplied malloc/free
- routines instead of the TIFFlib-supplied ones. This makes the code
- for attaching the TIFFlib Windows DLL at runtime compatible with
- the generally available DLL (p_tiff.c, p_basic.c, p_intern.h).
-
- - Changes PDF_findfont() such that an exception is raised when the
- requested font can't be set, instead of returning -1 (p_font.c,
- bind/*/hello.*, test/pdftest.c).
-
- - An error message had a wrong printf format (p_state.c).
-
- - Accepts the image file type parameter of PDF_open_image_file() in
- both lower and upper case, although this will not be documented
- (p_image.c).
-
- - Removed the optimization which tried to keep track of redundant
- font changes (p_font.c).
-
- - "builtin" encodings no longer worked after the great encoding rehaul,
- but required only a simple fix (p_font.c).
-
- - Implements a safeguard against recursive I/O errors which may occur
- in rare situations when flushing the output raises an exception while
- being called from the exception handler already (p_intern.h, p_basic.c,
- p_stream.c).
-
- - The stream machinery didn't get initialized in PDF_open_fp(), resulting
- in an infinite recursion (well, a finite one...) when opening a PDF
- with a preexisting FILE pointer (p_basic.c).
-
- - Changes several places where #includes had filenames in "..." instead
- of <...>, resulting in bad dependencies in the Makefiles (pdflib/p_intern.h,
- util/compile_metrics.c, pdflib_pl.c, pdflib_py.c, pdflib_tcl.c).
-
- - The compile_metrics utility was not yet adapted to the new encoding
- include file logic (util/compile_metrics.c).
-
-
- Build process, distribution, and platform support
- =================================================
-
- - Under Windows switched all language bindings other than C and C++
- from a DLL to a static PDFlib library (bind/*/*.dsp).
-
- - Improves and simplifies the searching mechanism for Perl, Tcl, Python,
- and Java in configure (configure.in).
-
- - Simplifies and streamlines the configure code for detecting the
- TIFF, Zlib, and PNG libraries (configure.in).
-
- - Switches to libtool 1.3.4, and back to 1.3.c due to problems with
- the former (config/*).
-
- - Fixes many glitches in the configure and build machinery.
-
- - Makes the name of the core PDFlib library file configurable via
- the --with-libname configure option in order to work around a name
- clash on Digital Unix 4. The bindings are set up such that changing
- the core library name is transparent to the language binding
- (configure.in, all Makefile.in).
-
- - Includes an encoding file for ISO 8859-15 in the distribution
- (fonts/iso8859-15.enc), and changed the Latin 2 encoding file name
- (fonts/iso8859-2.enc).
-
- - Changed the ordering of libpng and zlib when linking programs against
- PDFlib since older linkers require this ordering (Makefile.in).
-
- - Moved the .PHONY targets in the Makefiles below the all target for
- combatibility with non-GNU makes.
-
- - Implements a suitable mechanism for patching the version number into
- numerous source files, and splits it from the distribution (version.pl).
-
- - Fixes a number of Makefile bugs which resulted in wrong dependencies
- (*/Makefile.in).
-
-
- Bindings
- ========
-
- - C++:
- - Changes the data parameter of open_image() from String to const char *
- which is more appropriate (pdflib.hpp, pdflib.cpp).
-
- - Java:
- - Implements Unicode support for page descriptions (pdflib_java.c).
-
- - Changes the data parameter of open_image() from String to byte[]
- which is more appropriate (pdflib.java, pdflib_java.c).
-
- - Correctly implements setpolydash() (pdflib_java.c).
-
- - Includes javadoc comments and Makefile targets for generating Java
- documentation in HTML (pdflib.java, Makefile.in).
-
- - Implements package support for PDFlib, and generates a .jar file
- (*.java, *.c, Makefile.in).
-
- - Changes the version mechanism for the Java wrapper to use version
- number querying instead of matching version numbers in the name of
- the wrapper library (pdflib_java.c, Makefile.in, Java.dsp, pdflib.h).
-
- - Perl:
- - Correctly implements PDF_setpolydash() (pdflib_pl.c).
-
- - Python:
- - Correctly implements setpolydash() (pdflib_py.c).
-
- - Tcl:
- - Implements Unicode support for page descriptions (pdflib_tcl.c).
-
- - Searches for tclsh8.3 in configure (configure.in).
-
- - Correctly implements PDF_open_image() (pdflib_tcl.c).
-
- - Correctly implements PDF_setpolydash() (pdflib_tcl.c).
-
- - Changed all occurrences of atol() in the wrapper code to Tcl_GetInt()
- or Tcl_GetLongFromObj() with appropriate error handling (pdflib_tcl.c).
-
- - Implemented suitable conditionals to allow for compiling the Tcl
- wrapper with different versions of Tcl. This was necessary because of
- the Unicode support which is only available in Tcl 8.2 (pdflib_tcl.c).
-
-
- Documentation
- =============
-
- - Addes a description of the PDFlib commercial license to the distribution
- (PDFlib-license.pdf).
-
- - Introduces javadoc comments.
-
-
- V2.10 (December 13, 1999)
- =========================
-
- New features and API
- ====================
-
- - Makes the page dimensions adjustable after starting a page, using
- PDF_set_parameter (p_basic.c).
-
- - Made a variety of changes to make PDFlib work when compiled on
- EBCDIC-based systems (most *.c, p_intern.h).
-
- - Made the Zlib compression level configurable (p_basic.c, p_stream.c).
-
- - Switched to in-core PDF generation through the new pdf_streams
- interface. This also allows us to compress page content streams
- and to simplify handling of compressed data streams (all *.c, p_intern.h).
-
- - Implements transparency support (masking by position or color) (p_gif.c,
- p_png.c, p_image.c, p_intern.h).
-
- - Implements a PNG handler (p_png.c, pdflib.h, p_intern.h).
-
- - Font handling:
-
- - Implemented support for null characters in text strings for all
- language bindings (p_text.c, bind/*/*.c).
-
- - Implemented support for CID fonts and CMap encodings (p_font.c, p_cid.h).
-
- - Implemented underlined text (except for CID fonts) (p_text.c).
-
- - Implements support for user-defined encodings, and includes
- a sample encoding file (p_fonts.c, fonts/pdflib.upr, fonts/latin-2.enc).
-
- - Implements EBCDIC encoding (p_font.c, e_ebcdic.h, p_intern.h,
- p_metrics.h, util/compile_metrics.c).
-
- - Implements support for PFB PostScript font files (p_font.c).
-
- - Implements support for PFM PostScript font metrics files (p_pfm.c).
-
- - Updates to the AFM parser (p_afmparse.c, p_afmparse.h):
-
- - The FONTBBOX is read as float which is required by the 4.1 spec.
-
- - Recognizes Multiple Master fonts by FamilyName ending in " MM".
-
- - Allows the WEIGHT entry to contain more than one word.
-
- - Implements limited Multiple Master handling for an in-house
- application (p_font.c):
-
- - As in PostScript, MM handling is transparent at the API level. All
- MM handling is done by extracting the parameters from the font name.
-
- - All instances of an MM font are required to have the same metrics
- (i.e., no support for /Width axis).
-
- - The required AFM file is that for the master.
-
- - Implements PDF_skew() in order to provide for a full set of coordinate
- transformation functions (p_gstate.c).
-
- - Reactivates ASCII85 encoding which lay dormant in previous releases
- (p_intern.h, p_filter.c).
-
-
- Bug fixes and enhancements
- ==========================
-
- - Fixed a bug where PDF_moveto() wouldn't set the text position
- correctly (p_text.c).
-
- - Corrects a small glitch where pdf_float() would return the
- correct result string, but fails to use the supplied buffer (p_util.c).
-
- - Makes the PDF compatibility user-settable (again). The reasoning
- behind this is not obvious, and discussed in the manual. If the
- compatibility level is set to PDF 1.2, asking PDFlib to generate
- any Acrobat 4 feature will result in a RuntimeError (*.c).
-
- - Adds a little PostScript utility for finding all glyph names in
- a font (fonts/print_glyphs.ps).
-
- - Implements support for dynamically loading TIFFlib at
- runtime (p_basic.c, p_tiff.c, p_intern.h).
-
- - Removed all references to PDFDocEncoding since it isn't required
- for hypertext elements, and can't be used for text fonts (e_pdfdoc.h).
-
- - PDF_arc() implicitly moves to the beginning of the arc segment in
- order to avoid unwanted connecting lines from the current point to
- the beginning of the arc segment (p_draw.c).
-
- - All public PDFlib functions perform a simple sanity check on their
- p argument before accessing any structure member. This reduces the
- chances for a crash due to client-supplied NULL or rogue pointers (*.c).
-
- - Include the names of the language binding and the platform in the
- /Producer entry (p_basic.c, p_intern.h, p_hyper.c, bind/*/*.c).
-
- - Added the width of the Euro character to the supplied internal and
- external metrics tables (*.afm, p_metrics.h).
-
- - Replaced the AFM files with newer versions, and used the additional
- data in the internal metrics tables. The kerning information
- has been stripped for size and performance reasons (fonts/*.afm).
-
- - When user-requested encoding and font-supplied encoding didn't match,
- PDFlib could try to reencode Symbol fonts with not adequate encodings
- (like Symbol with Winansi) -- despite issuing a warning message
- (p_font.c).
-
- - PDF_stringwidth() now takes the text state parameters into account,
- and protects itself from empty strings (p_text.c).
-
- - Removed the pdf_begin_text() calls in all functions that set the
- text state (p_font.c, p_text.c).
-
- - Do not set the leading parameter in PDF_setfont() since it may
- override a leading value set by the user (p_font.c).
-
- - Changed the name of the pseudo encoding vector from "default" to
- "host" (p_font.c, most bind/*/hello.*).
-
- - Checks the scale parameter of PDF_set_horiz_scaling() to be positive
- (p_text.c).
-
- - Write the colormap for an image also in compressed or ASCII format
- if requested (was previously the case only for the actual image
- data, but not the colormap) (p_image.c).
-
- - The 'w' debug parameter for enabling or disabling warning messages
- was erroneously implemented as 'e' instead. Now it works according
- to the documentation (p_basic.c).
-
- - Adds (void) casts to several fputc() and fputs() calls.
-
- - Changes the PDF output to avoid unnecessary blanks aside self-delimiting
- tokens in many places (most *.c).
-
- - Checks current font and font size in PDF_setfont() in order to eliminate
- redundant setting. This requires initializing the current font to an
- invalid value of -1 in PDF_begin_page() (p_font.c, p_basic.c).
-
- - Image handling:
-
- - When the error handler popped in for memory images with bad length it
- would try to free not yet allocated memory. We guard against this by
- prematurely setting the image file name to NULL (p_image.c).
-
- - The parameter checking code in PDF_open_image() and the documentation
- didn't account for images with other than 8 bits per component
- (p_image.c).
-
- - The test for the length of the image data in memory for PDF_open_image()
- could still be wrong when bpc was smaller than 8 (p_image.c).
-
- - GIF images with a local colormap ended up with a colormap with all
- black entries in the PDF because the local colormap was read when the
- (wrong) global colormap was already written to the PDF (p_image.c).
-
- - Detect and correctly handle transparent colormap entries in GIF
- images (p_image.c, p_gif.c, p_intern.h).
-
- - Changes the PATHSEP definition for VMS and moves HAVE_GETOPT to the
- top of the include file (p_config.h).
-
- - The pdfgraph.c and pdfimage.c sample clients incorrectly advertised
- a binary option in their usage messages although the option is no longer
- available.
-
- - Check the parameters of PDF_scale() for zero values (p_gstate.c).
-
- - Introduce parenthesis in a set of critical macro definitions (p_gif.c).
-
- - Changed the text2pdf client to PDF_findfont/PDF_setfont instead of
- the obsolete PDF_set_font().
-
- - Unified the names of the encoding files to e_*.h (formerly *_e.h).
-
- - Removed the obsolete compatibility function PDF_set_font (p_font.c,
- pdflib.h, bind/*/*.c, bind/perl/*.pm).
-
-
- Build process, distribution, and platform support
- =================================================
-
- - Removed the sample CGI script (bind/cgi).
-
- - Removed the pdfgraph demo program (clients directory).
-
- - Removed the optional getopt module (util directory, Makefile.in).
-
- - Adds support for the DJGPP compiler (p_config.h).
-
- - Adds support for libtool in order to cleanly deal with the gazillion
- kinds of shared library support (configure.in, Makefile.in, test/Makefile.in,
- pdflib/Makefile.in).
-
- - Introduces the new config directory for libtool and installation support
- scripts.
-
- - Added the ANSI option for native HP compilers (configure.in).
-
- - Properly implements all configure switches for disabling the language
- bindings (configure.in).
-
- - Starts adding support for OS/2 and VMS systems.
-
- - Adds support for EBCDIC-based systems, including source code changes
- and an EBCDIC test in the configure script (configure.in).
-
-
- Bindings
- ========
-
- - SWIG:
- - No longer automatically generates the wrapper file with SWIG due to
- the necessary amount of manual changes in the wrapper files
- (bind/*/Makefile.in).
-
- - C:
- - The arguments to PDF_begin_page() were incorrectly cast to the wrong
- type instead of float. Incidentally, a particular compiler incorrectly
- produced zero values, thereby disclosing the bug in the source code by
- a compiler bug (pdfclock.c).
-
- - C++:
- - Implements support for strings containing null characters.
-
- - Added PDF_shutdown() to the PDF destructor (pdflib.cpp).
-
- - PDF_close_image() was missing from the C++ interface due to an
- oversight (pdflib.hpp, pdflib.cpp).
-
- - Added -lstdc++ to the Makefile.
-
- - Java:
- - On Windows separates the wrapper DLL from the PDFlib core DLL.
-
- - Implements support for strings containing null characters.
-
- - configure now looks in an additional subdirectory for the machine-
- dependent JNI include file. Formerly it used $MACHDEP only, but
- on some systems the subdirectory doesn't use the system version number
- (configure.in).
-
- - Rewrote the wrapper code so that it does the right thing with Unicode
- strings (pdflib_java.c).
-
- - Switched to a more object-oriented notation, and dropped the PDF_
- prefix from the names of the PDFlib Java methods (pdflib_java.c, *.java).
-
- - Perl:
- - On Windows separates the wrapper DLL from the PDFlib core DLL.
-
- - Removed the unused and unsupported Makefile.PL.
-
- - Implements support for strings containing null characters.
-
- - Removed PDF_boot() and PDF_shutdown() which have accidentally been
- included in the wrapper code (pdflib_pl.c, pdflib.pm).
-
- - Integrated wrapper code changes in order to make the PDFlib wrapper
- compatible to versions of Perl newer thant 5.005_54 (pdflib_pl.c).
-
- - Added an export list to the pdflib Perl module. This makes it easier
- to use our module along with other modules. Clients need no longer
- write "package pdflib" at the beginning since all functions are
- exported (pdflib.pm, hello.pl, pdfclock.pl).
-
- - Python:
- - On Windows separates the wrapper DLL from the PDFlib core DLL.
-
- - Due to a necessary change in the name of the library, script must
- now use "from pdflib_py import *" (instead of "pdflib").
-
- - Implements support for strings containing null characters.
-
- - Removed PDF_boot() and PDF_shutdown() which have accidentally been
- included in the wrapper code (pdflib_py.c).
-
- - Searches for the lib-dynload directory where to install the shared
- library for Python (configure.in).
-
- - Tcl:
- - On Windows separates the wrapper DLL from the PDFlib core DLL.
-
- - Changed the name of the wrapper library from pdflib.so to pdflib_tcl.so
- (pkgIndex.tcl).
-
- - Rewrote the wrapper code so that it does the right thing with Unicode
- strings (pdflib_tcl.c).
-
- - Implements support for strings containing null characters.
-
- - Tcl 8.0 is now required because of the support for binary strings
- (configure.in).
-
- - Removed PDF_boot() and PDF_shutdown() which have accidentally been
- included in the wrapper code (pdflib_tcl.c, pkgIndex.tcl).
-
- - Visual Basic:
- - Removed the Visual Basic binding since VB is much better covered by the
- new PDFlib ActiveX control (bind/vb/*).
-
-
- Documentation
- =============
-
- - Added platform-specific readme files (doc/readme_<platform>.txt).
-
- - Added an appendix dealing with shared libraries to the manual.
-
- - Removed the redundant list of configure options from doc/install.txt.
-
- - Changed all occurrences of PDFlib's WWW address to www.pdflib.com.
-
-
- V2.01 (August 3, 1999)
- =====================
-
- New features and API
- ====================
-
- - Extends the JPEG reader to allow for progressive JPEG images which are
- supported in PDF 1.3/Acrobat 4 (p_jpeg.c).
- - Applies a workaround for Photoshop-generated CMYK JPEG images. The
- algorithm is taken from my jpeg2ps utility: detect the Adobe marker,
- and write a suitable /Decode array to invert the 4 color planes (p_image.c).
- - Introduces the concept of a "default" encoding which evaluates to
- macroman or winansi according to the current platform. This facilitates
- writing identical test programs for all platforms. All samples except
- those for Visual Basic (which is Windows-only) have been adjusted to use
- the default encoding.
- - Streamlines the image file interface in several ways: (pdflib.h, p_intern.h,
- p_image.c, p_gif.c, p_tiff.c, p_jpeg.c, p_ccitt.c, p_basic.c,
- bind/vb/pdflib_vb.idl, bind/vb/pdflib_vb.def, clients/pdfimage.c,
- bind/cpp/pdflib.[h|c]pp, test/pdftest.c).
- - Removes PDF_place_inline_image() since it doesn't seem to bring any
- real advantage to PDFlib clients.
- - Removes PDF_put_image() since the image data is "parked" in the ouput
- immediately on PDF_open_*(). The /Name key is no longer in Xobjects
- since it was only required by PDF 1.0.
- - Removes PDF_execute_image(). Instead, PDF_place_image() can now be
- called multiple times for re-using image data.
- - Consolidates all pdf_close_*() functions in PDF_close_image. All
- image-specific stuff is now done at the end of PDF_open_*().
- - PDF_open_*() (along with the newly implied pdf_put_image()) is now
- allowed outside of page descriptions. This requires pdf_put_image()
- to do a pdf_begin_contents_section() in some cases.
- - Adds several symbolic names for new destination zoom values in
- PDF_add_pdflink() and PDF_add_locallink() (p_annots.c).
- - Added an undocumented hook for placing existing images as thumbnail
- for the current page. This is for a specialized application and is
- not supported at the scripting layer (p_image.c, p_image.c, p_intern.h).
- - Changed PDF_open_memory_image() to PDF_open_image(). This makes memory
- images accessible from the scripting languages, and adds support for
- file and url references as placeholders for the actual image data
- (pdflib.h, p_image.h, p_intern.h, bind/vb/pdflib_vb.idl, bind/cpp/pdflib.hpp,
- bind/cpp/pdflib.cpp).
-
-
- Bug fixes and enhancements
- ==========================
-
- - A static resource configuration file (pdflib.upr) was always opened
- when the client dynamically added resources. We skipped the file open
- step since it's well reasonable to work with dynamic configuration
- exclusively (p_util.c).
- - Fixes a crash due to an uninitialized member of the PDF struct
- (resourcefile_loaded). The bug showed up when trying to use non-standard
- fonts (p_basic.c).
- - Added a number of casts to avoid assignments to variables which are
- never used. This basically affected the contents of comment and notice
- lines in AFM files, which are not being used (p_afmparse.c).
- - Merged the metrics files for macroman and winansi core metrics
- (p_metrics_win.h, p_metrics_mac.h) to a single file (p_metrics.h,
- p_font.c, Makefile.in, pdflib/Makefile.in, PDFlib.hqx, *.dsp)
- - Makes DLLMain only visible when PDFLIB_EXPORTS is defined (p_basic.c).
- - Changed the default page transition duration to 0 in order to avoid
- unnecessarily writing the duration key to all page dictionaries (p_hyper.c).
- - Changes to example path prefix in pdflib.upr to make it clearer that
- the upr file has to be adjusted before it can be used (fonts/pdflib.upr).
- - The debug flags didn't work due to a typo (p_basic.c).
- - Debug flag 'u' (don't unlink PDF file on error) was implemented the wrong
- way, and didn't match the documentation (p_basic.c).
- - Improves the memory management by avoiding "semi-allocated" aggregated
- objects. This involves subtle changes around the realloc() calls,
- and cleaner initialization of the reallocated data. The benefit of this
- shows up in memory-out situations when the error handler pops in and tries
- to free memory blocks which are not completely initialized. This may
- especially happen in multi-threaded environments (p_intern.h, p_basic.c,
- p_font.c, p_images.c, p_hyper.c).
- - Fixes some inconsistencies related to link border style, color, and
- destination zoom (p_annots.c).
- - Removed the beveled, inset, and underlined link border styles since they
- don't work as advertised in the PDF specification (p_annots.c, pdftest.c).
- - Improves the handling of XObject resources: formerly all Xobjects used
- in the document up to the current page had been placed in the page's
- resource list, potentially cluttering up the print stream generated for
- the PDF. Now we only list the XObjects which are actually used on the
- current page. This change will not affect Acrobat's viewing behavior.
- - The bpc and components values of TIFF image weren't always properly
- reported by TIFFlib. We improved this by using TIFFGetFieldDefaulted()
- instead of TIFFGetField() for retrieving these (p_tiff.c).
-
-
- Build process, distribution, and platform support
- =================================================
-
- - Several improvements in the configure machinery (configure.in, Makefile.in):
- - Added a --without-cxx option to the configure script in order to make
- life easier on systems where the C++ is not correctly recognized.
- - The include and lib paths for perl/zlib/tifflib shown with
- "configure --help" had some differences from the actual spelling of
- the supported options.
- - Included a number of changes to the configure script required to make
- the shared library versioning work on NetBSD systems.
- - The --with-perlincl option for configure didn't work.
- - Added a number of conditionals for the Cygwin environment.
- - Always puts the version number in the file names of the shared and
- static PDFlib libraries. Previously the static library ended up without
- a version number in its name, possibly leading to mismatches with later
- versions.
- - Introduces configure variables for the names of the shared and static
- libraries. This allows us to easily build the "other" library (as opposed
- to the one specified when configure was run) as well.
- - Removes the -g option from all Makefiles (pdflib/Makefile.in,
- clients/Makefile.in, util/Makefile.in, bind/c/Makefile.in,
- bind/cpp/Makefile.in, test/Makefile.in)
- - The util Makefile is no longer called by default since the utility programs
- are currently not needed by ordinary library users (Makefile.in).
- - Notes that the util Makefile needs an installed PDFlib library
- (util/Makefile.in).
- - Assorted changes suggested for supporting the Cygwin32 development
- environment. These involved several Makefile.in files, configure.in, and
- C source modules which make use of getopt(). Most of the changes enhanced
- the configuration machinery for other systems, too.
- - Removes the install targets for the C and C++ bindings in the main
- Makefile since those targets weren't used anyway (Makefile.in).
- - Changes the $@.$(OBJ) construct in all Makefiles to the actual name of
- the object (we don't want to use $< since it doesn't work everywhere)
- (*/Makefile.in, bind/Makefile.in).
- - Removed a leftover text file (util/readme.txt).
- - Cleaned up the configuration information in the MSVC project files.
- Most projects now only support a "Release" configuration; only pdflib
- and test have "Debug" configurations, too (pdflib.dsp, bind/*/*.dsp).
- - Includes a separate project for building PDFlib as a static library
- with MSVC.
- - Better supports the Mac distribution (Makefile.in):
- - Changes the CodeWarrior project file name suffix from the odd mu
- character to the more Unix-friendly .mcp. Since the project file
- doesn't contain a resource fork, there's no need to use binhex (.hqx)
- encoding.
- - Convert the lineends in all relevant text files to the Mac convention.
- - Implements a procedure for setting the correct file types for all
- relevant files (uses a utility program on the Mac).
- - Makes a self-extracting distribution fileset for the Mac.
- - Changes the Mac build of the shared library to link static C runtime
- libraries (instead of the previously used DLLs). This avoids the need
- for certain Metrowerks libraries at runtime (PDFlib.hqx).
- - Expands the Macintosh project file with support for the Java/MRJ, Python,
- Perl, and Tcl bindings.
-
-
- Bindings
- ========
-
- - C:
- - One of the test programs didn't check the return value of PDF_open()
- (pdfclock.c).
- - Corrected a typo in the clean target of the makefile (Makefile.in).
-
- - C++
- - Changes the C++ wrapper such that setting the define BROKEN_STRINGS
- reverts from ANSI C++ string handling to plain old C char pointers.
- As it turned out, ANSI C++ strings are badly supported by many
- compilers. Besides, there was a typo in the old construct (pdflib.hpp,
- pdflib.cpp).
-
- - All SWIG bindings
- - Introduces export pragma for exporting PDFlib routines for the SWIG
- bindings on the Mac (pdflib/pdflib.i, bind/*/pdflib_*.c)
-
- - Java:
- - Makes the Java binding work with the Macintosh Runtime for Java (MRJ)
- 2.1 (PDFlib.mcp).
- - The pdflib Java initialization sleeps some time if the shared library
- cannot be loaded. This is a benefit on systems where the Java console
- immediately disappears on exit.
- - The MSVC project file for the Java binding used file names with the
- path of a beta version for all source files (Java.dsp).
-
- - Perl:
- - The DEFINES variable was missing in the definition of CFLAGS
- (bind/perl/Makefile.in).
- - Makes the Perl binding work on the Macintosh (PDFlib.mcp).
- - Includes a first version of a MakeMaker-compatible Perl script for
- generating a Makefile which more closely fits the Perl environment.
- The Perl-generated Makefile can be used instead of the configure-
- generated one in bind/perl. Note that the Perl script itself must be
- generated by the configure script.
- - Notes how to build the PDFlib Perl binding with recent versions of
- Perl, e.g. 5.005_57 (bind/perl/readme.txt).
-
- - Python:
- - The DEFINES variable was missing in the definition of CFLAGS
- (bind/python/Makefile.in).
- - Makes the Python binding work on the Macintosh (PDFlib.mcp).
- - Makes the test programs exit cleanly in case of error (hello.py,
- pdfclock.py).
-
- - Tcl:
- - The Tcl package index file didn't get updated properly due to
- the LD_LIBRARY_PATH variable not being properly exported
- (bind/tcl/Makefile.in).
- - Fixed a typo in the hello test program. Apparently it worked correctly
- anyway because of some particular circumstances and missing type
- checking in the SWIG-generated code (hello_tcl.pdf).
- - Makes the Tcl binding work on the Macintosh (PDFlib.mcp).
-
- - Visual Basic:
- - The return value of all image open functions was erroneously declared
- void instead of int. We had to change the GUID after this correction,
- but the 2.01 API lost some image functions anyway (pdflib_vb.idl).
-
-
- Documentation:
- - Slightly expands the comments in pdflib.upr.
- - Adds several clarifications and minor additions to the manual, and cuts
- down the size of the PDF manual by optimizing font and image handling.
- - Adds information to the manual about configuring the shared libraries
- for scripting under Unix, Windows, and Mac.
- - Adds descriptions of the few new features to the manual.
- - Removes the bind/*/pdflib_*.doc text files since they don't add any
- real value to the big PDFlib manual which is supplied in PDF format.
- - Brings the sections in pdflib.h in sync with the sections in the main
- manual (although the SWIG-generated doc files are no longer distributed).
-
-
- V2.0 (June 30, 1999)
- =====================
-
- Bug fixes and enhancements:
- - Implements a better scheme for making sure the ordering constraints
- for PDF page descriptions are obeyed while not bothering library
- clients with most of the details (p_gstate.c, p_draw.c, p_text.c).
- The remaining constraints are documented in the manual.
-
-
- Build process, distribution, and platform support:
- - Further tweaks the support for shared libraries on OpenStep 4 (configure.in).
-
-
- Bindings:
- - All bindings:
- - The shared libraries built for a specific language binding inadvertently
- referred to a hard-coded path to the actual PDFlib library (../../pdflib).
- In order to avoid this, the -L and -l options are used instead of
- supplying the relative name of the library file for linking the
- shared libraries or test programs (bind/*/Makefile.in, configure.in).
- This means LD_LIBRARY_PATH has to be set for testing.
-
- - Java:
- - Removes the pointless import statement from the Java samples
- (hello.java, pdfclock.java).
-
- - Tcl:
- - Added LD_LIBRARY_PATH when generating the Tcl package index file
- in order to find the PDFlib shared library (bind/tcl/Makefile.in).
-
-
- Documentation:
- - Explains more of the PDF graphics model, and documents the
- restrictions and interactions among graphics-related functions
- (doc/PDFlib.pdf).
-
-
- V1.92 (June 27, 1999)
- =====================
-
- Bug fixes and enhancements:
- - PDF_translate() erroneously used the same value for both coordinates
- (p_gstate.c).
- - A subtle "unreachable code" warning was issued by the Watcom
- compiler, and he was right (p_util.c).
- - Fixed a bug in the GIF code which caused a crash on the Mac due to
- an improper variable initialization. The bug had been introduced
- in the transition to thread-safe GIF handling in 1.91, and didn't
- affect other platforms.
- - Cleaned up several places which look like empty statements within
- a conditional (p_gif.c).
- - Slightly changes the PDF output. Although legal PDF, some properties
- caused problems with PDFviewer, a non-Adobe PDF viewer for OpenStep
- written by Detlev Droege:
- - Don't count the newline character into the /Length key of colormap
- objects because this leads to problems in the PostScript output
- generated from the PDF (p_image.c).
- - Don't compress inline images (p_image.c).
- - A missing initialization caused a crash on Windows (p_hyper.c).
-
-
- API:
- - Implemented PDF_set_fillrule() for setting the area algorithm used
- by PDF_fill(), PDF_fill_stroke(), PDF_closepath_fill_stroke(), and
- PDF_clip() (pdflib.h, p_gstate.c, p_draw.c). This change was
- requested and implemented by Evgeny Stambulchik
- <fnevgeny@plasma-gate.weizmann.ac.il>.
- - Allows for dynamic font configuration by adding all UPR categories
- to the list of supported parameters in PDF_set_parameter() (p_basic.c,
- p_util.c).
-
-
- Build process, distribution, and platform support:
- - Added some compiler-dependent conditionals in order to make the
- C++ binding work with non-ANSI compilers (bind/cpp/pdflib.hpp, pdflib.cpp).
- - Improves compatibility with OpenStep 4.x:
- - Added an include file required for getopt (util/compile_metrics.c).
- - Enhanced configure for shared libraries on OpenStep 4.x (configure.in).
- - Don't build the C++ binding (configure.in).
- - Removed the additional Makefiles for MS VC++ and the complete port
- subdirectory from the distribution (port/msvc/*).
-
-
- Bindings:
- - SWIG:
- - Made PDF_boot() and PDF_shutdown public in order to avoid problems
- with the SWIG wrapper files which may use them (pdflib.h).
- - Made the exception jump buffers for the SWIG bindings static which
- they should have been anyway (pdflib.i).
- - Adds the define PDFLIB_STATIC to the project files for the SWIG
- bindings on Windows because we don't want to export the core
- PDFlib functions from the DLL in the SWIG case.
-
- - Java:
- - Adds a MS VC++ project file for the Java binding (bind/java/Java.dsp).
-
- - Tcl
- - Adds a MS VC++ project file for the Tcl binding (bind/tcl/Tcl.dsp).
-
- - Perl
- - Adds a MS VC++ project file for the Perl binding (bind/perl/Perl.dsp).
- - Introduces patches and quirks to support PDFlib with ActivePerl on
- Win32. Although our configuration works for a certain software
- combination, all issues are documented (pdflib/pdflib.i, perl/readme.txt).
- - Changed the order in which Perl executable names are searched. The
- more likely name "perl" now is searched first (configure.in).
- - Don't map bool to char in the Perl module on NeXT, since the Perl
- include files contain special handling for bool which breaks with our
- usual defines (configure.in, bind/perl/Makefile.in).
-
- - Python
- - Adds a MS VC++ project file for the Python binding (bind/python/Python.dsp).
-
-
- Documentation:
- - doc/compatibility.txt had some deprecated advice on the use of PDF_close().
- - Added several clarifications and corrections to the manual.
- - Adds a table of tested version numbers for the language bindings to the
- manual.
- - Reduced the number of fonts used in the manual.
- - Delivers the manual in PDF 1.2 format to avoid triggering a PostScript
- error when printing PDF 1.3 files with color images from Acrobat 3.
- - Changed the page size format of the manual in order to cut down the
- total number of pages.
-
-
- V1.91 (June 18, 1999)
- =====================
-
- Bug fixes and enhancements:
- - Fixed a typo involving a printf %s format in an error message (p_font.c).
- - Fixed two NULL pointer accesses for AFMs without a Weight entry
- (p_afmparse.c, p_font.c).
- - Extends the AFM parser which was required for correctly processing certain
- non-Adobe AFM files (p_afmparse.c):
- - Added the new key "Characters" to the AFM parser. The value is ignored
- since it is duplicated in "StartCharMetrics".
- - Changes the handling of the "Version" key in AFMs such that arbitrary
- strings are allowed after the keyword, not only single tokens.
- - Changes the handling of the "Encoding" key in AFMs such that it is
- optional, not required (p_afmparse.c).
- - Allow blank lines and comment lines in upr files (p_util.c).
- - Removed the remaining non-const globals in the GIF module, thus making
- GIF processing thread-safe (p_gif.c, p_intern.h).
- - Adds multithreading for Win32 to the test bed (test/pdftest.c). This
- nicely demonstrates PDFlib's thread-safety.
- - Changes the debug configuration and output machinery to a more flexible
- system with control over individual debug facilities.
- - Adds const to the PDF_set_font declaration and definition.
- - Removed sys_errlist from makepsres in order to make it POSIX compliant.
- - Added some cleanup code for places discovered with a purify session:
- - The resource handling machinery didn't close the handle to the
- resource file (p_util.c).
- - The client-provided resource file name wasn't freed (p_basic.c).
- - The base structure for ligatures in the AFM parser wasn't freed
- (p_afmparse.c).
- - Changed the cleanup routines to make sure the output file is closed
- in case of error (p_basic.c).
- - Two non-initalized members of the PDF struct caused a core dump at
- clean-up time under rare circumstances (p_basic.c, p_image.c).
- - Adjusted the output format of float values to the limits documented in
- the PDF spec (p_util.c).
- - The annotation border style and color were not correctly initialized
- due to a typo (p_basic.c).
- - The transition info didn't get properly initialized (p_hyper.c).
-
- API:
- - (Again) bundles PDF_close_file() and PDF_close_fp() to PDF_close() since
- clients should not be affected by the way in which the PDF had been
- opened.
- - Slightly rearranged some functions to other C modules in order to
- make the API structure and manual clearer.
- - Removed PDF_finalize() from the API and reworked PDF_delete() so
- that it may be used for cleanup in case of error.
- - Changed the error handler's signature to include PDF * to make it
- easier for client-supplied handlers to do a PDF_delete(p) (p_basic.c,
- p_intern.h, pdflib.i).
- - Changed the first argument of the memory management procedures back
- to PDF *, since the client can retrieve his own opaque pointer via
- PDF_get_opaque().
-
-
- Build process, distribution, and platform support:
- - Added several casts in order to pacify the CodeWarrior compiler.
- - Added a Macintosh-encoded variant to the sample text in pdftest.c.
- - The configure script set the TIFF include path even when no TIFF support
- was installed/found (configure.in).
- - Adds the AFM files to the distribution (again), and moves pdflib.upr to
- the directory where the AFMs live (fonts/*.afm, fonts/*.upr).
- - Adds a --with-debug option to the configure script which activates the
- debugging facilities, and implies building PDFlib as a static library.
- - Adds a test for the JPEG library to the configure script since the
- JPEG library is needed by some versions of the TIFF library.
- - Changes a couple of places for compilation with the Watcom compiler:
- - Maps the __WATCOMC__ #define to WIN32 (p_config.h).
- - Introduced a typedef for the first function argument of PDF_new2()
- since the Watcom compiler issues a dubious warning otherwise (pdflib.h).
- - Includes io.h for the unlink() declaration (p_basic.c).
- - Changed the sample images included in the distribution (pdflib.gif,
- tm.g3, acroweb_j.tif)
- - Removed the makepsres program from the distribution.
- - Adds compiler optimize flags by adding $CFLAGS to $DEFINES (configure.in).
-
-
- Bindings:
- - All SWIG bindings:
- - The dist target in the main makefile called the version target, resulting
- in updated access times for the SWIG-generated wrapper files. This in
- turn resulted in SWIG being launched unnecessarily on the client system.
- We now simply touch the wrapper files before preparing the tar file.
-
- - Java:
- - PDF_boot() and PDF_shutdown need not be available to the Java API
- since PDFlib booting is done automatically for the Java binding.
- - The hello example didn't obey the new PDF_findfont() semantics
- (bind/java/hello.java).
-
- - Perl:
- - Fixed a typo (1 should be -1) in the font error handling line (hello.pl).
-
- - C:
- - Moved hello.c and pdfclock.c to a separate directory bind/c.
- - A bug in the configure.in script prevented the test rules for the C
- and C++ bindings from being executed.
- - The C hello example didn't obey the new/open_file semantics
- (bind/c/hello.c).
-
- - C++:
- - Renamed the bind/c++ directory to bind/cpp in order to avoid problems
- with some older build environments (Makefile.in, PDFlib.dsw, configure.in).
- - Reworks the C++ binding in order to make it work with the Watcom compiler:
- - Don't use namespaces
- - Special string handling, including conversion to chars.
- - Adds a macro to change the conversion of C++ string to C chars since
- Watcom doesn't support the ANSI conforming c_str() method.
- - Removes the page loop and the sleep() call which had inadvertently
- been left over.
- - A bug in the configure.in script prevented the test rules for the C
- and C++ bindings from being executed.
- - Changed the PDF constructor in order to allow for client-supplied
- error and memory management routines, and adds default NULL values for
- these.
-
-
- Documentation:
- - Switches to version 7 of the Aladdin Free Public License, and includes
- the license text as PDF (doc/license.pdf).
- - Includes brief API documentation files for the SWIG-generated language
- bindings (bind/*/*.doc).
- - Includes the updated and reworked edition of the PDFlib manual
- (doc/PDFlib.pdf).
-
-
- V1.90 (June 2, 1999)
- ====================
-
- New Features:
- - Makes PDFlib thread-safe by removing the remaining few writable globals.
- - Use magic numbers for image file formats (imagepdf.c)
- - Supports Unix PostScript Resource files (*.upr) for describing the AFM
- and font file names, and an environment variable pointing to the resource
- file.
- - User-defined document information field (in addition to Title, Author, etc.)
- - Unicode-enables bookmarks, text annotations, and document info entries
- (p_hyper.c, p_annots.c, p_text.c).
- - Changed the encoding vectors according to PDF 1.3. The most relevant
- change is the inclusion of /Euro in WinAnsi and PDFDoc encodings
- (ansi_e.h, pdfdoc_e.h)
- - File attachment, launch, link, weblink and text annotations (p_annots.c).
- - Add file type and creator on the Mac (p_basic.c).
- - Nested bookmarks (p_hyper.c).
- - Changes the API name of the bookmark function from PDF_add_outline to
- the more intuitive PDF_add_bookmark (p_hyper.c)
- - Removes the limits on number of pages, page contents, and number of objects
- and introduced dynamic reallocation (p_hyper.c, p_basic.c, p_annots.c).
- - Generates a PDF-1.3 header (Acrobat 4 files). According to the PDF spec
- this should work OK also for older viewers as long as no PDF 1.3
- specific feature is used in the PDF file.
- - Introduces Zlib compression for images and file attachments.
- - Completely reworked the font handling. Font metrics caching now avoids
- many AFM lookups, which dramatically speeds up PDFlib (up to a factor of 20!).
- - Implemented in-core font metrics data. This completely eliminates the
- need for external AFM files. Using the supplied utility compile_metrics
- arbitrary metrics files can be compiled into the PDFlib source code.
- - Adjusted the page size validation to Acrobat 4's larger limits (p_basic.c).
- - New functions to query current font name and size (p_font.c)
- - Introduced version numbers for the shared library and versioning schemes
- for the scripting API (except Python)
- - Eliminated all enums at the API level and replaced them with string
- arguments.
- - Eliminated the individual PDF_close_[TIFF|GIF|JPEG|CCITT|memory_image]
- since PDF_close_image handles it all.
- - User-adjustable debug level.
- - Introduced PDF_new(), PDF_new2(), and PDF_delete, as well as PDF_open_file()
- and PDF_close_file() and PDF_open_fp() and PDF_close_fp().
- - Made the page size parameters float in order to accomodate PDF 1.3.
-
-
- Bindings:
- - Largely improved the Perl, Tcl, and Python bindings.
- - Introduced the Java binding via JNI (bind/java).
- - Introduced a C++ wrapper class for PDFlib (bind/cpp).
- - Introduced versioning if the language supports it (currently
- Perl and Tcl; the Java binding uses transparent shared library versioning).
- - Binds the TIFFlib and zlib libraries into the shared library for
- the PDFlib scripting bindings, thereby making the TIFF and compression
- features available to all SWIG bindings.
- - Improved the SWIG-generated documentation for the scripting APIs.
- - Introduced language-specific exception handling as offered by SWIG.
- Exception handling for Java is done outside of SWIG.
- - Explicitly sets the "C" locale in order to avoid the Java VM messing up
- our decimal separators by setting a bad locale.
- - Introduced a Visual Basic binding with a specialized DLL and a type
- library.
-
-
- Other:
-
- - Restructured the distribution directory tree.
- - Streamlined the API for better scripting support.
- - Added a file which documents changes to the API.
- - Introduced versioning also at the API level and in the shared object naming.
- - Changed the error handler interface to a fixed string, as opposed to a
- variable number of arguments.
- - Introduced error/exception classes which replace the former
- error types, and are passed through to the scripting API.
- - Reworks and cuts down the AFM parser, and makes it re-entrant.
- - Installs NULL error and warning handlers in TIFFlib in order to
- avoid messages from opening corrupt TIFF files. The caller will be
- notified via the return code.
- - Introduced "const" for all char * arguments in the API.
-
-
- V1.0 (February 1999) (not publicly released)
- ============================================
-
- No new featues, only bug fixes and improved platform support.
-
- Platform support:
-
- - Changed all library clients so that main() is declared with return
- type int.
- - Many casts and other minor changes in order to get rid of
- MS Visual C++ 6.0 warnings (*.c, *.h).
- - Included project and workspace files for MS Visual C++ 6.0 in the fileset
- (PDFlib.dsp, PDFlib.dsw).
- - Removed Watcom makefile from the fileset (makefile.wat).
- - Switch to autoconf support (configure, configure.in, Makefile.in)
- - Added Mac build support and file type/creator entries (p_basic.c)
-
-
- Bug fixes:
-
- - Extended close routine (p_gif.c, p_jpeg.c)
- - Page height and width were exchanged in the interface of PDF_begin_page()
- as well as in the manual. Funnily enough, the MediaBox was also written
- with both in the wrong order, thereby correcting things. However, the
- demo clients used the parameters in the intended order. This fix only
- clarifies the meaning of width and height, but doesn't change the
- behavior of clients.
- - PDF output file is no longer closed in the library in order to
- be consistent with the opening in the client. This INCOMPATIBLE
- change means that all library clients now must close the PDF output
- file themselves!
- - Fixed a core dump bug in the TIFF handler (p_tiff.c)
- - Fixes bug where a font could get written to the PDF with wrong
- encoding information.
-
-
- V0.7b2 (August 1998) (only for a single customer)
- =================================================
-
- New features:
-
- - Added CCITT support for passing through G3 or G4 compressed
- bitmap data (p_ccitt.c, pdf.h).
- - Changes to the image interface (p_ccitt.c, p_jpeg.c, p_tiff.c,
- p_gif.c, pdf.h)
-
- Bug fixes:
-
- - Changed the get_2bytes macro to a function since the macro
- didn't guarantee the evaluation order, which lead to problems
- when analyzing JPEGs on BeOS (p_jpeg.c).
- - Added a check for Acrobat-compatible page size (1"-45", or
- 72pt-3240pt) in PDF_begin_page(). This is necessary to work around
- restrictions in Adobe's Acrobat implementation (p_basic.c).
-
- Minor enhancements:
-
- - Several makefile cleanups (makefile.gcc).
-
-
- V0.6 (08 July 1998)
- ===================
-
- New features:
-
- - Added SWIG support, as suggested and basically implemented by
- Rainer Schaaf (Rainer.Schaaf@T-Online.de). SWIG support allows us
- to use PDFlib routines from Tcl, Perl, and Python.
- (makefile, pdflib.i, pdftcl_wrap.c pdfperl_wrap.c, pdfpython_wrap.c,
- pdflib.pm).
- - New directory structure: BINDINGS directory contains subdirectory
- for several PDFlib language bindings. Currently these are
- C, CGI, Perl, Tcl, Python (yes, I know that CGI is not a language).
- - Included scripting samples (BINDINGS/*/pdfclock.[pl|tcl|py],
- BINDINGS/*/hello.[pl|tcl|py]).
- - Added new function PDF_setpolydash, suggested and implemented
- by Evgeny Stambulchik <fnevgeny@plasma-gate.weizmann.ac.il>
- (p_gstate.c, pdf.h).
-
- Bug fixes and minor enhancements:
-
- - Fix trivial (but fatal) free/fclose bug (p_font.c)
- - Slightly change syntax of pdfgraph sample program: fill and
- stroke is denoted by 'F' instead of 'B' (pdfgraph.c)
- - Shorten the version string (pdf.h)
- - Add cast (p_basic.c)
- - Conditionally typedef bool because of conflicts in VC++ (pdf.h and p_port.h)
- - Add cast (p_font.c)
- - Delete old BOOL typedef (pdf.h)
- - Renamed function parseFile to pdf_parseFile in order to avoid name
- clashes with other software packages. This change was requested
- by Evgeny Stambulchik for the xmgr package. This package uses T1lib
- which also includes a copy of Adobe's AFM parser. (afmparse.c,
- afmparse.h, p_font.c).
- - Fixed typo in the Goethe demo text (pdfdemo.c).
- - Adjusted demo data to new setrgbcolor interface (test/graphdata).
- - Add PDF_HAS_BOOL define. However, it doesn't really fix the multiple
- boolean define/typedef/enum problem (p_port.h).
- - Removed const from PDF_info struct members. This change is related
- to SWIG support, although the necessity of the change is not yet
- fully understood (pdf.h).
- - Enhances the AFM parser to recognize AFM files according to the AFM 4.1
- specification, especially the "CharWidth" keyword.
-
-
- V0.5 (25 February 98)
- =====================
- Portability aids, bug fixes and other improvements from several contributors:
-
- - JPEG images could be closed multiply (p_jpeg.c)
- - Introduce Mac and Win32 porting defs (p_port.h)
- - Use define for path separator which is needed for the Mac's ":"
- (p_port.h, p_font.h)
- - Rename structure member private to private_data for C++ compatibility
- (pdf.h, p_font.c, p_gif.c, p_jpeg.c, p_tiff.c)
- - NeXT portability: include libc.h (imagepdf.c, pdfclock.c, pdfgraph.c,
- text2pdf.c)
- - Don't use malloc.h (afmparse.c)
- - Change variable handling in make build process (makefile)
- - Fix bug in octal character representation (p_text.c)
- - Introduce word and character spacing functions (p_text.c)
- - Fix subtle bug in font embedding: fonts with additional data after
- the zeros portion were not properly embedded (p_font.c)
-
- Environment bindings:
- - Introduces BINDINGS directory which will collect several language and
- environment bindings for PDFlib.
- - Sample CGI script for the PDFclock example (BINDINGS/CGI/clock.cgi)
-
- Several bugfixes, due to Detlev Droege's comments after
- testing with his PDFviewer:
-
- - Avoid empty /Filter arrays for uncompressed binary images (p_image.c).
- - Change erroneous number of color components in demo page (pdfdemo.c).
- - Implement consistency check for color components vs. color space
- (p_image.c)
- - Write binary magic number for all files (ASCII and binary) (p_basic.c).
- - Change "Producer" to "Creator" in sample application (hello.c).
- - AFM handler crashed in case the AFM parser gave up on certain AFMs (p_font.c).
- - AFM parser didn't correctly handle newer version 4.0 AFMs (afmparse.c).
- - Use AFM 4.0 key "StdVW" for a more accurate /StemV in font descriptor
- (p_font.c).
- - API CHANGE: Change RGB parameters from byte to float since
- gray values are float parameters too (p_color.c).
-
-
- V0.4 (8 September 97)
- =====================
- First public release.
-
- - Generating multiple PDFs with embedded images resulted in wrong
- XObject numbers for the second and following PDFs. Use image_number
- from the PDF structure instead of a static variable.
- (p_image.c, p_basic.c)
- - Makefile for Watcom C 10.6 included in the distribution, support
- Windows build (makefile.wat).
-