I've seen examples where a percentage was used in proportional-column-width(numeric). FOP raises an error in this case, but I think that's wrong. The spec says: "Percentages are values that are counted in 1/100 units. That is, 10% as a percentage value is 0.10 as a floating point number." and "For example, a value of "110%" on a "font-size" property would be evaluated to mean 1.1 times the current font size. Such a definition of the allowed conversion for percentages is specified on the property definition. If no conversion is specified, the resulting value is a percentage." http://www.w3.org/TR/xsl11/#d0e5420 I interpret this so that the proportional-column-width(20%) is, in this case, simply converted to the numeric value 0.2. So if you consistently use percentages to specify the column widths you'd get the expected result. Tasks: - Get feedback if this view is correct. - Write a test case - Fix the problem
Agreed with the interpretation. proportional-column-width() takes a Numeric, so percentages should indeed be allowed, and the suggested way of interpreting percentage values makes a lot of sense. Ran a quick test, and the problem seems to be: fop.expr.PPColWidthFunction expects a number, but gets a null if percentages are specified. RelativeNumericProperty does not override Property.getNumber()...
Just FYI, adding the following simple method to PercentLength seems to do the trick: public Number getNumber() { return new Double(factor); } Only seems a bit awkward to me that a percentage as a subexpression is parsed into a PercentLength here...
update: The attached patch should at least take care of the last task... :-) I'll see if I can add a test case as well, so we can close this one.
Created attachment 21494 [details] patch fixing the problem
Fixed in FOP Trunk. see: http://svn.apache.org/viewvc?rev=620283&view=rev
batch transition pre-FOP1.0 resolved+fixed bugs to closed+fixed