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 je...@apache.org on 2008/09/28 13:38:19 UTC
svn commit: r699801 [2/3] - in
/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign: ./ conf/ lib/ lib/build/
src/documentation/content/ src/documentation/content/xdocs/
src/documentation/content/xdocs/0.94/ src/documentation/content/xdocs/0.95/
src/docume...
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/layoutmgr/inline/LeaderLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/layoutmgr/inline/LeaderLayoutManager.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/layoutmgr/inline/LeaderLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/layoutmgr/inline/LeaderLayoutManager.java Sun Sep 28 04:38:15 2008
@@ -183,17 +183,23 @@
childContext.setAlignmentContext(context.getAlignmentContext());
contentList = clm.getNextKnuthElements(childContext, 0);
int width = clm.getStackingSize();
- Space spacer = null;
- if (fobj.getLeaderPatternWidth().getValue(this) > width) {
- spacer = new Space();
- spacer.setIPD(fobj.getLeaderPatternWidth().getValue(this) - width);
- width = fobj.getLeaderPatternWidth().getValue(this);
+ if (width != 0) {
+ Space spacer = null;
+ if (fobj.getLeaderPatternWidth().getValue(this) > width) {
+ spacer = new Space();
+ spacer.setIPD(fobj.getLeaderPatternWidth().getValue(this) - width);
+ width = fobj.getLeaderPatternWidth().getValue(this);
+ }
+ fa.setUnitWidth(width);
+ if (spacer != null) {
+ fa.addChildArea(spacer);
+ }
+ leaderArea = fa;
+ } else {
+ //Content collapsed to nothing, so use a space
+ leaderArea = new Space();
+ leaderArea.setBPD(1);
}
- fa.setUnitWidth(width);
- if (spacer != null) {
- fa.addChildArea(spacer);
- }
- leaderArea = fa;
}
TraitSetter.setProducerID(leaderArea, fobj.getId());
return leaderArea;
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/layoutmgr/table/RowPainter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/layoutmgr/table/RowPainter.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/layoutmgr/table/RowPainter.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/layoutmgr/table/RowPainter.java Sun Sep 28 04:38:15 2008
@@ -27,13 +27,19 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+
import org.apache.fop.area.Block;
+import org.apache.fop.area.Trait;
import org.apache.fop.fo.flow.table.ConditionalBorder;
import org.apache.fop.fo.flow.table.EffRow;
+import org.apache.fop.fo.flow.table.EmptyGridUnit;
import org.apache.fop.fo.flow.table.GridUnit;
import org.apache.fop.fo.flow.table.PrimaryGridUnit;
+import org.apache.fop.fo.flow.table.Table;
+import org.apache.fop.fo.flow.table.TableColumn;
import org.apache.fop.fo.flow.table.TablePart;
import org.apache.fop.fo.properties.CommonBorderPaddingBackground;
+import org.apache.fop.fo.properties.CommonBorderPaddingBackground.BorderInfo;
import org.apache.fop.layoutmgr.ElementListUtils;
import org.apache.fop.layoutmgr.KnuthElement;
import org.apache.fop.layoutmgr.KnuthPossPosIter;
@@ -202,10 +208,16 @@
recordRowOffset(currentRow.getIndex(), currentRowOffset);
// Need to compute the actual row height first
+ // and determine border behaviour for empty cells
+ boolean firstCellPart = true;
+ boolean lastCellPart = true;
int actualRowHeight = 0;
for (int i = 0; i < colCount; i++) {
GridUnit currentGU = currentRow.getGridUnit(i);
- if (!currentGU.isEmpty() && currentGU.getColSpanIndex() == 0
+ if (currentGU.isEmpty()) {
+ continue;
+ }
+ if (currentGU.getColSpanIndex() == 0
&& (lastInPart || currentGU.isLastGridUnitRowSpan())
&& firstCellParts[i] != null) {
// TODO
@@ -225,21 +237,53 @@
actualRowHeight = Math.max(actualRowHeight, cellOffset + cellHeight
- currentRowOffset);
}
+
+ if (firstCellParts[i] != null && !firstCellParts[i].isFirstPart()) {
+ firstCellPart = false;
+ }
+ if (lastCellParts[i] != null && !lastCellParts[i].isLastPart()) {
+ lastCellPart = false;
+ }
}
// Then add areas for cells finishing on the current row
for (int i = 0; i < colCount; i++) {
GridUnit currentGU = currentRow.getGridUnit(i);
- if (currentGU.isEmpty()) {
- // TODO remove once missing cells are properly implemented (i.e., replaced
- // by an fo:table-cell element containing an empty fo:block)
+ if (currentGU.isEmpty() && !tclm.isSeparateBorderModel()) {
+ int borderBeforeWhich;
+ if (firstCellPart) {
+ if (firstCellOnPage[i]) {
+ borderBeforeWhich = ConditionalBorder.LEADING_TRAILING;
+ } else {
+ borderBeforeWhich = ConditionalBorder.NORMAL;
+ }
+ } else {
+ borderBeforeWhich = ConditionalBorder.REST;
+ }
+ int borderAfterWhich;
+ if (lastCellPart) {
+ if (lastInPart) {
+ borderAfterWhich = ConditionalBorder.LEADING_TRAILING;
+ } else {
+ borderAfterWhich = ConditionalBorder.NORMAL;
+ }
+ } else {
+ borderAfterWhich = ConditionalBorder.REST;
+ }
+ addAreaForEmptyGridUnit((EmptyGridUnit)currentGU,
+ currentRow.getIndex(), i,
+ actualRowHeight,
+ borderBeforeWhich, borderAfterWhich,
+ lastOnPage);
+
firstCellOnPage[i] = false;
} else if (currentGU.getColSpanIndex() == 0
&& (lastInPart || currentGU.isLastGridUnitRowSpan())
&& firstCellParts[i] != null) {
assert firstCellParts[i].pgu == currentGU.getPrimary();
+
int borderBeforeWhich;
- if (firstCellParts[i].start == 0) {
+ if (firstCellParts[i].isFirstPart()) {
if (firstCellOnPage[i]) {
borderBeforeWhich = ConditionalBorder.LEADING_TRAILING;
} else {
@@ -259,6 +303,7 @@
} else {
borderAfterWhich = ConditionalBorder.REST;
}
+
addAreasForCell(firstCellParts[i].pgu,
firstCellParts[i].start, lastCellParts[i].end,
actualRowHeight, borderBeforeWhich, borderAfterWhich,
@@ -387,6 +432,56 @@
startRowIndex == firstRowOnPageIndex, lastOnPage, this, firstRowHeight);
}
+ private void addAreaForEmptyGridUnit(EmptyGridUnit gu, int rowIndex, int colIndex,
+ int actualRowHeight,
+ int borderBeforeWhich, int borderAfterWhich, boolean lastOnPage) {
+
+ //get effective borders
+ BorderInfo borderBefore = gu.getBorderBefore(borderBeforeWhich);
+ BorderInfo borderAfter = gu.getBorderAfter(borderAfterWhich);
+ BorderInfo borderStart = gu.getBorderStart();
+ BorderInfo borderEnd = gu.getBorderEnd();
+ if (borderBefore.getRetainedWidth() == 0
+ && borderAfter.getRetainedWidth() == 0
+ && borderStart.getRetainedWidth() == 0
+ && borderEnd.getRetainedWidth() == 0) {
+ return; //no borders, no area necessary
+ }
+
+ TableLayoutManager tableLM = tclm.getTableLM();
+ Table table = tableLM.getTable();
+ TableColumn col = tclm.getColumns().getColumn(colIndex + 1);
+
+ //position information
+ boolean firstOnPage = (rowIndex == firstRowOnPageIndex);
+ boolean inFirstColumn = (colIndex == 0);
+ boolean inLastColumn = (colIndex == table.getNumberOfColumns() - 1);
+
+ //determine the block area's size
+ int ipd = col.getColumnWidth().getValue(tableLM);
+ ipd -= (borderStart.getRetainedWidth() + borderEnd.getRetainedWidth()) / 2;
+ int bpd = actualRowHeight;
+ bpd -= (borderBefore.getRetainedWidth() + borderAfter.getRetainedWidth()) / 2;
+
+ //generate the block area
+ Block block = new Block();
+ block.setPositioning(Block.ABSOLUTE);
+ block.addTrait(Trait.IS_REFERENCE_AREA, Boolean.TRUE);
+ block.setIPD(ipd);
+ block.setBPD(bpd);
+ block.setXOffset(tclm.getXOffsetOfGridUnit(colIndex)
+ + (borderStart.getRetainedWidth() / 2));
+ block.setYOffset(getRowOffset(rowIndex)
+ - (borderBefore.getRetainedWidth() / 2));
+ boolean[] outer = new boolean[] {firstOnPage, lastOnPage, inFirstColumn,
+ inLastColumn};
+ TraitSetter.addCollapsingBorders(block,
+ borderBefore,
+ borderAfter,
+ borderStart,
+ borderEnd, outer);
+ tableLM.addChildArea(block);
+ }
/**
* Registers the given area, that will be used to render the part of
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/layoutmgr/table/TableContentLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/layoutmgr/table/TableContentLayoutManager.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/layoutmgr/table/TableContentLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/layoutmgr/table/TableContentLayoutManager.java Sun Sep 28 04:38:15 2008
@@ -305,13 +305,21 @@
}
/**
- * Retuns the X offset of the given grid unit.
+ * Returns the X offset of the given grid unit.
* @param gu the grid unit
* @return the requested X offset
*/
protected int getXOffsetOfGridUnit(PrimaryGridUnit gu) {
- int col = gu.getColIndex();
- return startXOffset + getTableLM().getColumns().getXOffset(col + 1, getTableLM());
+ return getXOffsetOfGridUnit(gu.getColIndex());
+ }
+
+ /**
+ * Returns the X offset of the grid unit in the given column.
+ * @param colIndex the column index (zero-based)
+ * @return the requested X offset
+ */
+ protected int getXOffsetOfGridUnit(int colIndex) {
+ return startXOffset + getTableLM().getColumns().getXOffset(colIndex + 1, getTableLM());
}
/**
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/pdf/AlphaRasterImage.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/pdf/AlphaRasterImage.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/pdf/AlphaRasterImage.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/pdf/AlphaRasterImage.java Sun Sep 28 04:38:15 2008
@@ -48,6 +48,9 @@
*/
public AlphaRasterImage(String k, Raster alpha) {
this.key = k;
+ //Enable the commented line below if 16-bit alpha channels are desired.
+ //Otherwise, we compress the alpha channel to 8 bit which should be sufficient.
+ //this.bitsPerComponent = alpha.getSampleModel().getSampleSize(0);
this.bitsPerComponent = 8;
this.colorSpace = new PDFDeviceColorSpace(PDFDeviceColorSpace.DEVICE_GRAY);
if (alpha == null) {
@@ -148,6 +151,18 @@
alpha.getDataElements(0, y, w, 1, line);
out.write(line);
}
+ } else if (dataType == DataBuffer.TYPE_USHORT) {
+ short[] sline = new short[nbands * w];
+ byte[] line = new byte[nbands * w];
+ for (int y = 0; y < h; y++) {
+ alpha.getDataElements(0, y, w, 1, sline);
+ for (int i = 0; i < w; i++) {
+ //this compresses a 16-bit alpha channel to 8 bits!
+ //we probably don't ever need a 16-bit channel
+ line[i] = (byte)(sline[i] >> 8);
+ }
+ out.write(line);
+ }
} else if (dataType == DataBuffer.TYPE_INT) {
//Is there an better way to get a 8bit raster from a TYPE_INT raster?
int shift = 24;
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/pdf/PDFFilterList.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/pdf/PDFFilterList.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/pdf/PDFFilterList.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/pdf/PDFFilterList.java Sun Sep 28 04:38:15 2008
@@ -163,6 +163,11 @@
* @param type which filter list to modify
*/
public void addDefaultFilters(Map filters, String type) {
+ if (METADATA_FILTER.equals(type)) {
+ //XMP metadata should not be embedded in clear-text
+ addFilter(new NullFilter());
+ return;
+ }
List filterset = null;
if (filters != null) {
filterset = (List)filters.get(type);
@@ -171,10 +176,7 @@
}
}
if (filterset == null || filterset.size() == 0) {
- if (METADATA_FILTER.equals(type)) {
- //XMP metadata should not be embedded in clear-text
- addFilter(new NullFilter());
- } else if (JPEG_FILTER.equals(type)) {
+ if (JPEG_FILTER.equals(type)) {
//JPEG is already well compressed
addFilter(new NullFilter());
} else if (TIFF_FILTER.equals(type)) {
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/AbstractGraphics2DAdapter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/AbstractGraphics2DAdapter.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/AbstractGraphics2DAdapter.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/AbstractGraphics2DAdapter.java Sun Sep 28 04:38:15 2008
@@ -35,7 +35,7 @@
import java.io.IOException;
import org.apache.fop.render.RendererContext.RendererContextWrapper;
-import org.apache.fop.util.UnitConv;
+import org.apache.xmlgraphics.util.UnitConv;
/**
* Abstract base class for Graphics2DAdapter implementations.
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/AbstractPathOrientedRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/AbstractPathOrientedRenderer.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/AbstractPathOrientedRenderer.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/AbstractPathOrientedRenderer.java Sun Sep 28 04:38:15 2008
@@ -48,6 +48,7 @@
import org.apache.fop.fo.extensions.ExtensionElementMapping;
import org.apache.fop.fonts.FontMetrics;
import org.apache.fop.traits.BorderProps;
+import org.apache.xmlgraphics.util.UnitConv;
/**
* Abstract base class for renderers like PDF and PostScript where many painting operations
@@ -485,8 +486,8 @@
int borderPaddingStart = bv.getBorderAndPaddingWidthStart();
int borderPaddingBefore = bv.getBorderAndPaddingWidthBefore();
//This is the content-rect
- float width = (float)bv.getIPD() / 1000f;
- float height = (float)bv.getBPD() / 1000f;
+ float width = bv.getIPD() / 1000f;
+ float height = bv.getBPD() / 1000f;
if (bv.getPositioning() == Block.ABSOLUTE
|| bv.getPositioning() == Block.FIXED) {
@@ -515,7 +516,7 @@
saveGraphicsState();
//Viewport position
- concatenateTransformationMatrix(mptToPt(positionTransform));
+ concatenateTransformationMatrix(UnitConv.mptToPt(positionTransform));
//Background and borders
float bpwidth = (borderPaddingStart + bv.getBorderAndPaddingWidthEnd()) / 1000f;
@@ -525,7 +526,7 @@
//Shift to content rectangle after border painting
AffineTransform contentRectTransform = new AffineTransform();
contentRectTransform.translate(borderPaddingStart, borderPaddingBefore);
- concatenateTransformationMatrix(mptToPt(contentRectTransform));
+ concatenateTransformationMatrix(UnitConv.mptToPt(contentRectTransform));
//Clipping
if (bv.getClip()) {
@@ -535,7 +536,7 @@
saveGraphicsState();
//Set up coordinate system for content rectangle
AffineTransform contentTransform = ctm.toAffineTransform();
- concatenateTransformationMatrix(mptToPt(contentTransform));
+ concatenateTransformationMatrix(UnitConv.mptToPt(contentTransform));
currentIPPosition = 0;
currentBPPosition = 0;
@@ -581,7 +582,7 @@
currentIPPosition = saveIP;
currentBPPosition = saveBP;
- currentBPPosition += (int)(bv.getAllocBPD());
+ currentBPPosition += (bv.getAllocBPD());
}
}
@@ -599,7 +600,7 @@
if (!at.isIdentity()) {
saveGraphicsState();
- concatenateTransformationMatrix(mptToPt(at));
+ concatenateTransformationMatrix(UnitConv.mptToPt(at));
}
currentIPPosition = 0;
@@ -632,7 +633,7 @@
if (!at.isIdentity()) {
saveGraphicsState();
- concatenateTransformationMatrix(mptToPt(at));
+ concatenateTransformationMatrix(UnitConv.mptToPt(at));
}
currentIPPosition = 0;
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/PrintRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/PrintRenderer.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/PrintRenderer.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/PrintRenderer.java Sun Sep 28 04:38:15 2008
@@ -20,7 +20,6 @@
package org.apache.fop.render;
// FOP
-import java.awt.Color;
import java.awt.geom.Rectangle2D;
import java.util.List;
import java.util.Map;
@@ -113,29 +112,6 @@
}
/**
- * Lightens up a color for groove, ridge, inset and outset border effects.
- * @param col the color to lighten up
- * @param factor factor by which to lighten up (negative values darken the color)
- * @return the modified color
- */
- public static Color lightenColor(Color col, float factor) {
- // TODO: This function converts the color into the sRGB namespace.
- // This should be avoided if possible.
- float[] cols = new float[4];
- cols = col.getRGBComponents(cols);
- if (factor > 0) {
- cols[0] += (1.0 - cols[0]) * factor;
- cols[1] += (1.0 - cols[1]) * factor;
- cols[2] += (1.0 - cols[2]) * factor;
- } else {
- cols[0] -= cols[0] * -factor;
- cols[1] -= cols[1] * -factor;
- cols[2] -= cols[2] * -factor;
- }
- return new Color(cols[0], cols[1], cols[2], cols[3]);
- }
-
- /**
* Creates a RendererContext for an image.
* @param x the x coordinate (in millipoints)
* @param y the y coordinate (in millipoints)
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/afp/AFPRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/afp/AFPRenderer.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/afp/AFPRenderer.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/afp/AFPRenderer.java Sun Sep 28 04:38:15 2008
@@ -88,6 +88,7 @@
import org.apache.fop.render.afp.modca.AFPDataStream;
import org.apache.fop.render.afp.modca.ImageObject;
import org.apache.fop.render.afp.modca.PageObject;
+import org.apache.fop.util.ColorUtil;
/**
* This is an implementation of a FOP Renderer that renders areas to AFP.
@@ -850,8 +851,8 @@
{
float colFactor = (style == EN_GROOVE ? 0.4f : -0.4f);
if (horz) {
- Color uppercol = lightenColor(col, -colFactor);
- Color lowercol = lightenColor(col, colFactor);
+ Color uppercol = ColorUtil.lightenColor(col, -colFactor);
+ Color lowercol = ColorUtil.lightenColor(col, colFactor);
float h3 = h / 3;
float ym1 = y1;
afpDataStream.createLine(
@@ -879,8 +880,8 @@
lowercol
);
} else {
- Color leftcol = lightenColor(col, -colFactor);
- Color rightcol = lightenColor(col, colFactor);
+ Color leftcol = ColorUtil.lightenColor(col, -colFactor);
+ Color rightcol = ColorUtil.lightenColor(col, colFactor);
float w3 = w / 3;
float xm1 = x1 + (w3 / 2);
afpDataStream.createLine(
Propchange: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/IFContentHandler.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Sep 28 04:38:15 2008
@@ -1 +1 @@
-/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFContentHandler.java:680381-685574
+/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFContentHandler.java:680381-699792
Propchange: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/IFPainter.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Sep 28 04:38:15 2008
@@ -1 +1 @@
-/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFPainter.java:680381-685574
+/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFPainter.java:680381-699792
Propchange: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/IFRenderer.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Sep 28 04:38:15 2008
@@ -1 +1 @@
-/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFRenderer.java:680381-685574
+/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFRenderer.java:680381-699792
Propchange: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/extensions/DocumentNavigationExtensionConstants.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Sep 28 04:38:15 2008
@@ -1 +1 @@
-/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/extensions/DocumentNavigationExtensionConstants.java:685127-685574
+/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/extensions/DocumentNavigationExtensionConstants.java:685127-699792
Propchange: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/extensions/DocumentNavigationExtensionHandlerFactory.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Sep 28 04:38:15 2008
@@ -1 +1 @@
-/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/extensions/DocumentNavigationExtensionHandlerFactory.java:685127-685574
+/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/extensions/DocumentNavigationExtensionHandlerFactory.java:685127-699792
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/java2d/Java2DRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/java2d/Java2DRenderer.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/java2d/Java2DRenderer.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/java2d/Java2DRenderer.java Sun Sep 28 04:38:15 2008
@@ -77,6 +77,7 @@
import org.apache.fop.render.RendererContext;
import org.apache.fop.render.pdf.CTMHelper;
import org.apache.fop.util.CharUtilities;
+import org.apache.fop.util.ColorUtil;
/**
* The <code>Java2DRenderer</code> class provides the abstract technical
@@ -652,8 +653,8 @@
case Constants.EN_RIDGE:
float colFactor = (style == EN_GROOVE ? 0.4f : -0.4f);
if (horz) {
- Color uppercol = lightenColor(col, -colFactor);
- Color lowercol = lightenColor(col, colFactor);
+ Color uppercol = ColorUtil.lightenColor(col, -colFactor);
+ Color lowercol = ColorUtil.lightenColor(col, colFactor);
float h3 = h / 3;
float ym1 = y1 + (h3 / 2);
g2d.setStroke(new BasicStroke(h3));
@@ -664,8 +665,8 @@
g2d.setColor(lowercol);
g2d.draw(new Line2D.Float(x1, ym1 + h3 + h3, x2, ym1 + h3 + h3));
} else {
- Color leftcol = lightenColor(col, -colFactor);
- Color rightcol = lightenColor(col, colFactor);
+ Color leftcol = ColorUtil.lightenColor(col, -colFactor);
+ Color rightcol = ColorUtil.lightenColor(col, colFactor);
float w3 = w / 3;
float xm1 = x1 + (w3 / 2);
g2d.setStroke(new BasicStroke(w3));
@@ -681,13 +682,13 @@
case Constants.EN_OUTSET:
colFactor = (style == EN_OUTSET ? 0.4f : -0.4f);
if (horz) {
- col = lightenColor(col, (startOrBefore ? 1 : -1) * colFactor);
+ col = ColorUtil.lightenColor(col, (startOrBefore ? 1 : -1) * colFactor);
g2d.setStroke(new BasicStroke(h));
float ym1 = y1 + (h / 2);
g2d.setColor(col);
g2d.draw(new Line2D.Float(x1, ym1, x2, ym1));
} else {
- col = lightenColor(col, (startOrBefore ? 1 : -1) * colFactor);
+ col = ColorUtil.lightenColor(col, (startOrBefore ? 1 : -1) * colFactor);
float xm1 = x1 + (w / 2);
g2d.setStroke(new BasicStroke(w));
g2d.setColor(col);
@@ -859,7 +860,7 @@
case EN_RIDGE:
float half = area.getRuleThickness() / 2000f;
- state.updateColor(lightenColor(col, 0.6f));
+ state.updateColor(ColorUtil.lightenColor(col, 0.6f));
moveTo(startx, starty);
lineTo(endx, starty);
lineTo(endx, starty + 2 * half);
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGenerator.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGenerator.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGenerator.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGenerator.java Sun Sep 28 04:38:15 2008
@@ -45,8 +45,7 @@
import org.apache.commons.io.output.ByteArrayOutputStream;
import org.apache.xmlgraphics.image.GraphicsUtil;
-
-import org.apache.fop.util.UnitConv;
+import org.apache.xmlgraphics.util.UnitConv;
/**
* This class provides methods for generating PCL print files.
@@ -72,7 +71,7 @@
private final DecimalFormat df2 = new DecimalFormat("0.##", symbols);
private final DecimalFormat df4 = new DecimalFormat("0.####", symbols);
- private OutputStream out;
+ private final OutputStream out;
private boolean currentSourceTransparency = true;
private boolean currentPatternTransparency = true;
@@ -83,7 +82,7 @@
* true: Standard PCL shades are used (poor quality). false: user-defined pattern are used
* to create custom dither patterns for better grayscale quality.
*/
- private boolean usePCLShades = false;
+ private final boolean usePCLShades = false;
/**
* Main constructor.
@@ -412,7 +411,7 @@
private static void setValueInMatrix(int[] dn, int half, int part, int idx, int value) {
int xoff = (part & 1) * half;
int yoff = (part & 2) * half * half;
- int matrixIndex = yoff + ((int)(idx / half) * half * 2) + (idx % half) + xoff;
+ int matrixIndex = yoff + ((idx / half) * half * 2) + (idx % half) + xoff;
dn[matrixIndex] = value;
}
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGraphics2D.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGraphics2D.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGraphics2D.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGraphics2D.java Sun Sep 28 04:38:15 2008
@@ -42,9 +42,9 @@
import java.io.IOException;
import java.text.AttributedCharacterIterator;
-import org.apache.fop.util.UnitConv;
import org.apache.xmlgraphics.java2d.AbstractGraphics2D;
import org.apache.xmlgraphics.java2d.GraphicContext;
+import org.apache.xmlgraphics.util.UnitConv;
/**
* Graphics2D implementation implementing PCL and HP GL/2.
@@ -55,7 +55,7 @@
/** The PCL generator */
protected PCLGenerator gen;
- private boolean failOnUnsupportedFeature = true;
+ private final boolean failOnUnsupportedFeature = true;
private boolean clippingDisabled = false;
/**
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGraphics2DAdapter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGraphics2DAdapter.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGraphics2DAdapter.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGraphics2DAdapter.java Sun Sep 28 04:38:15 2008
@@ -34,7 +34,7 @@
import org.apache.fop.render.AbstractGraphics2DAdapter;
import org.apache.fop.render.RendererContext;
-import org.apache.fop.util.UnitConv;
+import org.apache.xmlgraphics.util.UnitConv;
/**
* Graphics2DAdapter implementation for PCL and HP GL/2.
@@ -111,7 +111,7 @@
if (!painted) {
//Fallback solution: Paint to a BufferedImage
- int resolution = (int)Math.round(context.getUserAgent().getTargetResolution());
+ int resolution = Math.round(context.getUserAgent().getTargetResolution());
BufferedImage bi = paintToBufferedImage(painter, pclContext,
resolution, !pclContext.isColorCanvas(), false);
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLPageDefinition.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLPageDefinition.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLPageDefinition.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLPageDefinition.java Sun Sep 28 04:38:15 2008
@@ -24,7 +24,7 @@
import java.util.Iterator;
import java.util.List;
-import org.apache.fop.util.UnitConv;
+import org.apache.xmlgraphics.util.UnitConv;
/**
* This class represents a page format with PCL-specific properties.
@@ -34,11 +34,11 @@
private static List pageDefinitions;
private static PCLPageDefinition defaultPageDefinition;
- private String name;
- private int selector;
- private Dimension physicalPageSize;
- private Rectangle logicalPageRect;
- private boolean landscape;
+ private final String name;
+ private final int selector;
+ private final Dimension physicalPageSize;
+ private final Rectangle logicalPageRect;
+ private final boolean landscape;
static {
createPageDefinitions();
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLRenderer.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLRenderer.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLRenderer.java Sun Sep 28 04:38:15 2008
@@ -96,7 +96,7 @@
import org.apache.fop.render.java2d.Java2DRenderer;
import org.apache.fop.render.pcl.extensions.PCLElementMapping;
import org.apache.fop.traits.BorderProps;
-import org.apache.fop.util.UnitConv;
+import org.apache.xmlgraphics.util.UnitConv;
/* Note:
* There are some commonalities with AbstractPathOrientedRenderer but it's not possible
@@ -122,7 +122,7 @@
protected PCLGenerator gen;
private boolean ioTrouble = false;
- private Stack graphicContextStack = new Stack();
+ private final Stack graphicContextStack = new Stack();
private GraphicContext graphicContext = new GraphicContext();
private PCLPageDefinition currentPageDefinition;
@@ -147,7 +147,7 @@
* This can be used to work around problems with Apache Batik, for example, but setting
* this to true will increase memory consumption.
*/
- private boolean useColorCanvas = false;
+ private final boolean useColorCanvas = false;
/**
* Controls whether the generation of PJL commands gets disabled.
@@ -239,7 +239,7 @@
/** @return the target resolution */
protected int getResolution() {
- int resolution = (int)Math.round(userAgent.getTargetResolution());
+ int resolution = Math.round(userAgent.getTargetResolution());
if (resolution <= 300) {
return 300;
} else {
@@ -928,8 +928,8 @@
int borderPaddingStart = bv.getBorderAndPaddingWidthStart();
int borderPaddingBefore = bv.getBorderAndPaddingWidthBefore();
//This is the content-rect
- float width = (float)bv.getIPD() / 1000f;
- float height = (float)bv.getBPD() / 1000f;
+ float width = bv.getIPD() / 1000f;
+ float height = bv.getBPD() / 1000f;
if (bv.getPositioning() == Block.ABSOLUTE
@@ -951,7 +951,7 @@
saveGraphicsState();
//Viewport position
- concatenateTransformationMatrix(mptToPt(positionTransform));
+ concatenateTransformationMatrix(UnitConv.mptToPt(positionTransform));
//Background and borders
float bpwidth = (borderPaddingStart + bv.getBorderAndPaddingWidthEnd()) / 1000f;
@@ -961,7 +961,7 @@
//Shift to content rectangle after border painting
AffineTransform contentRectTransform = new AffineTransform();
contentRectTransform.translate(borderPaddingStart, borderPaddingBefore);
- concatenateTransformationMatrix(mptToPt(contentRectTransform));
+ concatenateTransformationMatrix(UnitConv.mptToPt(contentRectTransform));
//Clipping
if (bv.getClip()) {
@@ -971,7 +971,7 @@
saveGraphicsState();
//Set up coordinate system for content rectangle
AffineTransform contentTransform = ctm.toAffineTransform();
- concatenateTransformationMatrix(mptToPt(contentTransform));
+ concatenateTransformationMatrix(UnitConv.mptToPt(contentTransform));
currentIPPosition = 0;
currentBPPosition = 0;
@@ -1017,7 +1017,7 @@
currentIPPosition = saveIP;
currentBPPosition = saveBP;
- currentBPPosition += (int)(bv.getAllocBPD());
+ currentBPPosition += (bv.getAllocBPD());
}
//currentFontName = saveFontName;
}
@@ -1041,7 +1041,7 @@
if (!at.isIdentity()) {
saveGraphicsState();
- concatenateTransformationMatrix(mptToPt(at));
+ concatenateTransformationMatrix(UnitConv.mptToPt(at));
}
currentIPPosition = 0;
@@ -1079,7 +1079,7 @@
if (!at.isIdentity()) {
saveGraphicsState();
- concatenateTransformationMatrix(mptToPt(at));
+ concatenateTransformationMatrix(UnitConv.mptToPt(at));
}
currentIPPosition = 0;
@@ -1102,7 +1102,7 @@
*/
protected void concatenateTransformationMatrix(AffineTransform at) {
if (!at.isIdentity()) {
- graphicContext.transform(ptToMpt(at));
+ graphicContext.transform(UnitConv.ptToMpt(at));
changePrintDirection();
}
}
@@ -1416,13 +1416,13 @@
borderRect.width,
borderRect.height);
final Rectangle paintRect = new Rectangle(
- (int)Math.round(borderRect.x * 1000f),
- (int)Math.round(borderRect.y * 1000f),
+ Math.round(borderRect.x * 1000f),
+ Math.round(borderRect.y * 1000f),
(int)Math.floor(borderRect.width * 1000f) + 1,
(int)Math.floor(borderRect.height * 1000f) + 1);
//Add one pixel wide safety margin around the paint area
int pixelWidth = (int)Math.round(UnitConv.in2mpt(1) / userAgent.getTargetResolution());
- final int xoffset = (int)Math.round(-effBorderRect.x * 1000f) + pixelWidth;
+ final int xoffset = Math.round(-effBorderRect.x * 1000f) + pixelWidth;
final int yoffset = pixelWidth;
paintRect.x += xoffset;
paintRect.y += yoffset;
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pdf/PDFBorderPainter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pdf/PDFBorderPainter.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pdf/PDFBorderPainter.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pdf/PDFBorderPainter.java Sun Sep 28 04:38:15 2008
@@ -27,9 +27,9 @@
import org.apache.commons.logging.LogFactory;
import org.apache.fop.fo.Constants;
-import org.apache.fop.render.PrintRenderer;
import org.apache.fop.render.intermediate.BorderPainter;
import org.apache.fop.traits.RuleStyle;
+import org.apache.fop.util.ColorUtil;
/**
* PDF-specific implementation of the {@code BorderPainter}.
@@ -150,8 +150,8 @@
float colFactor = (style == Constants.EN_GROOVE ? 0.4f : -0.4f);
generator.add("[] 0 d ");
if (horz) {
- Color uppercol = PrintRenderer.lightenColor(col, -colFactor);
- Color lowercol = PrintRenderer.lightenColor(col, colFactor);
+ Color uppercol = ColorUtil.lightenColor(col, -colFactor);
+ Color lowercol = ColorUtil.lightenColor(col, colFactor);
float h3 = h / 3;
generator.add(format(h3) + " w\n");
float ym1 = y1 + (h3 / 2);
@@ -165,8 +165,8 @@
generator.add(format(x1) + " " + format(ym1 + h3 + h3) + " m "
+ format(x2) + " " + format(ym1 + h3 + h3) + " l S\n");
} else {
- Color leftcol = PrintRenderer.lightenColor(col, -colFactor);
- Color rightcol = PrintRenderer.lightenColor(col, colFactor);
+ Color leftcol = ColorUtil.lightenColor(col, -colFactor);
+ Color rightcol = ColorUtil.lightenColor(col, colFactor);
float w3 = w / 3;
generator.add(format(w3) + " w\n");
float xm1 = x1 + (w3 / 2);
@@ -189,14 +189,14 @@
generator.add("[] 0 d ");
Color c = col;
if (horz) {
- c = PrintRenderer.lightenColor(c, (startOrBefore ? 1 : -1) * colFactor);
+ c = ColorUtil.lightenColor(c, (startOrBefore ? 1 : -1) * colFactor);
generator.add(format(h) + " w\n");
float ym1 = y1 + (h / 2);
generator.setColor(c, false);
generator.add(format(x1) + " " + format(ym1) + " m "
+ format(x2) + " " + format(ym1) + " l S\n");
} else {
- c = PrintRenderer.lightenColor(c, (startOrBefore ? 1 : -1) * colFactor);
+ c = ColorUtil.lightenColor(c, (startOrBefore ? 1 : -1) * colFactor);
generator.add(format(w) + " w\n");
float xm1 = x1 + (w / 2);
generator.setColor(c, false);
@@ -254,7 +254,7 @@
break;
case Constants.EN_GROOVE:
case Constants.EN_RIDGE:
- generator.setColor(PrintRenderer.lightenColor(color, 0.6f), true);
+ generator.setColor(ColorUtil.lightenColor(color, 0.6f), true);
generator.add(format(start.x) + " " + format(starty) + " m\n");
generator.add(format(end.x) + " " + format(starty) + " l\n");
generator.add(format(end.x) + " " + format(starty + 2 * half) + " l\n");
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pdf/PDFRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pdf/PDFRenderer.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pdf/PDFRenderer.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pdf/PDFRenderer.java Sun Sep 28 04:38:15 2008
@@ -93,6 +93,7 @@
import org.apache.fop.render.RendererContext;
import org.apache.fop.traits.RuleStyle;
import org.apache.fop.util.CharUtilities;
+import org.apache.fop.util.ColorUtil;
/**
* Renderer that renders areas to PDF.
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/ps/PSRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/ps/PSRenderer.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/ps/PSRenderer.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/ps/PSRenderer.java Sun Sep 28 04:38:15 2008
@@ -106,6 +106,7 @@
import org.apache.fop.render.ps.extensions.PSSetPageDevice;
import org.apache.fop.render.ps.extensions.PSSetupCode;
import org.apache.fop.util.CharUtilities;
+import org.apache.fop.util.ColorUtil;
/**
* Renderer that renders to PostScript.
@@ -839,8 +840,8 @@
float colFactor = (style == EN_GROOVE ? 0.4f : -0.4f);
gen.useDash(null);
if (horz) {
- Color uppercol = lightenColor(col, -colFactor);
- Color lowercol = lightenColor(col, colFactor);
+ Color uppercol = ColorUtil.lightenColor(col, -colFactor);
+ Color lowercol = ColorUtil.lightenColor(col, colFactor);
float h3 = h / 3;
gen.useLineWidth(h3);
float ym1 = y1 + (h3 / 2);
@@ -851,8 +852,8 @@
gen.useColor(lowercol);
drawLine(x1, ym1 + h3 + h3, x2, ym1 + h3 + h3);
} else {
- Color leftcol = lightenColor(col, -colFactor);
- Color rightcol = lightenColor(col, colFactor);
+ Color leftcol = ColorUtil.lightenColor(col, -colFactor);
+ Color rightcol = ColorUtil.lightenColor(col, colFactor);
float w3 = w / 3;
gen.useLineWidth(w3);
float xm1 = x1 + (w3 / 2);
@@ -869,13 +870,13 @@
colFactor = (style == EN_OUTSET ? 0.4f : -0.4f);
gen.useDash(null);
if (horz) {
- Color c = lightenColor(col, (startOrBefore ? 1 : -1) * colFactor);
+ Color c = ColorUtil.lightenColor(col, (startOrBefore ? 1 : -1) * colFactor);
gen.useLineWidth(h);
float ym1 = y1 + (h / 2);
gen.useColor(c);
drawLine(x1, ym1, x2, ym1);
} else {
- Color c = lightenColor(col, (startOrBefore ? 1 : -1) * colFactor);
+ Color c = ColorUtil.lightenColor(col, (startOrBefore ? 1 : -1) * colFactor);
gen.useLineWidth(w);
float xm1 = x1 + (w / 2);
gen.useColor(c);
@@ -1570,7 +1571,7 @@
case EN_RIDGE:
float half = area.getRuleThickness() / 2000f;
- gen.useColor(lightenColor(col, 0.6f));
+ gen.useColor(ColorUtil.lightenColor(col, 0.6f));
moveTo(startx, starty);
lineTo(endx, starty);
lineTo(endx, starty + 2 * half);
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/rtf/RTFHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/rtf/RTFHandler.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/rtf/RTFHandler.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/rtf/RTFHandler.java Sun Sep 28 04:38:15 2008
@@ -222,7 +222,7 @@
PageSequenceMaster master
= pageSeq.getRoot().getLayoutMasterSet().getPageSequenceMaster(reference);
this.pagemaster = master.getNextSimplePageMaster(
- false, false, false, false, false);
+ false, false, false, false);
}
}
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfTableCell.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfTableCell.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfTableCell.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfTableCell.java Sun Sep 28 04:38:15 2008
@@ -26,8 +26,8 @@
* the FOP project.
*/
-import java.io.Writer;
import java.io.IOException;
+import java.io.Writer;
import java.util.Iterator;
/** A cell in an RTF table, container for paragraphs, lists, etc.
@@ -237,12 +237,12 @@
// Reach the column index in table context corresponding to the current column cell
// id is the index of the current cell (it begins at 1)
// getColumnIndex() is the index of the current column in table context (it begins at 0)
- // => so we must widthdraw 1 when comparing these two variables.
+ // => so we must withdraw 1 when comparing these two variables.
while ((this.id - 1) != tableColumnsInfo.getColumnIndex()) {
tableColumnsInfo.selectNextColumn();
}
- // We widthdraw one cell because the first cell is already created
+ // We withdraw one cell because the first cell is already created
// (it's the current cell) !
int i = nbMergedCells - 1;
while (i > 0) {
@@ -255,21 +255,18 @@
final int xPos = offset + iCurrentWidth;
//these lines added by Chris Scott, Westinghouse
- //some attributes need to be writting before opening block
+ //some attributes need to be written before opening block
if (setCenter) {
- writeControlWord("qc");
+ writeControlWord("trqc");
} else if (setRight) {
- writeControlWord("qr");
+ writeControlWord("trqr");
} else {
- writeControlWord("ql");
+ writeControlWord("trql");
}
writeAttributes (attrib, ITableAttributes.CELL_VERT_ALIGN);
writeControlWord("cellx" + xPos);
- //TODO Why is this here, right after an alignment command is written (see above)?
- writeControlWord("ql");
-
return xPos;
}
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/txt/TXTRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/txt/TXTRenderer.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/txt/TXTRenderer.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/txt/TXTRenderer.java Sun Sep 28 04:38:15 2008
@@ -37,6 +37,7 @@
import org.apache.fop.render.AbstractPathOrientedRenderer;
import org.apache.fop.render.txt.border.AbstractBorderElement;
import org.apache.fop.render.txt.border.BorderManager;
+import org.apache.xmlgraphics.util.UnitConv;
/**
* Renderer that renders areas to plain text.
@@ -85,10 +86,10 @@
* Every line except the last line on a page (which will end with
* pageEnding) will be terminated with this string.
*/
- private String lineEnding = "\r\n";
+ private final String lineEnding = "\r\n";
/** Every page except the last one will end with this string. */
- private String pageEnding = "\f";
+ private final String pageEnding = "\f";
/** Equals true, if current page is first. */
private boolean firstPage = false;
@@ -100,7 +101,7 @@
private char fillChar;
/** Saves current coordinate transformation. */
- private TXTState currentState = new TXTState();
+ private final TXTState currentState = new TXTState();
private String encoding;
@@ -570,7 +571,7 @@
/** {@inheritDoc} */
protected void concatenateTransformationMatrix(AffineTransform at) {
- currentState.push(new CTM(ptToMpt(at)));
+ currentState.push(new CTM(UnitConv.ptToMpt(at)));
}
}
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/svg/PDFGraphics2D.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/svg/PDFGraphics2D.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/svg/PDFGraphics2D.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/svg/PDFGraphics2D.java Sun Sep 28 04:38:15 2008
@@ -285,7 +285,7 @@
/**
* Get the string containing all the commands written into this
- * Grpahics.
+ * Graphics.
* @return the string containing the PDF markup
*/
public String getString() {
@@ -294,7 +294,7 @@
/**
* Get the string buffer from the currentStream, containing all
- * the commands written into this Grpahics so far.
+ * the commands written into this Graphics so far.
* @return the StringBuffer containing the PDF markup
*/
public StringBuffer getBuffer() {
@@ -876,7 +876,7 @@
if (paint instanceof RadialGradientPaint) {
RadialGradientPaint rgp = (RadialGradientPaint)paint;
- // There is essentially no way to support repeate
+ // There is essentially no way to support repeats
// in PDF for radial gradients (the one option would
// be to 'grow' the outer circle until it fully covered
// the bounds and then grow the stops accordingly, the
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/svg/PDFTextPainter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/svg/PDFTextPainter.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/svg/PDFTextPainter.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/svg/PDFTextPainter.java Sun Sep 28 04:38:15 2008
@@ -147,7 +147,9 @@
textUtil.beginTextObject();
textUtil.setFonts(fonts);
- textUtil.setTextRenderingMode(tpi.fillPaint != null, tpi.strokePaint != null, false);
+ boolean stroke = (tpi.strokePaint != null)
+ && (tpi.strokeStroke != null);
+ textUtil.setTextRenderingMode(tpi.fillPaint != null, stroke, false);
AffineTransform localTransform = new AffineTransform();
Point2D prevPos = null;
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/util/ColorUtil.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/util/ColorUtil.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/util/ColorUtil.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/util/ColorUtil.java Sun Sep 28 04:38:15 2008
@@ -658,4 +658,27 @@
colorMap.put("transparent", new Color(0, 0, 0, 0));
}
+ /**
+ * Lightens up a color for groove, ridge, inset and outset border effects.
+ * @param col the color to lighten up
+ * @param factor factor by which to lighten up (negative values darken the color)
+ * @return the modified color
+ */
+ public static Color lightenColor(Color col, float factor) {
+ // TODO: This function converts the color into the sRGB namespace.
+ // This should be avoided if possible.
+ float[] cols = new float[4];
+ cols = col.getRGBComponents(cols);
+ if (factor > 0) {
+ cols[0] += (1.0 - cols[0]) * factor;
+ cols[1] += (1.0 - cols[1]) * factor;
+ cols[2] += (1.0 - cols[2]) * factor;
+ } else {
+ cols[0] -= cols[0] * -factor;
+ cols[1] -= cols[1] * -factor;
+ cols[2] -= cols[2] * -factor;
+ }
+ return new Color(cols[0], cols[1], cols[2], cols[3]);
+ }
+
}
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/status.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/status.xml?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/status.xml (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/status.xml Sun Sep 28 04:38:15 2008
@@ -53,6 +53,46 @@
<changes>
<release version="FOP Trunk" date="TBD">
+ <action context="Layout" dev="AD" type="fix" fixes-bug="40798">
+ Bugzilla 40798: A conditional-page-master-reference with page-position="last" qualifies
+ for a first page, if it is also the last. Additionally: also added support for
+ page-position="only".
+ </action>
+ <action context="Code" dev="AD" type="fix" fixes-bug="45842" due-to="Carsten Siedentop">
+ Make fop.bat and fop.cmd use the %FOP_OPTS% environment variable.
+ </action>
+ <action context="Renderers" dev="JM" type="add" fixes-bug="45795">
+ PDF Output: Added support for handling 16-bit alpha channel. They are currently
+ converted to 8 bits.
+ </action>
+ <action context="Renderers" dev="JM" type="fix">
+ PDF Output: Made sure the XMP Metadata stream is never compressed.
+ </action>
+ <action context="Fonts" dev="JM" type="fix" fixes-bug="45734" due-to="J. Frantzius">
+ Fix for PFMReader after bug #43089 changed the behavior of PFMFile. Fixes baseline
+ problems when Type 1 fonts are used in conjunction with XML font metric files.
+ </action>
+ <action context="Renderers" dev="JM" type="fix" fixes-bug="45616" due-to="Pavel Kysilka">
+ Fix for table handling in RTF output, so the output works with OpenOffice and AbiWord, too.
+ </action>
+ <action context="Code" dev="AD" type="fix" fixes-bug="45667">
+ Quick-fix to avoid a possible NullPointerException when using
+ empty inlines and hyphenation.
+ </action>
+ <action context="Layout" dev="JM" type="add">
+ Added missing generation of areas for empty grid units in tables with collapsing border
+ model.
+ </action>
+ <action context="Code" dev="JM" type="fix" importance="high">
+ Fixed memory leak in property cache (not cleaning stale PropertyCache$CacheEntry instances).
+ </action>
+ <action context="Renderers" dev="JM" type="fix">
+ Fixed text stroking in SVG when the stroke-width is zero.
+ </action>
+ <action context="Layout" dev="JM" type="fix">
+ Fixed the source for a division by zero when the content of an fo:leader with
+ leader-pattern="use-content" collapses to zero width during layout.
+ </action>
<action context="Renderers" dev="JM" type="fix">
Fixed border trait parsing for the area tree XML when CMYK or ICC colors were used.
</action>
@@ -128,7 +168,7 @@
Fixed a ClassCastException when using an fo:wrapper as a child
of an fo:block-container.
</action>
- <action context="Fonts" dev="AC" type="add">
+ <action context="Fonts" dev="AC" type="add" importance="high">
Add support for font substitution.
</action>
<action context="Renderers" dev="JM" type="fix" fixes-bug="43650">
@@ -151,7 +191,7 @@
Add partial support for the "show-destination" property on fo:basic-link
(PDF output only; see limitations on the compliance page)
</action>
- <action context="Layout" dev="JM" type="add">
+ <action context="Layout" dev="JM" type="add" importance="high">
Added minimal support for integer keep values on the various keep properties on block-level
FOs. For now, all integer values are treated the same (i.e. without strength distinction).
Using integers allows to avoid overflows that can happen when "always" is used extensively.
@@ -179,7 +219,7 @@
When a JPEG image is embedded, an optionally embedded color profile is filtered out
as it's already embedded separately in the PDF file.
</action>
- <action context="Fonts" dev="JM" type="add">
+ <action context="Fonts" dev="JM" type="add" importance="high">
Added support for addressing all glyphs available in a Type 1 font, not just the ones
in the font's primary encoding.
</action>
@@ -678,7 +718,7 @@
<action context="Code" dev="JM" type="fix">
AFP Renderer: Bugfix for 1 bit images where the width is not a multiple of 8.
</action>
- <action context="Code" dev="MM" type="add">
+ <action context="Code" dev="MM" type="add" importance="high">
Support for keep-together.within-line="always".
</action>
<action context="Code" dev="MM" type="fix">
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/StandardTestSuite.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/StandardTestSuite.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/StandardTestSuite.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/StandardTestSuite.java Sun Sep 28 04:38:15 2008
@@ -23,6 +23,8 @@
import junit.framework.TestSuite;
import org.apache.fop.fonts.TrueTypeAnsiTestCase;
+import org.apache.fop.image.loader.batik.ImageLoaderTestCase;
+import org.apache.fop.image.loader.batik.ImagePreloaderTestCase;
import org.apache.fop.render.pdf.PDFAConformanceTestCase;
import org.apache.fop.render.pdf.PDFCMapTestCase;
import org.apache.fop.render.pdf.PDFEncodingTestCase;
@@ -50,6 +52,8 @@
suite.addTest(new TestSuite(PDFsRGBSettingsTestCase.class));
suite.addTest(new TestSuite(TrueTypeAnsiTestCase.class));
suite.addTest(RichTextFormatTestSuite.suite());
+ suite.addTest(new TestSuite(ImageLoaderTestCase.class));
+ suite.addTest(new TestSuite(ImagePreloaderTestCase.class));
//$JUnit-END$
return suite;
}
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/URIResolutionTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/URIResolutionTestCase.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/URIResolutionTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/URIResolutionTestCase.java Sun Sep 28 04:38:15 2008
@@ -66,6 +66,7 @@
/** @see junit.framework.TestCase#TestCase(String) */
public URIResolutionTestCase(String name) {
super(name);
+ backupDir.mkdirs();
}
/**
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/UtilityCodeTestSuite.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/UtilityCodeTestSuite.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/UtilityCodeTestSuite.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/UtilityCodeTestSuite.java Sun Sep 28 04:38:15 2008
@@ -22,14 +22,12 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.apache.fop.pdf.PDFObjectTestCase;
import org.apache.fop.events.BasicEventTestCase;
+import org.apache.fop.pdf.PDFObjectTestCase;
import org.apache.fop.traits.BorderPropsTestCase;
-import org.apache.fop.util.DataURIResolverTestCase;
+import org.apache.fop.util.ColorUtilTestCase;
import org.apache.fop.util.ElementListUtilsTestCase;
import org.apache.fop.util.PDFNumberTestCase;
-import org.apache.fop.util.ColorUtilTestCase;
-import org.apache.fop.util.UnitConvTestCase;
import org.apache.fop.util.XMLResourceBundleTestCase;
/**
@@ -47,13 +45,12 @@
//$JUnit-BEGIN$
suite.addTest(new TestSuite(PDFNumberTestCase.class));
suite.addTest(new TestSuite(PDFObjectTestCase.class));
- suite.addTest(new TestSuite(UnitConvTestCase.class));
suite.addTest(new TestSuite(ColorUtilTestCase.class));
suite.addTest(new TestSuite(BorderPropsTestCase.class));
suite.addTest(new TestSuite(ElementListUtilsTestCase.class));
- suite.addTest(new TestSuite(DataURIResolverTestCase.class));
suite.addTest(new TestSuite(BasicEventTestCase.class));
suite.addTest(new TestSuite(XMLResourceBundleTestCase.class));
+ suite.addTest(new TestSuite(URIResolutionTestCase.class));
//$JUnit-END$
return suite;
}
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/image/loader/batik/ImageLoaderTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/image/loader/batik/ImageLoaderTestCase.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/image/loader/batik/ImageLoaderTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/image/loader/batik/ImageLoaderTestCase.java Sun Sep 28 04:38:15 2008
@@ -19,21 +19,23 @@
package org.apache.fop.image.loader.batik;
+import java.awt.image.Raster;
+import java.awt.image.RenderedImage;
import java.io.File;
import junit.framework.TestCase;
+import org.apache.fop.apps.FOUserAgent;
+import org.apache.fop.apps.FopFactory;
import org.apache.xmlgraphics.image.loader.Image;
import org.apache.xmlgraphics.image.loader.ImageFlavor;
import org.apache.xmlgraphics.image.loader.ImageInfo;
import org.apache.xmlgraphics.image.loader.ImageManager;
+import org.apache.xmlgraphics.image.loader.XMLNamespaceEnabledImageFlavor;
import org.apache.xmlgraphics.image.loader.impl.ImageRendered;
import org.apache.xmlgraphics.image.loader.impl.ImageXMLDOM;
import org.apache.xmlgraphics.image.writer.ImageWriterUtil;
-import org.apache.fop.apps.FOUserAgent;
-import org.apache.fop.apps.FopFactory;
-
/**
* Tests for bundled ImageLoader implementations.
*/
@@ -59,10 +61,10 @@
ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
- Image img = manager.getImage(info, ImageFlavor.XML_DOM,
+ Image img = manager.getImage(info, XMLNamespaceEnabledImageFlavor.SVG_DOM,
userAgent.getImageSessionContext());
assertNotNull("Image must not be null", img);
- assertEquals(ImageFlavor.XML_DOM, img.getFlavor());
+ assertEquals(XMLNamespaceEnabledImageFlavor.SVG_DOM, img.getFlavor());
ImageXMLDOM imgDom = (ImageXMLDOM)img;
assertNotNull(imgDom.getDocument());
assertEquals("http://www.w3.org/2000/svg", imgDom.getRootNamespace());
@@ -101,10 +103,10 @@
ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
assertNotNull("ImageInfo must not be null", info);
- Image img = manager.getImage(info, ImageFlavor.XML_DOM,
+ Image img = manager.getImage(info, XMLNamespaceEnabledImageFlavor.SVG_DOM,
userAgent.getImageSessionContext());
assertNotNull("Image must not be null", img);
- assertEquals(ImageFlavor.XML_DOM, img.getFlavor());
+ assertEquals(XMLNamespaceEnabledImageFlavor.SVG_DOM, img.getFlavor());
ImageXMLDOM imgDom = (ImageXMLDOM)img;
assertNotNull(imgDom.getDocument());
assertEquals("http://www.w3.org/2000/svg", imgDom.getRootNamespace());
@@ -160,4 +162,58 @@
assertEquals(612000, info.getSize().getHeightMpt());
}
+ public void testSVGWithReferences() throws Exception {
+ String uri = "test/resources/fop/svg/images.svg";
+ FopFactory ff = FopFactory.newInstance();
+ FOUserAgent userAgent = ff.newFOUserAgent();
+
+ ImageManager manager = ff.getImageManager();
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
+ assertNotNull("ImageInfo must not be null", info);
+
+ Image img = manager.getImage(info, XMLNamespaceEnabledImageFlavor.SVG_DOM,
+ userAgent.getImageSessionContext());
+ assertNotNull("Image must not be null", img);
+ assertEquals(XMLNamespaceEnabledImageFlavor.SVG_DOM, img.getFlavor());
+ ImageXMLDOM imgDom = (ImageXMLDOM)img;
+ assertNotNull(imgDom.getDocument());
+ assertEquals("http://www.w3.org/2000/svg", imgDom.getRootNamespace());
+ info = imgDom.getInfo(); //Switch to the ImageInfo returned by the image
+ assertEquals(400000, info.getSize().getWidthMpt());
+ assertEquals(400000, info.getSize().getHeightMpt());
+ assertEquals(400, info.getSize().getWidthPx());
+ assertEquals(400, info.getSize().getHeightPx());
+
+ img = manager.getImage(info, ImageFlavor.RENDERED_IMAGE,
+ userAgent.getImageSessionContext());
+ assertNotNull("Image must not be null", img);
+ assertEquals(ImageFlavor.RENDERED_IMAGE, img.getFlavor());
+ ImageRendered imgRed = (ImageRendered)img;
+ RenderedImage renImg = imgRed.getRenderedImage();
+ assertNotNull(renImg);
+ if (DEBUG_TARGET_DIR != null) {
+ ImageWriterUtil.saveAsPNG(renImg,
+ (int)userAgent.getTargetResolution(),
+ new File(DEBUG_TARGET_DIR, "images.svg.png"));
+ }
+ assertEquals(400, renImg.getWidth());
+ assertEquals(400, renImg.getHeight());
+ info = imgRed.getInfo(); //Switch to the ImageInfo returned by the image
+ assertEquals(400000, info.getSize().getWidthMpt());
+ assertEquals(400000, info.getSize().getHeightMpt());
+ Raster raster = renImg.getData();
+ // This pixel is white
+ int[] pixel1 = raster.getPixel(1, 1, (int[] )null);
+ // This pixel is from the embedded JPG and is not white
+ int[] pixel80 = raster.getPixel(80, 80, (int[]) null);
+ assertEquals(pixel1.length, pixel80.length);
+ boolean same = true;
+ for (int i = 0; i < pixel1.length; i++) {
+ same &= (pixel1[i] == pixel80[i]);
+ }
+ assertFalse("Embedding JPG into SVG failed", same);
+ }
+
+
+
}
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/memory/MemoryEater.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/memory/MemoryEater.java?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/memory/MemoryEater.java (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/memory/MemoryEater.java Sun Sep 28 04:38:15 2008
@@ -34,6 +34,7 @@
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.stream.StreamSource;
+import org.apache.commons.io.IOUtils;
import org.apache.commons.io.output.NullOutputStream;
import org.apache.fop.apps.FOUserAgent;
@@ -51,28 +52,48 @@
private FopFactory fopFactory = FopFactory.newInstance();
private Templates replicatorTemplates;
+ private Stats stats;
+
public MemoryEater() throws TransformerConfigurationException, MalformedURLException {
File xsltFile = new File("test/xsl/fo-replicator.xsl");
Source xslt = new StreamSource(xsltFile);
replicatorTemplates = tFactory.newTemplates(xslt);
}
- private void eatMemory(File foFile, int replicatorRepeats) throws Exception {
+ private void eatMemory(File foFile, int runRepeats, int replicatorRepeats) throws Exception {
+ stats = new Stats();
+ for (int i = 0; i < runRepeats; i++) {
+ eatMemory(i, foFile, replicatorRepeats);
+ stats.progress(i, runRepeats);
+ }
+ stats.dumpFinalStats();
+ System.out.println(stats.getGoogleChartURL());
+ }
+
+ private void eatMemory(int callIndex, File foFile, int replicatorRepeats) throws Exception {
Source src = new StreamSource(foFile);
Transformer transformer = replicatorTemplates.newTransformer();
transformer.setParameter("repeats", new Integer(replicatorRepeats));
OutputStream out = new NullOutputStream(); //write to /dev/nul
- FOUserAgent userAgent = fopFactory.newFOUserAgent();
- userAgent.setBaseURL(foFile.getParentFile().toURL().toExternalForm());
- Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, userAgent, out);
- Result res = new SAXResult(fop.getDefaultHandler());
-
- transformer.transform(src, res);
-
- System.out.println("Generated " + fop.getResults().getPageCount() + " pages.");
-
+ try {
+ FOUserAgent userAgent = fopFactory.newFOUserAgent();
+ userAgent.setBaseURL(foFile.getParentFile().toURL().toExternalForm());
+ Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, userAgent, out);
+ Result res = new SAXResult(fop.getDefaultHandler());
+
+ transformer.transform(src, res);
+
+ stats.notifyPagesProduced(fop.getResults().getPageCount());
+ if (callIndex == 0) {
+ System.out.println(foFile.getName() + " generates "
+ + fop.getResults().getPageCount() + " pages.");
+ }
+ stats.checkStats();
+ } finally {
+ IOUtils.closeQuietly(out);
+ }
}
private static void prompt() throws IOException {
@@ -108,9 +129,7 @@
long start = System.currentTimeMillis();
MemoryEater app = new MemoryEater();
- for (int i = 0; i < runRepeats; i++) {
- app.eatMemory(testFile, replicatorRepeats);
- }
+ app.eatMemory(testFile, runRepeats, replicatorRepeats);
long duration = System.currentTimeMillis() - start;
System.out.println("Success! Job took " + duration + " ms");
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/leader_leader-pattern_use-content.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/leader_leader-pattern_use-content.xml?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/leader_leader-pattern_use-content.xml (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/leader_leader-pattern_use-content.xml Sun Sep 28 04:38:15 2008
@@ -69,6 +69,10 @@
</fo:instream-foreign-object></fo:leader>
Content is svg 20 x 10 which is wider than the leader-length
</fo:block>
+ <fo:block>
+ <fo:leader leader-length="36pt" leader-pattern="use-content"> </fo:leader>
+ Content is " "
+ </fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
@@ -172,5 +176,9 @@
<eval expected="0" xpath="//flow/block[7]/lineArea/inlineparent/inlineparent[1]/@offset"/>
<eval expected="20000" xpath="//flow/block[7]/lineArea/inlineparent/inlineparent[1]/viewport/@ipd"/>
<eval expected="-1384" xpath="//flow/block[7]/lineArea/inlineparent/inlineparent[1]/viewport/@offset"/>
+
+ <eval expected="11100" xpath="//flow/block[8]/lineArea/@bpd"/>
+ <eval expected="36000" xpath="//flow/block[8]/lineArea/space[1]/@ipd"/>
+ <eval expected="0" xpath="//flow/block[8]/lineArea/space[1]/@offset"/>
</checks>
</testcase>
Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/table_border-collapse_collapse_spans_2.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/table_border-collapse_collapse_spans_2.xml?rev=699801&r1=699800&r2=699801&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/table_border-collapse_collapse_spans_2.xml (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/layoutengine/standard-testcases/table_border-collapse_collapse_spans_2.xml Sun Sep 28 04:38:15 2008
@@ -434,69 +434,68 @@
<eval expected="(double,#800000,6000,collapse-outer)" xpath="//flow/block[2]/block[19]/@border-after"/>
<eval expected="(solid,#800000,6000,collapse-outer)" xpath="//flow/block[2]/block[19]/@border-start"/>
<eval expected="(solid,#800000,6000,collapse-inner)" xpath="//flow/block[2]/block[19]/@border-end"/>
- <!--
<eval expected="94000" xpath="//flow/block[2]/block[20]/@ipd"/>
<eval expected="106000" xpath="//flow/block[2]/block[20]/@ipda"/>
<eval expected="52200" xpath="//flow/block[2]/block[20]/@bpd"/>
<eval expected="52200" xpath="//flow/block[2]/block[20]/@bpda"/>
<eval expected="103000" xpath="//flow/block[2]/block[20]/@left-offset"/>
<eval expected="241100" xpath="//flow/block[2]/block[20]/@top-offset"/>
- <eval expected="(double,#800000,0,collapse-outer)" xpath="//flow/block[2]/block[20]/@border-after"/>
+ <eval expected="" xpath="//flow/block[2]/block[20]/@border-before"/>
+ <eval expected="" xpath="//flow/block[2]/block[20]/@border-after"/>
<eval expected="(solid,#800000,6000,collapse-inner)" xpath="//flow/block[2]/block[20]/@border-start"/>
<eval expected="(solid,#008000,6000,collapse-inner)" xpath="//flow/block[2]/block[20]/@border-end"/>
- -->
- <eval expected="97000" xpath="//flow/block[2]/block[20]/@ipd"/>
- <eval expected="103000" xpath="//flow/block[2]/block[20]/@ipda"/>
- <eval expected="41300" xpath="//flow/block[2]/block[20]/@bpd"/>
- <eval expected="81300" xpath="//flow/block[2]/block[20]/@bpda"/>
- <eval expected="203000" xpath="//flow/block[2]/block[20]/@left-offset"/>
- <eval expected="115400" xpath="//flow/block[2]/block[20]/@top-offset"/>
- <eval expected="(double,#008000,40000,collapse-inner)" xpath="//flow/block[2]/block[20]/@border-before"/>
- <eval expected="(solid,#008000,6000,collapse-inner)" xpath="//flow/block[2]/block[20]/@border-start"/>
- <eval expected="97500" xpath="//flow/block[2]/block[21]/@ipd"/>
- <eval expected="102500" xpath="//flow/block[2]/block[21]/@ipda"/>
+ <eval expected="97000" xpath="//flow/block[2]/block[21]/@ipd"/>
+ <eval expected="103000" xpath="//flow/block[2]/block[21]/@ipda"/>
<eval expected="41300" xpath="//flow/block[2]/block[21]/@bpd"/>
<eval expected="81300" xpath="//flow/block[2]/block[21]/@bpda"/>
- <eval expected="300000" xpath="//flow/block[2]/block[21]/@left-offset"/>
+ <eval expected="203000" xpath="//flow/block[2]/block[21]/@left-offset"/>
<eval expected="115400" xpath="//flow/block[2]/block[21]/@top-offset"/>
<eval expected="(double,#008000,40000,collapse-inner)" xpath="//flow/block[2]/block[21]/@border-before"/>
- <eval expected="(dashed,#008000,5000,collapse-outer)" xpath="//flow/block[2]/block[21]/@border-end"/>
- <eval expected="70000" xpath="//flow/block[2]/block[22]/@ipd"/>
- <eval expected="130000" xpath="//flow/block[2]/block[22]/@ipda"/>
- <eval expected="44400" xpath="//flow/block[2]/block[22]/@bpd"/>
- <eval expected="44400" xpath="//flow/block[2]/block[22]/@bpda"/>
- <eval expected="230000" xpath="//flow/block[2]/block[22]/@left-offset"/>
- <eval expected="196700" xpath="//flow/block[2]/block[22]/@top-offset"/>
- <eval expected="(solid,#c0c0c0,60000,collapse-inner)" xpath="//flow/block[2]/block[22]/@border-start"/>
- <eval expected="97500" xpath="//flow/block[2]/block[23]/@ipd"/>
- <eval expected="102500" xpath="//flow/block[2]/block[23]/@ipda"/>
+ <eval expected="(solid,#008000,6000,collapse-inner)" xpath="//flow/block[2]/block[21]/@border-start"/>
+ <eval expected="97500" xpath="//flow/block[2]/block[22]/@ipd"/>
+ <eval expected="102500" xpath="//flow/block[2]/block[22]/@ipda"/>
+ <eval expected="41300" xpath="//flow/block[2]/block[22]/@bpd"/>
+ <eval expected="81300" xpath="//flow/block[2]/block[22]/@bpda"/>
+ <eval expected="300000" xpath="//flow/block[2]/block[22]/@left-offset"/>
+ <eval expected="115400" xpath="//flow/block[2]/block[22]/@top-offset"/>
+ <eval expected="(double,#008000,40000,collapse-inner)" xpath="//flow/block[2]/block[22]/@border-before"/>
+ <eval expected="(dashed,#008000,5000,collapse-outer)" xpath="//flow/block[2]/block[22]/@border-end"/>
+ <eval expected="70000" xpath="//flow/block[2]/block[23]/@ipd"/>
+ <eval expected="130000" xpath="//flow/block[2]/block[23]/@ipda"/>
<eval expected="44400" xpath="//flow/block[2]/block[23]/@bpd"/>
<eval expected="44400" xpath="//flow/block[2]/block[23]/@bpda"/>
- <eval expected="300000" xpath="//flow/block[2]/block[23]/@left-offset"/>
+ <eval expected="230000" xpath="//flow/block[2]/block[23]/@left-offset"/>
<eval expected="196700" xpath="//flow/block[2]/block[23]/@top-offset"/>
- <eval expected="(dashed,#008000,5000,collapse-outer)" xpath="//flow/block[2]/block[23]/@border-end"/>
- <eval expected="97000" xpath="//flow/block[2]/block[24]/@ipd"/>
- <eval expected="103000" xpath="//flow/block[2]/block[24]/@ipda"/>
- <eval expected="49700" xpath="//flow/block[2]/block[24]/@bpd"/>
- <eval expected="54700" xpath="//flow/block[2]/block[24]/@bpda"/>
- <eval expected="203000" xpath="//flow/block[2]/block[24]/@left-offset"/>
- <eval expected="241100" xpath="//flow/block[2]/block[24]/@top-offset"/>
- <eval expected="(solid,#008000,5000,collapse-outer)" xpath="//flow/block[2]/block[24]/@border-after"/>
- <eval expected="(solid,#008000,6000,collapse-inner)" xpath="//flow/block[2]/block[24]/@border-start"/>
- <eval expected="97500" xpath="//flow/block[2]/block[25]/@ipd"/>
- <eval expected="102500" xpath="//flow/block[2]/block[25]/@ipda"/>
+ <eval expected="(solid,#c0c0c0,60000,collapse-inner)" xpath="//flow/block[2]/block[23]/@border-start"/>
+ <eval expected="97500" xpath="//flow/block[2]/block[24]/@ipd"/>
+ <eval expected="102500" xpath="//flow/block[2]/block[24]/@ipda"/>
+ <eval expected="44400" xpath="//flow/block[2]/block[24]/@bpd"/>
+ <eval expected="44400" xpath="//flow/block[2]/block[24]/@bpda"/>
+ <eval expected="300000" xpath="//flow/block[2]/block[24]/@left-offset"/>
+ <eval expected="196700" xpath="//flow/block[2]/block[24]/@top-offset"/>
+ <eval expected="(dashed,#008000,5000,collapse-outer)" xpath="//flow/block[2]/block[24]/@border-end"/>
+ <eval expected="97000" xpath="//flow/block[2]/block[25]/@ipd"/>
+ <eval expected="103000" xpath="//flow/block[2]/block[25]/@ipda"/>
<eval expected="49700" xpath="//flow/block[2]/block[25]/@bpd"/>
<eval expected="54700" xpath="//flow/block[2]/block[25]/@bpda"/>
- <eval expected="300000" xpath="//flow/block[2]/block[25]/@left-offset"/>
+ <eval expected="203000" xpath="//flow/block[2]/block[25]/@left-offset"/>
<eval expected="241100" xpath="//flow/block[2]/block[25]/@top-offset"/>
<eval expected="(solid,#008000,5000,collapse-outer)" xpath="//flow/block[2]/block[25]/@border-after"/>
- <eval expected="(dashed,#008000,5000,collapse-outer)" xpath="//flow/block[2]/block[25]/@border-end"/>
- <eval expected="167500" xpath="//flow/block[2]/block[26]/@ipd"/>
- <eval expected="167500" xpath="//flow/block[2]/block[26]/@ipda"/>
- <eval expected="135400" xpath="//flow/block[2]/block[26]/@bpd"/>
- <eval expected="135400" xpath="//flow/block[2]/block[26]/@bpda"/>
- <eval expected="230000" xpath="//flow/block[2]/block[26]/@left-offset"/>
- <eval expected="155400" xpath="//flow/block[2]/block[26]/@top-offset"/>
+ <eval expected="(solid,#008000,6000,collapse-inner)" xpath="//flow/block[2]/block[25]/@border-start"/>
+ <eval expected="97500" xpath="//flow/block[2]/block[26]/@ipd"/>
+ <eval expected="102500" xpath="//flow/block[2]/block[26]/@ipda"/>
+ <eval expected="49700" xpath="//flow/block[2]/block[26]/@bpd"/>
+ <eval expected="54700" xpath="//flow/block[2]/block[26]/@bpda"/>
+ <eval expected="300000" xpath="//flow/block[2]/block[26]/@left-offset"/>
+ <eval expected="241100" xpath="//flow/block[2]/block[26]/@top-offset"/>
+ <eval expected="(solid,#008000,5000,collapse-outer)" xpath="//flow/block[2]/block[26]/@border-after"/>
+ <eval expected="(dashed,#008000,5000,collapse-outer)" xpath="//flow/block[2]/block[26]/@border-end"/>
+ <eval expected="167500" xpath="//flow/block[2]/block[27]/@ipd"/>
+ <eval expected="167500" xpath="//flow/block[2]/block[27]/@ipda"/>
+ <eval expected="135400" xpath="//flow/block[2]/block[27]/@bpd"/>
+ <eval expected="135400" xpath="//flow/block[2]/block[27]/@bpda"/>
+ <eval expected="230000" xpath="//flow/block[2]/block[27]/@left-offset"/>
+ <eval expected="155400" xpath="//flow/block[2]/block[27]/@top-offset"/>
<!-- table 2 -->
<eval expected="199300" xpath="//flow/block[4]/@bpd"/>
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org