SVG Batik 根元素命名空间与请求的不匹配

2024-01-22

几周前,它在我的 SVG 上运行得很好,但不知何故它停止了工作,我不知道原因,因为在服务器上触发的错误没有帮助。当我将 svg 文件传输到 pdf 时会发生这种情况:

Root element namespace does not match that requested:
Requested: http://www.w3.org/2000/svg
Found: null. Stacktrace follows:
org.apache.batik.bridge.BridgeException: Root element namespace does not match that requested:
Requested: http://www.w3.org/2000/svg
Found: null
    at org.apache.batik.bridge.BridgeContext.getReferencedNode(BridgeContext.java:780)
    at org.apache.batik.bridge.BridgeContext.getReferencedElement(BridgeContext.java:796)
    at org.apache.batik.bridge.CSSUtilities.convertClipPath(CSSUtilities.java:719)
    at org.apache.batik.bridge.AbstractGraphicsNodeBridge.buildGraphicsNode(AbstractGraphicsNodeBridge.java:146)
    at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:224)
    at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171)
    at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219)
    at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171)
    at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:82)
    at net.sf.jasperreports.renderers.BatikRenderer.ensureSvg(BatikRenderer.java:192)
    at net.sf.jasperreports.renderers.BatikRenderer.getDimension(BatikRenderer.java:141)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportImage(JRPdfExporter.java:1351)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:774)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:738)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:616)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:364)
    at com.scacp.operation.MonitoringWellController$_closure13.doCall(MonitoringWellController.groovy:749)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

我不明白这是什么意思,我的 xml svg(在 xml 验证器网站上)是有效的代码。我是这样写的:

file.write('<?xml version="1.0" encoding="UTF-8"?> \n'
+ '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> \n'
+ '<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="705px" height="1000px" viewBox="0 0 705 1000" enable-background="new 0 0 705 1000" xml:space="preserve"> \n'
+ svgimage + '\n'
+ '</svg>');

变量 svgimage 是一堆g, defs, text, images等(非常大,比如 1k 行)


我建议这样做,但没有完全理解问题 - 转换为 pdf 是否在某个时刻起作用,然后突然失败。

在文档类型声明中: w3.org 提到在系统标识符中使用“扁平”DTD,这是单个扁平 DTD,而不是多个文件。

w3.org - SVG NampeSpace、公共标识符和系统标识符: https://www.w3.org/TR/SVG/intro.html#NamespaceAndDTDIdentifiers

“请注意,系统标识符中列出的 DTD 是模块化 DTD(即,其内容分布在多个文件中),这意味着验证器可能必须获取多个模块才能进行验证。因此,有一个扁平化 DTD可用的 DTD 对应于 SVG 1.1 模块化 DTD。可以在以下位置找到:http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-flat.dtd http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-flat.dtd."

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SVG Batik 根元素命名空间与请求的不匹配 的相关文章

