$Id: README 1433 2011-07-01 15:12:30Z jeremias $

==============================================================================
  PDF IMAGE SUPPORT FOR APACHE FOP  -  README
==============================================================================

Contents of this file:
 - What's in here?
 - Requirements
 - Legal Information
 - Where to get help?
 - How do I enable PDF image support in FOP?
 - Notes on PDF image support for output formats other than PDF
 - Known Issues
 - Contributors
 - Release Notes

==============================================================================


What's in here?
---------------

This package contains classes which add support using PDF images in
fo:external-graphic elements when you generate PDF files. This means you can
write something like:

<fo:external-graphic src="my-doc.pdf"/>

Implementation notes:

* This package uses the Apache PDFBox PDF library for parsing the PDF
  files as FOP's PDF library is a write-only library.

* PDF image support is done differently for PDF output than for the 
  other output formats. For PDF output, the plug-in tries to transfer 
  the various PDF objects 1:1 to the target PDF. For the other output 
  formats, Apache PDFBox is used to render the PDF to a Graphics2D 
  object (Java2D). PDFBox still has some problems with rendering certain 
  PDFs. 
  Rather, consider helping out in the PDFBox project to improve the 
  code. This plug-in only plays the adapter between FOP and PDFBox. It 
  is not responsible for correct rendering of the PDF.

* Individual pages inside a multi-page PDF can be accessed by using a URI
  fragment in the following form: <uri>#page=<nr>
  Example: http://localhost/mydoc.pdf#page=7
  Note: this only works on URIs, not plain file names in which case you'll
  get an error. Plain file names are illegal in XSL-FO anyway, strictly
  speaking.
  
* If you enable PDF/A or PDF/X functionality, the resulting PDF may not be
  a compliant file since the code isn't sophisticated enough to ensure that
  the rules of PDF/A and PDF/X are respected when the PDF file is embedded.
  So if you enable PDF/A and/or PDF/X, you should refrain from using this
  package.

* If the PDF you want to embed has annotations, be prepared that they may
  not be transferred correctly.

* Apache FOP currently generates PDF 1.4. If you include a PDF with a
  higher PDF version, the results may be unpredictable.

* This package does not work with FOP 0.93, 0.94 or any earlier version.
  You will need a later release or the code from FOP Trunk.

* Some PDF may not be processed correctly with FOP 0.95 due to bugs in
  its PDF library. You may need to upgrade Apache FOP in this case.

* Using PDF files is NOT supported inside SVG, only in XSL-FO.


    
Requirements
----------------

This plug-in has the following requirements:
- Apache PDFBox 2.0 or later
- Apache XML Graphics Commons 2.4 or later (for the image converter)
- Apache XML FOP 2.5 or later (for the FOP functionality)
- Java 1.7 or later

Note: for some problems related to the PDF plug-in, Apache FOP 2.4 or later
is required. A number of bugs had to be fixed in FOP's PDF library.


Legal Information
---------------------

This package is published under the Apache License version 2.0. For the license
text, please see the following files:
- LICENSE
- NOTICE

Legal information on third-party libraries used by this plug-in can be
found in the "lib/README.txt" file.

    
Where to get help?
---------------------    

See: http://xmlgraphics.apache.org/fop/gethelp.html


How do I enable PDF image support in FOP?
-----------------------------------------

Just add the fop-pdf-images.jar and lib/pdfbox-*.jar (including the other
minimal dependencies for PDFBox) to the classpath on the same classpath
level as you put fop.jar.

You can then use URIs referring to PDF files inside fo:external-graphic and
fox:external-document elements.


Notes on PDF image support for output formats other than PDF
------------------------------------------------------------

Please note that this plug-in was written mostly for PDF production. For
other FOP output formats, the PDF is converted to a vector or bitmap image
using Apache PDFBox which is not yet a full-fledged PDF viewer. There may
be limitations concerning the quality. If you run into a problem displaying
PDF for any output format other than PDF, you will need to ask the PDFBox
community for help. Or you can help the Apache PDFBox project to improve
their PDF interpreter.

The Apache PDFBox website: http://pdfbox.apache.org/


Known Issues
---------------

- If Acrobat fails to open the generated PDF, it maybe be due to a bug in FOP
  that was fixed in revision 833375. 

- When importing multiple pages from the same PDF, the same PDF objects from
  the original may be imported anew for each page. There is currently no
  easy way to avoid this.

Contributors
---------------

- Jeremias M�rki (original author)
- Krister Wicksell
- Vincent Hennebert
- Simon Steiner
- Luis Bernardo
- Athanasios-Dimitrios Giannimaras

Versions prior to 2.1 (i.e. prior to the move to the Apache XML Graphics
project) can be downloaded from here:
http://www.jeremias-maerki.ch/development/fop/index.html


==============================================================================
  RELEASE NOTES
==============================================================================

Version 2.7
=========================

Changes:
FOP-3034: Update PDFBox to 2.0.24
FOP-3032: Allow to embed native PDF in AFP
FOP-3020: Add space to standard position for font merge
FOP-3009: Avoid merging fonts with different number of cmap formats
FOP-3001: Deduplicate streams in arrays

