Apache FOP svg 背景非常慢
ApacheFOP svg background very slow
我正在使用 ApacheFOP 呈现一些 PDF。在这些 PDF 中,我使用 SVG 作为边缘绘制了一个圆角框:
<fo:table-cell
number-columns-spanned="2"
background-image="/images/top-left.svg"
background-repeat="no-repeat">
<fo:block/>
</fo:table-cell>
top-left.svg 文件非常简单:
<svg width="10px" height="10px" xmlns="http://www.w3.org/2000/svg">
<circle cx="10px" cy="10px" r="9.5px" stroke="black" stroke-width="1px" fill="none" />
</svg>
对右上角、左下角和右下角重复相同的操作。
问题是,从 ApacheFOP 0.95 更新到 ApacheFOP 2.1 后,生产服务器中的渲染每个 SVG 需要大约 15 秒。我无法在我的计算机上重现该问题。
我的开发人员桌面和生产服务器都是 运行 Linux。
是否有任何系统因素会大大降低 SVG 渲染速度?
谢谢
延迟是由下载每个 SVG 的 DTD 架构引起的。很难发现它,因为下载是由 Barcode4J 而不是 ApacheFOP 本身执行的。更具体地说,是 BarcodePreloader class 试图解析 SVG,因为它是在 PreloaderSVG 之前调用的。我们暂时解决了从 SVG 文件中删除 DTD 声明的问题。
我正在使用 ApacheFOP 呈现一些 PDF。在这些 PDF 中,我使用 SVG 作为边缘绘制了一个圆角框:
<fo:table-cell
number-columns-spanned="2"
background-image="/images/top-left.svg"
background-repeat="no-repeat">
<fo:block/>
</fo:table-cell>
top-left.svg 文件非常简单:
<svg width="10px" height="10px" xmlns="http://www.w3.org/2000/svg">
<circle cx="10px" cy="10px" r="9.5px" stroke="black" stroke-width="1px" fill="none" />
</svg>
对右上角、左下角和右下角重复相同的操作。
问题是,从 ApacheFOP 0.95 更新到 ApacheFOP 2.1 后,生产服务器中的渲染每个 SVG 需要大约 15 秒。我无法在我的计算机上重现该问题。
我的开发人员桌面和生产服务器都是 运行 Linux。
是否有任何系统因素会大大降低 SVG 渲染速度?
谢谢
延迟是由下载每个 SVG 的 DTD 架构引起的。很难发现它,因为下载是由 Barcode4J 而不是 ApacheFOP 本身执行的。更具体地说,是 BarcodePreloader class 试图解析 SVG,因为它是在 PreloaderSVG 之前调用的。我们暂时解决了从 SVG 文件中删除 DTD 声明的问题。