随机推荐

  • .net 对象平等

    假设我们有两个对象 o1 和 o2 定义为 System Object 在我的情况下 o1 和 o2 可以是以下任何类型 String Int32 Double Boolean DateTime DBNull 那么我如何检查 o1 和 o2
  • 无效的 Podfile 文件意外模板 EOS

    我已经与这个错误作斗争好几天了 试图开始一份新工作 尝试在 React Native cli 项目上运行 pod install 时遇到问题 我已经尝试了这里所有可能的解决方案 但不适用于我的 错误 Invalid Podfile file
  • 用于匹配“A-Z、a-z、0-9、_”和“.”的正则表达式

    我需要一个正则表达式 它只允许输入 A Z a z 0 9 字符和点 I tried A Za z0 9 但是 这没有用 我该如何修复它 A Za z0 9 从字符串的开头到结尾 匹配这些字符中的一个或多个 Edit 注意 and 匹配 a
  • 任意多边形中最大的内接矩形

    我使用 OpenCV Stitching 已经有一段时间了 现在我想做拼接的最后一步 裁剪图像 这就导致找到一般多边形中最大的内接轴平行矩形 我已经用谷歌搜索并找到了一些答案 如何在 OpenCV 中裁剪到最大的内部边界框 https st
  • Flex 中继器和事件监听器

    乍一看 Repeater 控件看起来非常强大 但现在我有了新的想法 手头的问题 为子级添加事件监听器 Repeater 对象绑定到 ArrayCollection 并对其进行迭代 为每个项目创建新的 Vbox 子项 现在 对于每个孩子 Re
  • 当目录存在时,htaccess 重定向无法重定向

    为了制作友好的 URL 以下是应用的 htaccess 代码 RewriteEngine On RewriteCond THE REQUEST php s NC RewriteRule F RewriteRule index php id1
  • 将包含 NaN 的 Pandas 列转换为 dtype `int`

    我将数据从 csv 文件读取到 Pandas 数据框 如下所示 对于其中一列 即id 我想将列类型指定为int 问题是id系列有缺失 空值 当我尝试投射时id在读取 csv 时将列转换为整数 我得到 df pd read csv data
  • 如何检测字符串文字传递给 C 中的函数?

    我正在尝试实现 Perl 的等效版本chomp C 中的函数 我遇到了一个极端情况 其中作为参数传递的字符串文字将导致分段错误 理所当然 Example chomp some literal string n C99 中是否有一种定义的方法
  • 将两个 RGB 图像合并为一个 6 通道图像 - openCV

    我正在使用 openCV 需要将两个三通道 RGB 图像组合成一个 6 通道图像 我不确定如何将它们结合起来 有任何想法吗 首先 您必须创建一个目标矩阵 cv Mat允许创建最多的图像CV CN MAX https docs opencv
  • 是否可以测试给定表达式是否可以*无需*连接到 SQL 数据库而转换为 SQL?

    例如 This one will be converted to SQL no problem Expression
  • 如何用回收器视图模拟视图寻呼机?

    ViewPager 相对于 RecyclerView 的优势之一是它有一个 setPageTransformer 侦听器 在这里 您可以操纵页面并将其转换为在滑动之间或滑动时制作简洁的动画 我想模仿能够在使用 RecyclerView 时转
  • Game Center 排行榜分数 - “20 分”而不是“20 分”

    我目前正在为我的应用程序测试游戏中心排行榜 验证和提交分数时一切正常 但当我查看游戏中心的排行榜时 它显示 200 分 而不是 200 分 为什么分数和分数类型之间没有空格 我该如何解决它 Thanks 因此 因为我知道更多的人遇到同样的问
  • 以编程方式移动鼠标光标

    首先 我在以下位置找到了这段代码http swigartconsulting blogs com tech blender 2005 08 how to move the html http swigartconsulting blogs
  • 开发人员应该有权访问什么?

    我工作的地方是构建处理和存储敏感数据的应用程序 我们有3个环境 开发 UAT QA 用户接受测试 和生产 我工作中的开发人员无法访问 UAT 或 Production 并且对 Dev 的访问也有限 我们在开发中所能做的就是连接到开发数据库服
  • 无法使用已与其底层 RCW 分离的 COM 对象

    我正在尝试使用 OpcRcw da dll 如果我在测试控制台项目中互操作这个 dll 一切正常 但是如果我构建 dll 项目来进行互操作体操并将我的库引用到我的控制台项目中 我会收到此错误 无法使用已与其底层 RCW 分离的 COM 对象
  • 如何将 docx 或 wordml xml 文件转换为 xsl-fo?

    我一直在寻找一种将 docx 或 wordml xml 转换为 xsl fo 的方法 我读了这篇文章 Perl 最好的 XSLT 引擎是什么 https stackoverflow com questions 156683 what is
  • 只有 1 个虚拟继承的钻石问题

    这还能解决钻石问题吗 class A class B virtual A class C A class D B C Edit 如果不是 那是什么 和这个一样吗 class A class B A class C A class D B C
  • 如何设置代码以便在文本框中单击鼠标输入信息? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 在 Visual Basic 2010 中 我有两个文本框和一个数字键盘 每次我单击一个数字时 该数字都会显示在两个文本框中 我该如何做到这
  • Visual Studio 2010 的源代码大纲窗口

    对于 Visual Studio 2008 有一个小而伟大的插件 源大纲 on Codeplex http sourcecodeoutliner codeplex com http sourcecodeoutliner codeplex c
  • SVG Batik 根元素命名空间与请求的不匹配

    几周前 它在我的 SVG 上运行得很好 但不知何故它停止了工作 我不知道原因 因为在服务器上触发的错误没有帮助 当我将 svg 文件传输到 pdf 时会发生这种情况 Root element namespace does not match