Fop
  1. Fop
  2. FOP-1308

Percentages in proportional-column-width() not supported

    Details

    • Type: Bug Bug
    • Status: Closed
    • Resolution: Fixed
    • Affects Version/s: trunk
    • Fix Version/s: None
    • Component/s: fo/unqualified
    • Labels:
      None
    • Environment:
      Operating System: All
      Platform: All
    • External issue ID:
      41631

      Description

      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
      1. b41631.diff
        2 kB
        Andreas L. Delmelle

        Activity

        Jeremias Maerki created issue -
        Hide
        Andreas L. Delmelle added a comment -

        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()...

        Show
        Andreas L. Delmelle added a comment - 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()...
        Hide
        Andreas L. Delmelle added a comment -

        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...

        Show
        Andreas L. Delmelle added a comment - 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...
        Hide
        Andreas L. Delmelle added a comment -

        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.

        Show
        Andreas L. Delmelle added a comment - 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.
        Hide
        Andreas L. Delmelle added a comment -

        Attachment b41631.diff has been added with description: patch fixing the problem

        Show
        Andreas L. Delmelle added a comment - Attachment b41631.diff has been added with description: patch fixing the problem
        Hide
        Andreas L. Delmelle added a comment -
        Show
        Andreas L. Delmelle added a comment - Fixed in FOP Trunk. see: http://svn.apache.org/viewvc?rev=620283&view=rev
        Hide
        Glenn Adams added a comment -

        batch transition pre-FOP1.0 resolved+fixed bugs to closed+fixed

        Show
        Glenn Adams added a comment - batch transition pre-FOP1.0 resolved+fixed bugs to closed+fixed

          People

          • Assignee:
            fop-dev
            Reporter:
            Jeremias Maerki
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development