Skip to content

Commit 91eaf54

Browse files
Consider not set LINE_HEIGHT property to be exactly the same as LineHeight.NORMAL
DEVSIX-3662
1 parent 6501108 commit 91eaf54

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

layout/src/main/java/com/itextpdf/layout/renderer/LineRenderer.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,6 @@ public LayoutResult layout(LayoutContext layoutContext) {
129129

130130
float curWidth = 0;
131131
if (RenderingMode.HTML_MODE.equals(this.<RenderingMode>getProperty(Property.RENDERING_MODE))
132-
&& hasProperty(Property.LINE_HEIGHT)
133132
&& hasChildRendererInHtmlMode()) {
134133
float[] ascenderDescender = LineHeightHelper.getActualAscenderDescender(this);
135134
maxAscent = ascenderDescender[0];

layout/src/test/java/com/itextpdf/layout/renderer/LineRendererUnitTest.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ This file is part of the iText (R) project.
4343
package com.itextpdf.layout.renderer;
4444

4545
import com.itextpdf.io.LogMessageConstant;
46+
import com.itextpdf.io.font.constants.StandardFonts;
47+
import com.itextpdf.kernel.font.PdfFontFactory;
4648
import com.itextpdf.kernel.geom.Rectangle;
4749
import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;
4850
import com.itextpdf.layout.Document;
@@ -61,6 +63,7 @@ This file is part of the iText (R) project.
6163
import com.itextpdf.test.annotations.LogMessages;
6264
import com.itextpdf.test.annotations.type.UnitTest;
6365

66+
import java.io.IOException;
6467
import java.util.Arrays;
6568
import org.junit.Assert;
6669
import org.junit.Test;
@@ -279,4 +282,27 @@ public void lineRendererLayoutInHtmlModeWithLineHeightAndChildInHtmlModeTest() {
279282
Assert.assertEquals(28.67920f, lineRenderer.maxAscent, EPS);
280283
Assert.assertEquals(-21.32080f, lineRenderer.maxDescent, EPS);
281284
}
285+
286+
@Test
287+
public void lineRendererLayoutInHtmlModeWithLineHeightPropertyNotSet() throws IOException {
288+
LineRenderer lineRenderer = new LineRenderer();
289+
lineRenderer.setParent(createDocument().getRenderer());
290+
lineRenderer.setProperty(Property.RENDERING_MODE, RenderingMode.HTML_MODE);
291+
292+
// Set fonts with different ascent/descent to line and text
293+
lineRenderer.setProperty(Property.FONT, PdfFontFactory.createFont(StandardFonts.HELVETICA));
294+
295+
TextRenderer textRenderer = new TextRenderer(new Text("text"));
296+
textRenderer.setProperty(Property.FONT, PdfFontFactory.createFont(StandardFonts.COURIER));
297+
298+
lineRenderer.addChild(textRenderer);
299+
LayoutResult layoutResLineHeightNotSet = lineRenderer.layout(new LayoutContext(createLayoutArea(1000, 1000)));
300+
301+
lineRenderer.setProperty(Property.LINE_HEIGHT, LineHeight.createNormalValue());
302+
LayoutResult layoutResLineHeightNormal = lineRenderer.layout(new LayoutContext(createLayoutArea(1000, 1000)));
303+
304+
Rectangle bboxLineHeightNotSet = layoutResLineHeightNotSet.getOccupiedArea().getBBox();
305+
Rectangle bboxLineHeightNormal = layoutResLineHeightNormal.getOccupiedArea().getBBox();
306+
Assert.assertTrue(bboxLineHeightNotSet.equalsWithEpsilon(bboxLineHeightNormal));
307+
}
282308
}

0 commit comments

Comments
 (0)