diff options
author | Jeremias Maerki <jeremias@apache.org> | 2008-07-25 12:44:20 +0000 |
---|---|---|
committer | Jeremias Maerki <jeremias@apache.org> | 2008-07-25 12:44:20 +0000 |
commit | b681486f5c6d36ac028ddee082b7b8c58144f576 (patch) | |
tree | 2d1b7b10c4132ab711ee9fd37f856aca8a597c53 /src/java/org/apache/fop/render/pdf | |
parent | 2d83907e2d37f04aa8bebd938b737189d59eb62d (diff) | |
parent | 92df262a0778ee539c849454be2810621dac1b7e (diff) | |
download | xmlgraphics-fop-b681486f5c6d36ac028ddee082b7b8c58144f576.tar.gz xmlgraphics-fop-b681486f5c6d36ac028ddee082b7b8c58144f576.zip |
Merge from Trunk revisions 677589 to 679734.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign@679781 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org/apache/fop/render/pdf')
18 files changed, 130 insertions, 131 deletions
diff --git a/src/java/org/apache/fop/render/pdf/AbstractImageAdapter.java b/src/java/org/apache/fop/render/pdf/AbstractImageAdapter.java index caf8928ac..cbaac4e55 100644 --- a/src/java/org/apache/fop/render/pdf/AbstractImageAdapter.java +++ b/src/java/org/apache/fop/render/pdf/AbstractImageAdapter.java @@ -5,9 +5,9 @@ * 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. @@ -48,7 +48,7 @@ public abstract class AbstractImageAdapter implements PDFImage { private String key; /** the image */ protected Image image; - + private PDFICCStream pdfICCStream = null; /** @@ -77,7 +77,7 @@ public abstract class AbstractImageAdapter implements PDFImage { protected ColorSpace getImageColorSpace() { return image.getColorSpace(); } - + /** {@inheritDoc} */ public void setup(PDFDocument doc) { @@ -88,7 +88,7 @@ public abstract class AbstractImageAdapter implements PDFImage { } if (doc.getProfile().getPDFAMode().isPDFA1LevelB()) { if (pdfCS != null - && pdfCS.getColorSpace() != PDFDeviceColorSpace.DEVICE_RGB + && pdfCS.getColorSpace() != PDFDeviceColorSpace.DEVICE_RGB && pdfCS.getColorSpace() != PDFDeviceColorSpace.DEVICE_GRAY && prof == null) { //See PDF/A-1, ISO 19005:1:2005(E), 6.2.3.3 @@ -107,7 +107,7 @@ public abstract class AbstractImageAdapter implements PDFImage { protected ICC_Profile getEffectiveICCProfile() { return image.getICCProfile(); } - + private static PDFICCStream setupColorProfile(PDFDocument doc, ICC_Profile prof, PDFDeviceColorSpace pdfCS) { boolean defaultsRGB = ColorProfileUtil.isDefaultsRGB(prof); @@ -154,32 +154,32 @@ public abstract class AbstractImageAdapter implements PDFImage { public boolean isTransparent() { return false; } - + /** {@inheritDoc} */ public PDFColor getTransparentColor() { return null; } - + /** {@inheritDoc} */ public String getMask() { return null; } - + /** {@inheritDoc} */ public String getSoftMask() { return null; } - + /** {@inheritDoc} */ public PDFReference getSoftMaskReference() { return null; } - + /** {@inheritDoc} */ public boolean isInverted() { return false; } - + /** {@inheritDoc} */ public boolean isPS() { return false; @@ -194,7 +194,7 @@ public abstract class AbstractImageAdapter implements PDFImage { public void populateXObjectDictionary(PDFDictionary dict) { //nop } - + /** * Converts a ColorSpace object to a PDFColorSpace object. * @param cs ColorSpace instance diff --git a/src/java/org/apache/fop/render/pdf/CTMHelper.java b/src/java/org/apache/fop/render/pdf/CTMHelper.java index e2d29f768..ced025ea3 100644 --- a/src/java/org/apache/fop/render/pdf/CTMHelper.java +++ b/src/java/org/apache/fop/render/pdf/CTMHelper.java @@ -5,9 +5,9 @@ * 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. @@ -16,7 +16,7 @@ */ /* $Id$ */ - + package org.apache.fop.render.pdf; import java.awt.geom.AffineTransform; @@ -37,7 +37,7 @@ public final class CTMHelper { * <p>Converts the sourceMatrix to a string for use in the PDFRenderer cm operations.</p> * <p>For example: * <pre> - * org.apache.fop.area.CTM ctm = + * org.apache.fop.area.CTM ctm = * new org.apache.fop.area.CTM(1.0, 0.0, 0.0, 1.0, 1000.0, 1000.0); * String pdfMatrix = org.apache.fop.render.pdf.CTMHelper.toPDFString(ctm); * </pre> @@ -58,7 +58,7 @@ public final class CTMHelper { } /** - * <p>Converts the AffineTransform instance to a string for use in the PDFRenderer + * <p>Converts the AffineTransform instance to a string for use in the PDFRenderer * cm operations.</p> * * @param transform The matrix to convert. @@ -83,21 +83,21 @@ public final class CTMHelper { } private static String constructPDFArray(double[] matrix) { - return PDFNumber.doubleOut(matrix[0], 8) + " " - + PDFNumber.doubleOut(matrix[1], 8) + " " - + PDFNumber.doubleOut(matrix[2], 8) + " " - + PDFNumber.doubleOut(matrix[3], 8) + " " - + PDFNumber.doubleOut(matrix[4], 8) + " " + return PDFNumber.doubleOut(matrix[0], 8) + " " + + PDFNumber.doubleOut(matrix[1], 8) + " " + + PDFNumber.doubleOut(matrix[2], 8) + " " + + PDFNumber.doubleOut(matrix[3], 8) + " " + + PDFNumber.doubleOut(matrix[4], 8) + " " + PDFNumber.doubleOut(matrix[5], 8); } - + /** * <p>Creates a new CTM based in the sourceMatrix.</p> * <p>For example: * <pre> - * org.apache.fop.area.CTM inCTM = + * org.apache.fop.area.CTM inCTM = * new org.apache.fop.area.CTM(1.0, 0.0, 0.0, 1.0, 1000.0, 1000.0); - * org.apache.fop.area.CTM outCTM = + * org.apache.fop.area.CTM outCTM = * org.apache.fop.render.pdf.CTMHelper.toPDFCTM(ctm); * </pre> * will return a new CTM where a == 1.0, b == 0.0, c == 0.0, d == 1.0, e == 1.0 and f == 1.0. @@ -121,7 +121,7 @@ public final class CTMHelper { * <p>Creates an array of six doubles from the source CTM.</p> * <p>For example: * <pre> - * org.apache.fop.area.CTM inCTM = + * org.apache.fop.area.CTM inCTM = * new org.apache.fop.area.CTM(1.0, 0.0, 0.0, 1.0, 1000.0, 1000.0); * double matrix[] = org.apache.fop.render.pdf.CTMHelper.toPDFArray(ctm); * </pre> diff --git a/src/java/org/apache/fop/render/pdf/ImageRawCCITTFaxAdapter.java b/src/java/org/apache/fop/render/pdf/ImageRawCCITTFaxAdapter.java index b80e2c03e..f158f6a14 100644 --- a/src/java/org/apache/fop/render/pdf/ImageRawCCITTFaxAdapter.java +++ b/src/java/org/apache/fop/render/pdf/ImageRawCCITTFaxAdapter.java @@ -5,9 +5,9 @@ * 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. @@ -55,7 +55,7 @@ public class ImageRawCCITTFaxAdapter extends AbstractImageAdapter { public ImageRawCCITTFax getImage() { return ((ImageRawCCITTFax)this.image); } - + /** {@inheritDoc} */ public void setup(PDFDocument doc) { pdfFilter = new CCFFilter(); @@ -95,7 +95,7 @@ public class ImageRawCCITTFaxAdapter extends AbstractImageAdapter { public PDFFilter getPDFFilter() { return pdfFilter; } - + /** {@inheritDoc} */ public void outputContents(OutputStream out) throws IOException { getImage().writeTo(out); diff --git a/src/java/org/apache/fop/render/pdf/ImageRawJPEGAdapter.java b/src/java/org/apache/fop/render/pdf/ImageRawJPEGAdapter.java index 1e505daed..a60c9e92c 100644 --- a/src/java/org/apache/fop/render/pdf/ImageRawJPEGAdapter.java +++ b/src/java/org/apache/fop/render/pdf/ImageRawJPEGAdapter.java @@ -5,9 +5,9 @@ * 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. @@ -64,7 +64,7 @@ public class ImageRawJPEGAdapter extends AbstractImageAdapter { public ImageRawJPEG getImage() { return ((ImageRawJPEG)this.image); } - + /** {@inheritDoc} */ public void setup(PDFDocument doc) { pdfFilter = new DCTFilter(); @@ -88,12 +88,12 @@ public class ImageRawJPEGAdapter extends AbstractImageAdapter { public boolean isInverted() { return getImage().isInverted(); } - + /** {@inheritDoc} */ public PDFFilter getPDFFilter() { return pdfFilter; } - + /** {@inheritDoc} */ public void outputContents(OutputStream out) throws IOException { InputStream in = getImage().createInputStream(); @@ -101,7 +101,7 @@ public class ImageRawJPEGAdapter extends AbstractImageAdapter { try { JPEGFile jpeg = new JPEGFile(in); DataInput din = jpeg.getDataInput(); - + //Copy the whole JPEG file except: // - the ICC profile //TODO Thumbnails could safely be skipped, too. @@ -149,7 +149,7 @@ public class ImageRawJPEGAdapter extends AbstractImageAdapter { default: out.write(0xFF); out.write(segID); - + reclen = jpeg.readSegmentLength(); //write short out.write((reclen >>> 8) & 0xFF); diff --git a/src/java/org/apache/fop/render/pdf/ImageRenderedAdapter.java b/src/java/org/apache/fop/render/pdf/ImageRenderedAdapter.java index 62e83da81..e8988244f 100644 --- a/src/java/org/apache/fop/render/pdf/ImageRenderedAdapter.java +++ b/src/java/org/apache/fop/render/pdf/ImageRenderedAdapter.java @@ -5,9 +5,9 @@ * 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. @@ -52,7 +52,7 @@ public class ImageRenderedAdapter extends AbstractImageAdapter { private static Log log = LogFactory.getLog(ImageRenderedAdapter.class); private ImageEncodingHelper encodingHelper; - + private PDFFilter pdfFilter = null; private String maskRef; private PDFReference softMask; @@ -74,11 +74,11 @@ public class ImageRenderedAdapter extends AbstractImageAdapter { public ImageRendered getImage() { return ((ImageRendered)this.image); } - + private ColorModel getEffectiveColorModel() { return encodingHelper.getEncodedColorModel(); } - + /** {@inheritDoc} */ protected ColorSpace getImageColorSpace() { return getEffectiveColorModel().getColorSpace(); @@ -90,14 +90,14 @@ public class ImageRenderedAdapter extends AbstractImageAdapter { ColorModel cm = getEffectiveColorModel(); super.setup(doc); - + //Handle transparency mask if applicable - ColorModel orgcm = ri.getColorModel(); + ColorModel orgcm = ri.getColorModel(); if (orgcm.hasAlpha() && orgcm.getTransparency() == ColorModel.TRANSLUCENT) { doc.getProfile().verifyTransparencyAllowed(image.getInfo().getOriginalURI()); //TODO Implement code to combine image with background color if transparency is not //allowed (need BufferedImage support for that) - + AlphaRasterImage alphaImage = new AlphaRasterImage("Mask:" + getKey(), ri); this.softMask = doc.addImage(null, alphaImage).makeReference(); } @@ -130,7 +130,7 @@ public class ImageRenderedAdapter extends AbstractImageAdapter { } return (getImage().getTransparentColor() != null); } - + private static Integer getIndexOfFirstTransparentColorInPalette(RenderedImage image) { ColorModel cm = image.getColorModel(); if (cm instanceof IndexColorModel) { @@ -180,19 +180,19 @@ public class ImageRenderedAdapter extends AbstractImageAdapter { public PDFReference getSoftMaskReference() { return softMask; } - + /** {@inheritDoc} */ public PDFFilter getPDFFilter() { return pdfFilter; } - + /** {@inheritDoc} */ public void outputContents(OutputStream out) throws IOException { encodingHelper.encode(out); } private static final int MAX_HIVAL = 255; - + /** {@inheritDoc} */ public void populateXObjectDictionary(PDFDictionary dict) { ColorModel cm = getEffectiveColorModel(); @@ -200,11 +200,11 @@ public class ImageRenderedAdapter extends AbstractImageAdapter { IndexColorModel icm = (IndexColorModel)cm; PDFArray indexed = new PDFArray(dict); indexed.add(new PDFName("Indexed")); - + if (icm.getColorSpace().getType() != ColorSpace.TYPE_RGB) { log.warn("Indexed color space is not using RGB as base color space." + " The image may not be handled correctly." - + " Base color space: " + icm.getColorSpace() + + " Base color space: " + icm.getColorSpace() + " Image: " + image.getInfo()); } indexed.add(new PDFName(toPDFColorSpace(icm.getColorSpace()).getName())); @@ -229,7 +229,7 @@ public class ImageRenderedAdapter extends AbstractImageAdapter { dict.put("ColorSpace", indexed); dict.put("BitsPerComponent", icm.getPixelSize()); - + Integer index = getIndexOfFirstTransparentColorInPalette(getImage().getRenderedImage()); if (index != null) { PDFArray mask = new PDFArray(dict); @@ -239,7 +239,7 @@ public class ImageRenderedAdapter extends AbstractImageAdapter { } } } - + /** {@inheritDoc} */ public String getFilterHint() { return PDFFilterList.IMAGE_FILTER; diff --git a/src/java/org/apache/fop/render/pdf/PDFEventProducer.java b/src/java/org/apache/fop/render/pdf/PDFEventProducer.java index f8b1bbb33..2c3be9736 100644 --- a/src/java/org/apache/fop/render/pdf/PDFEventProducer.java +++ b/src/java/org/apache/fop/render/pdf/PDFEventProducer.java @@ -31,7 +31,7 @@ public interface PDFEventProducer extends EventProducer { /** Provider class for the event producer. */ class Provider { - + /** * Returns an event producer. * @param broadcaster the event broadcaster to use @@ -50,9 +50,9 @@ public interface PDFEventProducer extends EventProducer { public EventModel createEventModel() { return loadModel(getClass(), "event-model.xml"); } - + } - + /** * Some link targets haven't been fully resolved. * @param source the event source @@ -60,5 +60,5 @@ public interface PDFEventProducer extends EventProducer { * @event.severity WARN */ void nonFullyResolvedLinkTargets(Object source, int count); - + } diff --git a/src/java/org/apache/fop/render/pdf/PDFEventProducer.xml b/src/java/org/apache/fop/render/pdf/PDFEventProducer.xml index fd57d5099..420f16a09 100644 --- a/src/java/org/apache/fop/render/pdf/PDFEventProducer.xml +++ b/src/java/org/apache/fop/render/pdf/PDFEventProducer.xml @@ -1,4 +1,3 @@ -<?xml version="1.0" encoding="UTF-8"?> -<catalogue xml:lang="en"> +<?xml version="1.0" encoding="UTF-8"?><catalogue xml:lang="en"> <message key="org.apache.fop.render.pdf.PDFEventProducer.nonFullyResolvedLinkTargets">{count} link target{count,equals,1,,s} could not be fully resolved and now point{count,equals,1,,s} to the top of the page or {count,equals,1,is,are} dysfunctional.</message> </catalogue> diff --git a/src/java/org/apache/fop/render/pdf/PDFGraphics2DAdapter.java b/src/java/org/apache/fop/render/pdf/PDFGraphics2DAdapter.java index c47b944d0..b61ebc346 100644 --- a/src/java/org/apache/fop/render/pdf/PDFGraphics2DAdapter.java +++ b/src/java/org/apache/fop/render/pdf/PDFGraphics2DAdapter.java @@ -5,9 +5,9 @@ * 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. @@ -16,7 +16,7 @@ */ /* $Id$ */ - + package org.apache.fop.render.pdf; import java.awt.Color; @@ -49,18 +49,18 @@ public class PDFGraphics2DAdapter extends AbstractGraphics2DAdapter { public PDFGraphics2DAdapter(PDFRenderer renderer) { this.renderer = renderer; } - + /** {@inheritDoc} */ public void paintImage(Graphics2DImagePainter painter, RendererContext context, int x, int y, int width, int height) throws IOException { - + PDFSVGHandler.PDFInfo pdfInfo = PDFSVGHandler.getPDFInfo(context); float fwidth = width / 1000f; float fheight = height / 1000f; float fx = x / 1000f; float fy = y / 1000f; - + // get the 'width' and 'height' attributes of the SVG document Dimension dim = painter.getImageSize(); float imw = (float)dim.getWidth() / 1000f; @@ -72,7 +72,7 @@ public class PDFGraphics2DAdapter extends AbstractGraphics2DAdapter { renderer.saveGraphicsState(); renderer.setColor(Color.black, false, null); renderer.setColor(Color.black, true, null); - + //TODO Clip to the image area. // transform so that the coordinates (0,0) is from the top left @@ -86,13 +86,13 @@ public class PDFGraphics2DAdapter extends AbstractGraphics2DAdapter { if (pdfInfo.pdfContext == null) { pdfInfo.pdfContext = pdfInfo.pdfPage; } - PDFGraphics2D graphics = new PDFGraphics2D(textAsShapes, + PDFGraphics2D graphics = new PDFGraphics2D(textAsShapes, pdfInfo.fi, pdfInfo.pdfDoc, pdfInfo.pdfContext, pdfInfo.pdfPage.referencePDF(), pdfInfo.currentFontName, pdfInfo.currentFontSize); graphics.setGraphicContext(new org.apache.xmlgraphics.java2d.GraphicContext()); - + AffineTransform transform = new AffineTransform(); transform.translate(fx, fy); pdfInfo.pdfState.concatenate(transform); @@ -105,7 +105,7 @@ public class PDFGraphics2DAdapter extends AbstractGraphics2DAdapter { RendererContextWrapper ctx = RendererContext.wrapRendererContext(context); BufferedImage bi = paintToBufferedImage(painter, ctx, resolution, false, false); - float scale = PDFRenderer.NORMAL_PDF_RESOLUTION + float scale = PDFRenderer.NORMAL_PDF_RESOLUTION / context.getUserAgent().getTargetResolution(); graphics.drawImage(bi, new AffineTransform(scale, 0, 0, scale, 0, 0), null); } else { @@ -121,9 +121,9 @@ public class PDFGraphics2DAdapter extends AbstractGraphics2DAdapter { /** {@inheritDoc} */ protected void setRenderingHintsForBufferedImage(Graphics2D g2d) { super.setRenderingHintsForBufferedImage(g2d); - g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, + g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); } diff --git a/src/java/org/apache/fop/render/pdf/PDFImageHandler.java b/src/java/org/apache/fop/render/pdf/PDFImageHandler.java index d62dcbc5b..f93ee5a97 100644 --- a/src/java/org/apache/fop/render/pdf/PDFImageHandler.java +++ b/src/java/org/apache/fop/render/pdf/PDFImageHandler.java @@ -5,9 +5,9 @@ * 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. @@ -41,19 +41,19 @@ public interface PDFImageHandler { * @return a positive integer (>0) indicating the priority */ int getPriority(); - + /** * Returns the {@link ImageFlavor}s supported by this instance * @return the supported image flavors */ ImageFlavor[] getSupportedImageFlavors(); - + /** * Returns the {@link Image} subclass supported by this instance. * @return the Image type */ Class getSupportedImageClass(); - + /** * Generates the PDF objects for the given {@link Image} instance. If the handler generates * an XObject, it shall return it or otherwise return null. A generated XObject shall be @@ -66,7 +66,7 @@ public interface PDFImageHandler { * @return the generated XObject or null if no XObject was generated * @throws IOException if an I/O error occurs */ - PDFXObject generateImage(RendererContext context, Image image, + PDFXObject generateImage(RendererContext context, Image image, Point origin, Rectangle pos) throws IOException; - + } diff --git a/src/java/org/apache/fop/render/pdf/PDFImageHandlerGraphics2D.java b/src/java/org/apache/fop/render/pdf/PDFImageHandlerGraphics2D.java index f1825297e..a58fe5922 100644 --- a/src/java/org/apache/fop/render/pdf/PDFImageHandlerGraphics2D.java +++ b/src/java/org/apache/fop/render/pdf/PDFImageHandlerGraphics2D.java @@ -38,9 +38,9 @@ public class PDFImageHandlerGraphics2D implements PDFImageHandler { private static final ImageFlavor[] FLAVORS = new ImageFlavor[] { ImageFlavor.GRAPHICS2D, }; - + /** {@inheritDoc} */ - public PDFXObject generateImage(RendererContext context, Image image, + public PDFXObject generateImage(RendererContext context, Image image, Point origin, Rectangle pos) throws IOException { PDFRenderer renderer = (PDFRenderer)context.getRenderer(); diff --git a/src/java/org/apache/fop/render/pdf/PDFImageHandlerRawCCITTFax.java b/src/java/org/apache/fop/render/pdf/PDFImageHandlerRawCCITTFax.java index 65142878a..9f56ebfea 100644 --- a/src/java/org/apache/fop/render/pdf/PDFImageHandlerRawCCITTFax.java +++ b/src/java/org/apache/fop/render/pdf/PDFImageHandlerRawCCITTFax.java @@ -41,9 +41,9 @@ public class PDFImageHandlerRawCCITTFax implements PDFImageHandler { private static final ImageFlavor[] FLAVORS = new ImageFlavor[] { ImageFlavor.RAW_CCITTFAX, }; - + /** {@inheritDoc} */ - public PDFXObject generateImage(RendererContext context, Image image, + public PDFXObject generateImage(RendererContext context, Image image, Point origin, Rectangle pos) throws IOException { PDFRenderer renderer = (PDFRenderer)context.getRenderer(); @@ -52,7 +52,7 @@ public class PDFImageHandlerRawCCITTFax implements PDFImageHandler { PDFRendererContextConstants.PDF_DOCUMENT); PDFResourceContext resContext = (PDFResourceContext)context.getProperty( PDFRendererContextConstants.PDF_CONTEXT); - + PDFImage pdfimage = new ImageRawCCITTFaxAdapter(ccitt, image.getInfo().getOriginalURI()); PDFXObject xobj = pdfDoc.addImage(resContext, pdfimage); @@ -61,7 +61,7 @@ public class PDFImageHandlerRawCCITTFax implements PDFImageHandler { float w = (float)pos.getWidth() / 1000f; float h = (float)pos.getHeight() / 1000f; renderer.placeImage(x, y, w, h, xobj); - + return xobj; } diff --git a/src/java/org/apache/fop/render/pdf/PDFImageHandlerRawJPEG.java b/src/java/org/apache/fop/render/pdf/PDFImageHandlerRawJPEG.java index 58c9f1f53..f971a49ae 100644 --- a/src/java/org/apache/fop/render/pdf/PDFImageHandlerRawJPEG.java +++ b/src/java/org/apache/fop/render/pdf/PDFImageHandlerRawJPEG.java @@ -41,9 +41,9 @@ public class PDFImageHandlerRawJPEG implements PDFImageHandler { private static final ImageFlavor[] FLAVORS = new ImageFlavor[] { ImageFlavor.RAW_JPEG, }; - + /** {@inheritDoc} */ - public PDFXObject generateImage(RendererContext context, Image image, + public PDFXObject generateImage(RendererContext context, Image image, Point origin, Rectangle pos) throws IOException { PDFRenderer renderer = (PDFRenderer)context.getRenderer(); @@ -52,7 +52,7 @@ public class PDFImageHandlerRawJPEG implements PDFImageHandler { PDFRendererContextConstants.PDF_DOCUMENT); PDFResourceContext resContext = (PDFResourceContext)context.getProperty( PDFRendererContextConstants.PDF_CONTEXT); - + PDFImage pdfimage = new ImageRawJPEGAdapter(jpeg, image.getInfo().getOriginalURI()); PDFXObject xobj = pdfDoc.addImage(resContext, pdfimage); @@ -61,7 +61,7 @@ public class PDFImageHandlerRawJPEG implements PDFImageHandler { float w = (float)pos.getWidth() / 1000f; float h = (float)pos.getHeight() / 1000f; renderer.placeImage(x, y, w, h, xobj); - + return xobj; } diff --git a/src/java/org/apache/fop/render/pdf/PDFImageHandlerRegistry.java b/src/java/org/apache/fop/render/pdf/PDFImageHandlerRegistry.java index 536fc19b0..b664a0a24 100644 --- a/src/java/org/apache/fop/render/pdf/PDFImageHandlerRegistry.java +++ b/src/java/org/apache/fop/render/pdf/PDFImageHandlerRegistry.java @@ -5,9 +5,9 @@ * 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. @@ -41,7 +41,7 @@ public class PDFImageHandlerRegistry { /** the logger */ private static Log log = LogFactory.getLog(PDFImageHandlerRegistry.class); - + private static final Comparator HANDLER_COMPARATOR = new Comparator() { public int compare(Object o1, Object o2) { PDFImageHandler h1 = (PDFImageHandler)o1; @@ -54,19 +54,19 @@ public class PDFImageHandlerRegistry { private Map handlers = new java.util.HashMap(); /** List containing the same handlers as above but ordered by priority */ private List handlerList = new java.util.LinkedList(); - + /** Sorted Set of registered handlers */ private ImageFlavor[] supportedFlavors = new ImageFlavor[0]; private int handlerRegistrations; private int lastSync; - + /** * Default constructor. */ public PDFImageHandlerRegistry() { discoverHandlers(); } - + /** * Add an PDFImageHandler. The handler itself is inspected to find out what it supports. * @param classname the fully qualified class name @@ -87,11 +87,11 @@ public class PDFImageHandlerRegistry { + classname); } catch (ClassCastException e) { throw new IllegalArgumentException(classname - + " is not an " + + " is not an " + PDFImageHandler.class.getName()); } } - + /** * Add an image handler. The handler itself is inspected to find out what it supports. * @param handler the PDFImageHandler instance @@ -99,7 +99,7 @@ public class PDFImageHandlerRegistry { public synchronized void addHandler(PDFImageHandler handler) { Class imageClass = handler.getSupportedImageClass(); this.handlers.put(imageClass, handler); - + //Sorted insert ListIterator iter = this.handlerList.listIterator(); while (iter.hasNext()) { @@ -112,7 +112,7 @@ public class PDFImageHandlerRegistry { iter.add(handler); this.handlerRegistrations++; } - + /** * Returns an PDFImageHandler which handles an specific image type given the MIME type * of the image. @@ -143,7 +143,7 @@ public class PDFImageHandlerRegistry { } /** - * Returns the ordered array of supported image flavors. + * Returns the ordered array of supported image flavors. * @return the array of image flavors */ public synchronized ImageFlavor[] getSupportedFlavors() { @@ -162,7 +162,7 @@ public class PDFImageHandlerRegistry { } return this.supportedFlavors; } - + /** * Discovers PDFImageHandler implementations through the classpath and dynamically * registers them. @@ -175,7 +175,7 @@ public class PDFImageHandlerRegistry { PDFImageHandler handler = (PDFImageHandler)providers.next(); try { if (log.isDebugEnabled()) { - log.debug("Dynamically adding PDFImageHandler: " + log.debug("Dynamically adding PDFImageHandler: " + handler.getClass().getName()); } addHandler(handler); diff --git a/src/java/org/apache/fop/render/pdf/PDFImageHandlerRenderedImage.java b/src/java/org/apache/fop/render/pdf/PDFImageHandlerRenderedImage.java index 628883b9f..783cb225c 100644 --- a/src/java/org/apache/fop/render/pdf/PDFImageHandlerRenderedImage.java +++ b/src/java/org/apache/fop/render/pdf/PDFImageHandlerRenderedImage.java @@ -40,11 +40,11 @@ public class PDFImageHandlerRenderedImage implements PDFImageHandler { private static final ImageFlavor[] FLAVORS = new ImageFlavor[] { ImageFlavor.BUFFERED_IMAGE, - ImageFlavor.RENDERED_IMAGE + ImageFlavor.RENDERED_IMAGE }; - + /** {@inheritDoc} */ - public PDFXObject generateImage(RendererContext context, Image image, + public PDFXObject generateImage(RendererContext context, Image image, Point origin, Rectangle pos) throws IOException { PDFRenderer renderer = (PDFRenderer)context.getRenderer(); @@ -53,7 +53,7 @@ public class PDFImageHandlerRenderedImage implements PDFImageHandler { PDFRendererContextConstants.PDF_DOCUMENT); PDFResourceContext resContext = (PDFResourceContext)context.getProperty( PDFRendererContextConstants.PDF_CONTEXT); - + PDFImage pdfimage = new ImageRenderedAdapter(imageRend, image.getInfo().getOriginalURI()); PDFXObject xobj = pdfDoc.addImage(resContext, pdfimage); @@ -62,7 +62,7 @@ public class PDFImageHandlerRenderedImage implements PDFImageHandler { float w = (float)pos.getWidth() / 1000f; float h = (float)pos.getHeight() / 1000f; renderer.placeImage(x, y, w, h, xobj); - + return xobj; } diff --git a/src/java/org/apache/fop/render/pdf/PDFImageHandlerXML.java b/src/java/org/apache/fop/render/pdf/PDFImageHandlerXML.java index ba47cce69..d111e733f 100644 --- a/src/java/org/apache/fop/render/pdf/PDFImageHandlerXML.java +++ b/src/java/org/apache/fop/render/pdf/PDFImageHandlerXML.java @@ -41,9 +41,9 @@ public class PDFImageHandlerXML implements PDFImageHandler { private static final ImageFlavor[] FLAVORS = new ImageFlavor[] { ImageFlavor.XML_DOM, }; - + /** {@inheritDoc} */ - public PDFXObject generateImage(RendererContext context, Image image, + public PDFXObject generateImage(RendererContext context, Image image, Point origin, Rectangle pos) throws IOException { PDFRenderer renderer = (PDFRenderer)context.getRenderer(); diff --git a/src/java/org/apache/fop/render/pdf/PDFRendererContextConstants.java b/src/java/org/apache/fop/render/pdf/PDFRendererContextConstants.java index d3efa9667..de51aabc7 100644 --- a/src/java/org/apache/fop/render/pdf/PDFRendererContextConstants.java +++ b/src/java/org/apache/fop/render/pdf/PDFRendererContextConstants.java @@ -49,5 +49,5 @@ public interface PDFRendererContextConstants extends RendererContextConstants { /** The current pdf font size. */ String PDF_FONT_SIZE = "fontSize"; - + } diff --git a/src/java/org/apache/fop/render/pdf/PDFRendererMaker.java b/src/java/org/apache/fop/render/pdf/PDFRendererMaker.java index 98fd7b5db..fb65c9d74 100644 --- a/src/java/org/apache/fop/render/pdf/PDFRendererMaker.java +++ b/src/java/org/apache/fop/render/pdf/PDFRendererMaker.java @@ -5,9 +5,9 @@ * 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. @@ -31,7 +31,7 @@ import org.apache.fop.render.RendererConfigurator; public class PDFRendererMaker extends AbstractRendererMaker { private static final String[] MIMES = new String[] {MimeConstants.MIME_PDF}; - + /** {@inheritDoc} */ public Renderer makeRenderer(FOUserAgent userAgent) { return new PDFRenderer(); @@ -41,7 +41,7 @@ public class PDFRendererMaker extends AbstractRendererMaker { public RendererConfigurator getConfigurator(FOUserAgent userAgent) { return new PDFRendererConfigurator(userAgent); } - + /** {@inheritDoc} */ public boolean needsOutputStream() { return true; diff --git a/src/java/org/apache/fop/render/pdf/PDFSVGHandler.java b/src/java/org/apache/fop/render/pdf/PDFSVGHandler.java index cb7c7cf89..864a82517 100644 --- a/src/java/org/apache/fop/render/pdf/PDFSVGHandler.java +++ b/src/java/org/apache/fop/render/pdf/PDFSVGHandler.java @@ -5,9 +5,9 @@ * 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. @@ -62,7 +62,7 @@ import org.apache.fop.svg.SVGUserAgent; * It renders SVG to the PDF document using the PDFGraphics2D. * The properties from the PDF renderer are subject to change. */ -public class PDFSVGHandler extends AbstractGenericSVGHandler +public class PDFSVGHandler extends AbstractGenericSVGHandler implements PDFRendererContextConstants { /** logging instance */ @@ -92,7 +92,7 @@ public class PDFSVGHandler extends AbstractGenericSVGHandler pdfi.cfg = (Configuration)context.getProperty(HANDLER_CONFIGURATION); Map foreign = (Map)context.getProperty(RendererContextConstants.FOREIGN_ATTRIBUTES); QName qName = new QName(ExtensionElementMapping.URI, null, "conversion-mode"); - if (foreign != null + if (foreign != null && "bitmap".equalsIgnoreCase((String)foreign.get(qName))) { pdfi.paintAsBitmap = true; } @@ -155,12 +155,12 @@ public class PDFSVGHandler extends AbstractGenericSVGHandler int xOffset = pdfInfo.currentXPosition; int yOffset = pdfInfo.currentYPosition; - FOUserAgent userAgent = context.getUserAgent(); + FOUserAgent userAgent = context.getUserAgent(); final float deviceResolution = userAgent.getTargetResolution(); if (log.isDebugEnabled()) { log.debug("Generating SVG at " + deviceResolution + "dpi."); } - + final float uaResolution = userAgent.getSourceResolution(); SVGUserAgent ua = new SVGUserAgent(userAgent, new AffineTransform()); @@ -168,22 +168,22 @@ public class PDFSVGHandler extends AbstractGenericSVGHandler double s = uaResolution / deviceResolution; AffineTransform resolutionScaling = new AffineTransform(); resolutionScaling.scale(s, s); - + GVTBuilder builder = new GVTBuilder(); - + //Controls whether text painted by Batik is generated using text or path operations boolean strokeText = false; Configuration cfg = pdfInfo.cfg; if (cfg != null) { strokeText = cfg.getChild("stroke-text", true).getValueAsBoolean(strokeText); } - - BridgeContext ctx = new PDFBridgeContext(ua, + + BridgeContext ctx = new PDFBridgeContext(ua, (strokeText ? null : pdfInfo.fi), userAgent.getFactory().getImageManager(), userAgent.getImageSessionContext(), new AffineTransform()); - + GraphicsNode root; try { root = builder.build(ctx, doc); @@ -210,7 +210,7 @@ public class PDFSVGHandler extends AbstractGenericSVGHandler AffineTransform imageTransform = new AffineTransform(); imageTransform.concatenate(scaling); imageTransform.concatenate(resolutionScaling); - + /* * Clip to the svg area. * Note: To have the svg overlay (under) a text area then use @@ -231,27 +231,27 @@ public class PDFSVGHandler extends AbstractGenericSVGHandler if (pdfInfo.pdfContext == null) { pdfInfo.pdfContext = pdfInfo.pdfPage; } - PDFGraphics2D graphics = new PDFGraphics2D(true, pdfInfo.fi, + PDFGraphics2D graphics = new PDFGraphics2D(true, pdfInfo.fi, pdfInfo.pdfDoc, pdfInfo.pdfContext, pdfInfo.pdfPage.referencePDF(), pdfInfo.currentFontName, pdfInfo.currentFontSize); graphics.setGraphicContext(new org.apache.xmlgraphics.java2d.GraphicContext()); if (!resolutionScaling.isIdentity()) { - pdfInfo.currentStream.add("%resolution scaling for " + uaResolution + pdfInfo.currentStream.add("%resolution scaling for " + uaResolution + " -> " + deviceResolution + "\n"); pdfInfo.currentStream.add( CTMHelper.toPDFString(resolutionScaling, false) + " cm\n"); graphics.scale(1 / s, 1 / s); } - + pdfInfo.currentStream.add("%SVG start\n"); //Save state and update coordinate system for the SVG image pdfInfo.pdfState.push(); pdfInfo.pdfState.concatenate(imageTransform); - //Now that we have the complete transformation matrix for the image, we can update the + //Now that we have the complete transformation matrix for the image, we can update the //transformation matrix for the AElementBridge. PDFAElementBridge aBridge = (PDFAElementBridge)ctx.getBridge( SVGDOMImplementation.SVG_NAMESPACE_URI, SVGConstants.SVG_A_TAG); @@ -271,7 +271,7 @@ public class PDFSVGHandler extends AbstractGenericSVGHandler renderer.restoreGraphicsState(); pdfInfo.currentStream.add("%SVG end\n"); } - + /** {@inheritDoc} */ public boolean supportsRenderer(Renderer renderer) { return (renderer instanceof PDFRenderer); |