From branch: char encoding for pdf output. From branch: delete output file if error occured. From branch: add CCITT TIFF file support for embedding in pdf. Add markers to page when areas added. When an area is added that is created by an FO that contains markers then the markers can also be added. There are four types of positions for markers. Retrieve markers from page. When doing the static areas the markers will need to be available for retrieving. The marker can then be layed out as normal. Implement spacing between blocks and the adjustment to actual height when adding areas. Implement force page breaks. Implement page columns. Each column will need to layout until the page is complete. Need to improve the way that breaks are stored. Implement footnote. A footnote creates an inline parent and a block that is put into the footnote area. Implement floats. A float adds an anchor inline or block area to the parent and a block is added to the nearest reference area. The reference area layout manager needs to check it fits and adjust ipd available to line areas. Sort out writing directions and stacking. All blocks and line areas can be stack in different directions depending on writing mode and orientation. Need to ensure that all areas can be stacked properly in the correct direction. Design FOP API interfaces. Integrate with Jakarta Avalon: logging, configuration, URI resolver, component management, image caching etc. Make it possible to redo static regions by determining which areas need a new layout for new page. Investigate using form XObject for repeated areas such as static and table header/footer only when the area does not change. Investigate using form XObject for svg images this can make the svg cacheable in the pdf doc PDF and PS transcoders now have a common base class. It also optionally supports Avalon Logging and Configuration. Support for plugging in an EntityResolver into Batik is now included. Implemented on-the-fly stream output (less buffering leads to decreased memory usage and increased speed). General refactoring of the PDF library to centralize certain behaviour and reduce redundancy. Some memory allocation optimizations. Enhanced PDF encryption support so it is optional depending on the availability of JCE and/or cryptographic algorithms. Added PDF encryption support (40bit RC4, PDF 1.3 level). Moved all sources from src/org/** to src/java/org/**. Port of the PDF TextPainter to PostScript. Support for SEG_QUADTO (curves). Some support for viewport traits (background and borders). Brought back the PostScript renderer. Compared to the branch it has a cleaner separation of PostScript generation code from renderer-specific code. Fixed bug #16257: Get ascender/descender from OS/2 table if the ones in hhea are zero (TrueType fonts). Fixed bug #15877: ArrayIndexOutOfBoundException with certain TrueType fonts. Reserved name indexes were not ignored. Moved general font classes away from the PDF-dependent places to org.apache.fop.fonts. Various detail improvements to make the code easier to understand. No semantical changes. Moved all TrueType font related classes to org.apache.fop.fonts.truetype. Moved all Adobe Type 1 font related classes to org.apache.fop.fonts.type1. Added a PFB parser for proper decoding of PFB files. Updated to Xerces 2.2.1 and Xalan 2.4.1. Updated all the related files and made sure all contrib builds work again. Removed necessity for a buildtools.jar. Correct ordering of loca table in embedded true type fonts. Fix taken over from maintenance branch. New dev fonts.xml file to store some useful links and information about font work Added links to the Eyebrowse mail list archives. Added help and unsubscribe email addresses for the fop-user & fop-dev lists. Rewrote/rearranged some of the verbiage for better structure. Valid URIs for all xdoc DTD declarations. Some minor changes for xdoc documents that were discovered to be invalid after the DTD declarations were fixed. Changed tabs.xml so that the 2nd tab on our site will now read "Redesign" instead of "dev". Better links to Bugzilla. Reorganized content into a checklist. Added support for markers in fo tree. Markers added when valid to proper fo objects. Added compliance document showing table of fop compliance. From branch: fixed jpeg icc profile error with acrobat 5. Awt viewer improvements - uses java PropertyResourceBundle for locale strings, cleaned up code and removed old classes and other small improvements Started list layout implementation. Improved pagination and page number for page sequences. Implemented border and background for many areas. Started table layout implementation. Added link for patch queue. Fixed npe when a page has several forward links. Use HashSet to store unresolved references (pages) in area tree to prevent duplication. Implemented example caching mechanism to store pages. When a page contains a forward reference that has not been resolved then it can save the page contents to disk to save memory. Linking to a specific page and a named destinations of an external PDF file. (see www.adobe.com/products/acrobat/pdfs/c01acrotip.pdf) Started table layout managers. Implemented render pages model. Implemented link part of basic link. Internal destination is resolved. The link is a trait on the inline parent. Got bookmark extension working. Make sure the extension id references are resolved. Once the data is fully resolved then implement a way for the pdf renderer to add the bookmarks. See branch for code how to add bookmarks. add the pdf side part of bookmark extension complete resolving id areas Add id areas to page when area added. When the layout managers add an area to the page it can also add the id information. Resolve id references on other pages, extensions. When an id is added to a page this will allow id references to be resolved. Fixed a bug in the TTFReader where it tried to read values for the end character. Handles unsupported non-unicode cmap better. Added logging. Add static areas to page The static areas will need to be handled in a similar way to the flow except the bpd is unlimited and it will need to reset and repeat for each page. Implemented leader, get leader working and sort out how inline objects adjust to the ipd Calculate line height. The line height is calculated while finding breaks. Improved alignment to use the breaks and context. Updated batik with change to TextPainter interface and UserAgent. Improved PDFTextPainter to handle more types of text. Added a RunLengthEncode filter for the PostScript renderer. Replaced the PostScript filters with the refactored ones from the maintenance branch. First batch of changes in preparation for adoption of Avalon patterns. Only changes on logging for now. Mostly usage of LogEnabled contract interface. Improve build process for more flexibility when external jars change. Changed to use -projecthelp option from Ant 1.5 instead of "usage" target. Updated Avalon Framework JAR (with Log4J support, Bug 11274) Copies across overview for javadocs build. chmod antRun in build.sh. Minor patch for the TTFReader to remove an unreachable statement compiler warning workaround for eps files that have invalid float bounding box values float values are rounded off according to the spec the %%HiResBoundingBox should be used instead for floating position values Simplified ASCII85Filter computation, thereby hopefully working around JVM bugs added understanding layout manager document fixed master-name and a test setup problem moved embed font info into the render.pdf package reduced dependancy on Configuration separated the specific PDFRender functionality from the CTM class and created a small utility class for the renderer to use FontState only used for calculations, stores font name and size on area tree Improved PDFTextPainter to handle different text better Applied root element viewBox transform for svg to pdf transcoder image test for formats, viewport and scaling added various SVG to PDF tests for trancoder and including in fo Implemented viewport and scaling for images Implemented viewport and scaling for instream svg Removed old area tree Optimised gstate usage in pdf files to minimize file size Optimised function usage, reuses old functions in pdf files to minimize file size Added transparancy to pdf Outputs images immediately to the stream, also drops reference to image data Added resource context for pattern resources Added pdf transcoder build target Made PDF streams externally configured Fixed svg linking in pdf, works with viewbox and url Start to mif implementation with new structure handlers New structure handler for structure type documents, rtf, mif and for better layout processing. Changed extensions to allow for external xml Can have a default element mapping for extensions New area tree model New renderer model Added handlers for xml in renderer svg now in an xml handler, FOP can be used without batik Removed old xerces and xalan Updated to use Jaxp Updated to use new avalon framework logger Redid image handling so it can use a cache and synchronizes properly only on the current image while loading Changed bookmark extension, now requires a wrapping element bookmark New layout system using layout managers Implemented handlers for whitespace handling that collapse whitespace better in various places Changed area tree xml format to match the area tree hierarchy