diff options
| author | leshe4ka46 <alex9102naid1@ya.ru> | 2025-10-19 14:47:59 +0300 |
|---|---|---|
| committer | leshe4ka46 <alex9102naid1@ya.ru> | 2025-10-19 14:47:59 +0300 |
| commit | e17a425dfb3382310fb5863f516dacdca9f44956 (patch) | |
| tree | 7babb3048d0eb20aa1e68e9b29c2acfa794ab96f /unipdf/model/mdp/mdp.go | |
| parent | 091963a50c3bb2926f559f01c49e8f5bd03d2bfd (diff) | |
fuck the unipdf licencing
Diffstat (limited to 'unipdf/model/mdp/mdp.go')
| -rw-r--r-- | unipdf/model/mdp/mdp.go | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/unipdf/model/mdp/mdp.go b/unipdf/model/mdp/mdp.go new file mode 100644 index 0000000..9903518 --- /dev/null +++ b/unipdf/model/mdp/mdp.go @@ -0,0 +1,98 @@ +// +// 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 mdp ;import (_f "errors";_gc "fmt";_fg "github.com/unidoc/unipdf/v4/core";);func (_cdg *defaultDiffPolicy )compareFields (_cc int ,_gb ,_cb []_fg .PdfObject )error {_aea :=make (map[int64 ]*_fg .PdfObjectDictionary );for _ ,_aeag :=range _gb {_eg ,_egf :=_fg .GetIndirect (_aeag ); +if !_egf {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006cd\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");};_ag ,_egf :=_fg .GetDict (_eg .PdfObject );if !_egf {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0061\u006e\u006e\u006ft\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065"); +};_aea [_eg .ObjectNumber ]=_ag ;};for _ ,_abc :=range _cb {_gbb ,_bag :=_fg .GetIndirect (_abc );if !_bag {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006cd\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065"); +};_bge ,_bag :=_fg .GetDict (_gbb .PdfObject );if !_bag {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006cd\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");};T :=_bge .Get ("\u0054"); +if _ ,_cgd :=_cdg ._gcb [_gbb .ObjectNumber ];_cgd {switch _cdg ._c {case NoRestrictions ,FillForms ,FillFormsAndAnnots :_cdg ._e .addWarningWithDescription (_cc ,_gc .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0063\u0068\u0061ng\u0065\u0064",T )); +default:_cdg ._e .addErrorWithDescription (_cc ,_gc .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0063\u0068\u0061ng\u0065\u0064",T ));};};if _ ,_cgff :=_aea [_gbb .ObjectNumber ];!_cgff {switch _cdg ._c {case NoRestrictions ,FillForms ,FillFormsAndAnnots :_cdg ._e .addWarningWithDescription (_cc ,_gc .Sprintf ("\u0046i\u0065l\u0064\u0020\u0025\u0073\u0020w\u0061\u0073 \u0061\u0064\u0064\u0065\u0064",_bge .Get ("\u0054"))); +default:_cdg ._e .addErrorWithDescription (_cc ,_gc .Sprintf ("\u0046i\u0065l\u0064\u0020\u0025\u0073\u0020w\u0061\u0073 \u0061\u0064\u0064\u0065\u0064",_bge .Get ("\u0054")));};}else {delete (_aea ,_gbb .ObjectNumber );if _ ,_ef :=_cdg ._gcb [_gbb .ObjectNumber ]; +_ef {switch _cdg ._c {case NoRestrictions ,FillForms ,FillFormsAndAnnots :_cdg ._e .addWarningWithDescription (_cc ,_gc .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0063\u0068\u0061ng\u0065\u0064",_bge .Get ("\u0054")));default:_cdg ._e .addErrorWithDescription (_cc ,_gc .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0063\u0068\u0061ng\u0065\u0064",_bge .Get ("\u0054"))); +};};};if FT ,_cdf :=_fg .GetNameVal (_bge .Get ("\u0046\u0054"));_cdf {if FT =="\u0053\u0069\u0067"{if _dg ,_dag :=_fg .GetIndirect (_bge .Get ("\u0056"));_dag {if _ ,_gcg :=_cdg ._gcb [_dg .ObjectNumber ];_gcg {switch _cdg ._c {case NoRestrictions ,FillForms ,FillFormsAndAnnots :_cdg ._e .addWarningWithDescription (_cc ,_gc .Sprintf ("\u0053\u0069\u0067na\u0074\u0075\u0072\u0065\u0020\u0066\u006f\u0072\u0020%\u0073 \u0066i\u0065l\u0064\u0020\u0077\u0061\u0073\u0020\u0063\u0068\u0061\u006e\u0067\u0065\u0064",T )); +default:_cdg ._e .addErrorWithDescription (_cc ,_gc .Sprintf ("\u0053\u0069\u0067na\u0074\u0075\u0072\u0065\u0020\u0066\u006f\u0072\u0020%\u0073 \u0066i\u0065l\u0064\u0020\u0077\u0061\u0073\u0020\u0063\u0068\u0061\u006e\u0067\u0065\u0064",T ));};};};}; +};};for _ ,_daa :=range _aea {switch _cdg ._c {case NoRestrictions :_cdg ._e .addWarningWithDescription (_cc ,_gc .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0072\u0065\u006dov\u0065\u0064",_daa .Get ("\u0054")));default:_cdg ._e .addErrorWithDescription (_cc ,_gc .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0072\u0065\u006dov\u0065\u0064",_daa .Get ("\u0054"))); +};};return nil ;}; + +// ReviewFile implementation of DiffPolicy interface +// The default policy only checks the next types of objects: +// Page, Pages (container for page objects), Annot, Annots (container for annotation objects), Field. +// It checks adding, removing and modifying objects of these types. +func (_a *defaultDiffPolicy )ReviewFile (oldParser *_fg .PdfParser ,newParser *_fg .PdfParser ,params *MDPParameters )(*DiffResults ,error ){if oldParser .GetRevisionNumber ()> newParser .GetRevisionNumber (){return nil ,_f .New ("\u006f\u006c\u0064\u0020\u0072\u0065\u0076\u0069\u0073\u0069\u006f\u006e\u0020\u0067\u0072\u0065\u0061\u0074\u0065\u0072\u0020\u0074\u0068\u0061n\u0020\u006e\u0065\u0077\u0020r\u0065\u0076i\u0073\u0069\u006f\u006e"); +};if oldParser .GetRevisionNumber ()==newParser .GetRevisionNumber (){if oldParser !=newParser {return nil ,_f .New ("\u0073\u0061m\u0065\u0020\u0072\u0065v\u0069\u0073i\u006f\u006e\u0073\u002c\u0020\u0062\u0075\u0074 \u0064\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0074\u0020\u0070\u0061r\u0073\u0065\u0072\u0073"); +};return &DiffResults {},nil ;};if params ==nil {_a ._c =NoRestrictions ;}else {_a ._c =params .DocMDPLevel ;};_cf :=&DiffResults {};for _cg :=oldParser .GetRevisionNumber ()+1;_cg <=newParser .GetRevisionNumber ();_cg ++{_ad ,_ga :=newParser .GetRevision (_cg -1); +if _ga !=nil {return nil ,_ga ;};_cgf ,_ga :=newParser .GetRevision (_cg );if _ga !=nil {return nil ,_ga ;};_d ,_ga :=_a .compareRevisions (_ad ,_cgf );if _ga !=nil {return nil ,_ga ;};_cf .Warnings =append (_cf .Warnings ,_d .Warnings ...);_cf .Errors =append (_cf .Errors ,_d .Errors ...); +};return _cf ,nil ;};func (_cbe *defaultDiffPolicy )compareAnnots (_fga int ,_acd ,_feg []_fg .PdfObject )error {_fa :=make (map[int64 ]*_fg .PdfObjectDictionary );for _ ,_cba :=range _acd {_ccc ,_egfe :=_fg .GetIndirect (_cba );if !_egfe {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0061\u006e\u006e\u006ft\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065"); +};_deg ,_egfe :=_fg .GetDict (_ccc .PdfObject );if !_egfe {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0061\u006e\u006e\u006ft\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");};_fa [_ccc .ObjectNumber ]=_deg ; +};for _ ,_aa :=range _feg {_bab ,_cbeg :=_fg .GetIndirect (_aa );if !_cbeg {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0061\u006e\u006e\u006ft\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");};_eea ,_cbeg :=_fg .GetDict (_bab .PdfObject ); +if !_cbeg {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0061\u006e\u006e\u006ft\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");};_gdc ,_ :=_fg .GetStringVal (_eea .Get ("\u0054"));_cca ,_ :=_fg .GetNameVal (_eea .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")); +if _ ,_dd :=_fa [_bab .ObjectNumber ];!_dd {switch _cbe ._c {case NoRestrictions ,FillFormsAndAnnots :_cbe ._e .addWarningWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0020\u0025\u0073\u0020\u0077\u0061\u0073\u0020\u0061d\u0064\u0065\u0064",_cca ,_gdc )); +default:_gab ,_bd :=_fg .GetDict (_bab .PdfObject );if !_bd {return _f .New ("u\u006ed\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0061n\u006e\u006f\u0074\u0061ti\u006f\u006e");};_faa ,_bd :=_fg .GetNameVal (_gab .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")); +if !_bd {return _f .New ("\u0075\u006e\u0064\u0065\u0066\u0069\u006e\u0065\u0064\u0020a\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0027\u0073\u0020\u0073\u0075\u0062\u0074\u0079\u0070\u0065");};if _faa =="\u0057\u0069\u0064\u0067\u0065\u0074"{switch _cbe ._c {case NoRestrictions ,FillFormsAndAnnots ,FillForms :_cbe ._e .addWarningWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0020\u0025\u0073\u0020\u0077\u0061\u0073\u0020\u0061d\u0064\u0065\u0064",_cca ,_gdc )); +default:_cbe ._e .addErrorWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0020\u0025\u0073\u0020\u0077\u0061\u0073\u0020\u0061d\u0064\u0065\u0064",_cca ,_gdc ));};}else {_cbe ._e .addErrorWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0020\u0025\u0073\u0020\u0077\u0061\u0073\u0020\u0061d\u0064\u0065\u0064",_cca ,_gdc )); +};};}else {delete (_fa ,_bab .ObjectNumber );if _bgb ,_ece :=_cbe ._gcb [_bab .ObjectNumber ];_ece {switch _cbe ._c {case NoRestrictions ,FillFormsAndAnnots :_cbe ._e .addWarningWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0063\u0068\u0061\u006eg\u0065\u0064",_cca ,_gdc )); +default:_cbc ,_aed :=_fg .GetIndirect (_bgb );if !_aed {return _f .New ("u\u006ed\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0061n\u006e\u006f\u0074\u0061ti\u006f\u006e");};_dbag ,_aed :=_fg .GetDict (_cbc .PdfObject );if !_aed {return _f .New ("u\u006ed\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0061n\u006e\u006f\u0074\u0061ti\u006f\u006e"); +};_gbc ,_aed :=_fg .GetNameVal (_dbag .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_aed {return _f .New ("\u0075\u006e\u0064\u0065\u0066\u0069\u006e\u0065\u0064\u0020a\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0027\u0073\u0020\u0073\u0075\u0062\u0074\u0079\u0070\u0065"); +};if _gbc =="\u0057\u0069\u0064\u0067\u0065\u0074"{switch _cbe ._c {case NoRestrictions ,FillFormsAndAnnots ,FillForms :_cbe ._e .addWarningWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0063\u0068\u0061\u006eg\u0065\u0064",_cca ,_gdc )); +default:_cbe ._e .addErrorWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0063\u0068\u0061\u006eg\u0065\u0064",_cca ,_gdc ));};}else {_cbe ._e .addErrorWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0063\u0068\u0061\u006eg\u0065\u0064",_cca ,_gdc )); +};};};};};for _ ,_ff :=range _fa {_abe ,_ :=_fg .GetStringVal (_ff .Get ("\u0054"));_aac ,_ :=_fg .GetNameVal (_ff .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));switch _cbe ._c {case NoRestrictions ,FillFormsAndAnnots :_cbe ._e .addWarningWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0072\u0065\u006d\u006fv\u0065\u0064",_aac ,_abe )); +default:_cbe ._e .addErrorWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0072\u0065\u006d\u006fv\u0065\u0064",_aac ,_abe ));};};return nil ;}; + +// DiffResult describes the warning or the error for the DiffPolicy results. +type DiffResult struct{Revision int ;Description string ;};func (_egce *defaultDiffPolicy )comparePages (_eb int ,_ec ,_fca *_fg .PdfIndirectObject )error {if _ ,_gaf :=_egce ._gcb [_fca .ObjectNumber ];_gaf {_egce ._e .addErrorWithDescription (_eb ,"\u0050a\u0067e\u0073\u0020\u0077\u0065\u0072e\u0020\u0063h\u0061\u006e\u0067\u0065\u0064"); +};_bgf ,_ccf :=_fg .GetDict (_fca .PdfObject );_fb ,_dga :=_fg .GetDict (_ec .PdfObject );if !_ccf ||!_dga {return _f .New ("\u0075n\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0050\u0061g\u0065\u0073\u0027\u0020\u006f\u0062\u006a\u0065\u0063\u0074"); +};_fgc ,_ccf :=_fg .GetArray (_bgf .Get ("\u004b\u0069\u0064\u0073"));_gbg ,_dga :=_fg .GetArray (_fb .Get ("\u004b\u0069\u0064\u0073"));if !_ccf ||!_dga {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0050\u0061\u0067\u0065s\u0027 \u0064\u0069\u0063\u0074\u0069\u006f\u006ea\u0072\u0079"); +};_dgg :=_fgc .Len ();if _dgg > _gbg .Len (){_dgg =_gbg .Len ();};for _agca :=0;_agca < _dgg ;_agca ++{_gfe ,_ded :=_fg .GetIndirect (_fg .ResolveReference (_gbg .Get (_agca )));_df ,_agf :=_fg .GetIndirect (_fg .ResolveReference (_fgc .Get (_agca ))); +if !_ded ||!_agf {return _f .New ("\u0075\u006e\u0065\u0078pe\u0063\u0074\u0065\u0064\u0020\u0070\u0061\u0067\u0065\u0020\u006f\u0062\u006a\u0065c\u0074");};if _gfe .ObjectNumber !=_df .ObjectNumber {_egce ._e .addErrorWithDescription (_eb ,_gc .Sprintf ("p\u0061\u0067\u0065\u0020#%\u0064 \u0077\u0061\u0073\u0020\u0072e\u0070\u006c\u0061\u0063\u0065\u0064",_agca )); +};_dba ,_ded :=_fg .GetDict (_df );_fbb ,_agf :=_fg .GetDict (_gfe );if !_ded ||!_agf {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0070\u0061\u0067\u0065'\u0073 \u0064\u0069\u0063\u0074\u0069\u006f\u006ea\u0072\u0079"); +};_ecb ,_fcf :=_cce (_dba .Get ("\u0041\u006e\u006e\u006f\u0074\u0073"));if _fcf !=nil {return _fcf ;};_cbf ,_fcf :=_cce (_fbb .Get ("\u0041\u006e\u006e\u006f\u0074\u0073"));if _fcf !=nil {return _fcf ;};if _eae :=_egce .compareAnnots (_eb ,_cbf ,_ecb ); +_eae !=nil {return _eae ;};};for _aba :=_dgg +1;_aba <=_fgc .Len ();_aba ++{_egce ._e .addErrorWithDescription (_eb ,_gc .Sprintf ("\u0070a\u0067e\u0020\u0023\u0025\u0064\u0020w\u0061\u0073 \u0061\u0064\u0064\u0065\u0064",_aba ));};for _bgd :=_dgg +1;_bgd <=_gbg .Len (); +_bgd ++{_egce ._e .addErrorWithDescription (_eb ,_gc .Sprintf ("p\u0061g\u0065\u0020\u0023\u0025\u0064\u0020\u0077\u0061s\u0020\u0072\u0065\u006dov\u0065\u0064",_bgd ));};return nil ;};func (_eaf *DiffResults )addWarning (_adb *DiffResult ){if _eaf .Warnings ==nil {_eaf .Warnings =make ([]*DiffResult ,0); +};_eaf .Warnings =append (_eaf .Warnings ,_adb );};func (_afd *DiffResults )addWarningWithDescription (_ddf int ,_cae string ){if _afd .Warnings ==nil {_afd .Warnings =make ([]*DiffResult ,0);};_afd .Warnings =append (_afd .Warnings ,&DiffResult {Revision :_ddf ,Description :_cae }); +}; + +// DiffResults describes the results of the DiffPolicy. +type DiffResults struct{Warnings []*DiffResult ;Errors []*DiffResult ;};func (_aegd *DiffResults )addErrorWithDescription (_bdb int ,_aec string ){if _aegd .Errors ==nil {_aegd .Errors =make ([]*DiffResult ,0);};_aegd .Errors =append (_aegd .Errors ,&DiffResult {Revision :_bdb ,Description :_aec }); +};type defaultDiffPolicy struct{_gcb map[int64 ]_fg .PdfObject ;_e *DiffResults ;_c DocMDPPermission ;}; + +// IsPermitted returns true if changes permitted. +func (_aeac *DiffResults )IsPermitted ()bool {return len (_aeac .Errors )==0};func (_dc *defaultDiffPolicy )compareRevisions (_fe *_fg .PdfParser ,_b *_fg .PdfParser )(*DiffResults ,error ){var _ae error ;_dc ._gcb ,_ae =_b .GetUpdatedObjects (_fe );if _ae !=nil {return &DiffResults {},_ae ; +};if len (_dc ._gcb )==0{return &DiffResults {},nil ;};_ca :=_b .GetRevisionNumber ();_ge ,_fc :=_fg .GetIndirect (_fg .ResolveReference (_fe .GetTrailer ().Get ("\u0052\u006f\u006f\u0074")));_ab ,_bg :=_fg .GetIndirect (_fg .ResolveReference (_b .GetTrailer ().Get ("\u0052\u006f\u006f\u0074"))); +if !_fc ||!_bg {return &DiffResults {},_f .New ("\u0065\u0072\u0072o\u0072\u0020\u0077\u0068i\u006c\u0065\u0020\u0067\u0065\u0074\u0074i\u006e\u0067\u0020\u0072\u006f\u006f\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_fgg ,_fc :=_fg .GetDict (_fg .ResolveReference (_ge .PdfObject )); +_aef ,_bg :=_fg .GetDict (_fg .ResolveReference (_ab .PdfObject ));if !_fc ||!_bg {return &DiffResults {},_f .New ("\u0065\u0072\u0072\u006f\u0072\u0020\u0077\u0068\u0069\u006c\u0065\u0020\u0067e\u0074\u0074\u0069\u006e\u0067\u0020a\u0020\u0072\u006f\u006f\u0074\u0027\u0073\u0020\u0064\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079"); +};if _de ,_af :=_fg .GetIndirect (_aef .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d"));_af {_gf ,_ac :=_fg .GetDict (_de );if !_ac {return &DiffResults {},_f .New ("\u0065\u0072\u0072\u006f\u0072 \u0077\u0068\u0069\u006c\u0065\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067 \u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u0027\u0073\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079"); +};_db :=make ([]_fg .PdfObject ,0);if _cad ,_fec :=_fg .GetIndirect (_fgg .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d"));_fec {if _cgc ,_abg :=_fg .GetDict (_cad );_abg {if _gag ,_ba :=_fg .GetArray (_cgc .Get ("\u0046\u0069\u0065\u006c\u0064\u0073")); +_ba {_db =_gag .Elements ();};};};_da ,_ac :=_fg .GetArray (_gf .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"));if !_ac {return &DiffResults {},_f .New ("\u0065\u0072r\u006f\u0072\u0020\u0077h\u0069\u006ce\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067 \u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u0027\u0073\u0020\u0066i\u0065\u006c\u0064\u0073"); +};if _bc :=_dc .compareFields (_ca ,_db ,_da .Elements ());_bc !=nil {return &DiffResults {},_bc ;};};_cd ,_aeg :=_fg .GetIndirect (_aef .Get ("\u0050\u0061\u0067e\u0073"));if !_aeg {return &DiffResults {},_f .New ("\u0065\u0072\u0072\u006f\u0072\u0020w\u0068\u0069\u006c\u0065\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020p\u0061\u0067\u0065\u0073\u0027\u0020\u006fb\u006a\u0065\u0063\u0074"); +};_gff ,_aeg :=_fg .GetIndirect (_fgg .Get ("\u0050\u0061\u0067e\u0073"));if !_aeg {return &DiffResults {},_f .New ("\u0065\u0072\u0072\u006f\u0072\u0020w\u0068\u0069\u006c\u0065\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020p\u0061\u0067\u0065\u0073\u0027\u0020\u006fb\u006a\u0065\u0063\u0074"); +};if _ea :=_dc .comparePages (_ca ,_gff ,_cd );_ea !=nil {return &DiffResults {},_ea ;};return _dc ._e ,nil ;}; + +// MDPParameters describes parameters for the MDP checks (now only DocMDP). +type MDPParameters struct{DocMDPLevel DocMDPPermission ;}; + +// DiffPolicy interface for comparing two revisions of the Pdf document. +type DiffPolicy interface{ + +// ReviewFile should check the revisions of the old and new parsers +// and evaluate the differences between the revisions. +// Each implementation of this interface must decide +// how to handle cases where there are multiple revisions between the old and new revisions. +ReviewFile (_cec *_fg .PdfParser ,_dgac *_fg .PdfParser ,_bad *MDPParameters )(*DiffResults ,error );};func NewDefaultDiffPolicy ()DiffPolicy {return &defaultDiffPolicy {_gcb :nil ,_e :&DiffResults {},_c :0};};const (NoRestrictions DocMDPPermission =0; +NoChanges DocMDPPermission =1;FillForms DocMDPPermission =2;FillFormsAndAnnots DocMDPPermission =3;);func (_fab *DiffResults )addError (_cee *DiffResult ){if _fab .Errors ==nil {_fab .Errors =make ([]*DiffResult ,0);};_fab .Errors =append (_fab .Errors ,_cee ); +};func _cce (_bb _fg .PdfObject )([]_fg .PdfObject ,error ){_gef :=make ([]_fg .PdfObject ,0);if _bb !=nil {_fee :=_bb ;if _bgfa ,_aga :=_fg .GetIndirect (_bb );_aga {_fee =_bgfa .PdfObject ;};if _dgag ,_cfbe :=_fg .GetArray (_fee );_cfbe {_gef =_dgag .Elements (); +}else {return nil ,_f .New ("\u0075n\u0065\u0078\u0070\u0065c\u0074\u0065\u0064\u0020\u0061n\u006eo\u0074s\u0027\u0020\u006f\u0062\u006a\u0065\u0063t");};};return _gef ,nil ;}; + +// String returns the state of the warning. +func (_fba *DiffResult )String ()string {return _gc .Sprintf ("\u0025\u0073\u0020\u0069n \u0072\u0065\u0076\u0069\u0073\u0069\u006f\u006e\u0073\u0020\u0023\u0025\u0064",_fba .Description ,_fba .Revision );}; + +// DocMDPPermission is values for set up access permissions for DocMDP. +// (Section 12.8.2.2, Table 254 - Entries in a signature dictionary p. 471 in PDF32000_2008). +type DocMDPPermission int64 ;
\ No newline at end of file |
