2012-06-13 3 views
3

Java 오브젝트에서 직접 PDF 보고서를 생성하려고합니다.ApacheFOP을 사용하여 Java에서 XML로 PDF 생성하기

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입니다. 첫 번째 (루트) 요소는 "fo : root"이지만 "html"은 발견되었으므로 입력이 유효한 XSL : FO 문서가 아니라는 오류 메시지가 표시됩니다. FOP는 HTML 입력을 읽지 않습니다. 작은 단계로 코드를 세분화하고 문제를 식별하는 데 도움이되는 중간 문서를 저장하는 것이 좋습니다. 단계는 다음과 같습니다

  1. JSON 객체는
  2. XML은 XSL에 XSLT를 사용하여 변환 XML로 직렬화 : FO
  3. XSL : FO PDF로 FOP를 사용하여 변환된다.