Skip to content

Commit b2f6aa6

Browse files
committed
Add check for convertToElements
DEVSIX-7929
1 parent 3e088c4 commit b2f6aa6

File tree

5 files changed

+52
-9
lines changed

5 files changed

+52
-9
lines changed

src/main/java/com/itextpdf/html2pdf/attach/ProcessorContext.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ This file is part of the iText (R) project.
2222
*/
2323
package com.itextpdf.html2pdf.attach;
2424

25+
import com.itextpdf.commons.actions.contexts.IMetaInfo;
2526
import com.itextpdf.html2pdf.ConverterProperties;
2627
import com.itextpdf.html2pdf.attach.impl.DefaultTagWorkerFactory;
2728
import com.itextpdf.html2pdf.attach.impl.HtmlMetaInfoContainer;
@@ -35,7 +36,6 @@ This file is part of the iText (R) project.
3536
import com.itextpdf.html2pdf.resolver.form.RadioCheckResolver;
3637
import com.itextpdf.html2pdf.resolver.resource.HtmlResourceResolver;
3738
import com.itextpdf.io.font.FontProgram;
38-
import com.itextpdf.commons.actions.contexts.IMetaInfo;
3939
import com.itextpdf.kernel.pdf.PdfDocument;
4040
import com.itextpdf.layout.font.FontInfo;
4141
import com.itextpdf.layout.font.FontProvider;
@@ -231,9 +231,9 @@ public State getState() {
231231
}
232232

233233
/**
234-
* Gets the PDF document.
234+
* Gets the PDF document. If the PDF document is not set, null is returned.
235235
*
236-
* @return the PDF document
236+
* @return the PDF document or null
237237
*/
238238
public PdfDocument getPdfDocument() {
239239
return pdfDocument;

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public class ButtonTagWorker extends DivTagWorker {
6060

6161
private boolean hasChildren = false;
6262

63-
private final PdfAConformanceLevel pdfAConformanceLevel;
63+
private PdfAConformanceLevel pdfAConformanceLevel;
6464

6565
/**
6666
* Creates a new {@link ButtonTagWorker} instance.
@@ -76,7 +76,9 @@ public ButtonTagWorker(IElementNode element, ProcessorContext context) {
7676
}
7777
this.name = context.getFormFieldNameResolver().resolveFormName(name);
7878
flatten = !context.isCreateAcroForm();
79-
pdfAConformanceLevel = context.getPdfDocument().getConformanceLevel();
79+
if (context.getPdfDocument() != null) {
80+
pdfAConformanceLevel = context.getPdfDocument().getConformanceLevel();
81+
}
8082
lang = element.getAttribute(AttributeConstants.LANG);
8183
}
8284

src/test/java/com/itextpdf/html2pdf/Html2ElementsTest.java

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,16 @@ This file is part of the iText (R) project.
5555
import com.itextpdf.test.annotations.LogMessage;
5656
import com.itextpdf.test.annotations.LogMessages;
5757
import com.itextpdf.test.annotations.type.IntegrationTest;
58-
import org.junit.Assert;
59-
import org.junit.BeforeClass;
60-
import org.junit.Test;
61-
import org.junit.experimental.categories.Category;
6258

6359
import java.io.File;
6460
import java.io.FileInputStream;
6561
import java.io.IOException;
6662
import java.util.ArrayList;
6763
import java.util.List;
64+
import org.junit.Assert;
65+
import org.junit.BeforeClass;
66+
import org.junit.Test;
67+
import org.junit.experimental.categories.Category;
6868

6969
@Category(IntegrationTest.class)
7070
public class Html2ElementsTest extends ExtendedITextTest {
@@ -381,6 +381,23 @@ public void htmlToElementsSvgObjectTest() throws IOException, InterruptedExcepti
381381
Assert.assertNull(new CompareTool().compareByContent(outPdf, cmpPdf, destinationFolder));
382382
}
383383

384+
@Test
385+
public void htmlToElementsFormTest() throws IOException, InterruptedException {
386+
FileInputStream htmlFile = new FileInputStream(sourceFolder + "formelements.html");
387+
String cmpPdf = sourceFolder + "cmp_htmlToElementsForms.pdf";
388+
String outPdf = destinationFolder + "htmlToElementsForms.pdf";
389+
390+
List<IElement> elements = HtmlConverter.convertToElements(htmlFile,
391+
new ConverterProperties().setBaseUri(sourceFolder));
392+
try (Document document = new Document(new PdfDocument(new PdfWriter(outPdf)))) {
393+
for (IElement element : elements) {
394+
document.add((IBlockElement) element);
395+
}
396+
}
397+
Assert.assertNull(new CompareTool().compareByContent(outPdf, cmpPdf, destinationFolder));
398+
}
399+
400+
384401
private static void addElementsToDocument(Document document, List<IElement> elements) {
385402
for (IElement elem : elements) {
386403
if (elem instanceof IBlockElement) {
Binary file not shown.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Title</title>
6+
</head>
7+
<body>
8+
<form>
9+
10+
<input type="text" value="1">
11+
<select>
12+
<option value="1">1</option>
13+
<option value="2">2</option>
14+
</select>
15+
<input name="checkbox" type="checkbox" checked>
16+
<input name="radio" type="radio" checked>
17+
<input name="radio" type="radio">
18+
<input type="submit" value="Submit">
19+
<input type="button" value="Button">
20+
<button>Button</button>
21+
</form>
22+
23+
</body>
24+
</html>

0 commit comments

Comments
 (0)