xml xsl fop pdf 변환...
xml 파일을 이용해 pdf 만들려고 합니다.
그래서...xml 만들고 xsl 만들고...
fop -xml a.xml -xsl ma.xsl -pdf -pdf test.pdf
했더니만 에러 메시지가...
.xml과 .xsl 파일을 가지고 .fo 파일을 자동으로 만드는 도구가 있는 건지,
.fo 파일을 별도로 또 만들어야 되는 건지...
헷갈리네요..
아래는 에러메시지...
2010. 2. 23 오후 3:29:20 org.apache.fop.cli.Main startFOP
심각: Exception
javax.xml.transform.TransformerException: org.apache.fop.fo.ValidationException: Error: 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.
at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:217)
at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
at org.apache.fop.cli.Main.startFOP(Main.java:166)
at org.apache.fop.cli.Main.main(Main.java:197)
Caused by: javax.xml.transform.TransformerException: org.apache.fop.fo.ValidationException: Error: 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.
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1323)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2281)
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1367)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:709)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1284)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1262)
at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:214)
... 3 more
Caused by: org.apache.fop.fo.ValidationException: Error: 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.
at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:262)
at org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:163)
at org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:204)
at org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:277)
at org.apache.xml.serializer.ToXMLSAXHandler.startPrefixMapping(ToXMLSAXHandler.java:348)
at org.apache.xml.serializer.ToXMLSAXHandler.startPrefixMapping(ToXMLSAXHandler.java:318)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1315)
... 12 more
xml에 xsl을 적용하면
xml에 xsl을 적용하면 fo가 나오고요.
fo 파일을 fop에 걸면 pdf 내지는 target format이 나왔던 것으로 기억합니다.
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
다시 보니 fop에서
다시 보니 fop에서 한번에 pdf로 변환을 시도한 것같군요.
xsl의 적용결과로 나온 xml이 fo 형식에 맞지 않다는 말인것같습니다.
ps. 예시의 -pdf -pdf는 오타겠죠?
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
xslfo 형식에 맞게
xslfo 형식에 맞게 xsl을 만들어야 됩니다.
예시.
a.xml
s.xsl
이런 식으로 하고
이런 식으로...
제가 올렸던 글에 대한 답을 찾아서 늦게나마 답글 올립니다.
http://sebul.sarang.net/
세벌 https://sebuls.blogspot.kr/
댓글 달기