Использование JEuclid для генерации формулы в PDF (XSL-FO) - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь преобразовать XML в PDF, который содержит формулы.Я добавил жевклид баночки для обработки формулы.Весь 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();
        }
    }
}

РЕДАКТИРОВАТЬ: В соответствии с просьбой добавления консоли журнала

18 марта 2019 12:58:52 org.apache.fop.events.LoggingEventListener processEvent ПРЕДУПРЕЖДЕНИЕ: Следующая функция еще не реализована Apache FOP: table-layout = "auto" (для fo: table) (контекстная информация недоступна) 18 марта 2019 12:58:52 org.apache.fop.events.LoggingEventListener processEvent ПРЕДУПРЕЖДЕНИЕ: Следующая функция еще не реализована Apache FOP: table-layout = "auto" (для fo: table) (контекстная информация недоступна) 18 марта 2019 12:58:52 PM org.apache.fop.events.LoggingEventListener processEvent SEVERE: Изображение не найдено.URI: ../Logo/IPTC_Logo.tif.(Контекстная информация недоступна) 18 марта 2019 г. 12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Изображение не найдено.URI: ../Logo/Separator.jpg.(Контекстная информация недоступна) 18 марта 2019 г. 12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Изображение не найдено.URI: ../IPTC-19048-MS_fig_01.tif.(Контекстная информация недоступна) 18 марта 2019 г. 12:58:52 org.apache.fop.events.LoggingEventListener processEvent ПРЕДУПРЕЖДЕНИЕ: Следующая функция еще не реализована Apache FOP: table-layout = "auto" (onfo: table) (контекстная информация недоступна) 18 марта 2019 г. 12:58:52 org.apache.fop.events.LoggingEventListener processEvent ПРЕДУПРЕЖДЕНИЕ: Следующая функция еще не реализована в Apache FOP: table-layout = "auto "(on fo: table) (Контекстная информация недоступна) 18 марта 2019 12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Изображение не найдено.URI: ../IPTC-19048-MS_fig_02.tif.(Контекстная информация недоступна) 18 марта 2019 г. 12:58:52 org.apache.fop.events.LoggingEventListener processEvent ПРЕДУПРЕЖДЕНИЕ: Следующая функция еще не реализована Apache FOP: table-layout = "auto" (onfo: table) (контекстная информация недоступна) 18 марта 2019 12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Изображение не найдено.URI: ../IPTC-19048-MS_fig_03.tif.(Контекстная информация недоступна) 18 марта 2019 г. 12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Изображение не найдено.URI: ../IPTC-19048-MS_fig_04.tif.(Контекстная информация недоступна) 18 марта 2019 г. 12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Изображение не найдено.URI: ../IPTC-19048-MS_fig_05.tif.(Контекстная информация недоступна) 18 марта 2019 г. 12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Изображение не найдено.URI: ../IPTC-19048-MS_fig_06.tif.(Контекстная информация недоступна) 18 марта 2019 г. 12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Изображение не найдено.URI: ../IPTC-19048-MS_fig_07.tif.(Контекстная информация недоступна) 18 марта 2019 г. 12:58:52 org.apache.fop.events.LoggingEventListener processEvent ПРЕДУПРЕЖДЕНИЕ: Следующая функция еще не реализована Apache FOP: table-layout = "auto" (onfo: table) (контекстная информация недоступна) 18 марта 2019 г. 12:58:52 org.apache.fop.events.LoggingEventListener processEvent ПРЕДУПРЕЖДЕНИЕ: Следующая функция еще не реализована в Apache FOP: table-layout = "auto "(on fo: table) (Контекстная информация недоступна) 18 марта 2019 12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Изображение не найдено.URI: ../IPTC-19048-MS_fig_08.tif.(Контекстная информация недоступна) 18 марта 2019 г. 12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Изображение не найдено.URI: ../IPTC-19048-MS_fig_09.tif.(Контекстная информация недоступна) 18 марта 2019 г. 12:58:52 org.apache.fop.events.LoggingEventListener processEvent SEVERE: Изображение не найдено.URI: ../IPTC-19048-MS_fig_10.tif.(Контекстная информация недоступна) 18 марта 2019 12:58:52org.apache.fop.events.LoggingEventListener processEvent ПРЕДУПРЕЖДЕНИЕ: шрифт "Arial, нормальный, 700" не найден. Подставляя с "любой, нормальный, 700". март 18, 2019 12:58:52 org.apache.fop.events.LoggingEventListener processEvent ПРЕДУПРЕЖДЕНИЕ: Шрифт "Symbol, normal, 700" не найден. Подставляя с "Символом, нормальный, 400". 18 марта 2019 12:58:52 org.apache.fop.events.LoggingEventListener processEvent INFO: An fo: block (контекстная информация недоступна) шире доступной комнаты в линейном измерении прогрессии. Корректировка конечного отступа на основе правила чрезмерной геометрии (XSL 1.1, гл. 5.3.4) 18 марта 2019 г. 12:58:52 PM org.apache.fop.events.LoggingEventListener processEvent ВНИМАНИЕ: Содержимое fo: block line 1 превышает доступную область в направление inline-прогрессии на 5880 миллипоинтов. (Нет контекстной информации доступно) 18 марта 2019 12:58:52 org.apache.fop.events.LoggingEventListener processEvent INFO: An fo: block (контекстная информация недоступна) шире доступной комнаты в линейном измерении прогрессии. Корректировка конечного отступа на основе правила чрезмерной геометрии (XSL 1.1, гл. 5.3.4) 18 марта 2019 г. 12:58:52 PM org.apache.fop.events.LoggingEventListener processEvent ВНИМАНИЕ: Содержимое fo: block line 1 превышает доступную область в направление inline-прогрессии на 5880 миллипоинтов. (Нет контекстной информации доступно) 18 марта 2019 12:58:52 org.apache.fop.events.LoggingEventListener processEvent INFO: An fo: block (контекстная информация недоступна) шире доступной комнаты в линейном измерении прогрессии. Корректировка конечного отступа на основе правила чрезмерной геометрии (XSL 1.1, гл. 5.3.4) 18 марта 2019 г. 12:58:52 PM org.apache.fop.events.LoggingEventListener processEvent ВНИМАНИЕ: Содержимое fo: block line 1 превышает доступную область в направление inline-прогрессии на 5880 миллипоинтов. (Нет контекстной информации доступно) 18 марта 2019 12:58:52 org.apache.fop.events.LoggingEventListener processEvent INFO: An fo: block (контекстная информация недоступна) шире доступной комнаты в линейном измерении прогрессии. Корректировка конечного отступа на основе правила чрезмерной геометрии (XSL 1.1, гл. 5.3.4) 18 марта 2019 г. 12:58:52 PM org.apache.fop.events.LoggingEventListener processEvent ВНИМАНИЕ: Содержимое fo: block line 1 превышает доступную область в направление inline-прогрессии на 5880 миллипоинтов. (Нет контекстной информации доступно) 18 марта 2019 12:58:52 org.apache.fop.events.LoggingEventListener processEvent INFO: An fo: block (контекстная информация недоступна) шире доступной комнаты в линейном измерении прогрессии. Корректировка конечного отступа на основе правила чрезмерной геометрии (XSL 1.1, гл. 5.3.4) 18 марта 2019 г. 12:58:52 PM org.apache.fop.events.LoggingEventListener processEvent ВНИМАНИЕ: Содержимое fo: block line 1 превышает доступную область в направление inline-прогрессии на 5880 миллипоинтов. (Нет контекстной информации доступно) 18 марта 2019 12:58:53 org.apache.fop.events.LoggingEventListener processEvent INFO: отображается Страница 1. 18 марта 2019 12:58:53 org.apache.fop.events.LoggingEventListener processEvent INFO: отображается страница 2. 18 марта 2019 12:58:53 org.apache.fop.events.LoggingEventListener processEvent INFO: отображается страница № 3. 18 марта 2019 12:58:53 org.apache.fop.events.LoggingEventListener processEvent INFO: отображается страница № 4. 18 марта 2019 12:58:53 org.apache.fop.events.LoggingEventListener processEvent INFO: отображается страница № 5 18 марта 2019 12:58:53 org.apache.fop.events.LoggingEventListener processEvent INFO: отображается страница № 6. 18 марта 2019 12:58:53 org.apache.fop.events.LoggingEventListener processEvent INFO: отображается страница № 7 18 марта 2019 12:58:53 org.apache.fop.events.LoggingEventListener processEvent INFO: отображается страница № 8. 18 марта 2019 12:58:53 org.apache.fop.events.LoggingEventListener processEvent INFO: отображается страница № 9.

Я не написал ничего для формулы в моем xsl, поскольку я читал, что JEuclid обрабатывает ее.

1 Ответ

0 голосов
/ 16 апреля 2019

Есть ли у вас пространство имен mathml в корневом теге fo:?Вот так:

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