2013-08-15 2 views
1

Я пытался какое-то время выяснить способ использования скрипта javascript в шаблоне XSL FO для создания PDF-файла. После многократного копания я начинаю понимать, что это может быть невозможно, поскольку, как я понимаю, порядок работы для превращения XML-данных в визуализированную форму PDF составляетКак XSL FO обрабатывает скрипты javascript?

XML -> XSL (преобразование) -> FO (форматирование применяется) -> механизм рендеринга PDF -> PDF

Мой вопрос в том, где выполняется javascript в этом конвейере? Кажется очевидным, что сценарий выполняется ПОСЛЕ завершения выполнения xsl-преобразований, поэтому многие люди сталкиваются с осложнениями с преобразованиями XSL на основе браузера, но если часть javascript выполняется после преобразований xsl, но до форматирования FO применяется, тогда технически не должно быть способа, чтобы ваш скрипт javascript выполнял некоторые действия, такие как обновление параметра в документе xsl fo, который был бы включен в фазу FO и, следовательно, выводится в PDF-файл, который будет отображаться?

+0

Я думаю, что ответ на этот вопрос зависит от используемого вами инструмента, но я не могу себе представить, почему кто-то мог бы встроить поддержку JavaScript в такой движок обработки. – Pointy

ответ

1

Вы путаете браузер с форматированием. Механизм форматирования принимает входные данные и делает вывод на печать (не интерактивный вывод). Вы можете поместить код в Java или .NET (в зависимости от вашего движка XSLT), чтобы изменить XSL FO до того, как он достигнет механизма форматирования ... или (если ваш движок FO поддерживает его) встройте Javascript в окончательный вывод (очевидно, только PDF) для изменения того, что происходит при просмотре. Ни один движок XSL FO (насколько мне известно) не поддерживал Javascript в конвейере процесса - это серверный процесс, в котором Javascript не выполняется (обычно) (как это не в вашем браузере).