2

Regarding the answer of the question: How to add an SVG to a PDF using iText7

Here is a link click here !

When I used the Sample java code, it came an error.

ERROR: com.itextpdf.styledxmlparser.node.impl.jsoup.JsoupXmlParser - Could not map node type: class com.itextpdf.styledxmlparser.jsoup.nodes.XmlDeclaration

What might be the reason that causes the error? How can avoid it?

Dependencies:

dependencies {
  compile 'com.itextpdf:kernel:7.1.2'
  compile 'com.itextpdf:io:7.1.2'
  compile 'com.itextpdf:layout:7.1.2'
  compile 'com.itextpdf:forms:7.1.2'
  compile 'com.itextpdf:pdfa:7.1.2'
  compile 'com.itextpdf:pdftest:7.1.2'
  compile 'com.itextpdf:svg:7.1.2'
  //-- pdfHTML --
  compile 'com.itextpdf:html2pdf:1.0.0'
  //-- Kerning --
  compile 'com.itextpdf:typography:1.0.0'
  //-- iText 7 License Key Library --
  compile 'com.itextpdf:itext-licensekey:2.0.3'
}

Sample java code:

PdfDocument doc = new PdfDocument(
new PdfWriter(new FileOutputStream(new File(".../test.pdf")),new WriterProperties().setCompressionLevel(0)));
doc.addNewPage();

URL svgUrl = null;
svgPath = ".../test.svg";

try{
    svgUrl = new URL(svgPath);
}
catch(MalformedURLException mue){...}

if(svgUrl == null){
    try{
        svgUrl = new File(svgPath).toURI().toURL();
    }
    catch(Throwable th){...}
}

SvgConverter.drawOnDocument(svgUrl.openStream(), doc, 1);
doc.close();

SVG Code:

<svg x="0px" y="0px" width="1112.53" height="793.73" preserveAspectRatio="xMidYMid" font-size="0" id="vda25_1" xml="http://www.w3.org/XML/1998/namespace" enable-background="new 0 0 300 841.9" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xml="http://www.w3.org/XML/1998/namespace" version="1.1" >
  <g>
<rect x="0" y="0" width="1112.53" height="793.73" fill="#FDFDFD" />
<line x1="52.54" y1="318.99" x2="1095.68" y2="318.99" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.54" y1="336" x2="1095.68" y2="336" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.54" y1="356.79" x2="1095.68" y2="356.79" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.54" y1="445.61" x2="1095.68" y2="445.61" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.54" y1="467.53" x2="1095.68" y2="467.53" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.54" y1="504.19" x2="1095.68" y2="504.19" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="1095.68" y1="36.66" x2="1095.68" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="740.41" y1="336.38" x2="740.41" y2="445.61" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="396.47" y1="336.38" x2="396.47" y2="445.61" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="37.8" y1="157" x2="37.8" y2="650" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" noprint="true" />
<line x1="915.02" y1="53.67" x2="952.82" y2="53.67" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.54" y1="377.57" x2="1095.68" y2="377.57" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.54" y1="196.16" x2="1095.68" y2="196.16" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.54" y1="177.26" x2="1095.68" y2="177.26" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.54" y1="158.36" x2="1095.68" y2="158.36" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.54" y1="400.25" x2="1095.68" y2="400.25" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.54" y1="422.93" x2="1095.68" y2="422.93" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.54" y1="726.42" x2="1095.68" y2="726.42" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.16" y1="36.66" x2="1095.68" y2="36.66" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.54" y1="528" x2="1095.68" y2="528" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="467.9" y1="505.32" x2="467.9" y2="528" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="272.13" y1="546.9" x2="1095.68" y2="546.9" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="272.13" y1="528" x2="272.13" y2="662.17" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="345.07" y1="565.79" x2="1095.68" y2="565.79" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="345.07" y1="565.79" x2="345.07" y2="662.17" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="418.01" y1="565.79" x2="418.01" y2="662.17" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="489.45" y1="565.79" x2="489.45" y2="685.98" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="888.19" y1="565.79" x2="888.19" y2="662.17" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="907.08" y1="565.79" x2="907.08" y2="662.17" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="925.98" y1="565.79" x2="925.98" y2="662.17" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="944.88" y1="565.79" x2="944.88" y2="662.17" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="963.78" y1="565.79" x2="963.78" y2="662.17" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="982.68" y1="565.79" x2="982.68" y2="662.17" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="1001.57" y1="565.79" x2="1001.57" y2="662.17" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="1020.47" y1="565.79" x2="1020.47" y2="662.17" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="1039.37" y1="565.79" x2="1039.37" y2="662.17" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="1058.27" y1="565.79" x2="1058.27" y2="662.17" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="1077.16" y1="565.79" x2="1077.16" y2="662.17" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.54" y1="750.23" x2="1095.68" y2="750.23" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.54" y1="769.13" x2="1095.68" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="1039.37" y1="751.37" x2="1039.37" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="52.16" y1="36.66" x2="52.16" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="982.68" y1="751.37" x2="982.68" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="925.98" y1="751.37" x2="925.98" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="869.29" y1="751.37" x2="869.29" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="812.6" y1="751.37" x2="812.6" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="755.9" y1="751.37" x2="755.9" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="699.21" y1="751.37" x2="699.21" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="642.52" y1="751.37" x2="642.52" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="585.83" y1="751.37" x2="585.83" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="529.13" y1="751.37" x2="529.13" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="472.44" y1="751.37" x2="472.44" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="415.75" y1="751.37" x2="415.75" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="359.05" y1="751.37" x2="359.05" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="302.36" y1="751.37" x2="302.36" y2="769.13" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="574.11" y1="726.42" x2="574.11" y2="750.23" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="253.23" y1="663.31" x2="253.23" y2="685.98" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="377.95" y1="663.31" x2="377.95" y2="685.98" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="714.33" y1="505.32" x2="714.33" y2="528" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />
<line x1="778.58" y1="726.42" x2="778.58" y2="750.23" stroke="black" stroke-width="0.4802" stroke-linecap="square" stroke-miterlimit="10" />

