使用JEuclid生成PDF(XSL-FO)中的公式



我正在尝试将xml转换为包含公式的pdf。我添加了 jeuclid 罐子来处理配方奶粉。除公式外,整个 xml 都已正确转换。我在有公式的地方变得空白。

public class PDFCreation {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
PDFCreation pdfCreation = new PDFCreation();
try {
pdfCreation.convertToPDF("SPE.xsl", "IPTC-19048-MS.xml", "IPTC-19048-MS.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}
public void convertToPDF(String xsl, String xml, String pdf) throws IOException, FOPException, TransformerException {
File xsltFile = new File(xsl);
StreamSource xmlSource = new StreamSource(new File(xml));
FopFactory fopFactory = FopFactory.newInstance(new File(".").toURI());
FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
OutputStream out;
out = new java.io.FileOutputStream(pdf);
try {
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new StreamSource(xsltFile));
Result res = new SAXResult(fop.getDefaultHandler());
transformer.transform(xmlSource, res);
} finally {
out.close();
}
}
}

编辑: 根据要求添加控制台日志

2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener 进程事件警告:以下功能未由 Apache FOP,尚未:table-layout="auto" (on fo:table) (没有上下文信息 可用) 2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener 进程事件警告: Apache FOP 尚未实现以下功能: table-layout="auto" (on fo:table) (没有可用的上下文信息) 3月 18, 2019 12:58:52 PM org.apache.fop.events.LoggingEventListener 进程事件:未找到图像。URI: ../徽标/IPTC_Logo.tif。(否 上下文信息可用) 2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Image 未找到。URI: ../徽标/分隔符.jpg。(无上下文信息)三月 18, 2019 12:58:52 PM org.apache.fop.events.LoggingEventListener 进程事件:未找到图像。URI: ../IPTC-19048-MS_fig_01.tif.(无上下文信息)3月 18, 2019 12:58:52 PM org.apache.fop.events.LoggingEventListener processEvent 警告:Apache FOP 尚未实现以下功能: table-layout="auto" (on fo:table) (没有可用的上下文信息) 3月 18, 2019 12:58:52 PM org.apache.fop.events.LoggingEventListener 进程事件警告:以下功能未由 Apache FOP,尚未:table-layout="auto" (on fo:table) (没有上下文信息 可用) 2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Image 未找到。URI: ../IPTC-19048-MS_fig_02.tif.(无上下文信息 可用) 2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener 进程事件警告: Apache FOP 尚未实现以下功能: table-layout="auto" (on fo:table) (没有可用的上下文信息) 3月 18, 2019 12:58:52 PM org.apache.fop.events.LoggingEventListener 进程事件:未找到图像。URI: ../IPTC-19048-MS_fig_03.tif.(无上下文信息)3月 18, 2019 12:58:52 PM org.apache.fop.events.LoggingEventListener processEvent SEVERE:未找到图像。URI: ../IPTC-19048-MS_fig_04.tif。(无上下文 可用信息) 2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Image 未找到。URI: ../IPTC-19048-MS_fig_05.tif.(无上下文信息 可用) 2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Image 未找到。URI: ../IPTC-19048-MS_fig_06.tif。(无上下文信息 可用) 2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Image 未找到。URI: ../IPTC-19048-MS_fig_07.tif。(无上下文信息 可用) 2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener 进程事件警告: Apache FOP 尚未实现以下功能: table-layout="auto" (on fo:table) (没有可用的上下文信息) 3月 18, 2019 12:58:52 PM org.apache.fop.events.LoggingEventListener 进程事件警告:以下功能未由 Apache FOP,尚未:table-layout="auto" (on fo:table) (没有上下文信息 可用) 2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Image 未找到。URI: ../IPTC-19048-MS_fig_08.tif。(无上下文信息 可用) 2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Image 未找到。URI: ../IPTC-19048-MS_fig_09.tif.(无上下文信息 可用) 2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Image 未找到。URI: ../IPTC-19048-MS_fig_10.tif.(无上下文信息 可用) 2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener 进程事件警告:字体 未找到"Arial,正常,700"。替换为"任意,正常,700"。三月 18, 2019 12:58:52 PM org.apache.fop.events.LoggingEventListener 进程事件警告:找不到字体"符号,正常,700"。代 与"符号,正常,400"。2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener processEvent INFO: An fo:block(无可用的上下文信息)比可用房间宽 在内联级数维度中。根据 调整结束缩进 过度约束几何规则(XSL 1.1,第 5.3.4 章) 3月 18, 2019 12:58:52 PM org.apache.fop.events.LoggingEventListener processEvent 警告:fo:块行 1 的内容超出了 内联级数方向为 5880 毫点。(无上下文信息 可用) 2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener processEvent INFO: An fo:block(无可用的上下文信息)比可用房间宽 在内联级数维度中。根据 调整结束缩进过度约束几何规则(XSL 1.1,第 5.3.4 章) 3月 18, 2019 12:58:52 PM org.apache.fop.events.LoggingEventListener processEvent 警告:fo:块行 1 的内容超出了 内联级数方向为 5880 毫点。(无上下文信息 可用) 2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener processEvent INFO: An fo:block(无可用的上下文信息)比可用房间宽 在内联级数维度中。根据 调整结束缩进 过度约束几何规则(XSL 1.1,第 5.3.4 章) 3月 18, 2019 12:58:52 PM org.apache.fop.events.LoggingEventListener processEvent 警告:fo:块行 1 的内容超出了 内联级数方向为 5880 毫点。(无上下文信息 可用) 2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener processEvent INFO: An fo:block(无可用的上下文信息)比可用房间宽 在内联级数维度中。根据 调整结束缩进 过度约束几何规则(XSL 1.1,第 5.3.4 章) 3月 18, 2019 12:58:52 PM org.apache.fop.events.LoggingEventListener processEvent 警告:fo:块行 1 的内容超出了 内联级数方向为 5880 毫点。(无上下文信息 可用) 2019-3-18下午12:58:52 org.apache.fop.events.LoggingEventListener processEvent INFO: An fo:block(无可用的上下文信息)比可用房间宽 在内联级数维度中。根据 调整结束缩进 过度约束几何规则(XSL 1.1,第 5.3.4 章) 3月 18, 2019 12:58:52 PM org.apache.fop.events.LoggingEventListener processEvent 警告:fo:块行 1 的内容超出了 内联级数方向为 5880 毫点。(无上下文信息 可用) 2019-3-18下午12:58:53 org.apache.fop.events.LoggingEventListener 进程事件信息:呈现 页面 #1。2019-3-18下午12:58:53 org.apache.fop.events.LoggingEventListener 进程事件信息:呈现 页面 #2.2019-3-18下午12:58:53 org.apache.fop.events.LoggingEventListener 进程事件信息:呈现 页面 #3.2019-3-18下午12:58:53 org.apache.fop.events.LoggingEventListener 进程事件信息:呈现 页面 #4.2019-3-18下午12:58:53 org.apache.fop.events.LoggingEventListener 进程事件信息:呈现 页面 #5.2019-3-18下午12:58:53 org.apache.fop.events.LoggingEventListener 进程事件信息:呈现 页面 #6.2019-3-18下午12:58:53 org.apache.fop.events.LoggingEventListener 进程事件信息:呈现 页面 #7.2019-3-18下午12:58:53 org.apache.fop.events.LoggingEventListener 进程事件信息:呈现 页面 #8.2019-3-18下午12:58:53 org.apache.fop.events.LoggingEventListener 进程事件信息:呈现 页面 #9.

我没有在我的 xsl 中为公式写任何东西,因为我阅读了 JEuclid 处理它。

你的 fo:root 标签上有 mathml 命名空间吗?这样:

<fo:root xmlns: fo="http://www.w3.org/1999/XSL/Format" xmlns:mathml="http://www.w3.org/1998/Math/MathML">

最新更新