Skip to content

Commit 9f88607

Browse files
committed
Use ConverterProperties when converting SVG to PDF. RND-1108
1 parent 38a6a47 commit 9f88607

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,23 +46,25 @@ This file is part of the iText (R) project.
4646
import com.itextpdf.html2pdf.attach.ITagWorker;
4747
import com.itextpdf.html2pdf.attach.ProcessorContext;
4848
import com.itextpdf.html2pdf.css.CssConstants;
49+
import com.itextpdf.html2pdf.html.AttributeConstants;
4950
import com.itextpdf.html2pdf.util.SvgProcessingUtil;
5051
import com.itextpdf.io.util.MessageFormatUtil;
5152
import com.itextpdf.kernel.pdf.xobject.PdfImageXObject;
5253
import com.itextpdf.layout.IPropertyContainer;
5354
import com.itextpdf.layout.element.Image;
54-
import com.itextpdf.html2pdf.html.AttributeConstants;
5555
import com.itextpdf.styledxmlparser.node.IElementNode;
5656
import com.itextpdf.styledxmlparser.resolver.resource.ResourceResolver;
5757
import com.itextpdf.svg.converter.SvgConverter;
5858
import com.itextpdf.svg.exceptions.SvgProcessingException;
5959
import com.itextpdf.svg.processors.ISvgProcessorResult;
60-
import org.slf4j.Logger;
61-
import org.slf4j.LoggerFactory;
60+
import com.itextpdf.svg.processors.impl.SvgConverterProperties;
6261

6362
import java.io.IOException;
6463
import java.io.InputStream;
6564

65+
import org.slf4j.Logger;
66+
import org.slf4j.LoggerFactory;
67+
6668
/**
6769
* TagWorker class for the {@code img} element.
6870
*/
@@ -129,7 +131,11 @@ public ImgTagWorker(IElementNode element, ProcessorContext context) {
129131

130132
private void processAsSvg(InputStream stream, ProcessorContext context) throws IOException {
131133
SvgProcessingUtil processingUtil = new SvgProcessingUtil();
132-
ISvgProcessorResult res = SvgConverter.parseAndProcess(stream);
134+
SvgConverterProperties svgConverterProperties = new SvgConverterProperties();
135+
svgConverterProperties.setBaseUri(context.getBaseUri())
136+
.setFontProvider(context.getFontProvider())
137+
.setMediaDeviceDescription(context.getDeviceDescription());
138+
ISvgProcessorResult res = SvgConverter.parseAndProcess(stream, svgConverterProperties);
133139
if (context.getPdfDocument() != null) {
134140
image = processingUtil.createImageFromProcessingResult(res, context.getPdfDocument());
135141
}

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,22 +45,24 @@ This file is part of the iText (R) project.
4545
import com.itextpdf.html2pdf.LogMessageConstant;
4646
import com.itextpdf.html2pdf.attach.ITagWorker;
4747
import com.itextpdf.html2pdf.attach.ProcessorContext;
48+
import com.itextpdf.html2pdf.html.AttributeConstants;
4849
import com.itextpdf.html2pdf.util.SvgProcessingUtil;
4950
import com.itextpdf.io.util.MessageFormatUtil;
5051
import com.itextpdf.kernel.pdf.PdfDocument;
5152
import com.itextpdf.layout.IPropertyContainer;
5253
import com.itextpdf.layout.element.Image;
53-
import com.itextpdf.html2pdf.html.AttributeConstants;
5454
import com.itextpdf.styledxmlparser.node.IElementNode;
5555
import com.itextpdf.svg.converter.SvgConverter;
5656
import com.itextpdf.svg.exceptions.SvgProcessingException;
5757
import com.itextpdf.svg.processors.ISvgProcessorResult;
58-
import org.slf4j.Logger;
59-
import org.slf4j.LoggerFactory;
58+
import com.itextpdf.svg.processors.impl.SvgConverterProperties;
6059

6160
import java.io.IOException;
6261
import java.io.InputStream;
6362

63+
import org.slf4j.Logger;
64+
import org.slf4j.LoggerFactory;
65+
6466
/**
6567
* TagWorker class for the {@code object} element.
6668
*/
@@ -97,7 +99,11 @@ public ObjectTagWorker(IElementNode element, ProcessorContext context) {
9799
InputStream svgStream = context.getResourceResolver().retrieveResourceAsInputStream(element.getAttribute(AttributeConstants.DATA));
98100
if(svgStream != null) {
99101
try {
100-
res = SvgConverter.parseAndProcess(svgStream);
102+
SvgConverterProperties svgConverterProperties = new SvgConverterProperties();
103+
svgConverterProperties.setBaseUri(context.getBaseUri())
104+
.setFontProvider(context.getFontProvider())
105+
.setMediaDeviceDescription(context.getDeviceDescription());
106+
res = SvgConverter.parseAndProcess(svgStream, svgConverterProperties);
101107
} catch (SvgProcessingException spe) {
102108
LOGGER.error(spe.getMessage());
103109
} catch(IOException ie){

0 commit comments

Comments
 (0)