gpt4 book ai didi

maven - 如何处理抛出异常的 fop 字体缓存文件夹

转载 作者:行者123 更新时间:2023-12-04 17:54:05 26 4
gpt4 key购买 nike

对于 AEM 中的 PDF 生成,我使用 apache fop API + XSL:fo + OOTB AEM 转换器的组合

问题是我遇到了这个错误

java.lang.UnsupportedOperationException:
Deserialization not allowed for class org.apache.fop.fonts.FontCache

它是因为生成的 PDF 打不开而给出 500。

我通过删除与 .m2 并行创建的“.fop 文件夹(包含 fop-fonts.cache 文档)在本地解决了这个问题。一旦我删除了这个文件夹并进行了 Maven 构建,我就能够正确查看 PDF并且异常没有再次出现。

但是这个问题也出现在 QA 和其他服务器上,并且间歇性地出现在我的本地。那么任何人都可以建议什么可能是它的永久解决方案或任何有助于解决上述错误的输入吗?

最佳答案

据我所知,当引用的字体无法加载时,需要删除 .fop 目录。发生这种情况时,FOP 被迫重新解析所有字体,并且由于它在不同环境中有点间歇性(根据您的问题),我假设缺少一些引用的字体。

您可以尝试以下方法之一:

  • 安装字体作为环境构建的一部分(最不喜欢的选项)。
  • 修复字体引用,以防您使用通配符(如 .*)绑定(bind)到现有的常用字体。 (可能会破坏样式,但大多数情况下是兼容的)
  • 嵌入字体。 (增加文档大小)
  • 替换字体。 (同样,这可能会降低样式)

我建议根据您的 PDF 分发范围从上面选择一个合适的选项。

希望这对您有所帮助。

关于maven - 如何处理抛出异常的 fop 字体缓存文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41888013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com