2020-08-27 21:45:09 +00:00
|
|
|
//
|
|
|
|
// 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 fdf provides support for loading form field data from Form Field Data (FDF) files.
|
2020-11-11 18:48:37 +00:00
|
|
|
package fdf ;import (_f "bufio";_b "bytes";_ef "encoding/hex";_e "errors";_de "fmt";_egb "github.com/unidoc/unipdf/v3/common";_ed "github.com/unidoc/unipdf/v3/core";_ga "io";_dgf "os";_eg "regexp";_df "sort";_dg "strconv";_d "strings";);func (_dbe *fdfParser )parseNumber ()(_ed .PdfObject ,error ){return _ed .ParseNumber (_dbe ._ae )};func (_eddd *fdfParser )parseNull ()(_ed .PdfObjectNull ,error ){_ ,_efgf :=_eddd ._ae .Discard (4);return _ed .PdfObjectNull {},_efgf ;};func (_ad *fdfParser )getFileOffset ()int64 {_gag ,_ :=_ad ._bcg .Seek (0,_ga .SeekCurrent );_gag -=int64 (_ad ._ae .Buffered ());return _gag ;};func (_ecc *fdfParser )parseObject ()(_ed .PdfObject ,error ){_egb .Log .Trace ("\u0052e\u0061d\u0020\u0064\u0069\u0072\u0065c\u0074\u0020o\u0062\u006a\u0065\u0063\u0074");_ecc .skipSpaces ();for {_gfd ,_gge :=_ecc ._ae .Peek (2);if _gge !=nil {return nil ,_gge ;};_egb .Log .Trace ("\u0050e\u0065k\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_gfd ));if _gfd [0]=='/'{_dff ,_aeg :=_ecc .parseName ();_egb .Log .Trace ("\u002d\u003e\u004ea\u006d\u0065\u003a\u0020\u0027\u0025\u0073\u0027",_dff );return &_dff ,_aeg ;}else if _gfd [0]=='('{_egb .Log .Trace ("\u002d>\u0053\u0074\u0072\u0069\u006e\u0067!");return _ecc .parseString ();}else if _gfd [0]=='['{_egb .Log .Trace ("\u002d\u003e\u0041\u0072\u0072\u0061\u0079\u0021");return _ecc .parseArray ();}else if (_gfd [0]=='<')&&(_gfd [1]=='<'){_egb .Log .Trace ("\u002d>\u0044\u0069\u0063\u0074\u0021");return _ecc .parseDict ();}else if _gfd [0]=='<'{_egb .Log .Trace ("\u002d\u003e\u0048\u0065\u0078\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0021");return _ecc .parseHexString ();}else if _gfd [0]=='%'{_ecc .readComment ();_ecc .skipSpaces ();}else {_egb .Log .Trace ("\u002d\u003eN\u0075\u006d\u0062e\u0072\u0020\u006f\u0072\u0020\u0072\u0065\u0066\u003f");_gfd ,_ =_ecc ._ae .Peek (15);_eca :=string (_gfd );_egb .Log .Trace ("\u0050\u0065\u0065k\u0020\u0073\u0074\u0072\u003a\u0020\u0025\u0073",_eca );if (len (_eca )> 3)&&(_eca [:4]=="\u006e\u0075\u006c\u006c"){_dcb ,_fef :=_ecc .parseNull ();return &_dcb ,_fef ;}else if (len (_eca )> 4)&&(_eca [:5]=="\u0066\u0061\u006cs\u0065"){_bad ,_ebc :=_ecc .parseBool ();return &_bad ,_ebc ;}else if (len (_eca )> 3)&&(_eca [:4]=="\u0074\u0072\u0075\u0065"){_badf ,_add :=_ecc .parseBool ();return &_badf ,_add ;};_cfd :=_acc .FindStringSubmatch (_eca );if len (_cfd )> 1{_gfd ,_ =_ecc ._ae .ReadBytes ('R');_egb .Log .Trace ("\u002d\u003e\u0020\u0021\u0052\u0065\u0066\u003a\u0020\u0027\u0025\u0073\u0027",string (_gfd [:]));_acgf ,_dffc :=_ege (string (_gfd ));return &_acgf ,_dffc ;};_bcd :=_ag .FindStringSubmatch (_eca );if len (_bcd )> 1{_egb .Log .Trace ("\u002d\u003e\u0020\u004e\u0075\u006d\u0062\u0065\u0072\u0021");return _ecc .parseNumber ();};_bcd =_gbb .FindStringSubmatch (_eca );if len (_bcd )> 1{_egb .Log .Trace ("\u002d\u003e\u0020\u0045xp\u006f\u006e\u0065\u006e\u0074\u0069\u0061\u006c\u0020\u004e\u0075\u006d\u0062\u0065r\u0021");_egb .Log .Trace ("\u0025\u0020\u0073",_bcd );return _ecc .parseNumber ();};_egb .Log .Debug ("\u0045R\u0052\u004f\u0052\u0020U\u006e\u006b\u006e\u006f\u0077n\u0020(\u0070e\u0065\u006b\u0020\u0022\u0025\u0073\u0022)",_eca );return nil ,_e .New ("\u006f\u0062\u006a\u0065\u0063t\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020\u0065\u0072\u0072\u006fr\u0020\u002d\u0020\u0075\u006e\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};};};var _acc =_eg .MustCompile ("^\u005c\u0073\u002a\u0028\\d\u002b)\u005c\u0073\u002b\u0028\u005cd\u002b\u0029\u005c\u0073\u002b\u0052");var _ag =_eg .MustCompile ("\u005e\u005b\u005c\u002b\u002d\u002e\u005d\u002a\u0028\u005b\u0030\u002d9\u002e\u005d\u002b\u0029");func (_adf *fdfParser )parseString ()(*_ed .PdfObjectString ,error ){_adf ._ae .ReadByte ();var _ba _b .Buffer ;_bdgd :=1;for {_ceae ,_ecb :=_adf ._ae .Peek (1);if _ecb !=nil {return _ed .MakeString (_ba .String ()),_ecb ;};if _ceae [0]=='\\'{_adf ._ae .ReadByte ();_cfe ,_cef :=_adf ._ae .ReadByte ();if _cef !=nil {return _ed .MakeStrin
|
2020-08-27 21:45:09 +00:00
|
|
|
|
2020-10-19 10:58:10 +00:00
|
|
|
// Root returns the Root of the FDF document.
|
2020-11-11 18:48:37 +00:00
|
|
|
func (_cbd *fdfParser )Root ()(*_ed .PdfObjectDictionary ,error ){if _cbd ._agb !=nil {if _ggg ,_cdcac :=_cbd .trace (_cbd ._agb .Get ("\u0052\u006f\u006f\u0074")).(*_ed .PdfObjectDictionary );_cdcac {if _bdbc ,_gba :=_cbd .trace (_ggg .Get ("\u0046\u0044\u0046")).(*_ed .PdfObjectDictionary );_gba {return _bdbc ,nil ;};};};var _cbc []int64 ;for _efaa :=range _cbd ._ade {_cbc =append (_cbc ,_efaa );};_df .Slice (_cbc ,func (_cff ,_adac int )bool {return _cbc [_cff ]< _cbc [_adac ]});for _ ,_fba :=range _cbc {_eef :=_cbd ._ade [_fba ];if _ffbg ,_fcce :=_cbd .trace (_eef ).(*_ed .PdfObjectDictionary );_fcce {if _gcd ,_bef :=_cbd .trace (_ffbg .Get ("\u0046\u0044\u0046")).(*_ed .PdfObjectDictionary );_bef {return _gcd ,nil ;};};};return nil ,_e .New ("\u0046\u0044\u0046\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};func (_dfg *fdfParser )parse ()error {_dfg ._bcg .Seek (0,_ga .SeekStart );_dfg ._ae =_f .NewReader (_dfg ._bcg );for {_dfg .skipComments ();_bfff ,_baaa :=_dfg ._ae .Peek (20);if _baaa !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0020\u0074\u006f\u0020r\u0065a\u0064\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a");return _baaa ;};if _d .HasPrefix (string (_bfff ),"\u0074r\u0061\u0069\u006c\u0065\u0072"){_dfg ._ae .Discard (7);_dfg .skipSpaces ();_dfg .skipComments ();_addg ,_ :=_dfg .parseDict ();_dfg ._agb =_addg ;break ;};_bbd :=_dd .FindStringSubmatchIndex (string (_bfff ));if len (_bbd )< 6{_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020U\u006e\u0061\u0062l\u0065\u0020\u0074\u006f \u0066\u0069\u006e\u0064\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0028\u0025\u0073\u0029",string (_bfff ));return _e .New ("\u0075\u006e\u0061b\u006c\u0065\u0020\u0074\u006f\u0020\u0064\u0065\u0074\u0065\u0063\u0074\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020s\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065");};_bfd ,_baaa :=_dfg .parseIndirectObject ();if _baaa !=nil {return _baaa ;};switch _ecaf :=_bfd .(type ){case *_ed .PdfIndirectObject :_dfg ._ade [_ecaf .ObjectNumber ]=_ecaf ;case *_ed .PdfObjectStream :_dfg ._ade [_ecaf .ObjectNumber ]=_ecaf ;default:return _e .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};return nil ;};func (_cc *fdfParser )parseIndirectObject ()(_ed .PdfObject ,error ){_dgae :=_ed .PdfIndirectObject {};_egb .Log .Trace ("\u002dR\u0065a\u0064\u0020\u0069\u006e\u0064i\u0072\u0065c\u0074\u0020\u006f\u0062\u006a");_dac ,_gcb :=_cc ._ae .Peek (20);if _gcb !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0020\u0074\u006f\u0020r\u0065a\u0064\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a");return &_dgae ,_gcb ;};_egb .Log .Trace ("\u0028\u0069\u006edi\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0020\u0070\u0065\u0065\u006b\u0020\u0022\u0025\u0073\u0022",string (_dac ));_gagf :=_dd .FindStringSubmatchIndex (string (_dac ));if len (_gagf )< 6{_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020U\u006e\u0061\u0062l\u0065\u0020\u0074\u006f \u0066\u0069\u006e\u0064\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0028\u0025\u0073\u0029",string (_dac ));return &_dgae ,_e .New ("\u0075\u006e\u0061b\u006c\u0065\u0020\u0074\u006f\u0020\u0064\u0065\u0074\u0065\u0063\u0074\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020s\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065");};_cc ._ae .Discard (_gagf [0]);_egb .Log .Trace ("O\u0066\u0066\u0073\u0065\u0074\u0073\u0020\u0025\u0020\u0064",_gagf );_dgfg :=_gagf [1]-_gagf [0];_fda :=make ([]byte ,_dgfg );_ ,_gcb =_cc .readAtLeast (_fda ,_dgfg );if _gcb !=nil {_egb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0075\u006e\u0061\u0062l\u0065\u0020\u0074\u006f\u0020\u0072\u0065\u0061\u0064\u0020-\u0020\u0025\u0073
|
2020-10-05 19:28:24 +00:00
|
|
|
|
2020-10-19 10:58:10 +00:00
|
|
|
// FieldValues implements interface model.FieldValueProvider.
|
|
|
|
// Returns a map of field names to values (PdfObjects).
|
2020-11-11 18:48:37 +00:00
|
|
|
func (fdf *Data )FieldValues ()(map[string ]_ed .PdfObject ,error ){_cbg ,_ac :=fdf .FieldDictionaries ();if _ac !=nil {return nil ,_ac ;};var _efd []string ;for _ec :=range _cbg {_efd =append (_efd ,_ec );};_df .Strings (_efd );_cea :=map[string ]_ed .PdfObject {};for _ ,_ca :=range _efd {_gac :=_cbg [_ca ];_cde :=_ed .TraceToDirectObject (_gac .Get ("\u0056"));_cea [_ca ]=_cde ;};return _cea ,nil ;};func (_dfdc *fdfParser )seekToEOFMarker (_ged int64 )error {_adfg :=int64 (0);_ffb :=int64 (1000);for _adfg < _ged {if _ged <=(_ffb +_adfg ){_ffb =_ged -_adfg ;};_ ,_bfc :=_dfdc ._bcg .Seek (-_adfg -_ffb ,_ga .SeekEnd );if _bfc !=nil {return _bfc ;};_gec :=make ([]byte ,_ffb );_dfdc ._bcg .Read (_gec );_egb .Log .Trace ("\u004c\u006f\u006f\u006bi\u006e\u0067\u0020\u0066\u006f\u0072\u0020\u0045\u004f\u0046 \u006da\u0072\u006b\u0065\u0072\u003a\u0020\u0022%\u0073\u0022",string (_gec ));_gda :=_gc .FindAllStringIndex (string (_gec ),-1);if _gda !=nil {_cdff :=_gda [len (_gda )-1];_egb .Log .Trace ("\u0049\u006e\u0064\u003a\u0020\u0025\u0020\u0064",_gda );_dfdc ._bcg .Seek (-_adfg -_ffb +int64 (_cdff [0]),_ga .SeekEnd );return nil ;};_egb .Log .Debug ("\u0057\u0061\u0072\u006e\u0069\u006eg\u003a\u0020\u0045\u004f\u0046\u0020\u006d\u0061\u0072\u006b\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075n\u0064\u0021\u0020\u002d\u0020\u0063\u006f\u006e\u0074\u0069\u006e\u0075\u0065\u0020s\u0065e\u006b\u0069\u006e\u0067");_adfg +=_ffb ;};_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0045\u004f\u0046\u0020\u006d\u0061\u0072\u006be\u0072 \u0077\u0061\u0073\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u002e");return _e .New ("\u0045\u004f\u0046\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};func _eaa (_egd string )(*fdfParser ,error ){_bff :=fdfParser {};_acbd :=[]byte (_egd );_fged :=_b .NewReader (_acbd );_bff ._bcg =_fged ;_bff ._ade =map[int64 ]_ed .PdfObject {};_aea :=_f .NewReader (_fged );_bff ._ae =_aea ;_bff ._ab =int64 (len (_egd ));return &_bff ,_bff .parse ();};func (_cae *fdfParser )setFileOffset (_ea int64 ){_cae ._bcg .Seek (_ea ,_ga .SeekStart );_cae ._ae =_f .NewReader (_cae ._bcg );};var _gbb =_eg .MustCompile ("\u005e\u005b\u005c+-\u002e\u005d\u002a\u0028\u005b\u0030\u002d\u0039\u002e]\u002b)\u0065[\u005c+\u002d\u002e\u005d\u002a\u0028\u005b\u0030\u002d\u0039\u002e\u005d\u002b\u0029");func (_aab *fdfParser )parseArray ()(*_ed .PdfObjectArray ,error ){_edc :=_ed .MakeArray ();_aab ._ae .ReadByte ();for {_aab .skipSpaces ();_aac ,_dde :=_aab ._ae .Peek (1);if _dde !=nil {return _edc ,_dde ;};if _aac [0]==']'{_aab ._ae .ReadByte ();break ;};_fg ,_dde :=_aab .parseObject ();if _dde !=nil {return _edc ,_dde ;};_edc .Append (_fg );};return _edc ,nil ;};func (_adg *fdfParser )trace (_cbaf _ed .PdfObject )_ed .PdfObject {switch _eegd :=_cbaf .(type ){case *_ed .PdfObjectReference :_cdd ,_fac :=_adg ._ade [_eegd .ObjectNumber ].(*_ed .PdfIndirectObject );if _fac {return _cdd .PdfObject ;};_egb .Log .Debug ("\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");return nil ;case *_ed .PdfIndirectObject :return _eegd .PdfObject ;};return _cbaf ;};func (_dga *fdfParser )parseBool ()(_ed .PdfObjectBool ,error ){_cba ,_aae :=_dga ._ae .Peek (4);if _aae !=nil {return _ed .PdfObjectBool (false ),_aae ;};if (len (_cba )>=4)&&(string (_cba [:4])=="\u0074\u0072\u0075\u0065"){_dga ._ae .Discard (4);return _ed .PdfObjectBool (true ),nil ;};_cba ,_aae =_dga ._ae .Peek (5);if _aae !=nil {return _ed .PdfObjectBool (false ),_aae ;};if (len (_cba )>=5)&&(string (_cba [:5])=="\u0066\u0061\u006cs\u0065"){_dga ._ae .Discard (5);return _ed .PdfObjectBool (false ),nil ;};return _ed .PdfObjectBool (false ),_e .New ("\u0075n\u0065\u0078\u0070\u0065c\u0074\u0065\u0064\u0020\u0062o\u006fl\u0065a\u006e\u0020\u0073\u0074\u0072\u0069\u006eg");};func (_da *fdfParser )parseFdfVersion ()(int ,int ,error ){_da ._bcg .Seek (0,_ga .SeekStart );_adff :=20;_ceb :=make ([]byte ,_adff );_da ._bcg .Read (_ceb );_fafb :=_cdc .FindStringSubmatch (string (_ceb ));if len (_fafb )< 3{_dee ,_dgab ,_baa :=_d
|
|
|
|
|
|
|
|
// Load loads FDF form data from `r`.
|
|
|
|
func Load (r _ga .ReadSeeker )(*Data ,error ){_fb ,_ee :=_ggec (r );if _ee !=nil {return nil ,_ee ;};_bd ,_ee :=_fb .Root ();if _ee !=nil {return nil ,_ee ;};_bdf ,_c :=_ed .GetArray (_bd .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"));if !_c {return nil ,_e .New ("\u0066\u0069\u0065\u006c\u0064\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};return &Data {_fa :_bdf ,_fc :_bd },nil ;};func _ggec (_bec _ga .ReadSeeker )(*fdfParser ,error ){_eba :=&fdfParser {};_eba ._bcg =_bec ;_eba ._ade =map[int64 ]_ed .PdfObject {};_fcac ,_ffe ,_gea :=_eba .parseFdfVersion ();if _gea !=nil {_egb .Log .Error ("U\u006e\u0061\u0062\u006c\u0065\u0020t\u006f\u0020\u0070\u0061\u0072\u0073\u0065\u0020\u0076e\u0072\u0073\u0069o\u006e:\u0020\u0025\u0076",_gea );return nil ,_gea ;};_eba ._dgg =_fcac ;_eba ._edd =_ffe ;_gea =_eba .parse ();return _eba ,_gea ;};type fdfParser struct{_dgg int ;_edd int ;_ade map[int64 ]_ed .PdfObject ;_bcg _ga .ReadSeeker ;_ae *_f .Reader ;_ab int64 ;_agb *_ed .PdfObjectDictionary ;};
|
|
|
|
|
|
|
|
// FieldDictionaries returns a map of field names to field dictionaries.
|
|
|
|
func (fdf *Data )FieldDictionaries ()(map[string ]*_ed .PdfObjectDictionary ,error ){_dc :=map[string ]*_ed .PdfObjectDictionary {};for _ce :=0;_ce < fdf ._fa .Len ();_ce ++{_fe ,_gd :=_ed .GetDict (fdf ._fa .Get (_ce ));if _gd {_aa ,_ :=_ed .GetString (_fe .Get ("\u0054"));if _aa !=nil {_dc [_aa .Str ()]=_fe ;};};};return _dc ,nil ;};func (_gde *fdfParser )readAtLeast (_bdg []byte ,_bb int )(int ,error ){_dfd :=_bb ;_dge :=0;_gdb :=0;for _dfd > 0{_fec ,_bc :=_gde ._ae .Read (_bdg [_dge :]);if _bc !=nil {_egb .Log .Debug ("\u0045\u0052\u0052O\u0052\u0020\u0046\u0061i\u006c\u0065\u0064\u0020\u0072\u0065\u0061d\u0069\u006e\u0067\u0020\u0028\u0025\u0064\u003b\u0025\u0064\u0029\u0020\u0025\u0073",_fec ,_gdb ,_bc .Error ());return _dge ,_e .New ("\u0066\u0061\u0069\u006c\u0065\u0064\u0020\u0072\u0065a\u0064\u0069\u006e\u0067");};_gdb ++;_dge +=_fec ;_dfd -=_fec ;};return _dge ,nil ;};
|
|
|
|
|
|
|
|
// Data represents forms data format (FDF) file data.
|
|
|
|
type Data struct{_fc *_ed .PdfObjectDictionary ;_fa *_ed .PdfObjectArray ;};func (_efe *fdfParser )readComment ()(string ,error ){var _ebg _b .Buffer ;_ ,_dcd :=_efe .skipSpaces ();if _dcd !=nil {return _ebg .String (),_dcd ;};_fad :=true ;for {_edde ,_faf :=_efe ._ae .Peek (1);if _faf !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0025\u0073",_faf .Error ());return _ebg .String (),_faf ;};if _fad &&_edde [0]!='%'{return _ebg .String (),_e .New ("c\u006f\u006d\u006d\u0065\u006e\u0074 \u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0073\u0074a\u0072\u0074\u0020w\u0069t\u0068\u0020\u0025");};_fad =false ;if (_edde [0]!='\r')&&(_edde [0]!='\n'){_egf ,_ :=_efe ._ae .ReadByte ();_ebg .WriteByte (_egf );}else {break ;};};return _ebg .String (),nil ;};var _gc =_eg .MustCompile ("\u0025\u0025\u0045O\u0046");func (_abd *fdfParser )seekFdfVersionTopDown ()(int ,int ,error ){_abd ._bcg .Seek (0,_ga .SeekStart );_abd ._ae =_f .NewReader (_abd ._bcg );_bea :=20;_ddf :=make ([]byte ,_bea );for {_cfb ,_acge :=_abd ._ae .ReadByte ();if _acge !=nil {if _acge ==_ga .EOF {break ;}else {return 0,0,_acge ;};};if _ed .IsDecimalDigit (_cfb )&&_ddf [_bea -1]=='.'&&_ed .IsDecimalDigit (_ddf [_bea -2])&&_ddf [_bea -3]=='-'&&_ddf [_bea -4]=='F'&&_ddf [_bea -5]=='D'&&_ddf [_bea -6]=='P'{_fbg :=int (_ddf [_bea -2]-'0');_dcdg :=int (_cfb -'0');return _fbg ,_dcdg ,nil ;};_ddf =append (_ddf [1:_bea ],_cfb );};return 0,0,_e .New ("\u0076\u0065\u0072\u0073\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
|
2020-09-07 00:23:12 +00:00
|
|
|
|
2020-10-19 10:58:10 +00:00
|
|
|
// LoadFromPath loads FDF form data from file path `fdfPath`.
|
2020-11-11 18:48:37 +00:00
|
|
|
func LoadFromPath (fdfPath string )(*Data ,error ){_gb ,_cd :=_dgf .Open (fdfPath );if _cd !=nil {return nil ,_cd ;};defer _gb .Close ();return Load (_gb );};var _dd =_eg .MustCompile ("\u0028\u005c\u0064\u002b)\\\u0073\u002b\u0028\u005c\u0064\u002b\u0029\u005c\u0073\u002b\u006f\u0062\u006a");func _ege (_egbg string )(_ed .PdfObjectReference ,error ){_ega :=_ed .PdfObjectReference {};_egg :=_acc .FindStringSubmatch (_egbg );if len (_egg )< 3{_egb .Log .Debug ("\u0045\u0072\u0072or\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020\u0072\u0065\u0066\u0065\u0072\u0065\u006e\u0063\u0065");return _ega ,_e .New ("\u0075n\u0061\u0062\u006c\u0065 \u0074\u006f\u0020\u0070\u0061r\u0073e\u0020r\u0065\u0066\u0065\u0072\u0065\u006e\u0063e");};_fbc ,_eff :=_dg .Atoi (_egg [1]);if _eff !=nil {_egb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070a\u0072\u0073\u0069n\u0067\u0020\u006fb\u006a\u0065c\u0074\u0020\u006e\u0075\u006d\u0062e\u0072 '\u0025\u0073\u0027\u0020\u002d\u0020\u0055\u0073\u0069\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u0075\u006d\u0020\u003d\u0020\u0030",_egg [1]);return _ega ,nil ;};_ega .ObjectNumber =int64 (_fbc );_dca ,_eff :=_dg .Atoi (_egg [2]);if _eff !=nil {_egb .Log .Debug ("\u0045\u0072r\u006f\u0072\u0020\u0070\u0061r\u0073\u0069\u006e\u0067\u0020g\u0065\u006e\u0065\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020\u0027\u0025\u0073\u0027\u0020\u002d\u0020\u0055\u0073\u0069\u006e\u0067\u0020\u0067\u0065\u006e\u0020\u003d\u0020\u0030",_egg [2]);return _ega ,nil ;};_ega .GenerationNumber =int64 (_dca );return _ega ,nil ;};
|