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;
}
-
}