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
Function: xsltransform - Transform source XML using XSL Transform
As a follow up...do you know if there are any special characters or formatting the conversion might not like?
I have upgraded our DEV environment to version 2.1.0. I was hoping the new version would help with an issue we currently have in all environments. We are currently on version 23.1. We are using the PDF from Multiple DOCX (no fonts) and it attempts to convert the file but on the output there is no file, we are getting this error:
org.docx4j.openpackaging.exceptions.Docx4JException: Exception exporting package
Hello,
I'm using docxncolumntable to generate a table for a word doc. The table that gets created is too narrow to fit the page and requires manual readjustment of the table.
The parameters for the function do not appear in the help screen. I checked the documentation provided with the plug in but there's no mention of the parameters used by docxncolumntable. Is there a way to get a list of the parameters supported by this function in order to adjust the table?
Thank you.
After utilizing OWASP dependency-check, we have identified the following vulnerabilities (outlined below). Are there any plans in place to mitigate these CVEs?
I can confirm at least in version 2.0.4 Arabic Letters can be displayed, if you provide a proper Font Document as an input
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:
<fo:block margin-left="0mm" margin-top="3mm" margin-bottom="0mm" linefeed-treatment='preserve' ><xsl:value-of select="descripcion_txt" /></fo:block>
Result:
2nd Solution: correct 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 < 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>
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.