Как интегрировать Orbeon Forms с PD4ML, который не поддерживает JavaScript?

Я использую pd4ml для отображения URL-адреса, созданного движком Orbeon XForms, и преобразования его в PDF.

pd4ml.render( urlstring, fileOutputStram);

HTML-код, созданный Orbeon из моих XForms, показывает OK в браузере.

Но при попытке визуализировать XForms с помощью pd4ml в PDF-файле в верхней части страницы появляется предупреждающее сообщение о том, что Похоже, ваш браузер не поддерживает JavaScript. Вы можете попробовать один из следующих способов…, потому что PD4ML не поддерживает javascript.

Есть ли способ отключить предупреждающее сообщение?


person panox    schedule 14.06.2012    source источник


Ответы (2)


Если вы создаете форму с помощью Form Builder, то Form Runner сможет для автоматического создания PDF-файла. Для этого Form Runner использует Flying Saucer, который похож на pd4ml.

Если вы создаете XForms "вручную" и хотите использовать pd4ml, вам нужно выполнить некоторую пост-обработку HTML, прежде чем передать его в pd4ml. Вы можете увидеть, что делает Form Runner, в print-pdf-notemplate.xpl; в частности, поищите таблицу стилей XSLT, встроенную в этот конвейер, и, скорее всего, вы захотите сделать что-то подобное для pd4ml.

person avernet    schedule 15.06.2012
comment
Привет спасибо! Но я не уверен, что это сработает для меня. Дело в том, что у меня есть два сервера с орбеоном и на одном сервере я получаю сообщение на xform Ваш браузер не поддерживает JavaScript. Вы можете попробовать один из следующих вариантов: а с другой - нет. Так что я предполагаю, что это что-то настраиваемое на orbeon. Мне нужно, чтобы функция javascript была включена, когда я запрашиваю xform с помощью веб-браузера. Так что отключить его из property.xml не вариант. Любое предложение будет оценено. - person panox; 23.06.2012
comment
Я не предлагаю вам отключить функцию JavaScript в Orbeon Forms; просто после того, как вы сделаете запрос на получение страницы, вы преобразуете страницу, чтобы удалить часть HTML, которая будет отображаться pd4ml, который не поддерживает JavaScript, как это сделано в print-pdf-notemplate.xpl (см. ссылку выше). Если вы можете сделать это в XSLT, это действительно очень просто, и вы можете повторно использовать тот же код XSLT, который Orbeon Forms уже использует, прежде чем передать HTML в Flying Saucer. - person avernet; 26.06.2012

Ну, я понял, что pageflow.xml всех моих форм ссылается на свойство epilogue url="oxf:/config/epilogue.xpl

Затем я вхожу в config/property.xml и вижу, что он связан с /config/theme-plain.xsl.

And I add a stylesheet there on theme-plain.xsl

(см. theme-examples.xsl, чтобы получить представление о том, как это сделать)

xhtml:link rel="stylesheet" href="/mystyle.css" type="text/css" media="all"/>

где мой стиль содержит это:


    .xforms-noscript-panel {
        border: 4px solid #FF6600;
        margin: 1em;
        padding: 0.5em;
        width: auto;
        display: none !important; 
    }

Затем pd4ml напечатает html с предупреждением hide.

person panox    schedule 25.06.2012