-1

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

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

这是一个例外:在 org.apache.xalan.templates.FuncDocument.getDoc(FuncDocument.java:356) 在 org.apache.xalan 的 org.apache.xalan.templates.FuncDocument.warn(FuncDocument.java:419)。 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.templates.ElemVariable.getValue(ElemVariable.java:308) 在 org.apache.xalan.templates 的 org.apache.xalan.transformer.TransformerImpl.transformToGlobalRTF(TransformerImpl.java:1944)。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 ) at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:278) at org.apache.xalan.templates.XUnresolvedVariable.execute(XUnresolvedVariable.java:124) at 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.templates.ElemTemplate.execute(ElemTemplate.java:392) 在 org.apache.xalan.templates.ElemCallTemplate 的 org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)。在 org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)在 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) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl. java:2411) 在 org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:392) 在 org.apache.xalan。org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411) 的模板.ElemCallTemplate.execute(ElemCallTemplate.java:246) 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。在 org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374) 在 org.apache.executeChildTemplates(TransformerImpl.java:2411) 处执行(ElemApplyTemplates.java:176) .xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:393) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:176) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java :2411) 在 org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1367) 在 org.apache.xalan.transformer 的 org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2281)。 TransformerImpl.transform(TransformerImpl.java:709) 在 org.apache.xalan.transformer.TransformerImpl。org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1262) 处的变换(TransformerImpl.java:1284)

4

1 回答 1

1

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

String.replaceAll()方法是摆脱不需要的字符的好方法......在字符串中。

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


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

于 2012-12-20T01:09:30.193 回答