在本地计算机上,一切正常,当我尝试在服务器上运行它时,出现此错误,它可以正常运行,但不包含SVG徽标。
2019-07-12 09:09:01,956 [错误] [主] [LoggingEventListener]图片不可用。 URI :(流内对象)。原因:org.apache.xmlgraphics.image.loader.ImageException:不支持文件格式。找不到ImagePreloader为空(没有可用的上下文信息) org.apache.xmlgraphics.image.loader.ImageException:不支持文件格式。找不到ImagePreloader为null 在org.apache.xmlgraphics.image.loader.ImageManager.preloadImage(ImageManager.java:181) 在org.apache.fop.render.intermediate.AbstractIFPainter.drawImageUsingDocument(AbstractIFPainter.java:317) 在org.apache.fop.render.pdf.PDFPainter.drawImage(PDFPainter.java:286)
以下是它的包含方式
<fo:block margin-right="1.5cm" text-align="right">
<fo:instream-foreign-object>
#include("Logo.vm")
</fo:instream-foreign-object>
</fo:block>
这是SVG包含文件片段Logo.vm:
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
id="Ebene_1"
x="0px"
y="0px"
viewBox="0 0 175 40"
enable-background="new 0 0 115 40"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
width="146"
height="38"
sodipodi:docname="DL_115x40.svg"><metadata
id="metadata3067"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/d/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs3065" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="492"
inkscape:window-height="309"
id="namedview3063"
showgrid="false"
inkscape:zoom="2.7826087"
inkscape:cx="57.5"
inkscape:cy="20"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="0"
inkscape:current-layer="Ebene_1" />
<path class="st0" d="M122.9 34.2c0 .8-.6 1.3-1 .... *MORE AND MORE NUMBERS COMMING*
答案 0 :(得分:0)
对我来说,使用Amazon Corretto JDK时会发生此问题。 Java Corretto有一些会导致字体问题的错误,请参见Github上的问题:Broken Font support (Fontconfig) in AWS-Lambda (java11)和Generic Linux distro requires Fontconfig for font support (java8)
实际上为我们解决了这个问题的是在操作系统上安装软件包setTimeout
(我们正在运行Ubuntu虚拟服务器,因此没有问题):
fontconfig
那之后SVG渲染就可以了。