package Ġpl . m ich alk ow ol . pdf s . f op Ċ Ċ import Ġcom . google . common . io . Resources Ċ import Ġcom . software berg . Xml Mapper Ċ import Ġorg . apache . f op . apps . F op Factory Ċ import Ġorg . apache . f op . apps . Mime Constants . MIME _ PDF Ċ import Ġpl . m ich alk ow ol . jira . St ories Wrapper Ċ import Ġpl . m ich alk ow ol . jira . Story Ċ import Ġpl . m ich alk ow ol . pdf s . Pdf Converter Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . io . InputStream Ċ import Ġjava . net . URI Ċ import Ġjavax . xml . transform . Transformer Factory Ċ import Ġjavax . xml . transform . sax . SAX Result Ċ import Ġjavax . xml . transform . stream . Stream Source ĊĊ Ċ class ĠF op Pdf Converter ( private Ġval Ġxml Mapper : ĠXml Mapper ) Ġ: ĠPdf Converter Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġconvert ( stories : ĠList < Story >): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstories Without Html Tags Ġ= Ġstories . map Ġ{ Ġremove Html From Description ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġstories Wrapper Ġ= ĠSt ories Wrapper ( stories Without Html Tags ) ĊĠĠĠĠĠĠĠ Ġval Ġxml Ġ= Ġxml Mapper . write ( stories Wrapper ) ĊĠĠĠĠĠĠĠ Ġreturn Ġconvert ( xml ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremove Html From Description ( story : ĠStory ): ĠStory Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġremove Html Tags ( html : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġhtml . replace ("< [^ > ]* >". to Regex (), Ġ"") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdescription Without Html Tags Ġ= Ġremove Html Tags ( story . description Ġ?: Ġ"") ĊĠĠĠĠĠĠĠ Ġreturn Ġstory . copy ( description Ġ= Ġdescription Without Html Tags ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconvert ( xml : ĠString ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfiguration Ġ= ĠResources . getResource (" f op / configuration . x conf "). to URI () ĊĠĠĠĠĠĠĠ Ġval Ġtemplate Ġ= ĠResources . getResource (" f op / template . xsl "). open Stream () ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġxml . byte InputStream () ĊĠĠĠĠĠĠĠ Ġreturn Ġconvert ( configuration , Ġtemplate , Ġdata ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconvert ( configuration : ĠURI , Ġtemplate : ĠInputStream , Ġdata : ĠInputStream ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġf op Factory Ġ= ĠF op Factory . newInstance ( configuration ) ĊĠĠĠĠĠĠĠ Ġreturn ĠByteArrayOutputStream (). use Ġ{ Ġout Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf op Ġ= Ġf op Factory . new F op ( MIME _ PDF , Ġout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfactory Ġ= ĠTransformer Factory . newInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransformer Ġ= Ġfactory . new Transformer ( Stream Source ( template )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= ĠSAX Result ( f op . default Handler ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransformer . transform ( Stream Source ( data ), Ġres ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout . toByteArray () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