From eccb79bbb782429e651e8e3576f595eeaeb86413 Mon Sep 17 00:00:00 2001 From: Simon Steiner Date: Wed, 24 Jan 2018 11:53:32 +0000 Subject: [PATCH] FOP-2527: RTF indent not being rendered by fo:block text-indent git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1822095 13f79535-47bb-0310-9956-ffa450edef68 --- .../render/rtf/TextAttributesConverter.java | 5 ++ .../fop/render/rtf/rtflib/rtfdoc/RtfText.java | 2 +- .../rtf/TextAttributesConverterTestCase.java | 51 +++++++++++++++++++ 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 fop-core/src/test/java/org/apache/fop/render/rtf/TextAttributesConverterTestCase.java diff --git a/fop-core/src/main/java/org/apache/fop/render/rtf/TextAttributesConverter.java b/fop-core/src/main/java/org/apache/fop/render/rtf/TextAttributesConverter.java index 8c0d252a5..1b6d0a514 100644 --- a/fop-core/src/main/java/org/apache/fop/render/rtf/TextAttributesConverter.java +++ b/fop-core/src/main/java/org/apache/fop/render/rtf/TextAttributesConverter.java @@ -83,6 +83,7 @@ final class TextAttributesConverter { attrBlockTextAlign(fobj.getTextAlign(), attrib); attrBorder(fobj.getCommonBorderPaddingBackground(), attrib, fobj); attrBreak(fobj, attrib); + attrBlockTextIndent(fobj.getTextIndent(), attrib); return attrib; } @@ -378,6 +379,10 @@ final class TextAttributesConverter { rtfAttr.setTwips(RtfText.RIGHT_INDENT_BODY, cmb.endIndent); } + private static void attrBlockTextIndent(Length textIndent, FOPRtfAttributes rtfAttr) { + rtfAttr.setTwips(RtfText.LEFT_INDENT_FIRST, textIndent.getValue()); + } + /* private static void attrBlockDimension(FObj fobj, FOPRtfAttributes rtfAttr) { diff --git a/fop-core/src/main/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfText.java b/fop-core/src/main/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfText.java index 5e43857b8..9f442d64f 100644 --- a/fop-core/src/main/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfText.java +++ b/fop-core/src/main/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfText.java @@ -128,7 +128,7 @@ public class RtfText extends RtfElement { /** constant for left indent body */ public static final String LEFT_INDENT_BODY = "li"; /** constant for left indent first */ - public static final String LEFT_INDENT_FIRST = "fi-"; + public static final String LEFT_INDENT_FIRST = "fi"; /** constant for right indent body */ public static final String RIGHT_INDENT_BODY = "ri"; diff --git a/fop-core/src/test/java/org/apache/fop/render/rtf/TextAttributesConverterTestCase.java b/fop-core/src/test/java/org/apache/fop/render/rtf/TextAttributesConverterTestCase.java new file mode 100644 index 000000000..c57ad2b05 --- /dev/null +++ b/fop-core/src/test/java/org/apache/fop/render/rtf/TextAttributesConverterTestCase.java @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* $Id$ */ +package org.apache.fop.render.rtf; + +import java.io.File; + +import org.junit.Assert; +import org.junit.Test; + +import org.apache.fop.apps.FOPException; +import org.apache.fop.apps.FOUserAgent; +import org.apache.fop.apps.FopFactory; +import org.apache.fop.fo.Constants; +import org.apache.fop.fo.StaticPropertyList; +import org.apache.fop.fo.flow.Block; +import org.apache.fop.fo.pagination.Root; +import org.apache.fop.fo.properties.FixedLength; +import org.apache.fop.fotreetest.DummyFOEventHandler; +import org.apache.fop.render.rtf.rtflib.rtfdoc.RtfAttributes; +import org.apache.fop.render.rtf.rtflib.rtfdoc.RtfText; + +public class TextAttributesConverterTestCase { + @Test + public void test() throws FOPException { + FOUserAgent ua = FopFactory.newInstance(new File(".").toURI()).newFOUserAgent(); + Root root = new Root(null); + root.setFOEventHandler(new DummyFOEventHandler(ua)); + Block block = new Block(root); + StaticPropertyList propertyList = new StaticPropertyList(block, null); + propertyList.putExplicit(Constants.PR_TEXT_INDENT, FixedLength.getInstance(1000)); + block.bind(propertyList); + RtfAttributes attributes = TextAttributesConverter.convertAttributes(block); + Assert.assertEquals(attributes.getValue(RtfText.LEFT_INDENT_FIRST), 20); + } +} -- 2.39.5