Skip to content

Instantly share code, notes, and snippets.

@alivesay
Last active December 20, 2015 18:48
Show Gist options
  • Save alivesay/6178455 to your computer and use it in GitHub Desktop.
Save alivesay/6178455 to your computer and use it in GitHub Desktop.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes" method="text" />
<xsl:strip-space elements="*" />
<xsl:template match="notices">
<xsl:text>\documentclass[paper=a4,10pt]{scrlttr2}
\usepackage{pstricks}
\usepackage{fontspec}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage{graphics}
\usepackage[dvipdfm]{geometry}
\usepackage{pst-barcode}
\usepackage{longtable}
\usepackage{eso-pic}
\KOMAoptions{fromalign=left,fromlogo=true,addrfield=true,backaddress=on,subject=untitled,foldmarks=on,fromphone=off,fromemail=false,enlargefirstpage=true,pagenumber=botcenter,refline=wide}
\setkomavar{fromname}{FROM HERE}
\setkomavar{signature}{SIG HERE}
\setkomavar{fromaddress}{ADDRESS HERE}
\setkomavar{fromemail}{EMAIL HERE}
\setkomavar{fromphone}{00000000}
\setkomavar{subject}{}
\setkomavar{fromlogo}{\includegraphics[width=6.5cm,keepaspectratio=true]{web_logoCS4.eps}}
\setlength{\oddsidemargin}{\useplength{toaddrhpos}}
\addtolength{\oddsidemargin}{-1in}
\addtolength{\textwidth}{1in}
% add watermark
\newcommand\BackgroundPicture{
\put(0,0){
\parbox[b][\paperheight]{\paperwidth}{
\vfill
\centering
\includegraphics[width=0.8\paperwidth,height=0.8\paperheight,keepaspectratio=true]{wm.eps}%
\vfill
}}}
\AddToShipoutPicture{\BackgroundPicture}
% remove indentation on body
\makeatletter
\@setplength{toaddrvpos}{30mm}
\@setplength{toaddrheight}{30mm}
\l@addto@macro{\@typearea@end}{
\setlength{\oddsidemargin}{\useplength{toaddrhpos}}
\addtolength{\oddsidemargin}{-1in}
\addtolength{\textwidth}{1in}
\@setplength{toaddrvpos}{30mm}
\@setplength{toaddrheight}{30mm}
}
\makeatother
\setmainfont{URW Palladio L}
\begin{document}
</xsl:text>
<xsl:text>&#xa;</xsl:text>
<xsl:for-each select="notice">
<xsl:text>\begin{letter}{</xsl:text><xsl:text>&#xa;</xsl:text>
<xsl:value-of select="normalize-space(name)" />
<xsl:text>\\</xsl:text><xsl:text>&#xa;</xsl:text>
<xsl:for-each select="address">
<xsl:value-of select="normalize-space(line_1)" />
<xsl:text>\\</xsl:text><xsl:text>&#xa;</xsl:text>
<xsl:value-of select="normalize-space(line_2)" />
<xsl:if test="line_3 != ''">
<xsl:text>\\</xsl:text><xsl:text>&#xa;</xsl:text>
</xsl:if>
<xsl:value-of select="normalize-space(line_3)" />
<xsl:text>&#xa;</xsl:text>
<xsl:text>\begin{pspicture}(3,0.3in)
\psbarcode[transy=-0.2cm,scalex=1,scaley=1]{9721415687}{}{postnet}
\end{pspicture}</xsl:text>
</xsl:for-each>
<xsl:text>}</xsl:text>
<xsl:text>&#xa;</xsl:text>
<xsl:text>\opening{Greetings,}</xsl:text>
<xsl:text>&#xa;</xsl:text>
<xsl:text>\begin{center}\textbf{A FORMATTED TITLE\end{center}</xsl:text>
<xsl:text>Hello! Here is a message body</xsl:text>
<xsl:text>\vspace{10 mm}&#xa;</xsl:text>
<xsl:for-each select="items">
<xsl:text>&#xa;&#xa;</xsl:text>
<xsl:text>\renewcommand{\arraystretch}{2}</xsl:text><xsl:text>&#xa;</xsl:text>
<xsl:text>\begin{tabular}{p{8.5cm} p{4cm} p{3cm}}</xsl:text><xsl:text>&#xa;</xsl:text>
<xsl:text>\toprule[1.5pt]</xsl:text><xsl:text>&#xa;</xsl:text>
<xsl:text>\bottomrule[1.5pt]&#xa;</xsl:text>
<xsl:text>&#xa;</xsl:text>
<xsl:text>&#xa;</xsl:text>
<xsl:text>\end{tabular}</xsl:text>
<xsl:text>&#xa; &#xa;</xsl:text>
</xsl:for-each>
<xsl:text>&#xa;</xsl:text>
<xsl:text>\closing{Thank you,}
\end{letter}</xsl:text>
<xsl:text>&#xa;</xsl:text>
</xsl:for-each>
<xsl:text>\end{document}</xsl:text>
<xsl:text>&#xa;</xsl:text>
</xsl:template>
</xsl:stylesheet>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment