Skip to content

Commit 90f78d8

Browse files
committed
Remove redundant interface extension for form field classes
It was only there for compatibility over the past time. Now the form elements are supported via native inline-block functionality in layout DEVSIX-3495
1 parent bfcd257 commit 90f78d8

File tree

6 files changed

+15
-20
lines changed

6 files changed

+15
-20
lines changed

src/main/java/com/itextpdf/html2pdf/attach/impl/layout/form/element/IFormField.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,11 @@ This file is part of the iText (R) project.
4343
package com.itextpdf.html2pdf.attach.impl.layout.form.element;
4444

4545
import com.itextpdf.layout.element.IBlockElement;
46-
import com.itextpdf.layout.element.ILeafElement;
4746

4847
/**
49-
* Interface extending the {@link ILeafElement} interface in the context of form fields.
48+
* Common interface for HTML form elements
5049
*/
51-
public interface IFormField extends ILeafElement, IBlockElement {
50+
public interface IFormField extends IBlockElement {
5251

5352
/**
5453
* Gets the id.

src/main/java/com/itextpdf/html2pdf/attach/impl/layout/form/renderer/AbstractFormFieldRenderer.java

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,8 @@ This file is part of the iText (R) project.
4646
import com.itextpdf.html2pdf.attach.impl.layout.Html2PdfProperty;
4747
import com.itextpdf.html2pdf.attach.impl.layout.form.element.IFormField;
4848
import com.itextpdf.html2pdf.attach.util.AccessiblePropHelper;
49-
import com.itextpdf.io.font.PdfEncodings;
5049
import com.itextpdf.kernel.geom.Rectangle;
5150
import com.itextpdf.kernel.pdf.PdfDocument;
52-
import com.itextpdf.kernel.pdf.PdfString;
53-
import com.itextpdf.kernel.pdf.tagging.PdfStructElem;
5451
import com.itextpdf.kernel.pdf.tagging.StandardRoles;
5552
import com.itextpdf.kernel.pdf.tagutils.TagTreePointer;
5653
import com.itextpdf.layout.IPropertyContainer;
@@ -64,7 +61,6 @@ This file is part of the iText (R) project.
6461
import com.itextpdf.layout.property.UnitValue;
6562
import com.itextpdf.layout.renderer.BlockRenderer;
6663
import com.itextpdf.layout.renderer.DrawContext;
67-
import com.itextpdf.layout.renderer.ILeafElementRenderer;
6864
import com.itextpdf.layout.renderer.IRenderer;
6965
import com.itextpdf.layout.tagging.IAccessibleElement;
7066

@@ -74,7 +70,7 @@ This file is part of the iText (R) project.
7470
/**
7571
* Abstract {@link BlockRenderer} for form fields.
7672
*/
77-
public abstract class AbstractFormFieldRenderer extends BlockRenderer implements ILeafElementRenderer {
73+
public abstract class AbstractFormFieldRenderer extends BlockRenderer {
7874

7975
/**
8076
* The flat renderer.
@@ -184,18 +180,6 @@ public void drawChildren(DrawContext drawContext) {
184180
drawContext.getCanvas().restoreState();
185181
}
186182

187-
@Override
188-
public float getAscent() {
189-
Float baseline = getLastYLineRecursively();
190-
return baseline != null ? occupiedArea.getBBox().getTop() - (float) baseline : occupiedArea.getBBox().getHeight();
191-
}
192-
193-
@Override
194-
public float getDescent() {
195-
Float baseline = getLastYLineRecursively();
196-
return baseline != null ? occupiedArea.getBBox().getBottom() - (float) baseline : 0;
197-
}
198-
199183
/* (non-Javadoc)
200184
* @see com.itextpdf.layout.renderer.BlockRenderer#getMinMaxWidth(float)
201185
*/

src/main/java/com/itextpdf/html2pdf/attach/impl/tags/LiTagWorker.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,12 @@ public boolean processTagChild(ITagWorker childTagWorker, ProcessorContext conte
135135
if (element instanceof ILeafElement) {
136136
inlineHelper.add((ILeafElement) element);
137137
return true;
138+
} else if (childTagWorker instanceof IDisplayAware &&
139+
(CssConstants.INLINE_BLOCK.equals(((IDisplayAware) childTagWorker).getDisplay()) ||
140+
CssConstants.INLINE.equals(((IDisplayAware) childTagWorker).getDisplay()))
141+
&& element instanceof IBlockElement) {
142+
inlineHelper.add((IBlockElement) element);
143+
return true;
138144
} else if (childTagWorker instanceof SpanTagWorker) {
139145
boolean allChildrenProcessed = true;
140146
for (IPropertyContainer propertyContainer : ((SpanTagWorker) childTagWorker).getAllElements()) {

src/main/java/com/itextpdf/html2pdf/attach/impl/tags/PTagWorker.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,12 @@ public boolean processTagChild(ITagWorker childTagWorker, ProcessorContext conte
133133
} else if (element instanceof ILeafElement) {
134134
inlineHelper.add((ILeafElement) element);
135135
return true;
136+
} else if (childTagWorker instanceof IDisplayAware &&
137+
(CssConstants.INLINE_BLOCK.equals(((IDisplayAware) childTagWorker).getDisplay()) ||
138+
CssConstants.INLINE.equals(((IDisplayAware) childTagWorker).getDisplay()))
139+
&& element instanceof IBlockElement) {
140+
inlineHelper.add((IBlockElement) element);
141+
return true;
136142
} else if (isBlockWithDisplay(childTagWorker, element, CssConstants.INLINE_BLOCK, false)) {
137143
inlineHelper.add((IBlockElement) element);
138144
return true;
Binary file not shown.

0 commit comments

Comments
 (0)