package Ġno . nav . e ess i . pens jon . pdf Ċ Ċ import Ġorg . apache . pdf box . pd model . P DD ocument Ċ import Ġorg . apache . pdf box . pd model . PD Page Ċ import Ġorg . apache . pdf box . pd model . PD Page Content Stream Ċ import Ġorg . apache . pdf box . pd model . graphics . image . Loss less Factory Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . io . ByteArray InputStream Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . lang . RuntimeException Ċ import Ġjava . util .* Ċ import Ġjavax . image io . Image IO ĊĊ Ċ // ĠTODO Ġusing Ġexceptions Ġas Ġcontrol Ġflow Ġis Ġpretty Ġif fy Ġ... Ċ object ĠImage Converter Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlogger : ĠLogger Ġby Ġlazy Ġ{ ĠLoggerFactory . getLogger ( Image Converter :: class . java ) Ġ} ĊĊĠĠĠ Ġfun Ġto Base 6 4 PDF ( base 6 4 Image Content : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa wt Image Ġ= ĠImage IO . read ( ByteArray InputStream ( Base 6 4 . get Decoder (). decode ( base 6 4 Image Content ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠRuntimeException (" Kl arte Ġik ke ĠÃ¥ Ġde kode Ġbil de ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠByteArrayOutputStream (). use Ġ{ Ġout Stream Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP DD ocument (). use Ġ{ Ġdoc Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpd Image X Object Ġ= ĠLoss less Factory . createFrom Image ( doc , Ġa wt Image ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Width Ġ= Ġpd Image X Object . width ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Height Ġ= Ġpd Image X Object . height ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpage Ġ= ĠPD Page () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠpageSize Ġ= Ġpage . media Box ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrotation Ġ= Ġpage . rotation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrotate Ġ= Ġrotation Ġ== Ġ 9 0 Ġ|| Ġrotation Ġ== Ġ 2 7 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpage Width Ġ= Ġif Ġ( rotate ) ĠpageSize . height Ġelse ĠpageSize . width ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpage Height Ġ= Ġif Ġ( rotate ) ĠpageSize . width Ġelse ĠpageSize . height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmargin Ġ= Ġ 3 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Width Ġ= Ġpage Width Ġ- Ġ 2 Ġ* Ġmargin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcenter X Ġ= Ġif Ġ( rotate ) Ġpage Height Ġ/ Ġ 2 f Ġelse Ġpage Width Ġ/ Ġ 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcenter Y Ġ= Ġif Ġ( rotate ) Ġpage Width Ġ/ Ġ 2 f Ġelse Ġpage Height Ġ/ Ġ 2 f ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscale Ġ= Ġif Ġ( image Width Ġ> Ġcontent Width ) Ġcontent Width Ġ/ Ġimage Width Ġelse Ġ 1 . 0 f ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoffset X Ġ= Ġimage Width Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoffset Y Ġ= Ġimage Height Ġ/ Ġ 2 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPD Page Content Stream ( doc , Ġpage ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . drawImage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpd Image X Object , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( center X Ġ- Ġoffset X Ġ* Ġscale ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( center Y Ġ- Ġoffset Y Ġ* Ġscale ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Width Ġ* Ġscale , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Height Ġ* Ġscale ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . add Page ( page ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . save ( out Stream ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠString ( Base 6 4 . get Encoder (). encode ( out Stream . toByteArray ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Kl arte Ġik ke ĠÃ¥ Ġkon verter e Ġdokument : Ġ$ ex ", Ġex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġex ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