aboutsummaryrefslogtreecommitdiff
path: root/unipdf/model/internal/docutil
diff options
context:
space:
mode:
Diffstat (limited to 'unipdf/model/internal/docutil')
-rw-r--r--unipdf/model/internal/docutil/docutil.go57
1 files changed, 57 insertions, 0 deletions
diff --git a/unipdf/model/internal/docutil/docutil.go b/unipdf/model/internal/docutil/docutil.go
new file mode 100644
index 0000000..49a9d98
--- /dev/null
+++ b/unipdf/model/internal/docutil/docutil.go
@@ -0,0 +1,57 @@
+//
+// Copyright 2020 FoxyUtils ehf. All rights reserved.
+//
+// This is a commercial product and requires a license to operate.
+// A trial license can be obtained at https://unidoc.io
+//
+// DO NOT EDIT: generated by unitwist Go source code obfuscator.
+//
+// Use of this source code is governed by the UniDoc End User License Agreement
+// terms that can be accessed at https://unidoc.io/eula/
+
+package docutil ;import (_c "errors";_cb "fmt";_cf "github.com/unidoc/unipdf/v4/common";_cd "github.com/unidoc/unipdf/v4/core";);func (_ae *Catalog )GetMarkInfo ()(*_cd .PdfObjectDictionary ,bool ){_bee ,_bd :=_cd .GetDict (_ae .Object .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f"));
+return _bee ,_bd ;};func (_acf *Page )Number ()int {return _acf ._dedd };func (_dgb *Catalog )GetStructTreeRoot ()(*_cd .PdfObjectDictionary ,bool ){return _cd .GetDict (_dgb .Object .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074"));
+};func (_bb *Catalog )SetMarkInfo (mi _cd .PdfObject ){if mi ==nil {_bb .Object .Remove ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return ;};_bf :=_cd .MakeIndirectObject (mi );_bb .Object .Set ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f",_bf );
+_bb ._d .Objects =append (_bb ._d .Objects ,_bf );};func (_ede *Document )AddIndirectObject (indirect *_cd .PdfIndirectObject ){for _ ,_bc :=range _ede .Objects {if _bc ==indirect {return ;};};_ede .Objects =append (_ede .Objects ,indirect );};func (_agf *Catalog )HasMetadata ()bool {_dc :=_agf .Object .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");
+return _dc !=nil ;};func (_dgg *Catalog )SetStructTreeRoot (structTreeRoot _cd .PdfObject ){if structTreeRoot ==nil {_dgg .Object .Remove ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return ;};_be :=_cd .MakeIndirectObject (structTreeRoot );
+_dgg .Object .Set ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074",_be );_dgg ._d .Objects =append (_dgg ._d .Objects ,_be );};func (_cbf *Catalog )GetPages ()([]Page ,bool ){_f ,_fd :=_cd .GetDict (_cbf .Object .Get ("\u0050\u0061\u0067e\u0073"));
+if !_fd {return nil ,false ;};_b ,_eg :=_cd .GetArray (_f .Get ("\u004b\u0069\u0064\u0073"));if !_eg {return nil ,false ;};_da :=make ([]Page ,_b .Len ());for _fc ,_cc :=range _b .Elements (){_a ,_ag :=_cd .GetDict (_cc );if !_ag {continue ;};_da [_fc ]=Page {Object :_a ,_dedd :_fc +1,_gba :_cbf ._d };
+};return _da ,true ;};type ImageSMask struct{Image *Image ;Stream *_cd .PdfObjectStream ;};func (_ee *Catalog )SetOutputIntents (outputIntents *OutputIntents ){if _bfb :=_ee .Object .Get ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073");
+_bfb !=nil {for _g ,_ffa :=range _ee ._d .Objects {if _ffa ==_bfb {if outputIntents ._dggc ==_bfb {return ;};_ee ._d .Objects =append (_ee ._d .Objects [:_g ],_ee ._d .Objects [_g +1:]...);break ;};};};_ge :=outputIntents ._dggc ;if _ge ==nil {_ge =_cd .MakeIndirectObject (outputIntents ._ed );
+};_ee .Object .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_ge );_ee ._d .Objects =append (_ee ._d .Objects ,_ge );};func (_ceg *OutputIntents )Get (i int )(OutputIntent ,bool ){if _ceg ._ed ==nil {return OutputIntent {},false ;
+};if i >=_ceg ._ed .Len (){return OutputIntent {},false ;};_bfd :=_ceg ._ed .Get (i );_bbf ,_af :=_cd .GetIndirect (_bfd );if !_af {_ccf ,_gf :=_cd .GetDict (_bfd );return OutputIntent {Object :_ccf },_gf ;};_daa ,_cbd :=_cd .GetDict (_bbf .PdfObject );
+return OutputIntent {Object :_daa },_cbd ;};type OutputIntents struct{_ed *_cd .PdfObjectArray ;_ga *Document ;_dggc *_cd .PdfIndirectObject ;};func (_ce *Catalog )SetMetadata (data []byte )error {_cda ,_ff :=_cd .MakeStream (data ,nil );if _ff !=nil {return _ff ;
+};_cda .Set ("\u0054\u0079\u0070\u0065",_cd .MakeName ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"));_cda .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cd .MakeName ("\u0058\u004d\u004c"));_ce .Object .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_cda );
+_ce ._d .Objects =append (_ce ._d .Objects ,_cda );return nil ;};type Document struct{ID [2]string ;Version _cd .Version ;Objects []_cd .PdfObject ;Info _cd .PdfObject ;Crypt *_cd .PdfCrypt ;UseHashBasedID bool ;};func (_df *Catalog )NewOutputIntents ()*OutputIntents {return &OutputIntents {_ga :_df ._d }};
+func (_cbe Page )GetResourcesXObject ()(*_cd .PdfObjectDictionary ,bool ){_dga ,_agd :=_cbe .GetResources ();if !_agd {return nil ,false ;};return _cd .GetDict (_dga .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074"));};type Page struct{_dedd int ;Object *_cd .PdfObjectDictionary ;
+_gba *Document ;};type OutputIntent struct{Object *_cd .PdfObjectDictionary ;};func (_fa *OutputIntents )Len ()int {return _fa ._ed .Len ()};func (_accc *Content )SetData (data []byte )error {_adf ,_efac :=_cd .MakeStream (data ,_cd .NewFlateEncoder ());
+if _efac !=nil {return _efac ;};_bgc ,_bbc :=_cd .GetArray (_accc ._aff .Object .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_bbc &&_accc ._adb ==0{_accc ._aff .Object .Set ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_adf );}else {if _efac =_bgc .Set (_accc ._adb ,_adf );
+_efac !=nil {return _efac ;};};_accc ._aff ._gba .Objects =append (_accc ._aff ._gba .Objects ,_adf );return nil ;};func (_db *Catalog )GetOutputIntents ()(*OutputIntents ,bool ){_egg :=_db .Object .Get ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073");
+if _egg ==nil {return nil ,false ;};_dbc ,_bg :=_cd .GetIndirect (_egg );if !_bg {return nil ,false ;};_dd ,_gd :=_cd .GetArray (_dbc .PdfObject );if !_gd {return nil ,false ;};return &OutputIntents {_dggc :_dbc ,_ed :_dd ,_ga :_db ._d },true ;};func (_cegc Page )FindXObjectForms ()[]*_cd .PdfObjectStream {_eaf ,_eef :=_cegc .GetResourcesXObject ();
+if !_eef {return nil ;};_cfbf :=map[*_cd .PdfObjectStream ]struct{}{};var _ddb func (_baa *_cd .PdfObjectDictionary ,_afc map[*_cd .PdfObjectStream ]struct{});_ddb =func (_dcc *_cd .PdfObjectDictionary ,_dcdc map[*_cd .PdfObjectStream ]struct{}){for _ ,_afb :=range _dcc .Keys (){_fae ,_ffd :=_cd .GetStream (_dcc .Get (_afb ));
+if !_ffd {continue ;};if _ ,_cdc :=_dcdc [_fae ];_cdc {continue ;};_eafg ,_geg :=_cd .GetName (_fae .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_geg ||_eafg .String ()!="\u0046\u006f\u0072\u006d"{continue ;};_dcdc [_fae ]=struct{}{};_debb ,_geg :=_cd .GetDict (_fae .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s"));
+if !_geg {continue ;};_cfbg ,_bbd :=_cd .GetDict (_debb .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074"));if _bbd {_ddb (_cfbg ,_dcdc );};};};_ddb (_eaf ,_cfbf );var _afcc []*_cd .PdfObjectStream ;for _cegb :=range _cfbf {_afcc =append (_afcc ,_cegb );};
+return _afcc ;};func (_ffe *Document )GetPages ()([]Page ,bool ){_dab ,_dfe :=_ffe .FindCatalog ();if !_dfe {return nil ,false ;};return _dab .GetPages ();};type Image struct{Name string ;Width int ;Height int ;Colorspace _cd .PdfObjectName ;ColorComponents int ;
+BitsPerComponent int ;SMask *ImageSMask ;Stream *_cd .PdfObjectStream ;};func (_fdf *Catalog )GetMetadata ()(*_cd .PdfObjectStream ,bool ){return _cd .GetStream (_fdf .Object .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"));};func (_faf Page )GetResources ()(*_cd .PdfObjectDictionary ,bool ){return _cd .GetDict (_faf .Object .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s"));
+};func (_cbff Page )FindXObjectImages ()([]*Image ,error ){_fcc ,_fba :=_cbff .GetResourcesXObject ();if !_fba {return nil ,nil ;};var _edb []*Image ;var _daf error ;_gc :=map[*_cd .PdfObjectStream ]int {};_dedc :=map[*_cd .PdfObjectStream ]struct{}{};
+var _cfb int ;for _ ,_agfd :=range _fcc .Keys (){_bbe ,_dgc :=_cd .GetStream (_fcc .Get (_agfd ));if !_dgc {continue ;};if _ ,_cga :=_gc [_bbe ];_cga {continue ;};_dcd ,_ceb :=_cd .GetName (_bbe .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_ceb ||_dcd .String ()!="\u0049\u006d\u0061g\u0065"{continue ;
+};_deb :=Image {BitsPerComponent :8,Stream :_bbe ,Name :string (_agfd )};if _deb .Colorspace ,_daf =_gg (_bbe .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));_daf !=nil {_cf .Log .Error ("\u0045\u0072\u0072\u006f\u0072\u0020\u0064\u0065\u0074\u0065r\u006d\u0069\u006e\u0065\u0020\u0063\u006fl\u006f\u0072\u0020\u0073\u0070\u0061\u0063\u0065\u0020\u0025\u0073",_daf );
+continue ;};if _fce ,_dde :=_cd .GetIntVal (_bbe .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_dde {_deb .BitsPerComponent =_fce ;};if _fbg ,_eac :=_cd .GetIntVal (_bbe .Get ("\u0057\u0069\u0064t\u0068"));
+_eac {_deb .Width =_fbg ;};if _aaf ,_gbc :=_cd .GetIntVal (_bbe .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));_gbc {_deb .Height =_aaf ;};if _ddec ,_ad :=_cd .GetStream (_bbe .Get ("\u0053\u004d\u0061s\u006b"));_ad {_deb .SMask =&ImageSMask {Image :&_deb ,Stream :_ddec };
+_dedc [_ddec ]=struct{}{};};switch _deb .Colorspace {case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":_deb .ColorComponents =3;case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":_deb .ColorComponents =1;case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":_deb .ColorComponents =4;
+default:_deb .ColorComponents =-1;};_gc [_bbe ]=_cfb ;_edb =append (_edb ,&_deb );_cfb ++;};var _bcg []int ;for _ ,_acc :=range _edb {if _acc .SMask !=nil {_cbeg ,_afg :=_gc [_acc .SMask .Stream ];if _afg {_bcg =append (_bcg ,_cbeg );};};};_ec :=make ([]*Image ,len (_edb )-len (_bcg ));
+_cfb =0;_ega :for _eee ,_gdc :=range _edb {for _ ,_agc :=range _bcg {if _eee ==_agc {continue _ega ;};};_ec [_cfb ]=_gdc ;_cfb ++;};return _edb ,nil ;};func (_dg *Catalog )SetVersion (){_dg .Object .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_cd .MakeName (_cb .Sprintf ("\u0025\u0064\u002e%\u0064",_dg ._d .Version .Major ,_dg ._d .Version .Minor )));
+};type Catalog struct{Object *_cd .PdfObjectDictionary ;_d *Document ;};type Content struct{Stream *_cd .PdfObjectStream ;_adb int ;_aff Page ;};func (_fccg Content )GetData ()([]byte ,error ){_bea ,_bac :=_cd .NewEncoderFromStream (_fccg .Stream );if _bac !=nil {return nil ,_bac ;
+};_cegg ,_bac :=_bea .DecodeStream (_fccg .Stream );if _bac !=nil {return nil ,_bac ;};return _cegg ,nil ;};func (_bgd *Document )FindCatalog ()(*Catalog ,bool ){var _ffg *_cd .PdfObjectDictionary ;for _ ,_cfd :=range _bgd .Objects {_efa ,_ba :=_cd .GetDict (_cfd );
+if !_ba {continue ;};if _fdg ,_fg :=_cd .GetName (_efa .Get ("\u0054\u0079\u0070\u0065"));_fg &&*_fdg =="\u0043a\u0074\u0061\u006c\u006f\u0067"{_ffg =_efa ;break ;};};if _ffg ==nil {return nil ,false ;};return &Catalog {Object :_ffg ,_d :_bgd },true ;};
+func (_fde *Document )AddStream (stream *_cd .PdfObjectStream ){for _ ,_afa :=range _fde .Objects {if _afa ==stream {return ;};};_fde .Objects =append (_fde .Objects ,stream );};func (_dgd *OutputIntents )Add (oi _cd .PdfObject )error {_ef ,_aef :=oi .(*_cd .PdfObjectDictionary );
+if !_aef {return _c .New ("\u0069\u006e\u0070\u0075\u0074\u0020\u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0069\u006e\u0074\u0065\u006et\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u0061\u006e\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
+};if _ea ,_cfa :=_cd .GetStream (_ef .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065"));_cfa {_dgd ._ga .Objects =append (_dgd ._ga .Objects ,_ea );};_de ,_dbg :=oi .(*_cd .PdfIndirectObject );if !_dbg {_de =_cd .MakeIndirectObject (oi );
+};if _dgd ._ed ==nil {_dgd ._ed =_cd .MakeArray (_de );}else {_dgd ._ed .Append (_de );};_dgd ._ga .Objects =append (_dgd ._ga .Objects ,_de );return nil ;};func _gg (_bbfe _cd .PdfObject )(_cd .PdfObjectName ,error ){var _ab *_cd .PdfObjectName ;var _aa *_cd .PdfObjectArray ;
+if _cfde ,_agg :=_bbfe .(*_cd .PdfIndirectObject );_agg {if _gfa ,_fdd :=_cfde .PdfObject .(*_cd .PdfObjectArray );_fdd {_aa =_gfa ;}else if _fcb ,_ggb :=_cfde .PdfObject .(*_cd .PdfObjectName );_ggb {_ab =_fcb ;};}else if _dff ,_gde :=_bbfe .(*_cd .PdfObjectArray );
+_gde {_aa =_dff ;}else if _ca ,_ded :=_bbfe .(*_cd .PdfObjectName );_ded {_ab =_ca ;};if _ab !=nil {switch *_ab {case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079","\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B","\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":return *_ab ,nil ;
+case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_ab ,nil ;};};if _aa !=nil &&_aa .Len ()> 0{if _bde ,_aga :=_aa .Get (0).(*_cd .PdfObjectName );_aga {switch *_bde {case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079","\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B","\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _aa .Len ()==1{return *_bde ,nil ;
+};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_bde ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_bde ,nil ;
+case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_bde ,nil ;};};};return "",nil ;};func (_fafb Page )GetContents ()([]Content ,bool ){_eb ,_bcd :=_cd .GetArray (_fafb .Object .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));
+if !_bcd {_bff ,_gfc :=_cd .GetStream (_fafb .Object .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_gfc {return nil ,false ;};return []Content {{Stream :_bff ,_aff :_fafb ,_adb :0}},true ;};_aae :=make ([]Content ,_eb .Len ());for _cg ,_abg :=range _eb .Elements (){_dda ,_gea :=_cd .GetStream (_abg );
+if !_gea {continue ;};_aae [_cg ]=Content {Stream :_dda ,_aff :_fafb ,_adb :_cg };};return _aae ,true ;}; \ No newline at end of file