Version 2.6
=========================

Changes:
FOP-2951: Add uniquename to xobj form
FOP-2965: Keep streams with DCT compression
FOP-2971: Update unique name inside patterns
FOP-2974: Handle space in COSName
FOP-2979: Update PDFBox to 2.0.19

Version 2.5
=========================

Changes:
FOP-2904: Handle object for boundingbox
FOP-2922: Syntax error after writing content stream
FOP-2933: PDF to PDF checkbox missing

Version 2.4
=========================

Changes:
FOP-2802: Java 10 PDF/SVG to Image box not shown
FOP-2812: Update PDFBox to 2.0.11
FOP-2836: Update PDFBox to 2.0.13
FOP-2840: Image mask in PDF not rendered to PS
FOP-2841: PDF to PDF with merge-fonts checkbox misaligned
FOP-2856: Support compile on Java 12
FOP-2873: Update to PDFBox 2.0.16
FOP-2879: Add caching to avoid parsing content stream
FOP-2882: Allow PDFFormXObject to improve performance

Version 2.3
=========================

Changes:
FOP-2251: PDF to Postscript not showing transparency
FOP-2715: Optimise PDFWriter writing out floats
FOP-2719: PDF to PS NPE when encode param not set
FOP-2720: PDF to PCL exception on clipping
FOP-2723: PDF to PDF deduplicate more types of streams
FOP-2739: Upgrade to PDFBox 2.0.7
FOP-2739: Avoid rastering PDF with Smask to image
FOP-2746: PDF to PDF NPE during structuretree merge
FOP-2750: Use streams for OTF subsetting
FOP-2753: PDF to PS allow fop fonts as fallback
FOP-2754: Error when merging True Type font with CFF PDF font

Version 2.2
=========================

Changes:
- Move to PDFBox 2
- Deduplicate PDF streams
- PDF to PS deduplication of images
- Remove xobj type=form
- Merge fonts (off by default)
- Support PDF shading to PS
- Merging of Tagged (Accessible) PDF
- Bugfix for handling of strings (the check method for US-ASCII had a bug)

Version 2.0 (2010-10-28)
=========================

Changes:
- Moved from PDFBox (org.pdfbox) to Apache PDFBox (org.apache.pdfbox). Note
  that Apache PDFBox is currently in incubation at the ASF. More info at:
  http://incubator.apache.org/pdfbox/
- Added support for "null" objects in PDF.
- Added support for FOP's new intermediate format (and the new output
  implementations).
- Fixed transfer of untouched streams.
- Added an ImageConverter that extends Apache XML Graphics Commons' image
  loader framework with a converter from PDFBox to Java2D. This enables PDF
  display for all of FOP's output formats. See the restrictions mentioned above.
- Fix re-encoding problem for binary strings (for example lookup tables for
  /Indexed color spaces).
- Taken advantage of https://issues.apache.org/jira/browse/PDFBOX-507 to
  avoid warning messages in COSDocument's finalizer method.
- Fixed NullPointerException if a page has no content stream (empty page).
- Added limited support for AcroForms (PDF forms).
- Using CropBox instead of MediaBox, if available, to define the portion of the
  PDF to display.
- Added support for the /Rotation entry in the Page dictionary.
- Handled the case where the Resources dict of a page is missing and therefore
  inherited.
- Fixed a problem with Crop/MediaBox dictionaries not starting at coordinate 0,0.
- Added on-load hook to decrypt a PDF, for example.
- Added support for merging AcroForms (Thanks to Vincent Hennebert)
- Updated Apache PDFBox to version 0.8.0 to 1.3.1. The plug-in now requires at
  least J2SE 1.5!


Version 1.3 (2008-11-28)
=========================

Changes:
- Fixed a NullPointerException when the MediaBox is inherited.
- An invalid page number is now properly handled.


Version 1.2 (2008-04-04)
=========================

Changes:
- Fixed handling of rotated pages (Thanks to Krister Wicksell)
- Fixed "PDFObject already has an object number" error occurring with certain
PDFs.

Version 1.1a (2008-01-22)
=========================

Changes:
- Disabled the in-memory caching of PDF files due to an intermittent bug that
appeared due to reuse of a PDDocument. This needs to be fixed in PDFBox.
- Change in PDFBox: Don't warn about that COSDocument isn't closed. Instead,
the object is closed automatically when it's collected.

Version 1.1 (2008-01-14)
=========================

Changes:
- Adjustments to changes in FOP Trunk after the introduction of a new image
loading package (in Apache XML Graphics Commons).
- Support for addressing every single page in a PDF, not just the first.

Note: This version will only work with FOP Trunk (revision 611768 or later) or
with FOP 0.95 when it is released.

Version 1.0 (2007-08-06)
=========================

This is the initial release. Feedback is welcome as this is very new code.

Note: Version 1.0 contains a modified version of PDFBox! I'll send a patch
with the change to the PDFBox project so hopefully the next version of PDFBox
will not need such a modification.

Note: Version 1.0 contains a development version of Apache FOP from the
following branch:
https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_PDF_in_PDF/
As soon as the code is stabilized this will be merged into the Trunk.

