【问题标题】:Can Apache FOP 0.95 render Emoticons? [closed]Apache FOP 0.95 可以渲染表情吗? [关闭]
【发布时间】:2012-12-20 00:54:43
【问题描述】:

我们使用的是 Apache FOP 0.95 渲染系统,渲染引擎在遇到 UTF-8 表情符号时会崩溃。我正在使用 Java 将数据呈现为 PS/PDF 格式。

有没有办法正确渲染它们或过滤这些不可渲染的字符?

这是一个例外: 在 org.apache.xalan.templates.FuncDocument.warn(FuncDocument.java:419) 在 org.apache.xalan.templates.FuncDocument.getDoc(FuncDocument.java:356) 在 org.apache.xalan.templates.FuncDocument.execute(FuncDocument.java:192) 在 org.apache.xpath.Expression.bool(Expression.java:184) 在 org.apache.xpath.XPath.bool(XPath.java:410) 在 org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:124) 在 org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) 在 org.apache.xalan.transformer.TransformerImpl.transformToRTF(TransformerImpl.java:1999) 在 org.apache.xalan.transformer.TransformerImpl.transformToGlobalRTF(TransformerImpl.java:1944) 在 org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:308) 在 org.apache.xalan.templates.XUnresolvedVariable.execute(XUnresolvedVariable.java:124) 在 org.apache.xpath.VariableStack.getGlobalVariable(VariableStack.java:446) 在 org.apache.xpath.operations.Variable.execute(Variable.java:212) 在 org.apache.xpath.operations.Variable.execute(Variable.java:186) 在 org.apache.xalan.templates.FuncDocument.execute(FuncDocument.java:77) 在 org.apache.xpath.XPath.execute(XPath.java:335) 在 org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:278) 在 org.apache.xalan.templates.XUnresolvedVariable.execute(XUnresolvedVariable.java:124) 在 org.apache.xpath.VariableStack.getGlobalVariable(VariableStack.java:446) 在 org.apache.xpath.operations.Variable.execute(Variable.java:212) 在 org.apache.xpath.operations.Variable.execute(Variable.java:186) 在 org.apache.xpath.axes.WalkingIterator.setRoot(WalkingIterator.java:154) 在 org.apache.xpath.axes.NodeSequence.setRoot(NodeSequence.java:213) 在 org.apache.xpath.axes.LocPathIterator.execute(LocPathIterator.java:210) 在 org.apache.xpath.XPath.execute(XPath.java:335) 在 org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:278) 在 org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:246) 在 org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) 在 org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:392) 在 org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:246) 在 org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) 在 org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374) 在 org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) 在 org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:392) 在 org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:246) 在 org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) 在 org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374) 在 org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) 在 org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374) 在 org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) 在 org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:392) 在 org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:246) 在 org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) 在 org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374) 在 org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) 在 org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:392) 在 org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:246) 在 org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) 在 org.apache.xalan.templates.ElemIf.execute(ElemIf.java:160) 在 org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:393) 在 org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:176) 在 org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) 在 org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374) 在 org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:393) 在 org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:176) 在 org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) 在 org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2281) 在 org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1367) 在 org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:709) 在 org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1284) 在 org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1262)

【问题讨论】:

  • 您有问题吗?
  • 是的。我想摆脱这些系统特定的字符。我该怎么做?
  • 编辑您的帖子并包含问题。
  • 它还在我的 Windows 笔记本电脑和我的 Linux 机器上呈现为星星。
  • 如果您向我们提供您遇到的实际错误,我们或许可以帮助您解决问题,而不是建议广泛的、骇人听闻的解决方法。该角色绝对是可渲染的。抛出的错误是什么?

标签: java utf-8 apache-fop


【解决方案1】:

你没有说不需要的字符是什么......

String.replaceAll() 方法是消除字符串中不需要的字符的好方法。

但另一个问题是知道这些不可渲染的字符是什么。此外,这些字符是由 Unicode 标准定义的……它们不是系统特定的含义。


我认为您最好弄清楚为什么 FOP 会崩溃,并修复导致崩溃的原因。没有明显的理由说明 FOP 不能处理任何可打印字符。我的猜测是,这与您使用 FOP 的方式有关...

【讨论】:

  • 我有更多这些字符的示例:✨、?、 我没有详尽的无法渲染的列表。我生成一个 PS/PDF 文件作为 Apache 渲染器的输出。
  • 有问题的字符不是系统特定的,删除它们不太可能是最好的解决方案。您能否更新您的问题以提供有关崩溃的更多信息(确切的错误消息,如果有)?
猜你喜欢
  • 1970-01-01
  • 2023-03-12
  • 2010-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多