2013-08-15 2 views
2

PDF 렌더러 (특히 Apache FOP)가 처리 할 때 템플릿에 내용을 추가하기 위해 JavaScript 스크립트를 사용하여 테스트하려고했습니다. 나는 XSL이 호출 할 수있는 자바 스크립트 파일을 호출 할 수 있다는 것을 알고있다.XSL FO 파일의 자바 스크립트를 Apache FOP로 처리하기 위해 문서에 쓸 수 있습니까?

document.write("<p>some text</p>"); 

웹 브라우저에서 쉽게 표시 할 수있다. 그것은 당신의 자바 스크립트 함수 아파치 FOP 처리하고 출력 PDF에서 그 블록을 표시 할 수 있도록 더

document.write("<fo:block>some text</fo:block>"); 

처럼 문서에 뭔가를 쓸 수 있습니까?

답변

0

document.writetext/html 문서의 브라우저에서 공개되는 객체 인 document의 메소드입니다. XSLT는 브라우저에서 클라이언트 측 XSLT를 수행하는 경우에도 해당 문서 객체 및 해당 메서드에 액세스 할 수 없습니다. 거기에있는 유일한 옵션은 XSLT가 document.write에 스크립트를 사용하는 HTML 결과 문서를 생성하도록하는 것입니다. XSLT 변환의 결과 문서에서 Mozilla 브라우저가 document.write을 지원하지 않는 경우도 있습니다 (https://developer.mozilla.org/en/docs/XSL_Transformations_in_Mozilla_FAQ#What_about_document.write.3F 참조).

아파치 FOP가있는 Javascript의 경우, 사용할 수있는 문서 개체가 없다고 생각합니다. XSLT를 사용하여 fo:block 요소를 만드는 데 스크립트가 필요한 이유를 모르겠습니다. 예를 들어 리터럴 결과 요소를 사용하는 것으로 충분합니다.

<xsl:template match="foo"> 
    <fo:block>some text</fo:block> 
</xsl:template> 
+0

FO는 : 블록은 단지 예이고, 내가 템플릿 내부의 바코드를 생성하고 PDF에 배치 할,이 JQuery와 자바 스크립트를 사용하여이 작업을 수행하는 방법을 알고,하지만 난 어떻게 자바 스크립트 적합을 이해하고 있지 않다 xsl fo와 함께, javascript는 실제로 XSLT에만 사용할 수 있으며 XSL FO에는 사용할 수 없습니까? 많은 온라인 자원이 모순 된 것처럼 보입니다. – adam5990