Bugfix#53468: Amendments made in order to compile against FOPv1.1. Based on work by Matthias Reischenbacher.


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop-pdf-images/trunk@1373819 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/fop-1.1rc1.jar b/lib/fop-1.1rc1.jar
new file mode 100644
index 0000000..34becb4
--- /dev/null
+++ b/lib/fop-1.1rc1.jar
Binary files differ
diff --git a/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoolean.java b/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoolean.java
index e664817..2db9b74 100644
--- a/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoolean.java
+++ b/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoolean.java
@@ -21,7 +21,6 @@
 
 import java.io.IOException;
 import java.io.OutputStream;
-import java.io.Writer;
 
 import org.apache.commons.io.output.CountingOutputStream;
 
@@ -51,23 +50,10 @@
         return this.value;
     }
 
-    /** {@inheritDoc} */
     @Override
-    protected int output(OutputStream stream) throws IOException {
+    public int output(OutputStream stream) throws IOException {
         CountingOutputStream cout = new CountingOutputStream(stream);
-        Writer writer = PDFDocument.getWriterFor(cout);
-        if (hasObjectNumber()) {
-            writer.write(getObjectID());
-        }
-
-        writer.write(Boolean.toString(getValue()));
-
-        if (hasObjectNumber()) {
-            writer.write("\nendobj\n");
-        }
-
-        writer.flush();
+        PDFDocument.flushTextBuffer(new StringBuilder(Boolean.toString(getValue())), cout);
         return cout.getCount();
     }
-
 }
diff --git a/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java b/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java
index b380c0f..8fa3f35 100644
--- a/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java
+++ b/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java
@@ -282,12 +282,12 @@
         }
     }
 
-    private void transferDict(COSDictionary orgDict, PDFDictionary targetDict,
+    private void transferDict(COSDictionary orgDict, PDFStream targetDict,
             Set filter) throws IOException {
         transferDict(orgDict, targetDict, filter, false);
     }
 
-    private void transferDict(COSDictionary orgDict, PDFDictionary targetDict,
+    private void transferDict(COSDictionary orgDict, PDFStream targetDict,
             Set filter, boolean inclusive) throws IOException {
         Iterator iter = orgDict.keySet().iterator();
         while (iter.hasNext()) {
@@ -350,9 +350,9 @@
         form = pdfDoc.addFormXObject(null, pageStream,
                 (pageResources != null ? pageResources.makeReference() : null), key);
         if (originalPageContents != null) {
-            transferDict(originalPageContents, form, filter);
+            transferDict(originalPageContents, pageStream, filter);
         }
-        transferDict(page.getCOSDictionary(), form, page2form, true);
+        transferDict(page.getCOSDictionary(), pageStream, page2form, true);
         AffineTransform at = form.getMatrix();
         PDRectangle mediaBox = page.findMediaBox();
         PDRectangle cropBox = page.findCropBox();
diff --git a/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxPDFImageHandler.java b/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxPDFImageHandler.java
deleted file mode 100644
index ba18c26..0000000
--- a/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxPDFImageHandler.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Id$ */
-
-package org.apache.fop.render.pdf.pdfbox;
-
-import java.awt.Point;
-import java.awt.Rectangle;
-import java.io.IOException;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.apache.xmlgraphics.image.loader.Image;
-import org.apache.xmlgraphics.image.loader.ImageFlavor;
-
-import org.apache.fop.pdf.PDFFormXObject;
-import org.apache.fop.pdf.PDFPage;
-import org.apache.fop.pdf.PDFXObject;
-import org.apache.fop.render.RendererContext;
-import org.apache.fop.render.pdf.PDFImageHandler;
-import org.apache.fop.render.pdf.PDFRenderer;
-import org.apache.fop.render.pdf.PDFRendererContextConstants;
-
-/**
- * Implementation of the {@link PDFImageHandler} interface
- * which can use PDFBox to parse an existing PDF file and write that to the
- * target PDF as a Form XObject.
- */
-public class PDFBoxPDFImageHandler extends AbstractPDFBoxHandler implements PDFImageHandler {
-
-    /** logging instance */
-    protected static Log log = LogFactory.getLog(PDFBoxPDFImageHandler.class);
-
-    private static final ImageFlavor[] FLAVORS = new ImageFlavor[] {
-        ImagePDF.PDFBOX_IMAGE,
-    };
-
-    /** {@inheritDoc} */
-    public PDFXObject generateImage(RendererContext context, Image image,
-            Point origin, Rectangle pos)
-            throws IOException {
-        PDFRenderer renderer = (PDFRenderer)context.getRenderer();
-        ImagePDF pdfImage = (ImagePDF)image;
-        PDFPage pdfPage = (PDFPage)context.getProperty(
-                PDFRendererContextConstants.PDF_PAGE);
-
-        PDFFormXObject form = createFormForPDF(pdfImage, pdfPage);
-        if (form == null) {
-            return null;
-        }
-
-        float x = (float)pos.getX() / 1000f;
-        float y = (float)pos.getY() / 1000f;
-        float w = (float)pos.getWidth() / 1000f;
-        float h = (float)pos.getHeight() / 1000f;
-        renderer.placeImage(x, y, w, h, form);
-
-        return form;
-    }
-
-    /** {@inheritDoc} */
-    public int getPriority() {
-        //Before built-in handlers in case someone implements a PDF -> Graphics2D converter
-        return 50;
-    }
-
-    /** {@inheritDoc} */
-    public Class<?> getSupportedImageClass() {
-        return ImagePDF.class;
-    }
-
-    public ImageFlavor[] getSupportedImageFlavors() {
-        return FLAVORS;
-    }
-
-}
diff --git a/src/java/org/apache/fop/render/pdf/pdfbox/PDFString.java b/src/java/org/apache/fop/render/pdf/pdfbox/PDFString.java
index a3f0e2a..8ad979a 100644
--- a/src/java/org/apache/fop/render/pdf/pdfbox/PDFString.java
+++ b/src/java/org/apache/fop/render/pdf/pdfbox/PDFString.java
@@ -22,7 +22,6 @@
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
-import java.io.Writer;
 
 import org.apache.commons.io.output.CountingOutputStream;
 
@@ -115,22 +114,10 @@
         return this.binary;
     }
 
-    /** {@inheritDoc} */
     @Override
-    protected int output(OutputStream stream) throws IOException {
+    public int output(OutputStream stream) throws IOException {
         CountingOutputStream cout = new CountingOutputStream(stream);
-        Writer writer = PDFDocument.getWriterFor(cout);
-        if (hasObjectNumber()) {
-            writer.write(getObjectID());
-        }
-
-        writer.write(PDFText.escapeText(getString()));
-
-        if (hasObjectNumber()) {
-            writer.write("\nendobj\n");
-        }
-
-        writer.flush();
+        PDFDocument.flushTextBuffer(new StringBuilder(PDFText.escapeText(getString())), cout);
         return cout.getCount();
     }
 
@@ -147,5 +134,4 @@
         }
         return true;
     }
-
 }