
fm_fop.template.macro.doc_element.ftl Maven / Gradle / Ivy
<#global defaultBorderColor='black'>
<#macro handleElementList elements>
<#list elements as item>
<@doc_element.handleElement current=item/>
#list>
#macro>
<#macro handleRole role element><#if role != ''>role="${role}" <#elseif element.headLevel > 0>role="H${element.headLevel}" #if>#macro>
<#macro handleElement current>
<#assign elementType="${current.class.simpleName}"/>
<#if elementType = 'DocPhrase'>
<@handlePhrase current=current/>
<#elseif elementType = 'DocPara'>
<@handlePara current=current/>
<#elseif elementType = 'DocBr'>
>
<#elseif elementType = 'DocTable'>
<@handleTable docTable=current/>
<#elseif elementType = 'DocImage'>
<@handleImage docImage=current/>
<#elseif elementType = 'DocList'>
<@handleList docList=current/>
<#else>
Element type non implemented yet : ${elementType}
#if>
#macro>
<#macro handlePhrase current>
<@handleStyle styleValue=current.style/> <@handleFont element=current/>>${current.text}
#macro>
<#macro handleParaRole current role>
<@handleRole role=role element=current/><@handleStyle styleValue=current.style/><@handleAlign alignValue=current.align/><@handleFont element=current/>>${current.text?replace(r"${currentPage}"," ")}
#macro>
<#macro handlePara current>
<@handleParaRole current=current role=''/>
#macro>
<#macro handleImage docImage>
<#if (docImage.scaling)??>
<#assign imageScaling="height='${docImage.scaling}%' content-height='${docImage.scaling}%' content-width='scale-to-fit' scaling='uniform' width='${docImage.scaling}%'"/>
<#else>
<#assign imageScaling=""/>
#if>
#macro>
<#macro handleList docList>
<#list docList.elementList as li>
><#if docList.listType == 'ul'>·<#else>${li?counter}.#if>
<@handleElement current=li.content/>
#list>
#macro>
<#macro handleTable docTable>
<#list docTable.colWithds as currentColWidth>
#list>
<#list docTable.elementList as row>
<#list row.elementList as cell>
<@handleBorders docBorders=cell.docBorders/> number-columns-spanned="${cell.columnSpan}">
<#if (cell.elementList?size > 0)>
<#list cell.elementList as cellElement>
<@handleElement current=cellElement/>
#list>
<#else>
#if>
#list>
#list>
#macro>
<#macro handleBorder mode size color><#if size != 0><#if size = -1><#assign calcSize="1"/><#else><#assign calcSize="${size}"/>#if>${mode}='${calcSize}pt solid ${color}' #if>#macro>
<#macro handleBorders docBorders>
<#if (docBorders.borderColorTop)??><#assign borderColorTop="${docBorders.borderColorTop}"/><#else><#assign borderColorTop="${defaultBorderColor}"/>#if>
<#if (docBorders.borderColorBottom)??><#assign borderColorBottom="${docBorders.borderColorBottom}"/><#else><#assign borderColorBottom="${defaultBorderColor}"/>#if>
<#if (docBorders.borderColorLeft)??><#assign borderColorLeft="${docBorders.borderColorLeft}"/><#else><#assign borderColorLeft="${defaultBorderColor}"/>#if>
<#if (docBorders.borderColorRight)??><#assign borderColorRight="${docBorders.borderColorRight}"/><#else><#assign borderColorRight="${defaultBorderColor}"/>#if>
<@handleBorder mode='border-top' size=docBorders.borderWidthTop color=borderColorTop/>
<@handleBorder mode='border-bottom' size=docBorders.borderWidthBottom color=borderColorBottom/>
<@handleBorder mode='border-left' size=docBorders.borderWidthLeft color=borderColorLeft/>
<@handleBorder mode='border-right' size=docBorders.borderWidthRight color=borderColorRight/>
#macro>
white-space-collapse="false"
<#macro handleWhiteSpace element><#if (element.whiteSpaceCollapse??) && (element.whiteSpaceCollapse != 'true')>white-space="pre" #if>#macro>
<#macro handleFont element><#if (element.fontName??)> font-family="${element.fontName}" #if><#if (element.size)?? && (element.size != -1)> font-size="${element.size}pt" #if>#macro>
<#macro handleAlign alignValue><#if alignValue = 1>text-align="left"<#elseif alignValue = 2>text-align="center"<#elseif alignValue = 3>text-align="right"#if> #macro>
<#macro handleStyle styleValue><#if styleValue = 2>font-weight="bold"<#elseif styleValue = 3>font-weight="underline"<#elseif styleValue = 4>font-style="italic"<#elseif styleValue = 5>font-style="italic" font-weight="bold"<#else>font-style="normal" font-weight="normal"#if> #macro>
© 2015 - 2025 Weber Informatics LLC | Privacy Policy