Skip to content

Commit 2564cb2

Browse files
committed
Move all logic from PdfA/UaDocuments to pluggalbe mechanisms into PdfDocument
DEVSIX-8623
1 parent 05f7aad commit 2564cb2

File tree

4 files changed

+9
-76
lines changed

4 files changed

+9
-76
lines changed

src/main/java/com/itextpdf/html2pdf/HtmlConverter.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,8 @@ This file is part of the iText (R) project.
2828
import com.itextpdf.html2pdf.exceptions.Html2PdfException;
2929
import com.itextpdf.html2pdf.resolver.font.DefaultFontProvider;
3030
import com.itextpdf.kernel.pdf.DocumentProperties;
31-
import com.itextpdf.kernel.pdf.PdfAConformance;
3231
import com.itextpdf.kernel.pdf.PdfDocument;
33-
import com.itextpdf.kernel.pdf.PdfVersion;
3432
import com.itextpdf.kernel.pdf.PdfWriter;
35-
import com.itextpdf.kernel.pdf.WriterProperties;
3633
import com.itextpdf.layout.Document;
3734
import com.itextpdf.layout.element.IElement;
3835
import com.itextpdf.layout.properties.Property;
@@ -48,8 +45,6 @@ This file is part of the iText (R) project.
4845
import java.io.IOException;
4946
import java.io.InputStream;
5047
import java.io.OutputStream;
51-
import java.util.ArrayList;
52-
import java.util.Arrays;
5348
import java.util.List;
5449

