//---------------------------------------------------------------- ----------------------- Ċ // ĠCopyright Ġ( c ) Ġ 2 0 0 1 - 2 0 1 8 Ġby ĠPDF Tr on ĠSystems ĠInc . ĠAll ĠRights ĠReserved . Ċ // ĠConsult Ġlegal . txt Ġregarding Ġlegal Ġand Ġlicense Ġinformation . Ċ //---------------------------------------------------------------- ----------------------- Ċ Ċ package Ġcom . pdf tron . android . pdf net sdk samples . samples Ċ Ċ import Ġjava . io . File Ċ import Ġjava . util . ArrayList Ċ Ċ import Ġcom . pdf tron . fdf . F DF Doc Ċ import Ġcom . pdf tron . fdf . FD FF ield Ċ import Ġcom . pdf tron . fdf . FD FF ield Iterator Ċ import Ġcom . pdf tron . pdf . Field Ċ import Ġcom . pdf tron . pdf . Field Iterator Ċ import Ġcom . pdf tron . pdf . PDF Doc Ċ import Ġcom . pdf tron . sdf . SD F Doc Ċ Ċ import Ġcom . pdf tron . android . pdf net sdk samples . Output Listener Ċ import Ġcom . pdf tron . android . pdf net sdk samples . PDF Net Sample Ċ import Ġcom . pdf tron . android . pdf net sdk samples . R Ċ import Ġcom . pdf tron . android . pdf net sdk samples . util . Utils Ċ Ċ class ĠF DF Test Ġ: ĠPDF Net Sample () Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠsetTitle ( R . string . sample _ fdf _ title ) ĊĠĠĠĠĠĠĠ Ġset Description ( R . string . sample _ fdf _ description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrun ( output Listener : ĠOutput Listener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . run ( output Listener ) ĊĠĠĠĠĠĠĠ Ġm Output Listener Ġ= Ġoutput Listener ĊĠĠĠĠĠĠĠ Ġm FileList . clear () ĊĠĠĠĠĠĠĠ Ġprint Header ( output Listener !! ) ĊĊĊĠĠĠĠĠĠĠ Ġ// ĠExample Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ// ĠIterate Ġover Ġall Ġform Ġfields Ġin Ġthe Ġdocument . ĠDisplay Ġall Ġfield Ġnames . ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= ĠPDF Doc ( Utils . get Asset TempFile ( PDF Net Sample . Companion . INPUT _ PATH Ġ+ Ġ" form 1 . pdf ") !!. absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . init Security Handler () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitr Ġ= Ġdoc . field Iterator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( itr . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= Ġitr . next () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Field Ġname : Ġ" Ġ+ Ġcurrent !!. getName ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Field Ġpartial Ġname : Ġ" Ġ+ Ġcurrent . get Partial Name ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. print (" Field Ġtype : Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġcurrent . getType () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠField . e _ button Ġ-> Ġm Output Listener !!. println (" Button ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠField . e _ text Ġ-> Ġm Output Listener !!. println (" Text ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠField . e _ choice Ġ-> Ġm Output Listener !!. println (" Choice ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠField . e _ signature Ġ-> Ġm Output Listener !!. println (" Signature ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" ------------------------------ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Done .") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠExample Ġ 2 ) ĠImport ĠX F DF Ġinto ĠF DF , Ġthen Ġmerge Ġdata Ġfrom ĠF DF Ġinto ĠPDF ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠX F DF Ġto ĠF DF ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġform Ġfields ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Import Ġform Ġfield Ġdata Ġfrom ĠX F DF Ġto ĠF DF .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf df _ doc 1 Ġ= ĠF DF Doc . createFrom XF DF ( Utils . get Asset TempFile ( PDF Net Sample . Companion . INPUT _ PATH Ġ+ Ġ" form 1 _ data . xf df ") !!. absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf df _ doc 1 . save ( Utils . create External File (" form 1 _ data . fdf "). absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FileList . add ( File ( fdf _ doc 1 . sdf Doc . fileName ). name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġannotations ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Import Ġannotations Ġfrom ĠX F DF Ġto ĠF DF .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf df _ doc 2 Ġ= ĠF DF Doc . createFrom XF DF ( Utils . get Asset TempFile ( PDF Net Sample . Companion . INPUT _ PATH Ġ+ Ġ" form 1 _ annot s . xf df ") !!. absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf df _ doc 2 . save ( Utils . create External File (" form 1 _ annot s . fdf "). absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FileList . add ( File ( fdf _ doc 2 . sdf Doc . fileName ). name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠF DF Ġto ĠPDF ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġform Ġfields ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Merge Ġform Ġfield Ġdata Ġfrom ĠF DF .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= ĠPDF Doc ( Utils . get Asset TempFile ( PDF Net Sample . Companion . INPUT _ PATH Ġ+ Ġ" form 1 . pdf ") !!. absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . init Security Handler () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . fdf Merge ( fdf _ doc 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTo Ġuse ĠPDF Net Ġform Ġfield Ġappearance Ġgeneration Ġinstead Ġof Ġrelying Ġon ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAc ro bat , Ġuncomment Ġthe Ġfollowing Ġtwo Ġlines : ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// doc . refresh Field Ap pear ances (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// doc . get Ac ro Form (). put Bool (" Need Ap pear ances ", Ġfalse ); ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . save ( Utils . create External File (" form 1 _ filled . pdf "). absolute Path , ĠS DF Doc . Save Mode . LINEAR IZED , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FileList . add ( File ( doc . fileName ). name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġannotations ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Merge Ġannotations Ġfrom ĠF DF .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . fdf Merge ( fdf _ doc 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . save ( Utils . create External File (" form 1 _ filled _ with _ annot s . pdf "). absolute Path , ĠS DF Doc . Save Mode . LINEAR IZED , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FileList . add ( File ( doc . fileName ). name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Done .") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠExample Ġ 3 ) ĠExtract Ġdata Ġfrom ĠPDF Ġto ĠF DF , Ġthen Ġexport ĠF DF Ġas ĠX F DF ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPDF Ġto ĠF DF ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġin _ doc Ġ= ĠPDF Doc ( Utils . create External File (" form 1 _ filled _ with _ annot s . pdf "). absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin _ doc . init Security Handler () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġform Ġfields Ġonly ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Extract Ġform Ġfields Ġdata Ġto ĠF DF .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdoc _ fields Ġ= Ġin _ doc . fdf Extract ( PDF Doc . e _ forms _ only ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc _ fields . pdf FileName Ġ= ĠUtils . create External File (" form 1 _ filled _ with _ annot s . pdf "). absolute Path ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc _ fields . save ( Utils . create External File (" form 1 _ filled _ data . fdf "). absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FileList . add ( File ( doc _ fields . sdf Doc . fileName ). name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġannotations Ġonly ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Extract Ġannotations Ġto ĠF DF .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdoc _ annot s Ġ= Ġin _ doc . fdf Extract ( PDF Doc . e _ annot s _ only ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc _ annot s . pdf FileName Ġ= ĠUtils . create External File (" form 1 _ filled _ with _ annot s . pdf "). absolute Path ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc _ annot s . save ( Utils . create External File (" form 1 _ filled _ annot . fdf "). absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FileList . add ( File ( doc _ annot s . sdf Doc . fileName ). name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġboth Ġform Ġfields Ġand Ġannotations ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Extract Ġboth Ġform Ġfields Ġand Ġannotations Ġto ĠF DF .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdoc _ both Ġ= Ġin _ doc . fdf Extract ( PDF Doc . e _ both ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc _ both . pdf FileName Ġ= ĠUtils . create External File (" form 1 _ filled _ with _ annot s . pdf "). absolute Path ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc _ both . save ( Utils . create External File (" form 1 _ filled _ both . fdf "). absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FileList . add ( File ( doc _ both . sdf Doc . fileName ). name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠF DF Ġto ĠX F DF ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġform Ġfields ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Export Ġform Ġfield Ġdata Ġfrom ĠF DF Ġto ĠX F DF .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc _ fields . save As XF DF ( Utils . create External File (" form 1 _ filled _ data . xf df "). absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FileList . add ( File ( doc _ fields . sdf Doc . fileName ). name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġannotations ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Export Ġannotations Ġfrom ĠF DF Ġto ĠX F DF .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc _ annot s . save As XF DF ( Utils . create External File (" form 1 _ filled _ annot . xf df "). absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FileList . add ( File ( doc _ annot s . sdf Doc . fileName ). name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġboth Ġform Ġfields Ġand Ġannotations ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Export Ġboth Ġform Ġfields Ġand Ġannotations Ġfrom ĠF DF Ġto ĠX F DF .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc _ both . save As XF DF ( Utils . create External File (" form 1 _ filled _ both . xf df "). absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FileList . add ( File ( doc _ both . sdf Doc . fileName ). name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġin _ doc . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Done .") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠExample Ġ 4 ) ĠMerge / Extract ĠX F DF Ġinto / from ĠPDF ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMerge ĠX F DF Ġfrom Ġstring ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġin _ doc Ġ= ĠPDF Doc ( Utils . get Asset TempFile ( PDF Net Sample . Companion . INPUT _ PATH Ġ+ Ġ" number ed . pdf ") !!. absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin _ doc . init Security Handler () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Merge ĠX F DF Ġstring Ġinto ĠPDF .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstr Ġ= Ġ"<? xml Ġversion =\" 1 . 0 \" Ġencoding =\" UTF - 8 \" Ġ? >< xf df Ġxmlns =\" http :// ns . adobe . com / xf df \" Ġxml : space =\" preserve \">< square Ġsubject =\" Rectangle \" Ġpage =\" 0 \" Ġname =\" cf 4 d 2 e 5 8 - e 9 c 5 - 2 a 5 8 - 5 b 4 d - 9 b 4 b 1 a 3 3 0 e 4 5 \" Ġtitle =\" user \" Ġcreation date =\" D : 2 0 1 2 0 8 2 7 1 1 2 3 2 6 - 0 7 ' 0 0 ' \" Ġdate =\" D : 2 0 1 2 0 8 2 7 1 1 2 3 2 6 - 0 7 ' 0 0 ' \" Ġrect =\" 2 2 7 . 7 8 1 4 2 0 7 6 5 0 2 7 3 , 5 9 7 . 6 1 7 4 8 6 3 3 8 7 9 7 8 , 4 3 7 . 0 7 1 0 3 8 2 5 1 3 6 6 0 8 , 7 0 5 . 0 4 9 1 8 0 3 2 7 8 6 8 8 \" Ġcolor =\" # 0 0 0 0 0 0 \" Ġinterior - color =\" # FFFF 0 0 \" Ġflags =\" print \" Ġwidth =\" 1 \">< popup Ġflags =\" print , no zoom , nor ot ate \" Ġopen =\" no \" Ġpage =\" 0 \" Ġrect =\" 0 , 7 9 2 , 0 , 7 9 2 \" Ġ/></ square ></ xf df >" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf doc Ġ= ĠF DF Doc . createFrom XF DF ( str ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin _ doc . fdf Merge ( f doc ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin _ doc . save ( Utils . create External File (" number ed _ modified . pdf "). absolute Path , ĠS DF Doc . Save Mode . LINEAR IZED , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FileList . add ( File ( in _ doc . fileName ). name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Merge Ġcomplete .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠExtract ĠX F DF Ġas Ġstring ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Extract ĠX F DF Ġas Ġa Ġstring .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf doc _ new Ġ= Ġin _ doc . fdf Extract ( PDF Doc . e _ both ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠX F DF _ str Ġ= Ġf doc _ new . save As XF DF () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Extract ed ĠX F DF : Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println ( XF DF _ str ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin _ doc . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Extract Ġcomplete .") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠExample Ġ 5 ) ĠRead ĠF DF Ġfiles Ġdirectly ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= ĠF DF Doc ( Utils . create External File (" form 1 _ filled _ data . fdf "). absolute Path ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitr Ġ= Ġdoc . field Iterator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( itr . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= Ġitr . next () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Field Ġname : Ġ" Ġ+ Ġcurrent ?. getName ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Field Ġpartial Ġname : Ġ" Ġ+ Ġcurrent ?. get Partial Name ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" ------------------------------ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Done .") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠExample Ġ 6 ) ĠDirect Ġgeneration Ġof ĠF DF . ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= ĠF DF Doc () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCreate Ġnew Ġfields Ġ( i . e . Ġkey / value Ġpairs ). ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . field Create (" Company ", ĠField . e _ text , Ġ" PDF Tr on ĠSystems ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . field Create (" First ĠName ", ĠField . e _ text , Ġ" John ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . field Create (" Last ĠName ", ĠField . e _ text , Ġ" Do e ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ... ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdoc . set Pdf FileName (" my doc . pdf "); ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . save ( Utils . create External File (" sample _ output . fdf "). absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FileList . add ( File ( doc . sdf Doc . fileName ). name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Output Listener !!. println (" Done . ĠResults Ġsaved Ġin Ġsample _ output . fdf ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( file Ġin Ġm FileList ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ToFile List ( file ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprint Footer ( output Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Output Listener : ĠOutput Listener ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm FileList Ġ= ĠArrayList < String >() ĊĠĠĠ Ġ} Ċ Ċ }