[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: xml to pdf or word
Cristobal Galiano Fernandez escribió: > Hi Adam: > > Yes, is posible but not is a simple task. A friend send me an example of > a propietary tool (proyect). > I've tested in my IIS server and works at very very speed. > > Proyect: Generate PDF on de fly > > Steps > 1) Do the document (DMA) on Microsoft Access > 2) Generate an XML file from de DMA like I attache (A VBA routine > crossing object DMA do this task) > Now you have a template XML based of the document in Access (DXT) > 3) Built a generic XSL (XSL2PDF) for transform an DXT file but with real > data (DXD) in a PDF file > -The XSL2PDF must contain functions like: > pdf_open_file (), pdf_begin_page () , function pdf_close (), function > pdf_end_page (), pdf_creador (), > pdf_setfont (), pdf_show_text (), pdf_show_text_continue(), > pdf_show_boxed (), pdf_rect (), pdf_line (), > pdf_open_image_file(), ... and use a PDF object constructor (ie: PDFlib) > > 4) At run time populate DXT file with real data (DXD) and use XSL2PDF > > Simple no! > > Cristóbal Galiano Fdez > > NB) This tool is propietary. > I send you > 1) A DXT file > 2) A generic XSL to transform a DXT file to DXD > > Adam Darwin escribió: > > > I still don't get this. I think i'm being really > > stupid, but.... > > > > The way I think it should work is that I have some > > xml, which I translate through an xslt using the xslt > > formatting objects. This is all done dynamically by a > > user accessing an asp page, selecting a few options > > and pressing a button. the pdf then magically pops up > > on the screen. > > > > >From the examples I have found on the net, I can't see > > how this works, as they seem to create the pdfs before > > hand and not on the fly (i.e. using java compiler) > > > > Is what I want to do possible? > > > > am I just being stupid? > > > > all help is greatly appreciated. > > > > regards, > > > > Adam > > > > --- Mailer Mailer <maillistboxes@xxxxxxxxx> wrote: > > > Hi Adam, > > > > > > I have done this kind of work, but my pdf views are > > > very simple. My architecture that there will be an > > > xml, which should be validated my DTD and I have > > > created an xsl which will generate the PDF with that > > > information. My requirement was to create an > > > existing > > > xml to PDF. I converted that XML to another XML and > > > then finally converted to PDF. > > > Please see the PDF structure first, it is a tree > > > structure and suitable to be represented as XML. > > > Check examples in PDFSpecs1.3 > > > > > > -Deep > > > > > > > > > --- Adam Darwin <addarwin@xxxxxxxxxxx> wrote: > > > > Thanks, but (and I may be missing something here) > > > > these are compiled with java. I need to generate > > > > the > > > > pdf on the fly, so that a user selects a number of > > > > options, clicks a button and the pdf opens in > > > their > > > > browser/computer. > > > > > > > > is this possible? > > > > > > > > ____________________________________________________________ > > Nokia Game is on again. > > Go to http://uk.yahoo.com/nokiagame/ and join the new > > all media adventure before November 3rd. > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > > ------------------------------------------------------------------------ > <?xml version='1.0' encoding='ISO-8859-1'?><Paginas><Pagina> > <texto ID='Etiqueta27' type='100' fuente='F2' size='8' x = '38' y = '610' x1='45' y1='11' modo='0'>Id. Fiscal:</texto> > <textobox ID='etiOtros' type='100' fuente='F2' size='8' x = '36' y = '468' x1='427' y1='12' modo='2'>DATOS TRIBUTARIOS</textobox> > <texto ID='refOtros' type='100' fuente='F2' size='8' x = '279' y = '435' x1='87' y1='12' modo='0'>Referencia Catastral:</texto> > <texto ID='objOtros' type='100' fuente='F2' size='8' x = '38' y = '452' x1='79' y1='11' modo='0'>Objeto Tributario:</texto> > <texto ID='telTit' type='100' fuente='F2' size='8' x = '217' y = '500' x1='51' y1='11' modo='0'>Teléfono:</texto> > <textobox ID='Etiqueta0' type='100' fuente='F2' size='10' x = '121' y = '786' x1='342' y1='14' modo='2'>DOCUMENTO DE COMPARECENCIA / JUSTIFICANTE DE REGISTRO</textobox> > <texto ID='nifTit' type='100' fuente='F2' size='8' x = '38' y = '500' x1='45' y1='11' modo='0'>Id. Fiscal:</texto> > <texto ID='nomTit' type='100' fuente='F2' size='8' x = '38' y = '514' x1='87' y1='12' modo='0'>Apellidos y Nombre:</texto> > <textobox ID='etiTit' type='100' fuente='F2' size='8' x = '35' y = '531' x1='427' y1='12' modo='2'>TITULAR DE LA CUENTA</textobox> > <texto ID='nifSP' type='100' fuente='F2' size='8' x = '38' y = '548' x1='48' y1='11' modo='0'>Id. Fiscal:</texto> > <texto ID='nomSP' type='100' fuente='F2' size='8' x = '38' y = '562' x1='87' y1='11' modo='0'>Apellidos y Nombre:</texto> > <textobox ID='etiDocAp' type='100' fuente='F2' size='8' x = '35' y = '361' x1='210' y1='12' modo='2'>DOCUMENTOS APORTADOS</textobox> > <texto ID='Etiqueta30' type='100' fuente='F2' size='8' x = '171' y = '610' x1='42' y1='11' modo='0'>Teléfono:</texto> > <textobox ID='etiDocNoAp' type='100' fuente='F2' size='8' x = '285' y = '360' x1='144' y1='11' modo='2'> DOCUMENTOS QUE SE REQUIEREN</textobox> > <texto ID='Etiqueta24' type='100' fuente='F2' size='8' x = '38' y = '596' x1='45' y1='11' modo='0'>Dirección:</texto> > <texto ID='nomPres' type='100' fuente='F2' size='8' x = '38' y = '624' x1='87' y1='11' modo='0'>Apellidos y Nombre:</texto> > <textobox ID='Etiqueta19' type='100' fuente='F2' size='8' x = '35' y = '642' x1='427' y1='11' modo='2'>PRESENTADOR</textobox> > <texto ID='Etiqueta5' type='100' fuente='F2' size='8' x = '37' y = '673' x1='83' y1='12' modo='0'>Tipo de Expediente</texto> > <texto ID='Etiqueta161' type='100' fuente='F2' size='8' x = '257' y = '738' x1='59' y1='11' modo='0'>Hora de Alta</texto> > <texto ID='Etiqueta104' type='100' fuente='F2' size='8' x = '123' y = '710' x1='70' y1='11' modo='0'>Oficina de Alta</texto> > <texto ID='Etiqueta102' type='100' fuente='F2' size='8' x = '123' y = '752' x1='50' y1='11' modo='0'>Organismo</texto> > <texto ID='Etiqueta71' type='100' fuente='F2' size='8' x = '124' y = '767' x1='59' y1='11' modo='0'>Nº Expediente</texto> > <texto ID='Etiqueta68' type='100' fuente='F2' size='8' x = '123' y = '738' x1='59' y1='11' modo='0'>Fecha de alta</texto> > <texto ID='Etiqueta11' type='100' fuente='F2' size='8' x = '124' y = '696' x1='76' y1='12' modo='0'>Oficina de Destino</texto> > <textobox ID='etiSP' type='100' fuente='F2' size='8' x = '35' y = '579' x1='428' y1='11' modo='2'>SUJETO PASIVO</textobox> > <texto ID='Etiqueta31' type='100' fuente='F1' size='8' x = '44' y = '151' x1='85' y1='15' modo='0'>Firma del presentador</texto> > <textobox ID='etiDoc' type='100' fuente='F2' size='8' x = '36' y = '375' x1='427' y1='12' modo='2'>DOCUMENTOS DEL EXPEDIENTE</textobox> > <texto ID='Etiqueta100' type='100' fuente='F2' size='8' x = '304' y = '610' x1='59' y1='11' modo='0'>Relación:</texto> > <texto ID='ampliOtros' type='100' fuente='F2' size='8' x = '38' y = '415' x1='63' y1='35' modo='0'>Ampliación de > Información</texto> > <texto ID='NFijoOtros' type='100' fuente='F2' size='8' x = '279' y = '452' x1='40' y1='11' modo='0'>Nº Fijo:</texto> > <texto ID='Etiqueta85' type='100' fuente='F1' size='8' x = '274' y = '82' x1='36' y1='12' modo='0'>Firmado:</texto> > <texto ID='cccTit' type='100' fuente='F2' size='8' x = '38' y = '486' x1='82' y1='12' modo='0'>Nº Cuenta Bancaria:</texto> > <texto ID='fechaNotOtros' type='100' fuente='F2' size='8' x = '38' y = '435' x1='116' y1='12' modo='0'>Fecha Notif. acto Recurrido</texto> > <texto ID='Etiqueta84' type='100' fuente='F1' size='8' x = '271' y = '151' x1='76' y1='15' modo='0'>Firma por la Oficina:</texto> > <texto ID='entTit' type='100' fuente='F2' size='8' x = '217' y = '486' x1='73' y1='11' modo='0'>Entidad/Sucursal:</texto> > <texto ID='Etiqueta148' type='100' fuente='F2' size='8' x = '38' y = '659' x1='96' y1='12' modo='0'>Subtipo de Expediente</texto> > <texto ID='Etiqueta16' type='100' fuente='F1' size='8' x = '47' y = '82' x1='36' y1='12' modo='0'>Firmado:</texto> > <cuadro ID='cuadroAmpli' type='101' x='35' y = '428' x1='428' y1='39'/> > <cuadro ID='Cuadro1' type='101' x='35' y = '686' x1='427' y1='31'/> > <cuadro ID='cuadroSP' type='101' x='35' y = '575' x1='428' y1='31'/> > <cuadro ID='cuadroTit' type='101' x='35' y = '527' x1='428' y1='45'/> > <cuadro ID='cuadroOtros' type='101' x='35' y = '464' x1='428' y1='33'/> > <cuadro ID='cuadroNoAp' type='101' x='251' y = '357' x1='213' y1='87'/> > <cuadro ID='cuadroAp' type='101' x='35' y = '357' x1='211' y1='87'/> > <cuadro ID='Cuadro147' type='101' x='121' y = '779' x1='342' y1='90'/> > <cuadro ID='Cuadro17' type='101' x='35' y = '637' x1='428' y1='45'/> > <texto ID='Texto6' type='109' fuente='F1' size='8' x = '134' y = '659' x1='323' y1='12' modo='0'>Texto6</texto> > <texto ID='Texto158' type='109' fuente='F1' size='8' x = '41' y = '211' x1='419' y1='31' modo='0'>Texto158</texto> > <texto ID='DIR_TIT_COMP' type='109' fuente='F1' size='8' x = '214' y = '259' x1='85' y1='12' modo='0'>DIR_TIT_COMP</texto> > <texto ID='Texto20' type='109' fuente='F1' size='8' x = '129' y = '625' x1='331' y1='12' modo='0'>Texto20</texto> > <texto ID='plazomax' type='109' fuente='F1' size='8' x = '41' y = '234' x1='420' y1='22' modo='0'>plazomax</texto> > <texto ID='Texto23' type='109' fuente='F1' size='8' x = '87' y = '596' x1='373' y1='12' modo='0'>Texto23</texto> > <texto ID='Texto4' type='109' fuente='F1' size='8' x = '134' y = '673' x1='324' y1='12' modo='0'>Texto4</texto> > <texto ID='Texto2' type='109' fuente='F1' size='8' x = '163' y = '627' x1='2' y1='0' modo='0'>Texto2</texto> > <textobox ID='etiTexto' type='109' fuente='F1' size='8' x = '41' y = '256' x1='418' y1='21' modo='1'>etiTexto</textobox> > <texto ID='NUMERO_NUME' type='109' fuente='F1' size='8' x = '376' y = '767' x1='85' y1='12' modo='0'>NUMERO_NUME</texto> > <texto ID='etiFechaAlta' type='109' fuente='F2' size='8' x = '123' y = '724' x1='164' y1='12' modo='0'>etiFechaAlta</texto> > <texto ID='fechaAlta' type='109' fuente='F1' size='8' x = '291' y = '724' x1='74' y1='12' modo='0'>fechaAlta</texto> > <textobox ID='Texto103' type='109' fuente='F1' size='8' x = '203' y = '710' x1='256' y1='12' modo='1'>Texto103</textobox> > <textobox ID='Texto101' type='109' fuente='F2' size='8' x = '182' y = '752' x1='279' y1='12' modo='1'>Texto101</textobox> > <textobox ID='Texto70' type='109' fuente='F2' size='8' x = '191' y = '767' x1='111' y1='11' modo='1'>Texto70</textobox> > <textobox ID='Texto67' type='109' fuente='F1' size='8' x = '183' y = '738' x1='70' y1='12' modo='1'>Texto67</textobox> > <texto ID='Texto162' type='109' fuente='F1' size='8' x = '310' y = '82' x1='155' y1='13' modo='0'>Texto162</texto> > <textobox ID='Texto10' type='109' fuente='F1' size='8' x = '203' y = '696' x1='256' y1='12' modo='1'>Texto10</textobox> > <texto ID='Texto160' type='109' fuente='F1' size='8' x = '319' y = '738' x1='85' y1='12' modo='0'>Texto160</texto> > <texto ID='d2NoAp' type='109' fuente='F1' size='8' x = '253' y = '330' x1='205' y1='11' modo='0'>d2NoAp</texto> > <texto ID='d5Ap' type='109' fuente='F1' size='8' x = '38' y = '287' x1='202' y1='12' modo='0'>d5Ap</texto> > <texto ID='d4Ap' type='109' fuente='F1' size='8' x = '38' y = '301' x1='202' y1='12' modo='0'>d4Ap</texto> > <texto ID='d3Ap' type='109' fuente='F1' size='8' x = '38' y = '315' x1='202' y1='11' modo='0'>d3Ap</texto> > <texto ID='d2Ap' type='109' fuente='F1' size='8' x = '38' y = '330' x1='202' y1='11' modo='0'>d2Ap</texto> > <texto ID='d1Ap' type='109' fuente='F1' size='8' x = '38' y = '344' x1='202' y1='12' modo='0'>d1Ap</texto> > <texto ID='tcccTit' type='109' fuente='F1' size='8' x = '122' y = '486' x1='94' y1='12' modo='0'>tcccTit</texto> > <texto ID='tentTit' type='109' fuente='F1' size='8' x = '293' y = '486' x1='168' y1='12' modo='0'>tentTit</texto> > <texto ID='trefOtros' type='109' fuente='F1' size='8' x = '370' y = '435' x1='91' y1='12' modo='0'>trefOtros</texto> > <texto ID='tobjOtros' type='109' fuente='F1' size='8' x = '120' y = '451' x1='155' y1='12' modo='0'>tobjOtros</texto> > <texto ID='d6NoAp' type='109' fuente='F1' size='8' x = '253' y = '273' x1='205' y1='12' modo='0'>d6NoAp</texto> > <texto ID='d5NoAp' type='109' fuente='F1' size='8' x = '253' y = '287' x1='205' y1='12' modo='0'>d5NoAp</texto> > <texto ID='tfechaNotOtros' type='109' fuente='F1' size='8' x = '157' y = '435' x1='85' y1='12' modo='0'>tfechaNotOtros</texto> > <texto ID='d3NoAp' type='109' fuente='F1' size='8' x = '253' y = '315' x1='205' y1='11' modo='0'>d3NoAp</texto> > <texto ID='Texto26' type='109' fuente='F1' size='8' x = '87' y = '610' x1='82' y1='12' modo='0'>Texto26</texto> > <texto ID='d1NoAp' type='109' fuente='F1' size='8' x = '253' y = '344' x1='205' y1='12' modo='0'>d1NoAp</texto> > <texto ID='Etiqueta15' type='109' fuente='F1' size='9' x = '44' y = '167' x1='340' y1='11' modo='0'>Etiqueta15</texto> > <texto ID='Texto99' type='109' fuente='F1' size='8' x = '367' y = '610' x1='94' y1='12' modo='0'>Texto99</texto> > <texto ID='tnifTit' type='109' fuente='F1' size='8' x = '86' y = '500' x1='96' y1='12' modo='0'>tnifTit</texto> > <texto ID='tnomTit' type='109' fuente='F1' size='8' x = '129' y = '514' x1='332' y1='12' modo='0'>tnomTit</texto> > <texto ID='tampliOtros' type='109' fuente='F1' size='8' x = '104' y = '415' x1='357' y1='34' modo='0'>tampliOtros</texto> > <texto ID='tnifSP' type='109' fuente='F1' size='8' x = '89' y = '548' x1='85' y1='12' modo='0'>tnifSP</texto> > <texto ID='d6Ap' type='109' fuente='F1' size='8' x = '38' y = '273' x1='202' y1='12' modo='0'>d6Ap</texto> > <texto ID='tnomSP' type='109' fuente='F1' size='8' x = '129' y = '562' x1='332' y1='12' modo='0'>tnomSP</texto> > <texto ID='ttelTit' type='109' fuente='F1' size='8' x = '293' y = '500' x1='85' y1='12' modo='0'>ttelTit</texto> > <texto ID='Texto29' type='109' fuente='F1' size='8' x = '217' y = '610' x1='85' y1='12' modo='0'>Texto29</texto> > <texto ID='tNFijoOtros' type='109' fuente='F1' size='8' x = '324' y = '452' x1='85' y1='12' modo='0'>tNFijoOtros</texto> > <texto ID='d4NoAp' type='109' fuente='F1' size='8' x = '253' y = '301' x1='205' y1='12' modo='0'>d4NoAp</texto> > </Pagina></Paginas> > > ------------------------------------------------------------------------ > <?xml version='1.0' encoding='ISO-8859-1'?> > <Paginas> > <Pagina Id="Id1"> > <texto ID='Etiqueta12' type='100' fuente='F1' size='16' x = '211' y = '690' x1='25' y1='19' modo='0'>A</texto> > <texto ID='Etiqueta9' type='100' fuente='F1' size='8' x = '483' y = '744' x1='54' y1='11' modo='0'>CL. OPERAC.</texto> > <texto ID='Etiqueta6' type='100' fuente='F1' size='8' x = '483' y = '727' x1='30' y1='11' modo='0'>SIGNO</texto> > <texto ID='Etiqueta4' type='100' fuente='F1' size='8' x = '483' y = '758' x1='16' y1='11' modo='0'>Ref</texto> > <texto ID='Etiqueta3' type='100' fuente='F1' size='16' x = '231' y = '755' x1='15' y1='21' modo='0'>D</texto> > <texto ID='Etiqueta2' type='100' fuente='F1' size='16' x = '200' y = '752' x1='25' y1='19' modo='0'>A</texto> > <cuadro ID='Cuadro10' type='101' x='202' y = '711' x1='133' y1='42'/> > <cuadro ID='Cuadro1' type='101' x='225' y = '762' x1='29' y1='20'/> > <cuadro ID='Cuadro0' type='101' x='197' y = '762' x1='29' y1='20'/> > <linea1 ID='Línea11' type='102' x='242' y = '712' x1='0' y1='0'/> > <texto ID='ClOpe' type='109' fuente='F1' size='8' x = '540' y = '744' x1='85' y1='12' modo='0'>240</texto> > </Pagina> > </Paginas> > > > ------------------------------------------------------------------------ > <?xml version='1.0' encoding='ISO-8859-1'?> > <Paginas> > <Pagina Id="Id1"> > <texto ID='Etiqueta12' type='104'>AModificado2</texto> > <texto ID='Etiqueta6' fuente='F2'>SIGNOModificado2</texto> > <texto ID='Etiqueta2' >AMod1</texto> > <texto ID='ClOpe' >243</texto> > </Pagina> > </Paginas> > > > ------------------------------------------------------------------------ > <?xml version="1.0" encoding="ISO-8859-1"?> > <!-- 2001-01-15. Update-002.XSL > 2000-01-15. CGF > """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" > -Un Fichero XML (New) actualiza los nodos de otro fichero XML (Old) > .Solo se actualiza el texto,no los atributos > -Se recorre el nodo Old y se accede al nodo New el mismo atributo > .Si se encuentra el elemento el texto Old es actualizado con el texto New > -No se ha intentado realizar un proceso óptimo. > """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" --> > > > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:output method="xml" indent="yes"/> > > <xsl:variable name="XmlNew" select="document('XmlUpdateElem-New.xml')" /> > > <xsl:template match="/"> > <Pagina Id="Id1"> > <xsl:apply-templates select="//Paginas" /> > </Pagina> > </xsl:template> > > <xsl:template match="Pagina"> > <xsl:call-template name="Copia" /> > </xsl:template> > > <xsl:template name="Copia"> > <xsl:for-each select="node()"> <!-- Para cada nodo --> > > <!-- Obtengo el texto New asociado al texto Old --> > <xsl:variable name="New"> > <xsl:call-template name="GetNew"> <!-- No funcionó sin la call (?) --> > <xsl:with-param name="ID" select="@ID" /> <!-- Paso el ID --> > </xsl:call-template> > </xsl:variable> > <!-- (New=<xsl:value-of select="$New" />) --> > > <xsl:choose> > <xsl:when test="$New=''"> <!-- No existe entrada en New (o texto()='') --> > <xsl:copy> <!-- Copio Elemento,Atributos y Texto --> > <xsl:copy-of select="*|@*|text()"/> > </xsl:copy> > </xsl:when> > <xsl:otherwise> <!-- Si existe entrada en New (o texto()='') --> > <xsl:copy> <!-- Copio Elemento,Atributos --> > <xsl:copy-of select="*|@*"/> > <xsl:value-of select="$New" /> <!-- Copio el Texto New --> > <!-- Deberia funcionar con <xsl:value-of select="$XmlNew/Paginas/Pagina/*[@ID=@ID]" /> sin la call > pero no la hace correctamente --> > </xsl:copy> > </xsl:otherwise> > </xsl:choose> > > </xsl:for-each> > > </xsl:template> > > <!-- Accedo por el ID --> > <xsl:template name="GetNew"> > <xsl:param name="ID"/> > <xsl:value-of select="$XmlNew/Paginas/Pagina/*[@ID=$ID]" /> <!-- Devuelve un valor --> > <!-- Si no existe el elemento en New devuelve '' --> > </xsl:template> > > > </xsl:stylesheet> > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|