5550
/**
@@ -61,10 +56,6 @@ This file is part of the iText (R) project.
6156
* {@link PdfDocument} instance.
6257
*/
6358
public class HtmlConverter {
64-
65-
private static final List<PdfAConformance> pdf2Conformances = new ArrayList<>(
66-
Arrays.asList(PdfAConformance.PDF_A_4, PdfAConformance.PDF_A_4E, PdfAConformance.PDF_A_4F));
67-
6859
/**
6960
* Instantiates a new HtmlConverter instance.
7061
*/
@@ -91,10 +82,6 @@ public static void convertToPdf(String html, OutputStream pdfStream) {
9182
* @param converterProperties a {@link ConverterProperties} instance
9283
*/
9384
public static void convertToPdf(String html, OutputStream pdfStream, ConverterProperties converterProperties) {
94-
if (converterProperties != null && pdf2Conformances.contains(converterProperties.getPdfAConformance())) {
95-
convertToPdf(html, new PdfWriter(pdfStream, new WriterProperties().setPdfVersion(PdfVersion.PDF_2_0)), converterProperties);
96-
return;
97-
}
9885
convertToPdf(html, new PdfWriter(pdfStream), converterProperties);
9986
}
10087

@@ -203,10 +190,6 @@ public static void convertToPdf(InputStream htmlStream, OutputStream pdfStream)
203190
* @throws IOException Signals that an I/O exception has occurred.
204191
*/
205192
public static void convertToPdf(InputStream htmlStream, OutputStream pdfStream, ConverterProperties converterProperties) throws IOException {
206-
if (converterProperties != null && pdf2Conformances.contains(converterProperties.getPdfAConformance())) {
207-
convertToPdf(htmlStream, new PdfWriter(pdfStream, new WriterProperties().setPdfVersion(PdfVersion.PDF_2_0)), converterProperties);
208-
return;
209-
}
210193
convertToPdf(htmlStream, new PdfWriter(pdfStream), converterProperties);
211194
}
212195

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

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ This file is part of the iText (R) project.
3434
import com.itextpdf.pdfa.checker.PdfA4Checker;
3535
import com.itextpdf.pdfa.exceptions.PdfAConformanceException;
3636
import com.itextpdf.pdfa.exceptions.PdfaExceptionMessageConstant;
37+
import com.itextpdf.pdfa.logs.PdfALogMessageConstant;
3738
import com.itextpdf.styledxmlparser.logs.StyledXmlParserLogMessageConstant;
3839
import com.itextpdf.test.ExtendedITextTest;
3940
import com.itextpdf.test.LogLevelConstants;
@@ -105,9 +106,13 @@ public void convertToPdfA4ColorsTest() throws IOException, InterruptedException
105106
}
106107

107108
@Test
108-
public void convertToPdfA4MetaDataInvalidTest() throws IOException {
109+
@LogMessages(messages = {
110+
@LogMessage(messageTemplate = PdfALogMessageConstant.WRITER_PROPERTIES_PDF_VERSION_WAS_OVERRIDDEN, logLevel = LogLevelConstants.WARN)
111+
})
112+
public void convertToPdfA4MetaDataInvalidTest() throws IOException, InterruptedException {
109113
String sourceHtml = SOURCE_FOLDER + "simple.html";
110114
String destinationPdf = DESTINATION_FOLDER + "pdfA4InvalidMetadataTest.pdf";
115+
String cmpPdf = SOURCE_FOLDER + "cmp_pdfA4InvalidMetadataTest.pdf";
111116
ConverterProperties converterProperties = new ConverterProperties();
112117
converterProperties.setPdfAConformance(PdfAConformance.PDF_A_4);
113118
converterProperties.setDocumentOutputIntent(
@@ -116,16 +121,11 @@ public void convertToPdfA4MetaDataInvalidTest() throws IOException {
116121
converterProperties.setBaseUri("no_link");
117122

118123
try (FileInputStream fOutput = new FileInputStream(sourceHtml);
119-
PdfWriter pdfWriter = new PdfWriter(destinationPdf);
124+
PdfWriter pdfWriter = new PdfWriter(destinationPdf, new WriterProperties().setPdfVersion(PdfVersion.PDF_1_7));
120125
) {
121-
Exception e = Assertions.assertThrows(PdfAConformanceException.class, () -> {
122-
HtmlConverter.convertToPdf(fOutput, pdfWriter, converterProperties);
123-
});
124-
125-
Assertions.assertEquals(MessageFormatUtil.format(
126-
PdfaExceptionMessageConstant.THE_FILE_HEADER_SHALL_CONTAIN_RIGHT_PDF_VERSION, "2"),
127-
e.getMessage());
126+
HtmlConverter.convertToPdf(fOutput, pdfWriter, converterProperties);
128127
}
128+
compareAndCheckCompliance(destinationPdf, cmpPdf);
129129
}
130130

131131
@Test

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

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

25-
import com.itextpdf.commons.utils.MessageFormatUtil;
2625
import com.itextpdf.html2pdf.exceptions.Html2PdfException;
2726
import com.itextpdf.kernel.pdf.PdfAConformance;
2827
import com.itextpdf.kernel.pdf.PdfDocument;
@@ -31,9 +30,6 @@ This file is part of the iText (R) project.
3130
import com.itextpdf.kernel.pdf.PdfWriter;
3231
import com.itextpdf.kernel.utils.CompareTool;
3332
import com.itextpdf.layout.Document;
34-
import com.itextpdf.pdfa.PdfADocument;
35-
import com.itextpdf.pdfa.exceptions.PdfAConformanceException;
36-
import com.itextpdf.pdfa.exceptions.PdfaExceptionMessageConstant;
3733
import com.itextpdf.test.ExtendedITextTest;
3834
import com.itextpdf.test.pdfa.VeraPdfValidator;
3935

@@ -100,52 +96,6 @@ public void cannotConvertHtmlToDocumentInReadingModeTest() throws IOException {
10096

10197
}
10298

103-
@Test
104-
public void convertHtmlToDocumentIncorrectConverterPropertiesTest() throws IOException {
105-
String sourceHtml = SOURCE_FOLDER + "simple.html";
106-
String destinationPdf = DESTINATION_FOLDER + "simpleA4.pdf";
107-
108-
ConverterProperties converterProperties = new ConverterProperties();
109-
converterProperties.setPdfAConformance(PdfAConformance.PDF_A_3U);
110-
converterProperties.setDocumentOutputIntent(new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1",
111-
new FileInputStream(SOURCE_FOLDER + "sRGB Color Space Profile.icm")));
112-
113-
PdfADocument pdfDocument = new PdfADocument(new PdfWriter(destinationPdf), PdfAConformance.PDF_A_4E,
114-
new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1",
115-
new FileInputStream(SOURCE_FOLDER + "sRGB Color Space Profile.icm")));
116-
117-
Exception e = Assertions.assertThrows(PdfAConformanceException.class, () -> {
118-
HtmlConverter.convertToPdf(sourceHtml, pdfDocument, converterProperties);
119-
});
120-
121-
Assertions.assertEquals(MessageFormatUtil.format(
122-
PdfaExceptionMessageConstant.THE_FILE_HEADER_SHALL_CONTAIN_RIGHT_PDF_VERSION, "2"),
123-
e.getMessage());
124-
}
125-
126-
@Test
127-
public void convertHtmlToDocumentWithDifferentColorProfileTest() throws IOException {
128-
String sourceHtml = SOURCE_FOLDER + "simple.html";
129-
String destinationPdf = DESTINATION_FOLDER + "simpleA4.pdf";
130-
131-
ConverterProperties converterProperties = new ConverterProperties();
132-
converterProperties.setPdfAConformance(PdfAConformance.PDF_A_4E);
133-
converterProperties.setDocumentOutputIntent(new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1",
134-
new FileInputStream(SOURCE_FOLDER + "sRGB Color Space Profile.icm")));
135-
136-
PdfADocument pdfDocument = new PdfADocument(new PdfWriter(destinationPdf), PdfAConformance.PDF_A_4E,
137-
new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1",
138-
new FileInputStream(SOURCE_FOLDER + "USWebUncoated.icc")));
139-
140-
Exception e = Assertions.assertThrows(PdfAConformanceException.class, () -> {
141-
HtmlConverter.convertToPdf(sourceHtml, pdfDocument, converterProperties);
142-
});
143-
144-
Assertions.assertEquals(MessageFormatUtil.format(
145-
PdfaExceptionMessageConstant.THE_FILE_HEADER_SHALL_CONTAIN_RIGHT_PDF_VERSION, "2"),
146-
e.getMessage());
147-
}
148-
14999
private static PdfDocument createTempDoc() throws IOException {
150100
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
151101
PdfDocument pdfDocument = new PdfDocument(new PdfWriter(outputStream));

0 commit comments

Comments
 (0)