2012-06-13 5 views
3

Я пытаюсь создать потоковые PDF-отчеты из объектов Java. Я не смог найти много примеров этого, так что я следовал этому примеру:Создание PDF из XML в Java с использованием ApacheFOP

http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/examples/embedding/java/embedding/ExampleObj2PDF.java?view=markup

Единственное реальное различие между этим кодом и моя собственная является то, что я произвожу SRC (строка 81 в примере) с использованием преобразования JSON и XMLSerializer.

Проблема, с которой я сталкиваюсь, заключается в использовании трансформатора. Когда я преобразование (строка 87 примера), я получаю сообщение об ошибке:

(Location of error unknown)org.apache.fop.fo.ValidationException: First element must be the fo:root formatting object. Found (Namespace URI: "", Local Name: "html") instead. Please make sure you're producing a valid XSL-FO document.

Поскольку у меня нет видимости в трансформаторе, так и не удалось найти документацию, чтобы рассказать мне, как она должна работать, я не знаю, где происходит трансформация.

Любые впечатления от такого рода преобразований или понимания того, что мне не хватает, очень ценят.

ответ

6

Вход Apache FOP - XSL: FO. В сообщении об ошибке говорится, что вход не является допустимым документом XSL: FO, потому что ожидается, что первый (корневой) элемент будет «fo: root», но «html» был найден. FOP не читает ввод HTML. Я предлагаю разбить код на более мелкие шаги и сохранить промежуточные документы, чтобы помочь вам определить проблему. Шаги:

  1. объект JSON сериализации в XML
  2. XML преобразуется с помощью XSLT в XSL: FO
  3. XSL: FO преобразуется с использованием FOP в формате PDF.
Смежные вопросы