package Ġpl . be one . prom ena . transformer . page extractor . pdf box . util Ċ Ċ import Ġio . kot lint est . matchers . collections . should Have Size Ċ import Ġio . kot lint est . matchers . with Cl ue Ċ import Ġio . kot lint est . shouldBe Ċ import Ġio . mock k . mock k Ċ import Ġorg . apache . pdf box . io . Memory Usage Setting Ċ import Ġorg . apache . pdf box . pd model . P DD ocument Ċ import Ġorg . apache . pdf box . text . PDF Text Strip per Ċ import Ġpl . be one . prom ena . transformer . application model . medi atype . MediaType Constants . APPLICATION _ PDF Ċ import Ġpl . be one . prom ena . transformer . barcode detector . metadata . Barcode Detector Metadata Getter Ċ import Ġpl . be one . prom ena . transformer . contract . communication . Communication Parameters Ċ import Ġpl . be one . prom ena . transformer . contract . communication . Communication Writable Data Creator Ċ import Ġpl . be one . prom ena . transformer . contract . data . single Data Descriptor Ċ import Ġpl . be one . prom ena . transformer . contract . model . Metadata Ċ import Ġpl . be one . prom ena . transformer . contract . model . Parameters Ċ import Ġpl . be one . prom ena . transformer . contract . model . data . Writable Data Ċ import Ġpl . be one . prom ena . transformer . internal . model . data . memory . empty Memory Writable Data Ċ import Ġpl . be one . prom ena . transformer . internal . model . data . memory . to Memory Data Ċ import Ġpl . be one . prom ena . transformer . internal . model . metadata . empty Metadata Ċ import Ġpl . be one . prom ena . transformer . page extractor . pdf box . Pdf Box Page Extractor Transformer Ċ import Ġpl . be one . prom ena . transformer . page extractor . pdf box . Pdf Box Page Extractor Transformer Default Parameters Ċ import Ġpl . be one . prom ena . transformer . page extractor . pdf box . Pdf Box Page Extractor Transformer Settings Ċ import Ġpl . be one . prom ena . transformer . page extractor . pdf box . extension . to P DD ocument Ċ Ċ internal Ġdata Ġclass ĠText With Metadata Assert ( ĊĠĠĠ Ġval Ġtexts : ĠList < String >, ĊĠĠĠ Ġval Ġmetadata : ĠMetadata Ġ= Ġempty Metadata () Ċ ) Ċ Ċ private Ġobject ĠMemory Communication Writable Data Creator Ġ: ĠCommunication Writable Data Creator Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate ( communication Parameters : ĠCommunication Parameters ): ĠWrit able Data Ġ= Ġempty Memory Writable Data () Ċ } Ċ Ċ internal Ġfun Ġcreate Pdf Box Page Extractor Transformer ( ĊĠĠĠ Ġsettings : ĠPdf Box Page Extractor Transformer Settings Ġ= ĠPdf Box Page Extractor Transformer Settings ( ĊĠĠĠĠĠĠĠ ĠMemory Usage Setting . setup Main Memory Only () ĊĠĠĠ Ġ), ĊĠĠĠ Ġdefault Parameters : ĠPdf Box Page Extractor Transformer Default Parameters Ġ= ĠPdf Box Page Extractor Transformer Default Parameters ( ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ), ĊĠĠĠ Ġcommunication Parameters : ĠCommunication Parameters Ġ= Ġmock k (), ĊĠĠĠ Ġcommunication Writable Data Creator : ĠCommunication Writable Data Creator Ġ= ĠMemory Communication Writable Data Creator Ċ ): ĠPdf Box Page Extractor Transformer Ġ= ĊĠĠĠ ĠPdf Box Page Extractor Transformer ( ĊĠĠĠĠĠĠĠ Ġsettings , ĊĠĠĠĠĠĠĠ Ġdefault Parameters , ĊĠĠĠĠĠĠĠ Ġcommunication Parameters , ĊĠĠĠĠĠĠĠ Ġcommunication Writable Data Creator ĊĠĠĠ Ġ) Ċ Ċ private Ġval Ġdata Ġ= ĠgetResource As Bytes ("/ document / test . pdf "). to Memory Data () Ċ Ċ internal Ġfun Ġtest ( ĊĠĠĠ Ġparameters : ĠParameters , ĊĠĠĠ Ġtext With Metadata Assert s : ĠList < Text With Metadata Assert > Ġ= Ġempty List (), ĊĠĠĠ Ġmetadata : ĠMetadata Ġ= Ġempty Metadata (), ĊĠĠĠ Ġtransformer : ĠPdf Box Page Extractor Transformer Ġ= Ġcreate Pdf Box Page Extractor Transformer () Ċ ) Ġ{ ĊĠĠĠ Ġwith ( ĊĠĠĠĠĠĠĠ Ġtransformer . transform ( single Data Descriptor ( data , ĠAP PLICATION _ PDF , Ġmetadata ), ĠAP PLICATION _ PDF , Ġparameters ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Cl ue (" Trans formed Ġdata Ġshould Ġcontain Ġ< ${ text With Metadata Assert s . size }> Ġelement ") Ġ{ Ġdescriptors Ġshould Have Size Ġtext With Metadata Assert s . size Ġ} ĊĊĠĠĠĠĠĠĠ Ġdescriptors . zip ( text With Metadata Assert s ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġ( single Trans formed Data Descriptor , Ġtext With Metadata Assert ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP DD ocument . load ( single Trans formed Data Descriptor . data . getInputStream ()). use Ġ{ Ġpd Document Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpd Document . read Pages () ĠshouldBe Ġtext With Metadata Assert . texts ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBar code Detector Metadata Getter ( single Trans formed Data Descriptor . metadata ). get Bar codes () ĠshouldBe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBar code Detector Metadata Getter ( text With Metadata Assert . metadata ). get Bar codes () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNoSuch ElementException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Trans formed Data Descriptor . metadata ĠshouldBe Ġtext With Metadata Assert . metadata ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠP DD ocument . read Pages (): ĠList < String > Ġ= ĊĠĠĠ Ġ( 0 Ġuntil ĠnumberOf Pages ) ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġpage Ġ-> Ġread Text ( page ) Ġ} Ċ Ċ private Ġfun ĠP DD ocument . read Text ( page : ĠInt ): ĠString Ġ= ĊĠĠĠ Ġget Page ( page ). to P DD ocument (). use Ġ{ ĠPDF Text Strip per (). getText ( it ). trim () Ġ}