From e17a425dfb3382310fb5863f516dacdca9f44956 Mon Sep 17 00:00:00 2001 From: leshe4ka46 Date: Sun, 19 Oct 2025 14:47:59 +0300 Subject: fuck the unipdf licencing --- unipdf/model/internal/docutil/docutil.go | 57 ++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 unipdf/model/internal/docutil/docutil.go (limited to 'unipdf/model/internal/docutil') 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 -- cgit v1.2.3