package Ġcom . dong tr onic . ke e pt alk ing Ċ Ċ import Ġorg . apache . pdf box . pd model . P DD ocument Ċ Ċ import Ġjava . io .* Ċ Ċ object ĠPdf Splitter Ġ{ ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġsplit File ( version : ĠManual Version , Ġpage Numbers : ĠList < Int >): ĠFile Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġversion . filename ĊĠĠĠĠĠĠĠ Ġval Ġpage Number String Ġ= ĠStringBuilder () ĊĊĠĠĠĠĠĠĠ Ġval Ġfis Ġ= Ġif Ġ( version Ġ!== ĠManual Version . MAN UAL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPdf Splitter :: class . java . class Loader . getResource AsStream ( fileName ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFileInputStream ( File ( fileName )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfis . use Ġ{ Ġfile Stream Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġnew FileName Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠP DD ocument . load ( file Stream ). use Ġ{ Ġdocument Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( document . numberOf Pages Ġ- Ġ 1 Ġdown To Ġ 0 ). forEach { Ġpage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! page Numbers . contains ( page Ġ+ Ġ 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocument . remove Page ( page ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage Number String . append (" Manual Ġ"). append ( version . manual Name ). append (" Ġpages Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage Numbers . forEach Ġ{ Ġpage Ġ-> Ġpage Number String . append ( page ). append ("- ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew FileName Ġ= Ġpage Number String . reverse (). delete Char At ( 0 ). reverse (). append (". pdf "). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew FileName Ġ= Ġnew FileName . replace (" Ġ", Ġ"_ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocument . save ( new FileName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFile ( new FileName ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