<text x="1063" y="657.5" id="beschicht_nok" width="10.16003" type="radiobutton" style="font-family:Arial Unicode MS;font-size:12px;" fill="blue" />
<text x="1082" y="657.5" id="sonst_nok" width="10" type="radiobutton" style="font-family:Arial Unicode MS;font-size:12px;" fill="blue" />
<text x="199.2748" y="679" id="a_abweichnr" width="49.95519" type="text" style="font-family:Arial Unicode MS;font-size:12px;" fill="blue" />
<text x="313.421" y="679" id="g_bis" width="60.52899" type="text" style="font-family:Arial Unicode MS;font-size:12px;" fill="blue" />
<text x="440.1742" y="679" id="anz_teile" width="45.27579" type="text" style="font-family:Arial Unicode MS;font-size:12px;" fill="blue" />
<text x="636.9943" y="679" id="n_dat" width="77.11573" type="text" style="font-family:Arial Unicode MS;font-size:12px;" fill="blue" />
<text x="954.0756" y="679" id="a_ls_nr" width="86.92444" type="text" style="font-family:Arial Unicode MS;font-size:12px;" fill="blue" />
<text x="1046" y="679" id="a_ls_dat" width="45.68005" type="text" style="font-family:Arial Unicode MS;font-size:12px;" fill="blue" />
<text x="94.2564" y="701" id="a_zch" width="138.3436" type="text" style="font-family:Arial Unicode MS;font-size:12px;" fill="blue" />
<text text-anchor="inherit" x="113" y="719.5" id="a_abt_name" width="118.73" type="text" style="font-family:Arial Unicode MS;font-size:12px;" fill="blue" />
<text x="283.6996" y="701.5" id="a_abt_tel" width="807.9805" type="text" style="font-family:Arial Unicode MS;font-size:12px;" fill="blue" />
<text x="303.896" y="719.5" id="a_abt_fax" width="182.104" type="text" style="font-family:Arial Unicode MS;font-size:12px;" fill="blue" />
<text x="491" y="719.5" id="a_abt_mail" width="600.6801" type="text" style="font-family:Arial Unicode MS;font-size:12px;" fill="blue" />
<text x="124.3619" y="742" id="bemerkung_a" width="445.7481" type="text" style="font-family:Arial Unicode MS;font-size:12px;" fill="blue" />
<text x="619.9204" y="742" id="a_dat_unter" width="154.6596" type="text" style="font-family:Arial Unicode MS;font-size:12px;" fill="blue" />
<text x="850.0846" y="742" id="a_name_unter" width="241.5955" type="text" style="font-family:Arial Unicode MS;font-size:12px;" fill="blue" />
  </g>
</svg>
Ap Tsi
  • 99
  • 1
  • 9

1 Answers1

5

This is a bug that appears to have been fixed in the latest development build. While we released today, the release version is based on a version that's been delivered two weeks ago. I tried your svg on the latest snapshot build (7.1.3-SNAPSHOT) and it outputs correctly.

You can find the latest version on GitHub: https://github.com/itext/i7j-svg But you'll have to build from sources. If you don't feel like doing that, you can add our artifactory to your repositories element in your pom file and pull the latest snapshot.

<repository>
    <id>snapshots</id>
    <name>iText Repository-snapshots</name>
    <url>https://repo.itextsupport.com/snapshot</url>
</repository>

With the following artifact:

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>svg</artifactId>
    <version>7.1.3-SNAPSHOT</version>
</dependency>
Michaël Demey
  • 1,567
  • 10
  • 18
  • 1
    Thanks a lot. I am looking forward to try it. – Ap Tsi Apr 27 '18 at 13:32
  • 1
    `com.itextpdf:svg:7.1.3-SNAPSHOT` is now available on the iText Artifactory, in the `snapshot` repository. – Amedee Van Gasse Apr 27 '18 at 14:26
  • @AmedeeVanGasse Take a look of the dependencies in my post. Which dependencies must be changed in order to work properly with svg:7.1.3-SNAPSHOT? – Ap Tsi May 02 '18 at 10:59
  • @ApostolosTsigkaridas I have never mixed different versions (like release and snapshot) so I cannot give you a definitive answer. Probably at least `svg`, and wouldn't Maven or Gradle be able to figure out the rest automatically? – Amedee Van Gasse May 02 '18 at 12:42