Dynamic Document Generator

Overview

This version is for Appian 23.2 and above. Cloud customers on a lower version of Appian that want to install this plugin should open a support case. Self-managed customers can find the latest jar for Appian 23.1 and lower version in the folder pre-23.2

Convert, merge and generate DOCX, PDF and XML files automatically in an Appian process

Key Features & Functionality

  • PDF from single DOCX with Fonts
    • Convert multiple DOCX files into a single PDF. Please note that the translation from DOCX to PDF is not always 1:1. The template may need to be tweaked or simplified to achieve the desired results.
  • PDF from DOCX without Fonts
    • Convert multiple DOCX files into a single PDF. Please note that the translation from DOCX to PDF is not always 1:1. The template may need to be tweaked or simplified to achieve the desired results. This will not support fonts.
  • PDF from XSL-FO Transformation
    • Uses XSLT to convert an XML to XSL-FO which is then converted to PDF
  • PDF from HTML
    • Converts an HTML document into a single page PDF.
  • PDF from HTML Transformation
    • Uses XSLT to convert an XML to HTML which is then converted to PDF
  • Text Doc from XSLT
    • Uses XSLT to convert an XML to a plain text document (such as HTML, another XML doc, etc).
  • DOCX from XHTML With Styling
    • Converts a valid XHTML file into a DOCX, allowing you to provide your own template file for style reference. Useful for creating dynamic documents that are editable
  • DOCX Merge
    • Merges one or more DOCX files together. If a header or footer exists in any document, they will be removed during the merge process.
    • A configurable separator can be specified: none, line break or page break

Function: xsltransform - Transform source XML using XSL Transform

