iText7将SVG添加到PdfDocument中并可能出现问题 [英] iText7 adding SVG into PdfDocument and possible issues

查看:205
本文介绍了iText7将SVG添加到PdfDocument中并可能出现问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

关于问题的答案:如何使用iText7将SVG添加到PDF

这里是链接点击这里

Here is a link click here !

当我使用示例Java代码时,出现错误.

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

错误: com.itextpdf.styledxmlparser.node.impl.jsoup.JsoupXmlParser-无法映射节点类型:com.itextpdf.styledxmlparser.jsoup.nodes.XmlDeclaration类

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 {
  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'
}

示例Java代码:

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代码:

<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>

推荐答案

这是一个似乎已在最新开发版本中修复的错误.当我们今天发布时,发布版本基于两周前交付的版本.我在最新的快照版本(7.1.3-SNAPSHOT)上尝试了svg,它可以正确输出.

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.

您可以在GitHub上找到最新版本: https://github.com/itext/i7j- svg 但是您必须从源代码构建.如果您不想这样做,可以将我们的工件添加到pom文件中的存储库元素中,并获取最新的快照.

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>

具有以下工件:

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>svg</artifactId>
    <version>7.1.3-SNAPSHOT</version>
</dependency>

这篇关于iText7将SVG添加到PdfDocument中并可能出现问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