|
|
A Free Java-PDF library
by Bruno Lowagie
and Paulo Soares
|
[Home] |
[Download] |
[FAQ] |
[Links] |
[Docs] |
[SourceForge] |
[Mail Archives] |
[MailingList] |
[Amazon] |
[CVS] |
- Omission of the PdfListener-interface
- Omission of the PdfRoot-object
- Changes in the way pages and page are managed
- Outlines
- All Chapters and Sections are put in an outline tree
- Possibility to underline/strike chunks
- Nested lists
- Better management of Page Resources (1 Resource Dictionary per page)
- Destinations (doesn't work yet)
- Bugfix: PNG-support and Rotation (fixed by Paulo Soares)
- Bugfix: Error in class Watermark fixed
- Possibility to add graphic elements (lines, curves,...) with the Graphic-object.
- Implementation of the Anchor-object for PDF (not yet as I want it to be)
- Possibility to add Text Annotations
- Bugfix: pagenumbers were reals. This gave problems in Ghostview
- Bugfix: some shades of Gray gave problems in the Gif Color Table
- BugFix: when you changed the backgroundcolor of the rectangle that describes
the pagesize of a document, this color was not shown on the document.
- Bugfix: centering of images
- Support of Png-images (by Paulo Soares)
- Fonts of type Symbol/Zapfdingbats were not shown on some devices
- Minor bugfixes concerning tables
- Support of Jpeg-images
- Support of Gif-images
- Some errors in the metrics are corrected using an AFM-parser
written by Stefan Mainz.
- I made some changes in the class
PdfFont .
Some methods are moved to the class PdfFontMetrics .
I also solved a bug submitted by Brent Stains, who had a list of
names that he'd liked to put in a single cell. The HTML equivalent
was "<TD>name1<BR> name2<BR>....</TD>".
- If you ran the old Test-class on a PC (Windows), character 128 to 159
is replaced by a question mark. I solved this problem by specifying
the encoding (latin1) when I invoke
getBytes() or
when I construct a new String .
- The use of color is added to the library
- I made some new classes in package com.lowagie.text:
- class Anchor extends Phrase implements Element
- class BadElementException extends DocumentException
- class Cell extends Rectangle implements Element
- class Chapter extends Section implements Element
- class Chunk implements Element
- interface DocListener extends EventListener
- class Document implements DocListener
- class DocumentException extends Exception
- abstract class DocWriter implements DocListener
- interface Element
- class Font implements Comparable
- class Header extends Meta implements Element
- class HeaderFooter extends Rectangle
- class List implements Element
- class ListItem extends Paragraph implements Element
- class Meta implements Element
- class PageSize
- class Paragraph extends Phrase implements Element
- class Phrase extends ArrayList implements Element
- class Rectangle implements Element
- class Row implements Element
- class Section extends ArrayList implements Element
- class Table extends Rectangle implements Element
I have also made some classes to generate HTML:
- class HtmlWriter extends DocListener
- class HtmlEncoder
- class HtmlAttributes extends TreeMap
and XML:
- class XmlWriter extends DocListener
The following classes in com.lowagie.text.pdf are new or have been changed in a drastic way.
- class PdfBody, PdfCatalog, PdfInfo have become inner classes
- class PdfCell extends Rectangle
- class PdfChunk extends PdfString
- class PdfDocument extends Document implements DocListener, PdfListener
- class PdfLine
- class PdfListener extends EventListener
- class PdfRectangle extends Rectangle
- class PdfTable extends Rectangle
- class PdfWriter extends DocWriter implements PdfListener
- Document are now generated in a whole other way:
- constructing a document is a lot more userfriendly
- documents are now written directly to an
OutputStream .
- I reinitialized all the versions of the Pdf Classes (version numbers)
- Most references to the reference manual version 1.2 are changed into
references to the reference manual version 1.3.
- I made a distinction between a
PdfException and a
BadPdfFormatException (for future use)
- Some extra methods were added to check the type of a
PdfObject .
- The method type() was removed from the
PdfPrintable -interface.
The method toPdfString() was alse removed. A PdfString can now
be constructed with a PdfPrintable as parameter.
- Some methods are made final to improve performance (more will follow).
- I am changing most of the String manipulations into
StringBuffer
or ByteArrayOutputstream manipulations.
This avoids creating many temporary strings and improves the performance.
- The content of each
PdfObject is now stored as an array of byte.
The method toPdf() returns byte[] . This was necessary because
the constructor new String(byte[] bytes) and the method
toBytes() did funny things with some bytes.
On UNIX everything worked just fine, but on Windows every PDF document
opened correctly (because the PDF syntax was still OK), however since some
bytes of the stream were corrupted, the streams were never decompressed
and every page remained blank...
This was caused by: DATA TRANSFER PROBLEMS ON WINDOWS
see:
http://java.sun.com/products/jdk/1.1.7B/README
Or run this code on a windows PC to understand the problem:
Encoding.java.
- I have made a static final list of the most common
PdfName -objects.
This way these objects are constructed only once. There is no more need
to catch a BadPdfFormatException .
PdfName has been made comparable; Items in a
PdfDictionary are now sorted alfabetically.
PdfStream -object are now compressed.
This way the size of the generated PDF-documents
has been reduced a lot.
- 4 new functions have been added to
PdfDocument.java :
- public int left(int margin)
- public int right(int margin)
- public int top(int margin)
- public int bottom(int margin)
- I changed the values of the static variables concerning the size of
a font. You can still use them, but they aren't really necessary anymore.
You have now the freedom to choose any size you want (as long as it's an
integer).
|
[History Overview] |
Page Updated: $Date: 2003/09/23 13:16:13 $ Copyright © 1999, 2000, 2001 by Bruno Lowagie,Adolf Baeyensstraat 121, 9040 Gent, BELGIUM
|
Read the Privacy Policy at lowagie.com mailto:itext-questions@lists.sourceforge.net
|
|