You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by ac...@apache.org on 2008/10/10 11:19:47 UTC
svn commit: r703362 [2/2] - in
/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render:
./ afp/ afp/modca/
Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/AbstractPageObject.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/AbstractPageObject.java?rev=703362&r1=703361&r2=703362&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/AbstractPageObject.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/AbstractPageObject.java Fri Oct 10 02:19:46 2008
@@ -23,7 +23,7 @@
import java.io.OutputStream;
import java.util.List;
-import org.apache.fop.render.afp.LineDataInfo;
+import org.apache.fop.render.afp.AFPLineDataInfo;
import org.apache.fop.render.afp.AFPTextDataInfo;
import org.apache.fop.render.afp.fonts.AFPFont;
@@ -128,6 +128,7 @@
String name, int width, int height, int rotation,
int widthRes, int heightRes) {
super(name);
+
this.factory = factory;
this.width = width;
this.height = height;
@@ -158,7 +159,7 @@
*
* @param lineDataInfo the line data information.
*/
- public void createLine(LineDataInfo lineDataInfo) {
+ public void createLine(AFPLineDataInfo lineDataInfo) {
getPresentationTextObject().createLineData(lineDataInfo);
}
@@ -269,9 +270,7 @@
*/
public ActiveEnvironmentGroup getActiveEnvironmentGroup() {
if (activeEnvironmentGroup == null) {
- /**
- * Every page object must have an ActiveEnvironmentGroup
- */
+ // every page object must have an ActiveEnvironmentGroup
this.activeEnvironmentGroup
= factory.createActiveEnvironmentGroup(width, height, widthRes, heightRes);
@@ -343,5 +342,4 @@
public void addObject(Object obj) {
objects.add(obj);
}
-
}
Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/AbstractStructuredAFPObject.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/AbstractStructuredAFPObject.java?rev=703362&r1=703361&r2=703362&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/AbstractStructuredAFPObject.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/AbstractStructuredAFPObject.java Fri Oct 10 02:19:46 2008
@@ -84,6 +84,7 @@
ByteArrayOutputStream baos = new ByteArrayOutputStream();
writeObjects(triplets, baos);
this.tripletData = baos.toByteArray();
+ triplets = null; // gc
}
return this.tripletData;
}
@@ -99,6 +100,7 @@
os.write(tripletData);
} else if (triplets != null) {
writeObjects(triplets, os);
+ triplets = null; // gc
}
}
Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/DataStream.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/DataStream.java?rev=703362&r1=703361&r2=703362&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/DataStream.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/DataStream.java Fri Oct 10 02:19:46 2008
@@ -20,6 +20,7 @@
package org.apache.fop.render.afp.modca;
import java.awt.Color;
+import java.awt.Point;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Iterator;
@@ -28,9 +29,10 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.fop.render.afp.AFPFontAttributes;
+import org.apache.fop.render.afp.AFPLineDataInfo;
import org.apache.fop.render.afp.AFPResourceLevel;
+import org.apache.fop.render.afp.AFPState;
import org.apache.fop.render.afp.AFPTextDataInfo;
-import org.apache.fop.render.afp.LineDataInfo;
import org.apache.fop.render.afp.fonts.AFPFont;
import org.apache.fop.render.afp.modca.triplets.FullyQualifiedNameTriplet;
@@ -76,14 +78,11 @@
/** The current page */
private AbstractPageObject currentPage = null;
- /** The portrait rotation */
- private int portraitRotation = 0;
-
- /** The landscape rotation */
- private int landscapeRotation = 270;
-
- /** The rotation */
- private int orientation;
+// /** The portrait rotation */
+// private int portraitRotation = 0;
+//
+// /** The landscape rotation */
+// private int landscapeRotation = 270;
/** The MO:DCA interchange set in use (default to MO:DCA-P IS/2 set) */
private InterchangeSet interchangeSet
@@ -93,13 +92,18 @@
private OutputStream outputStream;
+ /** the afp state */
+ private final AFPState state;
+
/**
* Default constructor for the AFPDocumentStream.
*
* @param factory the resource factory
+ * @param state the afp state
* @param outputStream the outputstream to write to
*/
- public DataStream(Factory factory, OutputStream outputStream) {
+ public DataStream(Factory factory, AFPState state, OutputStream outputStream) {
+ this.state = state;
this.factory = factory;
this.outputStream = outputStream;
}
@@ -294,31 +298,6 @@
}
/**
- * Sets the offsets to be used for element positioning
- *
- * @param xOff
- * the offset in the x direction
- * @param yOff
- * the offset in the y direction
- * @param orientation
- * the rotation
- * @deprecated offsets are no longer used, use setOrientation() for setting the orientation
- */
- public void setOffsets(int xOff, int yOff, int orientation) {
- setOrientation(orientation);
- }
-
- /**
- * Sets the orientation to be used for element positioning
- *
- * @param orientation
- * the orientation used for element positioning
- */
- public void setOrientation(int orientation) {
- this.orientation = orientation;
- }
-
- /**
* Creates the given page fonts in the current page
*
* @param pageFonts
@@ -351,6 +330,37 @@
}
/**
+ * Returns a point on the current page
+ *
+ * @param x the X-coordinate
+ * @param y the Y-coordinate
+ * @return a point on the current page
+ */
+ private Point getPoint(int x, int y) {
+ Point p = new Point();
+ int rotation = state.getRotation();
+ switch (rotation) {
+ case 90:
+ p.x = y;
+ p.y = currentPage.getWidth() - x;
+ break;
+ case 180:
+ p.x = currentPage.getWidth() - x;
+ p.y = currentPage.getHeight() - y;
+ break;
+ case 270:
+ p.x = currentPage.getHeight() - y;
+ p.y = x;
+ break;
+ default:
+ p.x = x;
+ p.y = y;
+ break;
+ }
+ return p;
+ }
+
+ /**
* Helper method to create text on the current page, this method delegates
* to the current presentation text object in order to construct the text.
*
@@ -358,7 +368,13 @@
* the afp text data
*/
public void createText(AFPTextDataInfo textDataInfo) {
- textDataInfo.setOrientation(orientation);
+ int rotation = state.getRotation();
+ if (rotation != 0) {
+ textDataInfo.setRotation(rotation);
+ Point p = getPoint(textDataInfo.getX(), textDataInfo.getY());
+ textDataInfo.setX(p.x);
+ textDataInfo.setY(p.y);
+ }
currentPage.createText(textDataInfo);
}
@@ -367,8 +383,7 @@
*
* @param lineDataInfo the line data information.
*/
- public void createLine(LineDataInfo lineDataInfo) {
- lineDataInfo.setOrientation(orientation);
+ public void createLine(AFPLineDataInfo lineDataInfo) {
currentPage.createLine(lineDataInfo);
}
@@ -400,7 +415,7 @@
* the name of the static overlay
*/
public void createIncludePageOverlay(String name) {
- currentPageObject.createIncludePageOverlay(name, 0, 0, orientation);
+ currentPageObject.createIncludePageOverlay(name, 0, 0, state.getRotation());
currentPageObject.getActiveEnvironmentGroup().createOverlay(name);
}
@@ -427,6 +442,7 @@
public void createIncludePageSegment(String name, int x, int y) {
int xOrigin;
int yOrigin;
+ int orientation = state.getRotation();
switch (orientation) {
case 90:
xOrigin = currentPage.getWidth() - y;
@@ -548,38 +564,6 @@
}
/**
- * Sets the rotation to be used for portrait pages, valid values are 0
- * (default), 90, 180, 270.
- *
- * @param pageRotation the rotation in degrees.
- */
- public void setPortraitRotation(int pageRotation) {
- if (pageRotation == 0 || pageRotation == 90 || pageRotation == 180
- || pageRotation == 270) {
- this.portraitRotation = pageRotation;
- } else {
- throw new IllegalArgumentException(
- "The portrait rotation must be one of the values 0, 90, 180, 270");
- }
- }
-
- /**
- * Sets the rotation to be used for landscape pages, valid values are 0, 90,
- * 180, 270 (default).
- *
- * @param pageRotation the rotation in degrees.
- */
- public void setLandscapeRotation(int pageRotation) {
- if (pageRotation == 0 || pageRotation == 90 || pageRotation == 180
- || pageRotation == 270) {
- this.landscapeRotation = pageRotation;
- } else {
- throw new IllegalArgumentException(
- "The landscape rotation must be one of the values 0, 90, 180, 270");
- }
- }
-
- /**
* Sets the MO:DCA interchange set to use
*
* @param interchangeSet the MO:DCA interchange set
@@ -615,4 +599,38 @@
return resourceGroup;
}
+ /**
+ * Sets the rotation to be used for portrait pages, valid values are 0
+ * (default), 90, 180, 270.
+ *
+ * @param pageRotation the rotation in degrees.
+ * @deprecated not used
+ */
+ public void setPortraitRotation(int pageRotation) {
+ }
+
+ /**
+ * Sets the rotation to be used for landscape pages, valid values are 0, 90,
+ * 180, 270 (default).
+ *
+ * @param pageRotation the rotation in degrees.
+ * @deprecated not used
+ */
+ public void setLandscapeRotation(int pageRotation) {
+ }
+
+ /**
+ * Sets the offsets to be used for element positioning
+ *
+ * @param xOff
+ * the offset in the x direction
+ * @param yOff
+ * the offset in the y direction
+ * @param orientation
+ * the orientation
+ * @deprecated not used
+ */
+ public void setOffsets(int xOff, int yOff, int orientation) {
+ }
+
}
Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/Factory.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/Factory.java?rev=703362&r1=703361&r2=703362&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/Factory.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/Factory.java Fri Oct 10 02:19:46 2008
@@ -23,6 +23,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.fop.render.afp.AFPState;
import org.apache.fop.render.afp.goca.GraphicsData;
import org.apache.fop.render.afp.ioca.ImageContent;
import org.apache.fop.render.afp.ioca.ImageRasterData;
@@ -359,13 +360,14 @@
}
/**
- * Creates an {@link DataStream}
+ * Creates a new {@link DataStream}
*
+ * @param state the afp state
* @param outputStream an outputstream to write to
* @return a new {@link DataStream}
*/
- public DataStream createDataStream(OutputStream outputStream) {
- DataStream dataStream = new DataStream(this, outputStream);
+ public DataStream createDataStream(AFPState state, OutputStream outputStream) {
+ DataStream dataStream = new DataStream(this, state, outputStream);
return dataStream;
}
@@ -424,9 +426,9 @@
/**
* Creates a new {@link ObjectAreaPosition}
*
- * @param x The x coordinate.
- * @param y The y coordinate.
- * @param rotation The coordinate system rotation (must be 0, 90, 180, 270).
+ * @param x the x coordinate.
+ * @param y the y coordinate.
+ * @param rotation the coordinate system rotation (must be 0, 90, 180, 270).
* @return a new {@link ObjectAreaPosition}
*/
public ObjectAreaPosition createObjectAreaPosition(int x, int y,
Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/IncludeObject.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/IncludeObject.java?rev=703362&r1=703361&r2=703362&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/IncludeObject.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/IncludeObject.java Fri Oct 10 02:19:46 2008
@@ -42,59 +42,38 @@
*/
public class IncludeObject extends AbstractNamedAFPObject {
- /**
- * the include object is of type page segment
- */
+ /** the object referenced is of type page segment */
public static final byte TYPE_PAGE_SEGMENT = (byte)0x5F;
- /**
- * the include object is of type other
- */
+ /** the object referenced is of type other */
public static final byte TYPE_OTHER = (byte)0x92;
- /**
- * the include object is of type graphic
- */
+ /** the object referenced is of type graphic */
public static final byte TYPE_GRAPHIC = (byte)0xBB;
- /**
- * the included object is of type barcode
- */
+ /** the object referenced is of type barcode */
public static final byte TYPE_BARCODE = (byte)0xEB;
- /**
- * the included object is of type image
- */
+ /** the object referenced is of type image */
public static final byte TYPE_IMAGE = (byte)0xFB;
- /**
- * The object type (default is other)
- */
+
+ /** the object type referenced (default is other) */
private byte objectType = TYPE_OTHER;
- /**
- * The X-axis origin of the object area
- */
+ /** the X-axis origin of the object area */
private int xoaOset = 0;
- /**
- * The Y-axis origin of the object area
- */
+ /** the Y-axis origin of the object area */
private int yoaOset = 0;
- /**
- * The orientation on the include object
- */
+ /** the orientation of the referenced object */
private int oaOrent = 0;
- /**
- * The X-axis origin defined in the object
- */
+ /** the X-axis origin defined in the object */
private int xocaOset = -1;
- /**
- * The Y-axis origin defined in the object
- */
+ /** the Y-axis origin defined in the object */
private int yocaOset = -1;
/**
Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/PresentationTextData.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/PresentationTextData.java?rev=703362&r1=703361&r2=703362&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/PresentationTextData.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/PresentationTextData.java Fri Oct 10 02:19:46 2008
@@ -24,7 +24,7 @@
import java.io.OutputStream;
import org.apache.commons.io.output.ByteArrayOutputStream;
-import org.apache.fop.render.afp.LineDataInfo;
+import org.apache.fop.render.afp.AFPLineDataInfo;
import org.apache.fop.render.afp.AFPTextDataInfo;
import org.apache.fop.render.afp.tools.BinaryUtils;
@@ -277,22 +277,25 @@
ByteArrayOutputStream afpdata = new ByteArrayOutputStream();
- if (currentOrientation != textDataInfo.getOrientation()) {
- setTextOrientation(textDataInfo.getOrientation(), afpdata);
- currentOrientation = textDataInfo.getOrientation();
+ int rotation = textDataInfo.getRotation();
+ if (currentOrientation != rotation) {
+ setTextOrientation(rotation, afpdata);
+ currentOrientation = rotation;
currentX = -1;
currentY = -1;
}
- // Avoid unnecessary specification of the Y co-ordinate
- if (textDataInfo.getY() != currentY) {
- absoluteMoveBaseline(textDataInfo.getY(), afpdata);
+ // Avoid unnecessary specification of the Y coordinate
+ int y = textDataInfo.getY();
+ if (currentY != y) {
+ absoluteMoveBaseline(y, afpdata);
currentX = -1;
}
- // Avoid unnecessary specification of the X co-ordinate
- if (textDataInfo.getX() != currentX) {
- absoluteMoveInline(textDataInfo.getX(), afpdata);
+ // Avoid unnecessary specification of the X coordinate
+ int x = textDataInfo.getX();
+ if (currentX != x) {
+ absoluteMoveInline(x, afpdata);
}
// Avoid unnecessary specification of the variable space increment
@@ -362,43 +365,43 @@
* @throws MaximumSizeExceededException
* thrown if the maximum number of line data has been exceeded
*/
- public void createLineData(LineDataInfo lineDataInfo) throws MaximumSizeExceededException {
+ public void createLineData(AFPLineDataInfo lineDataInfo) throws MaximumSizeExceededException {
ByteArrayOutputStream afpdata = new ByteArrayOutputStream();
- int thickness = lineDataInfo.getThickness();
- int orientation = lineDataInfo.getOrientation();
- int x1 = lineDataInfo.getX1();
- int y1 = lineDataInfo.getY1();
- int x2 = lineDataInfo.getX2();
- int y2 = lineDataInfo.getY2();
- Color col = lineDataInfo.getColor();
-
+ int orientation = lineDataInfo.getRotation();
if (currentOrientation != orientation) {
setTextOrientation(orientation, afpdata);
currentOrientation = orientation;
}
// Avoid unnecessary specification of the Y coordinate
+ int y1 = lineDataInfo.getY1();
if (y1 != currentY) {
absoluteMoveBaseline(y1, afpdata);
}
// Avoid unnecessary specification of the X coordinate
+ int x1 = lineDataInfo.getX1();
if (x1 != currentX) {
absoluteMoveInline(x1, afpdata);
}
+ Color col = lineDataInfo.getColor();
if (!col.equals(currentColor)) {
setExtendedTextColor(col, afpdata);
currentColor = col;
}
+ int x2 = lineDataInfo.getX2();
+ int y2 = lineDataInfo.getY2();
+ int thickness = lineDataInfo.getThickness();
if (y1 == y2) {
drawIaxisRule(x2 - x1, thickness, afpdata);
} else if (x1 == x2) {
drawBaxisRule(y2 - y1, thickness, afpdata);
} else {
+ log.error("Invalid axis rule unable to draw line");
return;
}
@@ -425,36 +428,36 @@
*
* @param orientation
* The text orientation (0, 90, 180, 270).
- * @param afpdata
+ * @param os
* The output stream to which data should be written.
*/
private void setTextOrientation(int orientation,
- ByteArrayOutputStream afpdata) {
- afpdata.write(new byte[] {0x06, (byte) 0xF7, }, 0, 2);
+ ByteArrayOutputStream os) {
+ os.write(new byte[] {0x06, (byte) 0xF7, }, 0, 2);
switch (orientation) {
case 90:
- afpdata.write(0x2D);
- afpdata.write(0x00);
- afpdata.write(0x5A);
- afpdata.write(0x00);
+ os.write(0x2D);
+ os.write(0x00);
+ os.write(0x5A);
+ os.write(0x00);
break;
case 180:
- afpdata.write(0x5A);
- afpdata.write(0x00);
- afpdata.write(0x87);
- afpdata.write(0x00);
+ os.write(0x5A);
+ os.write(0x00);
+ os.write(0x87);
+ os.write(0x00);
break;
case 270:
- afpdata.write(0x87);
- afpdata.write(0x00);
- afpdata.write(0x00);
- afpdata.write(0x00);
+ os.write(0x87);
+ os.write(0x00);
+ os.write(0x00);
+ os.write(0x00);
break;
default:
- afpdata.write(0x00);
- afpdata.write(0x00);
- afpdata.write(0x2D);
- afpdata.write(0x00);
+ os.write(0x00);
+ os.write(0x00);
+ os.write(0x2D);
+ os.write(0x00);
break;
}
}
@@ -467,10 +470,10 @@
*
* @param col
* The color to be set.
- * @param afpdata
+ * @param os
* The output stream to which data should be written.
*/
- private void setExtendedTextColor(Color col, ByteArrayOutputStream afpdata) {
+ private void setExtendedTextColor(Color col, ByteArrayOutputStream os) {
byte[] colorData = new byte[] {
15, // Control sequence length
(byte) 0x81, // Control sequence function type
@@ -489,7 +492,7 @@
(byte) (col.getBlue()), // Blue intensity
};
- afpdata.write(colorData, 0, colorData.length);
+ os.write(colorData, 0, colorData.length);
}
/**
@@ -497,14 +500,14 @@
*
* @param incr
* The increment to be set.
- * @param afpdata
+ * @param os
* The output stream to which data should be written.
*/
private void setVariableSpaceCharacterIncrement(int incr,
- ByteArrayOutputStream afpdata) {
+ ByteArrayOutputStream os) {
byte[] b = BinaryUtils.convert(incr, 2);
- afpdata.write(new byte[] {
+ os.write(new byte[] {
4, // Control sequence length
(byte) 0xC5, // Control sequence function type
b[0], b[1] },
@@ -516,12 +519,12 @@
*
* @param incr
* The increment to be set.
- * @param afpdata
+ * @param os
* The output stream to which data should be written.
*/
- private void setInterCharacterAdjustment(int incr, ByteArrayOutputStream afpdata) {
+ private void setInterCharacterAdjustment(int incr, ByteArrayOutputStream os) {
byte[] b = BinaryUtils.convert(Math.abs(incr), 2);
- afpdata.write(new byte[] {
+ os.write(new byte[] {
5, // Control sequence length
(byte) 0xC3, // Control sequence function type
b[0], b[1], (byte) (incr >= 0 ? 0 : 1) // Direction
Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/PresentationTextObject.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/PresentationTextObject.java?rev=703362&r1=703361&r2=703362&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/PresentationTextObject.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/modca/PresentationTextObject.java Fri Oct 10 02:19:46 2008
@@ -23,7 +23,7 @@
import java.io.OutputStream;
import java.util.List;
-import org.apache.fop.render.afp.LineDataInfo;
+import org.apache.fop.render.afp.AFPLineDataInfo;
import org.apache.fop.render.afp.AFPTextDataInfo;
/**
@@ -87,7 +87,7 @@
*
* @param lineDataInfo the line data information.
*/
- public void createLineData(LineDataInfo lineDataInfo) {
+ public void createLineData(AFPLineDataInfo lineDataInfo) {
if (currentPresentationTextData == null) {
startPresentationTextData();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org