2011-05-20 11 views
5

¿Es posible incrustar un documento PDF o TEXT externo en un PDF maestro utilizando XSL-FO/XSLT?¿Cómo incrustar un archivo pdf/txt externo en otro usando XSL-FO?

Tengo hoja de estilo xslt para producir documentos PDF. Pero, el XML de entrada contiene documentos PDF con codificación TEXT o Base64 codificados. Entonces, ¿qué hago en mi versión HTML de mi hoja de estilos? Extraigo el TEXTO o PDF y lo vuelvo a colocar en el disco. Luego, en el XSLT tengo esto:

<xsl:when test='(n1:text/@mediaType="application/pdf") or (n1:text/@representation="B64")'> 
    <IFRAME name='documentFrame' id='documentFrame' WIDTH='100%' HEIGHT='65%' src='{$DOC_URI}'/> 
</xsl:when> 

Para la conversión de HTML que está funcionando perfectamente. ¿Es posible lograr el mismo resultado (documento incrustado) dentro de un PDF? Tengo un XSLT para la generación de PDF pero no he tenido éxito en lograr el mismo resultado.

He tratado de complementos para Apache FOP como éste (PDF Image Support):

<fox:external-document src="my-doc.pdf"/> 

Parece ser que es sólo para imágenes.

¿Alguna pista?

Gracias

Respuesta

7

así que encontré es posible utilizar mi solución anterior, no sólo estaba haciendo bien. Échale un vistazo aquí: FOP Extension

Además, aquí es un ejemplo de cómo usarlo:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions"> 
    <fo:layout-master-set> 
     <fo:simple-page-master master-name="A4"> 
      <fo:region-body/> 
     </fo:simple-page-master> 
    </fo:layout-master-set> 
    <fo:page-sequence master-reference="A4"> 
     <fo:flow flow-name="xsl-region-body"> 
      <fo:block-container> 
       <fo:block>Hello W3Schools</fo:block>  
       <fo:block> 
       </fo:block> 
      </fo:block-container> 
     </fo:flow> 
    </fo:page-sequence> 

    <fox:external-document content-type="pdf" src="../example_file/test.pdf"/> 
</fo:root> 
+1

Ah, y me solo puede incrustar el pdf al final o al principio del pdf maestro. –

+1

Si puede usarlo, XEP (RenderX) le permitirá incrustar un PDF usando 'fo: external-graphic'. –

+0

Quizás sea útil: también puede hacer referencia a un URI en el atributo src de la siguiente manera: '' –

1

código GiJoe una respuesta muy tarde ya que acabo de empezar a usar la FOP, pero se puede hacer (con extensión FOX)

<fo:block-container absolute-position="absolute"> 
     <fo:block> 
      <fo:external-graphic src="src/main/resources/externalpdf/test.pdf"/> 
      <fo:block-container absolute-position="absolute" left="0pt" top="100pt" right="200pt" bottom="270pt"> 
       <fo:block font-weight="bold" font-size="15pt" border="{$border}" text-align="center" line-height="18pt" font-style="italic"> 
        Hello 
       </fo:block> 
      </fo:block-container> 
     </fo:block> 
    </fo:block-container> 

para incrustarlo en la misma página y revestirlo de un texto

Cuestiones relacionadas