Anonymous
  • Hello,

    I am looking for a recommendation with a solution we are bulding using the smart service PDF from XSL FO Transformation With Fonts, to get text justified when there is no space on it, but keeping words together correctly when text has proper spaces.

    We have found two different solutions that help us with part of the incident, but we are looking for another one to join both of them:

    1st Soultion: correct text (spaces or urls) are wrapping correctly but texts without spaces are going out of the border:

    <fo:block margin-left="0mm" margin-top="3mm" margin-bottom="0mm" linefeed-treatment='preserve' >
    <xsl:value-of select="descripcion_txt" />
    </fo:block>

    Result: 

    2nd Solutioncorrect text (spaces or urls) are being cut when "x" number of characters are reaching the border, but texts without spaces are shown correct.

    For this solution we are using 2 templates:

    <xsl:template name="zero_width_space_1">
    <xsl:param name="data"/>
    <xsl:param name="counter" select="0"/>
    <xsl:choose>
    <xsl:when test="$counter &lt; string-length($data)">
    <xsl:value-of select='concat(substring($data,$counter,1),"&#8203;")'/>
    <xsl:call-template name="zero_width_space_2">
    <xsl:with-param name="data" select="$data"/>
    <xsl:with-param name="counter" select="$counter+1"/>
    </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
    </xsl:otherwise>
    </xsl:choose>
    </xsl:template>

    <xsl:template name="zero_width_space_2">
    <xsl:param name="data"/>
    <xsl:param name="counter"/>
    <xsl:value-of select='concat(substring($data,$counter,1),"&#8203;")'/>
    <xsl:call-template name="zero_width_space_1">
    <xsl:with-param name="data" select="$data"/>
    <xsl:with-param name="counter" select="$counter+1"/>
    </xsl:call-template>
    </xsl:template>

    Block:

    <fo:block margin-left="0mm" margin-top="3mm" margin-bottom="0mm" linefeed-treatment='preserve' >
    <xsl:call-template name="zero_width_space_1">
    <xsl:with-param name="data" select="descripcion_txt"/>
    </xsl:call-template>
    </fo:block>

    Here is an example of the xml and xsl we are using:

    XML

    <doc>
    	<prefijo>
    		<nombre>Example</nombre>
    		<fecha>2023-03-16z</fecha>
    	</prefijo>
    	<seccion_campos>
    		<titulo_txt>DESCRIPCIÓN DEL ACTO O MOTIVO:</titulo_txt>
    		<descripcion_txt>Peropueden surgir empresas tecnológicas en países con legislaciones que hacen difícil cualquier emprendimiento? No hay duda de que un mal clima de negocios, burocracias infernales y la corrupción son grandes trabas. Es difícil crear una empresa innovadora en Venezuela, donde según los estudios del Banco Mundial de los que hablábamos en el prólogo hacen falta 17 trámites legales para registrar una nueva empresa, o en Argentina, donde se requieren 14, o en Brasil y Colombia, donde hacen falta 13, y que por lo general tardan varios meses en completarse.
    		
    I cannot find that it is an error from an XSLFO standpoint this surprises me, so maybe I just missed it, but from an implementation standpoint in other words, from within FOP, there really is no way to process hyphenation without knowing which language (and therefore which hyphenation dictionary to use. Probably what is happening is that FOP jumps to a default dictionary no doubt English or U.S. English. If you are using that default language your result is ok, but it is only by accident the FOP developers could just as easily have chosen Turkish as the default.	
    	
    		LOS INNOVADORES QUIEREN VIVIR EN LUGARES VIBRANTES </descripcion_txt>
    	</seccion_campos>
    	<seccion_campos>
    		<titulo_txt>EFECTO SOBRE LOS TENEDORES:</titulo_txt>
    		<descripcion_txt>efaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaecto</descripcion_txt>
    	</seccion_campos>
    	<seccion_campos>
    		<titulo_txt>NOTA COMPARATIVA RESPECTO A LAS DIFERENCIAS MÁS RELEVANTES:</titulo_txt>
    		<descripcion_txt>find that it is an error from an XSLFO standpoint this surprises me, so maybe I just missed it, but from an implementation standpoint in other words, from within FOP, there really is no way to process hyphenation without knowing which language (and therefore which hyphenation dictionary to use. Probably what is happening is that FOP jumps to a default dictionary no doubt English or U.S. English. If you are using that default language your result is ok, but it is https://bmv-test.appiancloud.com/suite/design/lMBfe49_FfR7AnMpoon-ShAtibjpv4wDQFXudCPCREuKKkRzDRcUEpwDURnyVjx6t5Id2ExlrieqaqxXUWH2p-p8UnK2B1i6V-dwFn5rL-hfDlzgQ
    https://bmv-dev.appiancloud.com/suite/design/ksBCPzGojqGmiD_JHPtxO7RCAQ-3vL2745szbJZQQ8SUhuzlQk7uOeJCGKZaLcUdUNjeq78ZzD3wC_HeaHmkRH4V2TqtAoPkovRsTk
    
    
    </descripcion_txt>
    	</seccion_campos>
    	<seccion_campos>
    		<titulo_txt>URL:</titulo_txt>
    		<descripcion_txt>find that it is an error from an XSLFO standpoint this surprises me, so maybe I just missed it, but from an implementation standpoint in other words, from within FOP, there really is no way to process hyphenation without knowing which language (and therefore which hyphenation dictionary to use. Probably what is happening is that FOP jumps to a default dictionary no doubt English or U.S. English. If you are using that default language your result is ok, but it is https://grupovass.sharepoint.com/:x:/r/teams/BMV-Emisnet/_layouts/15/Doc.aspx?sourcedoc=%7B491E1B70-8EE3-4C32-B1B2-8EFAAC1E1713%7D&file=Incidentes%20reportados%20por%20BMV.xlsx&action=default&mobileredirect=true&clickparams=eyJBcHBOYW1lIjoiVGVhbXMtRGVza3RvcCIsIkFwcFZlcnNpb24iOiIyNy8yMzAyMDUwMTQyMSIsIkhhc0ZlZGVyYXRlZFVzZXIiOmZhbHNlfQ%3D%3D&cid=b21dabe8-a8cf-432e-a4bd-844b12946b5e</descripcion_txt>
    	</seccion_campos>
    </doc>

    XSL

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" >
    
     <xsl:template name="zero_width_space_1">
    	<xsl:param name="data"/>
    	<xsl:param name="counter" select="0"/>
    	<xsl:choose>
    		<xsl:when test="$counter < string-length($data)">
    			<xsl:value-of select='concat(substring($data,$counter,1),"​")'/>
    			<xsl:call-template name="zero_width_space_2">
    				<xsl:with-param name="data" select="$data"/>
    				<xsl:with-param name="counter" select="$counter+1"/>
    			</xsl:call-template>
    		</xsl:when>
    		<xsl:otherwise>
    		</xsl:otherwise>
    	</xsl:choose>
     </xsl:template>
     
     <xsl:template name="zero_width_space_2">
    	<xsl:param name="data"/>
    	<xsl:param name="counter"/>
    	<xsl:value-of select='concat(substring($data,$counter,1),"​")'/>
    	<xsl:call-template name="zero_width_space_1">
    		<xsl:with-param name="data" select="$data"/>
    		<xsl:with-param name="counter" select="$counter+1"/>
    	</xsl:call-template>
     </xsl:template>
     
      <xsl:template name="getDateBy">
       <xsl:param name="date_dt"/>
       <xsl:value-of select="concat('',substring($date_dt,9,2),'/',substring($date_dt,6,2),'/',substring($date_dt,1,4))" />
      </xsl:template>
      
    	<xsl:template match="doc">
    		<fo:root  xml:lang="es" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    			<fo:layout-master-set>
    				<fo:simple-page-master master-name="A4" page-width="220mm" page-height="280mm" margin-top="1cm" margin-bottom="1cm" margin-left="1cm" margin-right="1cm">
    					<fo:region-body margin-top="6cm" margin-bottom="1cm" margin-left="0mm" margin-right="5mm" />
    					<fo:region-before margin-top="0cm" margin-bottom="20cm" margin-left="0cm" margin-right="0cm" />
    					<fo:region-after margin-top="0cm" margin-bottom="1cm" margin-left="0cm" margin-right="3cm" />
    				</fo:simple-page-master>
    			</fo:layout-master-set>
    	
    			<fo:page-sequence master-reference="A4">
    			
    				<!-- HEADER -->
    				<fo:static-content flow-name="xsl-region-before" >
    					<fo:block-container height="0cm" background-color="white" margin-top="-20mm" margin-left="-10mm" margin-right="43mm" >
    					
    					<!-- NOMBRE DEL PREFIJO -->
    					<fo:block text-align="left" font-size="13pt" margin-top="25mm" margin-left="20mm" color="black" font-weight="bold" >
    						<xsl:value-of select="prefijo/nombre" />                 
    					</fo:block> 
    					<!-- TERMINA EL NOMBRE DEL PREFIJO -->
    					 
    					 <!-- LOGO -->
    					 <fo:block margin-left="135mm" margin-top="-15mm">
    					  <fo:external-graphic 
    						src = "url('data:image/png;base64,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')"
    						height="10.5cm" 
    						content-width="8.5cm" />     
    					 </fo:block>
    					<!-- TERMINA EL LOGO -->
    							
    					<!-- FECHA -->
    					<fo:block margin-left="15mm" margin-bottom="-30mm" margin-top="-63mm" >
    						<fo:table table-layout="fixed" width="100%" >
    							<fo:table-column column-width="249mm" />
    								<fo:table-body>
    									<fo:table-row>
    									<fo:table-cell>
    										<fo:block-container font-size="11pt" border-bottom-style="solid" border-color="black" >
    											<fo:block margin-left="-5mm" color="black" >Fecha:  
    												 <xsl:call-template name="getDateBy">
    													 <xsl:with-param name="date_dt" select="prefijo/fecha"/>
    												 </xsl:call-template>
    											</fo:block>
    										</fo:block-container>
    									</fo:table-cell>
    								</fo:table-row>
    							</fo:table-body>
    						</fo:table>
    					</fo:block>
    					<!-- TERMINA LA FECHA -->
    					
    				 </fo:block-container>
    				</fo:static-content>
    				<!-- TERMINA EL HEADER -->
    				
    				<!-- FOOTER -->
    				<fo:static-content flow-name="xsl-region-after" height="10cm">
    					<fo:block text-align="left" font-size="9pt" border-bottom-style="solid" border-top-style="solid" border-color="black" >
    						<fo:table table-layout="fixed" width="100%" >
    							<fo:table-column column-width="198mm" />
    							<fo:table-column column-width="2mm" />
    							<fo:table-body>
    								<fo:table-row>
    									<fo:table-cell>
    										<fo:block-container >
    											<fo:block margin-left="0mm" margin-top="1mm" margin-bottom="0.5mm" >
    												 Customer
    											</fo:block>
    										</fo:block-container>
    									</fo:table-cell>
    									<fo:table-cell>
    										<fo:block-container >
    											<fo:block margin-left="0mm" margin-top="1mm" margin-bottom="0.5mm" >
    												 <fo:page-number/>
    											</fo:block>
    										</fo:block-container>
    									</fo:table-cell>
    								</fo:table-row>
    							</fo:table-body>
    						</fo:table>
    					</fo:block>
    				</fo:static-content>
    				<!-- TERMINA EL FOOTER -->
    				
    				<!-- BODY -->
    				<fo:flow flow-name="xsl-region-body" >
    					<fo:block text-align="justify" font-size="9pt" >
    						<fo:table table-layout="fixed" width="100%" >
    							<fo:table-column column-width="200mm" />
    							<fo:table-body>
    								
    								<!-- SECCION DE CAMPOS DINAMICOS -->
    								<fo:table-row>
    									<fo:table-cell>
    										<fo:block font-size="11pt" >
    											<fo:table table-layout="fixed" width="100%" >
    												<fo:table-column column-width="200mm" />
    												<fo:table-column column-width="200mm" />
    												<fo:table-body>
    													<xsl:for-each select="seccion_campos">
    														<fo:table-row>
    															<fo:table-cell>
    																<fo:block-container >
    																	<fo:block margin-left="0mm" margin-top="6mm" margin-bottom="0mm" font-weight="bold" >
    																		 <xsl:value-of select="titulo_txt" />    
    																	</fo:block>
    																</fo:block-container>
    															</fo:table-cell>
    														</fo:table-row>
    														<fo:table-row>
    															<fo:table-cell>
    																<fo:block-container >
    																	<fo:block margin-left="0mm" margin-top="3mm" margin-bottom="0mm" linefeed-treatment='preserve' >
    																		<!-- 	 <xsl:value-of select="descripcion_txt" />			 -->
    																		<xsl:call-template name="zero_width_space_1">
    																				<xsl:with-param name="data" select="descripcion_txt"/>
    																			</xsl:call-template>
    																	</fo:block>
    																</fo:block-container>
    															</fo:table-cell>
    														</fo:table-row>
    													</xsl:for-each>
    												</fo:table-body>
    											</fo:table>
    										</fo:block>
    									</fo:table-cell>
    								</fo:table-row>
    								<!-- TERMINA SECCION DE CAMPOS DINAMICOS -->
    								
    							</fo:table-body>
    						</fo:table>
    					</fo:block>
    				<fo:block id="TheVeryLastPage"> </fo:block>
    				</fo:flow>
    				<!-- TERMINA EL BODY -->
    				
    			</fo:page-sequence>
    		</fo:root>
    	</xsl:template>
    </xsl:stylesheet>

  • Please upload an example document with problems and the issues you are seeing.

  • Hello! 

    I tested it but still same issue.

    Regards,

    Dimitrios

  • Hi

    Do you know if this has been fixed after the new version.

    I appreciate your comments.

    Best regards

  • v2.0.3 Release Notes
    • Bug Fixes:
    • DOCX from XHTML fixes
    • Issue with base64 images
    • Issue with null template
  • Hello, ! I have tried your suggestion but it does not work. Still the same issue. 

    By the way, I want to report that the HTML to PDF conversion seems fragile. I am trying to convert a DOCX to PDF and I am getting the below issues as reported also by ,

    In general, it seems that the conversions are a little bit fragile.

  • Hello Michael,

    I have been asked by the development team if it is possible to share an example of a functional XSL-FO doc.

    They tell me that they are not clear about the variables and content process.

    Best regards

  • Hello,

    Thank you very much for the reply and support.

    1- We have tried to set the pauseOnError input to false and nothing else comes out in the log.

    2- We tried to transform an html to PDF (sorry for not making it clear), here you have an example

    <!DOCTYPE html>
    <html lang='en'>
    <head>
    <meta http-equiv='Content-Type'
    content='text/html; charset=utf-8'/>
    <style>
    html, body {
    background-color:#FFFFFF;
    margin: 0;
    padding: 0;
    overflow: auto;
    }
    body {
    background-color:#FFFFFF;
    font-family: Arial;
    font-size: 13px;
    line-height: 1.6;
    color: #444;
    }
    
    #dina4 {
    width: 190mm;
    background: #fff;
    margin: 10px auto;
    position: relative;
    }
    
    hr {width:100%;text-align:left;margin-left:0}
    .datosExpediente {
    border: 1px solid black;
    padding: 10px;
    margin-right: 10%;
    font-size: 11px;
    }
    .datosOtros {
    border: 1px solid black;
    padding: 10px;
    margin-left: 10%;
    min-height: 120px
    }
    .datosInteresado{
    margin-top: 15px;
    }
    .titProcedimiento{
    font-size: 16px;
    margin: 20px 0;
    }
    .cabeceraAmbito{
    font-size: 11px;
    text-align: right;
    }
    .datosRegistro{
    border-top: 2px solid black;
    padding: 5px 0;
    }
    @media screen {
    .footer, .header {
    display: none;
    }
    }
    @media print {
    .datosFormulario{
    margin-bottom: 150px;
    }
    
    }
    .header, .header-space,
    .footer, .footer-space {
    height: 60px;
    }
    .header {
    position: fixed;
    top: 0;
    }
    .footer {
    position: fixed;
    bottom: 0;
    }
    
    
    </style>
    
    </head>
    <body>
    
    <div id='dina4'>
    <!-- Cabecera Ámbito -->
    <table style='width: 90%;'>
    <tr>
    <td style='width: 40%;'>
    <img height='50' src='data:image/png;base64, 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' />
    </td>
    <td style='width: 40%;'>
    <div class='cabeceraAmbito'>
    <div>Secretaría</div>
    <div>Secretaría</div>
    <div>Secretaría</div>
    </div>
    </td>
    </tr>
    </table>
    <table width='100%'>
    <tr>
    <td style='width: 50%;'>
    <!-- Datos Expediente -->
    <div class='datosExpediente'>
    <div>Nº EXPEDIENTE: ES_J00033520_2023_AC2000241</div>
    <div>FECHA EXPEDIENTE: 3/21/2023</div>
    <div>NUM. REGISTRO:</div>
    <!-- Datos Interesado -->
    <div class='datosInteresado'>
    <div>NOMBRE: prueba prueba prueba</div>
    <div>CÓD. DE IDENTIFICACIÓN: 12312312X</div>
    <div>CORREO ELECTRÓNICO: ja@ja.com</div>
    </div>
    </div>
    </td>
    <td style='width: 50%;'>
    <div>
    </div>
    </td>
    </tr>
    </table>
    
    <!-- Titulo Procedimiento -->
    <div class='titProcedimiento'>
    <b>Procedimiento:</b> Procedimiento para expedientes
    </div>
    
    <h2>Datos de la solicitud:</h2>
    <div class='datosFormulario'>
    <div class='pregunta'><h3>Datos del objeto</h3></div><hr><div class='respuesta'><p><b>Objeto</b></p><p>123</p></div>
    </div>
    </div>
    
    </body></html>

    To add more trace we added the following line to the file "<APPIAN_HOME>/deployment/web.war/WEB-INF/resources/appian_log4j.properties ":

    log4j.logger.com.appiancorp.ps.xmlfo=DEBUG

    Appian Support has confirmed that it is correct, but we do not see any more trace in the tomcat log.

    Thank you very much and best regards,
    Jaime

  • This has always been an issue with this plugin. The font that holds the bullet symbol isn't loaded by default on the cloud sites.  You need to use the docx to pdf with fonts and provide the bullet font (usually Wingdings).

  • we are seeing some issues when converting the docx document to PDF when the docx document has bullet list. The converted PDF document it is not retaining the bullet list. Could you please check this issue and provide a fix for this issue. Currently it is impacting several places in one of Application