// // 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 model provides an interface for working with high-level objects (models) in PDF files, including // reading and writing documents. // // The document structure of a PDF is constructed of a hierarchy of data models, representing a tree // of information starting from the Document catalog (Figure 5 p. 80). // It is based on the core package which handles core functionality such as file i/o, parsing and // handling of primitive PDF objects (core.PdfObject). // // As an example of the interface, the following snippet can read the PDF and output the number of pages: // // f, err := os.Open(inputPath) // if err != nil { // return nil, err // } // defer f.Close() // pdfReader, err := unipdf.NewPdfReader(f) // if err != nil { // fmt.Printf("Failed to read PDF file: %v\n", err) // os.Exit(1) // } // numPages, err := pdfReader.GetNumPages() // if err != nil { // fmt.Printf("Failed to get number of pages: %v\n", err) // os.Exit(1) // } // fmt.Printf("The PDF file has %d pages\n", numPages) // // For more examples, see the unidoc-examples repository on GitHub: https://github.com/unidoc/unidoc-examples package model ;import (_d "bufio";_dd "bytes";_ea "crypto/md5";_c "crypto/rand";_bbd "crypto/sha1";_dg "crypto/x509";_bg "encoding/binary";_fg "encoding/hex";_gd "errors";_f "fmt";_df "github.com/unidoc/pkcs7";_bag "github.com/unidoc/unipdf/v3/common"; _egg "github.com/unidoc/unipdf/v3/core";_fe "github.com/unidoc/unipdf/v3/core/security";_gfc "github.com/unidoc/unipdf/v3/core/security/crypt";_ga "github.com/unidoc/unipdf/v3/internal/cmap";_eg "github.com/unidoc/unipdf/v3/internal/imageutil";_ace "github.com/unidoc/unipdf/v3/internal/license"; _fb "github.com/unidoc/unipdf/v3/internal/sampling";_ef "github.com/unidoc/unipdf/v3/internal/textencoding";_ce "github.com/unidoc/unipdf/v3/internal/timeutils";_gdg "github.com/unidoc/unipdf/v3/internal/transform";_dc "github.com/unidoc/unipdf/v3/model/internal/docutil"; _bgd "github.com/unidoc/unipdf/v3/model/internal/fonts";_be "github.com/unidoc/unipdf/v3/model/mdp";_gfa "github.com/unidoc/unipdf/v3/model/sigutil";_cde "github.com/unidoc/unipdf/v3/ps";_ec "github.com/unidoc/unitype";_de "golang.org/x/xerrors";_bb "hash"; _cd "image";_ba "image/color";_ "image/gif";_ "image/png";_dag "io";_ac "io/ioutil";_dgb "math";_cg "math/rand";_gf "os";_bae "regexp";_cf "sort";_da "strconv";_fc "strings";_b "sync";_e "time";_ad "unicode";_ab "unicode/utf8";); // FlattenFields flattens the form fields and annotations for the PDF loaded in `pdf` and makes // non-editable. // Looks up all widget annotations corresponding to form fields and flattens them by drawing the content // through the content stream rather than annotations. // References to flattened annotations will be removed from Page Annots array. For fields the AcroForm entry // will be emptied. // When `allannots` is true, all annotations will be flattened. Keep false if want to keep non-form related // annotations intact. // When `appgen` is not nil, it will be used to generate appearance streams for the field annotations. func (_gfee *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _gfee .flattenFieldsWithOpts (allannots ,appgen ,nil );};func (_gbfe *PdfReader )newPdfActionFromIndirectObject (_dbd *_egg .PdfIndirectObject )(*PdfAction ,error ){_cac ,_dbb :=_dbd .PdfObject .(*_egg .PdfObjectDictionary ); if !_dbb {return nil ,_f .Errorf ("\u0061\u0063\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u006e\u006f\u0074 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079"); };if model :=_gbfe ._dabaf .GetModelFromPrimitive (_cac );model !=nil {_gdb ,_cacc :=model .(*PdfAction );if !_cacc {return nil ,_f .Errorf ("\u0063\u0061c\u0068\u0065\u0064\u0020\u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050\u0044\u0046\u0020\u0061\u0063ti\u006f\u006e"); };return _gdb ,nil ;};_cbf :=&PdfAction {};_cbf ._bf =_dbd ;_gbfe ._dabaf .Register (_cac ,_cbf );if _dbc :=_cac .Get ("\u0054\u0079\u0070\u0065");_dbc !=nil {_dadg ,_abc :=_dbc .(*_egg .PdfObjectName );if !_abc {_bag .Log .Trace ("\u0049\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u0021\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u006f\u0066\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029\u0020\u002d\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u004e\u0061m\u0065",_dbc ); }else {if *_dadg !="\u0041\u0063\u0074\u0069\u006f\u006e"{_bag .Log .Trace ("\u0055\u006e\u0073u\u0073\u0070\u0065\u0063t\u0065\u0064\u0020\u0054\u0079\u0070\u0065 \u0021\u003d\u0020\u0041\u0063\u0074\u0069\u006f\u006e\u0020\u0028\u0025\u0073\u0029",*_dadg ); };_cbf .Type =_dadg ;};};if _efad :=_cac .Get ("\u004e\u0065\u0078\u0074");_efad !=nil {_cbf .Next =_efad ;};if _dee :=_cac .Get ("\u0053");_dee !=nil {_cbf .S =_dee ;};_cabc ,_agf :=_cbf .S .(*_egg .PdfObjectName );if !_agf {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_cbf .S ); return nil ,_f .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0053\u0020\u006f\u0062\u006a\u0065c\u0074 \u0074y\u0070e\u0020\u0021\u003d\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_cbf .S );};_cecbd :=PdfActionType (_cabc .String ()); switch _cecbd {case ActionTypeGoTo :_dbf ,_ecd :=_gbfe .newPdfActionGotoFromDict (_cac );if _ecd !=nil {return nil ,_ecd ;};_dbf .PdfAction =_cbf ;_cbf ._abb =_dbf ;return _cbf ,nil ;case ActionTypeGoToR :_gee ,_fbe :=_gbfe .newPdfActionGotoRFromDict (_cac ); if _fbe !=nil {return nil ,_fbe ;};_gee .PdfAction =_cbf ;_cbf ._abb =_gee ;return _cbf ,nil ;case ActionTypeGoToE :_fee ,_cfd :=_gbfe .newPdfActionGotoEFromDict (_cac );if _cfd !=nil {return nil ,_cfd ;};_fee .PdfAction =_cbf ;_cbf ._abb =_fee ;return _cbf ,nil ; case ActionTypeLaunch :_eedf ,_ebc :=_gbfe .newPdfActionLaunchFromDict (_cac );if _ebc !=nil {return nil ,_ebc ;};_eedf .PdfAction =_cbf ;_cbf ._abb =_eedf ;return _cbf ,nil ;case ActionTypeThread :_cfc ,_geee :=_gbfe .newPdfActionThreadFromDict (_cac ); if _geee !=nil {return nil ,_geee ;};_cfc .PdfAction =_cbf ;_cbf ._abb =_cfc ;return _cbf ,nil ;case ActionTypeURI :_ffb ,_cgg :=_gbfe .newPdfActionURIFromDict (_cac );if _cgg !=nil {return nil ,_cgg ;};_ffb .PdfAction =_cbf ;_cbf ._abb =_ffb ;return _cbf ,nil ; case ActionTypeSound :_bde ,_ddf :=_gbfe .newPdfActionSoundFromDict (_cac );if _ddf !=nil {return nil ,_ddf ;};_bde .PdfAction =_cbf ;_cbf ._abb =_bde ;return _cbf ,nil ;case ActionTypeMovie :_cba ,_gaa :=_gbfe .newPdfActionMovieFromDict (_cac );if _gaa !=nil {return nil ,_gaa ; };_cba .PdfAction =_cbf ;_cbf ._abb =_cba ;return _cbf ,nil ;case ActionTypeHide :_dade ,_fcbbe :=_gbfe .newPdfActionHideFromDict (_cac );if _fcbbe !=nil {return nil ,_fcbbe ;};_dade .PdfAction =_cbf ;_cbf ._abb =_dade ;return _cbf ,nil ;case ActionTypeNamed :_gdbe ,_bgc :=_gbfe .newPdfActionNamedFromDict (_cac ); if _bgc !=nil {return nil ,_bgc ;};_gdbe .PdfAction =_cbf ;_cbf ._abb =_gdbe ;return _cbf ,nil ;case ActionTypeSubmitForm :_feea ,_dbe :=_gbfe .newPdfActionSubmitFormFromDict (_cac );if _dbe !=nil {return nil ,_dbe ;};_feea .PdfAction =_cbf ;_cbf ._abb =_feea ; return _cbf ,nil ;case ActionTypeResetForm :_ggf ,_gdc :=_gbfe .newPdfActionResetFormFromDict (_cac );if _gdc !=nil {return nil ,_gdc ;};_ggf .PdfAction =_cbf ;_cbf ._abb =_ggf ;return _cbf ,nil ;case ActionTypeImportData :_adg ,_dbg :=_gbfe .newPdfActionImportDataFromDict (_cac ); if _dbg !=nil {return nil ,_dbg ;};_adg .PdfAction =_cbf ;_cbf ._abb =_adg ;return _cbf ,nil ;case ActionTypeSetOCGState :_ggc ,_feaf :=_gbfe .newPdfActionSetOCGStateFromDict (_cac );if _feaf !=nil {return nil ,_feaf ;};_ggc .PdfAction =_cbf ;_cbf ._abb =_ggc ; return _cbf ,nil ;case ActionTypeRendition :_eec ,_gcg :=_gbfe .newPdfActionRenditionFromDict (_cac );if _gcg !=nil {return nil ,_gcg ;};_eec .PdfAction =_cbf ;_cbf ._abb =_eec ;return _cbf ,nil ;case ActionTypeTrans :_dgdg ,_cecd :=_gbfe .newPdfActionTransFromDict (_cac ); if _cecd !=nil {return nil ,_cecd ;};_dgdg .PdfAction =_cbf ;_cbf ._abb =_dgdg ;return _cbf ,nil ;case ActionTypeGoTo3DView :_gdce ,_adb :=_gbfe .newPdfActionGoTo3DViewFromDict (_cac );if _adb !=nil {return nil ,_adb ;};_gdce .PdfAction =_cbf ;_cbf ._abb =_gdce ; return _cbf ,nil ;case ActionTypeJavaScript :_dede ,_ebcf :=_gbfe .newPdfActionJavaScriptFromDict (_cac );if _ebcf !=nil {return nil ,_ebcf ;};_dede .PdfAction =_cbf ;_cbf ._abb =_dede ;return _cbf ,nil ;};_bag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u0067\u006e\u006f\u0072\u0069\u006eg\u0020u\u006ek\u006eo\u0077\u006e\u0020\u0061\u0063\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073",_cecbd ); return nil ,nil ;}; // ToPdfObject returns a stream object. func (_cegecg *XObjectForm )ToPdfObject ()_egg .PdfObject {_dfecc :=_cegecg ._acgef ;_beacbc :=_dfecc .PdfObjectDictionary ;if _cegecg .Filter !=nil {_beacbc =_cegecg .Filter .MakeStreamDict ();_dfecc .PdfObjectDictionary =_beacbc ;};_beacbc .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074")); _beacbc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0046\u006f\u0072\u006d"));_beacbc .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_cegecg .FormType );_beacbc .SetIfNotNil ("\u0042\u0042\u006f\u0078",_cegecg .BBox ); _beacbc .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_cegecg .Matrix );if _cegecg .Resources !=nil {_beacbc .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_cegecg .Resources .ToPdfObject ());};_beacbc .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_cegecg .Group ); _beacbc .SetIfNotNil ("\u0052\u0065\u0066",_cegecg .Ref );_beacbc .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_cegecg .MetaData );_beacbc .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_cegecg .PieceInfo );_beacbc .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_cegecg .LastModified ); _beacbc .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_cegecg .StructParent );_beacbc .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_cegecg .StructParents );_beacbc .SetIfNotNil ("\u004f\u0050\u0049",_cegecg .OPI ); _beacbc .SetIfNotNil ("\u004f\u0043",_cegecg .OC );_beacbc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cegecg .Name );_beacbc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_cegecg .Stream ))));_dfecc .Stream =_cegecg .Stream ; return _dfecc ;}; // ToInteger convert to an integer format. func (_gffge *PdfColorCalGray )ToInteger (bits int )uint32 {_gcd :=_dgb .Pow (2,float64 (bits ))-1;return uint32 (_gcd *_gffge .Val ());}; // PdfTilingPattern is a Tiling pattern that consists of repetitions of a pattern cell with defined intervals. // It is a type 1 pattern. (PatternType = 1). // A tiling pattern is represented by a stream object, where the stream content is // a content stream that describes the pattern cell. type PdfTilingPattern struct{*PdfPattern ;PaintType *_egg .PdfObjectInteger ;TilingType *_egg .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_egg .PdfObjectFloat ;YStep *_egg .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_egg .PdfObjectArray ;}; func (_eddded *PdfWriter )writeOutputIntents ()error {if len (_eddded ._fadef )==0{return nil ;};_gcaca :=make ([]_egg .PdfObject ,len (_eddded ._fadef ));for _fbbed ,_aeda :=range _eddded ._fadef {_dgbgf :=_aeda .ToPdfObject ();_gcaca [_fbbed ]=_egg .MakeIndirectObject (_dgbgf ); };_aeegb :=_egg .MakeIndirectObject (_egg .MakeArray (_gcaca ...));_eddded ._acea .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_aeegb );if _acegg :=_eddded .addObjects (_aeegb );_acegg !=nil {return _acegg ;};return nil ; }; // ImageToRGB converts CalRGB colorspace image to RGB and returns the result. func (_eeac *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_fcde :=_fb .NewReader (img .getBase ());_fdcda :=_eg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_gece :=_fb .NewWriter (_fdcda ); _agde :=_dgb .Pow (2,float64 (img .BitsPerComponent ))-1;_fgaeb :=make ([]uint32 ,3);var (_fddb error ;_cfabf ,_cee ,_cagdf ,_cgfd ,_bcbd ,_dfdc float64 ;);for {_fddb =_fcde .ReadSamples (_fgaeb );if _fddb ==_dag .EOF {break ;}else if _fddb !=nil {return img ,_fddb ; };_cfabf =float64 (_fgaeb [0])/_agde ;_cee =float64 (_fgaeb [1])/_agde ;_cagdf =float64 (_fgaeb [2])/_agde ;_cgfd =_eeac .Matrix [0]*_dgb .Pow (_cfabf ,_eeac .Gamma [0])+_eeac .Matrix [3]*_dgb .Pow (_cee ,_eeac .Gamma [1])+_eeac .Matrix [6]*_dgb .Pow (_cagdf ,_eeac .Gamma [2]); _bcbd =_eeac .Matrix [1]*_dgb .Pow (_cfabf ,_eeac .Gamma [0])+_eeac .Matrix [4]*_dgb .Pow (_cee ,_eeac .Gamma [1])+_eeac .Matrix [7]*_dgb .Pow (_cagdf ,_eeac .Gamma [2]);_dfdc =_eeac .Matrix [2]*_dgb .Pow (_cfabf ,_eeac .Gamma [0])+_eeac .Matrix [5]*_dgb .Pow (_cee ,_eeac .Gamma [1])+_eeac .Matrix [8]*_dgb .Pow (_cagdf ,_eeac .Gamma [2]); _cfabf =3.240479*_cgfd +-1.537150*_bcbd +-0.498535*_dfdc ;_cee =-0.969256*_cgfd +1.875992*_bcbd +0.041556*_dfdc ;_cagdf =0.055648*_cgfd +-0.204043*_bcbd +1.057311*_dfdc ;_cfabf =_dgb .Min (_dgb .Max (_cfabf ,0),1.0);_cee =_dgb .Min (_dgb .Max (_cee ,0),1.0); _cagdf =_dgb .Min (_dgb .Max (_cagdf ,0),1.0);_fgaeb [0]=uint32 (_cfabf *_agde );_fgaeb [1]=uint32 (_cee *_agde );_fgaeb [2]=uint32 (_cagdf *_agde );if _fddb =_gece .WriteSamples (_fgaeb );_fddb !=nil {return img ,_fddb ;};};return _cggba (&_fdcda ),nil ; }; // BytesToCharcodes converts the bytes in a PDF string to character codes. func (_gfaaf *PdfFont )BytesToCharcodes (data []byte )[]_ef .CharCode {_bag .Log .Trace ("\u0042\u0079\u0074es\u0054\u006f\u0043\u0068\u0061\u0072\u0063\u006f\u0064e\u0073:\u0020d\u0061t\u0061\u003d\u005b\u0025\u0020\u0030\u0032\u0078\u005d\u003d\u0025\u0023\u0071",data ,data ); if _deca ,_cgfcf :=_gfaaf ._edde .(*pdfFontType0 );_cgfcf &&_deca ._fcffd !=nil {if _afbfb ,_eddd :=_deca .bytesToCharcodes (data );_eddd {return _afbfb ;};};var (_cabgb =make ([]_ef .CharCode ,0,len (data )+len (data )%2);_bcgg =_gfaaf .baseFields (); );if _bcgg ._bfbgf !=nil {if _bgddf ,_daccg :=_bcgg ._bfbgf .BytesToCharcodes (data );_daccg {for _ ,_afbbe :=range _bgddf {_cabgb =append (_cabgb ,_ef .CharCode (_afbbe ));};return _cabgb ;};};if _bcgg .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]}; };if len (data )%2!=0{_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0064\u0064\u0069\u006e\u0067\u0020\u0064\u0061\u0074\u0061\u003d\u0025\u002b\u0076\u0020t\u006f\u0020\u0065\u0076\u0065n\u0020\u006ce\u006e\u0067\u0074\u0068",data ); data =append (data ,0);};for _ebfg :=0;_ebfg < len (data );_ebfg +=2{_efgge :=uint16 (data [_ebfg ])<<8|uint16 (data [_ebfg +1]);_cabgb =append (_cabgb ,_ef .CharCode (_efgge ));};}else {for _ ,_fdgad :=range data {_cabgb =append (_cabgb ,_ef .CharCode (_fdgad )); };};return _cabgb ;}; // Decrypt decrypts the PDF file with a specified password. Also tries to // decrypt with an empty password. Returns true if successful, // false otherwise. func (_dacd *PdfReader )Decrypt (password []byte )(bool ,error ){_cgbge ,_fbdfe :=_dacd ._dafgab .Decrypt (password );if _fbdfe !=nil {return false ,_fbdfe ;};if !_cgbge {return false ,nil ;};_fbdfe =_dacd .loadStructure ();if _fbdfe !=nil {_bag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0046\u0061\u0069\u006c\u0020\u0074\u006f \u006co\u0061d\u0020s\u0074\u0072\u0075\u0063\u0074\u0075\u0072\u0065\u0020\u0028\u0025\u0073\u0029",_fbdfe ); return false ,_fbdfe ;};return true ,nil ;}; // GetXObjectByName returns the XObject with the specified keyName and the object type. func (_bfafc *PdfPageResources )GetXObjectByName (keyName _egg .PdfObjectName )(*_egg .PdfObjectStream ,XObjectType ){if _bfafc .XObject ==nil {return nil ,XObjectTypeUndefined ;};_fgffg ,_fedcc :=_egg .TraceToDirectObject (_bfafc .XObject ).(*_egg .PdfObjectDictionary ); if !_fedcc {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0021\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_egg .TraceToDirectObject (_bfafc .XObject )); return nil ,XObjectTypeUndefined ;};if _fgfgf :=_fgffg .Get (keyName );_fgfgf !=nil {_ggdcb ,_aecfa :=_egg .GetStream (_fgfgf );if !_aecfa {_bag .Log .Debug ("X\u004f\u0062\u006a\u0065\u0063\u0074 \u006e\u006f\u0074\u0020\u0070\u006fi\u006e\u0074\u0069\u006e\u0067\u0020\u0074o\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020%\u0054",_fgfgf ); return nil ,XObjectTypeUndefined ;};_aggeg :=_ggdcb .PdfObjectDictionary ;_cgfag ,_aecfa :=_egg .TraceToDirectObject (_aggeg .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_egg .PdfObjectName );if !_aecfa {_bag .Log .Debug ("\u0058\u004fbj\u0065\u0063\u0074 \u0053\u0075\u0062\u0074ype\u0020no\u0074\u0020\u0061\u0020\u004e\u0061\u006de,\u0020\u0064\u0069\u0063\u0074\u003a\u0020%\u0073",_aggeg .String ()); return nil ,XObjectTypeUndefined ;};if *_cgfag =="\u0049\u006d\u0061g\u0065"{return _ggdcb ,XObjectTypeImage ;}else if *_cgfag =="\u0046\u006f\u0072\u006d"{return _ggdcb ,XObjectTypeForm ;}else if *_cgfag =="\u0050\u0053"{return _ggdcb ,XObjectTypePS ; }else {_bag .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0053\u0075b\u0074\u0079\u0070\u0065\u0020\u006e\u006ft\u0020\u006b\u006e\u006f\u0077\u006e\u0020\u0028\u0025\u0073\u0029",*_cgfag );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ; };}; // PdfActionHide represents a hide action. type PdfActionHide struct{*PdfAction ;T _egg .PdfObject ;H _egg .PdfObject ;};func _bagfg (_cfbab *_egg .PdfIndirectObject )(*PdfOutline ,error ){_affa ,_dbafd :=_cfbab .PdfObject .(*_egg .PdfObjectDictionary );if !_dbafd {return nil ,_f .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079"); };_egce :=NewPdfOutline ();if _ddbda :=_affa .Get ("\u0054\u0079\u0070\u0065");_ddbda !=nil {_eccc ,_cdgcf :=_ddbda .(*_egg .PdfObjectName );if _cdgcf {if *_eccc !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u0020\u0054y\u0070\u0065\u0020\u0021\u003d\u0020\u004f\u0075\u0074l\u0069\u006e\u0065s\u0020(\u0025\u0073\u0029",*_eccc ); };};};if _aage :=_affa .Get ("\u0043\u006f\u0075n\u0074");_aage !=nil {_cgfda ,_cgbfc :=_egg .GetNumberAsInt64 (_aage );if _cgbfc !=nil {return nil ,_cgbfc ;};_egce .Count =&_cgfda ;};return _egce ,nil ;}; // DecodeArray returns the component range values for the Indexed colorspace. func (_cecad *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_cecad .HiVal )};}; // VariableText contains the common attributes of a variable text. // The VariableText is typically not used directly, but is can encapsulate by PdfField // See section 12.7.3.3 "Variable Text" and Table 222 (pp. 434-436 PDF32000_2008). type VariableText struct{DA *_egg .PdfObjectString ;Q *_egg .PdfObjectInteger ;DS *_egg .PdfObjectString ;RV _egg .PdfObject ;}; // PdfColorspaceCalRGB stores A, B, C components type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_fcdg *_egg .PdfObjectDictionary ;_fcgc *_egg .PdfIndirectObject ;};func _fedbe ()*modelManager {_gcdff :=modelManager {};_gcdff ._eefgc =map[PdfModel ]_egg .PdfObject {}; _gcdff ._ggbg =map[_egg .PdfObject ]PdfModel {};return &_gcdff ;}; // String returns a string representation of what flags are set. func (_gedde FieldFlag )String ()string {_aedec :="";if _gedde ==FieldFlagClear {_aedec ="\u0043\u006c\u0065a\u0072";return _aedec ;};if _gedde &FieldFlagReadOnly > 0{_aedec +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _gedde &FieldFlagRequired > 0{_aedec +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy"; };if _gedde &FieldFlagNoExport > 0{_aedec +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _gedde &FieldFlagNoToggleToOff > 0{_aedec +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _gedde &FieldFlagRadio > 0{_aedec +="\u007c\u0052\u0061\u0064\u0069\u006f"; };if _gedde &FieldFlagPushbutton > 0{_aedec +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _gedde &FieldFlagRadiosInUnision > 0{_aedec +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";}; if _gedde &FieldFlagMultiline > 0{_aedec +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";};if _gedde &FieldFlagPassword > 0{_aedec +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _gedde &FieldFlagFileSelect > 0{_aedec +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074"; };if _gedde &FieldFlagDoNotScroll > 0{_aedec +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";};if _gedde &FieldFlagComb > 0{_aedec +="\u007c\u0043\u006fm\u0062";};if _gedde &FieldFlagRichText > 0{_aedec +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t"; };if _gedde &FieldFlagDoNotSpellCheck > 0{_aedec +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";};if _gedde &FieldFlagCombo > 0{_aedec +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _gedde &FieldFlagEdit > 0{_aedec +="\u007c\u0045\u0064i\u0074"; };if _gedde &FieldFlagSort > 0{_aedec +="\u007c\u0053\u006fr\u0074";};if _gedde &FieldFlagMultiSelect > 0{_aedec +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";};if _gedde &FieldFlagCommitOnSelChange > 0{_aedec +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065"; };return _fc .Trim (_aedec ,"\u007c");}; // NewPdfAnnotationSound returns a new sound annotation. func NewPdfAnnotationSound ()*PdfAnnotationSound {_aaba :=NewPdfAnnotation ();_feb :=&PdfAnnotationSound {};_feb .PdfAnnotation =_aaba ;_feb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aaba .SetContext (_feb );return _feb ;}; // ToPdfObject implements interface PdfModel. func (_egfde *PdfFilespec )ToPdfObject ()_egg .PdfObject {_edfc :=_egfde .getDict ();_edfc .Clear ();_edfc .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_edfc .SetIfNotNil ("\u0046\u0053",_egfde .FS ); _edfc .SetIfNotNil ("\u0046",_egfde .F );_edfc .SetIfNotNil ("\u0055\u0046",_egfde .UF );_edfc .SetIfNotNil ("\u0044\u004f\u0053",_egfde .DOS );_edfc .SetIfNotNil ("\u004d\u0061\u0063",_egfde .Mac );_edfc .SetIfNotNil ("\u0055\u006e\u0069\u0078",_egfde .Unix ); _edfc .SetIfNotNil ("\u0049\u0044",_egfde .ID );_edfc .SetIfNotNil ("\u0056",_egfde .V );_edfc .SetIfNotNil ("\u0045\u0046",_egfde .EF );_edfc .SetIfNotNil ("\u0052\u0046",_egfde .RF );_edfc .SetIfNotNil ("\u0044\u0065\u0073\u0063",_egfde .Desc );_edfc .SetIfNotNil ("\u0043\u0049",_egfde .CI ); return _egfde ._fbdd ;};type crossReference struct{Type int ; // Type 1 Offset int64 ;Generation int64 ; // Type 2 ObjectNumber int ;Index int ;}; // SetName sets the `Name` field of the signature. func (_agcab *PdfSignature )SetName (name string ){_agcab .Name =_egg .MakeString (name )}; // DecodeArray returns the range of color component values in CalRGB colorspace. func (_babd *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};func (_bcff *PdfReader )newPdfAnnotationTextFromDict (_fcea *_egg .PdfObjectDictionary )(*PdfAnnotationText ,error ){_ggfb :=PdfAnnotationText {};_fagf ,_gef :=_bcff .newPdfAnnotationMarkupFromDict (_fcea ); if _gef !=nil {return nil ,_gef ;};_ggfb .PdfAnnotationMarkup =_fagf ;_ggfb .Open =_fcea .Get ("\u004f\u0070\u0065\u006e");_ggfb .Name =_fcea .Get ("\u004e\u0061\u006d\u0065");_ggfb .State =_fcea .Get ("\u0053\u0074\u0061t\u0065");_ggfb .StateModel =_fcea .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c"); return &_ggfb ,nil ;}; // NewPdfActionSetOCGState returns a new "named" action. func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_ddg :=NewPdfAction ();_bbf :=&PdfActionSetOCGState {};_bbf .PdfAction =_ddg ;_ddg .SetContext (_bbf );return _bbf ;}; // ToPdfObject implements interface PdfModel. func (_agcg *PdfAnnotationCircle )ToPdfObject ()_egg .PdfObject {_agcg .PdfAnnotation .ToPdfObject ();_adfe :=_agcg ._cef ;_cdad :=_adfe .PdfObject .(*_egg .PdfObjectDictionary );_agcg .PdfAnnotationMarkup .appendToPdfDictionary (_cdad );_cdad .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065")); _cdad .SetIfNotNil ("\u0042\u0053",_agcg .BS );_cdad .SetIfNotNil ("\u0049\u0043",_agcg .IC );_cdad .SetIfNotNil ("\u0042\u0045",_agcg .BE );_cdad .SetIfNotNil ("\u0052\u0044",_agcg .RD );return _adfe ;};func _babdd ()string {_cgag .Lock ();defer _cgag .Unlock (); return _fcfbd };func _cegee (_bdfbc *_egg .PdfObjectStream )(*PdfFunctionType4 ,error ){_ceab :=&PdfFunctionType4 {};_ceab ._cbebd =_bdfbc ;_efcfd :=_bdfbc .PdfObjectDictionary ;_fgcaa ,_gfcc :=_egg .TraceToDirectObject (_efcfd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_egg .PdfObjectArray ); if !_gfcc {_bag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064"); };if _fgcaa .Len ()%2!=0{_bag .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_beaa ,_gaee :=_fgcaa .ToFloat64Array (); if _gaee !=nil {return nil ,_gaee ;};_ceab .Domain =_beaa ;_fgcaa ,_gfcc =_egg .TraceToDirectObject (_efcfd .Get ("\u0052\u0061\u006eg\u0065")).(*_egg .PdfObjectArray );if _gfcc {if _fgcaa .Len ()< 0||_fgcaa .Len ()%2!=0{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065"); };_adbe ,_ggfdg :=_fgcaa .ToFloat64Array ();if _ggfdg !=nil {return nil ,_ggfdg ;};_ceab .Range =_adbe ;};_dfffg ,_gaee :=_egg .DecodeStream (_bdfbc );if _gaee !=nil {return nil ,_gaee ;};_ceab ._fafff =_dfffg ;_dcef :=_cde .NewPSParser (_dfffg );_gdece ,_gaee :=_dcef .Parse (); if _gaee !=nil {return nil ,_gaee ;};_ceab .Program =_gdece ;return _ceab ,nil ;}; // GetContext returns the context of the outline tree node, which is either a // *PdfOutline or a *PdfOutlineItem. The method returns nil for uninitialized // tree nodes. func (_cgaa *PdfOutlineTreeNode )GetContext ()PdfModel {if _bfgb ,_gdgg :=_cgaa ._bgbfg .(*PdfOutline );_gdgg {return _bfgb ;};if _bbgfa ,_dacb :=_cgaa ._bgbfg .(*PdfOutlineItem );_dacb {return _bbgfa ;};_bag .Log .Debug ("\u0045\u0052RO\u0052\u0020\u0049n\u0076\u0061\u006c\u0069d o\u0075tl\u0069\u006e\u0065\u0020\u0074\u0072\u0065e \u006e\u006f\u0064\u0065\u0020\u0069\u0074e\u006d"); return nil ;};func (_cdgd *PdfReader )newPdfActionLaunchFromDict (_fga *_egg .PdfObjectDictionary )(*PdfActionLaunch ,error ){_aadc ,_ecfg :=_fgb (_fga .Get ("\u0046"));if _ecfg !=nil {return nil ,_ecfg ;};return &PdfActionLaunch {Win :_fga .Get ("\u0057\u0069\u006e"),Mac :_fga .Get ("\u004d\u0061\u0063"),Unix :_fga .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_fga .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_aadc },nil ; }; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. The slice should contain a single element. func (_bbgf *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_bbgf .Base .GetNumComponents ();_beca :=int (vals [0])*N ; if _beca < 0||(_beca +N -1)>=len (_bbgf ._defc ){_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_beca );return nil ,ErrColorOutOfRange ;};_bccd :=_bbgf ._defc [_beca :_beca +N ]; var _bbaf []float64 ;for _ ,_ccad :=range _bccd {_bbaf =append (_bbaf ,float64 (_ccad )/255.0);};_acce ,_cfcaa :=_bbgf .Base .ColorFromFloats (_bbaf );if _cfcaa !=nil {return nil ,_cfcaa ;};return _acce ,nil ;}; // ToPdfObject implements interface PdfModel. func (_ead *PdfActionGoTo )ToPdfObject ()_egg .PdfObject {_ead .PdfAction .ToPdfObject ();_eea :=_ead ._bf ;_ca :=_eea .PdfObject .(*_egg .PdfObjectDictionary );_ca .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeGoTo )));_ca .SetIfNotNil ("\u0044",_ead .D ); return _eea ;}; // ImageToRGB returns an error since an image cannot be defined in a pattern colorspace. func (_eddc *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0049\u006d\u0061\u0067\u0065\u0020\u0063\u0061n\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u0073\u0070\u0065\u0063\u0069\u0066i\u0065\u0064\u0020\u0069\u006e\u0020\u0050\u0061\u0074\u0074\u0065\u0072n \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065"); return img ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0066\u006f\u0072\u0020\u0069m\u0061\u0067\u0065\u0020\u0028p\u0061\u0074t\u0065\u0072\u006e\u0029");}; // NewPdfActionSubmitForm returns a new "submit form" action. func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_eab :=NewPdfAction ();_dff :=&PdfActionSubmitForm {};_dff .PdfAction =_eab ;_eab .SetContext (_dff );return _dff ;}; // PdfShadingType2 is an Axial shading. type PdfShadingType2 struct{*PdfShading ;Coords *_egg .PdfObjectArray ;Domain *_egg .PdfObjectArray ;Function []PdfFunction ;Extend *_egg .PdfObjectArray ;};type pdfSignDictionary struct{*_egg .PdfObjectDictionary ;_ebdca *SignatureHandler ;_gbbba *PdfSignature ; _cagab int64 ;_fcade int ;_aabac int ;_dcfaa int ;_gbeab int ;}; // ToInteger convert to an integer format. func (_dfdb *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_cbdc :=_dgb .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_cbdc *_dfdb .C ()),uint32 (_cbdc *_dfdb .M ()),uint32 (_cbdc *_dfdb .Y ()),uint32 (_cbdc *_dfdb .K ())};}; // NewCompositePdfFontFromTTFFile loads a composite font from a TTF font file. Composite fonts can // be used to represent unicode fonts which can have multi-byte character codes, representing a wide // range of values. They are often used for symbolic languages, including Chinese, Japanese and Korean. // It is represented by a Type0 Font with an underlying CIDFontType2 and an Identity-H encoding map. // TODO: May be extended in the future to support a larger variety of CMaps and vertical fonts. // NOTE: For simple fonts, use NewPdfFontFromTTFFile. func NewCompositePdfFontFromTTFFile (filePath string )(*PdfFont ,error ){_gaabc ,_ceedg :=_gf .Open (filePath );if _ceedg !=nil {_bag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_ceedg ); return nil ,_ceedg ;};defer _gaabc .Close ();return NewCompositePdfFontFromTTF (_gaabc );}; // AddAnnotation appends `annot` to the list of page annotations. func (_fcgfg *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _fcgfg ._bcce ==nil {_fcgfg .GetAnnotations ();};_fcgfg ._bcce =append (_fcgfg ._bcce ,annot );}; // PdfPageResourcesColorspaces contains the colorspace in the PdfPageResources. // Needs to have matching name and colorspace map entry. The Names define the order. type PdfPageResourcesColorspaces struct{Names []string ;Colorspaces map[string ]PdfColorspace ;_bcecc *_egg .PdfIndirectObject ;};func (_cca *PdfReader )newPdfAnnotationPolyLineFromDict (_dec *_egg .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_bec :=PdfAnnotationPolyLine {}; _ggga ,_cbc :=_cca .newPdfAnnotationMarkupFromDict (_dec );if _cbc !=nil {return nil ,_cbc ;};_bec .PdfAnnotationMarkup =_ggga ;_bec .Vertices =_dec .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_bec .LE =_dec .Get ("\u004c\u0045");_bec .BS =_dec .Get ("\u0042\u0053"); _bec .IC =_dec .Get ("\u0049\u0043");_bec .BE =_dec .Get ("\u0042\u0045");_bec .IT =_dec .Get ("\u0049\u0054");_bec .Measure =_dec .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_bec ,nil ;};func _ecaae (_dffda *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_dffda }}; // NewPdfRectangle creates a PDF rectangle object based on an input array of 4 integers. // Defining the lower left (LL) and upper right (UR) corners with // floating point numbers. func NewPdfRectangle (arr _egg .PdfObjectArray )(*PdfRectangle ,error ){_dabg :=PdfRectangle {};if arr .Len ()!=4{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u0072\u0065\u0063\u0074\u0061\u006e\u0067\u006c\u0065\u0020\u0061\u0072r\u0061\u0079\u002c\u0020\u006c\u0065\u006e \u0021\u003d\u0020\u0034"); };var _cbdf error ;_dabg .Llx ,_cbdf =_egg .GetNumberAsFloat (arr .Get (0));if _cbdf !=nil {return nil ,_cbdf ;};_dabg .Lly ,_cbdf =_egg .GetNumberAsFloat (arr .Get (1));if _cbdf !=nil {return nil ,_cbdf ;};_dabg .Urx ,_cbdf =_egg .GetNumberAsFloat (arr .Get (2)); if _cbdf !=nil {return nil ,_cbdf ;};_dabg .Ury ,_cbdf =_egg .GetNumberAsFloat (arr .Get (3));if _cbdf !=nil {return nil ,_cbdf ;};return &_dabg ,nil ;}; // NewPdfColorCalRGB returns a new CalRBG color. func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_baeg :=PdfColorCalRGB {a ,b ,c };return &_baeg ;};func (_dgaa fontCommon )asPdfObjectDictionary (_cebg string )*_egg .PdfObjectDictionary {if _cebg !=""&&_dgaa ._ebdf !=""&&_cebg !=_dgaa ._ebdf {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0061\u0073\u0050\u0064\u0066\u004f\u0062\u006a\u0065\u0063\u0074\u0044\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002e\u0020O\u0076\u0065\u0072\u0072\u0069\u0064\u0069\u006e\u0067\u0020\u0073\u0075\u0062t\u0079\u0070\u0065\u0020\u0074\u006f \u0025\u0023\u0071 \u0025\u0073",_cebg ,_dgaa ); }else if _cebg ==""&&_dgaa ._ebdf ==""{_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0061s\u0050\u0064\u0066Ob\u006a\u0065\u0063\u0074\u0044\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006e\u006f\u0020\u0073\u0075\u0062\u0074y\u0070\u0065\u002e\u0020\u0066\u006f\u006e\u0074=\u0025\u0073",_dgaa ); }else if _dgaa ._ebdf ==""{_dgaa ._ebdf =_cebg ;};_acgb :=_egg .MakeDict ();_acgb .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0046\u006f\u006e\u0074"));_acgb .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_egg .MakeName (_dgaa ._dgfdc )); _acgb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName (_dgaa ._ebdf ));if _dgaa ._bgacg !=nil {_acgb .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_dgaa ._bgacg .ToPdfObject ());};if _dgaa ._gdbae !=nil {_acgb .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_dgaa ._gdbae ); }else if _dgaa ._bfbgf !=nil {_ecdgad ,_beace :=_dgaa ._bfbgf .Stream ();if _beace !=nil {_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006eo\u0074\u0020\u0067\u0065\u0074\u0020C\u004d\u0061\u0070\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u002e\u0020\u0065r\u0072\u003d\u0025\u0076",_beace ); }else {_acgb .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_ecdgad );};};return _acgb ;};func _afcaa (_ceaad _egg .PdfObject ,_cbcf *PdfReader )(*OutlineDest ,error ){_bgcecc ,_aegfae :=_egg .GetArray (_ceaad );if !_aegfae {return nil ,_gd .New ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0064\u0065\u0073t\u0069\u006e\u0061\u0074i\u006f\u006e\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006d\u0075\u0073\u0074\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079"); };_ebac :=_bgcecc .Len ();if _ebac < 2{return nil ,_f .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u006fu\u0074\u006c\u0069n\u0065\u0020\u0064\u0065\u0073\u0074\u0069\u006e\u0061ti\u006f\u006e\u0020a\u0072\u0072a\u0079\u0020\u006c\u0065\u006e\u0067t\u0068\u003a \u0025\u0064",_ebac ); };_gaegg :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_adabd :=_bgcecc .Get (0);if _bcbdf ,_fccee :=_egg .GetIndirect (_adabd );_fccee {if _ ,_becad ,_ggege :=_cbcf .PageFromIndirectObject (_bcbdf );_ggege ==nil {_gaegg .Page =int64 (_becad -1);}else {_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020g\u0065\u0074\u0020\u0070\u0061\u0067\u0065\u0020\u0069\u006e\u0064\u0065\u0078\u0020\u0066\u006f\u0072\u0020\u0070\u0061\u0067\u0065\u0020\u0025\u002b\u0076",_bcbdf ); };_gaegg .PageObj =_bcbdf ;}else if _gebbb ,_ecda :=_egg .GetIntVal (_adabd );_ecda {if _gebbb >=0&&_gebbb < len (_cbcf .PageList ){_gaegg .PageObj =_cbcf .PageList [_gebbb ].GetPageAsIndirectObject ();}else {_bag .Log .Debug ("\u0057\u0041R\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0067\u0065\u0074\u0020\u0070\u0061\u0067\u0065\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0070\u0061\u0067\u0065\u0020\u0025\u0064",_gebbb ); };_gaegg .Page =int64 (_gebbb );}else {return nil ,_f .Errorf ("\u0069\u006eva\u006c\u0069\u0064 \u006f\u0075\u0074\u006cine\u0020de\u0073\u0074\u0069\u006e\u0061\u0074\u0069on\u0020\u0070\u0061\u0067\u0065\u003a\u0020%\u0054",_adabd );};_fgeb ,_aegfae :=_egg .GetNameVal (_bgcecc .Get (1)); if !_aegfae {_bag .Log .Debug ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0064\u0065s\u0074\u0069\u006e\u0061\u0074\u0069\u006fn\u0020\u006d\u0061\u0067\u006e\u0069\u0066\u0069\u0063\u0061\u0074i\u006f\u006e\u0020\u006d\u006f\u0064\u0065\u003a\u0020\u0025\u0076",_bgcecc .Get (1)); return _gaegg ,nil ;};switch _fgeb {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _ebac > 2{_gaegg .Y ,_ =_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_bgcecc .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _ebac > 2{_gaegg .X ,_ =_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_bgcecc .Get (2))); };case "\u0058\u0059\u005a":if _ebac > 4{_gaegg .X ,_ =_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_bgcecc .Get (2)));_gaegg .Y ,_ =_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_bgcecc .Get (3)));_gaegg .Zoom ,_ =_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_bgcecc .Get (4))); };default:_fgeb ="\u0046\u0069\u0074";};_gaegg .Mode =_fgeb ;return _gaegg ,nil ;};func (_geeed *Image )samplesTrimPadding (_gddaf []uint32 )[]uint32 {_gdacc :=_geeed .ColorComponents *int (_geeed .Width )*int (_geeed .Height );if len (_gddaf )==_gdacc {return _gddaf ; };_gaaca :=make ([]uint32 ,_gdacc );_bcfff :=int (_geeed .Width )*_geeed .ColorComponents ;var _fdab ,_gfafa ,_bfgfe ,_bfcfd int ;_eaaf :=_eg .BytesPerLine (int (_geeed .Width ),int (_geeed .BitsPerComponent ),_geeed .ColorComponents );for _fdab =0;_fdab < int (_geeed .Height ); _fdab ++{_gfafa =_fdab *int (_geeed .Width );_bfgfe =_fdab *_eaaf ;for _bfcfd =0;_bfcfd < _bcfff ;_bfcfd ++{_gaaca [_gfafa +_bfcfd ]=_gddaf [_bfgfe +_bfcfd ];};};return _gaaca ;};func (_dcgge *PdfWriter )optimizeDocument ()error {if _dcgge ._ebgad ==nil {return nil ; };_bfbf ,_eaaae :=_egg .GetDict (_dcgge ._efage );if !_eaaae {return _gd .New ("\u0061\u006e\u0020in\u0066\u006f\u0020\u006f\u0062\u006a\u0065\u0063\u0074 \u0069s\u0020n\u006ft\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079"); };_fegf :=_dc .Document {ID :[2]string {_dcgge ._caddc ,_dcgge ._bagaa },Version :_dcgge ._dacce ,Objects :_dcgge ._bbead ,Info :_bfbf ,Crypt :_dcgge ._agdag ,UseHashBasedID :_dcgge ._aafeg };if _fdggd :=_dcgge ._ebgad .ApplyStandard (&_fegf );_fdggd !=nil {return _fdggd ; };_dcgge ._caddc ,_dcgge ._bagaa =_fegf .ID [0],_fegf .ID [1];_dcgge ._dacce =_fegf .Version ;_dcgge ._bbead =_fegf .Objects ;_dcgge ._efage .PdfObject =_fegf .Info ;_dcgge ._aafeg =_fegf .UseHashBasedID ;_dcgge ._agdag =_fegf .Crypt ;_fgfcf :=make (map[_egg .PdfObject ]struct{},len (_dcgge ._bbead )); for _ ,_fbeee :=range _dcgge ._bbead {_fgfcf [_fbeee ]=struct{}{};};_dcgge ._bacec =_fgfcf ;return nil ;}; // ToPdfObject implements interface PdfModel. func (_gcfc *PdfAnnotationProjection )ToPdfObject ()_egg .PdfObject {_gcfc .PdfAnnotation .ToPdfObject ();_ffab :=_gcfc ._cef ;_ceaf :=_ffab .PdfObject .(*_egg .PdfObjectDictionary );_gcfc .PdfAnnotationMarkup .appendToPdfDictionary (_ceaf );return _ffab ; }; // NewPdfActionGoToE returns a new "go to embedded" action. func NewPdfActionGoToE ()*PdfActionGoToE {_bfc :=NewPdfAction ();_dfg :=&PdfActionGoToE {};_dfg .PdfAction =_bfc ;_bfc .SetContext (_dfg );return _dfg ;}; // GetPdfInfo returns the PDF info dictionary. func (_gcbd *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_efdgc ,_bgccg :=_gcbd .GetTrailer ();if _bgccg !=nil {return nil ,_bgccg ;};var _dabf *_egg .PdfObjectDictionary ;_gfbddb :=_efdgc .Get ("\u0049\u006e\u0066\u006f");switch _fbddd :=_gfbddb .(type ){case *_egg .PdfObjectReference :_bcca :=_fbddd ; _gfbddb ,_bgccg =_gcbd .GetIndirectObjectByNumber (int (_bcca .ObjectNumber ));_gfbddb =_egg .TraceToDirectObject (_gfbddb );if _bgccg !=nil {return nil ,_bgccg ;};_dabf ,_ =_gfbddb .(*_egg .PdfObjectDictionary );case *_egg .PdfObjectDictionary :_dabf =_fbddd ; };if _dabf ==nil {return nil ,_gd .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_ffdbg ,_bgccg :=NewPdfInfoFromObject (_dabf );if _bgccg !=nil {return nil ,_bgccg ; };return _ffdbg ,nil ;};func (_ceecc *PdfWriter )writeString (_fdfed string ){if _ceecc ._gdbeb !=nil {return ;};_fgbe ,_dffab :=_ceecc ._beegad .WriteString (_fdfed );_ceecc ._cdaab +=int64 (_fgbe );_ceecc ._gdbeb =_dffab ;}; // CharcodesToUnicode converts the character codes `charcodes` to a slice of runes. // How it works: // 1) Use the ToUnicode CMap if there is one. // 2) Use the underlying font's encoding. func (_fdcgg *PdfFont )CharcodesToUnicode (charcodes []_ef .CharCode )[]rune {_aaab ,_ ,_ :=_fdcgg .CharcodesToUnicodeWithStats (charcodes );return _aaab ;};func _aeac (_dagb *PdfPage )map[_egg .PdfObjectName ]_egg .PdfObject {_facd :=make (map[_egg .PdfObjectName ]_egg .PdfObject ); if _dagb .Resources ==nil {return _facd ;};if _dagb .Resources .Font !=nil {if _cfdgb ,_aabg :=_egg .GetDict (_dagb .Resources .Font );_aabg {for _ ,_abad :=range _cfdgb .Keys (){_facd [_abad ]=_cfdgb .Get (_abad );};};};if _dagb .Resources .ExtGState !=nil {if _fbda ,_adfd :=_egg .GetDict (_dagb .Resources .ExtGState ); _adfd {for _ ,_gdef :=range _fbda .Keys (){_facd [_gdef ]=_fbda .Get (_gdef );};};};if _dagb .Resources .XObject !=nil {if _dfdd ,_dbffc :=_egg .GetDict (_dagb .Resources .XObject );_dbffc {for _ ,_gfbb :=range _dfdd .Keys (){_facd [_gfbb ]=_dfdd .Get (_gfbb ); };};};if _dagb .Resources .Pattern !=nil {if _afgd ,_gaab :=_egg .GetDict (_dagb .Resources .Pattern );_gaab {for _ ,_egfd :=range _afgd .Keys (){_facd [_egfd ]=_afgd .Get (_egfd );};};};if _dagb .Resources .Shading !=nil {if _acdg ,_ggec :=_egg .GetDict (_dagb .Resources .Shading ); _ggec {for _ ,_egde :=range _acdg .Keys (){_facd [_egde ]=_acdg .Get (_egde );};};};if _dagb .Resources .ProcSet !=nil {if _cfbad ,_afe :=_egg .GetDict (_dagb .Resources .ProcSet );_afe {for _ ,_bgag :=range _cfbad .Keys (){_facd [_bgag ]=_cfbad .Get (_bgag ); };};};if _dagb .Resources .Properties !=nil {if _dfbd ,_adcg :=_egg .GetDict (_dagb .Resources .Properties );_adcg {for _ ,_dfe :=range _dfbd .Keys (){_facd [_dfe ]=_dfbd .Get (_dfe );};};};return _facd ;}; // NewPdfFontFromTTF loads a TTF font and returns a PdfFont type that can be // used in text styling functions. // Uses a WinAnsiTextEncoder and loads only character codes 32-255. // NOTE: For composite fonts such as used in symbolic languages, use NewCompositePdfFontFromTTF. func NewPdfFontFromTTF (r _dag .ReadSeeker )(*PdfFont ,error ){const _efgd =_ef .CharCode (32);const _dddb =_ef .CharCode (255);_cgcbg ,_eddbd :=_ac .ReadAll (r );if _eddbd !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065 \u0074\u006f\u0020\u0072\u0065\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074s\u003a\u0020\u0025\u0076",_eddbd ); return nil ,_eddbd ;};_efegb ,_eddbd :=_bgd .TtfParse (_dd .NewReader (_cgcbg ));if _eddbd !=nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020l\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0054\u0054F\u0020\u0066\u006fn\u0074:\u0020\u0025\u0076",_eddbd ); return nil ,_eddbd ;};_ecfe :=&pdfFontSimple {_babec :make (map[_ef .CharCode ]float64 ),fontCommon :fontCommon {_ebdf :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_ecfe ._cbdegf =_ef .NewWinAnsiEncoder ();_ecfe ._dgfdc =_efegb .PostScriptName ; _ecfe .FirstChar =_egg .MakeInteger (int64 (_efgd ));_ecfe .LastChar =_egg .MakeInteger (int64 (_dddb ));_dgff :=1000.0/float64 (_efegb .UnitsPerEm );if len (_efegb .Widths )<=0{return nil ,_gd .New ("\u0045\u0052\u0052O\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065 \u0028\u0057\u0069\u0064\u0074\u0068\u0073\u0029"); };_ccgaf :=_dgff *float64 (_efegb .Widths [0]);_dced :=make ([]float64 ,0,_dddb -_efgd +1);for _ddec :=_efgd ;_ddec <=_dddb ;_ddec ++{_dcfa ,_ceaec :=_ecfe .Encoder ().CharcodeToRune (_ddec );if !_ceaec {_bag .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_ddec ); _dced =append (_dced ,_ccgaf );continue ;};_aeca ,_acbb :=_efegb .Chars [_dcfa ];if !_acbb {_bag .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_dced =append (_dced ,_ccgaf );continue ; };_afdgc :=_dgff *float64 (_efegb .Widths [_aeca ]);_dced =append (_dced ,_afdgc );};_ecfe .Widths =_egg .MakeIndirectObject (_egg .MakeArrayFromFloats (_dced ));if len (_dced )< int (_dddb -_efgd +1){_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0065\u006e\u0067t\u0068\u0020\u006f\u0066\u0020\u0077\u0069\u0064\u0074\u0068s,\u0020\u0025\u0064 \u003c \u0025\u0064",len (_dced ),255-32+1); return nil ,_egg .ErrRangeError ;};for _bffd :=_efgd ;_bffd <=_dddb ;_bffd ++{_ecfe ._babec [_bffd ]=_dced [_bffd -_efgd ];};_ecfe .Encoding =_egg .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_efeag :=&PdfFontDescriptor {}; _efeag .FontName =_egg .MakeName (_efegb .PostScriptName );_efeag .Ascent =_egg .MakeFloat (_dgff *float64 (_efegb .TypoAscender ));_efeag .Descent =_egg .MakeFloat (_dgff *float64 (_efegb .TypoDescender ));_efeag .CapHeight =_egg .MakeFloat (_dgff *float64 (_efegb .CapHeight )); _efeag .FontBBox =_egg .MakeArrayFromFloats ([]float64 {_dgff *float64 (_efegb .Xmin ),_dgff *float64 (_efegb .Ymin ),_dgff *float64 (_efegb .Xmax ),_dgff *float64 (_efegb .Ymax )});_efeag .ItalicAngle =_egg .MakeFloat (_efegb .ItalicAngle );_efeag .MissingWidth =_egg .MakeFloat (_dgff *float64 (_efegb .Widths [0])); _fagd ,_eddbd :=_egg .MakeStream (_cgcbg ,_egg .NewFlateEncoder ());if _eddbd !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074o\u0020m\u0061\u006b\u0065\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020\u0025\u0076",_eddbd ); return nil ,_eddbd ;};_fagd .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_egg .MakeInteger (int64 (len (_cgcbg ))));_efeag .FontFile2 =_fagd ;if _efegb .Bold {_efeag .StemV =_egg .MakeInteger (120);}else {_efeag .StemV =_egg .MakeInteger (70); };_bfafb :=_cdadd ;if _efegb .IsFixedPitch {_bfafb |=_ebaa ;};if _efegb .ItalicAngle !=0{_bfafb |=_ggcggf ;};_efeag .Flags =_egg .MakeInteger (int64 (_bfafb ));_ecfe ._bgacg =_efeag ;_feged :=&PdfFont {_edde :_ecfe };return _feged ,nil ;}; // ToInteger convert to an integer format. func (_caga *PdfColorDeviceGray )ToInteger (bits int )uint32 {_eadd :=_dgb .Pow (2,float64 (bits ))-1;return uint32 (_eadd *_caga .Val ());}; // ColorToRGB converts a Lab color to an RGB color. func (_gcdg *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_cagac :=func (_fbdbc float64 )float64 {if _fbdbc >=6.0/29{return _fbdbc *_fbdbc *_fbdbc ;};return 108.0/841*(_fbdbc -4/29);};_babb ,_bbfc :=color .(*PdfColorLab );if !_bbfc {_bag .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062"); return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_babb .L ();AStar :=_babb .A ();BStar :=_babb .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200; X :=_gcdg .WhitePoint [0]*_cagac (L );Y :=_gcdg .WhitePoint [1]*_cagac (M );Z :=_gcdg .WhitePoint [2]*_cagac (N );_adec :=3.240479*X +-1.537150*Y +-0.498535*Z ;_cdcb :=-0.969256*X +1.875992*Y +0.041556*Z ;_bdfab :=0.055648*X +-0.204043*Y +1.057311*Z ;_adec =_dgb .Min (_dgb .Max (_adec ,0),1.0); _cdcb =_dgb .Min (_dgb .Max (_cdcb ,0),1.0);_bdfab =_dgb .Min (_dgb .Max (_bdfab ,0),1.0);return NewPdfColorDeviceRGB (_adec ,_cdcb ,_bdfab ),nil ;}; // NewPdfActionTrans returns a new "trans" action. func NewPdfActionTrans ()*PdfActionTrans {_fdf :=NewPdfAction ();_gff :=&PdfActionTrans {};_gff .PdfAction =_fdf ;_fdf .SetContext (_gff );return _gff ;};func (_gec *PdfReader )newPdfAnnotationLinkFromDict (_gbbg *_egg .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_egd :=PdfAnnotationLink {}; _egd .A =_gbbg .Get ("\u0041");_egd .Dest =_gbbg .Get ("\u0044\u0065\u0073\u0074");_egd .H =_gbbg .Get ("\u0048");_egd .PA =_gbbg .Get ("\u0050\u0041");_egd .QuadPoints =_gbbg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_egd .BS =_gbbg .Get ("\u0042\u0053"); return &_egd ,nil ;}; // ToPdfObject implements interface PdfModel. func (_cbde *PdfAnnotationPrinterMark )ToPdfObject ()_egg .PdfObject {_cbde .PdfAnnotation .ToPdfObject ();_eccd :=_cbde ._cef ;_baga :=_eccd .PdfObject .(*_egg .PdfObjectDictionary );_baga .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b")); _baga .SetIfNotNil ("\u004d\u004e",_cbde .MN );return _eccd ;}; // NewPdfAnnotationRichMedia returns a new rich media annotation. func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_ggcd :=NewPdfAnnotation ();_efe :=&PdfAnnotationRichMedia {};_efe .PdfAnnotation =_ggcd ;_ggcd .SetContext (_efe );return _efe ;}; // NewPdfColorDeviceCMYK returns a new CMYK32 color. func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_fcce :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_fcce ;}; // NewPdfActionThread returns a new "thread" action. func NewPdfActionThread ()*PdfActionThread {_ed :=NewPdfAction ();_dce :=&PdfActionThread {};_dce .PdfAction =_ed ;_ed .SetContext (_dce );return _dce ;}; // ToPdfObject implements interface PdfModel. func (_defb *PdfAnnotationSound )ToPdfObject ()_egg .PdfObject {_defb .PdfAnnotation .ToPdfObject ();_bbbg :=_defb ._cef ;_aegg :=_bbbg .PdfObject .(*_egg .PdfObjectDictionary );_defb .PdfAnnotationMarkup .appendToPdfDictionary (_aegg );_aegg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053\u006f\u0075n\u0064")); _aegg .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_defb .Sound );_aegg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_defb .Name );return _bbbg ;}; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. The slice should contain three elements representing the // L (range 0-100), A (range -100-100) and B (range -100-100) components of // the color. func (_effb *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ggae :=vals [0];if _ggae < 0.0||_ggae > 100.0{_bag .Log .Debug ("\u004c\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0072\u0061\u006e\u0067e\u0020\u0028\u0067\u006f\u0074\u0020%\u0076\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030-\u0031\u0030\u0030\u0029",_ggae ); return nil ,ErrColorOutOfRange ;};_ebab :=vals [1];_aedc :=float64 (-100);_gegad :=float64 (100);if len (_effb .Range )> 1{_aedc =_effb .Range [0];_gegad =_effb .Range [1];};if _ebab < _aedc ||_ebab > _gegad {_bag .Log .Debug ("\u0041\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0072\u0061\u006e\u0067e\u0020\u0028\u0067\u006f\u0074\u0020%\u0076\u003b\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0025\u0076\u0020\u0074o\u0020\u0025\u0076\u0029",_ebab ,_aedc ,_gegad ); return nil ,ErrColorOutOfRange ;};_gfba :=vals [2];_cafg :=float64 (-100);_edcg :=float64 (100);if len (_effb .Range )> 3{_cafg =_effb .Range [2];_edcg =_effb .Range [3];};if _gfba < _cafg ||_gfba > _edcg {_bag .Log .Debug ("\u0062\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0072\u0061\u006e\u0067e\u0020\u0028\u0067\u006f\u0074\u0020%\u0076\u003b\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0025\u0076\u0020\u0074o\u0020\u0025\u0076\u0029",_gfba ,_cafg ,_edcg ); return nil ,ErrColorOutOfRange ;};_dgge :=NewPdfColorLab (_ggae ,_ebab ,_gfba );return _dgge ,nil ;}; // IsCheckbox returns true if the button field represents a checkbox, false otherwise. func (_fdgga *PdfFieldButton )IsCheckbox ()bool {return _fdgga .GetType ()==ButtonTypeCheckbox }; // GetFillImage get attached model.Image in push button. func (_egef *PdfFieldButton )GetFillImage ()*Image {if _egef .IsPush (){return _egef ._ffcc ;};return nil ;};func (_cafge *LTV )buildCertChain (_fdbb ,_ffgfa []*_dg .Certificate )([]*_dg .Certificate ,map[string ]*_dg .Certificate ,error ){_gccb :=map[string ]*_dg .Certificate {}; for _ ,_eedd :=range _fdbb {_gccb [_eedd .Subject .CommonName ]=_eedd ;};_ddde :=_fdbb ;for _ ,_dbbfd :=range _ffgfa {_dgfc :=_dbbfd .Subject .CommonName ;if _ ,_ecgg :=_gccb [_dgfc ];_ecgg {continue ;};_gccb [_dgfc ]=_dbbfd ;_ddde =append (_ddde ,_dbbfd ); };if len (_ddde )==0{return nil ,nil ,ErrSignNoCertificates ;};var _fgfab error ;for _cacaa :=_ddde [0];_cacaa !=nil &&!_cafge .CertClient .IsCA (_cacaa );{_gfdgd ,_dbde :=_gccb [_cacaa .Issuer .CommonName ];if !_dbde {if _gfdgd ,_fgfab =_cafge .CertClient .GetIssuer (_cacaa ); _fgfab !=nil {_bag .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0043\u006f\u0075\u006cd\u0020\u006e\u006f\u0074\u0020\u0072\u0065tr\u0069\u0065\u0076\u0065 \u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061te\u0020\u0069s\u0073\u0075\u0065\u0072\u003a\u0020\u0025\u0076",_fgfab ); break ;};_gccb [_cacaa .Issuer .CommonName ]=_gfdgd ;_ddde =append (_ddde ,_gfdgd );};_cacaa =_gfdgd ;};return _ddde ,_gccb ,nil ;}; // ImageToRGB converts Lab colorspace image to RGB and returns the result. func (_ccgcb *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_acfac :=func (_adgf float64 )float64 {if _adgf >=6.0/29{return _adgf *_adgf *_adgf ;};return 108.0/841*(_adgf -4/29);};_deea :=img ._abfae ;if len (_deea )!=6{_bag .Log .Trace ("\u0049\u006d\u0061\u0067\u0065\u0020\u002d\u0020\u004c\u0061\u0062\u0020\u0044e\u0063\u006f\u0064\u0065\u0020\u0072\u0061\u006e\u0067e\u0020\u0021\u003d\u0020\u0036\u002e\u002e\u002e\u0020\u0075\u0073\u0065\u0020\u005b0\u0020\u0031\u0030\u0030\u0020\u0061\u006d\u0069\u006e\u0020\u0061\u006d\u0061\u0078\u0020\u0062\u006d\u0069\u006e\u0020\u0062\u006d\u0061\u0078\u005d\u0020\u0064\u0065\u0066\u0061u\u006c\u0074\u0020\u0064\u0065\u0063\u006f\u0064\u0065 \u0061\u0072r\u0061\u0079"); _deea =_ccgcb .DecodeArray ();};_fgef :=_fb .NewReader (img .getBase ());_daafa :=_eg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._fgggb ,img ._abfae );_ebgeg :=_fb .NewWriter (_daafa );_afed :=_dgb .Pow (2,float64 (img .BitsPerComponent ))-1; _addd :=make ([]uint32 ,3);var (_gcac error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_dcda ,_cbegg ,_bedc float64 ;);for {_gcac =_fgef .ReadSamples (_addd );if _gcac ==_dag .EOF {break ;}else if _gcac !=nil {return img ,_gcac ;};Ls =float64 (_addd [0])/_afed ;As =float64 (_addd [1])/_afed ; Bs =float64 (_addd [2])/_afed ;Ls =_eg .LinearInterpolate (Ls ,0.0,1.0,_deea [0],_deea [1]);As =_eg .LinearInterpolate (As ,0.0,1.0,_deea [2],_deea [3]);Bs =_eg .LinearInterpolate (Bs ,0.0,1.0,_deea [4],_deea [5]);L =(Ls +16)/116+As /500;M =(Ls +16)/116; N =(Ls +16)/116-Bs /200;X =_ccgcb .WhitePoint [0]*_acfac (L );Y =_ccgcb .WhitePoint [1]*_acfac (M );Z =_ccgcb .WhitePoint [2]*_acfac (N );_dcda =3.240479*X +-1.537150*Y +-0.498535*Z ;_cbegg =-0.969256*X +1.875992*Y +0.041556*Z ;_bedc =0.055648*X +-0.204043*Y +1.057311*Z ; _dcda =_dgb .Min (_dgb .Max (_dcda ,0),1.0);_cbegg =_dgb .Min (_dgb .Max (_cbegg ,0),1.0);_bedc =_dgb .Min (_dgb .Max (_bedc ,0),1.0);_addd [0]=uint32 (_dcda *_afed );_addd [1]=uint32 (_cbegg *_afed );_addd [2]=uint32 (_bedc *_afed );if _gcac =_ebgeg .WriteSamples (_addd ); _gcac !=nil {return img ,_gcac ;};};return _cggba (&_daafa ),nil ;}; // NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page. func NewOutlineBookmark (title string ,page *_egg .PdfIndirectObject )*PdfOutlineItem {_cgdb :=PdfOutlineItem {};_cgdb ._bgbfg =&_cgdb ;_cgdb .Title =_egg .MakeString (title );_beddb :=_egg .MakeArray ();_beddb .Append (page );_beddb .Append (_egg .MakeName ("\u0046\u0069\u0074")); _cgdb .Dest =_beddb ;return &_cgdb ;};func _bdcd ()_e .Time {_cgag .Lock ();defer _cgag .Unlock ();return _fabb };func _fgafa (_agbc _egg .PdfObject )(*_egg .PdfObjectDictionary ,*fontCommon ,error ){_febee :=&fontCommon {};if _gagg ,_gggfe :=_agbc .(*_egg .PdfIndirectObject ); _gggfe {_febee ._ccaae =_gagg .ObjectNumber ;};_edbbbb ,_ddbb :=_egg .GetDict (_agbc );if !_ddbb {_bag .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0067\u0069\u0076\u0065\u006e\u0020\u0062\u0079\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_agbc ); return nil ,nil ,ErrFontNotSupported ;};_dfgd ,_ddbb :=_egg .GetNameVal (_edbbbb .Get ("\u0054\u0079\u0070\u0065"));if !_ddbb {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046o\u006e\u0074\u0020\u0049\u006ec\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u002e\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067"); return nil ,nil ,ErrRequiredAttributeMissing ;};if _dfgd !="\u0046\u006f\u006e\u0074"{_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0046\u006f\u006e\u0074\u0020\u0049\u006e\u0063\u006f\u006d\u0070\u0061t\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u002e\u0020\u0054\u0079\u0070\u0065\u003d\u0025\u0071\u002e\u0020\u0053\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0025\u0071.",_dfgd ,"\u0046\u006f\u006e\u0074"); return nil ,nil ,_egg .ErrTypeError ;};_afcga ,_ddbb :=_egg .GetNameVal (_edbbbb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_ddbb {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020F\u006f\u006e\u0074 \u0049\u006e\u0063o\u006d\u0070a\u0074\u0069\u0062\u0069\u006c\u0069t\u0079. \u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067"); return nil ,nil ,ErrRequiredAttributeMissing ;};_febee ._ebdf =_afcga ;_febb ,_ddbb :=_egg .GetNameVal (_edbbbb .Get ("\u004e\u0061\u006d\u0065"));if _ddbb {_febee ._cbgce =_febb ;};_aeea :=_edbbbb .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e"); if _aeea !=nil {_febee ._gdbae =_egg .TraceToDirectObject (_aeea );_fcagg ,_cgacd :=_ebfda (_febee ._gdbae ,_febee );if _cgacd !=nil {return _edbbbb ,_febee ,_cgacd ;};_febee ._bfbgf =_fcagg ;}else if _afcga =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_afcga =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_dcfc ,_bdgb :=_ga .NewCIDSystemInfo (_edbbbb .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f")); if _bdgb !=nil {return _edbbbb ,_febee ,_bdgb ;};_bfacg :=_f .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_dcfc .Registry ,_dcfc .Ordering );if _ga .IsPredefinedCMap (_bfacg ){_febee ._bfbgf ,_bdgb =_ga .LoadPredefinedCMap (_bfacg ); if _bdgb !=nil {_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020l\u006f\u0061\u0064\u0020\u0070\u0072\u0065\u0064\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0043\u004d\u0061\u0070\u0020\u0025\u0073\u003a\u0020\u0025\u0076",_bfacg ,_bdgb ); };};};_fcge :=_edbbbb .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _fcge !=nil {_efcg ,_ggbd :=_gcgfb (_fcge );if _ggbd !=nil {_bag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0042\u0061\u0064\u0020\u0066\u006f\u006et\u0020d\u0065s\u0063r\u0069\u0070\u0074\u006f\u0072\u002e\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_ggbd ); return _edbbbb ,_febee ,_ggbd ;};_febee ._bgacg =_efcg ;};if _afcga !="\u0054\u0079\u0070e\u0033"{_ccbe ,_cfaa :=_egg .GetNameVal (_edbbbb .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_cfaa {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0046\u006f\u006et\u0020\u0049\u006ec\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069t\u0079\u002e\u0020\u0042\u0061se\u0046\u006f\u006e\u0074\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067"); return _edbbbb ,_febee ,ErrRequiredAttributeMissing ;};_febee ._dgfdc =_ccbe ;};return _edbbbb ,_febee ,nil ;}; // ToPdfObject implements interface PdfModel. func (_dfbc *PdfAnnotationStrikeOut )ToPdfObject ()_egg .PdfObject {_dfbc .PdfAnnotation .ToPdfObject ();_bed :=_dfbc ._cef ;_bdgd :=_bed .PdfObject .(*_egg .PdfObjectDictionary );_dfbc .PdfAnnotationMarkup .appendToPdfDictionary (_bdgd );_bdgd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t")); _bdgd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_dfbc .QuadPoints );return _bed ;}; // NewPdfColorspaceICCBased returns a new ICCBased colorspace object. func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_fgbgg :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029"); };_fgbgg .N =N ;return _fgbgg ,nil ;}; // PdfActionType represents an action type in PDF (section 12.6.4 p. 417). type PdfActionType string ;func _fgb (_fdcd _egg .PdfObject )(*PdfFilespec ,error ){if _fdcd ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_fdcd );}; // ToPdfObject sets the common field elements. // Note: Call the more field context's ToPdfObject to set both the generic and // non-generic information. func (_efcf *PdfField )ToPdfObject ()_egg .PdfObject {_fbgge :=_efcf ._agef ;_begc :=_fbgge .PdfObject .(*_egg .PdfObjectDictionary );_bbagg :=_egg .MakeArray ();for _ ,_bacg :=range _efcf .Kids {_bbagg .Append (_bacg .ToPdfObject ());};for _ ,_bebcc :=range _efcf .Annotations {if _bebcc ._cef !=_efcf ._agef {_bbagg .Append (_bebcc .GetContext ().ToPdfObject ()); };};if _efcf .Parent !=nil {_begc .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_efcf .Parent .GetContainingPdfObject ());};if _bbagg .Len ()> 0{_begc .Set ("\u004b\u0069\u0064\u0073",_bbagg );};_begc .SetIfNotNil ("\u0046\u0054",_efcf .FT );_begc .SetIfNotNil ("\u0054",_efcf .T ); _begc .SetIfNotNil ("\u0054\u0055",_efcf .TU );_begc .SetIfNotNil ("\u0054\u004d",_efcf .TM );_begc .SetIfNotNil ("\u0046\u0066",_efcf .Ff );_begc .SetIfNotNil ("\u0056",_efcf .V );_begc .SetIfNotNil ("\u0044\u0056",_efcf .DV );_begc .SetIfNotNil ("\u0041\u0041",_efcf .AA ); if _efcf .VariableText !=nil {_begc .SetIfNotNil ("\u0044\u0041",_efcf .VariableText .DA );_begc .SetIfNotNil ("\u0051",_efcf .VariableText .Q );_begc .SetIfNotNil ("\u0044\u0053",_efcf .VariableText .DS );_begc .SetIfNotNil ("\u0052\u0056",_efcf .VariableText .RV ); };return _fbgge ;}; // NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject. func NewPdfInfoFromObject (obj _egg .PdfObject )(*PdfInfo ,error ){var _bfbd PdfInfo ;_gagcd ,_dadgd :=obj .(*_egg .PdfObjectDictionary );if !_dadgd {return nil ,_f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0070\u0064\u0066\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079p\u0065:\u0020\u0025\u0054",obj ); };for _ ,_cbfff :=range _gagcd .Keys (){switch _cbfff {case "\u0054\u0069\u0074l\u0065":_bfbd .Title ,_ =_egg .GetString (_gagcd .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_bfbd .Author ,_ =_egg .GetString (_gagcd .Get ("\u0041\u0075\u0074\u0068\u006f\u0072")); case "\u0053u\u0062\u006a\u0065\u0063\u0074":_bfbd .Subject ,_ =_egg .GetString (_gagcd .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_bfbd .Keywords ,_ =_egg .GetString (_gagcd .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073")); case "\u0043r\u0065\u0061\u0074\u006f\u0072":_bfbd .Creator ,_ =_egg .GetString (_gagcd .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_bfbd .Producer ,_ =_egg .GetString (_gagcd .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072")); case "\u0054r\u0061\u0070\u0070\u0065\u0064":_bfbd .Trapped ,_ =_egg .GetName (_gagcd .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _dgfge ,_eaagb :=_egg .GetString (_gagcd .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065")); _eaagb &&_dgfge .String ()!=""{_cgfad ,_cdcd :=NewPdfDate (_dgfge .String ());if _cdcd !=nil {return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0072e\u0061\u0074\u0069\u006f\u006e\u0044\u0061t\u0065\u0020\u0066\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0077",_cdcd ); };_bfbd .CreationDate =&_cgfad ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _bcea ,_fcgfd :=_egg .GetString (_gagcd .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_fcgfd &&_bcea .String ()!=""{_aggd ,_dgca :=NewPdfDate (_bcea .String ());if _dgca !=nil {return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_dgca ); };_bfbd .ModifiedDate =&_aggd ;};default:_dgcba ,_ :=_egg .GetString (_gagcd .Get (_cbfff ));if _bfbd ._eggg ==nil {_bfbd ._eggg =_egg .MakeDict ();};_bfbd ._eggg .Set (_cbfff ,_dgcba );};};return &_bfbd ,nil ;};func _cfdec (_abag _egg .PdfObject )[]*_egg .PdfObjectStream {if _abag ==nil {return nil ; };_ccgee ,_bccdf :=_egg .GetArray (_abag );if !_bccdf ||_ccgee .Len ()==0{return nil ;};_begcf :=make ([]*_egg .PdfObjectStream ,0,_ccgee .Len ());for _ ,_abbfa :=range _ccgee .Elements (){if _gdcddb ,_bbegg :=_egg .GetStream (_abbfa );_bbegg {_begcf =append (_begcf ,_gdcddb ); };};return _begcf ;}; // SetVersion sets the PDF version of the output file. func (_bgfcd *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_bgfcd ._dacce .Major =majorVersion ;_bgfcd ._dacce .Minor =minorVersion ;}; // UpdatePage updates the `page` in the new revision if it has changed. func (_ffag *PdfAppender )UpdatePage (page *PdfPage ){_ffag .updateObjectsDeep (page .ToPdfObject (),nil )}; // ToPdfObject implements interface PdfModel. func (_abd *PdfActionLaunch )ToPdfObject ()_egg .PdfObject {_abd .PdfAction .ToPdfObject ();_bad :=_abd ._bf ;_fcb :=_bad .PdfObject .(*_egg .PdfObjectDictionary );_fcb .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeLaunch )));if _abd .F !=nil {_fcb .Set ("\u0046",_abd .F .ToPdfObject ()); };_fcb .SetIfNotNil ("\u0057\u0069\u006e",_abd .Win );_fcb .SetIfNotNil ("\u004d\u0061\u0063",_abd .Mac );_fcb .SetIfNotNil ("\u0055\u006e\u0069\u0078",_abd .Unix );_fcb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_abd .NewWindow );return _bad ; }; // A PdfPattern can represent a Pattern, either a tiling pattern or a shading pattern. // Note that all patterns shall be treated as colours; a Pattern colour space shall be established with the CS or cs // operator just like other colour spaces, and a particular pattern shall be installed as the current colour with the // SCN or scn operator. type PdfPattern struct{ // Type: Pattern PatternType int64 ;_fcbdg PdfModel ;_fgec _egg .PdfObject ;}; // GetPreviousRevision returns the previous revision of PdfReader for the Pdf document func (_aggfc *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _aggfc ._dafgab .GetRevisionNumber ()==0{return nil ,_gd .New ("\u0070\u0072e\u0076\u0069\u006f\u0075\u0073\u0020\u0076\u0065\u0072\u0073\u0069\u006f\u006e\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0065xi\u0073\u0074"); };if _fceg ,_cgec :=_aggfc ._gcfcf [_aggfc ];_cgec {return _fceg ,nil ;};_gadfb ,_deaffb :=_aggfc ._dafgab .GetPreviousRevisionReadSeeker ();if _deaffb !=nil {return nil ,_deaffb ;};_gfdfc ,_deaffb :=_ffee (_gadfb ,_aggfc ._ecbf ,_aggfc ._gddafb ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn"); if _deaffb !=nil {return nil ,_deaffb ;};_aggfc ._acad [_aggfc ._dafgab .GetRevisionNumber ()-1]=_gfdfc ;_aggfc ._gcfcf [_aggfc ]=_gfdfc ;_gfdfc ._gcfcf =_aggfc ._gcfcf ;return _gfdfc ,nil ;}; // PdfInfoTrapped specifies pdf trapped information. type PdfInfoTrapped string ; // PdfActionURI represents an URI action. type PdfActionURI struct{*PdfAction ;URI _egg .PdfObject ;IsMap _egg .PdfObject ;}; // PdfAnnotationHighlight represents Highlight annotations. // (Section 12.5.6.10). type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _egg .PdfObject ;}; // GetNumComponents returns the number of color components (1 for CalGray). func (_aafd *PdfColorCalGray )GetNumComponents ()int {return 1};func (_adbb *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";}; // PdfShadingType1 is a Function-based shading. type PdfShadingType1 struct{*PdfShading ;Domain *_egg .PdfObjectArray ;Matrix *_egg .PdfObjectArray ;Function []PdfFunction ;}; // ColorToRGB converts a CalGray color to an RGB color. func (_cebf *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_eaee ,_cega :=color .(*PdfColorCalGray );if !_cega {_bag .Log .Debug ("\u0049n\u0070\u0075\u0074\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u006eo\u0074\u0020\u0063\u0061\u006c\u0020\u0067\u0072\u0061\u0079"); return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_eaee .Val ();X :=_cebf .WhitePoint [0]*_dgb .Pow (ANorm ,_cebf .Gamma );Y :=_cebf .WhitePoint [1]*_dgb .Pow (ANorm ,_cebf .Gamma ); Z :=_cebf .WhitePoint [2]*_dgb .Pow (ANorm ,_cebf .Gamma );_dedg :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ffe :=-0.969256*X +1.875992*Y +0.041556*Z ;_ggecd :=0.055648*X +-0.204043*Y +1.057311*Z ;_dedg =_dgb .Min (_dgb .Max (_dedg ,0),1.0);_ffe =_dgb .Min (_dgb .Max (_ffe ,0),1.0); _ggecd =_dgb .Min (_dgb .Max (_ggecd ,0),1.0);return NewPdfColorDeviceRGB (_dedg ,_ffe ,_ggecd ),nil ;};func _dacc (_dbga _egg .PdfObject )(*PdfBorderStyle ,error ){_cddd :=&PdfBorderStyle {};_cddd ._fffd =_dbga ;var _bdc *_egg .PdfObjectDictionary ;_dbga =_egg .TraceToDirectObject (_dbga ); _bdc ,_gdeb :=_dbga .(*_egg .PdfObjectDictionary );if !_gdeb {return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _fcbc :=_bdc .Get ("\u0054\u0079\u0070\u0065");_fcbc !=nil {_agb ,_ebea :=_fcbc .(*_egg .PdfObjectName ); if !_ebea {_bag .Log .Debug ("I\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062i\u006c\u0069\u0074\u0079\u0020\u0077\u0069th\u0020\u0054\u0079\u0070e\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u006e\u0061me\u0020\u006fb\u006a\u0065\u0063\u0074\u003a\u0020\u0025\u0054",_fcbc ); }else {if *_agb !="\u0042\u006f\u0072\u0064\u0065\u0072"{_bag .Log .Debug ("W\u0061\u0072\u006e\u0069\u006e\u0067,\u0020\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020B\u006f\u0072\u0064e\u0072:\u0020\u0025\u0073",*_agb );};};};if _fad :=_bdc .Get ("\u0057"); _fad !=nil {_cgad ,_cbcg :=_egg .GetNumberAsFloat (_fad );if _cbcg !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_cbcg );return nil ,_cbcg ;};_cddd .W =&_cgad ; };if _ccdd :=_bdc .Get ("\u0053");_ccdd !=nil {_daga ,_bdaa :=_ccdd .(*_egg .PdfObjectName );if !_bdaa {return nil ,_gd .New ("\u0062\u006f\u0072\u0064\u0065\u0072\u0020\u0053\u0020\u006e\u006ft\u0020\u0061\u0020\u006e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074"); };var _fgaf BorderStyle ;switch *_daga {case "\u0053":_fgaf =BorderStyleSolid ;case "\u0044":_fgaf =BorderStyleDashed ;case "\u0042":_fgaf =BorderStyleBeveled ;case "\u0049":_fgaf =BorderStyleInset ;case "\u0055":_fgaf =BorderStyleUnderline ;default:_bag .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_daga ); return nil ,_gd .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_cddd .S =&_fgaf ;};if _bdeg :=_bdc .Get ("\u0044");_bdeg !=nil {_bdbc ,_edgb :=_bdeg .(*_egg .PdfObjectArray ); if !_edgb {_bag .Log .Debug ("\u0042\u006f\u0072\u0064\u0065\u0072\u0020\u0044\u0020\u0064a\u0073\u0068\u0020\u006e\u006f\u0074\u0020a\u006e\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0054",_bdeg );return nil ,_gd .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr"); };_cgd ,_ade :=_bdbc .ToIntegerArray ();if _ade !=nil {_bag .Log .Debug ("\u0042\u006f\u0072\u0064\u0065\u0072\u0020\u0044 \u0050\u0072\u006fbl\u0065\u006d\u0020\u0063\u006f\u006ev\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0069\u006e\u0074\u0065\u0067e\u0072\u0020\u0061\u0072\u0072\u0061\u0079\u003a \u0025\u0076",_ade ); return nil ,_ade ;};_cddd .D =&_cgd ;};return _cddd ,nil ;};func (_ccag *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _ccag ._dafgab .GetCrypter ()!=nil &&!_ccag ._dafgab .IsAuthenticated (){return nil ,_f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074"); };_gdfcf :=_ccag ._eacf ;_bddff :=_gdfcf .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _bddff ==nil {return nil ,nil ;};_caggec ,_ :=_egg .GetIndirect (_bddff );_bddff =_egg .TraceToDirectObject (_bddff );if _egg .IsNullObject (_bddff ){_bag .Log .Trace ("\u0041\u0063\u0072of\u006f\u0072\u006d\u0020\u0069\u0073\u0020\u0061\u0020n\u0075l\u006c \u006fb\u006a\u0065\u0063\u0074\u0020\u0028\u0065\u006d\u0070\u0074\u0079\u0029\u000a"); return nil ,nil ;};_adage ,_ggbfg :=_egg .GetDict (_bddff );if !_ggbfg {_bag .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_bddff );_bag .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073"); return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_bddff );};_bag .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073"); _bag .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0065\u0020\u0074\u0068\u0065\u0020\u0041\u0063r\u006ff\u006f\u0072\u006d\u0073\u0020\u0073\u0074\u0072\u0075\u0063\u0074\u0075\u0072\u0065");if !_ccag ._cede {_gbge :=_ccag .traverseObjectData (_adage ); if _gbge !=nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0074\u0072a\u0076\u0065\u0072\u0073\u0065\u0020\u0041\u0063\u0072\u006fFo\u0072\u006d\u0073 \u0028%\u0073\u0029",_gbge ); return nil ,_gbge ;};};_dbbb ,_begfc :=_ccag .newPdfAcroFormFromDict (_caggec ,_adage );if _begfc !=nil {return nil ,_begfc ;};return _dbbb ,nil ;};func (_egea *LTV )getCRLs (_adgbc []*_dg .Certificate )([][]byte ,error ){_eggee :=make ([][]byte ,0,len (_adgbc )); for _ ,_fcgb :=range _adgbc {for _ ,_agfd :=range _fcgb .CRLDistributionPoints {if _egea .CertClient .IsCA (_fcgb ){continue ;};_gaaac ,_egec :=_egea .CRLClient .MakeRequest (_agfd ,_fcgb );if _egec !=nil {_bag .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0043R\u004c\u0020\u0072\u0065\u0071\u0075\u0065\u0073\u0074 \u0065\u0072\u0072o\u0072:\u0020\u0025\u0076",_egec ); continue ;};_eggee =append (_eggee ,_gaaac );};};return _eggee ,nil ;}; // Sign signs a specific page with a digital signature. // The signature field parameter must have a valid signature dictionary // specified by its V field. func (_gbdcd *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _gd .New ("\u0073\u0069g\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0062\u0065 n\u0069\u006c"); };_ddge :=field .V ;if _ddge ==nil {return _gd .New ("\u0073\u0069\u0067na\u0074\u0075\u0072\u0065\u0020\u0064\u0069\u0063\u0074i\u006fn\u0061r\u0079 \u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u006e\u0069\u006c");};_cag :=pageNum -1;if _cag < 0||_cag > len (_gbdcd ._beac )-1{return _f .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum ); };_bbagd :=_gbdcd .Reader .PageList [_cag ];field .P =_bbagd .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_egg .MakeString (_f .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));};_bbagd .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation ); if _gbdcd ._aeec ==_gbdcd ._bgaa .AcroForm {_gbdcd ._aeec =_gbdcd .Reader .AcroForm ;};_gffd :=_gbdcd ._aeec ;if _gffd ==nil {_gffd =NewPdfAcroForm ();};_gffd .SigFlags =_egg .MakeInteger (3);_ccgc :=append (_gffd .AllFields (),field .PdfField );_gffd .Fields =&_ccgc ; _gbdcd .ReplaceAcroForm (_gffd );_gbdcd .UpdatePage (_bbagd );_gbdcd ._beac [_cag ]=_bbagd ;if _ ,_eede :=field .V .GetDocMDPPermission ();_eede {_gbdcd ._aga =NewPermissions (field .V );};return nil ;};func (_cffad *pdfCIDFontType2 )baseFields ()*fontCommon {return &_cffad .fontCommon }; // NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is // a failure in loading. func NewPdfColorspaceFromPdfObject (obj _egg .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _bdea *_egg .PdfIndirectObject ;var _caba *_egg .PdfObjectName ;var _gbaed *_egg .PdfObjectArray ;if _ggfdc ,_eeda :=obj .(*_egg .PdfIndirectObject ); _eeda {_bdea =_ggfdc ;};obj =_egg .TraceToDirectObject (obj );switch _cecde :=obj .(type ){case *_egg .PdfObjectArray :_gbaed =_cecde ;case *_egg .PdfObjectName :_caba =_cecde ;};if _caba !=nil {switch *_caba {case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":return NewPdfColorspaceDeviceGray (),nil ; case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":return NewPdfColorspaceDeviceRGB (),nil ;case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":return NewPdfColorspaceDeviceCMYK (),nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return NewPdfColorspaceSpecialPattern (),nil ; default:_bag .Log .Debug ("\u0045\u0052\u0052\u004fR\u003a\u0020\u0055\u006e\u006b\u006e\u006f\u0077\u006e\u0020c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065 \u0025\u0073",*_caba );return nil ,_ccgg ;};};if _gbaed !=nil &&_gbaed .Len ()> 0{var _ecef _egg .PdfObject =_bdea ; if _bdea ==nil {_ecef =_gbaed ;};if _gddd ,_cbeg :=_egg .GetName (_gbaed .Get (0));_cbeg {switch _gddd .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _gbaed .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _gbaed .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ; };case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _gbaed .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _deec (_ecef );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _ffc (_ecef ); case "\u004c\u0061\u0062":return _dagag (_ecef );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _gbbb (_ecef );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _fef (_ecef );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _feaa (_ecef ); case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _bcgcb (_ecef );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _eggba (_ecef );default:_bag .Log .Debug ("A\u0072\u0072\u0061\u0079\u0020\u0077i\u0074\u0068\u0020\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u006e\u0061m\u0065:\u0020\u0025\u0073",*_gddd ); };};};_bag .Log .Debug ("\u0050\u0044\u0046\u0020\u0046i\u006c\u0065\u0020\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0043\u006f\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0073",obj .String ()); return nil ,ErrTypeCheck ;}; // GetOutlineTree returns the outline tree. func (_agac *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _agac ._cccbg }; // G returns the value of the green component of the color. func (_edd *PdfColorDeviceRGB )G ()float64 {return _edd [1]}; // ToPdfObject implements interface PdfModel. func (_faf *PdfActionImportData )ToPdfObject ()_egg .PdfObject {_faf .PdfAction .ToPdfObject ();_gbde :=_faf ._bf ;_fde :=_gbde .PdfObject .(*_egg .PdfObjectDictionary );_fde .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeImportData )));if _faf .F !=nil {_fde .Set ("\u0046",_faf .F .ToPdfObject ()); };return _gbde ;}; // NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an // error is returned. func NewPdfFontFromPdfObject (fontObj _egg .PdfObject )(*PdfFont ,error ){return _faffdb (fontObj ,true )}; // ToGoImage converts the unidoc Image to a golang Image structure. func (_aacgd *Image )ToGoImage ()(_cd .Image ,error ){_bag .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_dfce ,_fbaf :=_eg .NewImage (int (_aacgd .Width ),int (_aacgd .Height ),int (_aacgd .BitsPerComponent ),_aacgd .ColorComponents ,_aacgd .Data ,_aacgd ._fgggb ,_aacgd ._abfae ); if _fbaf !=nil {return nil ,_fbaf ;};return _dfce ,nil ;}; // NewPdfAnnotation3D returns a new 3d annotation. func NewPdfAnnotation3D ()*PdfAnnotation3D {_bbde :=NewPdfAnnotation ();_fgc :=&PdfAnnotation3D {};_fgc .PdfAnnotation =_bbde ;_bbde .SetContext (_fgc );return _fgc ;};func _acfec (_bebd *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_agcag ,_bbcg :=_egg .GetDict (_bebd .AP ); if !_bbcg {return nil ,nil ,_gd .New ("f\u0069\u0065\u006c\u0064\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u0020\u0041\u0050\u0020d\u0069\u0063\u0074i\u006fn\u0061\u0072\u0079");};if _agcag ==nil {return nil ,nil ,nil ;};_gfdg ,_bbcg :=_egg .GetArray (_bebd .Rect ); if !_bbcg ||_gfdg .Len ()!=4{return nil ,nil ,_gd .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_cbge ,_ccaee :=NewPdfRectangle (*_gfdg );if _ccaee !=nil {return nil ,nil ,_ccaee ;};_efgfg :=_egg .TraceToDirectObject (_agcag .Get ("\u004e")); switch _feebd :=_efgfg .(type ){case *_egg .PdfObjectStream :_acdfa :=_feebd ;_bcgfe ,_gfeg :=NewXObjectFormFromStream (_acdfa );return _bcgfe ,_cbge ,_gfeg ;case *_egg .PdfObjectDictionary :_abcbd :=_feebd ;_aada ,_efffb :=_egg .GetName (_bebd .AS );if !_efffb {return nil ,nil ,nil ; };if _abcbd .Get (*_aada )==nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0041\u0053\u0020\u0073\u0074\u0061\u0074\u0065\u0020\u006e\u006f\u0074 \u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0069\u006e\u0020\u0041\u0050\u0020\u0064\u0069\u0063\u0074\u0020\u002d\u0020\u0069\u0067\u006e\u006f\u0072\u0069\u006eg"); return nil ,nil ,nil ;};_daadg ,_efffb :=_egg .GetStream (_abcbd .Get (*_aada ));if !_efffb {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055n\u0061\u0062\u006ce \u0074\u006f\u0020\u0061\u0063\u0063e\u0073\u0073\u0020\u0061\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u0073t\u0072\u0065\u0061\u006d\u0020\u0066\u006f\u0072 \u0025\u0076",_aada ); return nil ,nil ,_gd .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_edgfb ,_begce :=NewXObjectFormFromStream (_daadg );return _edgfb ,_cbge ,_begce ;};_bag .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_efgfg ); return nil ,nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ; BorderStyleUnderline BorderStyle =iota ;);func (_egdcad *PdfWriter )writeBytes (_cfaee []byte ){if _egdcad ._gdbeb !=nil {return ;};_bedeb ,_ddfcc :=_egdcad ._beegad .Write (_cfaee );_egdcad ._cdaab +=int64 (_bedeb );_egdcad ._gdbeb =_ddfcc ;}; // NewPdfColorCalGray returns a new CalGray color. func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_ccea :=PdfColorCalGray (grayVal );return &_ccea ;};func _caafc (_caae *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_caae }};func _dbffb (_dgbge *_egg .PdfObjectDictionary ,_ddeb *fontCommon )(*pdfCIDFontType2 ,error ){if _ddeb ._ebdf !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_bag .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0046\u006fn\u0074\u0020\u0053u\u0062\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020CI\u0044\u0046\u006fn\u0074\u0054y\u0070\u0065\u0032\u002e\u0020\u0066o\u006e\u0074=\u0025\u0073",_ddeb ); return nil ,_egg .ErrRangeError ;};_fbgbb :=_geeb (_ddeb );_dfea ,_eefa :=_egg .GetDict (_dgbge .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_eefa {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043I\u0044\u0053\u0079st\u0065\u006d\u0049\u006e\u0066\u006f \u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u002e\u0020\u0066\u006f\u006e\u0074=\u0025\u0073",_ddeb ); return nil ,ErrRequiredAttributeMissing ;};_fbgbb .CIDSystemInfo =_dfea ;_fbgbb .DW =_dgbge .Get ("\u0044\u0057");_fbgbb .W =_dgbge .Get ("\u0057");_fbgbb .DW2 =_dgbge .Get ("\u0044\u0057\u0032");_fbgbb .W2 =_dgbge .Get ("\u0057\u0032");_fbgbb .CIDToGIDMap =_dgbge .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070"); _fbgbb ._bgec =1000.0;if _gbdae ,_fgdd :=_egg .GetNumberAsFloat (_fbgbb .DW );_fgdd ==nil {_fbgbb ._bgec =_gbdae ;};_dffb ,_cddcb :=_babef (_fbgbb .W );if _cddcb !=nil {return nil ,_cddcb ;};if _dffb ==nil {_dffb =map[_ef .CharCode ]float64 {};};_fbgbb ._fafe =_dffb ; return _fbgbb ,nil ;}; // Initialize initializes the PdfSignature. func (_edgba *PdfSignature )Initialize ()error {if _edgba .Handler ==nil {return _gd .New ("\u0073\u0069\u0067n\u0061\u0074\u0075\u0072e\u0020\u0068\u0061\u006e\u0064\u006c\u0065r\u0020\u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u006e\u0069\u006c"); };return _edgba .Handler .InitSignature (_edgba );}; // CheckAccessRights checks access rights and permissions for a specified password. If either user/owner // password is specified, full rights are granted, otherwise the access rights are specified by the // Permissions flag. // // The bool flag indicates that the user can access and view the file. // The AccessPermissions shows what access the user has for editing etc. // An error is returned if there was a problem performing the authentication. func (_ebgbd *PdfReader )CheckAccessRights (password []byte )(bool ,_fe .Permissions ,error ){return _ebgbd ._dafgab .CheckAccessRights (password );}; // PdfOutlineTreeNode contains common fields used by the outline and outline // item objects. type PdfOutlineTreeNode struct{_bgbfg interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};func (_afbf *PdfReader )newPdfAnnotationInkFromDict (_fgfc *_egg .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_dgcb :=PdfAnnotationInk {};_dgbc ,_eagg :=_afbf .newPdfAnnotationMarkupFromDict (_fgfc ); if _eagg !=nil {return nil ,_eagg ;};_dgcb .PdfAnnotationMarkup =_dgbc ;_dgcb .InkList =_fgfc .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_dgcb .BS =_fgfc .Get ("\u0042\u0053");return &_dgcb ,nil ;};func _ddfce (_eedef *_egg .PdfObjectDictionary )(*PdfFieldChoice ,error ){_bagdb :=&PdfFieldChoice {}; _bagdb .Opt ,_ =_egg .GetArray (_eedef .Get ("\u004f\u0070\u0074"));_bagdb .TI ,_ =_egg .GetInt (_eedef .Get ("\u0054\u0049"));_bagdb .I ,_ =_egg .GetArray (_eedef .Get ("\u0049"));return _bagdb ,nil ;}; // PdfAnnotationTrapNet represents TrapNet annotations. // (Section 12.5.6.21). type PdfAnnotationTrapNet struct{*PdfAnnotation };func _fccda (_aeeaf *_egg .PdfObjectDictionary )(*PdfShadingType4 ,error ){_cbfdd :=PdfShadingType4 {};_fdgae :=_aeeaf .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065"); if _fdgae ==nil {_bag .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064 \u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065\u0072C\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065"); return nil ,ErrRequiredAttributeMissing ;};_cadfg ,_fggbf :=_fdgae .(*_egg .PdfObjectInteger );if !_fggbf {_bag .Log .Debug ("\u0042\u0069\u0074\u0073\u0050e\u0072\u0043\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_fdgae ); return nil ,_egg .ErrTypeError ;};_cbfdd .BitsPerCoordinate =_cadfg ;_fdgae =_aeeaf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fdgae ==nil {_bag .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064\u0020a\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073in\u0067\u003a\u0020B\u0069\u0074s\u0050\u0065\u0072\u0043\u006f\u006dp\u006f\u006ee\u006e\u0074"); return nil ,ErrRequiredAttributeMissing ;};_cadfg ,_fggbf =_fdgae .(*_egg .PdfObjectInteger );if !_fggbf {_bag .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065r \u0028\u0067\u006ft\u0020%\u0054\u0029",_fdgae ); return nil ,_egg .ErrTypeError ;};_cbfdd .BitsPerComponent =_cadfg ;_fdgae =_aeeaf .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fdgae ==nil {_bag .Log .Debug ("\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065r\u0046\u006c\u0061\u0067"); return nil ,ErrRequiredAttributeMissing ;};_cadfg ,_fggbf =_fdgae .(*_egg .PdfObjectInteger );if !_fggbf {_bag .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072F\u006c\u0061\u0067\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074e\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025T\u0029",_fdgae ); return nil ,_egg .ErrTypeError ;};_cbfdd .BitsPerComponent =_cadfg ;_fdgae =_aeeaf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fdgae ==nil {_bag .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0044\u0065\u0063\u006f\u0064\u0065"); return nil ,ErrRequiredAttributeMissing ;};_gbfb ,_fggbf :=_fdgae .(*_egg .PdfObjectArray );if !_fggbf {_bag .Log .Debug ("\u0044\u0065\u0063\u006fd\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_fdgae ); return nil ,_egg .ErrTypeError ;};_cbfdd .Decode =_gbfb ;_fdgae =_aeeaf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _fdgae ==nil {_bag .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0020\u0046\u0075\u006ec\u0074\u0069\u006f\u006e"); return nil ,ErrRequiredAttributeMissing ;};_cbfdd .Function =[]PdfFunction {};if _cgcba ,_egbda :=_fdgae .(*_egg .PdfObjectArray );_egbda {for _ ,_fcaa :=range _cgcba .Elements (){_bbee ,_eddg :=_bdefe (_fcaa );if _eddg !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_eddg ); return nil ,_eddg ;};_cbfdd .Function =append (_cbfdd .Function ,_bbee );};}else {_aeaacg ,_fdgda :=_bdefe (_fdgae );if _fdgda !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_fdgda ); return nil ,_fdgda ;};_cbfdd .Function =append (_cbfdd .Function ,_aeaacg );};return &_cbfdd ,nil ;}; // PdfAnnotationFileAttachment represents FileAttachment annotations. // (Section 12.5.6.15). type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _egg .PdfObject ;Name _egg .PdfObject ;}; // Resample resamples the image data converting from current BitsPerComponent to a target BitsPerComponent // value. Sets the image's BitsPerComponent to the target value following resampling. // // For example, converting an 8-bit RGB image to 1-bit grayscale (common for scanned images): // // Convert RGB image to grayscale. // rgbColorSpace := pdf.NewPdfColorspaceDeviceRGB() // grayImage, err := rgbColorSpace.ImageToGray(rgbImage) // if err != nil { // return err // } // // Resample as 1 bit. // grayImage.Resample(1) func (_bddb *Image )Resample (targetBitsPerComponent int64 ){if _bddb .BitsPerComponent ==targetBitsPerComponent {return ;};_fbdf :=_bddb .GetSamples ();if targetBitsPerComponent < _bddb .BitsPerComponent {_dbcg :=_bddb .BitsPerComponent -targetBitsPerComponent ; for _cgdaa :=range _fbdf {_fbdf [_cgdaa ]>>=uint (_dbcg );};}else if targetBitsPerComponent > _bddb .BitsPerComponent {_cbae :=targetBitsPerComponent -_bddb .BitsPerComponent ;for _efbdd :=range _fbdf {_fbdf [_efbdd ]<<=uint (_cbae );};};_bddb .BitsPerComponent =targetBitsPerComponent ; if _bddb .BitsPerComponent < 8{_bddb .resampleLowBits (_fbdf );return ;};_edae :=_eg .BytesPerLine (int (_bddb .Width ),int (_bddb .BitsPerComponent ),_bddb .ColorComponents );_aaedd :=make ([]byte ,_edae *int (_bddb .Height ));var (_ffgg ,_dffged ,_feag ,_ecagf int ; _bcggd uint32 ;);for _feag =0;_feag < int (_bddb .Height );_feag ++{_ffgg =_feag *_edae ;_dffged =(_feag +1)*_edae -1;_cfgad :=_fb .ResampleUint32 (_fbdf [_ffgg :_dffged ],int (targetBitsPerComponent ),8);for _ecagf ,_bcggd =range _cfgad {_aaedd [_ecagf +_ffgg ]=byte (_bcggd ); };};_bddb .Data =_aaedd ;}; // SetContext sets the sub annotation (context). func (_fbb *PdfAnnotation )SetContext (ctx PdfModel ){_fbb ._gcf =ctx }; // GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters. func (_egcgf *Image )GetParamsDict ()*_egg .PdfObjectDictionary {_gefdg :=_egg .MakeDict ();_gefdg .Set ("\u0057\u0069\u0064t\u0068",_egg .MakeInteger (_egcgf .Width ));_gefdg .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_egg .MakeInteger (_egcgf .Height )); _gefdg .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_egg .MakeInteger (int64 (_egcgf .ColorComponents )));_gefdg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_egg .MakeInteger (_egcgf .BitsPerComponent )); return _gefdg ;}; // ToPdfObject implements interface PdfModel. func (_edaf *PdfAnnotationScreen )ToPdfObject ()_egg .PdfObject {_edaf .PdfAnnotation .ToPdfObject ();_debe :=_edaf ._cef ;_eba :=_debe .PdfObject .(*_egg .PdfObjectDictionary );_eba .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e")); _eba .SetIfNotNil ("\u0054",_edaf .T );_eba .SetIfNotNil ("\u004d\u004b",_edaf .MK );_eba .SetIfNotNil ("\u0041",_edaf .A );_eba .SetIfNotNil ("\u0041\u0041",_edaf .AA );return _debe ;};func (_fdggg *DSS )addCRLs (_acca [][]byte )([]*_egg .PdfObjectStream ,error ){return _fdggg .add (&_fdggg .CRLs ,_fdggg ._eeecd ,_acca ); }; // DecodeArray returns an empty slice as there are no components associated with pattern colorspace. func (_fdaf *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}}; // AllFields returns a flattened list of all fields in the form. func (_gacef *PdfAcroForm )AllFields ()[]*PdfField {if _gacef ==nil {return nil ;};var _bdae []*PdfField ;if _gacef .Fields !=nil {for _ ,_efbc :=range *_gacef .Fields {_bdae =append (_bdae ,_dgdba (_efbc )...);};};return _bdae ;};func (_fdee *PdfReader )newPdfAnnotationRichMediaFromDict (_fab *_egg .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_bee :=&PdfAnnotationRichMedia {}; _bee .RichMediaSettings =_fab .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_bee .RichMediaContent =_fab .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074"); return _bee ,nil ;};func (_aacfc *PdfWriter )setDocumentIDs (_aecgbf ,_efbgg string ){_aacfc ._aaea =_egg .MakeArray (_egg .MakeHexString (_aecgbf ),_egg .MakeHexString (_efbgg ));}; // GetPage returns the PdfPage model for the specified page number. func (_caabf *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _caabf ._dafgab .GetCrypter ()!=nil &&!_caabf ._dafgab .IsAuthenticated (){return nil ,_f .Errorf ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074"); };if len (_caabf ._abgbc )< pageNumber {return nil ,_gd .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020\u0028\u0070\u0061\u0067\u0065\u0020\u0063\u006f\u0075\u006e\u0074\u0020\u0074o\u006f\u0020\u0073\u0068\u006f\u0072\u0074\u0029"); };_afcfc :=pageNumber -1;if _afcfc < 0{return nil ,_f .Errorf ("\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065r\u0069\u006e\u0067\u0020\u006d\u0075\u0073t\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0061\u0074\u0020\u0031");};_fgbde :=_caabf .PageList [_afcfc ]; return _fgbde ,nil ;}; // NewPdfAnnotationPrinterMark returns a new printermark annotation. func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_fffa :=NewPdfAnnotation ();_adc :=&PdfAnnotationPrinterMark {};_adc .PdfAnnotation =_fffa ;_fffa .SetContext (_adc );return _adc ;}; // K returns the value of the key component of the color. func (_adfbc *PdfColorDeviceCMYK )K ()float64 {return _adfbc [3]}; // ImageToRGB convert an indexed image to RGB. func (_gdecd *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_gdecd .Base .GetNumComponents ();if N < 1{return Image {},_f .Errorf ("\u0062\u0061d \u0062\u0061\u0073e\u0020\u0063\u006f\u006cors\u0070ac\u0065\u0020\u004e\u0075\u006d\u0043\u006fmp\u006f\u006e\u0065\u006e\u0074\u0073\u003d%\u0064",N ); };_fcfdf :=_eg .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._fgggb ,img ._abfae );_bfaa :=_fb .NewReader (img .getBase ());_fecc :=_fb .NewWriter (_fcfdf );var (_fcbe uint32 ;_bade int ;_dded error ;);for {_fcbe ,_dded =_bfaa .ReadSample (); if _dded ==_dag .EOF {break ;}else if _dded !=nil {return img ,_dded ;};_bade =int (_fcbe );_bag .Log .Trace ("\u0049\u006ed\u0065\u0078\u0065\u0064\u003a\u0020\u0069\u006e\u0064\u0065\u0078\u003d\u0025\u0064\u0020\u004e\u003d\u0025\u0064\u0020\u006c\u0075t=\u0025\u0064",_bade ,N ,len (_gdecd ._defc )); if (_bade +1)*N > len (_gdecd ._defc ){_bade =len (_gdecd ._defc )/N -1;_bag .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_bade );if _bade < 0{_bag .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0043a\u006e\u0027\u0074\u0020\u0063\u006c\u0069p\u0020\u0069\u006e\u0064\u0065\u0078.\u0020\u0049\u0073\u0020\u0050\u0044\u0046\u0020\u0066\u0069\u006ce\u0020\u0064\u0061\u006d\u0061\u0067\u0065\u0064\u003f"); break ;};};for _bbed :=_bade *N ;_bbed < (_bade +1)*N ;_bbed ++{if _dded =_fecc .WriteSample (uint32 (_gdecd ._defc [_bbed ]));_dded !=nil {return img ,_dded ;};};};return _gdecd .Base .ImageToRGB (_cggba (&_fcfdf ));}; // Image interface is a basic representation of an image used in PDF. // The colorspace is not specified, but must be known when handling the image. type Image struct{Width int64 ;Height int64 ;BitsPerComponent int64 ;ColorComponents int ;Data []byte ;_fgggb []byte ;_abfae []float64 ;};func _bdefe (_dabd _egg .PdfObject )(PdfFunction ,error ){_dabd =_egg .ResolveReference (_dabd );if _aaedb ,_ffbeb :=_dabd .(*_egg .PdfObjectStream ); _ffbeb {_dcfcc :=_aaedb .PdfObjectDictionary ;_fgcfaa ,_ffedb :=_dcfcc .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_egg .PdfObjectInteger );if !_ffedb {_bag .Log .Error ("F\u0075\u006e\u0063\u0074\u0069\u006fn\u0054\u0079\u0070\u0065\u0020\u006e\u0075\u006d\u0062e\u0072\u0020\u006di\u0073s\u0069\u006e\u0067"); return nil ,_gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");};if *_fgcfaa ==0{return _bcbae (_aaedb );}else if *_fgcfaa ==4{return _cegee (_aaedb ); }else {return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _ebagbb ,_gfdbd :=_dabd .(*_egg .PdfIndirectObject );_gfdbd {_deag ,_debbe :=_ebagbb .PdfObject .(*_egg .PdfObjectDictionary ); if !_debbe {_bag .Log .Error ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006eg\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079"); return nil ,_gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");};_fdcdd ,_debbe :=_deag .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_egg .PdfObjectInteger ); if !_debbe {_bag .Log .Error ("F\u0075\u006e\u0063\u0074\u0069\u006fn\u0054\u0079\u0070\u0065\u0020\u006e\u0075\u006d\u0062e\u0072\u0020\u006di\u0073s\u0069\u006e\u0067");return nil ,_gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067"); };if *_fdcdd ==2{return _ceeb (_ebagbb );}else if *_fdcdd ==3{return _gaec (_ebagbb );}else {return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _cecf ,_afbae :=_dabd .(*_egg .PdfObjectDictionary ); _afbae {_dcadb ,_dcdf :=_cecf .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_egg .PdfObjectInteger );if !_dcdf {_bag .Log .Error ("F\u0075\u006e\u0063\u0074\u0069\u006fn\u0054\u0079\u0070\u0065\u0020\u006e\u0075\u006d\u0062e\u0072\u0020\u006di\u0073s\u0069\u006e\u0067"); return nil ,_gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");};if *_dcadb ==2{return _ceeb (_cecf );}else if *_dcadb ==3{return _gaec (_cecf ); }else {return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_bag .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_dabd ); return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};}; // PdfColorspaceDeviceN represents a DeviceN color space. DeviceN color spaces are similar to Separation color // spaces, except they can contain an arbitrary number of color components. // // Format: [/DeviceN names alternateSpace tintTransform] // or: [/DeviceN names alternateSpace tintTransform attributes] type PdfColorspaceDeviceN struct{ColorantNames *_egg .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_dadga *_egg .PdfIndirectObject ;};func (_gbff *PdfReader )newPdfActionNamedFromDict (_fbg *_egg .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_fbg .Get ("\u004e")},nil ; }; // NewPdfPage returns a new PDF page. func NewPdfPage ()*PdfPage {_dggad :=PdfPage {};_dggad ._fgfd =_egg .MakeDict ();_dggad .Resources =NewPdfPageResources ();_acga :=_egg .PdfIndirectObject {};_acga .PdfObject =_dggad ._fgfd ;_dggad ._dfee =&_acga ;return &_dggad ;}; // NewPdfColorLab returns a new Lab color. func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_ebfe :=PdfColorLab {l ,a ,b };return &_ebfe }; // NewCustomPdfOutputIntent creates a new custom PdfOutputIntent. func NewCustomPdfOutputIntent (outputCondition ,outputConditionIdentifier ,info string ,destOutputProfile []byte ,colorComponents int )*PdfOutputIntent {return &PdfOutputIntent {Type :"\u004f\u0075\u0074p\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074",OutputCondition :outputCondition ,OutputConditionIdentifier :outputConditionIdentifier ,Info :info ,DestOutputProfile :destOutputProfile ,_gdaaa :_egg .MakeDict (),ColorComponents :colorComponents }; }; // RepairAcroForm attempts to rebuild the AcroForm fields using the widget // annotations present in the document pages. Pass nil for the opts parameter // in order to use the default options. // NOTE: Currently, the opts parameter is declared in order to enable adding // future options, but passing nil will always result in the default options // being used. func (_aabaa *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _debf []*PdfField ;_dcgae :=map[*_egg .PdfIndirectObject ]struct{}{};for _ ,_ceba :=range _aabaa .PageList {_dfabb ,_cfadg :=_ceba .GetAnnotations ();if _cfadg !=nil {return _cfadg ; };for _ ,_baebe :=range _dfabb {var _afeag *PdfField ;switch _ddbc :=_baebe .GetContext ().(type ){case *PdfAnnotationWidget :if _ddbc ._daa !=nil {_afeag =_ddbc ._daa ;break ;};if _dgace ,_cdbaf :=_egg .GetIndirect (_ddbc .Parent );_cdbaf {_afeag ,_cfadg =_aabaa .newPdfFieldFromIndirectObject (_dgace ,nil ); if _cfadg ==nil {break ;};_bag .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0070\u0061\u0072s\u0065\u0020\u0066\u006f\u0072\u006d\u0020\u0066\u0069\u0065ld\u0020\u0025\u002bv\u003a \u0025\u0076",_dgace ,_cfadg ); };if _ddbc ._cef !=nil {_afeag ,_cfadg =_aabaa .newPdfFieldFromIndirectObject (_ddbc ._cef ,nil );if _cfadg ==nil {break ;};_bag .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0070\u0061\u0072s\u0065\u0020\u0066\u006f\u0072\u006d\u0020\u0066\u0069\u0065ld\u0020\u0025\u002bv\u003a \u0025\u0076",_ddbc ._cef ,_cfadg ); };};if _afeag ==nil {continue ;};if _ ,_gdbea :=_dcgae [_afeag ._agef ];_gdbea {continue ;};_dcgae [_afeag ._agef ]=struct{}{};_debf =append (_debf ,_afeag );};};if len (_debf )==0{return nil ;};if _aabaa .AcroForm ==nil {_aabaa .AcroForm =NewPdfAcroForm (); };_aabaa .AcroForm .Fields =&_debf ;return nil ;}; // ColorToRGB converts a color in Separation colorspace to RGB colorspace. func (_egfdf *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _egfdf .AlternateSpace ==nil {return nil ,_gd .New ("\u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0065\u0020c\u006f\u006c\u006f\u0072\u0073\u0070\u0061c\u0065\u0020\u0075\u006e\u0064\u0065\u0066\u0069\u006e\u0065\u0064"); };return _egfdf .AlternateSpace .ColorToRGB (color );}; // IsTerminal returns true for terminal fields, false otherwise. // Terminal fields are fields whose descendants are only widget annotations. func (_eedeg *PdfField )IsTerminal ()bool {return len (_eedeg .Kids )==0};func (_gfd *PdfReader )newPdfActionURIFromDict (_cgc *_egg .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_cgc .Get ("\u0055\u0052\u0049"),IsMap :_cgc .Get ("\u0049\u0073\u004da\u0070")},nil ; }; // NewPdfAnnotationRedact returns a new redact annotation. func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_daf :=NewPdfAnnotation ();_fcg :=&PdfAnnotationRedact {};_fcg .PdfAnnotation =_daf ;_fcg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_daf .SetContext (_fcg );return _fcg ;}; // FullName returns the full name of the field as in rootname.parentname.partialname. func (_dcea *PdfField )FullName ()(string ,error ){var _deacb _dd .Buffer ;_ebfc :=[]string {};if _dcea .T !=nil {_ebfc =append (_ebfc ,_dcea .T .Decoded ());};_efdda :=map[*PdfField ]bool {};_efdda [_dcea ]=true ;_fgca :=_dcea .Parent ;for _fgca !=nil {if _ ,_faca :=_efdda [_fgca ]; _faca {return _deacb .String (),_gd .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _fgca .T ==nil {return _deacb .String (),_gd .New ("\u0066\u0069el\u0064\u0020\u0070a\u0072\u0074\u0069\u0061l n\u0061me\u0020\u0028\u0054\u0029\u0020\u006e\u006ft \u0073\u0070\u0065\u0063\u0069\u0066\u0069e\u0064"); };_ebfc =append (_ebfc ,_fgca .T .Decoded ());_efdda [_fgca ]=true ;_fgca =_fgca .Parent ;};for _bdaf :=len (_ebfc )-1;_bdaf >=0;_bdaf --{_deacb .WriteString (_ebfc [_bdaf ]);if _bdaf > 0{_deacb .WriteString ("\u002e");};};return _deacb .String (),nil ; };func (_gba *PdfReader )newPdfAnnotationStrikeOut (_fdcg *_egg .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_ege :=PdfAnnotationStrikeOut {};_ffa ,_afbe :=_gba .newPdfAnnotationMarkupFromDict (_fdcg );if _afbe !=nil {return nil ,_afbe ;};_ege .PdfAnnotationMarkup =_ffa ; _ege .QuadPoints =_fdcg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_ege ,nil ;};func (_bded *PdfReader )newPdfAnnotationHighlightFromDict (_cgfa *_egg .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_cae :=PdfAnnotationHighlight {}; _fgabf ,_ffbc :=_bded .newPdfAnnotationMarkupFromDict (_cgfa );if _ffbc !=nil {return nil ,_ffbc ;};_cae .PdfAnnotationMarkup =_fgabf ;_cae .QuadPoints =_cgfa .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_cae ,nil ;};func (_adbff *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"; }; // PdfActionSetOCGState represents a SetOCGState action. type PdfActionSetOCGState struct{*PdfAction ;State _egg .PdfObject ;PreserveRB _egg .PdfObject ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_gcff *PdfShadingType2 )ToPdfObject ()_egg .PdfObject {_gcff .PdfShading .ToPdfObject ();_dgecb ,_cbcgb :=_gcff .getShadingDict ();if _cbcgb !=nil {_bag .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074"); return nil ;};if _dgecb ==nil {_bag .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _gcff .Coords !=nil {_dgecb .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_gcff .Coords ); };if _gcff .Domain !=nil {_dgecb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gcff .Domain );};if _gcff .Function !=nil {if len (_gcff .Function )==1{_dgecb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gcff .Function [0].ToPdfObject ());}else {_bbbca :=_egg .MakeArray (); for _ ,_badee :=range _gcff .Function {_bbbca .Append (_badee .ToPdfObject ());};_dgecb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bbbca );};};if _gcff .Extend !=nil {_dgecb .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_gcff .Extend );}; return _gcff ._cfdbd ;};func (_gedd *PdfReader )newPdfAnnotationWatermarkFromDict (_gfge *_egg .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_abdb :=PdfAnnotationWatermark {};_abdb .FixedPrint =_gfge .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074"); return &_abdb ,nil ;};func _dead (_gdcf string )map[string ]string {_fbdce :=_efdg .Split (_gdcf ,-1);_gecee :=map[string ]string {};for _ ,_aabda :=range _fbdce {_eacef :=_aafbcd .FindStringSubmatch (_aabda );if _eacef ==nil {continue ;};_afeed ,_baba :=_eacef [1],_eacef [2]; _gecee [_afeed ]=_baba ;};return _gecee ;}; // PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394). type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_fffd _egg .PdfObject ;}; // PdfFunctionType4 is a Postscript calculator functions. type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_cde .PSProgram ;_aafea *_cde .PSExecutor ;_fafff []byte ;_cbebd *_egg .PdfObjectStream ;}; // PdfSignature represents a PDF signature dictionary and is used for signing via form signature fields. // (Section 12.8, Table 252 - Entries in a signature dictionary p. 475 in PDF32000_2008). type PdfSignature struct{Handler SignatureHandler ;_ccbda *_egg .PdfIndirectObject ; // Type: Sig/DocTimeStamp Type *_egg .PdfObjectName ;Filter *_egg .PdfObjectName ;SubFilter *_egg .PdfObjectName ;Contents *_egg .PdfObjectString ;Cert _egg .PdfObject ;ByteRange *_egg .PdfObjectArray ;Reference *_egg .PdfObjectArray ;Changes *_egg .PdfObjectArray ;Name *_egg .PdfObjectString ; M *_egg .PdfObjectString ;Location *_egg .PdfObjectString ;Reason *_egg .PdfObjectString ;ContactInfo *_egg .PdfObjectString ;R *_egg .PdfObjectInteger ;V *_egg .PdfObjectInteger ;PropBuild *_egg .PdfObjectDictionary ;PropAuthTime *_egg .PdfObjectInteger ; PropAuthType *_egg .PdfObjectName ;};func _ebafc (_gdcgd *_egg .PdfObjectDictionary )(*PdfShadingType3 ,error ){_cbcfb :=PdfShadingType3 {};_agbdd :=_gdcgd .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _agbdd ==nil {_bag .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0043\u006f\u006f\u0072\u0064\u0073"); return nil ,ErrRequiredAttributeMissing ;};_gebbc ,_ggffg :=_agbdd .(*_egg .PdfObjectArray );if !_ggffg {_bag .Log .Debug ("\u0043\u006f\u006f\u0072d\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_agbdd ); return nil ,_egg .ErrTypeError ;};if _gebbc .Len ()!=6{_bag .Log .Debug ("\u0043\u006f\u006f\u0072d\u0073\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006eo\u0074 \u0036\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",_gebbc .Len ());return nil ,ErrInvalidAttribute ; };_cbcfb .Coords =_gebbc ;if _egffb :=_gdcgd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_egffb !=nil {_egffb =_egg .TraceToDirectObject (_egffb );_gfdbb ,_cgabd :=_egffb .(*_egg .PdfObjectArray );if !_cgabd {_bag .Log .Debug ("\u0044\u006f\u006d\u0061i\u006e\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_egffb ); return nil ,_egg .ErrTypeError ;};_cbcfb .Domain =_gfdbb ;};_agbdd =_gdcgd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _agbdd ==nil {_bag .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0020\u0046\u0075\u006ec\u0074\u0069\u006f\u006e"); return nil ,ErrRequiredAttributeMissing ;};_cbcfb .Function =[]PdfFunction {};if _ddbce ,_dgfed :=_agbdd .(*_egg .PdfObjectArray );_dgfed {for _ ,_bagff :=range _ddbce .Elements (){_bedfa ,_bedda :=_bdefe (_bagff );if _bedda !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_bedda ); return nil ,_bedda ;};_cbcfb .Function =append (_cbcfb .Function ,_bedfa );};}else {_fafcd ,_fdfef :=_bdefe (_agbdd );if _fdfef !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_fdfef ); return nil ,_fdfef ;};_cbcfb .Function =append (_cbcfb .Function ,_fafcd );};if _fgbdd :=_gdcgd .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_fgbdd !=nil {_fgbdd =_egg .TraceToDirectObject (_fgbdd );_aecfg ,_ageagb :=_fgbdd .(*_egg .PdfObjectArray );if !_ageagb {_bag .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_fgbdd ); return nil ,_egg .ErrTypeError ;};if _aecfg .Len ()!=2{_bag .Log .Debug ("\u0045\u0078\u0074\u0065n\u0064\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006eo\u0074 \u0032\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",_aecfg .Len ());return nil ,ErrInvalidAttribute ; };_cbcfb .Extend =_aecfg ;};return &_cbcfb ,nil ;}; // PdfOutline represents a PDF outline dictionary (Table 152 - p. 376). type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_egdd *_egg .PdfIndirectObject ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_cgbdb *PdfShading )ToPdfObject ()_egg .PdfObject {_gfeded :=_cgbdb ._cfdbd ;_dbdd ,_ddba :=_cgbdb .getShadingDict ();if _ddba !=nil {_bag .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074"); return nil ;};if _cgbdb .ShadingType !=nil {_dbdd .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_cgbdb .ShadingType );};if _cgbdb .ColorSpace !=nil {_dbdd .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_cgbdb .ColorSpace .ToPdfObject ()); };if _cgbdb .Background !=nil {_dbdd .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_cgbdb .Background );};if _cgbdb .BBox !=nil {_dbdd .Set ("\u0042\u0042\u006f\u0078",_cgbdb .BBox .ToPdfObject ());};if _cgbdb .AntiAlias !=nil {_dbdd .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_cgbdb .AntiAlias ); };return _gfeded ;}; // ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which // replaces the original AcroForm. func (_cecg *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_cecg .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_cecg ._aeec =acroForm ;}; // PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh. type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_egg .PdfObjectInteger ;BitsPerComponent *_egg .PdfObjectInteger ;BitsPerFlag *_egg .PdfObjectInteger ;Decode *_egg .PdfObjectArray ;Function []PdfFunction ;}; // Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly. func (_cgfgc *PdfRectangle )Normalize (){if _cgfgc .Llx > _cgfgc .Urx {_cgfgc .Llx ,_cgfgc .Urx =_cgfgc .Urx ,_cgfgc .Llx ;};if _cgfgc .Lly > _cgfgc .Ury {_cgfgc .Lly ,_cgfgc .Ury =_cgfgc .Ury ,_cgfgc .Lly ;};}; // AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc. func (_ebfca *Image )AlphaMap (mapFunc AlphaMapFunc ){for _fecdf ,_cdgca :=range _ebfca ._fgggb {_ebfca ._fgggb [_fecdf ]=mapFunc (_cdgca );};}; // GetContainingPdfObject implements interface PdfModel. func (_feee *Permissions )GetContainingPdfObject ()_egg .PdfObject {return _feee ._ffgafc }; // GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern. func (_dafbe *PdfPattern )GetContext ()PdfModel {return _dafbe ._fcbdg }; // DecodeArray returns the range of color component values in the Lab colorspace. func (_edec *PdfColorspaceLab )DecodeArray ()[]float64 {_gbdbd :=[]float64 {0,100};if _edec .Range !=nil &&len (_edec .Range )==4{_gbdbd =append (_gbdbd ,_edec .Range ...);}else {_gbdbd =append (_gbdbd ,-100,100,-100,100);};return _gbdbd ;}; // Items returns all children outline items. func (_abfb *OutlineItem )Items ()[]*OutlineItem {return _abfb .Entries };func _eeceg (_bddce *[]*PdfField ,_agefd FieldFilterFunc ,_acfef bool )[]*PdfField {if _bddce ==nil {return nil ;};_ccda :=*_bddce ;if len (*_bddce )==0{return nil ;};_fdacd :=_ccda [:0]; if _agefd ==nil {_agefd =func (*PdfField )bool {return true };};var _eefcgb []*PdfField ;for _ ,_bcdgb :=range _ccda {_fafgb :=_agefd (_bcdgb );if _fafgb {_eefcgb =append (_eefcgb ,_bcdgb );if len (_bcdgb .Kids )> 0{_eefcgb =append (_eefcgb ,_eeceg (&_bcdgb .Kids ,_agefd ,_acfef )...); };};if !_acfef ||!_fafgb ||len (_bcdgb .Kids )> 0{_fdacd =append (_fdacd ,_bcdgb );};};*_bddce =_fdacd ;return _eefcgb ;};func (_fdgdb *pdfFontType0 )baseFields ()*fontCommon {return &_fdgdb .fontCommon }; // ToPdfObject implements interface PdfModel. func (_eef *PdfActionThread )ToPdfObject ()_egg .PdfObject {_eef .PdfAction .ToPdfObject ();_ded :=_eef ._bf ;_edb :=_ded .PdfObject .(*_egg .PdfObjectDictionary );_edb .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeThread )));if _eef .F !=nil {_edb .Set ("\u0046",_eef .F .ToPdfObject ()); };_edb .SetIfNotNil ("\u0044",_eef .D );_edb .SetIfNotNil ("\u0042",_eef .B );return _ded ;}; // PageFromIndirectObject returns the PdfPage and page number for a given indirect object. func (_fdddaf *PdfReader )PageFromIndirectObject (ind *_egg .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_fdddaf .PageList )!=len (_fdddaf ._abgbc ){return nil ,0,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064"); };for _fegdd ,_gcfg :=range _fdddaf ._abgbc {if _gcfg ==ind {return _fdddaf .PageList [_fegdd ],_fegdd +1,nil ;};};return nil ,0,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};func (_cfgfa *PdfWriter )copyObjects (){_acfab :=make (map[_egg .PdfObject ]_egg .PdfObject ); _bccbe :=make ([]_egg .PdfObject ,0,len (_cfgfa ._bbead ));_dffag :=make (map[_egg .PdfObject ]struct{},len (_cfgfa ._bbead ));_dfbdd :=make (map[_egg .PdfObject ]struct{});for _ ,_efabc :=range _cfgfa ._bbead {_gadbf :=_cfgfa .copyObject (_efabc ,_acfab ,_dfbdd ,false ); if _ ,_gaffa :=_dfbdd [_efabc ];_gaffa {continue ;};_bccbe =append (_bccbe ,_gadbf );_dffag [_gadbf ]=struct{}{};};_cfgfa ._bbead =_bccbe ;_cfgfa ._bacec =_dffag ;_cfgfa ._efage =_cfgfa .copyObject (_cfgfa ._efage ,_acfab ,nil ,false ).(*_egg .PdfIndirectObject ); _cfgfa ._egad =_cfgfa .copyObject (_cfgfa ._egad ,_acfab ,nil ,false ).(*_egg .PdfIndirectObject );if _cfgfa ._afcc !=nil {_cfgfa ._afcc =_cfgfa .copyObject (_cfgfa ._afcc ,_acfab ,nil ,false ).(*_egg .PdfIndirectObject );};if _cfgfa ._gabaca {_fdgbe :=make (map[_egg .PdfObject ]int64 ); for _cdbc ,_bbdc :=range _cfgfa ._fcgfe {if _gefcd ,_bffc :=_acfab [_cdbc ];_bffc {_fdgbe [_gefcd ]=_bbdc ;}else {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020a\u0070\u0070\u0065n\u0064\u0020\u006d\u006fd\u0065\u0020\u002d\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0063\u006f\u0070\u0079\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0020\u006d\u0061\u0070"); };};_cfgfa ._fcgfe =_fdgbe ;};}; // NewPdfDateFromTime will create a PdfDate based on the given time func NewPdfDateFromTime (timeObj _e .Time )(PdfDate ,error ){_ecafd :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_ageaf ,_ :=_da .ParseInt (_ecafd [1:3],10,32);_cbdgdd ,_ :=_da .ParseInt (_ecafd [4:6],10,32);return PdfDate {_acadbc :int64 (timeObj .Year ()),_cbffc :int64 (timeObj .Month ()),_fgddd :int64 (timeObj .Day ()),_bfcd :int64 (timeObj .Hour ()),_fceaf :int64 (timeObj .Minute ()),_ffccc :int64 (timeObj .Second ()),_ebcdc :_ecafd [0],_ebeed :_ageaf ,_fcafb :_cbdgdd },nil ; }; // GetContainingPdfObject implements model.PdfModel interface. func (_efaef *PdfOutputIntent )GetContainingPdfObject ()_egg .PdfObject {return _efaef ._gdaaa }; // NewStandard14FontMustCompile returns the standard 14 font named `basefont` as a *PdfFont. // If `basefont` is one of the 14 Standard14Font values defined above then NewStandard14FontMustCompile // is guaranteed to succeed. func NewStandard14FontMustCompile (basefont StdFontName )*PdfFont {_daace ,_bdead :=NewStandard14Font (basefont );if _bdead !=nil {panic (_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0074\u0061n\u0064\u0061\u0072\u0064\u0031\u0034\u0046\u006f\u006e\u0074 \u0025\u0023\u0071",basefont )); };return _daace ;}; // GetRuneMetrics returns the character metrics for the specified rune. // A bool flag is returned to indicate whether or not the entry was found. func (_cdba pdfFontType0 )GetRuneMetrics (r rune )(_bgd .CharMetrics ,bool ){if _cdba .DescendantFont ==nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0064\u0065\u0073\u0063\u0065\u006e\u0064\u0061\u006e\u0074\u002e\u0020\u0066\u006f\u006et=\u0025\u0073",_cdba ); return _bgd .CharMetrics {},false ;};return _cdba .DescendantFont .GetRuneMetrics (r );}; // GetContainingPdfObject returns the XObject Form's containing object (indirect object). func (_fgfaa *XObjectForm )GetContainingPdfObject ()_egg .PdfObject {return _fgfaa ._acgef }; // ColorFromPdfObjects loads the color from PDF objects. // The first objects (if present) represent the color in underlying colorspace. The last one represents // the name of the pattern. func (_eedc *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020o\u0066 \u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072\u0073"); };_cbegd :=&PdfColorPattern {};_fbeb ,_bbcaa :=objects [len (objects )-1].(*_egg .PdfObjectName );if !_bbcaa {_bag .Log .Debug ("\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020a\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",objects [len (objects )-1]); return nil ,ErrTypeCheck ;};_cbegd .PatternName =*_fbeb ;if len (objects )> 1{_gdfe :=objects [0:len (objects )-1];if _eedc .UnderlyingCS ==nil {_bag .Log .Debug ("P\u0061\u0074t\u0065\u0072\u006e\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0077\u0069\u0074\u0068\u0020\u0064\u0065\u0066\u0069\u006ee\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0063\u006f\u006d\u0070\u006f\u006e\u0065\u006et\u0073\u0020\u0062\u0075\u0074\u0020\u0075\u006e\u0064\u0065\u0072\u006c\u0079i\u006e\u0067\u0020\u0063\u0073\u0020\u006d\u0069\u0073\u0073\u0069n\u0067"); return nil ,_gd .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_deecb ,_gfdcc :=_eedc .UnderlyingCS .ColorFromPdfObjects (_gdfe );if _gfdcc !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0055n\u0061\u0062\u006c\u0065\u0020t\u006f\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0076\u0069\u0061\u0020\u0075\u006e\u0064\u0065\u0072\u006c\u0079\u0069\u006e\u0067\u0020\u0063\u0073\u003a\u0020\u0025\u0076",_gfdcc ); return nil ,_gfdcc ;};_cbegd .Color =_deecb ;};return _cbegd ,nil ;}; // GetPageLabels returns the PageLabels entry in the PDF catalog. // See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008). func (_gagbgc *PdfReader )GetPageLabels ()(_egg .PdfObject ,error ){_aafae :=_egg .ResolveReference (_gagbgc ._eacf .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _aafae ==nil {return nil ,nil ;};if !_gagbgc ._cede {_feedg :=_gagbgc .traverseObjectData (_aafae ); if _feedg !=nil {return nil ,_feedg ;};};return _aafae ,nil ;}; // FieldImageProvider provides fields images for specified fields. type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );}; // PdfActionRendition represents a Rendition action. type PdfActionRendition struct{*PdfAction ;R _egg .PdfObject ;AN _egg .PdfObject ;OP _egg .PdfObject ;JS _egg .PdfObject ;}; // ToPdfObject returns colorspace in a PDF object format [name dictionary] func (_badb *PdfColorspaceCalRGB )ToPdfObject ()_egg .PdfObject {_ebcb :=&_egg .PdfObjectArray {};_ebcb .Append (_egg .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_cdec :=_egg .MakeDict ();if _badb .WhitePoint !=nil {_cecded :=_egg .MakeArray (_egg .MakeFloat (_badb .WhitePoint [0]),_egg .MakeFloat (_badb .WhitePoint [1]),_egg .MakeFloat (_badb .WhitePoint [2])); _cdec .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_cecded );}else {_bag .Log .Error ("\u0043\u0061l\u0052\u0047\u0042\u003a \u004d\u0069s\u0073\u0069\u006e\u0067\u0020\u0057\u0068\u0069t\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0028\u0052\u0065\u0071\u0075i\u0072\u0065\u0064\u0029"); };if _badb .BlackPoint !=nil {_aefe :=_egg .MakeArray (_egg .MakeFloat (_badb .BlackPoint [0]),_egg .MakeFloat (_badb .BlackPoint [1]),_egg .MakeFloat (_badb .BlackPoint [2]));_cdec .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_aefe ); };if _badb .Gamma !=nil {_agbda :=_egg .MakeArray (_egg .MakeFloat (_badb .Gamma [0]),_egg .MakeFloat (_badb .Gamma [1]),_egg .MakeFloat (_badb .Gamma [2]));_cdec .Set ("\u0047\u0061\u006dm\u0061",_agbda );};if _badb .Matrix !=nil {_gcbc :=_egg .MakeArray (_egg .MakeFloat (_badb .Matrix [0]),_egg .MakeFloat (_badb .Matrix [1]),_egg .MakeFloat (_badb .Matrix [2]),_egg .MakeFloat (_badb .Matrix [3]),_egg .MakeFloat (_badb .Matrix [4]),_egg .MakeFloat (_badb .Matrix [5]),_egg .MakeFloat (_badb .Matrix [6]),_egg .MakeFloat (_badb .Matrix [7]),_egg .MakeFloat (_badb .Matrix [8])); _cdec .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gcbc );};_ebcb .Append (_cdec );if _badb ._fcgc !=nil {_badb ._fcgc .PdfObject =_ebcb ;return _badb ._fcgc ;};return _ebcb ;}; // PdfAnnotationStamp represents Stamp annotations. // (Section 12.5.6.12). type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _egg .PdfObject ;}; // ToPdfObject returns colorspace in a PDF object format [name stream] func (_efbfg *PdfColorspaceICCBased )ToPdfObject ()_egg .PdfObject {_cded :=&_egg .PdfObjectArray {};_cded .Append (_egg .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _bdfe *_egg .PdfObjectStream ;if _efbfg ._bcda !=nil {_bdfe =_efbfg ._bcda ; }else {_bdfe =&_egg .PdfObjectStream {};};_deg :=_egg .MakeDict ();_deg .Set ("\u004e",_egg .MakeInteger (int64 (_efbfg .N )));if _efbfg .Alternate !=nil {_deg .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_efbfg .Alternate .ToPdfObject ());};if _efbfg .Metadata !=nil {_deg .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_efbfg .Metadata ); };if _efbfg .Range !=nil {var _gcc []_egg .PdfObject ;for _ ,_gfbd :=range _efbfg .Range {_gcc =append (_gcc ,_egg .MakeFloat (_gfbd ));};_deg .Set ("\u0052\u0061\u006eg\u0065",_egg .MakeArray (_gcc ...));};_deg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_efbfg .Data )))); _bdfe .Stream =_efbfg .Data ;_bdfe .PdfObjectDictionary =_deg ;_cded .Append (_bdfe );if _efbfg ._dcf !=nil {_efbfg ._dcf .PdfObject =_cded ;return _efbfg ._dcf ;};return _cded ;}; // ToInteger convert to an integer format. func (_aeag *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_cdgag :=_dgb .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_cdgag *_aeag .R ()),uint32 (_cdgag *_aeag .G ()),uint32 (_cdgag *_aeag .B ())};}; // Evaluate runs the function on the passed in slice and returns the results. func (_fdafg *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_bag .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };return nil ,_gd .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};func _gcgfb (_dggef _egg .PdfObject )(*PdfFontDescriptor ,error ){_cfefd :=&PdfFontDescriptor {};_dggef =_egg .ResolveReference (_dggef ); if _gdge ,_gebdb :=_dggef .(*_egg .PdfIndirectObject );_gebdb {_cfefd ._faeb =_gdge ;_dggef =_gdge .PdfObject ;};_ggadc ,_bedgc :=_egg .GetDict (_dggef );if !_bedgc {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046o\u006e\u0074\u0044\u0065\u0073c\u0072\u0069\u0070\u0074\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0067\u0069\u0076\u0065\u006e\u0020\u0062\u0079\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_dggef ); return nil ,_egg .ErrTypeError ;};if _cbea :=_ggadc .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_cbea !=nil {_cfefd .FontName =_cbea ;}else {_bag .Log .Debug ("\u0049n\u0063\u006fm\u0070\u0061\u0074\u0069b\u0069\u006c\u0069t\u0079\u003a\u0020\u0046\u006f\u006e\u0074\u004e\u0061me\u0020\u0028\u0052e\u0071\u0075i\u0072\u0065\u0064\u0029\u0020\u006di\u0073\u0073i\u006e\u0067"); };_gceg ,_ :=_egg .GetName (_cfefd .FontName );if _fdfe :=_ggadc .Get ("\u0054\u0079\u0070\u0065");_fdfe !=nil {_fedg ,_dddg :=_fdfe .(*_egg .PdfObjectName );if !_dddg ||string (*_fedg )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_bag .Log .Debug ("I\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0064\u0065\u0073\u0063\u0072i\u0070t\u006f\u0072\u0020\u0054y\u0070\u0065 \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0025\u0054\u0029\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0071\u0020\u0025\u0054",_fdfe ,_gceg ,_cfefd .FontName ); };}else {_bag .Log .Trace ("\u0049\u006ec\u006f\u006d\u0070\u0061\u0074i\u0062\u0069\u006c\u0069\u0074y\u003a\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0071\u0020\u0025\u0054",_gceg ,_cfefd .FontName ); };_cfefd .FontFamily =_ggadc .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_cfefd .FontStretch =_ggadc .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_cfefd .FontWeight =_ggadc .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074"); _cfefd .Flags =_ggadc .Get ("\u0046\u006c\u0061g\u0073");_cfefd .FontBBox =_ggadc .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_cfefd .ItalicAngle =_ggadc .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_cfefd .Ascent =_ggadc .Get ("\u0041\u0073\u0063\u0065\u006e\u0074"); _cfefd .Descent =_ggadc .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_cfefd .Leading =_ggadc .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_cfefd .CapHeight =_ggadc .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_cfefd .XHeight =_ggadc .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074"); _cfefd .StemV =_ggadc .Get ("\u0053\u0074\u0065m\u0056");_cfefd .StemH =_ggadc .Get ("\u0053\u0074\u0065m\u0048");_cfefd .AvgWidth =_ggadc .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_cfefd .MaxWidth =_ggadc .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068"); _cfefd .MissingWidth =_ggadc .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_cfefd .FontFile =_ggadc .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_cfefd .FontFile2 =_ggadc .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652"); _cfefd .FontFile3 =_ggadc .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_cfefd .CharSet =_ggadc .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_cfefd .Style =_ggadc .Get ("\u0053\u0074\u0079l\u0065");_cfefd .Lang =_ggadc .Get ("\u004c\u0061\u006e\u0067"); _cfefd .FD =_ggadc .Get ("\u0046\u0044");_cfefd .CIDSet =_ggadc .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _cfefd .Flags !=nil {if _faac ,_gbdcb :=_egg .GetIntVal (_cfefd .Flags );_gbdcb {_cfefd ._adfdfe =_faac ;};};if _cfefd .MissingWidth !=nil {if _cfad ,_gace :=_egg .GetNumberAsFloat (_cfefd .MissingWidth ); _gace ==nil {_cfefd ._eedab =_cfad ;};};if _cfefd .FontFile !=nil {_agbg ,_febdf :=_dbggc (_cfefd .FontFile );if _febdf !=nil {return _cfefd ,_febdf ;};_bag .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_agbg );_cfefd .fontFile =_agbg ; };if _cfefd .FontFile2 !=nil {_ggca ,_edddg :=_bgd .NewFontFile2FromPdfObject (_cfefd .FontFile2 );if _edddg !=nil {return _cfefd ,_edddg ;};_bag .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_ggca .String ());_cfefd ._eccg =&_ggca ; };return _cfefd ,nil ;};func (_gdcc *PdfReader )newPdfAnnotationSoundFromDict (_debg *_egg .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_faef :=PdfAnnotationSound {};_gagaf ,_dcc :=_gdcc .newPdfAnnotationMarkupFromDict (_debg );if _dcc !=nil {return nil ,_dcc ; };_faef .PdfAnnotationMarkup =_gagaf ;_faef .Name =_debg .Get ("\u004e\u0061\u006d\u0065");_faef .Sound =_debg .Get ("\u0053\u006f\u0075n\u0064");return &_faef ,nil ;}; // ImageToRGB converts an image in CMYK32 colorspace to an RGB image. func (_ebef *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_bag .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_bag .Log .Trace ("I\u006d\u0061\u0067\u0065\u0020\u0042P\u0043\u003a\u0020\u0025\u0064\u002c \u0043\u006f\u006c\u006f\u0072\u0020\u0063o\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073\u003a\u0020%\u0064",img .BitsPerComponent ,img .ColorComponents ); _bag .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_bag .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width ); _bfaf ,_gffgd :=_eg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fgggb ,img ._abfae );if _gffgd !=nil {return Image {},_gffgd ;};_cdfb ,_gffgd :=_eg .NRGBAConverter .Convert (_bfaf ); if _gffgd !=nil {return Image {},_gffgd ;};return _cggba (_cdfb .Base ()),nil ;}; // ApplyStandard is used to apply changes required on the document to match the rules required by the input standard. // The writer's content would be changed after all the document parts are already established during the Write method. // A good example of the StandardApplier could be a PDF/A Profile (i.e.: pdfa.Profile1A). In such a case PdfWriter would // set up all rules required by that Profile. func (_bcga *PdfWriter )ApplyStandard (optimizer StandardApplier ){_bcga ._ebgad =optimizer };func _dadge (_dega string )(map[_ef .CharCode ]_ef .GlyphName ,error ){_gffe :=_fc .Split (_dega ,"\u000a");_affe :=make (map[_ef .CharCode ]_ef .GlyphName ); for _ ,_babc :=range _gffe {_gbc :=_daaa .FindStringSubmatch (_babc );if _gbc ==nil {continue ;};_cdae ,_gcgfg :=_gbc [1],_gbc [2];_gdcce ,_ecgd :=_da .Atoi (_cdae );if _ecgd !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004fR\u003a\u0020\u0042\u0061\u0064\u0020\u0065\u006e\u0063\u006fd\u0069n\u0067\u0020\u006c\u0069\u006e\u0065\u002e \u0025\u0071",_babc ); return nil ,_egg .ErrTypeError ;};_affe [_ef .CharCode (_gdcce )]=_ef .GlyphName (_gcgfg );};_bag .Log .Trace ("g\u0065\u0074\u0045\u006e\u0063\u006fd\u0069\u006e\u0067\u0073\u003a\u0020\u006b\u0065\u0079V\u0061\u006c\u0075e\u0073=\u0025\u0023\u0076",_affe ); return _affe ,nil ;}; // ToPdfObject implements interface PdfModel. func (_aeeb *PdfAnnotationSquiggly )ToPdfObject ()_egg .PdfObject {_aeeb .PdfAnnotation .ToPdfObject ();_agea :=_aeeb ._cef ;_fecf :=_agea .PdfObject .(*_egg .PdfObjectDictionary );_aeeb .PdfAnnotationMarkup .appendToPdfDictionary (_fecf );_fecf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079")); _fecf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_aeeb .QuadPoints );return _agea ;}; // PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons. type PdfFieldButton struct{*PdfField ;Opt *_egg .PdfObjectArray ;_ffcc *Image ;};func (_gdf *PdfReader )newPdfAnnotationSquigglyFromDict (_cfbd *_egg .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_eaeg :=PdfAnnotationSquiggly {};_deda ,_fdba :=_gdf .newPdfAnnotationMarkupFromDict (_cfbd ); if _fdba !=nil {return nil ,_fdba ;};_eaeg .PdfAnnotationMarkup =_deda ;_eaeg .QuadPoints =_cfbd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_eaeg ,nil ;}; // PdfAnnotationMovie represents Movie annotations. // (Section 12.5.6.17). type PdfAnnotationMovie struct{*PdfAnnotation ;T _egg .PdfObject ;Movie _egg .PdfObject ;A _egg .PdfObject ;}; // Width returns the width of `rect`. func (_fgcac *PdfRectangle )Width ()float64 {return _dgb .Abs (_fgcac .Urx -_fgcac .Llx )};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;); // NewPdfOutlineItem returns an initialized PdfOutlineItem. func NewPdfOutlineItem ()*PdfOutlineItem {_aecgb :=&PdfOutlineItem {_gfcb :_egg .MakeIndirectObject (_egg .MakeDict ())};_aecgb ._bgbfg =_aecgb ;return _aecgb ;}; // ToPdfObject returns the PDF representation of the colorspace. func (_bfed *PdfColorspaceDeviceCMYK )ToPdfObject ()_egg .PdfObject {return _egg .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");}; // AddCustomInfo adds a custom info into document info dictionary. func (_cgdag *PdfInfo )AddCustomInfo (name string ,value string )error {if _cgdag ._eggg ==nil {_cgdag ._eggg =_egg .MakeDict ();};if _ ,_gebd :=_cbaa [name ];_gebd {return _f .Errorf ("\u0063\u0061\u006e\u006e\u006ft\u0020\u0075\u0073\u0065\u0020\u0073\u0074\u0061\u006e\u0064\u0061\u0072\u0064 \u0069\u006e\u0066\u006f\u0020\u006b\u0065\u0079\u0020\u0025\u0073\u0020\u0061\u0073\u0020\u0063\u0075\u0073\u0074\u006f\u006d\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u006b\u0065y",name ); };_cgdag ._eggg .SetIfNotNil (*_egg .MakeName (name ),_egg .MakeString (value ));return nil ;}; // NewBorderStyle returns an initialized PdfBorderStyle. func NewBorderStyle ()*PdfBorderStyle {_aceb :=&PdfBorderStyle {};return _aceb }; // GetNumComponents returns the number of color components (1 for grayscale). func (_debc *PdfColorDeviceGray )GetNumComponents ()int {return 1}; // FieldValueProvider provides field values from a data source such as FDF, JSON or any other. type FieldValueProvider interface{FieldValues ()(map[string ]_egg .PdfObject ,error );}; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. The slice should contain a single element between 0 and 1. func (_ggb *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aafa :=vals [0];if _aafa < 0.0||_aafa > 1.0{_bag .Log .Debug ("\u0049\u006eco\u006d\u0070\u0061t\u0069\u0062\u0069\u006city\u003a R\u0061\u006e\u0067\u0065\u0020\u006f\u0075ts\u0069\u0064\u0065\u0020\u005b\u0030\u002c1\u005d"); };if _aafa < 0.0{_aafa =0.0;}else if _aafa > 1.0{_aafa =1.0;};return NewPdfColorDeviceGray (_aafa ),nil ;}; // ToPdfObject recursively builds the Outline tree PDF object. func (_dcdb *PdfOutline )ToPdfObject ()_egg .PdfObject {_begf :=_dcdb ._egdd ;_aced :=_begf .PdfObject .(*_egg .PdfObjectDictionary );_aced .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _dcdb .First !=nil {_aced .Set ("\u0046\u0069\u0072s\u0074",_dcdb .First .ToPdfObject ()); };if _dcdb .Last !=nil {_aced .Set ("\u004c\u0061\u0073\u0074",_dcdb .Last .GetContext ().GetContainingPdfObject ());};if _dcdb .Parent !=nil {_aced .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_dcdb .Parent .GetContext ().GetContainingPdfObject ());}; if _dcdb .Count !=nil {_aced .Set ("\u0043\u006f\u0075n\u0074",_egg .MakeInteger (*_dcdb .Count ));};return _begf ;}; // ToPdfObject returns the choice field dictionary within an indirect object (container). func (_fdfag *PdfFieldChoice )ToPdfObject ()_egg .PdfObject {_fdfag .PdfField .ToPdfObject ();_cdef :=_fdfag ._agef ;_gfag :=_cdef .PdfObject .(*_egg .PdfObjectDictionary );_gfag .Set ("\u0046\u0054",_egg .MakeName ("\u0043\u0068"));if _fdfag .Opt !=nil {_gfag .Set ("\u004f\u0070\u0074",_fdfag .Opt ); };if _fdfag .TI !=nil {_gfag .Set ("\u0054\u0049",_fdfag .TI );};if _fdfag .I !=nil {_gfag .Set ("\u0049",_fdfag .I );};return _cdef ;}; // A returns the value of the A component of the color. func (_dfgfb *PdfColorLab )A ()float64 {return _dfgfb [1]};func _gfgfd (_cadga string )(string ,error ){var _abccd _dd .Buffer ;_abccd .WriteString (_cadga );_gfdbbe :=make ([]byte ,8+16);_bfcec :=_e .Now ().UTC ().UnixNano ();_bg .BigEndian .PutUint64 (_gfdbbe ,uint64 (_bfcec )); _ ,_gabbg :=_c .Read (_gfdbbe [8:]);if _gabbg !=nil {return "",_gabbg ;};_abccd .WriteString (_fg .EncodeToString (_gfdbbe ));return _abccd .String (),nil ;}; // NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object. func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_bffa :=&PdfPageResourcesColorspaces {};_bffa .Names =[]string {};_bffa .Colorspaces =map[string ]PdfColorspace {};_bffa ._bcecc =&_egg .PdfIndirectObject {};return _bffa ;}; // FillWithAppearance populates `form` with values provided by `provider`. // If not nil, `appGen` is used to generate appearance dictionaries for the // field annotations, based on the specified settings. Otherwise, appearance // generation is skipped. // e.g.: appGen := annotator.FieldAppearance{OnlyIfMissing: true, RegenerateTextFields: true} // NOTE: In next major version this functionality will be part of Fill. (v4) func (_accaff *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_fgdcf :=_accaff .fill (provider ,appGen );if _fgdcf !=nil {return _fgdcf ;};if _ ,_ceggc :=provider .(FieldImageProvider );_ceggc {_fgdcf =_accaff .fillImageWithAppearance (provider .(FieldImageProvider ),appGen ); };return _fgdcf ;}; // SignatureValidationResult defines the response from the signature validation handler. type SignatureValidationResult struct{ // List of errors when validating the signature. Errors []string ;IsSigned bool ;IsVerified bool ;IsTrusted bool ;Fields []*PdfField ;Name string ;Date PdfDate ;Reason string ;Location string ;ContactInfo string ;DiffResults *_be .DiffResults ; // GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161). GeneralizedTime _e .Time ;}; // GetCharMetrics returns the char metrics for character code `code`. func (_bceb pdfCIDFontType2 )GetCharMetrics (code _ef .CharCode )(_bgd .CharMetrics ,bool ){if _ffbcc ,_dafc :=_bceb ._fafe [code ];_dafc {return _bgd .CharMetrics {Wx :_ffbcc },true ;};_edab :=rune (code );_cbcef ,_dagbf :=_bceb ._beec [_edab ];if !_dagbf {_cbcef =int (_bceb ._bgec ); };return _bgd .CharMetrics {Wx :float64 (_cbcef )},true ;}; // GetCharMetrics returns the char metrics for character code `code`. func (_fbbag pdfFontType0 )GetCharMetrics (code _ef .CharCode )(_bgd .CharMetrics ,bool ){if _fbbag .DescendantFont ==nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0064\u0065\u0073\u0063\u0065\u006e\u0064\u0061\u006e\u0074\u002e\u0020\u0066\u006f\u006et=\u0025\u0073",_fbbag ); return _bgd .CharMetrics {},false ;};return _fbbag .DescendantFont .GetCharMetrics (code );}; // AddOutlineTree adds outlines to a PDF file. func (_aacca *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_aacca ._dcedg =outlineTree }; // Flags returns the field flags for the field accounting for any inherited flags. func (_cccbe *PdfField )Flags ()FieldFlag {var _egab FieldFlag ;_gedb ,_dagf :=_cccbe .inherit (func (_cdgg *PdfField )bool {if _cdgg .Ff !=nil {_egab =FieldFlag (*_cdgg .Ff );return true ;};return false ;});if _dagf !=nil {_bag .Log .Debug ("\u0045\u0072\u0072o\u0072\u0020\u0065\u0076\u0061\u006c\u0075\u0061\u0074\u0069\u006e\u0067\u0020\u0066\u006c\u0061\u0067\u0073\u0020\u0076\u0069\u0061\u0020\u0069\u006e\u0068\u0065\u0072\u0069t\u0061\u006e\u0063\u0065\u003a\u0020\u0025\u0076",_dagf ); };if !_gedb {_bag .Log .Trace ("N\u006f\u0020\u0066\u0069\u0065\u006cd\u0020\u0066\u006c\u0061\u0067\u0073 \u0066\u006f\u0075\u006e\u0064\u0020\u002d \u0061\u0073\u0073\u0075\u006d\u0065\u0020\u0063\u006c\u0065a\u0072");};return _egab ;}; // NewPdfFilespec returns an initialized generic PDF filespec model. func NewPdfFilespec ()*PdfFilespec {_dbgg :=&PdfFilespec {};_dbgg ._fbdd =_egg .MakeIndirectObject (_egg .MakeDict ());return _dbgg ;}; // GetNumComponents returns the number of color components of the underlying // colorspace device. func (_efdc *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _efdc .UnderlyingCS .GetNumComponents ();}; // GetBorderWidth returns the border style's width. func (_gaff *PdfBorderStyle )GetBorderWidth ()float64 {if _gaff .W ==nil {return 1;};return *_gaff .W ;}; // GetContainingPdfObject implements interface PdfModel. func (_dea *PdfAction )GetContainingPdfObject ()_egg .PdfObject {return _dea ._bf }; // NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1]. func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_fcdf :=PdfColorDeviceGray (grayVal );return &_fcdf ;};func (_decef *pdfFontType3 )baseFields ()*fontCommon {return &_decef .fontCommon };func (_daeb PdfFont )actualFont ()pdfFont {if _daeb ._edde ==nil {_bag .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0061\u0063\u0074\u0075\u0061\u006c\u0046\u006f\u006e\u0074\u002e\u0020\u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c.\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_daeb ); };return _daeb ._edde ;};func _gdcg (_bfce *_egg .PdfObjectDictionary ,_bddaf *fontCommon )(*pdfFontType3 ,error ){_cgfdc :=_ecaae (_bddaf );_febef :=_bfce .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _febef ==nil {_febef =_egg .MakeInteger (0); };_cgfdc .FirstChar =_febef ;_cdaad ,_acdaf :=_egg .GetIntVal (_febef );if !_acdaf {_bag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0046i\u0072s\u0074C\u0068\u0061\u0072\u0020\u0074\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029",_febef ); return nil ,_egg .ErrTypeError ;};_ffed :=_ef .CharCode (_cdaad );_febef =_bfce .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _febef ==nil {_febef =_egg .MakeInteger (255);};_cgfdc .LastChar =_febef ;_cdaad ,_acdaf =_egg .GetIntVal (_febef ); if !_acdaf {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004c\u0061\u0073\u0074\u0043h\u0061\u0072\u0020\u0074\u0079\u0070\u0065 \u0028\u0025\u0054\u0029",_febef );return nil ,_egg .ErrTypeError ; };_cdce :=_ef .CharCode (_cdaad );_febef =_bfce .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _febef !=nil {_cgfdc .Resources =_febef ;};_febef =_bfce .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _febef ==nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0068\u0061\u0072\u0050\u0072\u006f\u0063\u0073\u0020(%\u0076\u0029",_febef ); return nil ,_egg .ErrNotSupported ;};_cgfdc .CharProcs =_febef ;_febef =_bfce .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _febef ==nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0046\u006f\u006et\u004d\u0061\u0074\u0072\u0069\u0078\u0020\u0028\u0025\u0076\u0029",_febef ); return nil ,_egg .ErrNotSupported ;};_cgfdc .FontMatrix =_febef ;_cgfdc ._ecfgb =make (map[_ef .CharCode ]float64 );_febef =_bfce .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _febef !=nil {_cgfdc .Widths =_febef ;_fgffe ,_cdcg :=_egg .GetArray (_febef ); if !_cdcg {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020W\u0069\u0064t\u0068\u0073\u0020\u0061\u0074\u0074\u0072\u0069b\u0075\u0074\u0065\u0020\u0021\u003d\u0020\u0061\u0072\u0072\u0061\u0079 \u0028\u0025\u0054\u0029",_febef );return nil ,_egg .ErrTypeError ; };_eegff ,_bfdf :=_fgffe .ToFloat64Array ();if _bfdf !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0077\u0069d\u0074\u0068\u0073\u0020\u0074\u006f\u0020a\u0072\u0072\u0061\u0079"); return nil ,_bfdf ;};if len (_eegff )!=int (_cdce -_ffed +1){_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0074\u0068s\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u0021\u003d\u0020\u0025\u0064 \u0028\u0025\u0064\u0029",_cdce -_ffed +1,len (_eegff )); return nil ,_egg .ErrRangeError ;};_affg ,_cdcg :=_egg .GetArray (_cgfdc .FontMatrix );if !_cdcg {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0021\u003d\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_affg ); return nil ,_bfdf ;};_gfae ,_bfdf :=_affg .ToFloat64Array ();if _bfdf !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020c\u006f\u006ev\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0046o\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078\u0020\u0074\u006f\u0020a\u0072\u0072\u0061\u0079"); return nil ,_bfdf ;};_dacaf :=_gdg .NewMatrix (_gfae [0],_gfae [1],_gfae [2],_gfae [3],_gfae [4],_gfae [5]);for _dcbe ,_ceee :=range _eegff {_fabf ,_ :=_dacaf .Transform (_ceee ,_ceee );_cgfdc ._ecfgb [_ffed +_ef .CharCode (_dcbe )]=_fabf ;};};_cgfdc .Encoding =_egg .TraceToDirectObject (_bfce .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067")); _ddae :=_bfce .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _ddae !=nil {_cgfdc ._gdbae =_egg .TraceToDirectObject (_ddae );_gecf ,_cfebb :=_ebfda (_cgfdc ._gdbae ,&_cgfdc .fontCommon );if _cfebb !=nil {return nil ,_cfebb ;};_cgfdc ._bfbgf =_gecf ; };if _acagf :=_cgfdc ._bfbgf ;_acagf !=nil {_cgfdc ._fbfed =_ef .NewCMapEncoder ("",nil ,_acagf );}else {_cgfdc ._fbfed =_ef .NewPdfDocEncoder ();};return _cgfdc ,nil ;};func (_gggbb *PdfAppender )replaceObject (_bgbf ,_fadd _egg .PdfObject ){switch _cfab :=_bgbf .(type ){case *_egg .PdfIndirectObject :_gggbb ._eegc [_fadd ]=_cfab .ObjectNumber ; case *_egg .PdfObjectStream :_gggbb ._eegc [_fadd ]=_cfab .ObjectNumber ;};}; // NewOutlineDest returns a new outline destination which can be used // with outline items. func NewOutlineDest (page int64 ,x ,y float64 )OutlineDest {return OutlineDest {Page :page ,Mode :"\u0058\u0059\u005a",X :x ,Y :y };};func _ceef (_fgcaf StdFontName )(pdfFontSimple ,error ){_ageag ,_aaff :=_bgd .NewStdFontByName (_fgcaf );if !_aaff {return pdfFontSimple {},ErrFontNotSupported ; };_dgfdd :=_egaa (_ageag );return _dgfdd ,nil ;}; // DecodeArray returns the range of color component values in the ICCBased colorspace. func (_cbbd *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _cbbd .Range }; // DecodeArray returns the range of color component values in DeviceGray colorspace. func (_dbdg *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}}; // NewPdfReaderWithOpts creates a new PdfReader for an input io.ReadSeeker interface // with a ReaderOpts. // If ReaderOpts is nil it will be set to default value from NewReaderOpts. func NewPdfReaderWithOpts (rs _dag .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _dfbed ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0057\u0069\u0074\u0068O\u0070\u0074\u0073";return _ffee (rs ,opts ,true ,_dfbed ); }; // GetNumComponents returns the number of color components (1 for Separation). func (_bcgc *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1}; // StandardValidator is the interface that is used for the PDF StandardImplementer validation for the PDF document. // It is using a CompliancePdfReader which is expected to give more Metadata during reading process. // NOTE: This implementation is in experimental development state. // Keep in mind that it might change in the subsequent minor versions. type StandardValidator interface{ // ValidateStandard checks if the input reader ValidateStandard (_gagce *CompliancePdfReader )error ;};func _cffe (_beefg *_egg .PdfObjectDictionary )*VRI {_ebec ,_ :=_egg .GetString (_beefg .Get ("\u0054\u0055"));_addf ,_ :=_egg .GetString (_beefg .Get ("\u0054\u0053"));return &VRI {Cert :_cfdec (_beefg .Get ("\u0043\u0065\u0072\u0074")),OCSP :_cfdec (_beefg .Get ("\u004f\u0043\u0053\u0050")),CRL :_cfdec (_beefg .Get ("\u0043\u0052\u004c")),TU :_ebec ,TS :_addf }; };func _cggba (_deddee *_eg .ImageBase )(_eebbf Image ){_eebbf .Width =int64 (_deddee .Width );_eebbf .Height =int64 (_deddee .Height );_eebbf .BitsPerComponent =int64 (_deddee .BitsPerComponent );_eebbf .ColorComponents =_deddee .ColorComponents ;_eebbf .Data =_deddee .Data ; _eebbf ._abfae =_deddee .Decode ;_eebbf ._fgggb =_deddee .Alpha ;return _eebbf ;}; // ToPdfObject implements interface PdfModel. func (_cdd *PdfAction )ToPdfObject ()_egg .PdfObject {_bd :=_cdd ._bf ;_efd :=_bd .PdfObject .(*_egg .PdfObjectDictionary );_efd .Clear ();_efd .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_efd .SetIfNotNil ("\u0053",_cdd .S ); _efd .SetIfNotNil ("\u004e\u0065\u0078\u0074",_cdd .Next );return _bd ;};func _ddgfga ()_e .Time {_cgag .Lock ();defer _cgag .Unlock ();return _gfeea }; // SetContentStreams sets the content streams based on a string array. Will make // 1 object stream for each string and reference from the page Contents. // Each stream will be encoded using the encoding specified by the StreamEncoder, // if empty, will use identity encoding (raw data). func (_efeca *PdfPage )SetContentStreams (cStreams []string ,encoder _egg .StreamEncoder )error {if len (cStreams )==0{_efeca .Contents =nil ;return nil ;};if encoder ==nil {encoder =_egg .NewRawEncoder ();};var _egdba []*_egg .PdfObjectStream ;for _ ,_dagdf :=range cStreams {_eaffd :=&_egg .PdfObjectStream {}; _agdeb :=encoder .MakeStreamDict ();_ecaed ,_edega :=encoder .EncodeBytes ([]byte (_dagdf ));if _edega !=nil {return _edega ;};_agdeb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_ecaed ))));_eaffd .PdfObjectDictionary =_agdeb ; _eaffd .Stream =_ecaed ;_egdba =append (_egdba ,_eaffd );};if len (_egdba )==1{_efeca .Contents =_egdba [0];}else {_abgcc :=_egg .MakeArray ();for _ ,_dcbff :=range _egdba {_abgcc .Append (_dcbff );};_efeca .Contents =_abgcc ;};return nil ;}; // NewPdfAnnotationFileAttachment returns a new file attachment annotation. func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_bcd :=NewPdfAnnotation ();_bcf :=&PdfAnnotationFileAttachment {};_bcf .PdfAnnotation =_bcd ;_bcf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bcd .SetContext (_bcf );return _bcf ;}; // AddExtGState adds a graphics state to the XObject resources. func (_gcfe *PdfPage )AddExtGState (name _egg .PdfObjectName ,egs *_egg .PdfObjectDictionary )error {if _gcfe .Resources ==nil {_gcfe .Resources =NewPdfPageResources ();};if _gcfe .Resources .ExtGState ==nil {_gcfe .Resources .ExtGState =_egg .MakeDict (); };_cbbddf ,_bccc :=_egg .TraceToDirectObject (_gcfe .Resources .ExtGState ).(*_egg .PdfObjectDictionary );if !_bccc {_bag .Log .Debug ("\u0045\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0045\u0078t\u0047\u0053\u0074\u0061\u0074\u0065\u0020\u0064i\u0063t\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u003a\u0020\u0025\u0076",_egg .TraceToDirectObject (_gcfe .Resources .ExtGState )); return _gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cbbddf .Set (name ,egs );return nil ;}; // NewPdfAnnotationStrikeOut returns a new text strikeout annotation. func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_cfcc :=NewPdfAnnotation ();_baf :=&PdfAnnotationStrikeOut {};_baf .PdfAnnotation =_cfcc ;_baf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cfcc .SetContext (_baf );return _baf ;}; // Outline represents a PDF outline dictionary (Table 152 - p. 376). // Currently, the Outline object can only be used to construct PDF outlines. type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};func (_bfgcf *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _gabg []*PdfFieldSignature ;for _ ,_dgbged :=range _bfgcf .AllFields (){switch _dbedd :=_dgbged .GetContext ().(type ){case *PdfFieldSignature :_cbgcg :=_dbedd ; _gabg =append (_gabg ,_cbgcg );};};return _gabg ;};func (_adbcb *pdfFontType0 )bytesToCharcodes (_gadf []byte )([]_ef .CharCode ,bool ){if _adbcb ._fcffd ==nil {return nil ,false ;};_gagca ,_gggda :=_adbcb ._fcffd .BytesToCharcodes (_gadf );if !_gggda {return nil ,false ; };_fgda :=make ([]_ef .CharCode ,len (_gagca ));for _afffb ,_cbbdd :=range _gagca {_fgda [_afffb ]=_ef .CharCode (_cbbdd );};return _fgda ,true ;}; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. The slice should contain three elements representing the // red, green and blue components of the color. The values of the elements // should be between 0 and 1. func (_gafc *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cagg :=vals [0];if _cagg < 0.0||_cagg > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cagg ); return nil ,ErrColorOutOfRange ;};_dde :=vals [1];if _dde < 0.0||_dde > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cagg );return nil ,ErrColorOutOfRange ; };_ecdga :=vals [2];if _ecdga < 0.0||_ecdga > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cagg );return nil ,ErrColorOutOfRange ;};_gefce :=NewPdfColorDeviceRGB (_cagg ,_dde ,_ecdga ); return _gefce ,nil ;}; // SetXObjectFormByName adds the provided XObjectForm to the page resources. // The added XObjectForm is identified by the specified name. func (_abgcb *PdfPageResources )SetXObjectFormByName (keyName _egg .PdfObjectName ,xform *XObjectForm )error {_eadff :=xform .ToPdfObject ().(*_egg .PdfObjectStream );_acgbf :=_abgcb .SetXObjectByName (keyName ,_eadff );return _acgbf ;}; // SetPdfKeywords sets the Keywords attribute of the output PDF. func SetPdfKeywords (keywords string ){_cgag .Lock ();defer _cgag .Unlock ();_fafb =keywords }; // RemovePage removes a page by number. func (_dagaa *PdfAppender )RemovePage (pageNum int ){_cabb :=pageNum -1;_dagaa ._beac =append (_dagaa ._beac [0:_cabb ],_dagaa ._beac [pageNum :]...);};func (_egff *DSS )generateHashMaps ()error {_fdcab ,_aebed :=_egff .generateHashMap (_egff .Certs ); if _aebed !=nil {return _aebed ;};_aafbc ,_aebed :=_egff .generateHashMap (_egff .OCSPs );if _aebed !=nil {return _aebed ;};_bbac ,_aebed :=_egff .generateHashMap (_egff .CRLs );if _aebed !=nil {return _aebed ;};_egff ._gafe =_fdcab ;_egff ._gaaec =_aafbc ; _egff ._eeecd =_bbac ;return nil ;};func _faffdb (_fccag _egg .PdfObject ,_dgfa bool )(*PdfFont ,error ){_adafc ,_abef ,_efge :=_fgafa (_fccag );if _adafc !=nil {_afaa (_adafc );};if _efge !=nil {if _efge ==ErrType1CFontNotSupported {_daec ,_ffbe :=_fbbfc (_adafc ,_abef ,nil ); if _ffbe !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0057h\u0069\u006c\u0065 l\u006f\u0061\u0064\u0069\u006e\u0067 \u0073\u0069\u006d\u0070\u006c\u0065\u0020\u0066\u006f\u006e\u0074\u003a\u0020\u0066\u006fn\u0074\u003d\u0025\u0073\u0020\u0065\u0072\u0072=\u0025\u0076",_abef ,_ffbe ); return nil ,_efge ;};return &PdfFont {_edde :_daec },_efge ;};return nil ,_efge ;};_geec :=&PdfFont {};switch _abef ._ebdf {case "\u0054\u0079\u0070e\u0030":if !_dgfa {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u004c\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0074\u0079\u0070\u00650\u0020\u006e\u006f\u0074\u0020\u0061\u006c\u006c\u006f\u0077\u0065\u0064\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_abef ); return nil ,_gd .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_ecaf ,_adad :=_bedd (_adafc ,_abef );if _adad !=nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0057\u0068\u0069l\u0065\u0020\u006c\u006f\u0061\u0064\u0069ng\u0020\u0054\u0079\u0070e\u0030\u0020\u0066\u006f\u006e\u0074\u002e\u0020\u0066on\u0074\u003d%\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_abef ,_adad ); return nil ,_adad ;};_geec ._edde =_ecaf ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _bfdd *pdfFontSimple ;_fdafe ,_bagaf :=_bgd .NewStdFontByName (_bgd .StdFontName (_abef ._dgfdc )); if _bagaf {_gdaa :=_egaa (_fdafe );_geec ._edde =&_gdaa ;_bdec :=_egg .TraceToDirectObject (_gdaa .ToPdfObject ());_aefef ,_gaba ,_aagca :=_fgafa (_bdec );if _aagca !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0042\u0061\u0064\u0020\u0053\u0074a\u006e\u0064\u0061\u0072\u0064\u00314\u000a\u0009\u0066\u006f\u006e\u0074\u003d\u0025\u0073\u000a\u0009\u0073\u0074d\u003d\u0025\u002b\u0076",_abef ,_gdaa ); return nil ,_aagca ;};for _ ,_gced :=range _adafc .Keys (){_aefef .Set (_gced ,_adafc .Get (_gced ));};_bfdd ,_aagca =_fbbfc (_aefef ,_gaba ,_gdaa ._cdee );if _aagca !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0042\u0061\u0064\u0020\u0053\u0074a\u006e\u0064\u0061\u0072\u0064\u00314\u000a\u0009\u0066\u006f\u006e\u0074\u003d\u0025\u0073\u000a\u0009\u0073\u0074d\u003d\u0025\u002b\u0076",_abef ,_gdaa ); return nil ,_aagca ;};_bfdd ._babec =_gdaa ._babec ;_bfdd ._dddd =_gdaa ._dddd ;if _bfdd ._dbbfc ==nil {_bfdd ._dbbfc =_gdaa ._dbbfc ;};}else {_bfdd ,_efge =_fbbfc (_adafc ,_abef ,nil );if _efge !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0057h\u0069\u006c\u0065 l\u006f\u0061\u0064\u0069\u006e\u0067 \u0073\u0069\u006d\u0070\u006c\u0065\u0020\u0066\u006f\u006e\u0074\u003a\u0020\u0066\u006fn\u0074\u003d\u0025\u0073\u0020\u0065\u0072\u0072=\u0025\u0076",_abef ,_efge ); return nil ,_efge ;};};_efge =_bfdd .addEncoding ();if _efge !=nil {return nil ,_efge ;};if _bagaf {_bfdd .updateStandard14Font ();};if _bagaf &&_bfdd ._cbdegf ==nil &&_bfdd ._cdee ==nil {_bag .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_bfdd ); _bag .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_fdafe );};if len (_bfdd ._babec )==0{_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_bfdd );};_geec ._edde =_bfdd ; case "\u0054\u0079\u0070e\u0033":_dbgdb ,_fgcbf :=_gdcg (_adafc ,_abef );if _fgcbf !=nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020W\u0068\u0069\u006c\u0065\u0020\u006co\u0061\u0064\u0069\u006e\u0067\u0020\u0074y\u0070\u0065\u0033\u0020\u0066\u006f\u006e\u0074\u003a\u0020%\u0076",_fgcbf ); return nil ,_fgcbf ;};_geec ._edde =_dbgdb ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_aggc ,_bgfbff :=_cbfde (_adafc ,_abef );if _bgfbff !=nil {_bag .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0057\u0068i\u006c\u0065\u0020l\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0063\u0069d \u0066\u006f\u006et\u0020\u0074y\u0070\u0065\u0030\u0020\u0066\u006fn\u0074\u003a \u0025\u0076",_bgfbff ); return nil ,_bgfbff ;};_geec ._edde =_aggc ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_caaa ,_beedc :=_dbffb (_adafc ,_abef );if _beedc !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0057\u0068\u0069l\u0065\u0020\u006co\u0061\u0064\u0069\u006e\u0067\u0020\u0063\u0069\u0064\u0020f\u006f\u006e\u0074\u0020\u0074yp\u0065\u0032\u0020\u0066\u006f\u006e\u0074\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_abef ,_beedc ); return nil ,_beedc ;};_geec ._edde =_caaa ;default:_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020U\u006e\u0073u\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020f\u006f\u006e\u0074\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0066\u006fn\u0074\u003d\u0025\u0073",_abef ); return nil ,_f .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0066\u006f\u006e\u0074\u0020\u0074y\u0070\u0065\u003a\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_abef );};return _geec ,nil ;}; // FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other // flags are specific. type FieldFlag uint32 ; // NewPdfAnnotationLink returns a new link annotation. func NewPdfAnnotationLink ()*PdfAnnotationLink {_bgf :=NewPdfAnnotation ();_afb :=&PdfAnnotationLink {};_afb .PdfAnnotation =_bgf ;_bgf .SetContext (_afb );return _afb ;}; // GetOptimizer returns current PDF optimizer. func (_gfcabd *PdfWriter )GetOptimizer ()Optimizer {return _gfcabd ._cfgb };func (_ffedbd *Image )samplesAddPadding (_badffg []uint32 )[]uint32 {_efgace :=_eg .BytesPerLine (int (_ffedbd .Width ),int (_ffedbd .BitsPerComponent ),_ffedbd .ColorComponents )*(8/int (_ffedbd .BitsPerComponent )); _cegf :=_efgace *int (_ffedbd .Height );if len (_badffg )==_cegf {return _badffg ;};_bgcff :=make ([]uint32 ,_cegf );_cgdda :=int (_ffedbd .Width )*_ffedbd .ColorComponents ;for _ecacd :=0;_ecacd < int (_ffedbd .Height );_ecacd ++{_edeff :=_ecacd *int (_ffedbd .Width ); _efgca :=_ecacd *_efgace ;for _gffgf :=0;_gffgf < _cgdda ;_gffgf ++{_bgcff [_efgca +_gffgf ]=_badffg [_edeff +_gffgf ];};};return _bgcff ;};func _gbbb (_gebc _egg .PdfObject )(*PdfColorspaceICCBased ,error ){_dggca :=&PdfColorspaceICCBased {};if _gafd ,_fcfef :=_gebc .(*_egg .PdfIndirectObject ); _fcfef {_dggca ._dcf =_gafd ;};_gebc =_egg .TraceToDirectObject (_gebc );_gfdd ,_ccbd :=_gebc .(*_egg .PdfObjectArray );if !_ccbd {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gfdd .Len ()!=2{return nil ,_f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065"); };_gebc =_egg .TraceToDirectObject (_gfdd .Get (0));_fddd ,_ccbd :=_gebc .(*_egg .PdfObjectName );if !_ccbd {return nil ,_f .Errorf ("\u0049\u0043\u0043B\u0061\u0073\u0065\u0064 \u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074"); };if *_fddd !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_f .Errorf ("\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0049\u0043\u0043\u0042a\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_gebc =_gfdd .Get (1); _gggad ,_ccbd :=_egg .GetStream (_gebc );if !_ccbd {_bag .Log .Error ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u006e\u006f\u0074\u0020\u0070o\u0069\u006e\u0074\u0069\u006e\u0067\u0020t\u006f\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020%\u0054",_gebc ); return nil ,_f .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_feae :=_gggad .PdfObjectDictionary ;_aebe ,_ccbd :=_feae .Get ("\u004e").(*_egg .PdfObjectInteger ); if !_ccbd {return nil ,_f .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u006d\u0069\u0073\u0073\u0069n\u0067\u0020\u004e\u0020\u0066\u0072\u006fm\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0064\u0069c\u0074");};if *_aebe !=1&&*_aebe !=3&&*_aebe !=4{return nil ,_f .Errorf ("\u0049\u0043\u0043\u0042\u0061s\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065 \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u006e\u006f\u0074\u0020\u0031\u002c\u0033\u002c\u0034\u0029"); };_dggca .N =int (*_aebe );if _efcb :=_feae .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_efcb !=nil {_egae ,_ccgf :=NewPdfColorspaceFromPdfObject (_efcb );if _ccgf !=nil {return nil ,_ccgf ;};_dggca .Alternate =_egae ;};if _dfed :=_feae .Get ("\u0052\u0061\u006eg\u0065"); _dfed !=nil {_dfed =_egg .TraceToDirectObject (_dfed );_fffcc ,_dbef :=_dfed .(*_egg .PdfObjectArray );if !_dbef {return nil ,_f .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0061\u006e \u0061r\u0072\u0061\u0079"); };if _fffcc .Len ()!=2*_dggca .N {return nil ,_f .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u0052\u0061\u006e\u0067e\u0020\u0077\u0072\u006f\u006e\u0067 \u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0065\u006c\u0065m\u0065\u006e\u0074\u0073"); };_bgda ,_ccf :=_fffcc .GetAsFloat64Slice ();if _ccf !=nil {return nil ,_ccf ;};_dggca .Range =_bgda ;}else {_dggca .Range =make ([]float64 ,2*_dggca .N );for _cgba :=0;_cgba < _dggca .N ;_cgba ++{_dggca .Range [2*_cgba ]=0.0;_dggca .Range [2*_cgba +1]=1.0; };};if _agbb :=_feae .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_agbb !=nil {_cfde ,_acffa :=_agbb .(*_egg .PdfObjectStream );if !_acffa {return nil ,_f .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u004de\u0074\u0061\u0064\u0061\u0074\u0061\u0020n\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d"); };_dggca .Metadata =_cfde ;};_agfe ,_fdgd :=_egg .DecodeStream (_gggad );if _fdgd !=nil {return nil ,_fdgd ;};_dggca .Data =_agfe ;_dggca ._bcda =_gggad ;return _dggca ,nil ;}; // SetImage updates XObject Image with new image data. func (_decf *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_decf .Filter .UpdateParams (img .GetParamsDict ());_beeffb ,_dbgca :=_decf .Filter .EncodeBytes (img .Data );if _dbgca !=nil {return _dbgca ;};_decf .Stream =_beeffb ;_cgfde :=img .Width ; _decf .Width =&_cgfde ;_dbfcg :=img .Height ;_decf .Height =&_dbfcg ;_cabbcc :=img .BitsPerComponent ;_decf .BitsPerComponent =&_cabbcc ;if cs ==nil {if img .ColorComponents ==1{_decf .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_decf .ColorSpace =NewPdfColorspaceDeviceRGB (); }else if img .ColorComponents ==4{_decf .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _gd .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_decf .ColorSpace =cs ;};return nil ; };func (_fdeb fontCommon )fontFlags ()int {if _fdeb ._bgacg ==nil {return 0;};return _fdeb ._bgacg ._adfdfe ;}; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. The slice should contain a single element. func (_bggg *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_geab :=vals [0];_ddedc :=[]float64 {_geab };_faeg ,_efba :=_bggg .TintTransform .Evaluate (_ddedc ); if _efba !=nil {_bag .Log .Debug ("\u0045\u0072r\u006f\u0072\u002c\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0065\u0076\u0061\u006c\u0075\u0061\u0074\u0065: \u0025\u0076",_efba );_bag .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_bggg .TintTransform ); return nil ,_efba ;};_bag .Log .Trace ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0043\u006f\u006c\u006fr\u0046\u0072\u006f\u006d\u0046\u006c\u006f\u0061\u0074\u0073\u0028\u0025\u002bv\u0029\u0020\u006f\u006e\u0020\u0041\u006c\u0074\u0065\u0072\u006e\u0061te\u0053\u0070\u0061\u0063\u0065\u003a\u0020\u0025\u0023\u0076",_faeg ,_bggg .AlternateSpace ); _ggac ,_efba :=_bggg .AlternateSpace .ColorFromFloats (_faeg );if _efba !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u002c\u0020\u0066a\u0069\u006c\u0065d \u0074\u006f\u0020\u0065\u0076\u0061l\u0075\u0061\u0074\u0065\u0020\u0069\u006e\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061t\u0065\u0020\u0073\u0070\u0061\u0063\u0065\u003a \u0025\u0076",_efba ); return nil ,_efba ;};return _ggac ,nil ;};func (_cbfdg *PdfReader )buildOutlineTree (_ggcgga _egg .PdfObject ,_adecba *PdfOutlineTreeNode ,_fcfbe *PdfOutlineTreeNode ,_adgbd map[_egg .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _adgbd ==nil {_adgbd =map[_egg .PdfObject ]struct{}{}; };_adgbd [_ggcgga ]=struct{}{};_dbbfcd ,_cbbdc :=_ggcgga .(*_egg .PdfIndirectObject );if !_cbbdc {return nil ,nil ,_f .Errorf ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0063\u006f\u006et\u0061\u0069\u006e\u0065r\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0054",_ggcgga ); };_cfgdg ,_fcfc :=_dbbfcd .PdfObject .(*_egg .PdfObjectDictionary );if !_fcfc {return nil ,nil ,_gd .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_bag .Log .Trace ("\u0062\u0075\u0069\u006c\u0064\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0074\u0072\u0065\u0065\u003a\u0020d\u0069\u0063\u0074\u003a\u0020\u0025\u0076\u0020\u0028\u0025\u0076\u0029\u0020p\u003a\u0020\u0025\u0070",_cfgdg ,_dbbfcd ,_dbbfcd ); if _ggagg :=_cfgdg .Get ("\u0054\u0069\u0074l\u0065");_ggagg !=nil {_faddf ,_gadc :=_cbfdg .newPdfOutlineItemFromIndirectObject (_dbbfcd );if _gadc !=nil {return nil ,nil ,_gadc ;};_faddf .Parent =_adecba ;_faddf .Prev =_fcfbe ;_degdc :=_egg .ResolveReference (_cfgdg .Get ("\u0046\u0069\u0072s\u0074")); if _ ,_bbfg :=_adgbd [_degdc ];_degdc !=nil &&_degdc !=_dbbfcd &&!_bbfg {if !_egg .IsNullObject (_degdc ){_dggeb ,_fgcgfe ,_agafg :=_cbfdg .buildOutlineTree (_degdc ,&_faddf .PdfOutlineTreeNode ,nil ,_adgbd );if _agafg !=nil {_bag .Log .Debug ("D\u0045\u0042U\u0047\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0062\u0075\u0069\u006c\u0064\u0020\u006fu\u0074\u006c\u0069\u006e\u0065\u0020\u0069\u0074\u0065\u006d\u0020\u0074\u0072\u0065\u0065\u003a \u0025\u0076\u002e\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020n\u006f\u0064\u0065\u0020\u0063\u0068\u0069\u006c\u0064\u0072\u0065n\u002e",_agafg ); }else {_faddf .First =_dggeb ;_faddf .Last =_fgcgfe ;};};};_bfaff :=_egg .ResolveReference (_cfgdg .Get ("\u004e\u0065\u0078\u0074"));if _ ,_cfdeb :=_adgbd [_bfaff ];_bfaff !=nil &&_bfaff !=_dbbfcd &&!_cfdeb {if !_egg .IsNullObject (_bfaff ){_cgabc ,_addc ,_edbfd :=_cbfdg .buildOutlineTree (_bfaff ,_adecba ,&_faddf .PdfOutlineTreeNode ,_adgbd ); if _edbfd !=nil {_bag .Log .Debug ("D\u0045\u0042U\u0047\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0062\u0075\u0069\u006c\u0064\u0020\u006fu\u0074\u006c\u0069\u006e\u0065\u0020\u0074\u0072\u0065\u0065\u0020\u0066\u006f\u0072\u0020\u004ee\u0078\u0074\u0020\u006e\u006f\u0064\u0065\u003a\u0020\u0025\u0076\u002e\u0020S\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u006e\u006f\u0064e\u002e",_edbfd ); }else {_faddf .Next =_cgabc ;return &_faddf .PdfOutlineTreeNode ,_addc ,nil ;};};};return &_faddf .PdfOutlineTreeNode ,&_faddf .PdfOutlineTreeNode ,nil ;};_bfff ,_ecffa :=_bagfg (_dbbfcd );if _ecffa !=nil {return nil ,nil ,_ecffa ;};_bfff .Parent =_adecba ; if _ddgeg :=_cfgdg .Get ("\u0046\u0069\u0072s\u0074");_ddgeg !=nil {_ddgeg =_egg .ResolveReference (_ddgeg );if _ ,_acccb :=_adgbd [_ddgeg ];_ddgeg !=nil &&_ddgeg !=_dbbfcd &&!_acccb {_cabfc :=_egg .TraceToDirectObject (_ddgeg );if _ ,_bbfa :=_cabfc .(*_egg .PdfObjectNull ); !_bbfa &&_cabfc !=nil {_feeab ,_cccde ,_aeffg :=_cbfdg .buildOutlineTree (_ddgeg ,&_bfff .PdfOutlineTreeNode ,nil ,_adgbd );if _aeffg !=nil {_bag .Log .Debug ("\u0044\u0045\u0042\u0055\u0047\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020b\u0075\u0069\u006c\u0064\u0020\u006f\u0075\u0074\u006c\u0069n\u0065\u0020\u0074\u0072\u0065\u0065\u003a\u0020\u0025\u0076\u002e\u0020\u0053\u006b\u0069\u0070\u0070\u0069n\u0067\u0020\u006e\u006f\u0064\u0065 \u0063\u0068i\u006c\u0064r\u0065n\u002e",_aeffg ); }else {_bfff .First =_feeab ;_bfff .Last =_cccde ;};};};};return &_bfff .PdfOutlineTreeNode ,&_bfff .PdfOutlineTreeNode ,nil ;}; // SetPdfAuthor sets the Author attribute of the output PDF. func SetPdfAuthor (author string ){_cgag .Lock ();defer _cgag .Unlock ();_cdcf =author };func (_cff *PdfReader )newPdfActionGotoRFromDict (_bc *_egg .PdfObjectDictionary )(*PdfActionGoToR ,error ){_cdg ,_ffbb :=_fgb (_bc .Get ("\u0046"));if _ffbb !=nil {return nil ,_ffbb ; };return &PdfActionGoToR {D :_bc .Get ("\u0044"),NewWindow :_bc .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_cdg },nil ;};func _eaebg ()string {_abgc :="\u0051\u0057\u0045\u0052\u0054\u0059\u0055\u0049\u004f\u0050\u0041S\u0044\u0046\u0047\u0048\u004a\u004b\u004c\u005a\u0058\u0043V\u0042\u004e\u004d"; var _daaeba _dd .Buffer ;for _ccgba :=0;_ccgba < 6;_ccgba ++{_daaeba .WriteRune (rune (_abgc [_cg .Intn (len (_abgc ))]));};return _daaeba .String ();}; // PdfVersion returns version of the PDF file. func (_aadbb *PdfReader )PdfVersion ()_egg .Version {return _aadbb ._dafgab .PdfVersion ()}; // Hasher is the interface that wraps the basic Write method. type Hasher interface{Write (_dfceg []byte )(_eadeeg int ,_bfdfd error );}; // AcroFormRepairOptions contains options for rebuilding the AcroForm. type AcroFormRepairOptions struct{}; // NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams. func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_egg .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_egg .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()}; }; // ReaderToWriterOpts options used to generate a PdfWriter. type ReaderToWriterOpts struct{SkipAcroForm bool ;SkipInfo bool ;SkipNameDictionary bool ;SkipNamedDests bool ;SkipOCProperties bool ;SkipOutlines bool ;SkipPageLabels bool ;SkipRotation bool ;SkipMetadata bool ;PageProcessCallback PageProcessCallback ; // Deprecated: will be removed in v4. Use PageProcessCallback instead. PageCallback PageCallback ;};func (_feff *pdfCIDFontType0 )baseFields ()*fontCommon {return &_feff .fontCommon };func (_fdecg *PdfReader )loadDSS ()(*DSS ,error ){if _fdecg ._dafgab .GetCrypter ()!=nil &&!_fdecg ._dafgab .IsAuthenticated (){return nil ,_f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074"); };_gfefe :=_fdecg ._eacf .Get ("\u0044\u0053\u0053");if _gfefe ==nil {return nil ,nil ;};_gdeced ,_ :=_egg .GetIndirect (_gfefe );_gfefe =_egg .TraceToDirectObject (_gfefe );switch _efed :=_gfefe .(type ){case *_egg .PdfObjectNull :return nil ,nil ;case *_egg .PdfObjectDictionary :return _gfgga (_gdeced ,_efed ); };return nil ,_f .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_gfefe );}; // GetNameDictionary returns the Names entry in the PDF catalog. // See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008). func (_dbcga *PdfReader )GetNameDictionary ()(_egg .PdfObject ,error ){_cdgggc :=_egg .ResolveReference (_dbcga ._eacf .Get ("\u004e\u0061\u006de\u0073"));if _cdgggc ==nil {return nil ,nil ;};if !_dbcga ._cede {_bcfa :=_dbcga .traverseObjectData (_cdgggc ); if _bcfa !=nil {return nil ,_bcfa ;};};return _cdgggc ,nil ;}; // ToPdfObject implements interface PdfModel. func (_gfca *PdfActionJavaScript )ToPdfObject ()_egg .PdfObject {_gfca .PdfAction .ToPdfObject ();_aefc :=_gfca ._bf ;_eed :=_aefc .PdfObject .(*_egg .PdfObjectDictionary );_eed .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeJavaScript )));_eed .SetIfNotNil ("\u004a\u0053",_gfca .JS ); return _aefc ;}; // NewStandard14FontWithEncoding returns the standard 14 font named `basefont` as a *PdfFont and // a TextEncoder that encodes all the runes in `alphabet`, or an error if this is not possible. // An error can occur if `basefont` is not one the standard 14 font names. func NewStandard14FontWithEncoding (basefont StdFontName ,alphabet map[rune ]int )(*PdfFont ,_ef .SimpleEncoder ,error ){_baega ,_cffec :=_ceef (basefont );if _cffec !=nil {return nil ,nil ,_cffec ;};_bfda ,_eefge :=_baega .Encoder ().(_ef .SimpleEncoder ); if !_eefge {return nil ,nil ,_f .Errorf ("\u006f\u006e\u006c\u0079\u0020s\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006eg\u0020\u0069\u0073\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u002c\u0020\u0067\u006f\u0074\u0020\u0025\u0054",_baega .Encoder ()); };_aefdc :=make (map[rune ]_ef .GlyphName );for _cfcd :=range alphabet {if _ ,_eedgg :=_bfda .RuneToCharcode (_cfcd );!_eedgg {_ ,_bgdc :=_baega ._dddd .Read (_cfcd );if !_bgdc {_bag .Log .Trace ("r\u0075\u006e\u0065\u0020\u0025\u0023x\u003d\u0025\u0071\u0020\u006e\u006f\u0074\u0020\u0069n\u0020\u0074\u0068e\u0020f\u006f\u006e\u0074",_cfcd ,_cfcd ); continue ;};_bbbd ,_bgdc :=_ef .RuneToGlyph (_cfcd );if !_bgdc {_bag .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_cfcd ,_cfcd );continue ;};if len (_aefdc )>=255{return nil ,nil ,_gd .New ("\u0074\u006f\u006f\u0020\u006d\u0061\u006e\u0079\u0020\u0063\u0068\u0061\u0072a\u0063\u0074\u0065\u0072\u0073\u0020f\u006f\u0072\u0020\u0073\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063o\u0064\u0069\u006e\u0067"); };_aefdc [_cfcd ]=_bbbd ;};};var (_aaaf []_ef .CharCode ;_dafb []_ef .CharCode ;);for _bccdb :=_ef .CharCode (1);_bccdb <=0xff;_bccdb ++{_dffgf ,_gacgd :=_bfda .CharcodeToRune (_bccdb );if !_gacgd {_aaaf =append (_aaaf ,_bccdb );continue ;};if _ ,_gacgd =alphabet [_dffgf ]; !_gacgd {_dafb =append (_dafb ,_bccdb );};};_efdfe :=append (_aaaf ,_dafb ...);if len (_efdfe )< len (_aefdc ){return nil ,nil ,_f .Errorf ("n\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0065\u006ec\u006f\u0064\u0065\u0020\u0025\u0064\u0020ru\u006e\u0065\u0073\u002c \u0062\u0075\u0074\u0020\u0068\u0061\u0076\u0065\u0020on\u006c\u0079 \u0025\u0064\u0020\u0073\u006c\u006f\u0074\u0073",len (_aefdc ),len (_efdfe )); };_gggd :=make ([]rune ,0,len (_aefdc ));for _fadcf :=range _aefdc {_gggd =append (_gggd ,_fadcf );};_cf .Slice (_gggd ,func (_afddf ,_adecb int )bool {return _gggd [_afddf ]< _gggd [_adecb ]});_eega :=make (map[_ef .CharCode ]_ef .GlyphName ,len (_gggd )); for _ ,_bdde :=range _gggd {_cacce :=_efdfe [0];_efdfe =_efdfe [1:];_eega [_cacce ]=_aefdc [_bdde ];};_bfda =_ef .ApplyDifferences (_bfda ,_eega );_baega .SetEncoder (_bfda );return &PdfFont {_edde :&_baega },_bfda ,nil ;}; // NewPdfColorspaceCalRGB returns a new CalRGB colorspace object. func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_bdda :=&PdfColorspaceCalRGB {};_bdda .BlackPoint =[]float64 {0.0,0.0,0.0};_bdda .Gamma =[]float64 {1.0,1.0,1.0};_bdda .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _bdda ;}; // M returns the value of the magenta component of the color. func (_dbeg *PdfColorDeviceCMYK )M ()float64 {return _dbeg [1]};var ErrColorOutOfRange =_gd .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065"); // NewPdfAnnotationFreeText returns a new free text annotation. func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_ecdg :=NewPdfAnnotation ();_ggg :=&PdfAnnotationFreeText {};_ggg .PdfAnnotation =_ecdg ;_ggg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ecdg .SetContext (_ggg );return _ggg ;}; // ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup] func (_abdgb *PdfColorspaceSpecialIndexed )ToPdfObject ()_egg .PdfObject {_eeded :=_egg .MakeArray (_egg .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_eeded .Append (_abdgb .Base .ToPdfObject ());_eeded .Append (_egg .MakeInteger (int64 (_abdgb .HiVal ))); _eeded .Append (_abdgb .Lookup );if _abdgb ._ceed !=nil {_abdgb ._ceed .PdfObject =_eeded ;return _abdgb ._ceed ;};return _eeded ;}; // ToPdfObject implements interface PdfModel. func (_bgce *PdfAnnotationInk )ToPdfObject ()_egg .PdfObject {_bgce .PdfAnnotation .ToPdfObject ();_aeab :=_bgce ._cef ;_edeg :=_aeab .PdfObject .(*_egg .PdfObjectDictionary );_bgce .PdfAnnotationMarkup .appendToPdfDictionary (_edeg );_edeg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0049\u006e\u006b")); _edeg .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_bgce .InkList );_edeg .SetIfNotNil ("\u0042\u0053",_bgce .BS );return _aeab ;};func (_bfa *PdfReader )newPdfActionTransFromDict (_gbg *_egg .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_gbg .Get ("\u0054\u0072\u0061n\u0073")},nil ; }; // PdfAnnotationMarkup represents additional fields for mark-up annotations. // (Section 12.5.6.2 p. 399). type PdfAnnotationMarkup struct{T _egg .PdfObject ;Popup *PdfAnnotationPopup ;CA _egg .PdfObject ;RC _egg .PdfObject ;CreationDate _egg .PdfObject ;IRT _egg .PdfObject ;Subj _egg .PdfObject ;RT _egg .PdfObject ;IT _egg .PdfObject ;ExData _egg .PdfObject ; }; // NewDSS returns a new DSS dictionary. func NewDSS ()*DSS {return &DSS {_eaceg :_egg .MakeIndirectObject (_egg .MakeDict ()),VRI :map[string ]*VRI {}};}; // GetCharMetrics returns the char metrics for character code `code`. func (_afgde pdfCIDFontType0 )GetCharMetrics (code _ef .CharCode )(_bgd .CharMetrics ,bool ){_decee :=_afgde ._afdcf ;if _cbdgd ,_dbcbc :=_afgde ._decd [code ];_dbcbc {_decee =_cbdgd ;};return _bgd .CharMetrics {Wx :_decee },true ;}; // PartialName returns the partial name of the field. func (_decc *PdfField )PartialName ()string {_gfafe :="";if _decc .T !=nil {_gfafe =_decc .T .Decoded ();}else {_bag .Log .Debug ("\u0046\u0069el\u0064\u0020\u006di\u0073\u0073\u0069\u006eg T\u0020fi\u0065\u006c\u0064\u0020\u0028\u0069\u006eco\u006d\u0070\u0061\u0074\u0069\u0062\u006ce\u0029"); };return _gfafe ;};const (FieldFlagClear FieldFlag =0;FieldFlagReadOnly FieldFlag =1;FieldFlagRequired FieldFlag =(1<<1);FieldFlagNoExport FieldFlag =(2<<1);FieldFlagNoToggleToOff FieldFlag =(1<<14);FieldFlagRadio FieldFlag =(1<<15);FieldFlagPushbutton FieldFlag =(1<<16); FieldFlagRadiosInUnision FieldFlag =(1<<25);FieldFlagMultiline FieldFlag =(1<<12);FieldFlagPassword FieldFlag =(1<<13);FieldFlagFileSelect FieldFlag =(1<<20);FieldFlagDoNotScroll FieldFlag =(1<<23);FieldFlagComb FieldFlag =(1<<24);FieldFlagRichText FieldFlag =(1<<25); FieldFlagDoNotSpellCheck FieldFlag =(1<<22);FieldFlagCombo FieldFlag =(1<<17);FieldFlagEdit FieldFlag =(1<<18);FieldFlagSort FieldFlag =(1<<19);FieldFlagMultiSelect FieldFlag =(1<<21);FieldFlagCommitOnSelChange FieldFlag =(1<<26););func (_ccbdg *PdfWriter )copyObject (_gcgde _egg .PdfObject ,_abgbg map[_egg .PdfObject ]_egg .PdfObject ,_bgddca map[_egg .PdfObject ]struct{},_befee bool )_egg .PdfObject {_fecfd :=!_ccbdg ._gabaca &&_bgddca !=nil ; if _dcffd ,_accbd :=_abgbg [_gcgde ];_accbd {if _fecfd &&!_befee {delete (_bgddca ,_gcgde );};return _dcffd ;};_deedd :=_gcgde ;switch _bdggc :=_gcgde .(type ){case *_egg .PdfObjectArray :_ecbag :=_egg .MakeArray ();_deedd =_ecbag ;_abgbg [_gcgde ]=_deedd ; for _ ,_ccgfe :=range _bdggc .Elements (){_ecbag .Append (_ccbdg .copyObject (_ccgfe ,_abgbg ,_bgddca ,_befee ));};case *_egg .PdfObjectStreams :_aeeacc :=&_egg .PdfObjectStreams {PdfObjectReference :_bdggc .PdfObjectReference };_deedd =_aeeacc ;_abgbg [_gcgde ]=_deedd ; for _ ,_eafbf :=range _bdggc .Elements (){_aeeacc .Append (_ccbdg .copyObject (_eafbf ,_abgbg ,_bgddca ,_befee ));};case *_egg .PdfObjectStream :_efdbc :=&_egg .PdfObjectStream {Stream :_bdggc .Stream ,PdfObjectReference :_bdggc .PdfObjectReference };_deedd =_efdbc ; _abgbg [_gcgde ]=_deedd ;_efdbc .PdfObjectDictionary =_ccbdg .copyObject (_bdggc .PdfObjectDictionary ,_abgbg ,_bgddca ,_befee ).(*_egg .PdfObjectDictionary );case *_egg .PdfObjectDictionary :var _gfgfc bool ;if _fecfd &&!_befee {if _dagdc ,_ :=_egg .GetNameVal (_bdggc .Get ("\u0054\u0079\u0070\u0065")); _dagdc =="\u0050\u0061\u0067\u0065"{_ ,_efaac :=_ccbdg ._fcdab [_bdggc ];_befee =!_efaac ;_gfgfc =_befee ;};};_egggb :=_egg .MakeDict ();_deedd =_egggb ;_abgbg [_gcgde ]=_deedd ;for _ ,_efffe :=range _bdggc .Keys (){_egggb .Set (_efffe ,_ccbdg .copyObject (_bdggc .Get (_efffe ),_abgbg ,_bgddca ,_befee )); };if _gfgfc {_deedd =_egg .MakeNull ();_befee =false ;};case *_egg .PdfIndirectObject :_gbcfg :=&_egg .PdfIndirectObject {PdfObjectReference :_bdggc .PdfObjectReference };_deedd =_gbcfg ;_abgbg [_gcgde ]=_deedd ;_gbcfg .PdfObject =_ccbdg .copyObject (_bdggc .PdfObject ,_abgbg ,_bgddca ,_befee ); case *_egg .PdfObjectString :_beaae :=*_bdggc ;_deedd =&_beaae ;_abgbg [_gcgde ]=_deedd ;case *_egg .PdfObjectName :_beeee :=*_bdggc ;_deedd =&_beeee ;_abgbg [_gcgde ]=_deedd ;case *_egg .PdfObjectNull :_deedd =_egg .MakeNull ();_abgbg [_gcgde ]=_deedd ; case *_egg .PdfObjectInteger :_dfbb :=*_bdggc ;_deedd =&_dfbb ;_abgbg [_gcgde ]=_deedd ;case *_egg .PdfObjectReference :_geeeb :=*_bdggc ;_deedd =&_geeeb ;_abgbg [_gcgde ]=_deedd ;case *_egg .PdfObjectFloat :_fgcd :=*_bdggc ;_deedd =&_fgcd ;_abgbg [_gcgde ]=_deedd ; case *_egg .PdfObjectBool :_ebfdgb :=*_bdggc ;_deedd =&_ebfdgb ;_abgbg [_gcgde ]=_deedd ;case *pdfSignDictionary :_addfe :=&pdfSignDictionary {PdfObjectDictionary :_egg .MakeDict (),_ebdca :_bdggc ._ebdca ,_gbbba :_bdggc ._gbbba };_deedd =_addfe ;_abgbg [_gcgde ]=_deedd ; for _ ,_aebgg :=range _bdggc .Keys (){_addfe .Set (_aebgg ,_ccbdg .copyObject (_bdggc .Get (_aebgg ),_abgbg ,_bgddca ,_befee ));};default:_bag .Log .Info ("\u0054\u004f\u0044\u004f\u0028\u0061\u0035\u0069\u0029\u003a\u0020\u0069\u006dp\u006c\u0065\u006d\u0065\u006e\u0074 \u0063\u006f\u0070\u0079\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0066\u006fr\u0020\u0025\u002b\u0076",_gcgde ); };if _fecfd &&_befee {_bgddca [_gcgde ]=struct{}{};};return _deedd ;}; // NewPermissions returns a new permissions object. func NewPermissions (docMdp *PdfSignature )*Permissions {_ggbcae :=Permissions {};_ggbcae .DocMDP =docMdp ;_bafb :=_egg .MakeDict ();_bafb .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_ggbcae ._ffgafc =_bafb ;return &_ggbcae ;}; // CharcodesToUnicodeWithStats is identical to CharcodesToUnicode except it returns more statistical // information about hits and misses from the reverse mapping process. // NOTE: The number of runes returned may be greater than the number of charcodes. // TODO(peterwilliams97): Deprecate in v4 and use only CharcodesToStrings() func (_ccaed *PdfFont )CharcodesToUnicodeWithStats (charcodes []_ef .CharCode )(_gfegf []rune ,_acdd ,_fgdc int ){_aagd ,_acdd ,_fgdc :=_ccaed .CharcodesToStrings (charcodes );return []rune (_fc .Join (_aagd ,"")),_acdd ,_fgdc ;}; // Fill populates `form` with values provided by `provider`. func (_facge *PdfAcroForm )Fill (provider FieldValueProvider )error {return _facge .fill (provider ,nil )};func (_bedf *LTV )generateVRIKey (_bcdc *PdfSignature )(string ,error ){_bccda ,_cabed :=_eefdc (_bcdc .Contents .Bytes ());if _cabed !=nil {return "",_cabed ; };return _fc .ToUpper (_fg .EncodeToString (_bccda )),nil ;};func (_age *PdfReader )newPdfActionImportDataFromDict (_aag *_egg .PdfObjectDictionary )(*PdfActionImportData ,error ){_bgb ,_ggd :=_fgb (_aag .Get ("\u0046"));if _ggd !=nil {return nil ,_ggd ; };return &PdfActionImportData {F :_bgb },nil ;}; // PdfActionMovie represents a movie action. type PdfActionMovie struct{*PdfAction ;Annotation _egg .PdfObject ;T _egg .PdfObject ;Operation _egg .PdfObject ;}; // PdfAnnotationText represents Text annotations. // (Section 12.5.6.4 p. 402). type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _egg .PdfObject ;Name _egg .PdfObject ;State _egg .PdfObject ;StateModel _egg .PdfObject ;}; // PdfColorDeviceRGB represents a color in DeviceRGB colorspace with R, G, B components, where component is // defined in the range 0.0 - 1.0 where 1.0 is the primary intensity. type PdfColorDeviceRGB [3]float64 ; // HasXObjectByName checks if an XObject with a specified keyName is defined. func (_defd *PdfPageResources )HasXObjectByName (keyName _egg .PdfObjectName )bool {_eecdf ,_ :=_defd .GetXObjectByName (keyName );return _eecdf !=nil ;};func (_gageb *LTV )enable (_aega ,_gabce []*_dg .Certificate ,_fadf string )error {_bcaba ,_bbega ,_cbab :=_gageb .buildCertChain (_aega ,_gabce ); if _cbab !=nil {return _cbab ;};_gdag ,_cbab :=_gageb .getCerts (_bcaba );if _cbab !=nil {return _cbab ;};_cadf ,_cbab :=_gageb .getOCSPs (_bcaba ,_bbega );if _cbab !=nil {return _cbab ;};_gccg ,_cbab :=_gageb .getCRLs (_bcaba );if _cbab !=nil {return _cbab ; };_bbegc :=_gageb ._cbbab ;_cbcae ,_cbab :=_bbegc .addCerts (_gdag );if _cbab !=nil {return _cbab ;};_aefdf ,_cbab :=_bbegc .addOCSPs (_cadf );if _cbab !=nil {return _cbab ;};_fadb ,_cbab :=_bbegc .addCRLs (_gccg );if _cbab !=nil {return _cbab ;};if _fadf !=""{_bbegc .VRI [_fadf ]=&VRI {Cert :_cbcae ,OCSP :_aefdf ,CRL :_fadb }; };_gageb ._dbdga .SetDSS (_bbegc );return nil ;};func (_cdcc *LTV )getOCSPs (_acfdd []*_dg .Certificate ,_aebg map[string ]*_dg .Certificate )([][]byte ,error ){_fcacd :=make ([][]byte ,0,len (_acfdd ));for _ ,_bdege :=range _acfdd {for _ ,_dabdf :=range _bdege .OCSPServer {if _cdcc .CertClient .IsCA (_bdege ){continue ; };_ebed ,_ccafa :=_aebg [_bdege .Issuer .CommonName ];if !_ccafa {_bag .Log .Debug ("\u0057\u0041\u0052\u004e:\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067 \u004f\u0043\u0053\u0050\u0020\u0072\u0065\u0071\u0075\u0065\u0073\u0074\u003a\u0020\u0069\u0073\u0073\u0075e\u0072\u0020\u0063\u0065\u0072t\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064"); continue ;};_ ,_becebe ,_ffgd :=_cdcc .OCSPClient .MakeRequest (_dabdf ,_bdege ,_ebed );if _ffgd !=nil {_bag .Log .Debug ("\u0057\u0041\u0052\u004e:\u0020\u004f\u0043\u0053\u0050\u0020\u0072\u0065\u0071\u0075e\u0073t\u0020\u0065\u0072\u0072\u006f\u0072\u003a \u0025\u0076",_ffgd ); continue ;};_fcacd =append (_fcacd ,_becebe );};};return _fcacd ,nil ;}; // SetPdfModifiedDate sets the ModDate attribute of the output PDF. func SetPdfModifiedDate (modifiedDate _e .Time ){_cgag .Lock ();defer _cgag .Unlock ();_gfeea =modifiedDate ;}; // ToImage converts an object to an Image which can be transformed or saved out. // The image data is decoded and the Image returned. func (_gfccc *XObjectImage )ToImage ()(*Image ,error ){_cgbfe :=&Image {};if _gfccc .Height ==nil {return nil ,_gd .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067"); };_cgbfe .Height =*_gfccc .Height ;if _gfccc .Width ==nil {return nil ,_gd .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_cgbfe .Width =*_gfccc .Width ;if _gfccc .BitsPerComponent ==nil {switch _gfccc .Filter .(type ){case *_egg .CCITTFaxEncoder ,*_egg .JBIG2Encoder :_cgbfe .BitsPerComponent =1; case *_egg .LZWEncoder ,*_egg .RunLengthEncoder :_cgbfe .BitsPerComponent =8;default:return nil ,_gd .New ("\u0062\u0069\u0074\u0073\u0020\u0070\u0065\u0072\u0020\u0063\u006fm\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006d\u0069\u0073s\u0069\u006e\u0067"); };}else {_cgbfe .BitsPerComponent =*_gfccc .BitsPerComponent ;};_cgbfe .ColorComponents =_gfccc .ColorSpace .GetNumComponents ();_gfccc ._gefbe .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_egg .MakeInteger (int64 (_cgbfe .ColorComponents ))); _gfgc ,_aeaae :=_egg .DecodeStream (_gfccc ._gefbe );if _aeaae !=nil {return nil ,_aeaae ;};_cgbfe .Data =_gfgc ;if _gfccc .Decode !=nil {_fegef ,_gegb :=_gfccc .Decode .(*_egg .PdfObjectArray );if !_gegb {_bag .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074"); return nil ,_gd .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_aecfe ,_gegcf :=_fegef .ToFloat64Array ();if _gegcf !=nil {return nil ,_gegcf ;};_cgbfe ._abfae =_aecfe ;};return _cgbfe ,nil ;}; // NewPdfAnnotationTrapNet returns a new trapnet annotation. func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_ece :=NewPdfAnnotation ();_bcg :=&PdfAnnotationTrapNet {};_bcg .PdfAnnotation =_ece ;_ece .SetContext (_bcg );return _bcg ;}; // ToOutlineTree returns a low level PdfOutlineTreeNode object, based on // the current instance. func (_cbcb *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_cbcb .ToPdfOutline ().PdfOutlineTreeNode ;};func (_fgae *PdfReader )newPdfAnnotationPopupFromDict (_cbad *_egg .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_dcdg :=PdfAnnotationPopup {}; _dcdg .Parent =_cbad .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_dcdg .Open =_cbad .Get ("\u004f\u0070\u0065\u006e");return &_dcdg ,nil ;}; // ToPdfObject implements interface PdfModel. func (_aecg *PdfAnnotationWidget )ToPdfObject ()_egg .PdfObject {_aecg .PdfAnnotation .ToPdfObject ();_cdfe :=_aecg ._cef ;_ffaa :=_cdfe .PdfObject .(*_egg .PdfObjectDictionary );if _aecg ._gae {return _cdfe ;};_aecg ._gae =true ;_ffaa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074")); _ffaa .SetIfNotNil ("\u0048",_aecg .H );_ffaa .SetIfNotNil ("\u004d\u004b",_aecg .MK );_ffaa .SetIfNotNil ("\u0041",_aecg .A );_ffaa .SetIfNotNil ("\u0041\u0041",_aecg .AA );_ffaa .SetIfNotNil ("\u0042\u0053",_aecg .BS );_bbag :=_aecg .Parent ;if _aecg ._daa !=nil {if _aecg ._daa ._agef ==_aecg ._cef {_aecg ._daa .ToPdfObject (); };_bbag =_aecg ._daa .GetContainingPdfObject ();};if _bbag !=_cdfe {_ffaa .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_bbag );};_aecg ._gae =false ;return _cdfe ;}; // PdfAnnotationLine represents Line annotations. // (Section 12.5.6.7). type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _egg .PdfObject ;BS _egg .PdfObject ;LE _egg .PdfObject ;IC _egg .PdfObject ;LL _egg .PdfObject ;LLE _egg .PdfObject ;Cap _egg .PdfObject ;IT _egg .PdfObject ;LLO _egg .PdfObject ;CP _egg .PdfObject ; Measure _egg .PdfObject ;CO _egg .PdfObject ;}; // B returns the value of the B component of the color. func (_edbbb *PdfColorCalRGB )B ()float64 {return _edbbb [1]}; // PdfShadingType6 is a Coons patch mesh. type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_egg .PdfObjectInteger ;BitsPerComponent *_egg .PdfObjectInteger ;BitsPerFlag *_egg .PdfObjectInteger ;Decode *_egg .PdfObjectArray ;Function []PdfFunction ;}; // PdfColorspaceDeviceNAttributes contains additional information about the components of colour space that // conforming readers may use. Conforming readers need not use the alternateSpace and tintTransform parameters, // and may instead use a custom blending algorithms, along with other information provided in the attributes // dictionary if present. type PdfColorspaceDeviceNAttributes struct{Subtype *_egg .PdfObjectName ;Colorants _egg .PdfObject ;Process _egg .PdfObject ;MixingHints _egg .PdfObject ;_cdgc *_egg .PdfIndirectObject ;};var _effdb =map[string ]struct{}{"\u0046\u0054":{},"\u004b\u0069\u0064\u0073":{},"\u0054":{},"\u0054\u0055":{},"\u0054\u004d":{},"\u0046\u0066":{},"\u0056":{},"\u0044\u0056":{},"\u0041\u0041":{},"\u0044\u0041":{},"\u0051":{},"\u0044\u0053":{},"\u0052\u0056":{}}; // String returns a string representation of PdfTransformParamsDocMDP. func (_abcdf *PdfTransformParamsDocMDP )String ()string {return _f .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_abcdf .Type ,_abcdf .P ,_abcdf .V );};func (_ddaf *PdfReader )lookupPageByObject (_faffg _egg .PdfObject )(*PdfPage ,error ){return nil ,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064"); }; // PdfInfo holds document information that will overwrite // document information global variables defined above. type PdfInfo struct{Title *_egg .PdfObjectString ;Author *_egg .PdfObjectString ;Subject *_egg .PdfObjectString ;Keywords *_egg .PdfObjectString ;Creator *_egg .PdfObjectString ;Producer *_egg .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ; Trapped *_egg .PdfObjectName ;_eggg *_egg .PdfObjectDictionary ;};func _dbefa (_gdecda *_egg .PdfObjectDictionary )(*PdfShadingType2 ,error ){_gfaff :=PdfShadingType2 {};_ecfdd :=_gdecda .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _ecfdd ==nil {_bag .Log .Debug ("R\u0065\u0071\u0075\u0069\u0072\u0065d\u0020\u0061\u0074\u0074\u0072\u0069b\u0075\u0074\u0065\u0020\u006d\u0069\u0073s\u0069\u006e\u0067\u003a\u0020\u0020\u0043\u006f\u006f\u0072d\u0073"); return nil ,ErrRequiredAttributeMissing ;};_dcede ,_abga :=_ecfdd .(*_egg .PdfObjectArray );if !_abga {_bag .Log .Debug ("\u0043\u006f\u006f\u0072d\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_ecfdd ); return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _dcede .Len ()!=4{_bag .Log .Debug ("\u0043\u006f\u006f\u0072d\u0073\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006eo\u0074 \u0034\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",_dcede .Len ()); return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_gfaff .Coords =_dcede ;if _cfdaa :=_gdecda .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_cfdaa !=nil {_cfdaa =_egg .TraceToDirectObject (_cfdaa ); _dcca ,_fgcgd :=_cfdaa .(*_egg .PdfObjectArray );if !_fgcgd {_bag .Log .Debug ("\u0044\u006f\u006d\u0061i\u006e\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_cfdaa );return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072"); };_gfaff .Domain =_dcca ;};_ecfdd =_gdecda .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _ecfdd ==nil {_bag .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0020\u0046\u0075\u006ec\u0074\u0069\u006f\u006e"); return nil ,ErrRequiredAttributeMissing ;};_gfaff .Function =[]PdfFunction {};if _bdcc ,_cdfbb :=_ecfdd .(*_egg .PdfObjectArray );_cdfbb {for _ ,_ddgcb :=range _bdcc .Elements (){_eeddea ,_fedfc :=_bdefe (_ddgcb );if _fedfc !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_fedfc ); return nil ,_fedfc ;};_gfaff .Function =append (_gfaff .Function ,_eeddea );};}else {_dcffb ,_aaafe :=_bdefe (_ecfdd );if _aaafe !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_aaafe ); return nil ,_aaafe ;};_gfaff .Function =append (_gfaff .Function ,_dcffb );};if _dgdce :=_gdecda .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_dgdce !=nil {_dgdce =_egg .TraceToDirectObject (_dgdce );_cceaff ,_gabe :=_dgdce .(*_egg .PdfObjectArray );if !_gabe {_bag .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_dgdce ); return nil ,_egg .ErrTypeError ;};if _cceaff .Len ()!=2{_bag .Log .Debug ("\u0045\u0078\u0074\u0065n\u0064\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006eo\u0074 \u0032\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",_cceaff .Len ());return nil ,ErrInvalidAttribute ; };_gfaff .Extend =_cceaff ;};return &_gfaff ,nil ;}; // AlphaMapFunc represents a alpha mapping function: byte -> byte. Can be used for // thresholding the alpha channel, i.e. setting all alpha values below threshold to transparent. type AlphaMapFunc func (_bdagf byte )byte ;func (_geaa *PdfWriter )adjustXRefAffectedVersion (_egaec bool ){if _egaec &&_geaa ._dacce .Major ==1&&_geaa ._dacce .Minor < 5{_geaa ._dacce .Minor =5;};}; // ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z). func (_dccd *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_facb :=_fb .NewReader (img .getBase ());_bccgc :=_eg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_cggd :=_fb .NewWriter (_bccgc ); _ccae :=_dgb .Pow (2,float64 (img .BitsPerComponent ))-1;_affff :=make ([]uint32 ,3);var (_dgbg uint32 ;ANorm ,X ,Y ,Z ,_ccee ,_eeee ,_daege float64 ;_ceafg error ;);for {_dgbg ,_ceafg =_facb .ReadSample ();if _ceafg ==_dag .EOF {break ;}else if _ceafg !=nil {return img ,_ceafg ; };ANorm =float64 (_dgbg )/_ccae ;X =_dccd .WhitePoint [0]*_dgb .Pow (ANorm ,_dccd .Gamma );Y =_dccd .WhitePoint [1]*_dgb .Pow (ANorm ,_dccd .Gamma );Z =_dccd .WhitePoint [2]*_dgb .Pow (ANorm ,_dccd .Gamma );_ccee =3.240479*X +-1.537150*Y +-0.498535*Z ; _eeee =-0.969256*X +1.875992*Y +0.041556*Z ;_daege =0.055648*X +-0.204043*Y +1.057311*Z ;_ccee =_dgb .Min (_dgb .Max (_ccee ,0),1.0);_eeee =_dgb .Min (_dgb .Max (_eeee ,0),1.0);_daege =_dgb .Min (_dgb .Max (_daege ,0),1.0);_affff [0]=uint32 (_ccee *_ccae ); _affff [1]=uint32 (_eeee *_ccae );_affff [2]=uint32 (_daege *_ccae );if _ceafg =_cggd .WriteSamples (_affff );_ceafg !=nil {return img ,_ceafg ;};};return _cggba (&_bccgc ),nil ;};var _ pdfFont =(*pdfFontSimple )(nil ); // PdfFunction interface represents the common methods of a function in PDF. type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_egg .PdfObject ;};func (_aeacc *PdfField )inherit (_accg func (*PdfField )bool )(bool ,error ){_befb :=map[*PdfField ]bool {};_bada :=false ;_fgaaa :=_aeacc ;for _fgaaa !=nil {if _ ,_febgb :=_befb [_fgaaa ]; _febgb {return false ,_gd .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_eecdd :=_accg (_fgaaa );if _eecdd {_bada =true ;break ;};_befb [_fgaaa ]=true ;_fgaaa =_fgaaa .Parent ;};return _bada ,nil ; }; // NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive. func NewXObjectForm ()*XObjectForm {_eeeec :=&XObjectForm {};_dcfccb :=&_egg .PdfObjectStream {};_dcfccb .PdfObjectDictionary =_egg .MakeDict ();_eeeec ._acgef =_dcfccb ;return _eeeec ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_dgfabf *PdfShadingType4 )ToPdfObject ()_egg .PdfObject {_dgfabf .PdfShading .ToPdfObject ();_abcda ,_cfded :=_dgfabf .getShadingDict ();if _cfded !=nil {_bag .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074"); return nil ;};if _dgfabf .BitsPerCoordinate !=nil {_abcda .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_dgfabf .BitsPerCoordinate );};if _dgfabf .BitsPerComponent !=nil {_abcda .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_dgfabf .BitsPerComponent ); };if _dgfabf .BitsPerFlag !=nil {_abcda .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_dgfabf .BitsPerFlag );};if _dgfabf .Decode !=nil {_abcda .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dgfabf .Decode );};if _dgfabf .Function !=nil {if len (_dgfabf .Function )==1{_abcda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dgfabf .Function [0].ToPdfObject ()); }else {_acbac :=_egg .MakeArray ();for _ ,_dcgff :=range _dgfabf .Function {_acbac .Append (_dcgff .ToPdfObject ());};_abcda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_acbac );};};return _dgfabf ._cfdbd ;};func (_aegec *PdfAcroForm )fill (_feeag FieldValueProvider ,_edbfb FieldAppearanceGenerator )error {if _aegec ==nil {return nil ; };_adgac ,_fbbagf :=_feeag .FieldValues ();if _fbbagf !=nil {return _fbbagf ;};for _ ,_bbbb :=range _aegec .AllFields (){_dcfb :=_bbbb .PartialName ();_ddfd ,_defff :=_adgac [_dcfb ];if !_defff {if _ddgc ,_adfab :=_bbbb .FullName ();_adfab ==nil {_ddfd ,_defff =_adgac [_ddgc ]; };};if !_defff {_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020f\u006f\u0072\u006d \u0066\u0069\u0065l\u0064\u0020\u0025\u0073\u0020\u006e\u006f\u0074\u0020\u0066o\u0075\u006e\u0064\u0020\u0069n \u0074\u0068\u0065\u0020\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0072\u002e\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u002e",_dcfb ); continue ;};if _bgae :=_ccaeg (_bbbb ,_ddfd );_bgae !=nil {return _bgae ;};if _edbfb ==nil {continue ;};for _ ,_cdcbf :=range _bbbb .Annotations {_fgfg ,_gecb :=_edbfb .GenerateAppearanceDict (_aegec ,_bbbb ,_cdcbf );if _gecb !=nil {return _gecb ;};_cdcbf .AP =_fgfg ; _cdcbf .ToPdfObject ();};};return nil ;}; // AddImageResource adds an image to the XObject resources. func (_faaef *PdfPage )AddImageResource (name _egg .PdfObjectName ,ximg *XObjectImage )error {var _dcde *_egg .PdfObjectDictionary ;if _faaef .Resources .XObject ==nil {_dcde =_egg .MakeDict ();_faaef .Resources .XObject =_dcde ;}else {var _gdgad bool ; _dcde ,_gdgad =(_faaef .Resources .XObject ).(*_egg .PdfObjectDictionary );if !_gdgad {return _gd .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_dcde .Set (name ,ximg .ToPdfObject ()); return nil ;}; // PdfActionThread represents a thread action. type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _egg .PdfObject ;B _egg .PdfObject ;}; // NewOutlineItem returns a new outline item instance. func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};func (_eebb *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";}; // PdfAnnotationPolyLine represents PolyLine annotations. // (Section 12.5.6.9). type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _egg .PdfObject ;LE _egg .PdfObject ;BS _egg .PdfObject ;IC _egg .PdfObject ;BE _egg .PdfObject ;IT _egg .PdfObject ;Measure _egg .PdfObject ;}; // PdfAnnotationPrinterMark represents PrinterMark annotations. // (Section 12.5.6.20). type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _egg .PdfObject ;}; // GetContentStreamObjs returns a slice of PDF objects containing the content // streams of the page. func (_edfcdb *PdfPage )GetContentStreamObjs ()[]_egg .PdfObject {if _edfcdb .Contents ==nil {return nil ;};_bdaeb :=_egg .TraceToDirectObject (_edfcdb .Contents );if _edada ,_gdfef :=_bdaeb .(*_egg .PdfObjectArray );_gdfef {return _edada .Elements (); };return []_egg .PdfObject {_bdaeb };}; // AddWatermarkImage adds a watermark to the page. func (_egdca *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_gdcbf ,_adaa :=_egdca .GetMediaBox ();if _adaa !=nil {return _adaa ;};_fadda :=_gdcbf .Urx -_gdcbf .Llx ;_abfdf :=_gdcbf .Ury -_gdcbf .Lly ;_gded :=float64 (*ximg .Width ); _dagd :=(_fadda -_gded )/2;if opt .FitToWidth {_gded =_fadda ;_dagd =0;};_cdeb :=_abfdf ;_dfeeg :=float64 (0);if opt .PreserveAspectRatio {_cdeb =_gded *float64 (*ximg .Height )/float64 (*ximg .Width );_dfeeg =(_abfdf -_cdeb )/2;};if _egdca .Resources ==nil {_egdca .Resources =NewPdfPageResources (); };_gdbcgb :=0;_bgegg :=_egg .PdfObjectName (_f .Sprintf ("\u0049\u006d\u0077%\u0064",_gdbcgb ));for _egdca .Resources .HasXObjectByName (_bgegg ){_gdbcgb ++;_bgegg =_egg .PdfObjectName (_f .Sprintf ("\u0049\u006d\u0077%\u0064",_gdbcgb ));};_adaa =_egdca .AddImageResource (_bgegg ,ximg ); if _adaa !=nil {return _adaa ;};_gdbcgb =0;_aaacg :=_egg .PdfObjectName (_f .Sprintf ("\u0047\u0053\u0025\u0064",_gdbcgb ));for _egdca .HasExtGState (_aaacg ){_gdbcgb ++;_aaacg =_egg .PdfObjectName (_f .Sprintf ("\u0047\u0053\u0025\u0064",_gdbcgb ));}; _agfgcd :=_egg .MakeDict ();_agfgcd .Set ("\u0042\u004d",_egg .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_agfgcd .Set ("\u0043\u0041",_egg .MakeFloat (opt .Alpha ));_agfgcd .Set ("\u0063\u0061",_egg .MakeFloat (opt .Alpha ));_adaa =_egdca .AddExtGState (_aaacg ,_agfgcd ); if _adaa !=nil {return _adaa ;};_afce :=_f .Sprintf ("\u0071\u000a"+"\u002f%\u0073\u0020\u0067\u0073\u000a"+"%\u002e\u0030\u0066\u0020\u0030\u00200\u0020\u0025\u002e\u0030\u0066\u0020\u0025\u002e\u0034f\u0020\u0025\u002e4\u0066 \u0063\u006d\u000a"+"\u002f%\u0073\u0020\u0044\u006f\u000a"+"\u0051",_aaacg ,_gded ,_cdeb ,_dagd ,_dfeeg ,_bgegg ); _egdca .AddContentStreamByString (_afce );return nil ;}; // PdfColorspaceLab is a L*, a*, b* 3 component colorspace. type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_ceaag *_egg .PdfIndirectObject ;}; // ToPdfObject returns the PDF representation of the outline tree node. func (_cdbac *PdfOutlineTreeNode )ToPdfObject ()_egg .PdfObject {return _cdbac .GetContext ().ToPdfObject ();}; // GetContainingPdfObject returns the container of the PdfAcroForm (indirect object). func (_egbce *PdfAcroForm )GetContainingPdfObject ()_egg .PdfObject {return _egbce ._befdb }; // SetXObjectImageByName adds the provided XObjectImage to the page resources. // The added XObjectImage is identified by the specified name. func (_efgga *PdfPageResources )SetXObjectImageByName (keyName _egg .PdfObjectName ,ximg *XObjectImage )error {_dfgfgf :=ximg .ToPdfObject ().(*_egg .PdfObjectStream );_bfdce :=_efgga .SetXObjectByName (keyName ,_dfgfgf );return _bfdce ;}; // GetXObjectFormByName returns the XObjectForm with the specified name from the // page resources, if it exists. func (_gbdca *PdfPageResources )GetXObjectFormByName (keyName _egg .PdfObjectName )(*XObjectForm ,error ){_gagd ,_gfefee :=_gbdca .GetXObjectByName (keyName );if _gagd ==nil {return nil ,nil ;};if _gfefee !=XObjectTypeForm {return nil ,_gd .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d"); };_acfdc ,_ebcea :=NewXObjectFormFromStream (_gagd );if _ebcea !=nil {return nil ,_ebcea ;};return _acfdc ,nil ;}; // PdfActionGoToE represents a GoToE action. type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _egg .PdfObject ;NewWindow _egg .PdfObject ;T _egg .PdfObject ;}; // ToPdfObject implements interface PdfModel. func (_bgdf *PdfActionNamed )ToPdfObject ()_egg .PdfObject {_bgdf .PdfAction .ToPdfObject ();_efff :=_bgdf ._bf ;_aab :=_efff .PdfObject .(*_egg .PdfObjectDictionary );_aab .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeNamed )));_aab .SetIfNotNil ("\u004e",_bgdf .N ); return _efff ;}; // NewPdfAnnotationScreen returns a new screen annotation. func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_bafd :=NewPdfAnnotation ();_ebg :=&PdfAnnotationScreen {};_ebg .PdfAnnotation =_bafd ;_bafd .SetContext (_ebg );return _ebg ;}; // String returns the name of the colorspace (DeviceN). func (_bcgf *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};const (_ebaa =0x00001;_gcce =0x00002;_eeeef =0x00004;_cebff =0x00008;_cdadd =0x00020;_ggcggf =0x00040;_geggb =0x10000;_gadb =0x20000;_abacd =0x40000;); // GetType returns the button field type which returns one of the following // - PdfFieldButtonPush for push button fields // - PdfFieldButtonCheckbox for checkbox fields // - PdfFieldButtonRadio for radio button fields func (_fage *PdfFieldButton )GetType ()ButtonType {_ggdb :=ButtonTypeCheckbox ;if _fage .Ff !=nil {if (uint32 (*_fage .Ff )&FieldFlagPushbutton .Mask ())> 0{_ggdb =ButtonTypePush ;}else if (uint32 (*_fage .Ff )&FieldFlagRadio .Mask ())> 0{_ggdb =ButtonTypeRadio ; };};return _ggdb ;}; // PdfColorCalGray represents a CalGray colorspace. type PdfColorCalGray float64 ; // GetNumComponents returns the number of color components of the colorspace device. // Returns 4 for a CMYK32 device. func (_aagcb *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4}; // SignatureHandlerDocMDP extends SignatureHandler with the ValidateWithOpts method for checking the DocMDP policy. type SignatureHandlerDocMDP interface{SignatureHandler ; // ValidateWithOpts validates a PDF signature by checking PdfReader or PdfParser // ValidateWithOpts shall contain Validate call ValidateWithOpts (_gaagd *PdfSignature ,_gddag Hasher ,_gddff SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065"; TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";); // GetXObjectByName gets XObject by name. func (_cfgf *PdfPage )GetXObjectByName (name _egg .PdfObjectName )(_egg .PdfObject ,bool ){_gbca ,_dbfaf :=_cfgf .Resources .XObject .(*_egg .PdfObjectDictionary );if !_dbfaf {return nil ,false ;};if _baec :=_gbca .Get (name );_baec !=nil {return _baec ,true ; };return nil ,false ;}; // NewPdfFontFromTTFFile loads a TTF font file and returns a PdfFont type // that can be used in text styling functions. // Uses a WinAnsiTextEncoder and loads only character codes 32-255. // NOTE: For composite fonts such as used in symbolic languages, use NewCompositePdfFontFromTTFFile. func NewPdfFontFromTTFFile (filePath string )(*PdfFont ,error ){_abadc ,_fcbae :=_gf .Open (filePath );if _fcbae !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0072\u0065\u0061\u0064\u0069\u006e\u0067\u0020T\u0054F\u0020\u0066\u006f\u006e\u0074\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_fcbae ); return nil ,_fcbae ;};defer _abadc .Close ();return NewPdfFontFromTTF (_abadc );}; // GetDescent returns the Descent of the font `descriptor`. func (_bbfbc *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _egg .GetNumberAsFloat (_bbfbc .Descent );}; // NewPdfAnnotationSquiggly returns a new text squiggly annotation. func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_aegc :=NewPdfAnnotation ();_cabg :=&PdfAnnotationSquiggly {};_cabg .PdfAnnotation =_aegc ;_cabg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aegc .SetContext (_cabg );return _cabg ;}; // ToPdfObject implements interface PdfModel. func (_cbdb *PdfSignatureReference )ToPdfObject ()_egg .PdfObject {_dedf :=_egg .MakeDict ();_dedf .SetIfNotNil ("\u0054\u0079\u0070\u0065",_cbdb .Type );_dedf .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_cbdb .TransformMethod ); _dedf .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_cbdb .TransformParams );_dedf .SetIfNotNil ("\u0044\u0061\u0074\u0061",_cbdb .Data );_dedf .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_cbdb .DigestMethod ); return _dedf ;}; // ToPdfObject returns a PDF object representation of the outline item. func (_bbdd *OutlineItem )ToPdfObject ()_egg .PdfObject {_fgdg ,_ :=_bbdd .ToPdfOutlineItem ();return _fgdg .ToPdfObject ();}; // GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object // containing the field dictionary. func (_acgc *PdfField )GetContainingPdfObject ()_egg .PdfObject {return _acgc ._agef };func (_fggcg *PdfWriter )writeObject (_ffddb int ,_afeg _egg .PdfObject ){_bag .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_ffddb ); if _daeae ,_gcdfca :=_afeg .(*_egg .PdfIndirectObject );_gcdfca {_fggcg ._ccceb [_ffddb ]=crossReference {Type :1,Offset :_fggcg ._cdaab ,Generation :_daeae .GenerationNumber };_ccegg :=_f .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ffddb ); if _defg ,_cabbca :=_daeae .PdfObject .(*pdfSignDictionary );_cabbca {_defg ._cagab =_fggcg ._cdaab +int64 (len (_ccegg ));};if _daeae .PdfObject ==nil {_bag .Log .Debug ("E\u0072\u0072\u006fr\u003a\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0027\u0073\u0020\u0050\u0064\u0066\u004f\u0062j\u0065\u0063\u0074 \u0073\u0068\u006f\u0075\u006c\u0064\u0020\u006e\u0065\u0076\u0065\u0072\u0020b\u0065\u0020\u006e\u0069l\u0020\u002d\u0020\u0073e\u0074\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0050\u0064\u0066\u004f\u0062\u006a\u0065\u0063t\u004e\u0075\u006c\u006c"); _daeae .PdfObject =_egg .MakeNull ();};_ccegg +=_daeae .PdfObject .WriteString ();_ccegg +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_fggcg .writeString (_ccegg );return ;};if _afaad ,_afcab :=_afeg .(*_egg .PdfObjectStream );_afcab {_fggcg ._ccceb [_ffddb ]=crossReference {Type :1,Offset :_fggcg ._cdaab ,Generation :_afaad .GenerationNumber }; _bebed :=_f .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ffddb );_bebed +=_afaad .PdfObjectDictionary .WriteString ();_bebed +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_fggcg .writeString (_bebed );_fggcg .writeBytes (_afaad .Stream ); _fggcg .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _gaccgf ,_bbfea :=_afeg .(*_egg .PdfObjectStreams );_bbfea {_fggcg ._ccceb [_ffddb ]=crossReference {Type :1,Offset :_fggcg ._cdaab ,Generation :_gaccgf .GenerationNumber }; _cgcgf :=_f .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ffddb );var _acfddf []string ;var _aaaa string ;var _dfdbg int64 ;for _gbfcd ,_fbbdg :=range _gaccgf .Elements (){_bgcgf ,_bbgbc :=_fbbdg .(*_egg .PdfIndirectObject );if !_bbgbc {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0073\u0074\u0072\u0065am\u0073 \u004e\u0020\u0025\u0064\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006es\u0020\u006e\u006f\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u0070\u0064\u0066 \u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0076",_ffddb ,_fbbdg ); continue ;};_fedge :=_bgcgf .PdfObject .WriteString ()+"\u0020";_aaaa =_aaaa +_fedge ;_acfddf =append (_acfddf ,_f .Sprintf ("\u0025\u0064\u0020%\u0064",_bgcgf .ObjectNumber ,_dfdbg ));_fggcg ._ccceb [int (_bgcgf .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_ffddb ,Index :_gbfcd }; _dfdbg =_dfdbg +int64 (len ([]byte (_fedge )));};_eefdcb :=_fc .Join (_acfddf ,"\u0020")+"\u0020";_bead :=_egg .NewFlateEncoder ();_dgdebd :=_bead .MakeStreamDict ();_dgdebd .Set (_egg .PdfObjectName ("\u0054\u0079\u0070\u0065"),_egg .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d")); _fgdgc :=int64 (_gaccgf .Len ());_dgdebd .Set (_egg .PdfObjectName ("\u004e"),_egg .MakeInteger (_fgdgc ));_aegb :=int64 (len (_eefdcb ));_dgdebd .Set (_egg .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_egg .MakeInteger (_aegb ));_acfb ,_ :=_bead .EncodeBytes ([]byte (_eefdcb +_aaaa )); _bfdga :=int64 (len (_acfb ));_dgdebd .Set (_egg .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_egg .MakeInteger (_bfdga ));_cgcgf +=_dgdebd .WriteString ();_cgcgf +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_fggcg .writeString (_cgcgf ); _fggcg .writeBytes (_acfb );_fggcg .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_fggcg .writeString (_afeg .WriteString ());}; // GetContentStreams returns the content stream as an array of strings. func (_dgbde *PdfPage )GetContentStreams ()([]string ,error ){_fdae :=_dgbde .GetContentStreamObjs ();var _dfec []string ;for _ ,_fdgc :=range _fdae {_cbfc ,_geaea :=_bcfdf (_fdgc );if _geaea !=nil {return nil ,_geaea ;};_dfec =append (_dfec ,_cbfc );}; return _dfec ,nil ;}; // ValidateSignatures validates digital signatures in the document. func (_fedcf *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _fedcf .AcroForm ==nil {return nil ,nil ;};if _fedcf .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_beebf *PdfSignature ; _fdgffe *PdfField ;_fgcfg SignatureHandler ;};var _eacfc []*sigFieldPair ;for _ ,_eaeec :=range _fedcf .AcroForm .AllFields (){if _eaeec .V ==nil {continue ;};if _badcb ,_dgaac :=_egg .GetDict (_eaeec .V );_dgaac {if _edeee ,_efggf :=_egg .GetNameVal (_badcb .Get ("\u0054\u0079\u0070\u0065")); _efggf &&_edeee =="\u0053\u0069\u0067"{_afbda ,_aecde :=_egg .GetIndirect (_eaeec .V );if !_aecde {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006et\u0061\u0069\u006e\u0065\u0072\u0020\u0069s\u0020\u006e\u0069\u006c"); return nil ,ErrTypeCheck ;};_gbdab ,_dbgcf :=_fedcf .newPdfSignatureFromIndirect (_afbda );if _dbgcf !=nil {return nil ,_dbgcf ;};var _fdeg SignatureHandler ;for _ ,_bbdef :=range handlers {if _bbdef .IsApplicable (_gbdab ){_fdeg =_bbdef ;break ;};};_eacfc =append (_eacfc ,&sigFieldPair {_beebf :_gbdab ,_fdgffe :_eaeec ,_fgcfg :_fdeg }); };};};var _dabeb []SignatureValidationResult ;for _ ,_dfgdd :=range _eacfc {_aebca :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_dfgdd ._fdgffe }};if _dfgdd ._fgcfg ==nil {_aebca .Errors =append (_aebca .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074"); _dabeb =append (_dabeb ,_aebca );continue ;};_bafeac ,_deed :=_dfgdd ._fgcfg .NewDigest (_dfgdd ._beebf );if _deed !=nil {_aebca .Errors =append (_aebca .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_deed .Error ());_dabeb =append (_dabeb ,_aebca ); continue ;};_fcbacf :=_dfgdd ._beebf .ByteRange ;if _fcbacf ==nil {_aebca .Errors =append (_aebca .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_dabeb =append (_dabeb ,_aebca );continue ;}; for _feedb :=0;_feedb < _fcbacf .Len ();_feedb =_feedb +2{_gbbd ,_ :=_egg .GetNumberAsInt64 (_fcbacf .Get (_feedb ));_cbcfbd ,_ :=_egg .GetIntVal (_fcbacf .Get (_feedb +1));if _ ,_dbbge :=_fedcf ._eefb .Seek (_gbbd ,_dag .SeekStart );_dbbge !=nil {return nil ,_dbbge ; };_fbcbe :=make ([]byte ,_cbcfbd );if _ ,_adbfa :=_fedcf ._eefb .Read (_fbcbe );_adbfa !=nil {return nil ,_adbfa ;};_bafeac .Write (_fbcbe );};var _eeddeg SignatureValidationResult ;if _eadeg ,_gcdef :=_dfgdd ._fgcfg .(SignatureHandlerDocMDP );_gcdef {_eeddeg ,_deed =_eadeg .ValidateWithOpts (_dfgdd ._beebf ,_bafeac ,SignatureHandlerDocMDPParams {Parser :_fedcf ._dafgab }); }else {_eeddeg ,_deed =_dfgdd ._fgcfg .Validate (_dfgdd ._beebf ,_bafeac );};if _deed !=nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_deed ,_dfgdd ._fgcfg );_eeddeg .Errors =append (_eeddeg .Errors ,_deed .Error ()); };_eeddeg .Name =_dfgdd ._beebf .Name .Decoded ();_eeddeg .Reason =_dfgdd ._beebf .Reason .Decoded ();if _dfgdd ._beebf .M !=nil {_ddgaf ,_dcade :=NewPdfDate (_dfgdd ._beebf .M .String ());if _dcade !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dcade ); _eeddeg .Errors =append (_eeddeg .Errors ,_dcade .Error ());continue ;};_eeddeg .Date =_ddgaf ;};_eeddeg .ContactInfo =_dfgdd ._beebf .ContactInfo .Decoded ();_eeddeg .Location =_dfgdd ._beebf .Location .Decoded ();_eeddeg .Fields =_aebca .Fields ;_dabeb =append (_dabeb ,_eeddeg ); };return _dabeb ,nil ;}; // PdfAnnotationFreeText represents FreeText annotations. // (Section 12.5.6.6). type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _egg .PdfObject ;Q _egg .PdfObject ;RC _egg .PdfObject ;DS _egg .PdfObject ;CL _egg .PdfObject ;IT _egg .PdfObject ;BE _egg .PdfObject ;RD _egg .PdfObject ;BS _egg .PdfObject ;LE _egg .PdfObject ; };func (_abae *PdfPage )getParentResources ()(*PdfPageResources ,error ){_eecedf :=_abae .Parent ;for _eecedf !=nil {_edbbe ,_gdabd :=_egg .GetDict (_eecedf );if !_gdabd {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u0020n\u006f\u0064\u0065"); return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};if _abab :=_edbbe .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_abab !=nil {_ddbdd ,_dfabee :=_egg .GetDict (_abab ); if !_dfabee {return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");};_ebefg ,_aagf :=NewPdfPageResourcesFromDict (_ddbdd );if _aagf !=nil {return nil ,_aagf ;};return _ebefg ,nil ; };_eecedf =_edbbe .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;}; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. The slice should contain three elements representing the // A, B and C components of the color. The values of the elements should be // between 0 and 1. func (_gcfd *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bffg :=vals [0];if _bffg < 0.0||_bffg > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bffg ); return nil ,ErrColorOutOfRange ;};_cgda :=vals [1];if _cgda < 0.0||_cgda > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cgda );return nil ,ErrColorOutOfRange ; };_gggf :=vals [2];if _gggf < 0.0||_gggf > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gggf );return nil ,ErrColorOutOfRange ;};_bece :=NewPdfColorCalRGB (_bffg ,_cgda ,_gggf ); return _bece ,nil ;}; // PdfFunctionType0 uses a sequence of sample values (contained in a stream) to provide an approximation // for functions whose domains and ranges are bounded. The samples are organized as an m-dimensional // table in which each entry has n components type PdfFunctionType0 struct{Domain []float64 ;Range []float64 ;NumInputs int ;NumOutputs int ;Size []int ;BitsPerSample int ;Order int ;Encode []float64 ;Decode []float64 ;_efacf []byte ;_efbce []uint32 ;_adfae *_egg .PdfObjectStream ;};var (_bgegd =_bae .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n"); _aafbcd =_bae .MustCompile ("\u005e\u005cs\u002a\u002f\u0028\u005c\u0053\u002b\u003f\u0029\u005c\u0073\u002b\u0028\u002e\u002b\u003f\u0029\u005c\u0073\u002b\u0064\u0065\u0066\\s\u002a\u0024");_daaa =_bae .MustCompile ("\u005e\u005c\u0073*\u0064\u0075\u0070\u005c\u0073\u002b\u0028\u005c\u0064\u002b\u0029\u005c\u0073\u002a\u002f\u0028\u005c\u0077\u002b\u003f\u0029\u0028\u003f\u003a\u005c\u002e\u005c\u0064\u002b)\u003f\u005c\u0073\u002b\u0070\u0075\u0074\u0024"); _afbc ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_gcfbf ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_afba ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063"; );func _ceeb (_aagbb _egg .PdfObject )(*PdfFunctionType2 ,error ){_bdbe :=&PdfFunctionType2 {};var _cgbb *_egg .PdfObjectDictionary ;if _daedg ,_eeeca :=_aagbb .(*_egg .PdfIndirectObject );_eeeca {_becd ,_fbfc :=_daedg .PdfObject .(*_egg .PdfObjectDictionary ); if !_fbfc {return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bdbe ._ffcfb =_daedg ;_cgbb =_becd ;}else if _gaagaa ,_aafe :=_aagbb .(*_egg .PdfObjectDictionary );_aafe {_cgbb =_gaagaa ;}else {return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072"); };_bag .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_cgbb .String ());_bgbc ,_ddbbg :=_egg .TraceToDirectObject (_cgbb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_egg .PdfObjectArray );if !_ddbbg {_bag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064"); return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};if _bgbc .Len ()< 0||_bgbc .Len ()%2!=0{_bag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064"); return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_agbec ,_faabd :=_bgbc .ToFloat64Array ();if _faabd !=nil {return nil ,_faabd ;};_bdbe .Domain =_agbec ;_bgbc ,_ddbbg =_egg .TraceToDirectObject (_cgbb .Get ("\u0052\u0061\u006eg\u0065")).(*_egg .PdfObjectArray ); if _ddbbg {if _bgbc .Len ()< 0||_bgbc .Len ()%2!=0{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_eeacb ,_cggfad :=_bgbc .ToFloat64Array ();if _cggfad !=nil {return nil ,_cggfad ;};_bdbe .Range =_eeacb ; };_bgbc ,_ddbbg =_egg .TraceToDirectObject (_cgbb .Get ("\u0043\u0030")).(*_egg .PdfObjectArray );if _ddbbg {_fcefe ,_effeg :=_bgbc .ToFloat64Array ();if _effeg !=nil {return nil ,_effeg ;};_bdbe .C0 =_fcefe ;};_bgbc ,_ddbbg =_egg .TraceToDirectObject (_cgbb .Get ("\u0043\u0031")).(*_egg .PdfObjectArray ); if _ddbbg {_bdac ,_bfae :=_bgbc .ToFloat64Array ();if _bfae !=nil {return nil ,_bfae ;};_bdbe .C1 =_bdac ;};if len (_bdbe .C0 )!=len (_bdbe .C1 ){_bag .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067"); return nil ,_egg .ErrRangeError ;};N ,_faabd :=_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_cgbb .Get ("\u004e")));if _faabd !=nil {_bag .Log .Error ("\u004e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020o\u0072\u0020\u0069\u006e\u0076\u0061\u006ci\u0064\u002c\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_cgbb .String ()); return nil ,_faabd ;};_bdbe .N =N ;return _bdbe ,nil ;}; // PdfActionSound represents a sound action. type PdfActionSound struct{*PdfAction ;Sound _egg .PdfObject ;Volume _egg .PdfObject ;Synchronous _egg .PdfObject ;Repeat _egg .PdfObject ;Mix _egg .PdfObject ;}; // GetSamples converts the raw byte slice into samples which are stored in a uint32 bit array. // Each sample is represented by BitsPerComponent consecutive bits in the raw data. // NOTE: The method resamples the image byte data before returning the result and // this could lead to high memory usage, especially on large images. It should // be avoided, when possible. It is recommended to access the Data field of the // image directly or use the ColorAt method to extract individual pixels. func (_ecfge *Image )GetSamples ()[]uint32 {_ebdd :=_fb .ResampleBytes (_ecfge .Data ,int (_ecfge .BitsPerComponent ));if _ecfge .BitsPerComponent < 8{_ebdd =_ecfge .samplesTrimPadding (_ebdd );};_fgge :=int (_ecfge .Width )*int (_ecfge .Height )*_ecfge .ColorComponents ; if len (_ebdd )< _fgge {_bag .Log .Debug ("\u0045r\u0072\u006fr\u003a\u0020\u0054o\u006f\u0020\u0066\u0065\u0077\u0020\u0073a\u006d\u0070\u006c\u0065\u0073\u0020(\u0067\u006f\u0074\u0020\u0025\u0064\u002c\u0020\u0065\u0078\u0070e\u0063\u0074\u0069\u006e\u0067\u0020\u0025\u0064\u0029",len (_ebdd ),_fgge ); return _ebdd ;}else if len (_ebdd )> _fgge {_bag .Log .Debug ("\u0045r\u0072\u006fr\u003a\u0020\u0054o\u006f\u0020\u006d\u0061\u006e\u0079\u0020s\u0061\u006d\u0070\u006c\u0065\u0073 \u0028\u0067\u006f\u0074\u0020\u0025\u0064\u002c\u0020\u0065\u0078p\u0065\u0063\u0074\u0069\u006e\u0067\u0020\u0025\u0064",len (_ebdd ),_fgge ); _ebdd =_ebdd [:_fgge ];};return _ebdd ;}; // GetAscent returns the Ascent of the font `descriptor`. func (_ebcca *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _egg .GetNumberAsFloat (_ebcca .Ascent );}; // PdfPageResources is a Page resources model. // Implements PdfModel. type PdfPageResources struct{ExtGState _egg .PdfObject ;ColorSpace _egg .PdfObject ;Pattern _egg .PdfObject ;Shading _egg .PdfObject ;XObject _egg .PdfObject ;Font _egg .PdfObject ;ProcSet _egg .PdfObject ;Properties _egg .PdfObject ;_cbcba *_egg .PdfObjectDictionary ; _dbbbd *PdfPageResourcesColorspaces ;}; // NewPdfOutline returns an initialized PdfOutline. func NewPdfOutline ()*PdfOutline {_feef :=&PdfOutline {_egdd :_egg .MakeIndirectObject (_egg .MakeDict ())};_feef ._bgbfg =_feef ;return _feef ;}; // SetNameDictionary sets the Names entry in the PDF catalog. // See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008). func (_bdeee *PdfWriter )SetNameDictionary (names _egg .PdfObject )error {if names ==nil {return nil ;};_bag .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e"); _bdeee ._acea .Set ("\u004e\u0061\u006de\u0073",names );return _bdeee .addObjects (names );}; // IsRadio returns true if the button field represents a radio button, false otherwise. func (_aegcb *PdfFieldButton )IsRadio ()bool {return _aegcb .GetType ()==ButtonTypeRadio };var (CourierName =_bgd .CourierName ;CourierBoldName =_bgd .CourierBoldName ;CourierObliqueName =_bgd .CourierObliqueName ;CourierBoldObliqueName =_bgd .CourierBoldObliqueName ; HelveticaName =_bgd .HelveticaName ;HelveticaBoldName =_bgd .HelveticaBoldName ;HelveticaObliqueName =_bgd .HelveticaObliqueName ;HelveticaBoldObliqueName =_bgd .HelveticaBoldObliqueName ;SymbolName =_bgd .SymbolName ;ZapfDingbatsName =_bgd .ZapfDingbatsName ; TimesRomanName =_bgd .TimesRomanName ;TimesBoldName =_bgd .TimesBoldName ;TimesItalicName =_bgd .TimesItalicName ;TimesBoldItalicName =_bgd .TimesBoldItalicName ;); // ToPdfObject returns the PDF representation of the shading pattern. func (_ddddb *PdfShadingPattern )ToPdfObject ()_egg .PdfObject {_ddddb .PdfPattern .ToPdfObject ();_dabaef :=_ddddb .getDict ();if _ddddb .Shading !=nil {_dabaef .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_ddddb .Shading .ToPdfObject ());};if _ddddb .Matrix !=nil {_dabaef .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_ddddb .Matrix ); };if _ddddb .ExtGState !=nil {_dabaef .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_ddddb .ExtGState );};return _ddddb ._fgec ;}; // BaseFont returns the font's "BaseFont" field. func (_afa *PdfFont )BaseFont ()string {return _afa .baseFields ()._dgfdc }; // SetColorSpace sets `r` colorspace object to `colorspace`. func (_ddca *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_ddca ._dbbbd =colorspace ;}; // GetNumComponents returns the number of input color components, i.e. that are input to the tint transform. func (_ageb *PdfColorspaceDeviceN )GetNumComponents ()int {return _ageb .ColorantNames .Len ()};func (_bagf *PdfReader )newPdfActionGotoEFromDict (_fac *_egg .PdfObjectDictionary )(*PdfActionGoToE ,error ){_fca ,_feg :=_fgb (_fac .Get ("\u0046"));if _feg !=nil {return nil ,_feg ; };return &PdfActionGoToE {D :_fac .Get ("\u0044"),NewWindow :_fac .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_fac .Get ("\u0054"),F :_fca },nil ;};func (_fag *PdfReader )newPdfActionThreadFromDict (_eedb *_egg .PdfObjectDictionary )(*PdfActionThread ,error ){_gdbc ,_geeg :=_fgb (_eedb .Get ("\u0046")); if _geeg !=nil {return nil ,_geeg ;};return &PdfActionThread {D :_eedb .Get ("\u0044"),B :_eedb .Get ("\u0042"),F :_gdbc },nil ;}; // NewPdfAnnotationStamp returns a new stamp annotation. func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_gffa :=NewPdfAnnotation ();_bcc :=&PdfAnnotationStamp {};_bcc .PdfAnnotation =_gffa ;_bcc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gffa .SetContext (_bcc );return _bcc ;}; // OutlineItem represents a PDF outline item dictionary (Table 153 - pp. 376 - 377). type OutlineItem struct{Title string `json:"title"`;Dest OutlineDest `json:"dest"`;Entries []*OutlineItem `json:"entries,omitempty"`;}; // SetCatalogMetadata sets the catalog metadata (XMP) stream object. func (_cdggge *PdfWriter )SetCatalogMetadata (meta _egg .PdfObject )error {if meta ==nil {_cdggge ._acea .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_ggaa ,_dddcaf :=_egg .GetStream (meta );if !_dddcaf {return _gd .New ("\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u006d\u0065\u0074\u0061\u0064a\u0074\u0061\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0061\u0020\u0076\u0061\u006c\u0069\u0064\u0020\u0073t\u0072\u0065\u0061\u006d"); };_cdggge .addObject (_ggaa );_cdggge ._acea .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_ggaa );return nil ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_fbabg *PdfShadingType6 )ToPdfObject ()_egg .PdfObject {_fbabg .PdfShading .ToPdfObject ();_cbdda ,_afgb :=_fbabg .getShadingDict ();if _afgb !=nil {_bag .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074"); return nil ;};if _fbabg .BitsPerCoordinate !=nil {_cbdda .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_fbabg .BitsPerCoordinate );};if _fbabg .BitsPerComponent !=nil {_cbdda .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fbabg .BitsPerComponent ); };if _fbabg .BitsPerFlag !=nil {_cbdda .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_fbabg .BitsPerFlag );};if _fbabg .Decode !=nil {_cbdda .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_fbabg .Decode );};if _fbabg .Function !=nil {if len (_fbabg .Function )==1{_cbdda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fbabg .Function [0].ToPdfObject ()); }else {_fgffga :=_egg .MakeArray ();for _ ,_fabfb :=range _fbabg .Function {_fgffga .Append (_fabfb .ToPdfObject ());};_cbdda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fgffga );};};return _fbabg ._cfdbd ;}; // PdfFont represents an underlying font structure which can be of type: // - Type0 // - Type1 // - TrueType // etc. type PdfFont struct{_edde pdfFont };func _aagbg ()string {_cgag .Lock ();defer _cgag .Unlock ();_fgdb :=_ace .GetLicenseKey ();if len (_bdbde )> 0&&(_fgdb .IsLicensed ()||_debadf ){return _bdbde ;};return _f .Sprintf ("\u0055\u006e\u0069Do\u0063\u0020\u0076\u0025\u0073\u0020\u0028\u0025\u0073)\u0020-\u0020h\u0074t\u0070\u003a\u002f\u002f\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f",_dceb (),_fgdb .TypeToString ()); }; // DefaultFont returns the default font, which is currently the built in Helvetica. func DefaultFont ()*PdfFont {_cfbb ,_eged :=_bgd .NewStdFontByName (HelveticaName );if !_eged {panic ("\u0048\u0065lv\u0065\u0074\u0069c\u0061\u0020\u0073\u0068oul\u0064 a\u006c\u0077\u0061\u0079\u0073\u0020\u0062e \u0061\u0076\u0061\u0069\u006c\u0061\u0062l\u0065"); };_gagae :=_egaa (_cfbb );return &PdfFont {_edde :&_gagae };};func _eecfg (_bffdc *_egg .PdfObjectArray )(float64 ,error ){_dbad ,_bbgba :=_bffdc .ToFloat64Array ();if _bbgba !=nil {_bag .Log .Debug ("\u0042\u0061\u0064\u0020\u004d\u0061\u0074\u0074\u0065\u0020\u0061\u0072\u0072\u0061\u0079:\u0020m\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_bffdc ,_bbgba ); };switch len (_dbad ){case 1:return _dbad [0],nil ;case 3:_eabbe :=PdfColorspaceDeviceRGB {};_fecfb ,_dgdbab :=_eabbe .ColorFromFloats (_dbad );if _dgdbab !=nil {return 0.0,_dgdbab ;};return _fecfb .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_acebe :=PdfColorspaceDeviceCMYK {}; _ccec ,_cfecd :=_acebe .ColorFromFloats (_dbad );if _cfecd !=nil {return 0.0,_cfecd ;};_ggfdd ,_cfecd :=_acebe .ColorToRGB (_ccec .(*PdfColorDeviceCMYK ));if _cfecd !=nil {return 0.0,_cfecd ;};return _ggfdd .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ; };_bbgba =_gd .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_bag .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_bffdc ,_bbgba ); return 0.0,_bbgba ;}; // ToPdfObject returns the PDF representation of the colorspace. func (_cgeg *PdfColorspaceDeviceRGB )ToPdfObject ()_egg .PdfObject {return _egg .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");}; // AddPage adds a page to the PDF file. The new page should be an indirect object. func (_baefb *PdfWriter )AddPage (page *PdfPage )error {const _bfeef ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_cceebc (page );_ecbcb :=page .ToPdfObject ();_bag .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"); _bag .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_ecbcb );_gdbce ,_fbgadb :=_egg .GetIndirect (_ecbcb );if !_fbgadb {return _gd .New ("\u0070\u0061\u0067\u0065\u0020\u0073h\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0069\u006ed\u0069\u0072\u0065\u0063\u0074\u0020\u006fb\u006a\u0065\u0063\u0074"); };_bag .Log .Trace ("\u0025\u0073",_gdbce );_bag .Log .Trace ("\u0025\u0073",_gdbce .PdfObject );_dfbaa ,_fbgadb :=_egg .GetDict (_gdbce .PdfObject );if !_fbgadb {return _gd .New ("\u0070\u0061\u0067e \u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0073\u0068o\u0075l\u0064 \u0062e\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079"); };_fbbe ,_fbgadb :=_egg .GetName (_dfbaa .Get ("\u0054\u0079\u0070\u0065"));if !_fbgadb {return _f .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u0020\u0054y\u0070\u0065\u0020\u006b\u0065\u0079\u0020\u0077\u0069t\u0068\u0020\u0061\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006f\u0066\u0020t\u0079\u0070\u0065\u0020\u006e\u0061m\u0065\u0020\u0028%\u0054\u0029",_dfbaa .Get ("\u0054\u0079\u0070\u0065")); };if _fbbe .String ()!="\u0050\u0061\u0067\u0065"{return _gd .New ("\u0066\u0069e\u006c\u0064\u0020\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020\u0050\u0061\u0067\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069re\u0064\u0029");};_edceb :=[]_egg .PdfObjectName {"\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s","\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078","\u0043r\u006f\u0070\u0042\u006f\u0078","\u0052\u006f\u0074\u0061\u0074\u0065"}; _bbge ,_cade :=_egg .GetIndirect (_dfbaa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_bag .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_dfbaa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_cade ); for _cade {_bag .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_bbge );_dffbd ,_ceafgg :=_egg .GetDict (_bbge .PdfObject );if !_ceafgg {return _gd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074"); };for _ ,_caff :=range _edceb {_bag .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_caff );if _dfbaa .Get (_caff )!=nil {_bag .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ; };if _ebaeb :=_dffbd .Get (_caff );_ebaeb !=nil {_bag .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_caff );_dfbaa .Set (_caff ,_ebaeb );};};_bbge ,_cade =_egg .GetIndirect (_dffbd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074")); _bag .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_dffbd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_bag .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065"); _dfbaa .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_baefb ._gfbe );_gdbce .PdfObject =_dfbaa ;_beefe ,_fbgadb :=_egg .GetDict (_baefb ._gfbe .PdfObject );if !_fbgadb {return _gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0020(\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0029"); };_faacac ,_fbgadb :=_egg .GetArray (_beefe .Get ("\u004b\u0069\u0064\u0073"));if !_fbgadb {return _gd .New ("\u0069\u006ev\u0061\u006c\u0069\u0064 \u0050\u0061g\u0065\u0073\u0020\u004b\u0069\u0064\u0073\u0020o\u0062\u006a\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079\u0029"); };_faacac .Append (_gdbce );_baefb ._fcdab [_dfbaa ]=struct{}{};_gdgaeg ,_fbgadb :=_egg .GetInt (_beefe .Get ("\u0043\u006f\u0075n\u0074"));if !_fbgadb {return _gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u0050\u0061\u0067e\u0073\u0020\u0043\u006fu\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0029"); };*_gdgaeg =*_gdgaeg +1;if page ._gcfcb ==nil {_gceee :=_ace .Track (_baefb ._fbgdb ,_bfeef );if _gceee !=nil {return _gceee ;};}else {_egcfg :=_ace .Track (page ._gcfcb ._faeea ,_bfeef );if _egcfg !=nil {return _egcfg ;};};_baefb .addObject (_gdbce ); _bcfcf :=_baefb .addObjects (_dfbaa );if _bcfcf !=nil {return _bcfcf ;};return nil ;}; // GetAlphabet returns a map of the runes in `text` and their frequencies. func GetAlphabet (text string )map[rune ]int {_dadgc :=map[rune ]int {};for _ ,_gebea :=range text {_dadgc [_gebea ]++;};return _dadgc ;}; // ImageToGray returns a new grayscale image based on the passed in RGB image. func (_gcgb *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_gd .New ("\u0070\u0072\u006f\u0076\u0069\u0064e\u0064\u0020\u0069\u006d\u0061\u0067\u0065\u0020\u0069\u0073\u0020\u006e\u006ft\u0020\u0061\u0020\u0044\u0065\u0076\u0069c\u0065\u0052\u0047\u0042"); };_fcfg ,_cfff :=_eg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fgggb ,img ._abfae );if _cfff !=nil {return img ,_cfff ;};_dbab ,_cfff :=_eg .GrayConverter .Convert (_fcfg );if _cfff !=nil {return img ,_cfff ; };return _cggba (_dbab .Base ()),nil ;};type pdfFontType0 struct{fontCommon ;_ebdc *_egg .PdfIndirectObject ;_bfddc _ef .TextEncoder ;Encoding _egg .PdfObject ;DescendantFont *PdfFont ;_fcffd *_ga .CMap ;}; // PdfAnnotationScreen represents Screen annotations. // (Section 12.5.6.18). type PdfAnnotationScreen struct{*PdfAnnotation ;T _egg .PdfObject ;MK _egg .PdfObject ;A _egg .PdfObject ;AA _egg .PdfObject ;}; // AddExtGState add External Graphics State (GState). The gsDict can be specified // either directly as a dictionary or an indirect object containing a dictionary. func (_cbfac *PdfPageResources )AddExtGState (gsName _egg .PdfObjectName ,gsDict _egg .PdfObject )error {if _cbfac .ExtGState ==nil {_cbfac .ExtGState =_egg .MakeDict ();};_dadee :=_cbfac .ExtGState ;_agad ,_ccgd :=_egg .TraceToDirectObject (_dadee ).(*_egg .PdfObjectDictionary ); if !_ccgd {_bag .Log .Debug ("\u0045\u0078\u0074\u0047\u0053\u0074\u0061\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020e\u0072r\u006f\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u002f\u0025\u0054\u0029",_dadee ,_egg .TraceToDirectObject (_dadee )); return _egg .ErrTypeError ;};_agad .Set (gsName ,gsDict );return nil ;};func (_edff *pdfFontSimple )getFontEncoding ()(_bdbg string ,_cfffdf map[_ef .CharCode ]_ef .GlyphName ,_fccd error ){_bdbg ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"; if _ggadf ,_egffd :=_fgefg [_edff ._dgfdc ];_egffd {_bdbg =_ggadf ;}else if _edff .fontFlags ()&_eeeef !=0{for _ccgcc ,_bdgc :=range _fgefg {if _fc .Contains (_edff ._dgfdc ,_ccgcc ){_bdbg =_bdgc ;break ;};};};if _edff .Encoding ==nil {return _bdbg ,nil ,nil ; };switch _daafc :=_edff .Encoding .(type ){case *_egg .PdfObjectName :return string (*_daafc ),nil ,nil ;case *_egg .PdfObjectDictionary :_dgeb ,_ebbc :=_egg .GetName (_daafc .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067")); if _ebbc {_bdbg =_dgeb .String ();};if _bbeaf :=_daafc .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_bbeaf !=nil {_beceb ,_debbc :=_egg .GetArray (_bbeaf );if !_debbc {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0042a\u0064\u0020\u0066on\u0074\u0020\u0065\u006e\u0063\u006fd\u0069\u006e\u0067\u0020\u0064\u0069\u0063\u0074\u003d\u0025\u002b\u0076\u0020\u0044\u0069f\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073=\u0025\u0054",_daafc ,_daafc .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073")); return "",nil ,_egg .ErrTypeError ;};_cfffdf ,_fccd =_ef .FromFontDifferences (_beceb );};return _bdbg ,_cfffdf ,_fccd ;default:_bag .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u006e\u0061\u006d\u0065\u0020\u006f\u0072\u0020\u0064\u0069\u0063t\u0020\u0028\u0025\u0054\u0029\u0020\u0025\u0073",_edff .Encoding ,_edff .Encoding ); return "",nil ,_egg .ErrTypeError ;};};type pdfCIDFontType2 struct{fontCommon ;_gcfdg *_egg .PdfIndirectObject ;_bceaf _ef .TextEncoder ; // Table 117 – Entries in a CIDFont dictionary (page 269) // Dictionary that defines the character collection of the CIDFont (required). // See Table 116. CIDSystemInfo *_egg .PdfObjectDictionary ; // Glyph metrics fields (optional). DW _egg .PdfObject ;W _egg .PdfObject ;DW2 _egg .PdfObject ;W2 _egg .PdfObject ; // CIDs to glyph indices mapping (optional). CIDToGIDMap _egg .PdfObject ;_fafe map[_ef .CharCode ]float64 ;_bgec float64 ;_beec map[rune ]int ;};func _facdg (_efdd _egg .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_fcaeg :=&PdfColorspaceDeviceNAttributes {};var _cfbe *_egg .PdfObjectDictionary ; switch _fdgfe :=_efdd .(type ){case *_egg .PdfIndirectObject :_fcaeg ._cdgc =_fdgfe ;var _ggbc bool ;_cfbe ,_ggbc =_fdgfe .PdfObject .(*_egg .PdfObjectDictionary );if !_ggbc {_bag .Log .Error ("\u0044\u0065\u0076\u0069c\u0065\u004e\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065 \u0074\u0079\u0070\u0065\u0020\u0065\u0072r\u006f\u0072"); return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};case *_egg .PdfObjectDictionary :_cfbe =_fdgfe ;case *_egg .PdfObjectReference :_gddcg :=_fdgfe .Resolve ();return _facdg (_gddcg );default:_bag .Log .Error ("\u0044\u0065\u0076\u0069c\u0065\u004e\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065 \u0074\u0079\u0070\u0065\u0020\u0065\u0072r\u006f\u0072"); return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bgdg :=_cfbe .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_bgdg !=nil {_dafga ,_abeef :=_egg .TraceToDirectObject (_bgdg ).(*_egg .PdfObjectName );if !_abeef {_bag .Log .Error ("\u0044\u0065vi\u0063\u0065\u004e \u0061\u0074\u0074\u0072ibu\u0074e \u0053\u0075\u0062\u0074\u0079\u0070\u0065 t\u0079\u0070\u0065\u0020\u0065\u0072\u0072o\u0072"); return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_fcaeg .Subtype =_dafga ;};if _cbee :=_cfbe .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_cbee !=nil {_fcaeg .Colorants =_cbee ;};if _edfef :=_cfbe .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073"); _edfef !=nil {_fcaeg .Process =_edfef ;};if _gddeb :=_cfbe .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_gddeb !=nil {_fcaeg .MixingHints =_gddeb ;};return _fcaeg ,nil ;}; // CustomKeys returns all custom info keys as list. func (_edgee *PdfInfo )CustomKeys ()[]string {if _edgee ._eggg ==nil {return nil ;};_gcdb :=make ([]string ,len (_edgee ._eggg .Keys ()));for _ ,_dbda :=range _edgee ._eggg .Keys (){_gcdb =append (_gcdb ,_dbda .String ());};return _gcdb ;}; // ToPdfObject recursively builds the Outline tree PDF object. func (_abede *PdfOutlineItem )ToPdfObject ()_egg .PdfObject {_fdebf :=_abede ._gfcb ;_dfeag :=_fdebf .PdfObject .(*_egg .PdfObjectDictionary );_dfeag .Set ("\u0054\u0069\u0074l\u0065",_abede .Title );if _abede .A !=nil {_dfeag .Set ("\u0041",_abede .A ); };if _ceaaf :=_dfeag .Get ("\u0053\u0045");_ceaaf !=nil {_dfeag .Remove ("\u0053\u0045");};if _abede .C !=nil {_dfeag .Set ("\u0043",_abede .C );};if _abede .Dest !=nil {_dfeag .Set ("\u0044\u0065\u0073\u0074",_abede .Dest );};if _abede .F !=nil {_dfeag .Set ("\u0046",_abede .F ); };if _abede .Count !=nil {_dfeag .Set ("\u0043\u006f\u0075n\u0074",_egg .MakeInteger (*_abede .Count ));};if _abede .Next !=nil {_dfeag .Set ("\u004e\u0065\u0078\u0074",_abede .Next .ToPdfObject ());};if _abede .First !=nil {_dfeag .Set ("\u0046\u0069\u0072s\u0074",_abede .First .ToPdfObject ()); };if _abede .Prev !=nil {_dfeag .Set ("\u0050\u0072\u0065\u0076",_abede .Prev .GetContext ().GetContainingPdfObject ());};if _abede .Last !=nil {_dfeag .Set ("\u004c\u0061\u0073\u0074",_abede .Last .GetContext ().GetContainingPdfObject ());};if _abede .Parent !=nil {_dfeag .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_abede .Parent .GetContext ().GetContainingPdfObject ()); };return _fdebf ;}; // ToPdfObject implements interface PdfModel. func (_egbd *PdfAnnotationPolygon )ToPdfObject ()_egg .PdfObject {_egbd .PdfAnnotation .ToPdfObject ();_eeg :=_egbd ._cef ;_cge :=_eeg .PdfObject .(*_egg .PdfObjectDictionary );_egbd .PdfAnnotationMarkup .appendToPdfDictionary (_cge );_cge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e")); _cge .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_egbd .Vertices );_cge .SetIfNotNil ("\u004c\u0045",_egbd .LE );_cge .SetIfNotNil ("\u0042\u0053",_egbd .BS );_cge .SetIfNotNil ("\u0049\u0043",_egbd .IC );_cge .SetIfNotNil ("\u0042\u0045",_egbd .BE ); _cge .SetIfNotNil ("\u0049\u0054",_egbd .IT );_cge .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_egbd .Measure );return _eeg ;}; // ToPdfObject implements interface PdfModel. func (_ecf *PdfActionGoTo3DView )ToPdfObject ()_egg .PdfObject {_ecf .PdfAction .ToPdfObject ();_fdc :=_ecf ._bf ;_cb :=_fdc .PdfObject .(*_egg .PdfObjectDictionary );_cb .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeGoTo3DView )));_cb .SetIfNotNil ("\u0054\u0041",_ecf .TA ); _cb .SetIfNotNil ("\u0056",_ecf .V );return _fdc ;}; // PdfActionNamed represents a named action. type PdfActionNamed struct{*PdfAction ;N _egg .PdfObject ;}; // GetRevisionNumber returns the version of the current Pdf document func (_abafb *PdfReader )GetRevisionNumber ()int {return _abafb ._dafgab .GetRevisionNumber ()}; // Encoder returns the font's text encoder. func (_faea *pdfFontSimple )Encoder ()_ef .TextEncoder {if _faea ._cbdegf !=nil {return _faea ._cbdegf ;};if _faea ._cdee !=nil {return _faea ._cdee ;};_ddee ,_ :=_ef .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil ); return _ddee ;};func (_edgfd *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _edgfd ._bgacg ==nil &&_edgfd .DescendantFont !=nil {return _edgfd .DescendantFont .FontDescriptor ();};return _edgfd ._bgacg ;}; // SetAction sets the PDF action for the annotation link. func (_efda *PdfAnnotationLink )SetAction (action *PdfAction ){_efda ._fdb =action ;if action ==nil {_efda .A =nil ;};}; // GetRevision returns the specific version of the PdfReader for the current Pdf document func (_ccfg *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_ecdba :=_ccfg ._dafgab .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _ecdba {return nil ,_gd .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072"); };if revisionNumber ==_ecdba {return _ccfg ,nil ;};if _ccfg ._acad [revisionNumber ]!=nil {return _ccfg ._acad [revisionNumber ],nil ;};_eedgc :=_ccfg ;for _dbgc :=_ecdba -1;_dbgc >=revisionNumber ;_dbgc --{_dceec ,_gfbf :=_eedgc .GetPreviousRevision (); if _gfbf !=nil {return nil ,_gfbf ;};_ccfg ._acad [_dbgc ]=_dceec ;_eedgc =_dceec ;};return _eedgc ,nil ;}; // ToPdfObject implements interface PdfModel. func (_ebe *PdfAnnotationRichMedia )ToPdfObject ()_egg .PdfObject {_ebe .PdfAnnotation .ToPdfObject ();_efea :=_ebe ._cef ;_fdg :=_efea .PdfObject .(*_egg .PdfObjectDictionary );_fdg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a")); _fdg .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_ebe .RichMediaSettings );_fdg .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_ebe .RichMediaContent ); return _efea ;}; // ParserMetadata gets the parser metadata. func (_ddgaa *CompliancePdfReader )ParserMetadata ()_egg .ParserMetadata {if _ddgaa ._fgea ==(_egg .ParserMetadata {}){_ddgaa ._fgea ,_ =_ddgaa ._dafgab .ParserMetadata ();};return _ddgaa ._fgea ;}; // PdfColorspaceSpecialIndexed is an indexed color space is a lookup table, where the input element // is an index to the lookup table and the output is a color defined in the lookup table in the Base // colorspace. // [/Indexed base hival lookup] type PdfColorspaceSpecialIndexed struct{Base PdfColorspace ;HiVal int ;Lookup _egg .PdfObject ;_defc []byte ;_ceed *_egg .PdfIndirectObject ;};func (_daae *PdfReader )newPdfAnnotationSquareFromDict (_acfd *_egg .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_ffbf :=PdfAnnotationSquare {}; _aabd ,_cbaf :=_daae .newPdfAnnotationMarkupFromDict (_acfd );if _cbaf !=nil {return nil ,_cbaf ;};_ffbf .PdfAnnotationMarkup =_aabd ;_ffbf .BS =_acfd .Get ("\u0042\u0053");_ffbf .IC =_acfd .Get ("\u0049\u0043");_ffbf .BE =_acfd .Get ("\u0042\u0045");_ffbf .RD =_acfd .Get ("\u0052\u0044"); return &_ffbf ,nil ;}; // GetRuneMetrics returns the char metrics for a rune. // TODO(peterwilliams97) There is nothing callers can do if no CharMetrics are found so we might as // well give them 0 width. There is no need for the bool return. func (_gfdcg *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_bgbgd :=_gfdcg .actualFont ();if _bgbgd ==nil {_bag .Log .Debug ("ER\u0052\u004fR\u003a\u0020\u0047\u0065\u0074\u0047\u006c\u0079\u0070h\u0043\u0068\u0061\u0072\u004d\u0065\u0074\u0072\u0069\u0063\u0073\u0020\u004e\u006f\u0074\u0020\u0069\u006d\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020f\u006fr\u0020\u0066\u006f\u006e\u0074\u0020\u0074\u0079p\u0065=\u0025\u0023T",_gfdcg ._edde ); return _bgd .CharMetrics {},false ;};if _aaag ,_dcdga :=_bgbgd .GetRuneMetrics (r );_dcdga {return _aaag ,true ;};if _gcdf ,_dgdd :=_gfdcg .GetFontDescriptor ();_dgdd ==nil &&_gcdf !=nil {return _bgd .CharMetrics {Wx :_gcdf ._eedab },true ;};_bag .Log .Debug ("\u0047\u0065\u0074\u0047\u006c\u0079\u0070h\u0043\u0068\u0061r\u004d\u0065\u0074\u0072i\u0063\u0073\u003a\u0020\u004e\u006f\u0020\u006d\u0065\u0074\u0072\u0069\u0063\u0073\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_gfdcg ); return _bgd .CharMetrics {},false ;}; // NewPdfColorspaceDeviceRGB returns a new RGB colorspace object. func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};func _cceebc (_fgabfa *PdfPage ){_cbadb :=_ace .GetLicenseKey ();if _cbadb !=nil &&_cbadb .IsLicensed (){return ;};_eadcb :=_egg .PdfObjectName ("\u0055\u0046\u0031"); if !_fgabfa .Resources .HasFontByName (_eadcb ){_fgabfa .Resources .SetFontByName (_eadcb ,DefaultFont ().ToPdfObject ());};var _ccdbb []string ;_ccdbb =append (_ccdbb ,"\u0071");_ccdbb =append (_ccdbb ,"\u0042\u0054");_ccdbb =append (_ccdbb ,_f .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_eadcb .String ())); _ccdbb =append (_ccdbb ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");_ccdbb =append (_ccdbb ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_affbf :="\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064\u0020\u0055\u006e\u0069\u0044o\u0063\u0020\u002d\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u006c\u0069\u0063e\u006e\u0073\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070\u0073:/\u002f\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f"; _ccdbb =append (_ccdbb ,_f .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_affbf ));_ccdbb =append (_ccdbb ,"\u0045\u0054");_ccdbb =append (_ccdbb ,"\u0051");_gaaae :=_fc .Join (_ccdbb ,"\u000a");_fgabfa .AddContentStreamByString (_gaaae );_fgabfa .ToPdfObject (); }; // Write writes the Appender output to io.Writer. // It can only be called once and further invocations will result in an error. func (_ffde *PdfAppender )Write (w _dag .Writer )error {if _ffde ._faab {return _gd .New ("\u0061\u0070\u0070\u0065\u006e\u0064\u0065\u0072\u0020\u0077\u0072\u0069\u0074e\u0020\u0063\u0061\u006e\u0020\u006fn\u006c\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0076\u006f\u006b\u0065\u0064 \u006f\u006e\u0063\u0065"); };_fbcd :=NewPdfWriter ();_adfb ,_bbga :=_egg .GetDict (_fbcd ._gfbe );if !_bbga {return _gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0020(\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0029"); };_bff ,_bbga :=_adfb .Get ("\u004b\u0069\u0064\u0073").(*_egg .PdfObjectArray );if !_bbga {return _gd .New ("\u0069\u006ev\u0061\u006c\u0069\u0064 \u0050\u0061g\u0065\u0073\u0020\u004b\u0069\u0064\u0073\u0020o\u0062\u006a\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079\u0029"); };_cffbd ,_bbga :=_adfb .Get ("\u0043\u006f\u0075n\u0074").(*_egg .PdfObjectInteger );if !_bbga {return _gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u0050\u0061\u0067e\u0073\u0020\u0043\u006fu\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0029"); };_dfc :=_ffde ._bgaa ._dafgab ;_caf :=_dfc .GetTrailer ();if _caf ==nil {return _gd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_gaeg ,_bbga :=_egg .GetIndirect (_caf .Get ("\u0052\u006f\u006f\u0074"));if !_bbga {return _gd .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064"); };_abeea ,_bbga :=_egg .GetDict (_gaeg );if !_bbga {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0028\u0072\u006f\u006f\u0074\u0020\u0025\u0071\u0029\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u0020\u0025\u0073\u0029",_gaeg ,*_caf ); return _gd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_gfcf :=range _abeea .Keys (){if _fbcd ._acea .Get (_gfcf )==nil {_gcef :=_abeea .Get (_gfcf );_fbcd ._acea .Set (_gfcf ,_gcef );};};if _ffde ._aeec !=nil {_fbcd ._acea .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_ffde ._aeec .ToPdfObject ()); _ffde .updateObjectsDeep (_ffde ._aeec .ToPdfObject (),nil );};if _ffde ._dgdc !=nil {_ffde .updateObjectsDeep (_ffde ._dgdc .ToPdfObject (),nil );_fbcd ._acea .Set ("\u0044\u0053\u0053",_ffde ._dgdc .GetContainingPdfObject ());};if _ffde ._aga !=nil {_fbcd ._acea .Set ("\u0050\u0065\u0072m\u0073",_ffde ._aga .ToPdfObject ()); _ffde .updateObjectsDeep (_ffde ._aga .ToPdfObject (),nil );};if _fbcd ._dacce .Major < 2{_fbcd .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);_fbcd .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _fgee ,_dbea :=_egg .GetDict (_caf .Get ("\u0049\u006e\u0066\u006f")); _dbea {if _ebgd ,_dabae :=_egg .GetDict (_fbcd ._efage );_dabae {for _ ,_eabe :=range _fgee .Keys (){if _ebgd .Get (_eabe )==nil {_ebgd .Set (_eabe ,_fgee .Get (_eabe ));};};};};if _ffde ._gaagg !=nil {_fbcd ._efage =_egg .MakeIndirectObject (_ffde ._gaagg .ToPdfObject ()); };_ffde .addNewObject (_fbcd ._efage );_ffde .addNewObject (_fbcd ._egad );_agdg :=false ;if len (_ffde ._bgaa .PageList )!=len (_ffde ._beac ){_agdg =true ;}else {for _efbf :=range _ffde ._bgaa .PageList {switch {case _ffde ._beac [_efbf ]==_ffde ._bgaa .PageList [_efbf ]:case _ffde ._beac [_efbf ]==_ffde .Reader .PageList [_efbf ]:default:_agdg =true ; };if _agdg {break ;};};};if _agdg {_ffde .updateObjectsDeep (_fbcd ._gfbe ,nil );}else {_ffde ._eecgg [_fbcd ._gfbe ]=struct{}{};};_fbcd ._gfbe .ObjectNumber =_ffde .Reader ._cgcga .ObjectNumber ;_ffde ._eegc [_fbcd ._gfbe ]=_ffde .Reader ._cgcga .ObjectNumber ; _fdca :=[]_egg .PdfObjectName {"\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s","\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078","\u0043r\u006f\u0070\u0042\u006f\u0078","\u0052\u006f\u0074\u0061\u0074\u0065"};for _ ,_ddff :=range _ffde ._beac {_eaad :=_ddff .ToPdfObject (); *_cffbd =*_cffbd +1;if _fdcb ,_efgc :=_eaad .(*_egg .PdfIndirectObject );_efgc &&_fdcb .GetParser ()==_ffde ._bgaa ._dafgab {_bff .Append (&_fdcb .PdfObjectReference );continue ;};if _afffd ,_adca :=_egg .GetDict (_eaad );_adca {_gfbbf ,_bfbg :=_afffd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_egg .PdfIndirectObject ); for _bfbg {_bag .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gfbbf );_gfaf ,_cgfc :=_gfbbf .PdfObject .(*_egg .PdfObjectDictionary );if !_cgfc {return _gd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074"); };for _ ,_gabb :=range _fdca {_bag .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gabb );if _afffd .Get (_gabb )!=nil {_bag .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ; };if _ecebc :=_gfaf .Get (_gabb );_ecebc !=nil {_bag .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gabb );_afffd .Set (_gabb ,_ecebc );};};_gfbbf ,_bfbg =_gfaf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_egg .PdfIndirectObject ); _bag .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gfaf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_afffd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fbcd ._gfbe );};_ffde .updateObjectsDeep (_eaad ,nil ); _bff .Append (_eaad );};if _ ,_effc :=_ffde ._cbe .Seek (0,_dag .SeekStart );_effc !=nil {return _effc ;};_faec :=make (map[SignatureHandler ]_dag .Writer );_eace :=_egg .MakeArray ();for _ ,_cfeb :=range _ffde ._dbbe {if _ecece ,_eecd :=_egg .GetIndirect (_cfeb ); _eecd {if _acfaf ,_aaeg :=_ecece .PdfObject .(*pdfSignDictionary );_aaeg {_bdfa :=*_acfaf ._ebdca ;var _fcfd error ;_faec [_bdfa ],_fcfd =_bdfa .NewDigest (_acfaf ._gbbba );if _fcfd !=nil {return _fcfd ;};_eace .Append (_egg .MakeInteger (0xfffff),_egg .MakeInteger (0xfffff)); };};};if _eace .Len ()> 0{_eace .Append (_egg .MakeInteger (0xfffff),_egg .MakeInteger (0xfffff));};for _ ,_dgaf :=range _ffde ._dbbe {if _ddcd ,_fgfe :=_egg .GetIndirect (_dgaf );_fgfe {if _bca ,_cddc :=_ddcd .PdfObject .(*pdfSignDictionary );_cddc {_bca .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_eace ); };};};_bgeg :=len (_faec )> 0;var _eee _dag .Reader =_ffde ._cbe ;if _bgeg {_bedg :=make ([]_dag .Writer ,0,len (_faec ));for _ ,_eefcg :=range _faec {_bedg =append (_bedg ,_eefcg );};_eee =_dag .TeeReader (_ffde ._cbe ,_dag .MultiWriter (_bedg ...));}; _eage ,_gcfb :=_dag .Copy (w ,_eee );if _gcfb !=nil {return _gcfb ;};if len (_ffde ._dbbe )==0{return nil ;};_fbcd ._ddfee =_eage ;_fbcd .ObjNumOffset =_ffde ._gfdcd ;_fbcd ._gabaca =true ;_fbcd ._ecfgc =_ffde ._beed ;_fbcd ._gccgfe =_ffde ._gfbc ;_fbcd ._ggdad =_ffde ._bbba ; _fbcd ._dacce =_ffde ._bgaa .PdfVersion ();_fbcd ._fcgfe =_ffde ._eegc ;_fbcd ._agdag =_ffde ._daac .GetCrypter ();_fbcd ._afcc =_ffde ._daac .GetEncryptObj ();_gfgg :=_ffde ._daac .GetXrefType ();if _gfgg !=nil {_bafcc :=*_gfgg ==_egg .XrefTypeObjectStream ; _fbcd ._bfga =&_bafcc ;};_fbcd ._bacec =map[_egg .PdfObject ]struct{}{};_fbcd ._bbead =[]_egg .PdfObject {};for _ ,_ddad :=range _ffde ._dbbe {if _ ,_abdg :=_ffde ._eecgg [_ddad ];_abdg {continue ;};_fbcd .addObject (_ddad );};_afbfc :=w ;if _bgeg {_afbfc =_dd .NewBuffer (nil ); };if _ffde ._cbdd !=""&&_fbcd ._agdag ==nil {_fbcd .Encrypt ([]byte (_ffde ._cbdd ),[]byte (_ffde ._cbdd ),_ffde ._effa );};if _ccba :=_caf .Get ("\u0049\u0044");_ccba !=nil {if _gfgb ,_fcfe :=_egg .GetArray (_ccba );_fcfe {_fbcd ._aaea =_gfgb ;};};if _eaege :=_fbcd .Write (_afbfc ); _eaege !=nil {return _eaege ;};if _bgeg {_aac :=_afbfc .(*_dd .Buffer ).Bytes ();_cagd :=_egg .MakeArray ();var _eabg []*pdfSignDictionary ;var _bgdd int64 ;for _ ,_dffe :=range _fbcd ._bbead {if _dgfg ,_bgbgb :=_egg .GetIndirect (_dffe );_bgbgb {if _ggdfd ,_acg :=_dgfg .PdfObject .(*pdfSignDictionary ); _acg {_eabg =append (_eabg ,_ggdfd );_gaaga :=_ggdfd ._cagab +int64 (_ggdfd ._fcade );_cagd .Append (_egg .MakeInteger (_bgdd ),_egg .MakeInteger (_gaaga -_bgdd ));_bgdd =_ggdfd ._cagab +int64 (_ggdfd ._aabac );};};};_cagd .Append (_egg .MakeInteger (_bgdd ),_egg .MakeInteger (_eage +int64 (len (_aac ))-_bgdd )); _gabc :=[]byte (_cagd .WriteString ());for _ ,_dfgfa :=range _eabg {_aefd :=int (_dfgfa ._cagab -_eage );for _febd :=_dfgfa ._dcfaa ;_febd < _dfgfa ._gbeab ;_febd ++{_aac [_aefd +_febd ]=' ';};_cdb :=_aac [_aefd +_dfgfa ._dcfaa :_aefd +_dfgfa ._gbeab ]; copy (_cdb ,_gabc );};var _bgcba int ;for _ ,_aaa :=range _eabg {_dbed :=int (_aaa ._cagab -_eage );_geff :=_aac [_bgcba :_dbed +_aaa ._fcade ];_agbd :=*_aaa ._ebdca ;_faec [_agbd ].Write (_geff );_bgcba =_dbed +_aaa ._aabac ;};for _ ,_fdfg :=range _eabg {_acdc :=_aac [_bgcba :]; _dedc :=*_fdfg ._ebdca ;_faec [_dedc ].Write (_acdc );};for _ ,_fbdad :=range _eabg {_adee :=int (_fbdad ._cagab -_eage );_efc :=*_fbdad ._ebdca ;_ffae :=_faec [_efc ];if _dfcf :=_efc .Sign (_fbdad ._gbbba ,_ffae );_dfcf !=nil {return _dfcf ;};_fbdad ._gbbba .ByteRange =_cagd ; _gdac :=[]byte (_fbdad ._gbbba .Contents .WriteString ());for _cfbf :=_fbdad ._dcfaa ;_cfbf < _fbdad ._gbeab ;_cfbf ++{_aac [_adee +_cfbf ]=' ';};for _dgde :=_fbdad ._fcade ;_dgde < _fbdad ._aabac ;_dgde ++{_aac [_adee +_dgde ]=' ';};_edac :=_aac [_adee +_fbdad ._dcfaa :_adee +_fbdad ._gbeab ]; copy (_edac ,_gabc );_edac =_aac [_adee +_fbdad ._fcade :_adee +_fbdad ._aabac ];copy (_edac ,_gdac );};_dbdc :=_dd .NewBuffer (_aac );_ ,_gcfb =_dag .Copy (w ,_dbdc );if _gcfb !=nil {return _gcfb ;};};_ffde ._faab =true ;return nil ;}; // SetNamedDestinations sets the Dests entry in the PDF catalog. // See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008). func (_fdece *PdfWriter )SetNamedDestinations (dests _egg .PdfObject )error {if dests ==nil {return nil ;};_bag .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e"); _fdece ._acea .Set ("\u0044\u0065\u0073t\u0073",dests );return _fdece .addObjects (dests );}; // ToPdfObject returns a PDF object representation of the outline. func (_bcecb *Outline )ToPdfObject ()_egg .PdfObject {return _bcecb .ToPdfOutline ().ToPdfObject ()}; // PdfReader represents a PDF file reader. It is a frontend to the lower level parsing mechanism and provides // a higher level access to work with PDF structure and information, such as the page structure etc. type PdfReader struct{_dafgab *_egg .PdfParser ;_bcccb _egg .PdfObject ;_cgcga *_egg .PdfIndirectObject ;_gbeagf *_egg .PdfObjectDictionary ;_abgbc []*_egg .PdfIndirectObject ;PageList []*PdfPage ;_fced int ;_eacf *_egg .PdfObjectDictionary ;_cccbg *PdfOutlineTreeNode ; AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_eacd *Permissions ;_gcfcf map[*PdfReader ]*PdfReader ;_acad []*PdfReader ;_dabaf *modelManager ;_cede bool ;_gbabf map[_egg .PdfObject ]struct{};_eefb _dag .ReadSeeker ;_faeea string ;_gccee bool ;_ecbf *ReaderOpts ; _gddafb bool ;}; // ToPdfObject implements interface PdfModel. func (_gbed *PdfAnnotationHighlight )ToPdfObject ()_egg .PdfObject {_gbed .PdfAnnotation .ToPdfObject ();_eaac :=_gbed ._cef ;_gbea :=_eaac .PdfObject .(*_egg .PdfObjectDictionary );_gbed .PdfAnnotationMarkup .appendToPdfDictionary (_gbea );_gbea .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t")); _gbea .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gbed .QuadPoints );return _eaac ;}; // ToPdfObject implements interface PdfModel. func (_gaag *PdfBorderStyle )ToPdfObject ()_egg .PdfObject {_fgcf :=_egg .MakeDict ();if _gaag ._fffd !=nil {if _efdf ,_aabbg :=_gaag ._fffd .(*_egg .PdfIndirectObject );_aabbg {_efdf .PdfObject =_fgcf ;};};_fgcf .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072")); if _gaag .W !=nil {_fgcf .Set ("\u0057",_egg .MakeFloat (*_gaag .W ));};if _gaag .S !=nil {_fgcf .Set ("\u0053",_egg .MakeName (_gaag .S .GetPdfName ()));};if _gaag .D !=nil {_fgcf .Set ("\u0044",_egg .MakeArrayFromIntegers (*_gaag .D ));};if _gaag ._fffd !=nil {return _gaag ._fffd ; };return _fgcf ;}; // CharcodesToStrings returns the unicode strings corresponding to `charcodes`. // The int returns are the number of strings and the number of unconvereted codes. // NOTE: The number of strings returned is equal to the number of charcodes func (_adgfb *PdfFont )CharcodesToStrings (charcodes []_ef .CharCode )([]string ,int ,int ){_cbgg :=_adgfb .baseFields ();_aefeb :=make ([]string ,0,len (charcodes ));_cdddd :=0;_aadce :=_adgfb .Encoder ();_beacc :=_cbgg ._bfbgf !=nil &&_adgfb .IsSimple ()&&_adgfb .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_fc .Contains (_cbgg ._bfbgf .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-"); if !_beacc &&_aadce !=nil {switch _eadg :=_aadce .(type ){case _ef .SimpleEncoder :_dagab :=_eadg .BaseName ();if _ ,_dffge :=_eefde [_dagab ];_dffge {for _ ,_edad :=range charcodes {if _abccg ,_fdbcf :=_aadce .CharcodeToRune (_edad );_fdbcf {_aefeb =append (_aefeb ,string (_abccg )); }else {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0072u\u006e\u0065\u002e\u0020\u0063\u006f\u0064\u0065=\u0030x\u0025\u0030\u0034\u0078\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0073\u003d\u005b\u0025\u00200\u0034\u0078\u005d\u0020\u0043\u0049\u0044\u003d\u0025\u0074\u000a"+"\t\u0066\u006f\u006e\u0074=%\u0073\n\u0009\u0065\u006e\u0063\u006fd\u0069\u006e\u0067\u003d\u0025\u0073",_edad ,charcodes ,_cbgg .isCIDFont (),_adgfb ,_aadce ); _cdddd ++;_aefeb =append (_aefeb ,_ga .MissingCodeString );};};return _aefeb ,len (_aefeb ),_cdddd ;};};};for _ ,_bgee :=range charcodes {if _cbgg ._bfbgf !=nil {if _bgfe ,_aggbc :=_cbgg ._bfbgf .CharcodeToUnicode (_ga .CharCode (_bgee ));_aggbc {_aefeb =append (_aefeb ,_bgfe ); continue ;};};if _aadce !=nil {if _acag ,_begdb :=_aadce .CharcodeToRune (_bgee );_begdb {_aefeb =append (_aefeb ,string (_acag ));continue ;};};_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0072u\u006e\u0065\u002e\u0020\u0063\u006f\u0064\u0065=\u0030x\u0025\u0030\u0034\u0078\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0073\u003d\u005b\u0025\u00200\u0034\u0078\u005d\u0020\u0043\u0049\u0044\u003d\u0025\u0074\u000a"+"\t\u0066\u006f\u006e\u0074=%\u0073\n\u0009\u0065\u006e\u0063\u006fd\u0069\u006e\u0067\u003d\u0025\u0073",_bgee ,charcodes ,_cbgg .isCIDFont (),_adgfb ,_aadce ); _cdddd ++;_aefeb =append (_aefeb ,_ga .MissingCodeString );};if _cdddd !=0{_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0043\u006f\u0075\u006c\u0064\u006e\u0027\u0074\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0074\u006f\u0020u\u006e\u0069\u0063\u006f\u0064\u0065\u002e\u0020\u0055\u0073\u0069\u006e\u0067\u0020i\u006ep\u0075\u0074\u002e\u000a"+"\u0009\u006e\u0075\u006d\u0043\u0068\u0061\u0072\u0073\u003d\u0025d\u0020\u006e\u0075\u006d\u004d\u0069\u0073\u0073\u0065\u0073=\u0025\u0064\u000a"+"\u0009\u0066\u006f\u006e\u0074\u003d\u0025\u0073",len (charcodes ),_cdddd ,_adgfb ); };return _aefeb ,len (_aefeb ),_cdddd ;};func _facf (_ddceg []byte )[]byte {const _efgfb =52845;const _eecfc =22719;_fdgb :=55665;for _ ,_ebcef :=range _ddceg [:4]{_fdgb =(int (_ebcef )+_fdgb )*_efgfb +_eecfc ;};_dfcfc :=make ([]byte ,len (_ddceg )-4); for _dddc ,_ccgaga :=range _ddceg [4:]{_dfcfc [_dddc ]=byte (int (_ccgaga )^_fdgb >>8);_fdgb =(int (_ccgaga )+_fdgb )*_efgfb +_eecfc ;};return _dfcfc ;};func (_fccgb *PdfWriter )writeXRefStreams (_gcdcd int ,_eeedc int64 )error {_ggcf :=_gcdcd +1;_fccgb ._ccceb [_ggcf ]=crossReference {Type :1,ObjectNumber :_ggcf ,Offset :_eeedc }; _dabgc :=_dd .NewBuffer (nil );_cbgfc :=_egg .MakeArray ();for _gddba :=0;_gddba <=_gcdcd ;{for ;_gddba <=_gcdcd ;_gddba ++{_gfcabc ,_bffce :=_fccgb ._ccceb [_gddba ];if _bffce &&(!_fccgb ._gabaca ||_fccgb ._gabaca &&(_gfcabc .Type ==1&&_gfcabc .Offset >=_fccgb ._ggdad ||_gfcabc .Type ==0)){break ; };};var _gcdfcd int ;for _gcdfcd =_gddba +1;_gcdfcd <=_gcdcd ;_gcdfcd ++{_baegf ,_fbca :=_fccgb ._ccceb [_gcdfcd ];if _fbca &&(!_fccgb ._gabaca ||_fccgb ._gabaca &&(_baegf .Type ==1&&_baegf .Offset > _fccgb ._ggdad )){continue ;};break ;};_cbgfc .Append (_egg .MakeInteger (int64 (_gddba )),_egg .MakeInteger (int64 (_gcdfcd -_gddba ))); for _agged :=_gddba ;_agged < _gcdfcd ;_agged ++{_abda :=_fccgb ._ccceb [_agged ];switch _abda .Type {case 0:_bg .Write (_dabgc ,_bg .BigEndian ,byte (0));_bg .Write (_dabgc ,_bg .BigEndian ,uint32 (0));_bg .Write (_dabgc ,_bg .BigEndian ,uint16 (0xFFFF)); case 1:_bg .Write (_dabgc ,_bg .BigEndian ,byte (1));_bg .Write (_dabgc ,_bg .BigEndian ,uint32 (_abda .Offset ));_bg .Write (_dabgc ,_bg .BigEndian ,uint16 (_abda .Generation ));case 2:_bg .Write (_dabgc ,_bg .BigEndian ,byte (2));_bg .Write (_dabgc ,_bg .BigEndian ,uint32 (_abda .ObjectNumber )); _bg .Write (_dabgc ,_bg .BigEndian ,uint16 (_abda .Index ));};};_gddba =_gcdfcd +1;};_eagde ,_ecdgfd :=_egg .MakeStream (_dabgc .Bytes (),_egg .NewFlateEncoder ());if _ecdgfd !=nil {return _ecdgfd ;};_eagde .ObjectNumber =int64 (_ggcf );_eagde .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0058\u0052\u0065\u0066")); _eagde .PdfObjectDictionary .Set ("\u0057",_egg .MakeArray (_egg .MakeInteger (1),_egg .MakeInteger (4),_egg .MakeInteger (2)));_eagde .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_cbgfc );_eagde .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_egg .MakeInteger (int64 (_ggcf +1))); _eagde .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_fccgb ._efage );_eagde .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_fccgb ._egad );if _fccgb ._gabaca &&_fccgb ._gccgfe > 0{_eagde .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_egg .MakeInteger (_fccgb ._gccgfe )); };if _fccgb ._agdag !=nil {_eagde .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_fccgb ._afcc );};if _fccgb ._aaea ==nil &&_fccgb ._caddc !=""&&_fccgb ._bagaa !=""{_fccgb ._aaea =_egg .MakeArray (_egg .MakeHexString (_fccgb ._caddc ),_egg .MakeHexString (_fccgb ._bagaa )); };if _fccgb ._aaea !=nil {_bag .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_fccgb ._aaea );_eagde .Set ("\u0049\u0044",_fccgb ._aaea );};_fccgb .writeObject (int (_eagde .ObjectNumber ),_eagde );return nil ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_edgd *PdfShadingType3 )ToPdfObject ()_egg .PdfObject {_edgd .PdfShading .ToPdfObject ();_feac ,_dcgfa :=_edgd .getShadingDict ();if _dcgfa !=nil {_bag .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074"); return nil ;};if _edgd .Coords !=nil {_feac .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_edgd .Coords );};if _edgd .Domain !=nil {_feac .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_edgd .Domain );};if _edgd .Function !=nil {if len (_edgd .Function )==1{_feac .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_edgd .Function [0].ToPdfObject ()); }else {_aeaeg :=_egg .MakeArray ();for _ ,_babdg :=range _edgd .Function {_aeaeg .Append (_babdg .ToPdfObject ());};_feac .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aeaeg );};};if _edgd .Extend !=nil {_feac .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_edgd .Extend ); };return _edgd ._cfdbd ;}; // ToPdfObject implements interface PdfModel. // Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information. func (_ebgf *PdfAnnotation )ToPdfObject ()_egg .PdfObject {_bbdgg :=_ebgf ._cef ;_gaac :=_bbdgg .PdfObject .(*_egg .PdfObjectDictionary );_gaac .Clear ();_gaac .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0041\u006e\u006eo\u0074"));_gaac .SetIfNotNil ("\u0052\u0065\u0063\u0074",_ebgf .Rect ); _gaac .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_ebgf .Contents );_gaac .SetIfNotNil ("\u0050",_ebgf .P );_gaac .SetIfNotNil ("\u004e\u004d",_ebgf .NM );_gaac .SetIfNotNil ("\u004d",_ebgf .M );_gaac .SetIfNotNil ("\u0046",_ebgf .F ); _gaac .SetIfNotNil ("\u0041\u0050",_ebgf .AP );_gaac .SetIfNotNil ("\u0041\u0053",_ebgf .AS );_gaac .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_ebgf .Border );_gaac .SetIfNotNil ("\u0043",_ebgf .C );_gaac .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_ebgf .StructParent ); _gaac .SetIfNotNil ("\u004f\u0043",_ebgf .OC );return _bbdgg ;}; // ToPdfObject implements interface PdfModel. func (_fdd *PdfActionSetOCGState )ToPdfObject ()_egg .PdfObject {_fdd .PdfAction .ToPdfObject ();_gbdc :=_fdd ._bf ;_fea :=_gbdc .PdfObject .(*_egg .PdfObjectDictionary );_fea .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeSetOCGState )));_fea .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_fdd .State ); _fea .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_fdd .PreserveRB );return _gbdc ;}; // GetCerts returns the signature certificate chain. func (_ceag *PdfSignature )GetCerts ()([]*_dg .Certificate ,error ){var _cfbea []func ()([]*_dg .Certificate ,error );switch _febge ,_ :=_egg .GetNameVal (_ceag .SubFilter );_febge {case "\u0061\u0064\u0062\u0065.p\u006b\u0063\u0073\u0037\u002e\u0064\u0065\u0074\u0061\u0063\u0068\u0065\u0064","\u0045\u0054\u0053\u0049.C\u0041\u0064\u0045\u0053\u002e\u0064\u0065\u0074\u0061\u0063\u0068\u0065\u0064":_cfbea =append (_cfbea ,_ceag .extractChainFromPKCS7 ,_ceag .extractChainFromCert ); case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_cfbea =append (_cfbea ,_ceag .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_cfbea =append (_cfbea ,_ceag .extractChainFromPKCS7 ); default:return nil ,_f .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_febge );};for _ ,_dgddb :=range _cfbea {_accaa ,_egcbb :=_dgddb ();if _egcbb !=nil {return nil ,_egcbb ; };if len (_accaa )> 0{return _accaa ,nil ;};};return nil ,ErrSignNoCertificates ;}; // UpdateObject marks `obj` as updated and to be included in the following revision. func (_gbdb *PdfAppender )UpdateObject (obj _egg .PdfObject ){_gbdb .replaceObject (obj ,obj );if _ ,_eebc :=_gbdb ._bdba [obj ];!_eebc {_gbdb ._dbbe =append (_gbdb ._dbbe ,obj );_gbdb ._bdba [obj ]=struct{}{};};}; // Encoder returns the font's text encoder. func (_bbbc pdfCIDFontType2 )Encoder ()_ef .TextEncoder {return _bbbc ._bceaf };func (_bgeb *PdfReader )newPdfAnnotationMarkupFromDict (_cdga *_egg .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_cfe :=&PdfAnnotationMarkup {};if _cbgb :=_cdga .Get ("\u0054"); _cbgb !=nil {_cfe .T =_cbgb ;};if _gab :=_cdga .Get ("\u0050\u006f\u0070u\u0070");_gab !=nil {_bbca ,_gddc :=_gab .(*_egg .PdfIndirectObject );if !_gddc {if _ ,_afc :=_gab .(*_egg .PdfObjectNull );!_afc {return nil ,_gd .New ("p\u006f\u0070\u0075\u0070\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074\u0020t\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072ec\u0074\u0020\u006fb\u006ae\u0063\u0074"); };}else {_gbe ,_cdgae :=_bgeb .newPdfAnnotationFromIndirectObject (_bbca );if _cdgae !=nil {return nil ,_cdgae ;};if _gbe !=nil {_eafe ,_bab :=_gbe ._gcf .(*PdfAnnotationPopup );if !_bab {return nil ,_gd .New ("\u006f\u0062\u006ae\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0072\u0065\u0066\u0065\u0072\u0072\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0061\u0020\u0070\u006f\u0070\u0075\u0070\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"); };_cfe .Popup =_eafe ;};};};if _caa :=_cdga .Get ("\u0043\u0041");_caa !=nil {_cfe .CA =_caa ;};if _egc :=_cdga .Get ("\u0052\u0043");_egc !=nil {_cfe .RC =_egc ;};if _bgfb :=_cdga .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"); _bgfb !=nil {_cfe .CreationDate =_bgfb ;};if _dbdfg :=_cdga .Get ("\u0049\u0052\u0054");_dbdfg !=nil {_cfe .IRT =_dbdfg ;};if _edbd :=_cdga .Get ("\u0053\u0075\u0062\u006a");_edbd !=nil {_cfe .Subj =_edbd ;};if _aeee :=_cdga .Get ("\u0052\u0054");_aeee !=nil {_cfe .RT =_aeee ; };if _egf :=_cdga .Get ("\u0049\u0054");_egf !=nil {_cfe .IT =_egf ;};if _cfcg :=_cdga .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_cfcg !=nil {_cfe .ExData =_cfcg ;};return _cfe ,nil ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_gbeeg *PdfShadingType1 )ToPdfObject ()_egg .PdfObject {_gbeeg .PdfShading .ToPdfObject ();_fcage ,_gcba :=_gbeeg .getShadingDict ();if _gcba !=nil {_bag .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074"); return nil ;};if _gbeeg .Domain !=nil {_fcage .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gbeeg .Domain );};if _gbeeg .Matrix !=nil {_fcage .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gbeeg .Matrix );};if _gbeeg .Function !=nil {if len (_gbeeg .Function )==1{_fcage .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gbeeg .Function [0].ToPdfObject ()); }else {_daebdb :=_egg .MakeArray ();for _ ,_gceb :=range _gbeeg .Function {_daebdb .Append (_gceb .ToPdfObject ());};_fcage .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_daebdb );};};return _gbeeg ._cfdbd ;};func (_gdbca *PdfReader )traverseObjectData (_egbcc _egg .PdfObject )error {return _egg .ResolveReferencesDeep (_egbcc ,_gdbca ._gbabf ); }; // GetPdfName returns the PDF name used to indicate the border style. // (Table 166 p. 395). func (_gdda *BorderStyle )GetPdfName ()string {switch *_gdda {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055"; };return "";}; // NewPdfActionImportData returns a new "import data" action. func NewPdfActionImportData ()*PdfActionImportData {_fgf :=NewPdfAction ();_dgd :=&PdfActionImportData {};_dgd .PdfAction =_fgf ;_fgf .SetContext (_dgd );return _dgd ;}; // GetContainingPdfObject returns the container of the pattern object (indirect object). func (_ccddf *PdfPattern )GetContainingPdfObject ()_egg .PdfObject {return _ccddf ._fgec };func _gaec (_gebdc _egg .PdfObject )(*PdfFunctionType3 ,error ){_cagacd :=&PdfFunctionType3 {};var _dfdcd *_egg .PdfObjectDictionary ;if _eege ,_gcdgd :=_gebdc .(*_egg .PdfIndirectObject ); _gcdgd {_afdb ,_dcgd :=_eege .PdfObject .(*_egg .PdfObjectDictionary );if !_dcgd {return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cagacd ._cbbbc =_eege ;_dfdcd =_afdb ;}else if _dcdc ,_eebd :=_gebdc .(*_egg .PdfObjectDictionary ); _eebd {_dfdcd =_dcdc ;}else {return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cgbd ,_gdgab :=_egg .TraceToDirectObject (_dfdcd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_egg .PdfObjectArray ); if !_gdgab {_bag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064"); };if _cgbd .Len ()!=2{_bag .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_bdge ,_fgeag :=_cgbd .ToFloat64Array (); if _fgeag !=nil {return nil ,_fgeag ;};_cagacd .Domain =_bdge ;_cgbd ,_gdgab =_egg .TraceToDirectObject (_dfdcd .Get ("\u0052\u0061\u006eg\u0065")).(*_egg .PdfObjectArray );if _gdgab {if _cgbd .Len ()< 0||_cgbd .Len ()%2!=0{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065"); };_gegga ,_aagcd :=_cgbd .ToFloat64Array ();if _aagcd !=nil {return nil ,_aagcd ;};_cagacd .Range =_gegga ;};_cgbd ,_gdgab =_egg .TraceToDirectObject (_dfdcd .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_egg .PdfObjectArray );if !_gdgab {_bag .Log .Error ("\u0046\u0075\u006ect\u0069\u006f\u006e\u0073\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064"); return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};_cagacd .Functions =[]PdfFunction {}; for _ ,_gecfd :=range _cgbd .Elements (){_gebca ,_fged :=_bdefe (_gecfd );if _fged !=nil {return nil ,_fged ;};_cagacd .Functions =append (_cagacd .Functions ,_gebca );};_cgbd ,_gdgab =_egg .TraceToDirectObject (_dfdcd .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_egg .PdfObjectArray ); if !_gdgab {_bag .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064"); };_ecedc ,_fgeag :=_cgbd .ToFloat64Array ();if _fgeag !=nil {return nil ,_fgeag ;};_cagacd .Bounds =_ecedc ;if len (_cagacd .Bounds )!=len (_cagacd .Functions )-1{_bag .Log .Error ("B\u006f\u0075\u006e\u0064\u0073\u0020\u0028\u0025\u0064)\u0020\u0061\u006e\u0064\u0020\u006e\u0075m \u0066\u0075\u006e\u0063t\u0069\u006f\u006e\u0073\u0020\u0028\u0025\u0064\u0029 n\u006f\u0074 \u006d\u0061\u0074\u0063\u0068\u0069\u006e\u0067",len (_cagacd .Bounds ),len (_cagacd .Functions )); return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cgbd ,_gdgab =_egg .TraceToDirectObject (_dfdcd .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_egg .PdfObjectArray );if !_gdgab {_bag .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064"); return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};_fedd ,_fgeag :=_cgbd .ToFloat64Array (); if _fgeag !=nil {return nil ,_fgeag ;};_cagacd .Encode =_fedd ;if len (_cagacd .Encode )!=2*len (_cagacd .Functions ){_bag .Log .Error ("\u004c\u0065\u006e\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0020\u0028\u0025\u0064\u0029 \u0061\u006e\u0064\u0020\u006e\u0075\u006d\u0020\u0066\u0075\u006e\u0063\u0074i\u006f\u006e\u0073\u0020\u0028\u0025\u0064\u0029\u0020\u006e\u006f\u0074 m\u0061\u0074\u0063\u0068\u0069\u006e\u0067\u0020\u0075\u0070",len (_cagacd .Encode ),len (_cagacd .Functions )); return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _cagacd ,nil ;};func _bdabg (_dfgef *_egg .PdfObjectDictionary )(*PdfShadingType1 ,error ){_bccdac :=PdfShadingType1 {};if _cadd :=_dfgef .Get ("\u0044\u006f\u006d\u0061\u0069\u006e"); _cadd !=nil {_cadd =_egg .TraceToDirectObject (_cadd );_aeeeg ,_afage :=_cadd .(*_egg .PdfObjectArray );if !_afage {_bag .Log .Debug ("\u0044\u006f\u006d\u0061i\u006e\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_cadd ); return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bccdac .Domain =_aeeeg ;};if _aebac :=_dfgef .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_aebac !=nil {_aebac =_egg .TraceToDirectObject (_aebac ); _acfcc ,_dcdef :=_aebac .(*_egg .PdfObjectArray );if !_dcdef {_bag .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_aebac );return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072"); };_bccdac .Matrix =_acfcc ;};_fcaga :=_dfgef .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _fcaga ==nil {_bag .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0020\u0046\u0075\u006ec\u0074\u0069\u006f\u006e"); return nil ,ErrRequiredAttributeMissing ;};_bccdac .Function =[]PdfFunction {};if _gdcgf ,_cdfc :=_fcaga .(*_egg .PdfObjectArray );_cdfc {for _ ,_bdbcc :=range _gdcgf .Elements (){_gfbg ,_ddfcff :=_bdefe (_bdbcc );if _ddfcff !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_ddfcff ); return nil ,_ddfcff ;};_bccdac .Function =append (_bccdac .Function ,_gfbg );};}else {_befgf ,_cbfb :=_bdefe (_fcaga );if _cbfb !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_cbfb ); return nil ,_cbfb ;};_bccdac .Function =append (_bccdac .Function ,_befgf );};return &_bccdac ,nil ;};func (_eceba *PdfWriter )seekByName (_ddcc _egg .PdfObject ,_aagdg []string ,_cefdb string )([]_egg .PdfObject ,error ){_bag .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_ddcc ); var _gggdad []_egg .PdfObject ;if _bbdaf ,_fgeeb :=_ddcc .(*_egg .PdfIndirectObject );_fgeeb {return _eceba .seekByName (_bbdaf .PdfObject ,_aagdg ,_cefdb );};if _degeb ,_dfbcb :=_ddcc .(*_egg .PdfObjectStream );_dfbcb {return _eceba .seekByName (_degeb .PdfObjectDictionary ,_aagdg ,_cefdb ); };if _beacbe ,_gadcef :=_ddcc .(*_egg .PdfObjectDictionary );_gadcef {_bag .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_dgaec :=range _beacbe .Keys (){_dccdg :=_beacbe .Get (_dgaec );if string (_dgaec )==_cefdb {_gggdad =append (_gggdad ,_dccdg );}; for _ ,_acdge :=range _aagdg {if string (_dgaec )==_acdge {_bag .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_acdge );_dfead ,_ccfb :=_eceba .seekByName (_dccdg ,_aagdg ,_cefdb );if _ccfb !=nil {return _gggdad ,_ccfb ; };_gggdad =append (_gggdad ,_dfead ...);break ;};};};return _gggdad ,nil ;};return _gggdad ,nil ;};func _fef (_dffd _egg .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_bag .Log .Trace ("\u004e\u0065\u0077\u0020\u0050\u0061\u0074\u0074\u0065\u0072n\u0020\u0043\u0053\u0020\u0066\u0072\u006fm\u0020\u006f\u0062\u006a\u003a\u0020\u0025\u0073\u0020\u0025\u0054",_dffd .String (),_dffd ); _fafd :=NewPdfColorspaceSpecialPattern ();if _dadbb ,_fbgg :=_dffd .(*_egg .PdfIndirectObject );_fbgg {_fafd ._ceae =_dadbb ;};_dffd =_egg .TraceToDirectObject (_dffd );if _cabab ,_cgcg :=_dffd .(*_egg .PdfObjectName );_cgcg {if *_cabab !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_f .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065"); };return _fafd ,nil ;};_ccddd ,_edfeg :=_dffd .(*_egg .PdfObjectArray );if !_edfeg {_bag .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061t\u0074\u0065\u0072\u006e\u0020\u0043\u0053 \u004f\u0062\u006a\u0065\u0063\u0074\u003a\u0020\u0025\u0023\u0076",_dffd ); return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _ccddd .Len ()!=1&&_ccddd .Len ()!=2{_bag .Log .Error ("\u0049\u006ev\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079\u003a %\u0023\u0076",_ccddd ); return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_dffd =_ccddd .Get (0);if _fdef ,_gfef :=_dffd .(*_egg .PdfObjectName );_gfef {if *_fdef !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_bag .Log .Error ("\u0049\u006e\u0076al\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065\u0072n\u0020C\u0053 \u0061r\u0072\u0061\u0079\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0023\u0076",_fdef ); return nil ,_f .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _ccddd .Len ()> 1{_dffd =_ccddd .Get (1);_dffd =_egg .TraceToDirectObject (_dffd );_fdfga ,_dfab :=NewPdfColorspaceFromPdfObject (_dffd );if _dfab !=nil {return nil ,_dfab ; };_fafd .UnderlyingCS =_fdfga ;};_bag .Log .Trace ("R\u0065\u0074\u0075\u0072\u006e\u0069\u006e\u0067\u0020\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0077i\u0074\u0068\u0020\u0075\u006e\u0064\u0065\u0072\u006c\u0079in\u0067\u0020\u0063s\u003a \u0025\u0054",_fafd .UnderlyingCS ); return _fafd ,nil ;};var _ pdfFont =(*pdfCIDFontType2 )(nil );func (_ccca *PdfReader )loadAnnotations (_ffedd _egg .PdfObject )([]*PdfAnnotation ,error ){_ebdge ,_ggdba :=_egg .GetArray (_ffedd );if !_ggdba {return nil ,_f .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079"); };var _bcdbf []*PdfAnnotation ;for _ ,_deebg :=range _ebdge .Elements (){_deebg =_egg .ResolveReference (_deebg );if _ ,_eeecc :=_deebg .(*_egg .PdfObjectNull );_eeecc {continue ;};_fbee ,_gfcad :=_deebg .(*_egg .PdfObjectDictionary );_affc ,_bedfb :=_deebg .(*_egg .PdfIndirectObject ); if _gfcad {_affc =&_egg .PdfIndirectObject {};_affc .PdfObject =_fbee ;}else {if !_bedfb {return nil ,_f .Errorf ("\u0061\u006eno\u0074\u0061\u0074i\u006f\u006e\u0020\u006eot \u0069n \u0061\u006e\u0020\u0069\u006e\u0064\u0069re\u0063\u0074\u0020\u006f\u0062\u006a\u0065c\u0074"); };};_dgcea ,_efbcd :=_ccca .newPdfAnnotationFromIndirectObject (_affc );if _efbcd !=nil {return nil ,_efbcd ;};switch _eccgd :=_dgcea .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_aeeac :=range _ccca .AcroForm .AllFields (){if _aeeac ._agef ==_eccgd .Parent {_eccgd ._daa =_aeeac ; break ;};};};if _dgcea !=nil {_bcdbf =append (_bcdbf ,_dgcea );};};return _bcdbf ,nil ;}; // ToPdfObject implements interface PdfModel. func (_dccda *PdfSignature )ToPdfObject ()_egg .PdfObject {_cabcf :=_dccda ._ccbda ;var _fcdea *_egg .PdfObjectDictionary ;if _afec ,_ccgbea :=_cabcf .PdfObject .(*pdfSignDictionary );_ccgbea {_fcdea =_afec .PdfObjectDictionary ;}else {_fcdea =_cabcf .PdfObject .(*_egg .PdfObjectDictionary ); };_fcdea .SetIfNotNil ("\u0054\u0079\u0070\u0065",_dccda .Type );_fcdea .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_dccda .Filter );_fcdea .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_dccda .SubFilter );_fcdea .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_dccda .ByteRange ); _fcdea .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_dccda .Contents );_fcdea .SetIfNotNil ("\u0043\u0065\u0072\u0074",_dccda .Cert );_fcdea .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dccda .Name );_fcdea .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_dccda .Reason ); _fcdea .SetIfNotNil ("\u004d",_dccda .M );_fcdea .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_dccda .Reference );_fcdea .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_dccda .Changes );_fcdea .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_dccda .ContactInfo ); return _cabcf ;}; // ToPdfObject implements interface PdfModel. func (_gdbcd *PdfAnnotationLine )ToPdfObject ()_egg .PdfObject {_gdbcd .PdfAnnotation .ToPdfObject ();_ebgfc :=_gdbcd ._cef ;_bfb :=_ebgfc .PdfObject .(*_egg .PdfObjectDictionary );_gdbcd .PdfAnnotationMarkup .appendToPdfDictionary (_bfb );_bfb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u004c\u0069\u006e\u0065")); _bfb .SetIfNotNil ("\u004c",_gdbcd .L );_bfb .SetIfNotNil ("\u0042\u0053",_gdbcd .BS );_bfb .SetIfNotNil ("\u004c\u0045",_gdbcd .LE );_bfb .SetIfNotNil ("\u0049\u0043",_gdbcd .IC );_bfb .SetIfNotNil ("\u004c\u004c",_gdbcd .LL );_bfb .SetIfNotNil ("\u004c\u004c\u0045",_gdbcd .LLE ); _bfb .SetIfNotNil ("\u0043\u0061\u0070",_gdbcd .Cap );_bfb .SetIfNotNil ("\u0049\u0054",_gdbcd .IT );_bfb .SetIfNotNil ("\u004c\u004c\u004f",_gdbcd .LLO );_bfb .SetIfNotNil ("\u0043\u0050",_gdbcd .CP );_bfb .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_gdbcd .Measure ); _bfb .SetIfNotNil ("\u0043\u004f",_gdbcd .CO );return _ebgfc ;}; // NewPdfActionResetForm returns a new "reset form" action. func NewPdfActionResetForm ()*PdfActionResetForm {_gaf :=NewPdfAction ();_gb :=&PdfActionResetForm {};_gb .PdfAction =_gaf ;_gaf .SetContext (_gb );return _gb ;};func (_afgf *PdfWriter )makeOffSetReference (_abccb int64 ){_dfag :=_f .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_abccb ); _afgf .writeString (_dfag );_afgf .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");}; // AddPages adds pages to be appended to the end of the source PDF. func (_afbee *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_abee :=range pages {_abee =_abee .Duplicate ();_cceebc (_abee );_afbee ._beac =append (_afbee ._beac ,_abee );};}; // SetAlpha sets the alpha layer for the image. func (_egbdc *Image )SetAlpha (alpha []byte ){_egbdc ._fgggb =alpha }; // Add appends a top level outline item to the outline. func (_eagbe *Outline )Add (item *OutlineItem ){_eagbe .Entries =append (_eagbe .Entries ,item )}; // GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject. func (_bfbbe *PdfPage )GetPageAsIndirectObject ()*_egg .PdfIndirectObject {return _bfbbe ._dfee }; // PdfBorderEffect represents a PDF border effect. type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;}; // LTV represents an LTV (Long-Term Validation) client. It is used to LTV // enable signatures by adding validation and revocation data (certificate, // OCSP and CRL information) to the DSS dictionary of a PDF document. // // LTV is added through the DSS by: // - Adding certificates, OCSP and CRL information in the global scope of the // DSS. The global data is used for validating any of the signatures present // in the document. // - Adding certificates, OCSP and CRL information for a single signature, // through an entry in the VRI dictionary of the DSS. The added data is used // for validating that particular signature only. This is the recommended // method for adding validation data for a signature. However, this is not // is not possible in the same revision the signature is applied. Validation // data for a signature is added based on the Contents entry of the signature, // which is known only after the revision is written. Even if the Contents // are known (e.g. when signing externally), updating the DSS at that point // would invalidate the calculated signature. As a result, if adding LTV // in the same revision is a requirement, use the first method. // See LTV.EnableChain. // The client applies both methods, when possible. // // If `LTV.SkipExisting` is set to true (the default), validations are // not added for signatures which are already present in the VRI entry of the // document's DSS dictionary. type LTV struct{ // CertClient is the client used to retrieve certificates. CertClient *_gfa .CertClient ; // OCSPClient is the client used to retrieve OCSP validation information. OCSPClient *_gfa .OCSPClient ; // CRLClient is the client used to retrieve CRL validation information. CRLClient *_gfa .CRLClient ; // SkipExisting specifies whether existing signature validations // should be skipped. SkipExisting bool ;_dbdga *PdfAppender ;_cbbab *DSS ;}; // SetDecode sets the decode image float slice. func (_dffdc *Image )SetDecode (decode []float64 ){_dffdc ._abfae =decode }; // PdfAnnotationRichMedia represents Rich Media annotations. type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _egg .PdfObject ;RichMediaContent _egg .PdfObject ;}; // NewLTV returns a new LTV client. func NewLTV (appender *PdfAppender )(*LTV ,error ){_fcabe :=appender .Reader .DSS ;if _fcabe ==nil {_fcabe =NewDSS ();};if _gbba :=_fcabe .generateHashMaps ();_gbba !=nil {return nil ,_gbba ;};return <V {CertClient :_gfa .NewCertClient (),OCSPClient :_gfa .NewOCSPClient (),CRLClient :_gfa .NewCRLClient (),SkipExisting :true ,_dbdga :appender ,_cbbab :_fcabe },nil ; };func _edbaa (_daeac _egg .PdfObject )(*PdfShading ,error ){_ggacb :=&PdfShading {};var _cedbe *_egg .PdfObjectDictionary ;if _eefce ,_gdcdd :=_egg .GetIndirect (_daeac );_gdcdd {_ggacb ._cfdbd =_eefce ;_dgffdd ,_aggee :=_eefce .PdfObject .(*_egg .PdfObjectDictionary ); if !_aggee {_bag .Log .Debug ("\u004f\u0062\u006a\u0065c\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074i\u006f\u006e\u0061\u0072\u0079\u0020\u0074y\u0070\u0065");return nil ,_egg .ErrTypeError ;};_cedbe =_dgffdd ;}else if _eeecb ,_gagcf :=_egg .GetStream (_daeac ); _gagcf {_ggacb ._cfdbd =_eeecb ;_cedbe =_eeecb .PdfObjectDictionary ;}else if _dbfafc ,_eeffb :=_egg .GetDict (_daeac );_eeffb {_ggacb ._cfdbd =_dbfafc ;_cedbe =_dbfafc ;}else {_bag .Log .Debug ("O\u0062\u006a\u0065\u0063\u0074\u0020t\u0079\u0070\u0065\u0020\u0075\u006e\u0065\u0078\u0070e\u0063\u0074\u0065d\u0020(\u0025\u0054\u0029",_daeac ); return nil ,_egg .ErrTypeError ;};if _cedbe ==nil {_bag .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_gd .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067"); };_daeac =_cedbe .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _daeac ==nil {_bag .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065\u0064\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020\u0074\u0079\u0070\u0065\u0020\u006d\u0069\u0073si\u006e\u0067"); return nil ,ErrRequiredAttributeMissing ;};_daeac =_egg .TraceToDirectObject (_daeac );_fgdff ,_gdee :=_daeac .(*_egg .PdfObjectInteger );if !_gdee {_bag .Log .Debug ("\u0049\u006e\u0076al\u0069\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066o\u0072 \u0073h\u0061d\u0069\u006e\u0067\u0020\u0074\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029",_daeac ); return nil ,_egg .ErrTypeError ;};if *_fgdff < 1||*_fgdff > 7{_bag .Log .Debug ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020\u0074\u0079\u0070\u0065\u002c\u0020\u006e\u006ft\u0020\u0031\u002d\u0037\u0020(\u0067\u006ft\u0020\u0025\u0064\u0029",*_fgdff ); return nil ,_egg .ErrTypeError ;};_ggacb .ShadingType =_fgdff ;_daeac =_cedbe .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _daeac ==nil {_bag .Log .Debug ("\u0052\u0065\u0071\u0075\u0069\u0072e\u0064\u0020\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065\u0020e\u006e\u0074\u0072\u0079\u0020\u006d\u0069s\u0073\u0069\u006e\u0067"); return nil ,ErrRequiredAttributeMissing ;};_gcde ,_efcd :=NewPdfColorspaceFromPdfObject (_daeac );if _efcd !=nil {_bag .Log .Debug ("\u0046\u0061i\u006c\u0065\u0064\u0020\u006c\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065: \u0025\u0076",_efcd ); return nil ,_efcd ;};_ggacb .ColorSpace =_gcde ;_daeac =_cedbe .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _daeac !=nil {_daeac =_egg .TraceToDirectObject (_daeac );_cffcdc ,_daeacd :=_daeac .(*_egg .PdfObjectArray );if !_daeacd {_bag .Log .Debug ("\u0042\u0061\u0063\u006b\u0067r\u006f\u0075\u006e\u0064\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062e\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0062\u0079\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_daeac ); return nil ,_egg .ErrTypeError ;};_ggacb .Background =_cffcdc ;};_daeac =_cedbe .Get ("\u0042\u0042\u006f\u0078");if _daeac !=nil {_daeac =_egg .TraceToDirectObject (_daeac );_bacgg ,_affag :=_daeac .(*_egg .PdfObjectArray );if !_affag {_bag .Log .Debug ("\u0042\u0061\u0063\u006b\u0067r\u006f\u0075\u006e\u0064\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062e\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0062\u0079\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_daeac ); return nil ,_egg .ErrTypeError ;};_ebacf ,_cbece :=NewPdfRectangle (*_bacgg );if _cbece !=nil {_bag .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_cbece );return nil ,_cbece ;};_ggacb .BBox =_ebacf ;};_daeac =_cedbe .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s"); if _daeac !=nil {_daeac =_egg .TraceToDirectObject (_daeac );_aceda ,_bafgf :=_daeac .(*_egg .PdfObjectBool );if !_bafgf {_bag .Log .Debug ("A\u006e\u0074\u0069\u0041\u006c\u0069\u0061\u0073\u0020i\u006e\u0076\u0061\u006c\u0069\u0064\u0020ty\u0070\u0065\u002c\u0020s\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020bo\u006f\u006c \u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_daeac ); return nil ,_egg .ErrTypeError ;};_ggacb .AntiAlias =_aceda ;};switch *_fgdff {case 1:_gbfef ,_aacfg :=_bdabg (_cedbe );if _aacfg !=nil {return nil ,_aacfg ;};_gbfef .PdfShading =_ggacb ;_ggacb ._fagfe =_gbfef ;return _ggacb ,nil ;case 2:_eedac ,_bcgfc :=_dbefa (_cedbe ); if _bcgfc !=nil {return nil ,_bcgfc ;};_eedac .PdfShading =_ggacb ;_ggacb ._fagfe =_eedac ;return _ggacb ,nil ;case 3:_efecg ,_cbcc :=_ebafc (_cedbe );if _cbcc !=nil {return nil ,_cbcc ;};_efecg .PdfShading =_ggacb ;_ggacb ._fagfe =_efecg ;return _ggacb ,nil ; case 4:_gffeg ,_eeffgg :=_fccda (_cedbe );if _eeffgg !=nil {return nil ,_eeffgg ;};_gffeg .PdfShading =_ggacb ;_ggacb ._fagfe =_gffeg ;return _ggacb ,nil ;case 5:_aedcg ,_bedge :=_ggaeg (_cedbe );if _bedge !=nil {return nil ,_bedge ;};_aedcg .PdfShading =_ggacb ; _ggacb ._fagfe =_aedcg ;return _ggacb ,nil ;case 6:_ecgcb ,_ffedbb :=_efdgd (_cedbe );if _ffedbb !=nil {return nil ,_ffedbb ;};_ecgcb .PdfShading =_ggacb ;_ggacb ._fagfe =_ecgcb ;return _ggacb ,nil ;case 7:_eceafd ,_fdgag :=_bdbba (_cedbe );if _fdgag !=nil {return nil ,_fdgag ; };_eceafd .PdfShading =_ggacb ;_ggacb ._fagfe =_eceafd ;return _ggacb ,nil ;};return nil ,_gd .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");}; // String returns a string describing the font descriptor. func (_bfgcc *PdfFontDescriptor )String ()string {var _gebfc []string ;if _bfgcc .FontName !=nil {_gebfc =append (_gebfc ,_bfgcc .FontName .String ());};if _bfgcc .FontFamily !=nil {_gebfc =append (_gebfc ,_bfgcc .FontFamily .String ());};if _bfgcc .fontFile !=nil {_gebfc =append (_gebfc ,_bfgcc .fontFile .String ()); };if _bfgcc ._eccg !=nil {_gebfc =append (_gebfc ,_bfgcc ._eccg .String ());};_gebfc =append (_gebfc ,_f .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_bfgcc .FontFile3 !=nil ));return _f .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_fc .Join (_gebfc ,"\u002c\u0020")); }; // ColorToRGB converts a CMYK32 color to an RGB color. func (_fege *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_aeggf ,_cffd :=color .(*PdfColorDeviceCMYK );if !_cffd {_bag .Log .Debug ("I\u006e\u0070\u0075\u0074\u0020\u0063o\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0064e\u0076\u0069\u0063e\u0020c\u006d\u0079\u006b"); return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cgb :=_aeggf .C ();_gage :=_aeggf .M ();_cgef :=_aeggf .Y ();_aacd :=_aeggf .K ();_cgb =_cgb *(1-_aacd )+_aacd ;_gage =_gage *(1-_aacd )+_aacd ; _cgef =_cgef *(1-_aacd )+_aacd ;_eaff :=1-_cgb ;_bdbag :=1-_gage ;_egcb :=1-_cgef ;return NewPdfColorDeviceRGB (_eaff ,_bdbag ,_egcb ),nil ;}; // GetCatalogMarkInfo gets catalog MarkInfo object. func (_fade *PdfReader )GetCatalogMarkInfo ()(_egg .PdfObject ,bool ){if _fade ._eacf ==nil {return nil ,false ;};_cbdgea :=_fade ._eacf .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _cbdgea ,_cbdgea !=nil ;};func (_cfbg *PdfReader )newPdfAnnotationLineFromDict (_efef *_egg .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_beb :=PdfAnnotationLine {}; _geb ,_fcgf :=_cfbg .newPdfAnnotationMarkupFromDict (_efef );if _fcgf !=nil {return nil ,_fcgf ;};_beb .PdfAnnotationMarkup =_geb ;_beb .L =_efef .Get ("\u004c");_beb .BS =_efef .Get ("\u0042\u0053");_beb .LE =_efef .Get ("\u004c\u0045");_beb .IC =_efef .Get ("\u0049\u0043"); _beb .LL =_efef .Get ("\u004c\u004c");_beb .LLE =_efef .Get ("\u004c\u004c\u0045");_beb .Cap =_efef .Get ("\u0043\u0061\u0070");_beb .IT =_efef .Get ("\u0049\u0054");_beb .LLO =_efef .Get ("\u004c\u004c\u004f");_beb .CP =_efef .Get ("\u0043\u0050");_beb .Measure =_efef .Get ("\u004de\u0061\u0073\u0075\u0072\u0065"); _beb .CO =_efef .Get ("\u0043\u004f");return &_beb ,nil ;};func _cbfde (_dcbf *_egg .PdfObjectDictionary ,_eacgf *fontCommon )(*pdfCIDFontType0 ,error ){if _eacgf ._ebdf !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_bag .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0046\u006fn\u0074\u0020\u0053u\u0062\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020CI\u0044\u0046\u006fn\u0074\u0054y\u0070\u0065\u0030\u002e\u0020\u0066o\u006e\u0074=\u0025\u0073",_eacgf ); return nil ,_egg .ErrRangeError ;};_cedd :=_caafc (_eacgf );_deffd ,_bgab :=_egg .GetDict (_dcbf .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_bgab {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043I\u0044\u0053\u0079st\u0065\u006d\u0049\u006e\u0066\u006f \u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u002e\u0020\u0066\u006f\u006e\u0074=\u0025\u0073",_eacgf ); return nil ,ErrRequiredAttributeMissing ;};_cedd .CIDSystemInfo =_deffd ;_cedd .DW =_dcbf .Get ("\u0044\u0057");_cedd .W =_dcbf .Get ("\u0057");_cedd .DW2 =_dcbf .Get ("\u0044\u0057\u0032");_cedd .W2 =_dcbf .Get ("\u0057\u0032");_cedd ._afdcf =1000.0;if _bacd ,_fgaeda :=_egg .GetNumberAsFloat (_cedd .DW ); _fgaeda ==nil {_cedd ._afdcf =_bacd ;};_ffef ,_faebd :=_babef (_cedd .W );if _faebd !=nil {return nil ,_faebd ;};if _ffef ==nil {_ffef =map[_ef .CharCode ]float64 {};};_cedd ._decd =_ffef ;return _cedd ,nil ;};func (_cgbfb *fontFile )parseASCIIPart (_egegc []byte )error {if len (_egegc )< 2||string (_egegc [:2])!="\u0025\u0021"{return _gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0074a\u0072\u0074\u0020\u006f\u0066\u0020\u0041S\u0043\u0049\u0049\u0020\u0073\u0065\u0067\u006d\u0065\u006e\u0074"); };_badaf ,_dgddd ,_ggeg :=_cgdf (_egegc );if _ggeg !=nil {return _ggeg ;};_gcge :=_dead (_badaf );_cgbfb ._ebfa =_gcge ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _cgbfb ._ebfa ==""{_bag .Log .Debug ("\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0020\u0068a\u0073\u0020\u006e\u006f\u0020\u002f\u0046\u006f\u006e\u0074N\u0061\u006d\u0065"); };if _dgddd !=""{_fabd ,_bgddc :=_dadge (_dgddd );if _bgddc !=nil {return _bgddc ;};_abfdc ,_bgddc :=_ef .NewCustomSimpleTextEncoder (_fabd ,nil );if _bgddc !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004fR\u0020\u003a\u0055\u004e\u004b\u004e\u004f\u0057\u004e\u0020G\u004cY\u0050\u0048\u003a\u0020\u0065\u0072\u0072=\u0025\u0076",_bgddc ); return nil ;};_cgbfb ._gdcd =_abfdc ;};return nil ;};func (_gbb *PdfReader )newPdfActionGotoFromDict (_fec *_egg .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_fec .Get ("\u0044")},nil ;}; // NewCompositePdfFontFromTTF loads a composite TTF font. Composite fonts can // be used to represent unicode fonts which can have multi-byte character codes, representing a wide // range of values. They are often used for symbolic languages, including Chinese, Japanese and Korean. // It is represented by a Type0 Font with an underlying CIDFontType2 and an Identity-H encoding map. // TODO: May be extended in the future to support a larger variety of CMaps and vertical fonts. // NOTE: For simple fonts, use NewPdfFontFromTTF. func NewCompositePdfFontFromTTF (r _dag .ReadSeeker )(*PdfFont ,error ){_gcfbg ,_acfg :=_ac .ReadAll (r );if _acfg !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065 \u0074\u006f\u0020\u0072\u0065\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074s\u003a\u0020\u0025\u0076",_acfg ); return nil ,_acfg ;};_dfbe ,_acfg :=_bgd .TtfParse (_dd .NewReader (_gcfbg ));if _acfg !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0077\u0068\u0069\u006c\u0065\u0020\u006c\u006f\u0061\u0064\u0069\u006e\u0067 \u0074\u0074\u0066\u0020\u0066\u006f\u006et\u003a\u0020\u0025\u0076",_acfg ); return nil ,_acfg ;};_aedg :=&pdfCIDFontType2 {fontCommon :fontCommon {_ebdf :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_egg .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_dfbe .Widths )<=0{return nil ,_gd .New ("\u0045\u0052\u0052O\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065 \u0028\u0057\u0069\u0064\u0074\u0068\u0073\u0029"); };_egdb :=1000.0/float64 (_dfbe .UnitsPerEm );_eabec :=_egdb *float64 (_dfbe .Widths [0]);_dcagd :=make (map[rune ]int );_fccfd :=make (map[_bgd .GID ]int );_edcf :=_bgd .GID (len (_dfbe .Widths ));for _fcbea ,_aedgc :=range _dfbe .Chars {if _aedgc > _edcf -1{continue ; };_fccage :=int (_egdb *float64 (_dfbe .Widths [_aedgc ]));_dcagd [_fcbea ]=_fccage ;_fccfd [_aedgc ]=_fccage ;};_aedg ._beec =_dcagd ;_aedg .DW =_egg .MakeInteger (int64 (_eabec ));_fbfdb :=_baff (_fccfd ,uint16 (_edcf ));_aedg .W =_egg .MakeIndirectObject (_fbfdb ); _fadgd :=_egg .MakeDict ();_fadgd .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_egg .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_fadgd .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_egg .MakeString ("\u0041\u0064\u006fb\u0065")); _fadgd .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_egg .MakeInteger (0));_aedg .CIDSystemInfo =_fadgd ;_ddbd :=&PdfFontDescriptor {FontName :_egg .MakeName (_dfbe .PostScriptName ),Ascent :_egg .MakeFloat (_egdb *float64 (_dfbe .TypoAscender )),Descent :_egg .MakeFloat (_egdb *float64 (_dfbe .TypoDescender )),CapHeight :_egg .MakeFloat (_egdb *float64 (_dfbe .CapHeight )),FontBBox :_egg .MakeArrayFromFloats ([]float64 {_egdb *float64 (_dfbe .Xmin ),_egdb *float64 (_dfbe .Ymin ),_egdb *float64 (_dfbe .Xmax ),_egdb *float64 (_dfbe .Ymax )}),ItalicAngle :_egg .MakeFloat (_dfbe .ItalicAngle ),MissingWidth :_egg .MakeFloat (_eabec )}; _bfea ,_acfg :=_egg .MakeStream (_gcfbg ,_egg .NewFlateEncoder ());if _acfg !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074o\u0020m\u0061\u006b\u0065\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020\u0025\u0076",_acfg ); return nil ,_acfg ;};_bfea .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_egg .MakeInteger (int64 (len (_gcfbg ))));_ddbd .FontFile2 =_bfea ;if _dfbe .Bold {_ddbd .StemV =_egg .MakeInteger (120);}else {_ddbd .StemV =_egg .MakeInteger (70); };_bgdad :=_eeeef ;if _dfbe .IsFixedPitch {_bgdad |=_ebaa ;};if _dfbe .ItalicAngle !=0{_bgdad |=_ggcggf ;};_ddbd .Flags =_egg .MakeInteger (int64 (_bgdad ));_aedg ._dgfdc =_dfbe .PostScriptName ;_aedg ._bgacg =_ddbd ;_eddeb :=pdfFontType0 {fontCommon :fontCommon {_ebdf :"\u0054\u0079\u0070e\u0030",_dgfdc :_dfbe .PostScriptName },DescendantFont :&PdfFont {_edde :_aedg },Encoding :_egg .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_bfddc :_dfbe .NewEncoder ()}; if len (_dfbe .Chars )> 0{_aeacce :=make (map[_ga .CharCode ]rune ,len (_dfbe .Chars ));for _edeae ,_fcded :=range _dfbe .Chars {_efbb :=_ga .CharCode (_fcded );if _cceag ,_agfa :=_aeacce [_efbb ];!_agfa ||(_agfa &&_cceag > _edeae ){_aeacce [_efbb ]=_edeae ; };};_eddeb ._bfbgf =_ga .NewToUnicodeCMap (_aeacce );};_cbdge :=PdfFont {_edde :&_eddeb };return &_cbdge ,nil ;}; // GetContainingPdfObject returns the container of the outline (indirect object). func (_eggf *PdfOutline )GetContainingPdfObject ()_egg .PdfObject {return _eggf ._egdd }; // GetCatalogMetadata gets the catalog defined XMP Metadata. func (_gfece *PdfReader )GetCatalogMetadata ()(_egg .PdfObject ,bool ){if _gfece ._eacf ==nil {return nil ,false ;};_bbfe :=_gfece ._eacf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _bbfe ,_bbfe !=nil ;}; // Set sets the colorspace corresponding to key. Add to Names if not set. func (_ebcfc *PdfPageResourcesColorspaces )Set (key _egg .PdfObjectName ,val PdfColorspace ){if _ ,_eedgb :=_ebcfc .Colorspaces [string (key )];!_eedgb {_ebcfc .Names =append (_ebcfc .Names ,string (key ));};_ebcfc .Colorspaces [string (key )]=val ;}; // R returns the value of the red component of the color. func (_egcfa *PdfColorDeviceRGB )R ()float64 {return _egcfa [0]}; // NewPdfColorspaceCalGray returns a new CalGray colorspace object. func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_gfgeg :=&PdfColorspaceCalGray {};_gfgeg .BlackPoint =[]float64 {0.0,0.0,0.0};_gfgeg .Gamma =1;return _gfgeg ;}; // SetFilter sets compression filter. Decodes with current filter sets and // encodes the data with the new filter. func (_degbd *XObjectImage )SetFilter (encoder _egg .StreamEncoder )error {_cgcbc :=_degbd .Stream ;_ccaab ,_dgceb :=_degbd .Filter .DecodeBytes (_cgcbc );if _dgceb !=nil {return _dgceb ;};_degbd .Filter =encoder ;encoder .UpdateParams (_degbd .getParamsDict ()); _cgcbc ,_dgceb =encoder .EncodeBytes (_ccaab );if _dgceb !=nil {return _dgceb ;};_degbd .Stream =_cgcbc ;return nil ;};func (_cdf *PdfReader )newPdfAnnotationPolygonFromDict (_cgae *_egg .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_gfac :=PdfAnnotationPolygon {}; _fbbf ,_aged :=_cdf .newPdfAnnotationMarkupFromDict (_cgae );if _aged !=nil {return nil ,_aged ;};_gfac .PdfAnnotationMarkup =_fbbf ;_gfac .Vertices =_cgae .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_gfac .LE =_cgae .Get ("\u004c\u0045"); _gfac .BS =_cgae .Get ("\u0042\u0053");_gfac .IC =_cgae .Get ("\u0049\u0043");_gfac .BE =_cgae .Get ("\u0042\u0045");_gfac .IT =_cgae .Get ("\u0049\u0054");_gfac .Measure =_cgae .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_gfac ,nil ;}; // GetDocMDPPermission returns the DocMDP level of the restrictions func (_bagab *PdfSignature )GetDocMDPPermission ()(_be .DocMDPPermission ,bool ){for _ ,_deafb :=range _bagab .Reference .Elements (){if _ggdgbe ,_efgae :=_egg .GetDict (_deafb );_efgae {if _cccg ,_bebbd :=_egg .GetNameVal (_ggdgbe .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064")); _bebbd &&_cccg =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _eface ,_cdcecf :=_egg .GetDict (_ggdgbe .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_cdcecf {if P ,_bbcc :=_egg .GetIntVal (_eface .Get ("\u0050")); _bbcc {return _be .DocMDPPermission (P ),true ;};};};};};return 0,false ;};var _ pdfFont =(*pdfCIDFontType0 )(nil ); // GetContainingPdfObject returns the container of the image object (indirect object). func (_eagea *XObjectImage )GetContainingPdfObject ()_egg .PdfObject {return _eagea ._gefbe };func _eegd (_effdc []byte )bool {if len (_effdc )< 4{return true ;};for _cdeac :=range _effdc [:4]{_faggd :=rune (_cdeac );if !_ad .Is (_ad .ASCII_Hex_Digit ,_faggd )&&!_ad .IsSpace (_faggd ){return true ; };};return false ;}; // SetPatternByName sets a pattern resource specified by keyName. func (_abgg *PdfPageResources )SetPatternByName (keyName _egg .PdfObjectName ,pattern _egg .PdfObject )error {if _abgg .Pattern ==nil {_abgg .Pattern =_egg .MakeDict ();};_fdde ,_ebbaf :=_abgg .Pattern .(*_egg .PdfObjectDictionary );if !_ebbaf {return _egg .ErrTypeError ; };_fdde .Set (keyName ,pattern );return nil ;}; // IsTiling specifies if the pattern is a tiling pattern. func (_bgbb *PdfPattern )IsTiling ()bool {return _bgbb .PatternType ==1};func (_bcfcc *PdfAcroForm )filteredFields (_cfccg FieldFilterFunc ,_cbdgg bool )[]*PdfField {if _bcfcc ==nil {return nil ;};return _eeceg (_bcfcc .Fields ,_cfccg ,_cbdgg );}; // GetPageDict converts the Page to a PDF object dictionary. func (_caeg *PdfPage )GetPageDict ()*_egg .PdfObjectDictionary {_bdeaa :=_caeg ._fgfd ;_bdeaa .Clear ();_bdeaa .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0050\u0061\u0067\u0065"));_bdeaa .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_caeg .Parent ); if _caeg .LastModified !=nil {_bdeaa .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_caeg .LastModified .ToPdfObject ());};if _caeg .Resources !=nil {_bdeaa .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_caeg .Resources .ToPdfObject ()); };if _caeg .CropBox !=nil {_bdeaa .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_caeg .CropBox .ToPdfObject ());};if _caeg .MediaBox !=nil {_bdeaa .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_caeg .MediaBox .ToPdfObject ());};if _caeg .BleedBox !=nil {_bdeaa .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_caeg .BleedBox .ToPdfObject ()); };if _caeg .TrimBox !=nil {_bdeaa .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_caeg .TrimBox .ToPdfObject ());};if _caeg .ArtBox !=nil {_bdeaa .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_caeg .ArtBox .ToPdfObject ());};_bdeaa .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_caeg .BoxColorInfo ); _bdeaa .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_caeg .Contents );if _caeg .Rotate !=nil {_bdeaa .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_egg .MakeInteger (*_caeg .Rotate ));};_bdeaa .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_caeg .Group ); _bdeaa .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_caeg .Thumb );_bdeaa .SetIfNotNil ("\u0042",_caeg .B );_bdeaa .SetIfNotNil ("\u0044\u0075\u0072",_caeg .Dur );_bdeaa .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_caeg .Trans );_bdeaa .SetIfNotNil ("\u0041\u0041",_caeg .AA ); _bdeaa .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_caeg .Metadata );_bdeaa .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_caeg .PieceInfo );_bdeaa .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_caeg .StructParents ); _bdeaa .SetIfNotNil ("\u0049\u0044",_caeg .ID );_bdeaa .SetIfNotNil ("\u0050\u005a",_caeg .PZ );_bdeaa .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_caeg .SeparationInfo );_bdeaa .SetIfNotNil ("\u0054\u0061\u0062\u0073",_caeg .Tabs ); _bdeaa .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_caeg .TemplateInstantiated );_bdeaa .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_caeg .PresSteps );_bdeaa .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_caeg .UserUnit ); _bdeaa .SetIfNotNil ("\u0056\u0050",_caeg .VP );if _caeg ._bcce !=nil {_fcggg :=_egg .MakeArray ();for _ ,_caag :=range _caeg ._bcce {if _daecg :=_caag .GetContext ();_daecg !=nil {_fcggg .Append (_daecg .ToPdfObject ());}else {_fcggg .Append (_caag .ToPdfObject ()); };};if _fcggg .Len ()> 0{_bdeaa .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_fcggg );};}else if _caeg .Annots !=nil {_bdeaa .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_caeg .Annots );};return _bdeaa ;}; // GetContext returns the action context which contains the specific type-dependent context. // The context represents the subaction. func (_gda *PdfAction )GetContext ()PdfModel {if _gda ==nil {return nil ;};return _gda ._abb ;}; // ReplacePage replaces the original page to a new page. func (_ggde *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_dffg :=pageNum -1;for _bcbb :=range _ggde ._beac {if _bcbb ==_dffg {_afff :=page .Duplicate ();_cceebc (_afff );_ggde ._beac [_bcbb ]=_afff ;};};}; // NewPdfAnnotationCaret returns a new caret annotation. func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_bfe :=NewPdfAnnotation ();_edge :=&PdfAnnotationCaret {};_edge .PdfAnnotation =_bfe ;_edge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bfe .SetContext (_edge );return _edge ;}; // NewStandardPdfOutputIntent creates a new standard PdfOutputIntent. func NewStandardPdfOutputIntent (outputCondition ,outputConditionIdentifier ,registryName string ,destOutputProfile []byte ,colorComponents int )*PdfOutputIntent {return &PdfOutputIntent {Type :"\u004f\u0075\u0074p\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074",OutputCondition :outputCondition ,OutputConditionIdentifier :outputConditionIdentifier ,RegistryName :registryName ,DestOutputProfile :destOutputProfile ,ColorComponents :colorComponents ,_gdaaa :_egg .MakeDict ()}; }; // NewPdfActionHide returns a new "hide" action. func NewPdfActionHide ()*PdfActionHide {_gc :=NewPdfAction ();_gac :=&PdfActionHide {};_gac .PdfAction =_gc ;_gc .SetContext (_gac );return _gac ;}; // ToPdfObject returns the button field dictionary within an indirect object. func (_ccdg *PdfFieldButton )ToPdfObject ()_egg .PdfObject {_ccdg .PdfField .ToPdfObject ();_ffba :=_ccdg ._agef ;_eafc :=_ffba .PdfObject .(*_egg .PdfObjectDictionary );_eafc .Set ("\u0046\u0054",_egg .MakeName ("\u0042\u0074\u006e"));if _ccdg .Opt !=nil {_eafc .Set ("\u004f\u0070\u0074",_ccdg .Opt ); };return _ffba ;}; // SetReason sets the `Reason` field of the signature. func (_caec *PdfSignature )SetReason (reason string ){_caec .Reason =_egg .MakeString (reason )}; // ToGray returns a PdfColorDeviceGray color based on the current RGB color. func (_aecf *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_gfgf :=0.3*_aecf .R ()+0.59*_aecf .G ()+0.11*_aecf .B ();_gfgf =_dgb .Min (_dgb .Max (_gfgf ,0.0),1.0);return NewPdfColorDeviceGray (_gfgf );}; // Insert adds an outline item as a child of the current outline item, // at the specified index. func (_eabcg *OutlineItem )Insert (index uint ,item *OutlineItem ){_egee :=uint (len (_eabcg .Entries ));if index > _egee {index =_egee ;};_eabcg .Entries =append (_eabcg .Entries [:index ],append ([]*OutlineItem {item },_eabcg .Entries [index :]...)...); }; // GetContainingPdfObject returns the container of the shading object (indirect object). func (_eacb *PdfShading )GetContainingPdfObject ()_egg .PdfObject {return _eacb ._cfdbd }; // BorderEffect represents a border effect (Table 167 p. 395). type BorderEffect int ; // GetNumPages returns the number of pages in the document. func (_eeffg *PdfReader )GetNumPages ()(int ,error ){if _eeffg ._dafgab .GetCrypter ()!=nil &&!_eeffg ._dafgab .IsAuthenticated (){return 0,_f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074"); };return len (_eeffg ._abgbc ),nil ;};type pdfFontSimple struct{fontCommon ;_efde *_egg .PdfIndirectObject ;_babec map[_ef .CharCode ]float64 ;_cbdegf _ef .TextEncoder ;_cdee _ef .TextEncoder ;_dbbfc *PdfFontDescriptor ; // Encoding is subject to limitations that are described in 9.6.6, "Character Encoding". // BaseFont is derived differently. FirstChar _egg .PdfObject ;LastChar _egg .PdfObject ;Widths _egg .PdfObject ;Encoding _egg .PdfObject ;_dddd *_bgd .RuneCharSafeMap ;}; // HasExtGState checks if ExtGState name is available. func (_ecaca *PdfPage )HasExtGState (name _egg .PdfObjectName )bool {if _ecaca .Resources ==nil {return false ;};if _ecaca .Resources .ExtGState ==nil {return false ;};_efca ,_fggfa :=_egg .TraceToDirectObject (_ecaca .Resources .ExtGState ).(*_egg .PdfObjectDictionary ); if !_fggfa {_bag .Log .Debug ("\u0045\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0045\u0078t\u0047\u0053\u0074\u0061\u0074\u0065\u0020\u0064i\u0063t\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u003a\u0020\u0025\u0076",_egg .TraceToDirectObject (_ecaca .Resources .ExtGState )); return false ;};_afdba :=_efca .Get (name );_agefa :=_afdba !=nil ;return _agefa ;};func (_dbba *PdfReader )newPdfActionJavaScriptFromDict (_abac *_egg .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_abac .Get ("\u004a\u0053")},nil ; }; // SetFlag sets the flag for the field. func (_bbdgga *PdfField )SetFlag (flag FieldFlag ){_bbdgga .Ff =_egg .MakeInteger (int64 (flag ))}; // PdfAnnotationCaret represents Caret annotations. // (Section 12.5.6.11). type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _egg .PdfObject ;Sy _egg .PdfObject ;}; // PdfAnnotationPolygon represents Polygon annotations. // (Section 12.5.6.9). type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _egg .PdfObject ;LE _egg .PdfObject ;BS _egg .PdfObject ;IC _egg .PdfObject ;BE _egg .PdfObject ;IT _egg .PdfObject ;Measure _egg .PdfObject ;}; // PdfActionLaunch represents a launch action. type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _egg .PdfObject ;Mac _egg .PdfObject ;Unix _egg .PdfObject ;NewWindow _egg .PdfObject ;}; // ToPdfObject implements interface PdfModel. func (_fbcg *PdfAnnotationSquare )ToPdfObject ()_egg .PdfObject {_fbcg .PdfAnnotation .ToPdfObject ();_egaf :=_fbcg ._cef ;_dgf :=_egaf .PdfObject .(*_egg .PdfObjectDictionary );if _fbcg .PdfAnnotationMarkup !=nil {_fbcg .PdfAnnotationMarkup .appendToPdfDictionary (_dgf ); };_dgf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_dgf .SetIfNotNil ("\u0042\u0053",_fbcg .BS );_dgf .SetIfNotNil ("\u0049\u0043",_fbcg .IC );_dgf .SetIfNotNil ("\u0042\u0045",_fbcg .BE ); _dgf .SetIfNotNil ("\u0052\u0044",_fbcg .RD );return _egaf ;}; // DefaultImageHandler is the default implementation of the ImageHandler using the standard go library. type DefaultImageHandler struct{}; // GetCatalogStructTreeRoot gets the catalog StructTreeRoot object. func (_cedb *PdfReader )GetCatalogStructTreeRoot ()(_egg .PdfObject ,bool ){if _cedb ._eacf ==nil {return nil ,false ;};_bdebf :=_cedb ._eacf .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return _bdebf ,_bdebf !=nil ; }; // Optimizer is the interface that performs optimization of PDF object structure for output writing. // // Optimize receives a slice of input `objects`, performs optimization, including removing, replacing objects and // output the optimized slice of objects. type Optimizer interface{Optimize (_bgbcb []_egg .PdfObject )([]_egg .PdfObject ,error );};func _geeb (_abcag *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_abcag }}; // ColorToRGB converts gray -> rgb for a single color component. func (_fcac *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_bcbf ,_afee :=color .(*PdfColorDeviceGray );if !_afee {_bag .Log .Debug ("\u0049\u006e\u0070\u0075\u0074\u0020\u0063\u006f\u006c\u006fr\u0020\u006e\u006f\u0074\u0020\u0064\u0065v\u0069\u0063\u0065\u0020\u0067\u0072\u0061\u0079\u0020\u0025\u0054",color ); return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_bcbf ),float64 (*_bcbf ),float64 (*_bcbf )),nil ;};func _ebfda (_gfed _egg .PdfObject ,_gfgeb *fontCommon )(*_ga .CMap ,error ){_cfga ,_ffeb :=_egg .GetStream (_gfed ); if !_ffeb {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0074\u006f\u0055\u006e\u0069\u0063\u006f\u0064\u0065\u0054\u006f\u0043m\u0061\u0070\u003a\u0020\u004e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0028\u0025\u0054\u0029",_gfed ); return nil ,_egg .ErrTypeError ;};_gfdfe ,_deef :=_egg .DecodeStream (_cfga );if _deef !=nil {return nil ,_deef ;};_gedaa ,_deef :=_ga .LoadCmapFromData (_gfdfe ,!_gfgeb .isCIDFont ());if _deef !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004f\u0062\u006a\u0065\u0063\u0074\u004e\u0075\u006d\u0062\u0065\u0072\u003d\u0025\u0064\u0020\u0065\u0072r=\u0025\u0076",_cfga .ObjectNumber ,_deef ); };return _gedaa ,_deef ;}; // ToPdfObject converts the font to a PDF representation. func (_abdc *pdfFontType0 )ToPdfObject ()_egg .PdfObject {if _abdc ._ebdc ==nil {_abdc ._ebdc =&_egg .PdfIndirectObject {};};_gcga :=_abdc .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_abdc ._ebdc .PdfObject =_gcga ;if _abdc .Encoding !=nil {_gcga .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_abdc .Encoding ); }else if _abdc ._bfddc !=nil {_gcga .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_abdc ._bfddc .ToPdfObject ());};if _abdc .DescendantFont !=nil {_gcga .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_egg .MakeArray (_abdc .DescendantFont .ToPdfObject ())); };return _abdc ._ebdc ;}; // ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb). func (_dffeg *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_adfa ,_aacb :=_egg .GetNumbersAsFloat (objects ); if _aacb !=nil {return nil ,_aacb ;};return _dffeg .ColorFromFloats (_adfa );}; // String returns a string representation of the field. func (_fcbac *PdfField )String ()string {if _cege ,_fbdac :=_fcbac .ToPdfObject ().(*_egg .PdfIndirectObject );_fbdac {return _f .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_fcbac ._gbdee ,_cege .PdfObject .String ());};return "";}; // GetCustomInfo returns a custom info value for the specified name. func (_ddfc *PdfInfo )GetCustomInfo (name string )*_egg .PdfObjectString {var _egfc *_egg .PdfObjectString ;if _ddfc ._eggg ==nil {return _egfc ;};if _gfce ,_bagec :=_ddfc ._eggg .Get (*_egg .MakeName (name )).(*_egg .PdfObjectString );_bagec {_egfc =_gfce ; };return _egfc ;};type pdfCIDFontType0 struct{fontCommon ;_aebag *_egg .PdfIndirectObject ;_dafeb _ef .TextEncoder ; // Table 117 – Entries in a CIDFont dictionary (page 269) // (Required) Dictionary that defines the character collection of the CIDFont. // See Table 116. CIDSystemInfo *_egg .PdfObjectDictionary ; // Glyph metrics fields (optional). DW _egg .PdfObject ;W _egg .PdfObject ;DW2 _egg .PdfObject ;W2 _egg .PdfObject ;_decd map[_ef .CharCode ]float64 ;_afdcf float64 ;}; // ToPdfObject implements interface PdfModel. func (_gcgc *PdfAnnotationText )ToPdfObject ()_egg .PdfObject {_gcgc .PdfAnnotation .ToPdfObject ();_bgfa :=_gcgc ._cef ;_adcf :=_bgfa .PdfObject .(*_egg .PdfObjectDictionary );if _gcgc .PdfAnnotationMarkup !=nil {_gcgc .PdfAnnotationMarkup .appendToPdfDictionary (_adcf ); };_adcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0054\u0065\u0078\u0074"));_adcf .SetIfNotNil ("\u004f\u0070\u0065\u006e",_gcgc .Open );_adcf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gcgc .Name );_adcf .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_gcgc .State ); _adcf .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_gcgc .StateModel );return _bgfa ;}; // Clear clears flag fl from the flag and returns the resulting flag. func (_aeff FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_aeff .Mask ()&^fl .Mask ())}; // GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton // for a button field. func (_edbg *PdfField )GetContext ()PdfModel {return _edbg ._gbdee };func _ggeed ()string {_cgag .Lock ();defer _cgag .Unlock ();if len (_cefff )> 0{return _cefff ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o"; };func (_fcc *PdfReader )newPdfActionSetOCGStateFromDict (_agd *_egg .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_agd .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_agd .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ; };func (_gedcd *PdfReader )newPdfFieldSignatureFromDict (_adgb *_egg .PdfObjectDictionary )(*PdfFieldSignature ,error ){_acbe :=&PdfFieldSignature {};_fbgb ,_abgbb :=_egg .GetIndirect (_adgb .Get ("\u0056"));if _abgbb {var _gagb error ;_acbe .V ,_gagb =_gedcd .newPdfSignatureFromIndirect (_fbgb ); if _gagb !=nil {return nil ,_gagb ;};};_acbe .Lock ,_ =_egg .GetIndirect (_adgb .Get ("\u004c\u006f\u0063\u006b"));_acbe .SV ,_ =_egg .GetIndirect (_adgb .Get ("\u0053\u0056"));return _acbe ,nil ;};type fontCommon struct{_dgfdc string ;_ebdf string ;_cbgce string ; _gdbae _egg .PdfObject ;_bfbgf *_ga .CMap ;_bgacg *PdfFontDescriptor ;_ccaae int64 ;}; // StandardApplier is the interface that performs optimization of the whole PDF document. // As a result an input document is being changed by the optimizer. // The writer than takes back all it's parts and overwrites it. // NOTE: This implementation is in experimental development state. // Keep in mind that it might change in the subsequent minor versions. type StandardApplier interface{ApplyStandard (_gcdeg *_dc .Document )error ;};func _baff (_deeb map[_bgd .GID ]int ,_gdbb uint16 )*_egg .PdfObjectArray {_bfbb :=&_egg .PdfObjectArray {};_dfff :=_bgd .GID (_gdbb );for _gddab :=_bgd .GID (0);_gddab < _dfff ; {_ccgag ,_ebgdd :=_deeb [_gddab ];if !_ebgdd {_gddab ++;continue ;};_decde :=_gddab ;for _gagbg :=_decde +1;_gagbg < _dfff ;_gagbg ++{if _dcad ,_aeae :=_deeb [_gagbg ];!_aeae ||_ccgag !=_dcad {break ;};_decde =_gagbg ;};_bfbb .Append (_egg .MakeInteger (int64 (_gddab ))); _bfbb .Append (_egg .MakeInteger (int64 (_decde )));_bfbb .Append (_egg .MakeInteger (int64 (_ccgag )));_gddab =_decde +1;};return _bfbb ;}; // GetNumComponents returns the number of color components (4 for CMYK32). func (_aeba *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};func (_ggdca *PdfWriter )getPdfVersion ()string {return _f .Sprintf ("\u0025\u0064\u002e%\u0064",_ggdca ._dacce .Major ,_ggdca ._dacce .Minor );}; // FieldFlattenOpts defines a set of options which can be used to configure // the field flattening process. type FieldFlattenOpts struct{ // FilterFunc allows filtering the form fields used in the flattening // process. If the filter function returns true, the field is flattened, // otherwise it is skipped. // If a non-terminal field is discarded, all of its children (the fields // present in the Kids array) are discarded as well. // Non-terminal fields are kept in the AcroForm if one or more of their // child fields have not been selected for flattening. // If a filter function is not provided, all form fields are flattened. FilterFunc FieldFilterFunc ; // AnnotFilterFunc allows filtering the annotations in the flattening // process. If the filter function returns true, the annotation is flattened, // otherwise it is skipped. AnnotFilterFunc AnnotFilterFunc ;}; // NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image. // If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead. func (_feeagc DefaultImageHandler )NewImageFromGoImage (goimg _cd .Image )(*Image ,error ){_afcaf ,_caad :=_eg .FromGoImage (goimg );if _caad !=nil {return nil ,_caad ;};_aecdc :=_cggba (_afcaf .Base ());return &_aecdc ,nil ;}; // SetImageHandler sets the image handler used by the package. func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling }; // PdfFieldText represents a text field where user can enter text. type PdfFieldText struct{*PdfField ;DA *_egg .PdfObjectString ;Q *_egg .PdfObjectInteger ;DS *_egg .PdfObjectString ;RV _egg .PdfObject ;MaxLen *_egg .PdfObjectInteger ;}; // DSS represents a Document Security Store dictionary. // The DSS dictionary contains both global and signature specific validation // information. The certificates and revocation data in the `Certs`, `OCSPs`, // and `CRLs` fields can be used to validate any signature in the document. // Additionally, the VRI entry contains validation data per signature. // The keys in the VRI entry are calculated as upper(hex(sha1(sig.Contents))). // The values are VRI dictionaries containing certificates and revocation // information used for validating a single signature. // See ETSI TS 102 778-4 V1.1.1 for more information. type DSS struct{_eaceg *_egg .PdfIndirectObject ;Certs []*_egg .PdfObjectStream ;OCSPs []*_egg .PdfObjectStream ;CRLs []*_egg .PdfObjectStream ;VRI map[string ]*VRI ;_gafe map[string ]*_egg .PdfObjectStream ;_gaaec map[string ]*_egg .PdfObjectStream ;_eeecd map[string ]*_egg .PdfObjectStream ; }; // Evaluate runs the function. Input is [x1 x2 x3]. func (_fcdc *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _fcdc ._aafea ==nil {_fcdc ._aafea =_cde .NewPSExecutor (_fcdc .Program );};var _afbg []_cde .PSObject ;for _ ,_bcfdg :=range xVec {_afbg =append (_afbg ,_cde .MakeReal (_bcfdg )); };_dddgf ,_abec :=_fcdc ._aafea .Execute (_afbg );if _abec !=nil {return nil ,_abec ;};_cabgdc ,_abec :=_cde .PSObjectArrayToFloat64Array (_dddgf );if _abec !=nil {return nil ,_abec ;};return _cabgdc ,nil ;}; // SubsetRegistered subsets the font to only the glyphs that have been registered by the encoder. // NOTE: This only works on fonts that support subsetting. For unsupported fonts this is a no-op, although a debug // message is emitted. Currently supported fonts are embedded Truetype CID fonts (type 0). // NOTE: Make sure to call this soon before writing (once all needed runes have been registered). // If using package creator, use its EnableFontSubsetting method instead. func (_edafc *PdfFont )SubsetRegistered ()error {switch _abeg :=_edafc ._edde .(type ){case *pdfFontType0 :_daea :=_abeg .subsetRegistered ();if _daea !=nil {_bag .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_daea ); return _daea ;};if _abeg ._ebdc !=nil {if _abeg ._bfddc !=nil {_abeg ._bfddc .ToPdfObject ();};_abeg .ToPdfObject ();};default:_bag .Log .Debug ("F\u006f\u006e\u0074\u0020\u0025\u0054 \u0064\u006f\u0065\u0073\u0020\u006eo\u0074\u0020\u0073\u0075\u0070\u0070\u006fr\u0074\u0020\u0073\u0075\u0062\u0073\u0065\u0074\u0074\u0069n\u0067",_abeg ); };return nil ;};func (_afedd *PdfReader )resolveReference (_ebfgd *_egg .PdfObjectReference )(_egg .PdfObject ,bool ,error ){_aagfd ,_eagff :=_afedd ._dafgab .ObjCache [int (_ebfgd .ObjectNumber )];if !_eagff {_bag .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_ebfgd ); _edddd ,_dcaa :=_afedd ._dafgab .LookupByReference (*_ebfgd );if _dcaa !=nil {return nil ,false ,_dcaa ;};_afedd ._dafgab .ObjCache [int (_ebfgd .ObjectNumber )]=_edddd ;return _edddd ,false ,nil ;};return _aagfd ,true ,nil ;};type fontFile struct{_ebfa string ; _eecf string ;_gdcd _ef .SimpleEncoder ;}; // PdfModel is a higher level PDF construct which can be collapsed into a PdfObject. // Each PdfModel has an underlying PdfObject and vice versa (one-to-one). // Under normal circumstances there should only be one copy of each. // Copies can be made, but care must be taken to do it properly. type PdfModel interface{ToPdfObject ()_egg .PdfObject ;GetContainingPdfObject ()_egg .PdfObject ;};func _eebf (_cefe *XObjectImage )error {if _cefe .SMask ==nil {return nil ;};_acfcb ,_baaa :=_cefe .SMask .(*_egg .PdfObjectStream );if !_baaa {_bag .Log .Debug ("\u0053\u004da\u0073\u006b\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u002a\u0050\u0064\u0066\u004f\u0062\u006a\u0065\u0063\u0074\u0053\u0074re\u0061\u006d"); return _egg .ErrTypeError ;};_bdggg :=_acfcb .PdfObjectDictionary ;_geaeb :=_bdggg .Get ("\u004d\u0061\u0074t\u0065");if _geaeb ==nil {return nil ;};_ccfa ,_gada :=_eecfg (_geaeb .(*_egg .PdfObjectArray ));if _gada !=nil {return _gada ;};_gagac :=_egg .MakeArrayFromFloats ([]float64 {_ccfa }); _bdggg .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_gagac );return nil ;}; // ToPdfObject implements interface PdfModel. func (_cdaa *PdfAnnotationRedact )ToPdfObject ()_egg .PdfObject {_cdaa .PdfAnnotation .ToPdfObject ();_gaeb :=_cdaa ._cef ;_fccf :=_gaeb .PdfObject .(*_egg .PdfObjectDictionary );_cdaa .PdfAnnotationMarkup .appendToPdfDictionary (_fccf );_fccf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074")); _fccf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_cdaa .QuadPoints );_fccf .SetIfNotNil ("\u0049\u0043",_cdaa .IC );_fccf .SetIfNotNil ("\u0052\u004f",_cdaa .RO );_fccf .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_cdaa .OverlayText ); _fccf .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_cdaa .Repeat );_fccf .SetIfNotNil ("\u0044\u0041",_cdaa .DA );_fccf .SetIfNotNil ("\u0051",_cdaa .Q );return _gaeb ;};func _eddee (_eegbf _egg .PdfObject ){_bag .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_eegbf ,_eegbf .String ()); if _cfdbge ,_faaca :=_eegbf .(*_egg .PdfObjectStream );_faaca {_cadgg ,_gfbdc :=_egg .DecodeStream (_cfdbge );if _gfbdc !=nil {_bag .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_gfbdc );return ;};_bag .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_cadgg ); }else if _ceec ,_dbgab :=_eegbf .(*_egg .PdfIndirectObject );_dbgab {_bag .Log .Debug ("\u0025\u0054\u0020%\u0076",_ceec .PdfObject ,_ceec .PdfObject );_bag .Log .Debug ("\u0025\u0073",_ceec .PdfObject .String ());};}; // CompliancePdfReader is a wrapper over PdfReader that is used for verifying if the input Pdf document matches the // compliance rules of standards like PDF/A. // NOTE: This implementation is in experimental development state. // Keep in mind that it might change in the subsequent minor versions. type CompliancePdfReader struct{*PdfReader ;_fgea _egg .ParserMetadata ;}; // ColorFromFloats returns a new PdfColor based on input color components. func (_fgfcd *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_fgfcd .GetNumComponents (){return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fcbbg ,_bbad :=_fgfcd .TintTransform .Evaluate (vals ); if _bbad !=nil {return nil ,_bbad ;};_ggbe ,_bbad :=_fgfcd .AlternateSpace .ColorFromFloats (_fcbbg );if _bbad !=nil {return nil ,_bbad ;};return _ggbe ,nil ;}; // ColorToRGB only converts color used with uncolored patterns (defined in underlying colorspace). Does not go into the // pattern objects and convert those. If that is desired, needs to be done separately. See for example // grayscale conversion example in unidoc-examples repo. func (_fgadb *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_bbe ,_cceaf :=color .(*PdfColorPattern );if !_cceaf {_bag .Log .Debug ("\u0043\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0070a\u0074\u0074\u0065\u0072\u006e\u0020\u0028\u0067\u006f\u0074 \u0025\u0054\u0029",color ); return nil ,ErrTypeCheck ;};if _bbe .Color ==nil {return color ,nil ;};if _fgadb .UnderlyingCS ==nil {return nil ,_gd .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};return _fgadb .UnderlyingCS .ColorToRGB (_bbe .Color ); }; // GetNamedDestinations returns the Dests entry in the PDF catalog. // See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008). func (_fabfd *PdfReader )GetNamedDestinations ()(_egg .PdfObject ,error ){_dbdb :=_egg .ResolveReference (_fabfd ._eacf .Get ("\u0044\u0065\u0073t\u0073"));if _dbdb ==nil {return nil ,nil ;};if !_fabfd ._cede {_fggbc :=_fabfd .traverseObjectData (_dbdb ); if _fggbc !=nil {return nil ,_fggbc ;};};return _dbdb ,nil ;}; // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // components. The slice should contain three PdfObjectFloat elements representing // the L, A and B components of the color. func (_dbeb *PdfColorspaceLab )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_acfe ,_adeg :=_egg .GetNumbersAsFloat (objects ); if _adeg !=nil {return nil ,_adeg ;};return _dbeb .ColorFromFloats (_acfe );}; // GetRuneMetrics returns the character metrics for the specified rune. // A bool flag is returned to indicate whether or not the entry was found. func (_ecfd pdfCIDFontType0 )GetRuneMetrics (r rune )(_bgd .CharMetrics ,bool ){return _bgd .CharMetrics {Wx :_ecfd ._afdcf },true ;}; // ToPdfObject returns the PDF representation of the function. func (_abedc *PdfFunctionType2 )ToPdfObject ()_egg .PdfObject {_ccgad :=_egg .MakeDict ();_ccgad .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_egg .MakeInteger (2));_gbgbd :=&_egg .PdfObjectArray {};for _ ,_fdddad :=range _abedc .Domain {_gbgbd .Append (_egg .MakeFloat (_fdddad )); };_ccgad .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gbgbd );if _abedc .Range !=nil {_cbade :=&_egg .PdfObjectArray {};for _ ,_daadd :=range _abedc .Range {_cbade .Append (_egg .MakeFloat (_daadd ));};_ccgad .Set ("\u0052\u0061\u006eg\u0065",_cbade ); };if _abedc .C0 !=nil {_fggcf :=&_egg .PdfObjectArray {};for _ ,_cdeab :=range _abedc .C0 {_fggcf .Append (_egg .MakeFloat (_cdeab ));};_ccgad .Set ("\u0043\u0030",_fggcf );};if _abedc .C1 !=nil {_gbafg :=&_egg .PdfObjectArray {};for _ ,_cggbf :=range _abedc .C1 {_gbafg .Append (_egg .MakeFloat (_cggbf )); };_ccgad .Set ("\u0043\u0031",_gbafg );};_ccgad .Set ("\u004e",_egg .MakeFloat (_abedc .N ));if _abedc ._ffcfb !=nil {_abedc ._ffcfb .PdfObject =_ccgad ;return _abedc ._ffcfb ;};return _ccgad ;}; // ToPdfObject returns the PDF representation of the function. func (_fbcfa *PdfFunctionType4 )ToPdfObject ()_egg .PdfObject {_beee :=_fbcfa ._cbebd ;if _beee ==nil {_fbcfa ._cbebd =&_egg .PdfObjectStream {};_beee =_fbcfa ._cbebd ;};_deecbb :=_egg .MakeDict ();_deecbb .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_egg .MakeInteger (4)); _efgac :=&_egg .PdfObjectArray {};for _ ,_fdeca :=range _fbcfa .Domain {_efgac .Append (_egg .MakeFloat (_fdeca ));};_deecbb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_efgac );_ffec :=&_egg .PdfObjectArray {};for _ ,_aaffa :=range _fbcfa .Range {_ffec .Append (_egg .MakeFloat (_aaffa )); };_deecbb .Set ("\u0052\u0061\u006eg\u0065",_ffec );if _fbcfa ._fafff ==nil &&_fbcfa .Program !=nil {_fbcfa ._fafff =[]byte (_fbcfa .Program .String ());};_deecbb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_fbcfa ._fafff )))); _beee .Stream =_fbcfa ._fafff ;_beee .PdfObjectDictionary =_deecbb ;return _beee ;};var _efdg =_bae .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b"); // GetExtGState gets the ExtGState specified by keyName. Returns a bool // indicating whether it was found or not. func (_efdb *PdfPageResources )GetExtGState (keyName _egg .PdfObjectName )(_egg .PdfObject ,bool ){if _efdb .ExtGState ==nil {return nil ,false ;};_bfbdc ,_efbfb :=_egg .TraceToDirectObject (_efdb .ExtGState ).(*_egg .PdfObjectDictionary );if !_efbfb {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0049n\u0076\u0061\u006c\u0069\u0064 \u0045\u0078\u0074\u0047\u0053\u0074\u0061\u0074\u0065\u0020\u0065\u006e\u0074\u0072\u0079\u0020\u002d\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_efdb .ExtGState ); return nil ,false ;};if _cgdg :=_bfbdc .Get (keyName );_cgdg !=nil {return _cgdg ,true ;};return nil ,false ;}; // SetEncoder sets the encoding for the underlying font. // TODO(peterwilliams97): Change function signature to SetEncoder(encoder *textencoding.simpleEncoder). // TODO(gunnsth): Makes sense if SetEncoder is removed from the interface fonts.Font as proposed in PR #260. func (_eggd *pdfFontSimple )SetEncoder (encoder _ef .TextEncoder ){_eggd ._cbdegf =encoder };func (_fcdd *Image )resampleLowBits (_edeaf []uint32 ){_gede :=_eg .BytesPerLine (int (_fcdd .Width ),int (_fcdd .BitsPerComponent ),_fcdd .ColorComponents );_daeca :=make ([]byte ,_fcdd .ColorComponents *_gede *int (_fcdd .Height )); _bfab :=int (_fcdd .BitsPerComponent )*_fcdd .ColorComponents *int (_fcdd .Width );_aeagf :=uint8 (8);var (_bbaee ,_gaggd int ;_gdfb uint32 ;);for _gbcf :=0;_gbcf < int (_fcdd .Height );_gbcf ++{_gaggd =_gbcf *_gede ;for _acdac :=0;_acdac < _bfab ;_acdac ++{_gdfb =_edeaf [_bbaee ]; _aeagf -=uint8 (_fcdd .BitsPerComponent );_daeca [_gaggd ]|=byte (_gdfb )<<_aeagf ;if _aeagf ==0{_aeagf =8;_gaggd ++;};_bbaee ++;};};_fcdd .Data =_daeca ;};var _ pdfFont =(*pdfFontType3 )(nil ); // AcroFormNeedsRepair returns true if the document contains widget annotations // linked to fields which are not referenced in the AcroForm. The AcroForm can // be repaired using the RepairAcroForm method of the reader. func (_ecdae *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _eadb []*PdfField ;if _ecdae .AcroForm !=nil {_eadb =_ecdae .AcroForm .AllFields ();};_bgaaa :=make (map[*PdfField ]struct{},len (_eadb ));for _ ,_baab :=range _eadb {_bgaaa [_baab ]=struct{}{}; };for _ ,_fedbc :=range _ecdae .PageList {_efcae ,_ceeed :=_fedbc .GetAnnotations ();if _ceeed !=nil {return false ,_ceeed ;};for _ ,_fecac :=range _efcae {_ceaef ,_edagf :=_fecac .GetContext ().(*PdfAnnotationWidget );if !_edagf {continue ;};_eebe :=_ceaef .Field (); if _eebe ==nil {return true ,nil ;};if _ ,_gefdf :=_bgaaa [_eebe ];!_gefdf {return true ,nil ;};};};return false ,nil ;};func (_gfabe *PdfFilespec )getDict ()*_egg .PdfObjectDictionary {if _edgc ,_cbeb :=_gfabe ._fbdd .(*_egg .PdfIndirectObject );_cbeb {_adbfe ,_badab :=_edgc .PdfObject .(*_egg .PdfObjectDictionary ); if !_badab {return nil ;};return _adbfe ;}else if _abbf ,_cegaa :=_gfabe ._fbdd .(*_egg .PdfObjectDictionary );_cegaa {return _abbf ;}else {_bag .Log .Debug ("\u0054\u0072\u0079\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020F\u0069\u006c\u0065\u0073\u0070\u0065\u0063\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u006f\u0062\u006a\u0065\u0063\u0074 \u0074\u0079p\u0065\u0020(\u0025T\u0029",_gfabe ._fbdd ); return nil ;};};func _dgagb (_bafeaf []*_egg .PdfObjectStream )*_egg .PdfObjectArray {if len (_bafeaf )==0{return nil ;};_cgbc :=make ([]_egg .PdfObject ,0,len (_bafeaf ));for _ ,_fdddb :=range _bafeaf {_cgbc =append (_cgbc ,_fdddb );};return _egg .MakeArray (_cgbc ...); }; // PdfShadingPattern is a Shading patterns that provide a smooth transition between colors across an area to be painted, // i.e. color(x,y) = f(x,y) at each point. // It is a type 2 pattern (PatternType = 2). type PdfShadingPattern struct{*PdfPattern ;Shading *PdfShading ;Matrix *_egg .PdfObjectArray ;ExtGState _egg .PdfObject ;}; // GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject. func (_ebfef *modelManager )GetModelFromPrimitive (primitive _egg .PdfObject )PdfModel {model ,_bcggc :=_ebfef ._ggbg [primitive ];if !_bcggc {return nil ;};return model ;}; // PdfFontDescriptor specifies metrics and other attributes of a font and can refer to a FontFile // for embedded fonts. // 9.8 Font Descriptors (page 281) type PdfFontDescriptor struct{FontName _egg .PdfObject ;FontFamily _egg .PdfObject ;FontStretch _egg .PdfObject ;FontWeight _egg .PdfObject ;Flags _egg .PdfObject ;FontBBox _egg .PdfObject ;ItalicAngle _egg .PdfObject ;Ascent _egg .PdfObject ;Descent _egg .PdfObject ; Leading _egg .PdfObject ;CapHeight _egg .PdfObject ;XHeight _egg .PdfObject ;StemV _egg .PdfObject ;StemH _egg .PdfObject ;AvgWidth _egg .PdfObject ;MaxWidth _egg .PdfObject ;MissingWidth _egg .PdfObject ;FontFile _egg .PdfObject ;FontFile2 _egg .PdfObject ; FontFile3 _egg .PdfObject ;CharSet _egg .PdfObject ;_adfdfe int ;_eedab float64 ;*fontFile ;_eccg *_bgd .TtfType ; // Additional entries for CIDFonts Style _egg .PdfObject ;Lang _egg .PdfObject ;FD _egg .PdfObject ;CIDSet _egg .PdfObject ;_faeb *_egg .PdfIndirectObject ;}; // PageCallback callback function used in page loading // that could be used to modify the page content. // // Deprecated: will be removed in v4. Use PageProcessCallback instead. type PageCallback func (_dfadd int ,_cbbfc *PdfPage );func (_eebg *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";}; // NewPdfActionGoTo returns a new "go to" action. func NewPdfActionGoTo ()*PdfActionGoTo {_cgf :=NewPdfAction ();_egb :=&PdfActionGoTo {};_egb .PdfAction =_cgf ;_cgf .SetContext (_egb );return _egb ;};type pdfFont interface{_bgd .Font ; // ToPdfObject returns a PDF representation of the font and implements interface Model. ToPdfObject ()_egg .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;}; // C returns the value of the C component of the color. func (_ecga *PdfColorCalRGB )C ()float64 {return _ecga [2]}; // NewPdfFilespecFromObj creates and returns a new PdfFilespec object. func NewPdfFilespecFromObj (obj _egg .PdfObject )(*PdfFilespec ,error ){_fdfff :=&PdfFilespec {};var _gdff *_egg .PdfObjectDictionary ;if _cecgf ,_afbb :=_egg .GetIndirect (obj );_afbb {_fdfff ._fbdd =_cecgf ;_bcgd ,_fceb :=_egg .GetDict (_cecgf .PdfObject ); if !_fceb {_bag .Log .Debug ("\u004f\u0062\u006a\u0065c\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074i\u006f\u006e\u0061\u0072\u0079\u0020\u0074y\u0070\u0065");return nil ,_egg .ErrTypeError ;};_gdff =_bcgd ;}else if _fabc ,_dbede :=_egg .GetDict (obj ); _dbede {_fdfff ._fbdd =_fabc ;_gdff =_fabc ;}else {_bag .Log .Debug ("O\u0062\u006a\u0065\u0063\u0074\u0020t\u0079\u0070\u0065\u0020\u0075\u006e\u0065\u0078\u0070e\u0063\u0074\u0065d\u0020(\u0025\u0054\u0029",obj );return nil ,_egg .ErrTypeError ;};if _gdff ==nil {_bag .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067"); return nil ,_gd .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _aecd :=_gdff .Get ("\u0054\u0079\u0070\u0065");_aecd !=nil {_dfdf ,_cbbb :=_aecd .(*_egg .PdfObjectName );if !_cbbb {_bag .Log .Trace ("\u0049\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u0021\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u006f\u0066\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029\u0020\u002d\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u004e\u0061m\u0065",_aecd ); }else {if *_dfdf !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_bag .Log .Trace ("\u0055\u006e\u0073\u0075\u0073\u0070e\u0063\u0074\u0065\u0064\u0020\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020F\u0069\u006c\u0065\u0073\u0070\u0065\u0063 \u0028\u0025\u0073\u0029",*_dfdf ); };};};if _ffbg :=_gdff .Get ("\u0046\u0053");_ffbg !=nil {_fdfff .FS =_ffbg ;};if _gebf :=_gdff .Get ("\u0046");_gebf !=nil {_fdfff .F =_gebf ;};if _egfeb :=_gdff .Get ("\u0055\u0046");_egfeb !=nil {_fdfff .UF =_egfeb ;};if _efgf :=_gdff .Get ("\u0044\u004f\u0053"); _efgf !=nil {_fdfff .DOS =_efgf ;};if _bfbc :=_gdff .Get ("\u004d\u0061\u0063");_bfbc !=nil {_fdfff .Mac =_bfbc ;};if _bdef :=_gdff .Get ("\u0055\u006e\u0069\u0078");_bdef !=nil {_fdfff .Unix =_bdef ;};if _dbgde :=_gdff .Get ("\u0049\u0044");_dbgde !=nil {_fdfff .ID =_dbgde ; };if _adaf :=_gdff .Get ("\u0056");_adaf !=nil {_fdfff .V =_adaf ;};if _eafcd :=_gdff .Get ("\u0045\u0046");_eafcd !=nil {_fdfff .EF =_eafcd ;};if _agbe :=_gdff .Get ("\u0052\u0046");_agbe !=nil {_fdfff .RF =_agbe ;};if _agge :=_gdff .Get ("\u0044\u0065\u0073\u0063"); _agge !=nil {_fdfff .Desc =_agge ;};if _fgag :=_gdff .Get ("\u0043\u0049");_fgag !=nil {_fdfff .CI =_fgag ;};return _fdfff ,nil ;}; // B returns the value of the B component of the color. func (_bcae *PdfColorLab )B ()float64 {return _bcae [2]};func (_egbb *PdfFont )baseFields ()*fontCommon {if _egbb ._edde ==nil {_bag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0062\u0061\u0073\u0065\u0046\u0069\u0065l\u0064s\u002e \u0063o\u006e\u0074\u0065\u0078\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c\u002e"); return nil ;};return _egbb ._edde .baseFields ();};func (_aadg *PdfPage )setContainer (_fdggad *_egg .PdfIndirectObject ){_fdggad .PdfObject =_aadg ._fgfd ;_aadg ._dfee =_fdggad ;}; // ToPdfObject implements interface PdfModel. func (_cbff *PdfAnnotationMovie )ToPdfObject ()_egg .PdfObject {_cbff .PdfAnnotation .ToPdfObject ();_fgce :=_cbff ._cef ;_adbc :=_fgce .PdfObject .(*_egg .PdfObjectDictionary );_adbc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u004d\u006f\u0076i\u0065")); _adbc .SetIfNotNil ("\u0054",_cbff .T );_adbc .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_cbff .Movie );_adbc .SetIfNotNil ("\u0041",_cbff .A );return _fgce ;}; // NewPdfAnnotationText returns a new text annotation. func NewPdfAnnotationText ()*PdfAnnotationText {_aeg :=NewPdfAnnotation ();_edea :=&PdfAnnotationText {};_edea .PdfAnnotation =_aeg ;_edea .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aeg .SetContext (_edea );return _edea ;}; // NewXObjectFormFromStream builds the Form XObject from a stream object. // TODO: Should this be exposed? Consider different access points. func NewXObjectFormFromStream (stream *_egg .PdfObjectStream )(*XObjectForm ,error ){_fdbcc :=&XObjectForm {};_fdbcc ._acgef =stream ;_cefgd :=*(stream .PdfObjectDictionary );_bafab ,_fddf :=_egg .NewEncoderFromStream (stream );if _fddf !=nil {return nil ,_fddf ; };_fdbcc .Filter =_bafab ;if _bagdf :=_cefgd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_bagdf !=nil {_dgeac ,_baaba :=_bagdf .(*_egg .PdfObjectName );if !_baaba {return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };if *_dgeac !="\u0046\u006f\u0072\u006d"{_bag .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065"); };};if _ggedf :=_cefgd .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_ggedf !=nil {_fdbcc .FormType =_ggedf ;};if _gcfbc :=_cefgd .Get ("\u0042\u0042\u006f\u0078");_gcfbc !=nil {_fdbcc .BBox =_gcfbc ;};if _cffadb :=_cefgd .Get ("\u004d\u0061\u0074\u0072\u0069\u0078"); _cffadb !=nil {_fdbcc .Matrix =_cffadb ;};if _afefe :=_cefgd .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_afefe !=nil {_afefe =_egg .TraceToDirectObject (_afefe );_fcdce ,_abgae :=_afefe .(*_egg .PdfObjectDictionary );if !_abgae {_bag .Log .Debug ("\u0049\u006e\u0076\u0061\u006ci\u0064\u0020\u0058\u004f\u0062j\u0065c\u0074\u0020\u0046\u006f\u0072\u006d\u0020\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006f\u0062j\u0065\u0063\u0074\u002c\u0020\u0070\u006f\u0069\u006e\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u006e\u006f\u006e\u002d\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079"); return nil ,_egg .ErrTypeError ;};_defbe ,_fdag :=NewPdfPageResourcesFromDict (_fcdce );if _fdag !=nil {_bag .Log .Debug ("\u0046\u0061i\u006c\u0065\u0064\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0020\u0072\u0065\u0073\u006f\u0075rc\u0065\u0073"); return nil ,_fdag ;};_fdbcc .Resources =_defbe ;_bag .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_fdbcc .Resources );};_fdbcc .Group =_cefgd .Get ("\u0047\u0072\u006fu\u0070"); _fdbcc .Ref =_cefgd .Get ("\u0052\u0065\u0066");_fdbcc .MetaData =_cefgd .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_fdbcc .PieceInfo =_cefgd .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_fdbcc .LastModified =_cefgd .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064"); _fdbcc .StructParent =_cefgd .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_fdbcc .StructParents =_cefgd .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_fdbcc .OPI =_cefgd .Get ("\u004f\u0050\u0049"); _fdbcc .OC =_cefgd .Get ("\u004f\u0043");_fdbcc .Name =_cefgd .Get ("\u004e\u0061\u006d\u0065");_fdbcc .Stream =stream .Stream ;return _fdbcc ,nil ;}; // Encoder returns the font's text encoder. func (_cbdeg *PdfFont )Encoder ()_ef .TextEncoder {_dgdb :=_cbdeg .actualFont ();if _dgdb ==nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0045n\u0063\u006f\u0064er\u0020\u006e\u006f\u0074\u0020\u0069m\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0066\u006f\u0072\u0020\u0066o\u006e\u0074\u0020\u0074\u0079\u0070\u0065\u003d%\u0023\u0054",_cbdeg ._edde ); return nil ;};return _dgdb .Encoder ();}; // PdfColorDeviceCMYK is a CMYK32 color, where each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity. type PdfColorDeviceCMYK [4]float64 ; // NewPdfDate returns a new PdfDate object from a PDF date string (see 7.9.4 Dates). // format: "D: YYYYMMDDHHmmSSOHH'mm" func NewPdfDate (dateStr string )(PdfDate ,error ){_bfbdf ,_aacfd :=_ce .ParsePdfTime (dateStr );if _aacfd !=nil {return PdfDate {},_aacfd ;};return NewPdfDateFromTime (_bfbdf );};func (_faefc *fontFile )loadFromSegments (_dedd ,_abed []byte )error {_bag .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_dedd ),len (_abed )); _abdeg :=_faefc .parseASCIIPart (_dedd );if _abdeg !=nil {return _abdeg ;};_bag .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_faefc );if len (_abed )==0{return nil ;};_bag .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_faefc ); return nil ;}; // L returns the value of the L component of the color. func (_egcg *PdfColorLab )L ()float64 {return _egcg [0]}; // NewPdfField returns an initialized PdfField. func NewPdfField ()*PdfField {return &PdfField {_agef :_egg .MakeIndirectObject (_egg .MakeDict ())}}; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. func (_dfeg *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _dfeg .UnderlyingCS ==nil {return nil ,_gd .New ("u\u006e\u0064\u0065\u0072\u006c\u0079i\u006e\u0067\u0020\u0043\u0053\u0020\u006e\u006f\u0074 \u0073\u0070\u0065c\u0069f\u0069\u0065\u0064"); };return _dfeg .UnderlyingCS .ColorFromFloats (vals );}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_fgaab *PdfShadingType7 )ToPdfObject ()_egg .PdfObject {_fgaab .PdfShading .ToPdfObject ();_cabbc ,_gacdb :=_fgaab .getShadingDict ();if _gacdb !=nil {_bag .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074"); return nil ;};if _fgaab .BitsPerCoordinate !=nil {_cabbc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_fgaab .BitsPerCoordinate );};if _fgaab .BitsPerComponent !=nil {_cabbc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fgaab .BitsPerComponent ); };if _fgaab .BitsPerFlag !=nil {_cabbc .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_fgaab .BitsPerFlag );};if _fgaab .Decode !=nil {_cabbc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_fgaab .Decode );};if _fgaab .Function !=nil {if len (_fgaab .Function )==1{_cabbc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fgaab .Function [0].ToPdfObject ()); }else {_bcfcg :=_egg .MakeArray ();for _ ,_fbgad :=range _fgaab .Function {_bcfcg .Append (_fbgad .ToPdfObject ());};_cabbc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bcfcg );};};return _fgaab ._cfdbd ;}; // PdfAnnotationCircle represents Circle annotations. // (Section 12.5.6.8). type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _egg .PdfObject ;IC _egg .PdfObject ;BE _egg .PdfObject ;RD _egg .PdfObject ;}; // ToPdfObject implements interface PdfModel. func (_feeb *PdfAnnotationLink )ToPdfObject ()_egg .PdfObject {_feeb .PdfAnnotation .ToPdfObject ();_dbgd :=_feeb ._cef ;_eecg :=_dbgd .PdfObject .(*_egg .PdfObjectDictionary );_eecg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u004c\u0069\u006e\u006b")); if _feeb ._fdb !=nil &&_feeb ._fdb ._abb !=nil {_eecg .Set ("\u0041",_feeb ._fdb ._abb .ToPdfObject ());}else if _feeb .A !=nil {_eecg .Set ("\u0041",_feeb .A );};_eecg .SetIfNotNil ("\u0044\u0065\u0073\u0074",_feeb .Dest );_eecg .SetIfNotNil ("\u0048",_feeb .H ); _eecg .SetIfNotNil ("\u0050\u0041",_feeb .PA );_eecg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_feeb .QuadPoints );_eecg .SetIfNotNil ("\u0042\u0053",_feeb .BS );return _dbgd ;};func (_eeca *PdfReader )newPdfAnnotationFileAttachmentFromDict (_bbff *_egg .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_aaeb :=PdfAnnotationFileAttachment {}; _daeg ,_abg :=_eeca .newPdfAnnotationMarkupFromDict (_bbff );if _abg !=nil {return nil ,_abg ;};_aaeb .PdfAnnotationMarkup =_daeg ;_aaeb .FS =_bbff .Get ("\u0046\u0053");_aaeb .Name =_bbff .Get ("\u004e\u0061\u006d\u0065");return &_aaeb ,nil ;}; // PdfAnnotation represents an annotation in PDF (section 12.5 p. 389). type PdfAnnotation struct{_gcf PdfModel ;Rect _egg .PdfObject ;Contents _egg .PdfObject ;P _egg .PdfObject ;NM _egg .PdfObject ;M _egg .PdfObject ;F _egg .PdfObject ;AP _egg .PdfObject ;AS _egg .PdfObject ;Border _egg .PdfObject ;C _egg .PdfObject ;StructParent _egg .PdfObject ; OC _egg .PdfObject ;_cef *_egg .PdfIndirectObject ;}; // Evaluate runs the function on the passed in slice and returns the results. func (_dfeaa *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_dfeaa .NumInputs {_bag .Log .Error ("\u004eu\u006d\u0062e\u0072\u0020\u006f\u0066 \u0069\u006e\u0070u\u0074\u0073\u0020\u006e\u006f\u0074\u0020\u006d\u0061tc\u0068\u0069\u006eg\u0020\u0077h\u0061\u0074\u0020\u0069\u0073\u0020n\u0065\u0065d\u0065\u0064"); return nil ,_gd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _dfeaa ._efbce ==nil {_ccbcd :=_dfeaa .processSamples ();if _ccbcd !=nil {return nil ,_ccbcd ;};};_dbcda :=_dfeaa .Encode ;if _dbcda ==nil {_dbcda =[]float64 {}; for _decbg :=0;_decbg < len (_dfeaa .Size );_decbg ++{_dbcda =append (_dbcda ,0);_dbcda =append (_dbcda ,float64 (_dfeaa .Size [_decbg ]-1));};};_cbag :=_dfeaa .Decode ;if _cbag ==nil {_cbag =_dfeaa .Range ;};_aade :=make ([]int ,len (x ));for _cgbga :=0; _cgbga < len (x );_cgbga ++{_fdddc :=x [_cgbga ];_fgefd :=_dgb .Min (_dgb .Max (_fdddc ,_dfeaa .Domain [2*_cgbga ]),_dfeaa .Domain [2*_cgbga +1]);_cedc :=_eg .LinearInterpolate (_fgefd ,_dfeaa .Domain [2*_cgbga ],_dfeaa .Domain [2*_cgbga +1],_dbcda [2*_cgbga ],_dbcda [2*_cgbga +1]); _bcab :=_dgb .Min (_dgb .Max (_cedc ,0),float64 (_dfeaa .Size [_cgbga ]-1));_bbce :=int (_dgb .Floor (_bcab +0.5));if _bbce < 0{_bbce =0;}else if _bbce > _dfeaa .Size [_cgbga ]{_bbce =_dfeaa .Size [_cgbga ]-1;};_aade [_cgbga ]=_bbce ;};_dcba :=_aade [0]; for _ffegd :=1;_ffegd < _dfeaa .NumInputs ;_ffegd ++{_bgdab :=_aade [_ffegd ];for _cddcgf :=0;_cddcgf < _ffegd ;_cddcgf ++{_bgdab *=_dfeaa .Size [_cddcgf ];};_dcba +=_bgdab ;};_dcba *=_dfeaa .NumOutputs ;var _ddecg []float64 ;for _cdcdf :=0;_cdcdf < _dfeaa .NumOutputs ; _cdcdf ++{_aafab :=_dcba +_cdcdf ;if _aafab >=len (_dfeaa ._efbce ){_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u003a \u006e\u006ft\u0020\u0065\u006eo\u0075\u0067\u0068\u0020\u0069\u006ep\u0075\u0074\u0020sa\u006dp\u006c\u0065\u0073\u0020\u0074\u006f\u0020d\u0065\u0074\u0065\u0072\u006d\u0069\u006e\u0065\u0020\u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0076\u0061lu\u0065\u0073\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074\u0020\u006d\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063\u0074\u002e"); continue ;};_bdebg :=_dfeaa ._efbce [_aafab ];_aebaa :=_eg .LinearInterpolate (float64 (_bdebg ),0,_dgb .Pow (2,float64 (_dfeaa .BitsPerSample )),_cbag [2*_cdcdf ],_cbag [2*_cdcdf +1]);_cabba :=_dgb .Min (_dgb .Max (_aebaa ,_dfeaa .Range [2*_cdcdf ]),_dfeaa .Range [2*_cdcdf +1]); _ddecg =append (_ddecg ,_cabba );};return _ddecg ,nil ;};func (_adcea *PdfReader )newPdfOutlineItemFromIndirectObject (_ddadf *_egg .PdfIndirectObject )(*PdfOutlineItem ,error ){_afggb ,_daaaf :=_ddadf .PdfObject .(*_egg .PdfObjectDictionary );if !_daaaf {return nil ,_f .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079"); };_deaf :=NewPdfOutlineItem ();_dgedb :=_afggb .Get ("\u0054\u0069\u0074l\u0065");if _dgedb ==nil {return nil ,_f .Errorf ("\u006d\u0069\u0073s\u0069\u006e\u0067\u0020\u0054\u0069\u0074\u006c\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0049\u0074\u0065\u006d\u0020\u0028r\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029"); };_cdegc ,_dcbag :=_egg .GetString (_dgedb );if !_dcbag {return nil ,_f .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_dgedb );};_deaf .Title =_cdegc ;if _bgcbd :=_afggb .Get ("\u0043\u006f\u0075n\u0074"); _bgcbd !=nil {_dedaa ,_cfcgb :=_bgcbd .(*_egg .PdfObjectInteger );if !_cfcgb {return nil ,_f .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_bgcbd );};_ddede :=int64 (*_dedaa ); _deaf .Count =&_ddede ;};if _cdcec :=_afggb .Get ("\u0044\u0065\u0073\u0074");_cdcec !=nil {_deaf .Dest =_egg .ResolveReference (_cdcec );if !_adcea ._cede {_ecdaf :=_adcea .traverseObjectData (_deaf .Dest );if _ecdaf !=nil {return nil ,_ecdaf ;};};};if _befaa :=_afggb .Get ("\u0041"); _befaa !=nil {_deaf .A =_egg .ResolveReference (_befaa );if !_adcea ._cede {_abaf :=_adcea .traverseObjectData (_deaf .A );if _abaf !=nil {return nil ,_abaf ;};};};if _ggff :=_afggb .Get ("\u0053\u0045");_ggff !=nil {_deaf .SE =nil ;};if _beaf :=_afggb .Get ("\u0043"); _beaf !=nil {_deaf .C =_egg .ResolveReference (_beaf );};if _bdadb :=_afggb .Get ("\u0046");_bdadb !=nil {_deaf .F =_egg .ResolveReference (_bdadb );};return _deaf ,nil ;}; // ToPdfObject returns the PDF representation of the page resources. func (_ffcga *PdfPageResources )ToPdfObject ()_egg .PdfObject {_gbee :=_ffcga ._cbcba ;_gbee .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_ffcga .ExtGState );if _ffcga ._dbbbd !=nil {_ffcga .ColorSpace =_ffcga ._dbbbd .ToPdfObject ();}; _gbee .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_ffcga .ColorSpace );_gbee .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_ffcga .Pattern );_gbee .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_ffcga .Shading ); _gbee .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_ffcga .XObject );_gbee .SetIfNotNil ("\u0046\u006f\u006e\u0074",_ffcga .Font );_gbee .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_ffcga .ProcSet );_gbee .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_ffcga .Properties ); return _gbee ;}; // SetDate sets the `M` field of the signature. func (_cadfb *PdfSignature )SetDate (date _e .Time ,format string ){if format ==""{format ="\u0044\u003a\u003200\u0036\u0030\u0031\u0030\u0032\u0031\u0035\u0030\u0034\u0030\u0035\u002d\u0030\u0037\u0027\u0030\u0030\u0027";};_cadfb .M =_egg .MakeString (date .Format (format )); }; // GetAllContentStreams gets all the content streams for a page as one string. func (_gccgf *PdfPage )GetAllContentStreams ()(string ,error ){_dbce ,_gfecf :=_gccgf .GetContentStreams ();if _gfecf !=nil {return "",_gfecf ;};return _fc .Join (_dbce ,"\u0020"),nil ;}; // NewStandard14Font returns the standard 14 font named `basefont` as a *PdfFont, or an error if it // `basefont` is not one of the standard 14 font names. func NewStandard14Font (basefont StdFontName )(*PdfFont ,error ){_dcgc ,_adda :=_ceef (basefont );if _adda !=nil {return nil ,_adda ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_dcgc ._cbdegf =_ef .NewWinAnsiEncoder ();};return &PdfFont {_edde :&_dcgc },nil ; }; // GetAction returns the PDF action for the annotation link. func (_abce *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _abce ._fdb !=nil {return _abce ._fdb ,nil ;};if _abce .A ==nil {return nil ,nil ;};if _abce ._efb ==nil {return nil ,nil ;};_bagfa ,_edbc :=_abce ._efb .loadAction (_abce .A );if _edbc !=nil {return nil ,_edbc ; };_abce ._fdb =_bagfa ;return _abce ._fdb ,nil ;}; // C returns the value of the cyan component of the color. func (_ceaa *PdfColorDeviceCMYK )C ()float64 {return _ceaa [0]}; // NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image. func (_bgbga DefaultImageHandler )NewGrayImageFromGoImage (goimg _cd .Image )(*Image ,error ){_cgaf :=goimg .Bounds ();_bddeg :=&Image {Width :int64 (_cgaf .Dx ()),Height :int64 (_cgaf .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _dfbg :=goimg .(type ){case *_cd .Gray :if len (_dfbg .Pix )!=_cgaf .Dx ()*_cgaf .Dy (){_fggb ,_bfeaf :=_eg .GrayConverter .Convert (goimg ); if _bfeaf !=nil {return nil ,_bfeaf ;};_bddeg .Data =_fggb .Pix ();}else {_bddeg .Data =_dfbg .Pix ;};case *_cd .Gray16 :_bddeg .BitsPerComponent =16;if len (_dfbg .Pix )!=_cgaf .Dx ()*_cgaf .Dy ()*2{_fgefdg ,_egfeg :=_eg .Gray16Converter .Convert (goimg ); if _egfeg !=nil {return nil ,_egfeg ;};_bddeg .Data =_fgefdg .Pix ();}else {_bddeg .Data =_dfbg .Pix ;};case _eg .Image :_dgffd :=_dfbg .Base ();if _dgffd .ColorComponents ==1{_bddeg .BitsPerComponent =int64 (_dgffd .BitsPerComponent );_bddeg .Data =_dgffd .Data ; return _bddeg ,nil ;};_abfg ,_afcf :=_eg .GrayConverter .Convert (goimg );if _afcf !=nil {return nil ,_afcf ;};_bddeg .Data =_abfg .Pix ();default:_bcgfa ,_egdee :=_eg .GrayConverter .Convert (goimg );if _egdee !=nil {return nil ,_egdee ;};_bddeg .Data =_bcgfa .Pix (); };return _bddeg ,nil ;}; // Read reads an image and loads into a new Image object with an RGB // colormap and 8 bits per component. func (_ddgcf DefaultImageHandler )Read (reader _dag .Reader )(*Image ,error ){_eeba ,_ ,_dabce :=_cd .Decode (reader );if _dabce !=nil {_bag .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_dabce ); return nil ,_dabce ;};return _ddgcf .NewImageFromGoImage (_eeba );};type modelManager struct{_eefgc map[PdfModel ]_egg .PdfObject ;_ggbg map[_egg .PdfObject ]PdfModel ;};func (_eefg *PdfReader )newPdfActionHideFromDict (_af *_egg .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_af .Get ("\u0054"),H :_af .Get ("\u0048")},nil ; }; // PdfActionTrans represents a trans action. type PdfActionTrans struct{*PdfAction ;Trans _egg .PdfObject ;}; // Has checks if flag fl is set in flag and returns true if so, false otherwise. func (_fbcdf FieldFlag )Has (fl FieldFlag )bool {return (_fbcdf .Mask ()&fl .Mask ())> 0}; // Items returns all children outline items. func (_fgcad *Outline )Items ()[]*OutlineItem {return _fgcad .Entries }; // GetVersion gets the document version. func (_gdad *PdfWriter )GetVersion ()_egg .Version {return _gdad ._dacce }; // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // components. The slice should contain a single PdfObjectFloat element in // range 0-1. func (_gfcd *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_acba ,_agdb :=_egg .GetNumbersAsFloat (objects ); if _agdb !=nil {return nil ,_agdb ;};return _gfcd .ColorFromFloats (_acba );}; // ConvertToBinary converts current image into binary (bi-level) format. // Binary images are composed of single bits per pixel (only black or white). // If provided image has more color components, then it would be converted into binary image using // histogram auto threshold function. func (_gfdgb *Image )ConvertToBinary ()error {if _gfdgb .ColorComponents ==1&&_gfdgb .BitsPerComponent ==1{return nil ;};_cabe ,_bfgcb :=_gfdgb .ToGoImage ();if _bfgcb !=nil {return _bfgcb ;};_abcaa ,_bfgcb :=_eg .MonochromeConverter .Convert (_cabe ); if _bfgcb !=nil {return _bfgcb ;};_gfdgb .Data =_abcaa .Base ().Data ;_gfdgb ._fgggb ,_bfgcb =_eg .ScaleAlphaToMonochrome (_gfdgb ._fgggb ,int (_gfdgb .Width ),int (_gfdgb .Height ));if _bfgcb !=nil {return _bfgcb ;};_gfdgb .BitsPerComponent =1;_gfdgb .ColorComponents =1; _gfdgb ._abfae =nil ;return nil ;}; // MergePageWith appends page content to source Pdf file page content. func (_abcb *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_egdea :=pageNum -1;var _abbe *PdfPage ;for _gaae ,_gbab :=range _abcb ._beac {if _gaae ==_egdea {_abbe =_gbab ;};};if _abbe ==nil {return _f .Errorf ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064\u0020\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0073o\u0075\u0072\u0063\u0065\u0020\u0064o\u0063\u0075\u006de\u006e\u0074",pageNum ); };if _abbe ._dfee !=nil &&_abbe ._dfee .GetParser ()==_abcb ._bgaa ._dafgab {_abbe =_abbe .Duplicate ();_abcb ._beac [_egdea ]=_abbe ;};page =page .Duplicate ();_cceebc (page );_egdc :=_aeac (_abbe );_egge :=_aeac (page );_fbcga :=make (map[_egg .PdfObjectName ]_egg .PdfObjectName ); for _dgfd :=range _egge {if _ ,_cggg :=_egdc [_dgfd ];_cggg {for _abfa :=1;true ;_abfa ++{_abe :=_egg .PdfObjectName (string (_dgfd )+_da .Itoa (_abfa ));if _ ,_ebb :=_egdc [_abe ];!_ebb {_fbcga [_dgfd ]=_abe ;break ;};};};};_bfcg ,_bfef :=page .GetContentStreams (); if _bfef !=nil {return _bfef ;};_cdeg ,_bfef :=_abbe .GetContentStreams ();if _bfef !=nil {return _bfef ;};for _aaf ,_fcba :=range _bfcg {for _agg ,_cbdg :=range _fbcga {_fcba =_fc .Replace (_fcba ,"\u002f"+string (_agg ),"\u002f"+string (_cbdg ),-1);}; _bfcg [_aaf ]=_fcba ;};_cdeg =append (_cdeg ,_bfcg ...);if _bebge :=_abbe .SetContentStreams (_cdeg ,_egg .NewFlateEncoder ());_bebge !=nil {return _bebge ;};_abbe ._bcce =append (_abbe ._bcce ,page ._bcce ...);if _abbe .Resources ==nil {_abbe .Resources =NewPdfPageResources (); };if page .Resources !=nil {_abbe .Resources .Font =_abcb .mergeResources (_abbe .Resources .Font ,page .Resources .Font ,_fbcga );_abbe .Resources .XObject =_abcb .mergeResources (_abbe .Resources .XObject ,page .Resources .XObject ,_fbcga );_abbe .Resources .Properties =_abcb .mergeResources (_abbe .Resources .Properties ,page .Resources .Properties ,_fbcga ); if _abbe .Resources .ProcSet ==nil {_abbe .Resources .ProcSet =page .Resources .ProcSet ;};_abbe .Resources .Shading =_abcb .mergeResources (_abbe .Resources .Shading ,page .Resources .Shading ,_fbcga );_abbe .Resources .ExtGState =_abcb .mergeResources (_abbe .Resources .ExtGState ,page .Resources .ExtGState ,_fbcga ); };_gddcb ,_bfef :=_abbe .GetMediaBox ();if _bfef !=nil {return _bfef ;};_daaeb ,_bfef :=page .GetMediaBox ();if _bfef !=nil {return _bfef ;};var _bcb bool ;if _gddcb .Llx > _daaeb .Llx {_gddcb .Llx =_daaeb .Llx ;_bcb =true ;};if _gddcb .Lly > _daaeb .Lly {_gddcb .Lly =_daaeb .Lly ; _bcb =true ;};if _gddcb .Urx < _daaeb .Urx {_gddcb .Urx =_daaeb .Urx ;_bcb =true ;};if _gddcb .Ury < _daaeb .Ury {_gddcb .Ury =_daaeb .Ury ;_bcb =true ;};if _bcb {_abbe .MediaBox =_gddcb ;};return nil ;}; // NewPdfAnnotationProjection returns a new projection annotation. func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_eaeb :=NewPdfAnnotation ();_ebcc :=&PdfAnnotationProjection {};_ebcc .PdfAnnotation =_eaeb ;_ebcc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eaeb .SetContext (_ebcc );return _ebcc ;}; // NewOutline returns a new outline instance. func NewOutline ()*Outline {return &Outline {}}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 1 for a grayscale device. func (_dbaa *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1}; // NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions. func NewPdfTransformParamsDocMDP (permission _be .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_egg .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_egg .MakeInteger (int64 (permission )),V :_egg .MakeName ("\u0031\u002e\u0032")}; };func (_bfddg *LTV )getCerts (_bcefa []*_dg .Certificate )([][]byte ,error ){_cbgf :=make ([][]byte ,0,len (_bcefa ));for _ ,_fbcb :=range _bcefa {_cbgf =append (_cbgf ,_fbcb .Raw );};return _cbgf ,nil ;}; // ButtonType represents the subtype of a button field, can be one of: // - Checkbox (ButtonTypeCheckbox) // - PushButton (ButtonTypePushButton) // - RadioButton (ButtonTypeRadioButton) type ButtonType int ;func (_fgac *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};func _bcbae (_gbbe *_egg .PdfObjectStream )(*PdfFunctionType0 ,error ){_egag :=&PdfFunctionType0 {};_egag ._adfae =_gbbe ;_addda :=_gbbe .PdfObjectDictionary ; _efgb ,_fcffg :=_egg .TraceToDirectObject (_addda .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_egg .PdfObjectArray );if !_fcffg {_bag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064"); };if _efgb .Len ()< 0||_efgb .Len ()%2!=0{_bag .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065"); };_egag .NumInputs =_efgb .Len ()/2;_babeg ,_eeed :=_efgb .ToFloat64Array ();if _eeed !=nil {return nil ,_eeed ;};_egag .Domain =_babeg ;_efgb ,_fcffg =_egg .TraceToDirectObject (_addda .Get ("\u0052\u0061\u006eg\u0065")).(*_egg .PdfObjectArray );if !_fcffg {_bag .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064"); return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};if _efgb .Len ()< 0||_efgb .Len ()%2!=0{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065"); };_egag .NumOutputs =_efgb .Len ()/2;_dcbec ,_eeed :=_efgb .ToFloat64Array ();if _eeed !=nil {return nil ,_eeed ;};_egag .Range =_dcbec ;_efgb ,_fcffg =_egg .TraceToDirectObject (_addda .Get ("\u0053\u0069\u007a\u0065")).(*_egg .PdfObjectArray );if !_fcffg {_bag .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064"); return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};_bdcb ,_eeed :=_efgb .ToIntegerArray (); if _eeed !=nil {return nil ,_eeed ;};if len (_bdcb )!=_egag .NumInputs {_bag .Log .Error ("T\u0061\u0062\u006c\u0065\u0020\u0073\u0069\u007a\u0065\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063h\u0069\u006e\u0067\u0020\u006e\u0075\u006d\u0062\u0065\u0072 o\u0066\u0020\u0069n\u0070u\u0074\u0073"); return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_egag .Size =_bdcb ;_fafgg ,_fcffg :=_egg .TraceToDirectObject (_addda .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_egg .PdfObjectInteger ); if !_fcffg {_bag .Log .Error ("B\u0069\u0074\u0073\u0050\u0065\u0072S\u0061\u006d\u0070\u006c\u0065\u0020\u006e\u006f\u0074 \u0073\u0070\u0065c\u0069f\u0069\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064"); };if *_fafgg !=1&&*_fafgg !=2&&*_fafgg !=4&&*_fafgg !=8&&*_fafgg !=12&&*_fafgg !=16&&*_fafgg !=24&&*_fafgg !=32{_bag .Log .Error ("\u0042\u0069\u0074s \u0070\u0065\u0072\u0020\u0073\u0061\u006d\u0070\u006ce\u0020o\u0075t\u0073i\u0064\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0028\u0025\u0064\u0029",*_fafgg ); return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_egag .BitsPerSample =int (*_fafgg );_egag .Order =1;_cfbde ,_fcffg :=_egg .TraceToDirectObject (_addda .Get ("\u004f\u0072\u0064e\u0072")).(*_egg .PdfObjectInteger ); if _fcffg {if *_cfbde !=1&&*_cfbde !=3{_bag .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_cfbde );return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_egag .Order =int (*_cfbde ); };_efgb ,_fcffg =_egg .TraceToDirectObject (_addda .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_egg .PdfObjectArray );if _fcffg {_bddag ,_aeegd :=_efgb .ToFloat64Array ();if _aeegd !=nil {return nil ,_aeegd ;};_egag .Encode =_bddag ;};_efgb ,_fcffg =_egg .TraceToDirectObject (_addda .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_egg .PdfObjectArray ); if _fcffg {_ededd ,_bfbbg :=_efgb .ToFloat64Array ();if _bfbbg !=nil {return nil ,_bfbbg ;};_egag .Decode =_ededd ;};_baeefa ,_eeed :=_egg .DecodeStream (_gbbe );if _eeed !=nil {return nil ,_eeed ;};_egag ._efacf =_baeefa ;return _egag ,nil ;};func (_gfdbe *PdfAcroForm )fillImageWithAppearance (_deeab FieldImageProvider ,_fbbff FieldAppearanceGenerator )error {if _gfdbe ==nil {return nil ; };_eeace ,_effff :=_deeab .FieldImageValues ();if _effff !=nil {return _effff ;};for _ ,_ebbf :=range _gfdbe .AllFields (){_gdegc :=_ebbf .PartialName ();_ggbb ,_bgaee :=_eeace [_gdegc ];if !_bgaee {if _debggd ,_dedaf :=_ebbf .FullName ();_dedaf ==nil {_ggbb ,_bgaee =_eeace [_debggd ]; };};if !_bgaee {_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020f\u006f\u0072\u006d \u0066\u0069\u0065l\u0064\u0020\u0025\u0073\u0020\u006e\u006f\u0074\u0020\u0066o\u0075\u006e\u0064\u0020\u0069n \u0074\u0068\u0065\u0020\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0072\u002e\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u002e",_gdegc ); continue ;};switch _fgefgd :=_ebbf .GetContext ().(type ){case *PdfFieldButton :if _fgefgd .IsPush (){_fgefgd .SetFillImage (_ggbb );};};if _fbbff ==nil {continue ;};for _ ,_dddga :=range _ebbf .Annotations {_dedde ,_beddc :=_fbbff .GenerateAppearanceDict (_gfdbe ,_ebbf ,_dddga ); if _beddc !=nil {return _beddc ;};_dddga .AP =_dedde ;_dddga .ToPdfObject ();};};return nil ;}; // HasFontByName checks if has font resource by name. func (_bdefb *PdfPage )HasFontByName (name _egg .PdfObjectName )bool {_gfedb ,_abccge :=_bdefb .Resources .Font .(*_egg .PdfObjectDictionary );if !_abccge {return false ;};if _dbffd :=_gfedb .Get (name );_dbffd !=nil {return true ;};return false ;}; // PdfAnnotationUnderline represents Underline annotations. // (Section 12.5.6.10). type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _egg .PdfObject ;}; // PdfColorspaceSpecialPattern is a Pattern colorspace. // Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs]. type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_ceae *_egg .PdfIndirectObject ;}; // Size returns the width and the height of the page. The method reports // the page dimensions as displayed by a PDF viewer (i.e. page rotation is // taken into account). func (_fggf *PdfPage )Size ()(float64 ,float64 ,error ){_gccf ,_dfadg :=_fggf .GetMediaBox ();if _dfadg !=nil {return 0,0,_dfadg ;};_fgead ,_gdca :=_gccf .Width (),_gccf .Height ();_affea ,_dfadg :=_fggf .GetRotate ();if _dfadg !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0025\u0073\u0020\u002d\u0020\u0069\u0067\u006e\u006f\u0072\u0069\u006e\u0067\u0020\u0061\u006e\u0064\u0020\u0061\u0073\u0073\u0075\u006d\u0069\u006e\u0067\u0020\u006e\u006f\u0020\u0072\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u000a",_dfadg .Error ()); };if _ccgadf :=_affea ;_ccgadf %360!=0&&_ccgadf %90==0{if _ddfbd :=(360+_ccgadf %360)%360;_ddfbd ==90||_ddfbd ==270{_fgead ,_gdca =_gdca ,_fgead ;};};return _fgead ,_gdca ,nil ;}; // ToPdfObject implements interface PdfModel. func (_efeb *PdfAnnotationFileAttachment )ToPdfObject ()_egg .PdfObject {_efeb .PdfAnnotation .ToPdfObject ();_fbbd :=_efeb ._cef ;_efg :=_fbbd .PdfObject .(*_egg .PdfObjectDictionary );_efeb .PdfAnnotationMarkup .appendToPdfDictionary (_efg );_efg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074")); _efg .SetIfNotNil ("\u0046\u0053",_efeb .FS );_efg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_efeb .Name );return _fbbd ;};func _afaa (_ddeg *_egg .PdfObjectDictionary ){_ebaf ,_faga :=_egg .GetArray (_ddeg .Get ("\u0057\u0069\u0064\u0074\u0068\u0073")); _accaf ,_aaac :=_egg .GetIntVal (_ddeg .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"));_ebce ,_faabe :=_egg .GetIntVal (_ddeg .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));if _faga &&_aaac &&_faabe {_bgcge :=_ebaf .Len ();if _bgcge !=_ebce -_accaf +1{_bag .Log .Debug ("\u0055\u006e\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0057\u0069\u0064\u0074\u0068\u0073\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u003a\u0020\u0025\u0076\u002c\u0020\u004c\u0061\u0073t\u0043\u0068\u0061\u0072\u003a\u0020\u0025\u0076",_bgcge ,_ebce ); _efdfd :=_egg .PdfObjectInteger (_accaf +_bgcge -1);_ddeg .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_efdfd );};};}; // SetPdfCreationDate sets the CreationDate attribute of the output PDF. func SetPdfCreationDate (creationDate _e .Time ){_cgag .Lock ();defer _cgag .Unlock ();_fabb =creationDate ;}; // SetOpenAction sets the OpenAction in the PDF catalog. // The value shall be either an array defining a destination (12.3.2 "Destinations" PDF32000_2008), // or an action dictionary representing an action (12.6 "Actions" PDF32000_2008). func (_ccfc *PdfWriter )SetOpenAction (dest _egg .PdfObject )error {if dest ==nil ||_egg .IsNullObject (dest ){return nil ;};_ccfc ._acea .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _ccfc .addObjects (dest );}; // ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk). func (_bafea *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cced ,_fgd :=_egg .GetNumbersAsFloat (objects ); if _fgd !=nil {return nil ,_fgd ;};return _bafea .ColorFromFloats (_cced );};func (_edcd *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _edcd ._bgacg }; // GetCharMetrics returns the char metrics for character code `code`. func (_bdfad pdfFontType3 )GetCharMetrics (code _ef .CharCode )(_bgd .CharMetrics ,bool ){if _dbcd ,_gfgbf :=_bdfad ._ecfgb [code ];_gfgbf {return _bgd .CharMetrics {Wx :_dbcd },true ;};if _bgd .IsStdFont (_bgd .StdFontName (_bdfad ._dgfdc )){return _bgd .CharMetrics {Wx :250},true ; };return _bgd .CharMetrics {},false ;}; // ToPdfObject returns a stream object. func (_bccde *XObjectImage )ToPdfObject ()_egg .PdfObject {_cagee :=_bccde ._gefbe ;_egebc :=_cagee .PdfObjectDictionary ;if _bccde .Filter !=nil {_egebc =_bccde .Filter .MakeStreamDict ();_cagee .PdfObjectDictionary =_egebc ;};_egebc .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074")); _egebc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0049\u006d\u0061g\u0065"));_egebc .Set ("\u0057\u0069\u0064t\u0068",_egg .MakeInteger (*(_bccde .Width )));_egebc .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_egg .MakeInteger (*(_bccde .Height ))); if _bccde .BitsPerComponent !=nil {_egebc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_egg .MakeInteger (*(_bccde .BitsPerComponent )));};if _bccde .ColorSpace !=nil {_egebc .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_bccde .ColorSpace .ToPdfObject ()); };_egebc .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_bccde .Intent );_egebc .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_bccde .ImageMask );_egebc .SetIfNotNil ("\u004d\u0061\u0073\u006b",_bccde .Mask );_fcdcg :=_egebc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ; if _bccde .Decode ==nil &&_fcdcg {_egebc .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _bccde .Decode !=nil {_egebc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_bccde .Decode );};_egebc .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_bccde .Interpolate ); _egebc .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_bccde .Alternatives );_egebc .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_bccde .SMask );_egebc .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_bccde .SMaskInData ); _egebc .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_bccde .Matte );_egebc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bccde .Name );_egebc .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_bccde .StructParent );_egebc .SetIfNotNil ("\u0049\u0044",_bccde .ID ); _egebc .SetIfNotNil ("\u004f\u0050\u0049",_bccde .OPI );_egebc .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_bccde .Metadata );_egebc .SetIfNotNil ("\u004f\u0043",_bccde .OC );_egebc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_bccde .Stream )))); _cagee .Stream =_bccde .Stream ;return _cagee ;}; // NewXObjectImage returns a new XObjectImage. func NewXObjectImage ()*XObjectImage {_aebedc :=&XObjectImage {};_feeda :=&_egg .PdfObjectStream {};_feeda .PdfObjectDictionary =_egg .MakeDict ();_aebedc ._gefbe =_feeda ;return _aebedc ;}; // NewPdfActionNamed returns a new "named" action. func NewPdfActionNamed ()*PdfActionNamed {_cec :=NewPdfAction ();_dfgb :=&PdfActionNamed {};_dfgb .PdfAction =_cec ;_cec .SetContext (_dfgb );return _dfgb ;}; // NewPdfActionLaunch returns a new "launch" action. func NewPdfActionLaunch ()*PdfActionLaunch {_fd :=NewPdfAction ();_ff :=&PdfActionLaunch {};_ff .PdfAction =_fd ;_fd .SetContext (_ff );return _ff ;}; // GetOCProperties returns the optional content properties PdfObject. func (_dgec *PdfReader )GetOCProperties ()(_egg .PdfObject ,error ){_baffc :=_dgec ._eacf ;_gbfee :=_baffc .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_gbfee =_egg .ResolveReference (_gbfee );if !_dgec ._cede {_bfecf :=_dgec .traverseObjectData (_gbfee ); if _bfecf !=nil {return nil ,_bfecf ;};};return _gbfee ,nil ;};func (_eece *PdfReader )newPdfAnnotationWidgetFromDict (_bba *_egg .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_afgg :=PdfAnnotationWidget {};_afgg .H =_bba .Get ("\u0048");_afgg .MK =_bba .Get ("\u004d\u004b"); _afgg .A =_bba .Get ("\u0041");_afgg .AA =_bba .Get ("\u0041\u0041");_afgg .BS =_bba .Get ("\u0042\u0053");_afgg .Parent =_bba .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_afgg ,nil ;}; // GetEncryptionMethod returns a descriptive information string about the encryption method used. func (_bfdac *PdfReader )GetEncryptionMethod ()string {_dgddf :=_bfdac ._dafgab .GetCrypter ();return _dgddf .String ();}; // PdfColorspaceDeviceGray represents a grayscale colorspace. type PdfColorspaceDeviceGray struct{}; // GetContainingPdfObject implements interface PdfModel. func (_gegce *PdfSignatureReference )GetContainingPdfObject ()_egg .PdfObject {return _gegce ._fedcg };func _dbaf (_ccaec *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_ccaec }};func (_fdga *PdfAppender )addNewObject (_ebae _egg .PdfObject ){if _ ,_bcee :=_fdga ._bdba [_ebae ]; !_bcee {_fdga ._dbbe =append (_fdga ._dbbe ,_ebae );_fdga ._bdba [_ebae ]=struct{}{};};};func (_ddd *PdfReader )newPdfAnnotationStampFromDict (_ecdf *_egg .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_aagc :=PdfAnnotationStamp {};_bafc ,_acfa :=_ddd .newPdfAnnotationMarkupFromDict (_ecdf ); if _acfa !=nil {return nil ,_acfa ;};_aagc .PdfAnnotationMarkup =_bafc ;_aagc .Name =_ecdf .Get ("\u004e\u0061\u006d\u0065");return &_aagc ,nil ;}; // ToPdfObject returns the PDF representation of the function. func (_dadef *PdfFunctionType3 )ToPdfObject ()_egg .PdfObject {_cead :=_egg .MakeDict ();_cead .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_egg .MakeInteger (3));_bcag :=&_egg .PdfObjectArray {};for _ ,_ffegg :=range _dadef .Domain {_bcag .Append (_egg .MakeFloat (_ffegg )); };_cead .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bcag );if _dadef .Range !=nil {_cgge :=&_egg .PdfObjectArray {};for _ ,_addge :=range _dadef .Range {_cgge .Append (_egg .MakeFloat (_addge ));};_cead .Set ("\u0052\u0061\u006eg\u0065",_cgge );};if _dadef .Functions !=nil {_fgcga :=&_egg .PdfObjectArray {}; for _ ,_gacc :=range _dadef .Functions {_fgcga .Append (_gacc .ToPdfObject ());};_cead .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_fgcga );};if _dadef .Bounds !=nil {_faegb :=&_egg .PdfObjectArray {};for _ ,_eafcg :=range _dadef .Bounds {_faegb .Append (_egg .MakeFloat (_eafcg )); };_cead .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_faegb );};if _dadef .Encode !=nil {_fgfa :=&_egg .PdfObjectArray {};for _ ,_aadb :=range _dadef .Encode {_fgfa .Append (_egg .MakeFloat (_aadb ));};_cead .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_fgfa ); };if _dadef ._cbbbc !=nil {_dadef ._cbbbc .PdfObject =_cead ;return _dadef ._cbbbc ;};return _cead ;}; // ImageToRGB convert 1-component grayscale data to 3-component RGB. func (_fdff *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_gd .New ("\u0074\u0068e \u0070\u0072\u006fv\u0069\u0064\u0065\u0064 im\u0061ge\u0020\u0069\u0073\u0020\u006e\u006f\u0074 g\u0072\u0061\u0079\u0020\u0073\u0063\u0061l\u0065"); };_cbba ,_adcc :=_eg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fgggb ,img ._abfae );if _adcc !=nil {return img ,_adcc ;};_cfcb ,_adcc :=_eg .NRGBAConverter .Convert (_cbba );if _adcc !=nil {return img ,_adcc ; };_bagb :=_cggba (_cfcb .Base ());_bag .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_bag .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_bag .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_bagb .Data ); _bag .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_bagb );return _bagb ,nil ;}; // IsShading specifies if the pattern is a shading pattern. func (_edbfbd *PdfPattern )IsShading ()bool {return _edbfbd .PatternType ==2}; // PdfColorspaceICCBased format [/ICCBased stream] // // The stream shall contain the ICC profile. // A conforming reader shall support ICC.1:2004:10 as required by PDF 1.7, which will enable it // to properly render all embedded ICC profiles regardless of the PDF version // // In the current implementation, we rely on the alternative colormap provided. type PdfColorspaceICCBased struct{N int ;Alternate PdfColorspace ; // If omitted ICC not supported: then use DeviceGray, // DeviceRGB or DeviceCMYK for N=1,3,4 respectively. Range []float64 ;Metadata *_egg .PdfObjectStream ;Data []byte ;_dcf *_egg .PdfIndirectObject ;_bcda *_egg .PdfObjectStream ;};func (_cfee *pdfFontSimple )baseFields ()*fontCommon {return &_cfee .fontCommon };func (_fcfcf *PdfReader )newPdfSignatureReferenceFromDict (_gabcd *_egg .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _gebgb ,_dfdbc :=_fcfcf ._dabaf .GetModelFromPrimitive (_gabcd ).(*PdfSignatureReference ); _dfdbc {return _gebgb ,nil ;};_feffe :=&PdfSignatureReference {_fedcg :_gabcd ,Data :_gabcd .Get ("\u0044\u0061\u0074\u0061")};var _aeaaf bool ;_feffe .Type ,_ =_egg .GetName (_gabcd .Get ("\u0054\u0079\u0070\u0065"));_feffe .TransformMethod ,_aeaaf =_egg .GetName (_gabcd .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064")); if !_aeaaf {_bag .Log .Error ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0053\u0069g\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0052\u0065\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0020\u0054\u0072\u0061\u006e\u0073\u0066o\u0072\u006dM\u0065\u0074h\u006f\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020in\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0072\u0020m\u0069\u0073\u0073\u0069\u006e\u0067"); return nil ,ErrInvalidAttribute ;};_feffe .TransformParams ,_ =_egg .GetDict (_gabcd .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_feffe .DigestMethod ,_ =_egg .GetName (_gabcd .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064")); return _feffe ,nil ;}; // GetNumComponents returns the number of color components. func (_dbae *PdfColorspaceICCBased )GetNumComponents ()int {return _dbae .N };func _bdbba (_agae *_egg .PdfObjectDictionary )(*PdfShadingType7 ,error ){_cgafg :=PdfShadingType7 {};_cfbba :=_agae .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065"); if _cfbba ==nil {_bag .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064 \u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065\u0072C\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065"); return nil ,ErrRequiredAttributeMissing ;};_gdgac ,_gfgfb :=_cfbba .(*_egg .PdfObjectInteger );if !_gfgfb {_bag .Log .Debug ("\u0042\u0069\u0074\u0073\u0050e\u0072\u0043\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_cfbba ); return nil ,_egg .ErrTypeError ;};_cgafg .BitsPerCoordinate =_gdgac ;_cfbba =_agae .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _cfbba ==nil {_bag .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064\u0020a\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073in\u0067\u003a\u0020B\u0069\u0074s\u0050\u0065\u0072\u0043\u006f\u006dp\u006f\u006ee\u006e\u0074"); return nil ,ErrRequiredAttributeMissing ;};_gdgac ,_gfgfb =_cfbba .(*_egg .PdfObjectInteger );if !_gfgfb {_bag .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065r \u0028\u0067\u006ft\u0020%\u0054\u0029",_cfbba ); return nil ,_egg .ErrTypeError ;};_cgafg .BitsPerComponent =_gdgac ;_cfbba =_agae .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _cfbba ==nil {_bag .Log .Debug ("\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065r\u0046\u006c\u0061\u0067"); return nil ,ErrRequiredAttributeMissing ;};_gdgac ,_gfgfb =_cfbba .(*_egg .PdfObjectInteger );if !_gfgfb {_bag .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072F\u006c\u0061\u0067\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074e\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025T\u0029",_cfbba ); return nil ,_egg .ErrTypeError ;};_cgafg .BitsPerComponent =_gdgac ;_cfbba =_agae .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _cfbba ==nil {_bag .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0044\u0065\u0063\u006f\u0064\u0065"); return nil ,ErrRequiredAttributeMissing ;};_eeae ,_gfgfb :=_cfbba .(*_egg .PdfObjectArray );if !_gfgfb {_bag .Log .Debug ("\u0044\u0065\u0063\u006fd\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_cfbba ); return nil ,_egg .ErrTypeError ;};_cgafg .Decode =_eeae ;if _ccdgd :=_agae .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_ccdgd !=nil {_cgafg .Function =[]PdfFunction {};if _afcfd ,_bbada :=_ccdgd .(*_egg .PdfObjectArray );_bbada {for _ ,_eagab :=range _afcfd .Elements (){_ffeddg ,_fdce :=_bdefe (_eagab ); if _fdce !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_fdce );return nil ,_fdce ;};_cgafg .Function =append (_cgafg .Function ,_ffeddg ); };}else {_ccfee ,_ccgde :=_bdefe (_ccdgd );if _ccgde !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_ccgde );return nil ,_ccgde ; };_cgafg .Function =append (_cgafg .Function ,_ccfee );};};return &_cgafg ,nil ;}; // NewPdfAnnotationCircle returns a new circle annotation. func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_aff :=NewPdfAnnotation ();_dbdf :=&PdfAnnotationCircle {};_dbdf .PdfAnnotation =_aff ;_dbdf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aff .SetContext (_dbdf );return _dbdf ;}; // PdfFunctionType3 defines stitching of the subdomains of several 1-input functions to produce // a single new 1-input function. type PdfFunctionType3 struct{Domain []float64 ;Range []float64 ;Functions []PdfFunction ;Bounds []float64 ;Encode []float64 ;_cbbbc *_egg .PdfIndirectObject ;}; // Y returns the value of the yellow component of the color. func (_fcbad *PdfColorDeviceCMYK )Y ()float64 {return _fcbad [2]};func _eefdc (_fgfbb []byte )([]byte ,error ){_ccaef :=_bbd .New ();if _ ,_acgdc :=_dag .Copy (_ccaef ,_dd .NewReader (_fgfbb ));_acgdc !=nil {return nil ,_acgdc ;};return _ccaef .Sum (nil ),nil ; }; // GetColorspaces loads PdfPageResourcesColorspaces from `r.ColorSpace` and returns an error if there // is a problem loading. Once loaded, the same object is returned on multiple calls. func (_deebd *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _deebd ._dbbbd !=nil {return _deebd ._dbbbd ,nil ;};if _deebd .ColorSpace ==nil {return nil ,nil ;};_gddg ,_aaaga :=_aggea (_deebd .ColorSpace );if _aaaga !=nil {return nil ,_aaaga ; };_deebd ._dbbbd =_gddg ;return _deebd ._dbbbd ,nil ;}; // ImageToRGB returns the passed in image. Method exists in order to satisfy // the PdfColorspace interface. func (_bbfb *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };func (_fabg *PdfWriter )addObjects (_ecbcc _egg .PdfObject )error {_bag .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021"); if _efgbc ,_edadg :=_ecbcc .(*_egg .PdfIndirectObject );_edadg {_bag .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_bag .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_ecbcc ,_efgbc );_bag .Log .Trace ("\u002d\u0020\u0025\u0073",_efgbc .PdfObject ); if _fabg .addObject (_efgbc ){_bbgfab :=_fabg .addObjects (_efgbc .PdfObject );if _bbgfab !=nil {return _bbgfab ;};};return nil ;};if _badbc ,_ecggg :=_ecbcc .(*_egg .PdfObjectStream );_ecggg {_bag .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_bag .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_ecbcc ,_ecbcc ); if _fabg .addObject (_badbc ){_adege :=_fabg .addObjects (_badbc .PdfObjectDictionary );if _adege !=nil {return _adege ;};};return nil ;};if _gggba ,_dgebg :=_ecbcc .(*_egg .PdfObjectDictionary );_dgebg {_bag .Log .Trace ("\u0044\u0069\u0063\u0074");_bag .Log .Trace ("\u002d\u0020\u0025\u0073",_ecbcc ); for _ ,_efaed :=range _gggba .Keys (){_dagabg :=_gggba .Get (_efaed );if _ceegc ,_adeb :=_dagabg .(*_egg .PdfObjectReference );_adeb {_dagabg =_ceegc .Resolve ();_gggba .Set (_efaed ,_dagabg );};if _efaed !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _ccbga :=_fabg .addObjects (_dagabg ); _ccbga !=nil {return _ccbga ;};}else {if _ ,_baffcb :=_dagabg .(*_egg .PdfObjectNull );_baffcb {continue ;};if _ccada :=_fabg .hasObject (_dagabg );!_ccada {_bag .Log .Debug ("P\u0061\u0072\u0065\u006e\u0074\u0020o\u0062\u006a\u0020\u006e\u006f\u0074 \u0061\u0064\u0064\u0065\u0064\u0020\u0079e\u0074\u0021\u0021\u0020\u0025\u0054\u0020\u0025\u0070\u0020%\u0076",_dagabg ,_dagabg ,_dagabg ); _fabg ._afcd [_dagabg ]=append (_fabg ._afcd [_dagabg ],_gggba );};};};return nil ;};if _cfbgb ,_gffgfa :=_ecbcc .(*_egg .PdfObjectArray );_gffgfa {_bag .Log .Trace ("\u0041\u0072\u0072a\u0079");_bag .Log .Trace ("\u002d\u0020\u0025\u0073",_ecbcc );if _cfbgb ==nil {return _gd .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c"); };for _bgeea ,_cage :=range _cfbgb .Elements (){if _dccg ,_aefbb :=_cage .(*_egg .PdfObjectReference );_aefbb {_cage =_dccg .Resolve ();_cfbgb .Set (_bgeea ,_cage );};if _efegd :=_fabg .addObjects (_cage );_efegd !=nil {return _efegd ;};};return nil ;}; if _ ,_gbgeb :=_ecbcc .(*_egg .PdfObjectReference );_gbgeb {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043\u0061\u006e\u006e\u006f\u0074 \u0062\u0065\u0020\u0061\u0020\u0072e\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0020\u002d\u0020\u0067\u006f\u0074 \u0025\u0023\u0076\u0021",_ecbcc ); return _gd .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};const (ActionTypeGoTo PdfActionType ="\u0047\u006f\u0054\u006f";ActionTypeGoTo3DView PdfActionType ="\u0047\u006f\u0054\u006f\u0033\u0044\u0056\u0069\u0065\u0077"; ActionTypeGoToE PdfActionType ="\u0047\u006f\u0054o\u0045";ActionTypeGoToR PdfActionType ="\u0047\u006f\u0054o\u0052";ActionTypeHide PdfActionType ="\u0048\u0069\u0064\u0065";ActionTypeImportData PdfActionType ="\u0049\u006d\u0070\u006f\u0072\u0074\u0044\u0061\u0074\u0061"; ActionTypeJavaScript PdfActionType ="\u004a\u0061\u0076\u0061\u0053\u0063\u0072\u0069\u0070\u0074";ActionTypeLaunch PdfActionType ="\u004c\u0061\u0075\u006e\u0063\u0068";ActionTypeMovie PdfActionType ="\u004d\u006f\u0076i\u0065";ActionTypeNamed PdfActionType ="\u004e\u0061\u006de\u0064"; ActionTypeRendition PdfActionType ="\u0052e\u006e\u0064\u0069\u0074\u0069\u006fn";ActionTypeResetForm PdfActionType ="\u0052e\u0073\u0065\u0074\u0046\u006f\u0072m";ActionTypeSetOCGState PdfActionType ="S\u0065\u0074\u004f\u0043\u0047\u0053\u0074\u0061\u0074\u0065"; ActionTypeSound PdfActionType ="\u0053\u006f\u0075n\u0064";ActionTypeSubmitForm PdfActionType ="\u0053\u0075\u0062\u006d\u0069\u0074\u0046\u006f\u0072\u006d";ActionTypeThread PdfActionType ="\u0054\u0068\u0072\u0065\u0061\u0064";ActionTypeTrans PdfActionType ="\u0054\u0072\u0061n\u0073"; ActionTypeURI PdfActionType ="\u0055\u0052\u0049";); // PdfAnnotationProjection represents Projection annotations. type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};func (_abgce *PdfReader )loadPerms ()(*Permissions ,error ){if _dcegc :=_abgce ._eacf .Get ("\u0050\u0065\u0072m\u0073");_dcegc !=nil {if _fagbf ,_efebde :=_egg .GetDict (_dcegc ); _efebde {_ggbba :=_fagbf .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");if _ggbba ==nil {return nil ,nil ;};if _beega ,_fcdee :=_egg .GetIndirect (_ggbba );_fcdee {_cfede ,_gefde :=_abgce .newPdfSignatureFromIndirect (_beega );if _gefde !=nil {return nil ,_gefde ; };return NewPermissions (_cfede ),nil ;};return nil ,_f .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");};return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079"); };return nil ,nil ;}; // SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current // document revision. func (_ccgb *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_ccgb .updateObjectsDeep (dss .ToPdfObject (),nil );};_ccgb ._dgdc =dss ;}; // NewPdfAnnotationHighlight returns a new text highlight annotation. func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_ggdf :=NewPdfAnnotation ();_dfb :=&PdfAnnotationHighlight {};_dfb .PdfAnnotation =_ggdf ;_dfb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ggdf .SetContext (_dfb );return _dfb ;}; // NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object. func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}}; // Set applies flag fl to the flag's bitmask and returns the combined flag. func (_adecd FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_adecd .Mask ()|fl .Mask ())}; // SetPdfProducer sets the Producer attribute of the output PDF. func SetPdfProducer (producer string ){_cgag .Lock ();defer _cgag .Unlock ();_bdbde =producer };func _ggaeg (_bcdff *_egg .PdfObjectDictionary )(*PdfShadingType5 ,error ){_degaf :=PdfShadingType5 {};_afgee :=_bcdff .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065"); if _afgee ==nil {_bag .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064 \u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065\u0072C\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065"); return nil ,ErrRequiredAttributeMissing ;};_fgcec ,_edbbc :=_afgee .(*_egg .PdfObjectInteger );if !_edbbc {_bag .Log .Debug ("\u0042\u0069\u0074\u0073\u0050e\u0072\u0043\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_afgee ); return nil ,_egg .ErrTypeError ;};_degaf .BitsPerCoordinate =_fgcec ;_afgee =_bcdff .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _afgee ==nil {_bag .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064\u0020a\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073in\u0067\u003a\u0020B\u0069\u0074s\u0050\u0065\u0072\u0043\u006f\u006dp\u006f\u006ee\u006e\u0074"); return nil ,ErrRequiredAttributeMissing ;};_fgcec ,_edbbc =_afgee .(*_egg .PdfObjectInteger );if !_edbbc {_bag .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065r \u0028\u0067\u006ft\u0020%\u0054\u0029",_afgee ); return nil ,_egg .ErrTypeError ;};_degaf .BitsPerComponent =_fgcec ;_afgee =_bcdff .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _afgee ==nil {_bag .Log .Debug ("\u0052\u0065\u0071u\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0056\u0065\u0072\u0074\u0069c\u0065\u0073\u0050\u0065\u0072\u0052\u006f\u0077"); return nil ,ErrRequiredAttributeMissing ;};_fgcec ,_edbbc =_afgee .(*_egg .PdfObjectInteger );if !_edbbc {_bag .Log .Debug ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050\u0065\u0072\u0052\u006f\u0077\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006et\u0065\u0067\u0065\u0072\u0020(\u0067\u006ft\u0020\u0025\u0054\u0029",_afgee ); return nil ,_egg .ErrTypeError ;};_degaf .VerticesPerRow =_fgcec ;_afgee =_bcdff .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _afgee ==nil {_bag .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0044\u0065\u0063\u006f\u0064\u0065"); return nil ,ErrRequiredAttributeMissing ;};_acadb ,_edbbc :=_afgee .(*_egg .PdfObjectArray );if !_edbbc {_bag .Log .Debug ("\u0044\u0065\u0063\u006fd\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_afgee ); return nil ,_egg .ErrTypeError ;};_degaf .Decode =_acadb ;if _bfcef :=_bcdff .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_bfcef !=nil {_degaf .Function =[]PdfFunction {};if _gdbg ,_bcbbb :=_bfcef .(*_egg .PdfObjectArray );_bcbbb {for _ ,_abefb :=range _gdbg .Elements (){_cbeaa ,_bgea :=_bdefe (_abefb ); if _bgea !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_bgea );return nil ,_bgea ;};_degaf .Function =append (_degaf .Function ,_cbeaa ); };}else {_ceaba ,_ageae :=_bdefe (_bfcef );if _ageae !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_ageae );return nil ,_ageae ; };_degaf .Function =append (_degaf .Function ,_ceaba );};};return &_degaf ,nil ;}; // NewPdfAnnotationPolygon returns a new polygon annotation. func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_fcdb :=NewPdfAnnotation ();_dga :=&PdfAnnotationPolygon {};_dga .PdfAnnotation =_fcdb ;_dga .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fcdb .SetContext (_dga );return _dga ;}; // GetNumComponents returns the number of color components (3 for Lab). func (_aede *PdfColorLab )GetNumComponents ()int {return 3};func _dceb ()string {return _bag .Version }; // PdfColorspaceDeviceCMYK represents a CMYK32 colorspace. type PdfColorspaceDeviceCMYK struct{}; // PdfColorPattern represents a pattern color. type PdfColorPattern struct{Color PdfColor ;PatternName _egg .PdfObjectName ;}; // Inspect inspects the object types, subtypes and content in the PDF file returning a map of // object type to number of instances of each. func (_aafc *PdfReader )Inspect ()(map[string ]int ,error ){return _aafc ._dafgab .Inspect ()}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 3 for an RGB device. func (_dgbca *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};func (_eabgc *PdfFunctionType0 )processSamples ()error {_eaaeb :=_fb .ResampleBytes (_eabgc ._efacf ,_eabgc .BitsPerSample );_eabgc ._efbce =_eaaeb ;return nil ;}; // ToPdfObject converts rectangle to a PDF object. func (_egcd *PdfRectangle )ToPdfObject ()_egg .PdfObject {return _egg .MakeArray (_egg .MakeFloat (_egcd .Llx ),_egg .MakeFloat (_egcd .Lly ),_egg .MakeFloat (_egcd .Urx ),_egg .MakeFloat (_egcd .Ury ));}; // SetFillImage attach a model.Image to push button. func (_fafc *PdfFieldButton )SetFillImage (image *Image ){if _fafc .IsPush (){_fafc ._ffcc =image ;};}; // ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't. func (_aca *PdfFont )ToUnicode ()string {if _aca .baseFields ()._bfbgf ==nil {return "";};return _aca .baseFields ()._bfbgf .Name ();};func (_ebcg *PdfWriter )setCatalogVersion (){_ebcg ._acea .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_egg .MakeName (_f .Sprintf ("\u0025\u0064\u002e%\u0064",_ebcg ._dacce .Major ,_ebcg ._dacce .Minor ))); }; // SetPdfCreator sets the Creator attribute of the output PDF. func SetPdfCreator (creator string ){_cgag .Lock ();defer _cgag .Unlock ();_cefff =creator }; // ColorToRGB converts an Indexed color to an RGB color. func (_gbdaf *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _gbdaf .Base ==nil {return nil ,_gd .New ("\u0069\u006e\u0064\u0065\u0078\u0065d\u0020\u0062\u0061\u0073\u0065\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065\u0020\u0075\u006e\u0064\u0065f\u0069\u006e\u0065\u0064"); };return _gbdaf .Base .ColorToRGB (color );};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);func _cbcgg ()string {_cgag .Lock ();defer _cgag .Unlock ();return _eggc }; // ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly // or indirectly within an indirect object container. func (_acdf *PdfColorspaceDeviceNAttributes )ToPdfObject ()_egg .PdfObject {_efcc :=_egg .MakeDict ();if _acdf .Subtype !=nil {_efcc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_acdf .Subtype );};_efcc .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_acdf .Colorants ); _efcc .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_acdf .Process );_efcc .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_acdf .MixingHints );if _acdf ._cdgc !=nil {_acdf ._cdgc .PdfObject =_efcc ;return _acdf ._cdgc ; };return _efcc ;};func (_afca *PdfReader )newPdfAnnotationMovieFromDict (_edfe *_egg .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_gdde :=PdfAnnotationMovie {};_gdde .T =_edfe .Get ("\u0054");_gdde .Movie =_edfe .Get ("\u004d\u006f\u0076i\u0065"); _gdde .A =_edfe .Get ("\u0041");return &_gdde ,nil ;}; // StdFontName represents name of a standard font. type StdFontName =_bgd .StdFontName ; // SetFontByName sets the font specified by keyName to the given object. func (_fbdeb *PdfPageResources )SetFontByName (keyName _egg .PdfObjectName ,obj _egg .PdfObject )error {if _fbdeb .Font ==nil {_fbdeb .Font =_egg .MakeDict ();};_gbbf ,_bdacb :=_egg .TraceToDirectObject (_fbdeb .Font ).(*_egg .PdfObjectDictionary );if !_bdacb {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0021\u0020(\u0067\u006ft\u0020\u0025\u0054\u0029",_egg .TraceToDirectObject (_fbdeb .Font )); return _egg .ErrTypeError ;};_gbbf .Set (keyName ,obj );return nil ;}; // GetNumComponents returns the number of color components (1 for Indexed). func (_eeec *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};func (_eddad *PdfShading )getShadingDict ()(*_egg .PdfObjectDictionary ,error ){_caccc :=_eddad ._cfdbd ;if _acgeg ,_egac :=_caccc .(*_egg .PdfIndirectObject );_egac {_bcfda ,_abeead :=_acgeg .PdfObject .(*_egg .PdfObjectDictionary ); if !_abeead {return nil ,_egg .ErrTypeError ;};return _bcfda ,nil ;}else if _ebee ,_agbfc :=_caccc .(*_egg .PdfObjectStream );_agbfc {return _ebee .PdfObjectDictionary ,nil ;}else if _faebf ,_abbba :=_caccc .(*_egg .PdfObjectDictionary );_abbba {return _faebf ,nil ; }else {_bag .Log .Debug ("U\u006e\u0061\u0062\u006c\u0065\u0020t\u006f\u0020\u0061\u0063\u0063\u0065s\u0073\u0020\u0073\u0068\u0061\u0064\u0069n\u0067\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079");return nil ,_egg .ErrTypeError ;};};func (_abaee *PdfReader )buildPageList (_dcbfa *_egg .PdfIndirectObject ,_fcbbc *_egg .PdfIndirectObject ,_dafbb map[_egg .PdfObject ]struct{})error {if _dcbfa ==nil {return nil ; };if _ ,_becda :=_dafbb [_dcbfa ];_becda {_bag .Log .Debug ("\u0043\u0079\u0063l\u0069\u0063\u0020\u0072e\u0063\u0075\u0072\u0073\u0069\u006f\u006e,\u0020\u0073\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u0028\u0025\u0076\u0029",_dcbfa .ObjectNumber ); return nil ;};_dafbb [_dcbfa ]=struct{}{};_acfgf ,_cefg :=_dcbfa .PdfObject .(*_egg .PdfObjectDictionary );if !_cefg {return _gd .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_dgbbc ,_cefg :=(*_acfgf ).Get ("\u0054\u0079\u0070\u0065").(*_egg .PdfObjectName ); if !_cefg {if _acfgf .Get ("\u004b\u0069\u0064\u0073")==nil {return _gd .New ("\u006e\u006f\u0064\u0065 \u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0054\u0079p\u0065 \u0028\u0052\u0065\u0071\u0075\u0069\u0072e\u0064\u0029");};_bag .Log .Debug ("ER\u0052\u004fR\u003a\u0020\u006e\u006f\u0064\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067\u0020\u0054\u0079\u0070\u0065\u002c\u0020\u0062\u0075\u0074\u0020\u0068\u0061\u0073\u0020\u004b\u0069\u0064\u0073\u002e\u0020\u0041\u0073\u0073u\u006di\u006e\u0067\u0020\u0050\u0061\u0067\u0065\u0073 \u006eo\u0064\u0065."); _dgbbc =_egg .MakeName ("\u0050\u0061\u0067e\u0073");_acfgf .Set ("\u0054\u0079\u0070\u0065",_dgbbc );};_bag .Log .Trace ("\u0062\u0075\u0069\u006c\u0064\u0050a\u0067\u0065\u004c\u0069\u0073\u0074\u0020\u006e\u006f\u0064\u0065\u0020\u0074y\u0070\u0065\u003a\u0020\u0025\u0073\u0020(\u0025\u002b\u0076\u0029",*_dgbbc ,_dcbfa ); if *_dgbbc =="\u0050\u0061\u0067\u0065"{_fccfc ,_aeedd :=_abaee .newPdfPageFromDict (_acfgf );if _aeedd !=nil {return _aeedd ;};_fccfc .setContainer (_dcbfa );if _fcbbc !=nil {_acfgf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fcbbc );};_abaee ._abgbc =append (_abaee ._abgbc ,_dcbfa ); _abaee .PageList =append (_abaee .PageList ,_fccfc );return nil ;};if *_dgbbc !="\u0050\u0061\u0067e\u0073"{_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0054\u0061\u0062\u006c\u0065\u0020\u006f\u0066\u0020\u0063\u006fnt\u0065n\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067 \u006e\u006f\u006e\u0020\u0050\u0061\u0067\u0065\u002f\u0050\u0061\u0067\u0065\u0073\u0020\u006f\u0062j\u0065\u0063\u0074\u0021\u0020\u0028\u0025\u0073\u0029",_dgbbc ); return _gd .New ("\u0074\u0061\u0062\u006c\u0065\u0020o\u0066\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067 \u006e\u006f\u006e\u0020\u0050\u0061\u0067\u0065\u002f\u0050\u0061\u0067\u0065\u0073 \u006fb\u006a\u0065\u0063\u0074"); };if _fcbbc !=nil {_acfgf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fcbbc );};if !_abaee ._cede {_gbadb :=_abaee .traverseObjectData (_dcbfa );if _gbadb !=nil {return _gbadb ;};};_daebd ,_dcgdd :=_abaee ._dafgab .Resolve (_acfgf .Get ("\u004b\u0069\u0064\u0073")); if _dcgdd !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0046\u0061\u0069\u006c\u0065\u0064\u0020\u006c\u006f\u0061\u0064\u0069\u006eg\u0020\u004b\u0069\u0064\u0073\u0020\u006fb\u006a\u0065\u0063\u0074");return _dcgdd ;};var _ecad *_egg .PdfObjectArray ; _ecad ,_cefg =_daebd .(*_egg .PdfObjectArray );if !_cefg {_edegc ,_adge :=_daebd .(*_egg .PdfIndirectObject );if !_adge {return _gd .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ecad ,_cefg =_edegc .PdfObject .(*_egg .PdfObjectArray ); if !_cefg {return _gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u0069\u006ed\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006ae\u0063\u0074");};};_bag .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_ecad ); for _ageac ,_gfbac :=range _ecad .Elements (){_baece ,_aabfa :=_egg .GetIndirect (_gfbac );if !_aabfa {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074 \u006f\u0062\u006a\u0065\u0063t\u0020\u002d \u0028\u0025\u0073\u0029",_baece ); return _gd .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ecad .Set (_ageac ,_baece );_dcgdd =_abaee .buildPageList (_baece ,_dcbfa ,_dafbb );if _dcgdd !=nil {return _dcgdd ; };};return nil ;}; // OutlineDest represents the destination of an outline item. // It holds the page and the position on the page an outline item points to. type OutlineDest struct{PageObj *_egg .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};var _fgefg =map[string ]string {"\u0053\u0079\u006d\u0062\u006f\u006c":"\u0053\u0079\u006d\u0062\u006f\u006c\u0045\u006e\u0063o\u0064\u0069\u006e\u0067","\u005a\u0061\u0070f\u0044\u0069\u006e\u0067\u0062\u0061\u0074\u0073":"Z\u0061p\u0066\u0044\u0069\u006e\u0067\u0062\u0061\u0074s\u0045\u006e\u0063\u006fdi\u006e\u0067"}; // FieldAppearanceGenerator generates appearance stream for a given field. type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_aebb *PdfAcroForm ,_gfcag *PdfField ,_dfcc *PdfAnnotationWidget )(*_egg .PdfObjectDictionary ,error );}; // Height returns the height of `rect`. func (_bgad *PdfRectangle )Height ()float64 {return _dgb .Abs (_bgad .Ury -_bgad .Lly )}; // PdfAnnotationWidget represents Widget annotations. // Note: Widget annotations are used to display form fields. // (Section 12.5.6.19). type PdfAnnotationWidget struct{*PdfAnnotation ;H _egg .PdfObject ;MK _egg .PdfObject ;A _egg .PdfObject ;AA _egg .PdfObject ;BS _egg .PdfObject ;Parent _egg .PdfObject ;_daa *PdfField ;_gae bool ;}; // SetContext sets the sub action (context). func (_dad *PdfAction )SetContext (ctx PdfModel ){_dad ._abb =ctx }; // ToPdfObject implements interface PdfModel. func (_fbcgb *PdfAnnotationCaret )ToPdfObject ()_egg .PdfObject {_fbcgb .PdfAnnotation .ToPdfObject ();_dged :=_fbcgb ._cef ;_gdfa :=_dged .PdfObject .(*_egg .PdfObjectDictionary );_fbcgb .PdfAnnotationMarkup .appendToPdfDictionary (_gdfa );_gdfa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0043\u0061\u0072e\u0074")); _gdfa .SetIfNotNil ("\u0052\u0044",_fbcgb .RD );_gdfa .SetIfNotNil ("\u0053\u0079",_fbcgb .Sy );return _dged ;}; // WriteString outputs the object as it is to be written to file. func (_ggafb *pdfSignDictionary )WriteString ()string {_ggafb ._fcade =0;_ggafb ._aabac =0;_ggafb ._dcfaa =0;_ggafb ._gbeab =0;_cbcbd :=_dd .NewBuffer (nil );_cbcbd .WriteString ("\u003c\u003c");for _ ,_ffbebf :=range _ggafb .Keys (){_fbgade :=_ggafb .Get (_ffbebf ); switch _ffbebf {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_cbcbd .WriteString (_ffbebf .WriteString ());_cbcbd .WriteString ("\u0020");_ggafb ._dcfaa =_cbcbd .Len ();_cbcbd .WriteString (_fbgade .WriteString ());_cbcbd .WriteString ("\u0020"); _ggafb ._gbeab =_cbcbd .Len ()-1;case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_cbcbd .WriteString (_ffbebf .WriteString ());_cbcbd .WriteString ("\u0020");_ggafb ._fcade =_cbcbd .Len ();_cbcbd .WriteString (_fbgade .WriteString ());_cbcbd .WriteString ("\u0020"); _ggafb ._aabac =_cbcbd .Len ()-1;default:_cbcbd .WriteString (_ffbebf .WriteString ());_cbcbd .WriteString ("\u0020");_cbcbd .WriteString (_fbgade .WriteString ());};};_cbcbd .WriteString ("\u003e\u003e");return _cbcbd .String ();}; // ToPdfObject implements interface PdfModel. func (_fbaa *PdfAnnotationUnderline )ToPdfObject ()_egg .PdfObject {_fbaa .PdfAnnotation .ToPdfObject ();_fbcc :=_fbaa ._cef ;_fecd :=_fbcc .PdfObject .(*_egg .PdfObjectDictionary );_fbaa .PdfAnnotationMarkup .appendToPdfDictionary (_fecd );_fecd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee")); _fecd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_fbaa .QuadPoints );return _fbcc ;}; // ToPdfObject implements interface PdfModel. func (_baed *PdfAnnotationPopup )ToPdfObject ()_egg .PdfObject {_baed .PdfAnnotation .ToPdfObject ();_fge :=_baed ._cef ;_cce :=_fge .PdfObject .(*_egg .PdfObjectDictionary );_cce .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0050\u006f\u0070u\u0070")); _cce .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_baed .Parent );_cce .SetIfNotNil ("\u004f\u0070\u0065\u006e",_baed .Open );return _fge ;};func _ccgbe (_gdgc _egg .PdfObject )(*PdfPattern ,error ){_abafc :=&PdfPattern {};var _aeaccb *_egg .PdfObjectDictionary ; if _agdf ,_ceefd :=_egg .GetIndirect (_gdgc );_ceefd {_abafc ._fgec =_agdf ;_adddg ,_daedb :=_agdf .PdfObject .(*_egg .PdfObjectDictionary );if !_daedb {_bag .Log .Debug ("\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006ae\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0063\u006fn\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u0064\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079\u0020\u0028g\u006f\u0074\u0020%\u0054\u0029",_agdf .PdfObject ); return nil ,_egg .ErrTypeError ;};_aeaccb =_adddg ;}else if _cdbd ,_aebcf :=_egg .GetStream (_gdgc );_aebcf {_abafc ._fgec =_cdbd ;_aeaccb =_cdbd .PdfObjectDictionary ;}else {_bag .Log .Debug ("\u0050a\u0074\u0074e\u0072\u006e\u0020\u006eo\u0074\u0020\u0061n\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074 o\u0062\u006a\u0065c\u0074\u0020o\u0072\u0020\u0073\u0074\u0072\u0065a\u006d\u002e \u0025\u0054",_gdgc ); return nil ,_egg .ErrTypeError ;};_gfgd :=_aeaccb .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _gfgd ==nil {_bag .Log .Debug ("\u0050\u0064\u0066\u0020\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069n\u0067\u0020\u0050\u0061\u0074t\u0065\u0072n\u0054\u0079\u0070\u0065"); return nil ,ErrRequiredAttributeMissing ;};_ecbbg ,_dgcd :=_gfgd .(*_egg .PdfObjectInteger );if !_dgcd {_bag .Log .Debug ("\u0050\u0061tt\u0065\u0072\u006e \u0074\u0079\u0070\u0065 no\u0074 a\u006e\u0020\u0069\u006e\u0074\u0065\u0067er\u0020\u0028\u0067\u006f\u0074\u0020\u0025T\u0029",_gfgd ); return nil ,_egg .ErrTypeError ;};if *_ecbbg !=1&&*_ecbbg !=2{_bag .Log .Debug ("\u0050\u0061\u0074\u0074e\u0072\u006e\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d \u0031/\u0032\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",*_ecbbg );return nil ,_egg .ErrRangeError ; };_abafc .PatternType =int64 (*_ecbbg );switch *_ecbbg {case 1:_dagaaa ,_bdafc :=_cbcfd (_aeaccb );if _bdafc !=nil {return nil ,_bdafc ;};_dagaaa .PdfPattern =_abafc ;_abafc ._fcbdg =_dagaaa ;return _abafc ,nil ;case 2:_aedf ,_afedf :=_gfadc (_aeaccb ); if _afedf !=nil {return nil ,_afedf ;};_aedf .PdfPattern =_abafc ;_abafc ._fcbdg =_aedf ;return _abafc ,nil ;};return nil ,_gd .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");}; // NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing. func NewReaderForText (txt string )*PdfReader {return &PdfReader {_gbabf :map[_egg .PdfObject ]struct{}{},_dabaf :_fedbe (),_dafgab :_egg .NewParserFromString (txt )};}; // GetCharMetrics returns the char metrics for character code `code`. // How it works: // 1) It calls the GetCharMetrics function for the underlying font, either a simple font or // a Type0 font. The underlying font GetCharMetrics() functions do direct charcode ➞ metrics // mappings. // 2) If the underlying font's GetCharMetrics() doesn't have a CharMetrics for `code` then a // a CharMetrics with the FontDescriptor's /MissingWidth is returned. // 3) If there is no /MissingWidth then a failure is returned. // TODO(peterwilliams97) There is nothing callers can do if no CharMetrics are found so we might as // well give them 0 width. There is no need for the bool return. // TODO(gunnsth): Reconsider whether needed or if can map via GlyphName. func (_gcdc *PdfFont )GetCharMetrics (code _ef .CharCode )(CharMetrics ,bool ){var _gefd _bgd .CharMetrics ;switch _fdbcff :=_gcdc ._edde .(type ){case *pdfFontSimple :if _aaage ,_bcfg :=_fdbcff .GetCharMetrics (code );_bcfg {return _aaage ,_bcfg ;};case *pdfFontType0 :if _bbagdg ,_feda :=_fdbcff .GetCharMetrics (code ); _feda {return _bbagdg ,_feda ;};case *pdfCIDFontType0 :if _caaf ,_aabe :=_fdbcff .GetCharMetrics (code );_aabe {return _caaf ,_aabe ;};case *pdfCIDFontType2 :if _bcbdb ,_abeff :=_fdbcff .GetCharMetrics (code );_abeff {return _bcbdb ,_abeff ;};case *pdfFontType3 :if _dbeaa ,_fafdc :=_fdbcff .GetCharMetrics (code ); _fafdc {return _dbeaa ,_fafdc ;};default:_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020G\u0065\u0074\u0043h\u0061\u0072\u004de\u0074\u0072i\u0063\u0073\u0020\u006e\u006f\u0074 \u0069mp\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0020\u0074\u0079\u0070\u0065\u003d\u0025\u0054\u002e",_gcdc ._edde ); return _gefd ,false ;};if _egbc ,_bbgab :=_gcdc .GetFontDescriptor ();_bbgab ==nil &&_egbc !=nil {return _bgd .CharMetrics {Wx :_egbc ._eedab },true ;};_bag .Log .Debug ("\u0047\u0065\u0074\u0043\u0068\u0061\u0072\u004d\u0065\u0074\u0072\u0069\u0063\u0073\u003a\u0020\u004e\u006f\u0020\u006d\u0065\u0074\u0072\u0069c\u0073\u0020\u0066\u006f\u0072 \u0066\u006fn\u0074\u003d\u0025\u0073",_gcdc ); return _gefd ,false ;};func (_dggf *PdfReader )newPdfAnnotationTrapNetFromDict (_ecbe *_egg .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_cgcc :=PdfAnnotationTrapNet {};return &_cgcc ,nil ;}; // Evaluate runs the function on the passed in slice and returns the results. func (_agbf *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_bag .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };_efbcb :=[]float64 {0.0};if _agbf .C0 !=nil {_efbcb =_agbf .C0 ;};_cdddc :=[]float64 {1.0};if _agbf .C1 !=nil {_cdddc =_agbf .C1 ;};var _dfbfe []float64 ;for _bgdcb :=0;_bgdcb < len (_efbcb );_bgdcb ++{_gfecd :=_efbcb [_bgdcb ]+_dgb .Pow (x [0],_agbf .N )*(_cdddc [_bgdcb ]-_efbcb [_bgdcb ]); _dfbfe =append (_dfbfe ,_gfecd );};return _dfbfe ,nil ;};func (_cdca *PdfReader )newPdfPageFromDict (_cdfef *_egg .PdfObjectDictionary )(*PdfPage ,error ){_ecfaf :=NewPdfPage ();_ecfaf ._fgfd =_cdfef ;_aggcc :=*_cdfef ;_ecggf ,_eegac :=_aggcc .Get ("\u0054\u0079\u0070\u0065").(*_egg .PdfObjectName ); if !_eegac {return nil ,_gd .New ("\u006d\u0069ss\u0069\u006e\u0067/\u0069\u006e\u0076\u0061lid\u0020Pa\u0067\u0065\u0020\u0064\u0069\u0063\u0074io\u006e\u0061\u0072\u0079\u0020\u0054\u0079p\u0065");};if *_ecggf !="\u0050\u0061\u0067\u0065"{return nil ,_gd .New ("\u0070\u0061\u0067\u0065 \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079 \u0054y\u0070\u0065\u0020\u0021\u003d\u0020\u0050a\u0067\u0065"); };if _aaagc :=_aggcc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_aaagc !=nil {_ecfaf .Parent =_aaagc ;};if _gfad :=_aggcc .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_gfad !=nil {_agdca ,_ccaea :=_egg .GetString (_gfad ); if !_ccaea {return nil ,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u004c\u0061\u0073\u0074\u004d\u006f\u0064\u0069f\u0069\u0065\u0064\u0020\u0021=\u0020\u0073t\u0072\u0069\u006e\u0067");}; _bdabe ,_abcbb :=NewPdfDate (_agdca .Str ());if _abcbb !=nil {return nil ,_abcbb ;};_ecfaf .LastModified =&_bdabe ;};if _gbgd :=_aggcc .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_gbgd !=nil &&!_egg .IsNullObject (_gbgd ){_acecd ,_dccef :=_egg .GetDict (_gbgd ); if !_dccef {return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_gbgd );};var _bgbge error ;_ecfaf .Resources ,_bgbge =NewPdfPageResourcesFromDict (_acecd ); if _bgbge !=nil {return nil ,_bgbge ;};}else {_ccaff ,_ffegdc :=_ecfaf .getParentResources ();if _ffegdc !=nil {return nil ,_ffegdc ;};if _ccaff ==nil {_ccaff =NewPdfPageResources ();};_ecfaf .Resources =_ccaff ;};if _edadb :=_aggcc .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078"); _edadb !=nil {_bfega ,_dceed :=_egg .GetArray (_edadb );if !_dceed {return nil ,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u004d\u0065\u0064\u0069\u0061\u0042o\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079");};var _gdaaag error ; _ecfaf .MediaBox ,_gdaaag =NewPdfRectangle (*_bfega );if _gdaaag !=nil {return nil ,_gdaaag ;};};if _cfgae :=_aggcc .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_cfgae !=nil {_ecgge ,_gbdd :=_egg .GetArray (_cfgae );if !_gbdd {return nil ,_gd .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y"); };var _bcdgc error ;_ecfaf .CropBox ,_bcdgc =NewPdfRectangle (*_ecgge );if _bcdgc !=nil {return nil ,_bcdgc ;};};if _edefe :=_aggcc .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_edefe !=nil {_efgdc ,_adcab :=_egg .GetArray (_edefe );if !_adcab {return nil ,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u0042\u006c\u0065\u0065\u0064\u0042o\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079"); };var _bceca error ;_ecfaf .BleedBox ,_bceca =NewPdfRectangle (*_efgdc );if _bceca !=nil {return nil ,_bceca ;};};if _dabeg :=_aggcc .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_dabeg !=nil {_aceef ,_ceabg :=_egg .GetArray (_dabeg );if !_ceabg {return nil ,_gd .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y"); };var _cgacde error ;_ecfaf .TrimBox ,_cgacde =NewPdfRectangle (*_aceef );if _cgacde !=nil {return nil ,_cgacde ;};};if _ebgba :=_aggcc .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_ebgba !=nil {_aaegd ,_dbee :=_egg .GetArray (_ebgba );if !_dbee {return nil ,_gd .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079"); };var _fbbfd error ;_ecfaf .ArtBox ,_fbbfd =NewPdfRectangle (*_aaegd );if _fbbfd !=nil {return nil ,_fbbfd ;};};if _gbad :=_aggcc .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_gbad !=nil {_ecfaf .BoxColorInfo =_gbad ;};if _cabd :=_aggcc .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"); _cabd !=nil {_ecfaf .Contents =_cabd ;};if _bebcd :=_aggcc .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_bebcd !=nil {_baacc ,_gbeda :=_egg .GetNumberAsInt64 (_bebcd );if _gbeda !=nil {return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0067e\u0020\u0052\u006f\u0074\u0061\u0074\u0065\u0020\u006f\u0062j\u0065\u0063\u0074"); };_ecfaf .Rotate =&_baacc ;};if _bdfg :=_aggcc .Get ("\u0047\u0072\u006fu\u0070");_bdfg !=nil {_ecfaf .Group =_bdfg ;};if _bcfbc :=_aggcc .Get ("\u0054\u0068\u0075m\u0062");_bcfbc !=nil {_ecfaf .Thumb =_bcfbc ;};if _bedacd :=_aggcc .Get ("\u0042");_bedacd !=nil {_ecfaf .B =_bedacd ; };if _ddfg :=_aggcc .Get ("\u0044\u0075\u0072");_ddfg !=nil {_ecfaf .Dur =_ddfg ;};if _defca :=_aggcc .Get ("\u0054\u0072\u0061n\u0073");_defca !=nil {_ecfaf .Trans =_defca ;};if _cbddf :=_aggcc .Get ("\u0041\u0041");_cbddf !=nil {_ecfaf .AA =_cbddf ;}; if _fffg :=_aggcc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_fffg !=nil {_ecfaf .Metadata =_fffg ;};if _fdfagd :=_aggcc .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_fdfagd !=nil {_ecfaf .PieceInfo =_fdfagd ;};if _dafef :=_aggcc .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073"); _dafef !=nil {_ecfaf .StructParents =_dafef ;};if _effg :=_aggcc .Get ("\u0049\u0044");_effg !=nil {_ecfaf .ID =_effg ;};if _eeabe :=_aggcc .Get ("\u0050\u005a");_eeabe !=nil {_ecfaf .PZ =_eeabe ;};if _debad :=_aggcc .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f"); _debad !=nil {_ecfaf .SeparationInfo =_debad ;};if _bbbde :=_aggcc .Get ("\u0054\u0061\u0062\u0073");_bbbde !=nil {_ecfaf .Tabs =_bbbde ;};if _dggda :=_aggcc .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064"); _dggda !=nil {_ecfaf .TemplateInstantiated =_dggda ;};if _deaab :=_aggcc .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_deaab !=nil {_ecfaf .PresSteps =_deaab ;};if _ffcbb :=_aggcc .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_ffcbb !=nil {_ecfaf .UserUnit =_ffcbb ; };if _aaecg :=_aggcc .Get ("\u0056\u0050");_aaecg !=nil {_ecfaf .VP =_aaecg ;};if _babga :=_aggcc .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_babga !=nil {_ecfaf .Annots =_babga ;};_ecfaf ._gcfcb =_cdca ;return _ecfaf ,nil ;};var ImageHandling ImageHandler =DefaultImageHandler {}; func _bedd (_eafea *_egg .PdfObjectDictionary ,_befcd *fontCommon )(*pdfFontType0 ,error ){_gaeba ,_eadc :=_egg .GetArray (_eafea .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));if !_eadc {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049n\u0076\u0061\u006cid\u0020\u0044\u0065\u0073\u0063\u0065n\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073\u0020\u002d\u0020\u006e\u006f\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079 \u0025\u0073",_befcd ); return nil ,_egg .ErrRangeError ;};if _gaeba .Len ()!=1{_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0041\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u0021\u003d\u0020\u0031\u0020(%\u0064\u0029",_gaeba .Len ()); return nil ,_egg .ErrRangeError ;};_edba ,_cbgec :=_faffdb (_gaeba .Get (0),false );if _cbgec !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046a\u0069\u006c\u0065d \u006c\u006f\u0061\u0064\u0069\u006eg\u0020\u0064\u0065\u0073\u0063\u0065\u006e\u0064\u0061\u006e\u0074\u0020\u0066\u006f\u006et\u003a\u0020\u0065\u0072\u0072\u003d\u0025\u0076 \u0025\u0073",_cbgec ,_befcd ); return nil ,_cbgec ;};_gefff :=_dbaf (_befcd );_gefff .DescendantFont =_edba ;_egegb ,_eadc :=_egg .GetNameVal (_eafea .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _eadc {if _egegb =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_egegb =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_gefff ._bfddc =_ef .NewIdentityTextEncoder (_egegb ); }else if _ga .IsPredefinedCMap (_egegb ){_gefff ._fcffd ,_cbgec =_ga .LoadPredefinedCMap (_egegb );if _cbgec !=nil {_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020l\u006f\u0061\u0064\u0020\u0070\u0072\u0065\u0064\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0043\u004d\u0061\u0070\u0020\u0025\u0073\u003a\u0020\u0025\u0076",_egegb ,_cbgec ); };}else {_bag .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_egegb );};};if _acfc :=_edba .baseFields ()._bfbgf ;_acfc !=nil {if _dgga :=_acfc .Name ();_dgga =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_dgga =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_dgga =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_dgga =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_gefff ._bfddc =_ef .NewCMapEncoder (_egegb ,_gefff ._fcffd ,_acfc ); };};return _gefff ,nil ;};func (_edcge *PdfReader )loadStructure ()error {if _edcge ._dafgab .GetCrypter ()!=nil &&!_edcge ._dafgab .IsAuthenticated (){return _f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074"); };_fgdef :=_edcge ._dafgab .GetTrailer ();if _fgdef ==nil {return _f .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_dbgdf ,_gdae :=_fgdef .Get ("\u0052\u006f\u006f\u0074").(*_egg .PdfObjectReference );if !_gdae {return _f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0052\u006f\u006ft\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u003a \u0025\u0073\u0029",_fgdef ); };_eedde ,_bbbf :=_edcge ._dafgab .LookupByReference (*_dbgdf );if _bbbf !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0072\u0065\u0061\u0064\u0020\u0072\u006f\u006f\u0074\u0020\u0065\u006c\u0065\u006d\u0065\u006e\u0074\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_bbbf ); return _bbbf ;};_ebde ,_gdae :=_eedde .(*_egg .PdfIndirectObject );if !_gdae {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0028\u0072\u006f\u006f\u0074\u0020\u0025\u0071\u0029\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u0020\u0025\u0073\u0029",_eedde ,*_fgdef ); return _gd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_eadf ,_gdae :=(*_ebde ).PdfObject .(*_egg .PdfObjectDictionary );if !_gdae {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020I\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0063\u0061t\u0061\u006c\u006fg\u0020(\u0025\u0073\u0029",_ebde .PdfObject ); return _gd .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_bag .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_eadf );_dgfgb ,_gdae :=_eadf .Get ("\u0050\u0061\u0067e\u0073").(*_egg .PdfObjectReference ); if !_gdae {return _gd .New ("\u0070\u0061\u0067\u0065\u0073\u0020\u0069\u006e\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020b\u0065\u0020\u0061\u0020\u0072e\u0066\u0065r\u0065\u006e\u0063\u0065");};_gdabg ,_bbbf :=_edcge ._dafgab .LookupByReference (*_dgfgb ); if _bbbf !=nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020F\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020r\u0065\u0061\u0064 \u0070a\u0067\u0065\u0073");return _bbbf ;};_afdbae ,_gdae :=_gdabg .(*_egg .PdfIndirectObject );if !_gdae {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020P\u0061\u0067\u0065\u0073\u0020\u006f\u0062\u006a\u0065c\u0074\u0020\u0069n\u0076a\u006c\u0069\u0064"); _bag .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_afdbae );return _gd .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_efbcee ,_gdae :=_afdbae .PdfObject .(*_egg .PdfObjectDictionary ); if !_gdae {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0073\u0020\u006f\u0062j\u0065c\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0025\u0073\u0029",_afdbae );return _gd .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064"); };_fdcdf ,_gdae :=_egg .GetInt (_efbcee .Get ("\u0043\u006f\u0075n\u0074"));if !_gdae {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0050\u0061\u0067\u0065\u0073\u0020\u0063\u006f\u0075\u006e\u0074\u0020\u006fb\u006a\u0065\u0063\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064"); return _gd .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_gdae =_egg .GetName (_efbcee .Get ("\u0054\u0079\u0070\u0065"));!_gdae {_bag .Log .Debug ("\u0050\u0061\u0067\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020T\u0079\u0070\u0065\u0020\u0066\u0069\u0065\u006cd\u0020n\u006f\u0074\u0020\u0073\u0065\u0074\u002e\u0020\u0053\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0054\u0079p\u0065\u0020\u0074\u006f\u0020\u0050\u0061\u0067\u0065\u0073\u002e"); _efbcee .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0050\u0061\u0067e\u0073"));};if _bfgbb ,_aaacd :=_egg .GetInt (_efbcee .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_aaacd {_geba :=int64 (*_bfgbb );_edcge .Rotate =&_geba ;};_edcge ._bcccb =_dbgdf ; _edcge ._eacf =_eadf ;_edcge ._gbeagf =_efbcee ;_edcge ._cgcga =_afdbae ;_edcge ._fced =int (*_fdcdf );_edcge ._abgbc =[]*_egg .PdfIndirectObject {};_ffbff :=map[_egg .PdfObject ]struct{}{};_bbbf =_edcge .buildPageList (_afdbae ,nil ,_ffbff );if _bbbf !=nil {return _bbbf ; };_bag .Log .Trace ("\u002d\u002d\u002d");_bag .Log .Trace ("\u0054\u004f\u0043");_bag .Log .Trace ("\u0050\u0061\u0067e\u0073");_bag .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_edcge ._abgbc ),_edcge ._abgbc );_edcge ._cccbg ,_bbbf =_edcge .loadOutlines (); if _bbbf !=nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0062\u0075i\u006c\u0064\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065 t\u0072\u0065\u0065 \u0028%\u0073\u0029",_bbbf ); return _bbbf ;};_edcge .AcroForm ,_bbbf =_edcge .loadForms ();if _bbbf !=nil {return _bbbf ;};_edcge .DSS ,_bbbf =_edcge .loadDSS ();if _bbbf !=nil {return _bbbf ;};_edcge ._eacd ,_bbbf =_edcge .loadPerms ();if _bbbf !=nil {return _bbbf ;};return nil ; }; // SetType sets the field button's type. Can be one of: // - PdfFieldButtonPush for push button fields // - PdfFieldButtonCheckbox for checkbox fields // - PdfFieldButtonRadio for radio button fields // This sets the field's flag appropriately. func (_cfg *PdfFieldButton )SetType (btype ButtonType ){_dafe :=uint32 (0);if _cfg .Ff !=nil {_dafe =uint32 (*_cfg .Ff );};switch btype {case ButtonTypePush :_dafe |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_dafe |=FieldFlagRadio .Mask ();};_cfg .Ff =_egg .MakeInteger (int64 (_dafe )); }; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. func (_ecaa *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _ecaa .Alternate ==nil {if _ecaa .N ==1{_ggbf :=NewPdfColorspaceDeviceGray ();return _ggbf .ColorFromFloats (vals );}else if _ecaa .N ==3{_ggeb :=NewPdfColorspaceDeviceRGB (); return _ggeb .ColorFromFloats (vals );}else if _ecaa .N ==4{_fdcba :=NewPdfColorspaceDeviceCMYK ();return _fdcba .ColorFromFloats (vals );}else {return nil ,_gd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065"); };};return _ecaa .Alternate .ColorFromFloats (vals );}; // ToPdfOutlineItem returns a low level PdfOutlineItem object, // based on the current instance. func (_bgca *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_abdgd :=NewPdfOutlineItem ();_abdgd .Title =_egg .MakeEncodedString (_bgca .Title ,true );_abdgd .Dest =_bgca .Dest .ToPdfObject ();var _fabcf []*PdfOutlineItem ;var _bafgaa int64 ; var _gfede *PdfOutlineItem ;for _ ,_feebb :=range _bgca .Entries {_bcaa ,_bdgdf :=_feebb .ToPdfOutlineItem ();_bcaa .Parent =&_abdgd .PdfOutlineTreeNode ;if _gfede !=nil {_gfede .Next =&_bcaa .PdfOutlineTreeNode ;_bcaa .Prev =&_gfede .PdfOutlineTreeNode ; };_fabcf =append (_fabcf ,_bcaa );_bafgaa +=_bdgdf ;_gfede =_bcaa ;};_bcabd :=len (_fabcf );_bafgaa +=int64 (_bcabd );if _bcabd > 0{_abdgd .First =&_fabcf [0].PdfOutlineTreeNode ;_abdgd .Last =&_fabcf [_bcabd -1].PdfOutlineTreeNode ;_abdgd .Count =&_bafgaa ; };return _abdgd ,_bafgaa ;}; // ColorToRGB converts a CalRGB color to an RGB color. func (_abfd *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_dgab ,_eeea :=color .(*PdfColorCalRGB );if !_eeea {_bag .Log .Debug ("\u0049\u006e\u0070ut\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0063\u0061\u006c\u0020\u0072\u0067\u0062"); return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ecbc :=_dgab .A ();_edbdb :=_dgab .B ();_cfebf :=_dgab .C ();X :=_abfd .Matrix [0]*_dgb .Pow (_ecbc ,_abfd .Gamma [0])+_abfd .Matrix [3]*_dgb .Pow (_edbdb ,_abfd .Gamma [1])+_abfd .Matrix [6]*_dgb .Pow (_cfebf ,_abfd .Gamma [2]); Y :=_abfd .Matrix [1]*_dgb .Pow (_ecbc ,_abfd .Gamma [0])+_abfd .Matrix [4]*_dgb .Pow (_edbdb ,_abfd .Gamma [1])+_abfd .Matrix [7]*_dgb .Pow (_cfebf ,_abfd .Gamma [2]);Z :=_abfd .Matrix [2]*_dgb .Pow (_ecbc ,_abfd .Gamma [0])+_abfd .Matrix [5]*_dgb .Pow (_edbdb ,_abfd .Gamma [1])+_abfd .Matrix [8]*_dgb .Pow (_cfebf ,_abfd .Gamma [2]); _daaf :=3.240479*X +-1.537150*Y +-0.498535*Z ;_cdfg :=-0.969256*X +1.875992*Y +0.041556*Z ;_bgde :=0.055648*X +-0.204043*Y +1.057311*Z ;_daaf =_dgb .Min (_dgb .Max (_daaf ,0),1.0);_cdfg =_dgb .Min (_dgb .Max (_cdfg ,0),1.0);_bgde =_dgb .Min (_dgb .Max (_bgde ,0),1.0); return NewPdfColorDeviceRGB (_daaf ,_cdfg ,_bgde ),nil ;};func (_edf *PdfReader )newPdfActionSubmitFormFromDict (_bea *_egg .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_ged ,_fcd :=_fgb (_bea .Get ("\u0046"));if _fcd !=nil {return nil ,_fcd ;}; return &PdfActionSubmitForm {F :_ged ,Fields :_bea .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_bea .Get ("\u0046\u006c\u0061g\u0073")},nil ;}; // PdfColor interface represents a generic color in PDF. type PdfColor interface{}; // Field returns the parent form field of the widget annotation, if one exists. // NOTE: the method returns nil if the parent form field has not been parsed. func (_dgc *PdfAnnotationWidget )Field ()*PdfField {return _dgc ._daa }; // NewPdfActionMovie returns a new "movie" action. func NewPdfActionMovie ()*PdfActionMovie {_dab :=NewPdfAction ();_dac :=&PdfActionMovie {};_dac .PdfAction =_dab ;_dab .SetContext (_dac );return _dac ;};func (_dba *PdfReader )newPdfAnnotationProjectionFromDict (_gdba *_egg .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_bga :=&PdfAnnotationProjection {}; _abf ,_dbbc :=_dba .newPdfAnnotationMarkupFromDict (_gdba );if _dbbc !=nil {return nil ,_dbbc ;};_bga .PdfAnnotationMarkup =_abf ;return _bga ,nil ;}; // IsValid checks if the given pdf output intent type is valid. func (_bfbeb PdfOutputIntentType )IsValid ()bool {return _bfbeb >=PdfOutputIntentTypeA1 &&_bfbeb <=PdfOutputIntentTypeX ;}; // GetContainingPdfObject gets the primitive used to parse the color space. func (_cdfaa *PdfColorspaceICCBased )GetContainingPdfObject ()_egg .PdfObject {return _cdfaa ._bcda };func (_egbdd *PdfSignature )extractChainFromPKCS7 ()([]*_dg .Certificate ,error ){_ffdeb ,_fada :=_df .Parse (_egbdd .Contents .Bytes ());if _fada !=nil {return nil ,_fada ; };return _ffdeb .Certificates ,nil ;}; // GetPatternByName gets the pattern specified by keyName. Returns nil if not existing. // The bool flag indicated whether it was found or not. func (_edaaa *PdfPageResources )GetPatternByName (keyName _egg .PdfObjectName )(*PdfPattern ,bool ){if _edaaa .Pattern ==nil {return nil ,false ;};_cfge ,_fdfbd :=_egg .TraceToDirectObject (_edaaa .Pattern ).(*_egg .PdfObjectDictionary );if !_fdfbd {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074t\u0065\u0072\u006e\u0020\u0065\u006e\u0074r\u0079\u0020\u002d\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064i\u0063\u0074\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_edaaa .Pattern ); return nil ,false ;};if _aeedf :=_cfge .Get (keyName );_aeedf !=nil {_bagbb ,_eceaf :=_ccgbe (_aeedf );if _eceaf !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020f\u0061\u0069l\u0065\u0064\u0020\u0074\u006f\u0020\u006c\u006fa\u0064\u0020\u0070\u0064\u0066\u0020\u0070\u0061\u0074\u0074\u0065\u0072n\u003a\u0020\u0025\u0076",_eceaf ); return nil ,false ;};return _bagbb ,true ;};return nil ,false ;}; // NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object). func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_befdb :_egg .MakeIndirectObject (_egg .MakeDict ())};};func _ccaeg (_addac *PdfField ,_ddgb _egg .PdfObject )error {switch _addac .GetContext ().(type ){case *PdfFieldText :switch _cgga :=_ddgb .(type ){case *_egg .PdfObjectName :_cdaddc :=_cgga ; _bag .Log .Debug ("\u0055\u006e\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u003a\u0020\u0047\u006f\u0074 \u0056\u0020\u0061\u0073\u0020\u006e\u0061\u006d\u0065\u0020\u002d\u003e\u0020c\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0074\u006f s\u0074\u0072\u0069\u006e\u0067\u0020\u0027\u0025\u0073\u0027",_cdaddc .String ()); _addac .V =_egg .MakeEncodedString (_cgga .String (),true );case *_egg .PdfObjectString :_addac .V =_egg .MakeEncodedString (_cgga .String (),true );default:_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0055\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0074\u0065\u0078\u0074\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0056\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0054\u0020\u0028\u0025\u0023\u0076\u0029",_cgga ,_cgga ); };case *PdfFieldButton :switch _ddgb .(type ){case *_egg .PdfObjectName :if len (_ddgb .String ())> 0{_addac .V =_ddgb ;_bbeb (_addac ,_ddgb );};case *_egg .PdfObjectString :if len (_ddgb .String ())> 0{_addac .V =_egg .MakeName (_ddgb .String ());_bbeb (_addac ,_addac .V ); };default:_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u004e\u0045\u0058P\u0045\u0043\u0054\u0045\u0044\u0020\u0025\u0073\u0020\u002d>\u0020\u0025\u0076",_addac .PartialName (),_ddgb );_addac .V =_ddgb ;};case *PdfFieldChoice :switch _ddgb .(type ){case *_egg .PdfObjectName :if len (_ddgb .String ())> 0{_addac .V =_egg .MakeString (_ddgb .String ()); _bbeb (_addac ,_ddgb );};case *_egg .PdfObjectString :if len (_ddgb .String ())> 0{_addac .V =_ddgb ;_bbeb (_addac ,_egg .MakeName (_ddgb .String ()));};default:_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u004e\u0045\u0058P\u0045\u0043\u0054\u0045\u0044\u0020\u0025\u0073\u0020\u002d>\u0020\u0025\u0076",_addac .PartialName (),_ddgb ); _addac .V =_ddgb ;};case *PdfFieldSignature :_bag .Log .Debug ("\u0054\u004f\u0044\u004f\u003a \u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0061\u0070\u0070e\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u006e\u006f\u0074\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0079\u0065\u0074\u003a\u0020\u0025\u0073\u002f\u0025v",_addac .PartialName (),_ddgb ); };return nil ;}; // GetFontDescriptor returns the font descriptor for `font`. func (_fcff PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _fcff ._edde .getFontDescriptor (),nil ;};func _gfgga (_ada *_egg .PdfIndirectObject ,_fded *_egg .PdfObjectDictionary )(*DSS ,error ){if _ada ==nil {_ada =_egg .MakeIndirectObject (nil ); };_ada .PdfObject =_egg .MakeDict ();_ebbe :=map[string ]*VRI {};if _fadg ,_cfea :=_egg .GetDict (_fded .Get ("\u0056\u0052\u0049"));_cfea {for _ ,_eegg :=range _fadg .Keys (){if _bacc ,_accec :=_egg .GetDict (_fadg .Get (_eegg ));_accec {_ebbe [_fc .ToUpper (_eegg .String ())]=_cffe (_bacc ); };};};return &DSS {Certs :_cfdec (_fded .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_cfdec (_fded .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_cfdec (_fded .Get ("\u0043\u0052\u004c\u0073")),VRI :_ebbe ,_eaceg :_ada },nil ;}; // SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern. func (_fadbf *PdfPattern )SetContext (ctx PdfModel ){_fadbf ._fcbdg =ctx }; // GetContainingPdfObject returns the container of the DSS (indirect object). func (_dbfc *DSS )GetContainingPdfObject ()_egg .PdfObject {return _dbfc ._eaceg };func (_deffcb *XObjectImage )getParamsDict ()*_egg .PdfObjectDictionary {_bgfdg :=_egg .MakeDict ();_bgfdg .Set ("\u0057\u0069\u0064t\u0068",_egg .MakeInteger (*_deffcb .Width )); _bgfdg .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_egg .MakeInteger (*_deffcb .Height ));_bgfdg .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_egg .MakeInteger (int64 (_deffcb .ColorSpace .GetNumComponents ()))); _bgfdg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_egg .MakeInteger (*_deffcb .BitsPerComponent ));return _bgfdg ;}; // XObjectForm (Table 95 in 8.10.2). type XObjectForm struct{Filter _egg .StreamEncoder ;FormType _egg .PdfObject ;BBox _egg .PdfObject ;Matrix _egg .PdfObject ;Resources *PdfPageResources ;Group _egg .PdfObject ;Ref _egg .PdfObject ;MetaData _egg .PdfObject ;PieceInfo _egg .PdfObject ;LastModified _egg .PdfObject ; StructParent _egg .PdfObject ;StructParents _egg .PdfObject ;OPI _egg .PdfObject ;OC _egg .PdfObject ;Name _egg .PdfObject ; // Stream data. Stream []byte ;_acgef *_egg .PdfObjectStream ;}; // SetSamples convert samples to byte-data and sets for the image. // NOTE: The method resamples the data and this could lead to high memory usage, // especially on large images. It should be used only when it is not possible // to work with the image byte data directly. func (_affb *Image )SetSamples (samples []uint32 ){if _affb .BitsPerComponent < 8{samples =_affb .samplesAddPadding (samples );};_fafgba :=_fb .ResampleUint32 (samples ,int (_affb .BitsPerComponent ),8);_babbg :=make ([]byte ,len (_fafgba ));for _cdde ,_bfdg :=range _fafgba {_babbg [_cdde ]=byte (_bfdg ); };_affb .Data =_babbg ;};func _gfadc (_beeg *_egg .PdfObjectDictionary )(*PdfShadingPattern ,error ){_dabcf :=&PdfShadingPattern {};_bdcbg :=_beeg .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _bdcbg ==nil {_bag .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067"); return nil ,ErrRequiredAttributeMissing ;};_gcec ,_fedf :=_edbaa (_bdcbg );if _fedf !=nil {_bag .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_fedf );return nil ,_fedf ; };_dabcf .Shading =_gcec ;if _cbec :=_beeg .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_cbec !=nil {_ebeag ,_eddcgg :=_cbec .(*_egg .PdfObjectArray );if !_eddcgg {_bag .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_cbec ); return nil ,_egg .ErrTypeError ;};_dabcf .Matrix =_ebeag ;};if _fadbfg :=_beeg .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_fadbfg !=nil {_dabcf .ExtGState =_fadbfg ;};return _dabcf ,nil ;};type pdfFontType3 struct{fontCommon ;_acdgb *_egg .PdfIndirectObject ; // These fields are specific to Type 3 fonts. CharProcs _egg .PdfObject ;Encoding _egg .PdfObject ;FontBBox _egg .PdfObject ;FontMatrix _egg .PdfObject ;FirstChar _egg .PdfObject ;LastChar _egg .PdfObject ;Widths _egg .PdfObject ;Resources _egg .PdfObject ;_ecfgb map[_ef .CharCode ]float64 ;_fbfed _ef .TextEncoder ; };var (ErrRequiredAttributeMissing =_gd .New ("\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074t\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073s\u0069\u006e\u0067");ErrInvalidAttribute =_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065"); ErrTypeCheck =_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_ccgg =_gd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");ErrEncrypted =_gd .New ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074"); ErrNoFont =_gd .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");ErrFontNotSupported =_de .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_egg .ErrNotSupported ); ErrType1CFontNotSupported =_de .Errorf ("\u0054y\u0070\u00651\u0043\u0020\u0066o\u006e\u0074\u0073\u0020\u0061\u0072\u0065 \u006e\u006f\u0074\u0020\u0063\u0075r\u0072\u0065\u006e\u0074\u006c\u0079\u0020\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020\u0028\u0025\u0077\u0029",_egg .ErrNotSupported ); ErrType3FontNotSupported =_de .Errorf ("\u0054y\u0070\u00653\u0020\u0066\u006f\u006et\u0073\u0020\u0061r\u0065\u0020\u006e\u006f\u0074\u0020\u0063\u0075\u0072re\u006e\u0074\u006cy\u0020\u0073u\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0028%\u0077\u0029",_egg .ErrNotSupported ); ErrTTCmapNotSupported =_de .Errorf ("\u0075\u006es\u0075\u0070\u0070\u006fr\u0074\u0065d\u0020\u0054\u0072\u0075\u0065\u0054\u0079\u0070e\u0020\u0063\u006d\u0061\u0070\u0020\u0066\u006f\u0072\u006d\u0061\u0074 \u0028\u0025\u0077\u0029",_egg .ErrNotSupported ); ErrSignNotEnoughSpace =_de .Errorf ("\u0069\u006e\u0073\u0075\u0066\u0066\u0069c\u0069\u0065\u006et\u0020\u0073\u0070a\u0063\u0065 \u0061\u006c\u006c\u006f\u0063\u0061t\u0065d \u0066\u006f\u0072\u0020\u0074\u0068\u0065\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0073"); ErrSignNoCertificates =_de .Errorf ("\u0063\u006ful\u0064\u0020\u006eo\u0074\u0020\u0072\u0065tri\u0065ve\u0020\u0063\u0065\u0072\u0074\u0069\u0066ic\u0061\u0074\u0065\u0020\u0063\u0068\u0061i\u006e"););func (_eeaaa *PdfWriter )writeObjectsInStreams (_gaeff map[_egg .PdfObject ]bool )error {for _ ,_bafaca :=range _eeaaa ._bbead {if _caaac :=_gaeff [_bafaca ]; _caaac {continue ;};_gdfdc :=int64 (0);switch _fffccb :=_bafaca .(type ){case *_egg .PdfIndirectObject :_gdfdc =_fffccb .ObjectNumber ;case *_egg .PdfObjectStream :_gdfdc =_fffccb .ObjectNumber ;case *_egg .PdfObjectStreams :_gdfdc =_fffccb .ObjectNumber ; default:_bag .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0055n\u0073\u0075\u0070\u0070\u006f\u0072\u0074e\u0064\u0020\u0074\u0079\u0070\u0065 \u0069\u006e\u0020\u0077\u0072\u0069\u0074\u0065\u0072\u0020\u006fb\u006a\u0065\u0063\u0074\u0073\u003a\u0020\u0025\u0054",_bafaca ); return ErrTypeCheck ;};if _eeaaa ._agdag !=nil &&_bafaca !=_eeaaa ._afcc {_deefb :=_eeaaa ._agdag .Encrypt (_bafaca ,_gdfdc ,0);if _deefb !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0065\u006e\u0063\u0072\u0079\u0070\u0074\u0069\u006e\u0067\u0020(%\u0073\u0029",_deefb ); return _deefb ;};};_eeaaa .writeObject (int (_gdfdc ),_bafaca );};return nil ;}; // IsColored specifies if the pattern is colored. func (_fdfab *PdfTilingPattern )IsColored ()bool {if _fdfab .PaintType !=nil &&*_fdfab .PaintType ==1{return true ;};return false ;}; // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // components. The slice should contain a single PdfObjectFloat element in // range 0-1. func (_bdddb *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_accc ,_feafd :=_egg .GetNumbersAsFloat (objects ); if _feafd !=nil {return nil ,_feafd ;};return _bdddb .ColorFromFloats (_accc );};func (_fgg *PdfReader )newPdfAnnotationScreenFromDict (_gefc *_egg .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_dcgg :=PdfAnnotationScreen {};_dcgg .T =_gefc .Get ("\u0054"); _dcgg .MK =_gefc .Get ("\u004d\u004b");_dcgg .A =_gefc .Get ("\u0041");_dcgg .AA =_gefc .Get ("\u0041\u0041");return &_dcgg ,nil ;}; // GetNumComponents returns the number of color components (3 for CalRGB). func (_bebc *PdfColorCalRGB )GetNumComponents ()int {return 3};func (_aegcd *PdfReader )newPdfAnnotationFreeTextFromDict (_bgbg *_egg .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_eceb :=PdfAnnotationFreeText {};_faed ,_fgcg :=_aegcd .newPdfAnnotationMarkupFromDict (_bgbg ); if _fgcg !=nil {return nil ,_fgcg ;};_eceb .PdfAnnotationMarkup =_faed ;_eceb .DA =_bgbg .Get ("\u0044\u0041");_eceb .Q =_bgbg .Get ("\u0051");_eceb .RC =_bgbg .Get ("\u0052\u0043");_eceb .DS =_bgbg .Get ("\u0044\u0053");_eceb .CL =_bgbg .Get ("\u0043\u004c"); _eceb .IT =_bgbg .Get ("\u0049\u0054");_eceb .BE =_bgbg .Get ("\u0042\u0045");_eceb .RD =_bgbg .Get ("\u0052\u0044");_eceb .BS =_bgbg .Get ("\u0042\u0053");_eceb .LE =_bgbg .Get ("\u004c\u0045");return &_eceb ,nil ;}; // PdfAnnotationSquare represents Square annotations. // (Section 12.5.6.8). type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _egg .PdfObject ;IC _egg .PdfObject ;BE _egg .PdfObject ;RD _egg .PdfObject ;}; // PdfWriter handles outputing PDF content. type PdfWriter struct{_egad *_egg .PdfIndirectObject ;_gfbe *_egg .PdfIndirectObject ;_fcdab map[_egg .PdfObject ]struct{};_bbead []_egg .PdfObject ;_bacec map[_egg .PdfObject ]struct{};_fbaeb []*_egg .PdfIndirectObject ;_dcedg *PdfOutlineTreeNode ;_acea *_egg .PdfObjectDictionary ; _aedbe []_egg .PdfObject ;_efage *_egg .PdfIndirectObject ;_beegad *_d .Writer ;_cdaab int64 ;_gdbeb error ;_agdag *_egg .PdfCrypt ;_edafcc *_egg .PdfObjectDictionary ;_afcc *_egg .PdfIndirectObject ;_aaea *_egg .PdfObjectArray ;_dacce _egg .Version ;_bfga *bool ; _afcd map[_egg .PdfObject ][]*_egg .PdfObjectDictionary ;_aggec *PdfAcroForm ;_cfgb Optimizer ;_ebgad StandardApplier ;_ccceb map[int ]crossReference ;_ddfee int64 ;ObjNumOffset int ;_gabaca bool ;_ecfgc _egg .XrefTable ;_gccgfe int64 ;_ggdad int64 ;_fcgfe map[_egg .PdfObject ]int64 ; _adcd map[_egg .PdfObject ]struct{};_fbgdb string ;_fadef []*PdfOutputIntent ;_aafeg bool ;_caddc ,_bagaa string ;}; // ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should // be numeric. func (_abdgbd *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=_abdgbd .GetNumComponents (){return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cffce ,_gfaac :=_egg .GetNumbersAsFloat (objects ); if _gfaac !=nil {return nil ,_gfaac ;};return _abdgbd .ColorFromFloats (_cffce );}; // VRI represents a Validation-Related Information dictionary. // The VRI dictionary contains validation data in the form of // certificates, OCSP and CRL information, for a single signature. // See ETSI TS 102 778-4 V1.1.1 for more information. type VRI struct{Cert []*_egg .PdfObjectStream ;OCSP []*_egg .PdfObjectStream ;CRL []*_egg .PdfObjectStream ;TU *_egg .PdfObjectString ;TS *_egg .PdfObjectString ;};func (_gdgbg *pdfFontSimple )addEncoding ()error {var (_gadfc string ;_daggf map[_ef .CharCode ]_ef .GlyphName ; _fdac _ef .SimpleEncoder ;);if _gdgbg .Encoder ()!=nil {_ggefa ,_gffaa :=_gdgbg .Encoder ().(_ef .SimpleEncoder );if _gffaa &&_ggefa !=nil {_gadfc =_ggefa .BaseName ();};};if _gdgbg .Encoding !=nil {_dffdd ,_afdg ,_bgcfa :=_gdgbg .getFontEncoding ();if _bgcfa !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0042\u0061\u0073\u0065F\u006f\u006e\u0074\u003d\u0025\u0071\u0020\u0053u\u0062t\u0079\u0070\u0065\u003d\u0025\u0071\u0020\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003d\u0025\u0073 \u0028\u0025\u0054\u0029\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_gdgbg ._dgfdc ,_gdgbg ._ebdf ,_gdgbg .Encoding ,_gdgbg .Encoding ,_bgcfa ); return _bgcfa ;};if _dffdd !=""{_gadfc =_dffdd ;};_daggf =_afdg ;_fdac ,_bgcfa =_ef .NewSimpleTextEncoder (_gadfc ,_daggf );if _bgcfa !=nil {return _bgcfa ;};};if _fdac ==nil {_fcab :=_gdgbg ._bgacg ;if _fcab !=nil {switch _gdgbg ._ebdf {case "\u0054\u0079\u0070e\u0031":if _fcab .fontFile !=nil &&_fcab .fontFile ._gdcd !=nil {_bag .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065"); _fdac =_fcab .fontFile ._gdcd ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _fcab ._eccg !=nil {_bag .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_bcgcg ,_afbfe :=_fcab ._eccg .MakeEncoder (); if _afbfe ==nil {_fdac =_bcgcg ;};};};};};if _fdac !=nil {if _daggf !=nil {_bag .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_daggf ,_gdgbg .baseFields ()); _fdac =_ef .ApplyDifferences (_fdac ,_daggf );};_gdgbg .SetEncoder (_fdac );};return nil ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_bgggdd *PdfShadingType5 )ToPdfObject ()_egg .PdfObject {_bgggdd .PdfShading .ToPdfObject ();_aaggec ,_fcbeac :=_bgggdd .getShadingDict ();if _fcbeac !=nil {_bag .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074"); return nil ;};if _bgggdd .BitsPerCoordinate !=nil {_aaggec .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_bgggdd .BitsPerCoordinate );};if _bgggdd .BitsPerComponent !=nil {_aaggec .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_bgggdd .BitsPerComponent ); };if _bgggdd .VerticesPerRow !=nil {_aaggec .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_bgggdd .VerticesPerRow );};if _bgggdd .Decode !=nil {_aaggec .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_bgggdd .Decode ); };if _bgggdd .Function !=nil {if len (_bgggdd .Function )==1{_aaggec .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bgggdd .Function [0].ToPdfObject ());}else {_cfbbg :=_egg .MakeArray ();for _ ,_edefb :=range _bgggdd .Function {_cfbbg .Append (_edefb .ToPdfObject ()); };_aaggec .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cfbbg );};};return _bgggdd ._cfdbd ;}; // EncryptOptions represents encryption options for an output PDF. type EncryptOptions struct{Permissions _fe .Permissions ;Algorithm EncryptionAlgorithm ;};func (_gecfa *PdfSignature )extractChainFromCert ()([]*_dg .Certificate ,error ){var _aebcfe *_egg .PdfObjectArray ;switch _dfdec :=_gecfa .Cert .(type ){case *_egg .PdfObjectString :_aebcfe =_egg .MakeArray (_dfdec ); case *_egg .PdfObjectArray :_aebcfe =_dfdec ;default:return nil ,_f .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020s\u0069\u0067\u006e\u0061\u0074\u0075\u0072e\u0020\u0063\u0065\u0072\u0074\u0069f\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_dfdec ); };var _cebe _dd .Buffer ;for _ ,_aaffb :=range _aebcfe .Elements (){_dggefb ,_fgade :=_egg .GetString (_aaffb );if !_fgade {return nil ,_f .Errorf ("\u0069\u006ev\u0061\u006c\u0069\u0064\u0020\u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0074\u0079p\u0065\u0020\u0069\u006e\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0063\u0065r\u0074\u0069\u0066\u0069c\u0061\u0074\u0065\u0020\u0063h\u0061\u0069\u006e\u003a\u0020\u0025\u0054",_aaffb ); };if _ ,_gfeb :=_cebe .Write (_dggefb .Bytes ());_gfeb !=nil {return nil ,_gfeb ;};};return _dg .ParseCertificates (_cebe .Bytes ());}; // NewPdfActionGoToR returns a new "go to remote" action. func NewPdfActionGoToR ()*PdfActionGoToR {_cc :=NewPdfAction ();_gad :=&PdfActionGoToR {};_gad .PdfAction =_cc ;_cc .SetContext (_gad );return _gad ;}; // GetXObjectImageByName returns the XObjectImage with the specified name from the // page resources, if it exists. func (_bfcce *PdfPageResources )GetXObjectImageByName (keyName _egg .PdfObjectName )(*XObjectImage ,error ){_cbbad ,_bebgb :=_bfcce .GetXObjectByName (keyName );if _cbbad ==nil {return nil ,nil ;};if _bebgb !=XObjectTypeImage {return nil ,_gd .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065"); };_egaaa ,_accca :=NewXObjectImageFromStream (_cbbad );if _accca !=nil {return nil ,_accca ;};return _egaaa ,nil ;};func _dgdba (_dacae *PdfField )[]*PdfField {_ebdg :=[]*PdfField {_dacae };for _ ,_bcgcd :=range _dacae .Kids {_ebdg =append (_ebdg ,_dgdba (_bcgcd )...); };return _ebdg ;}; // GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject. func (_agfgc *PdfPage )GetContainingPdfObject ()_egg .PdfObject {return _agfgc ._dfee };func (_aea *PdfReader )newPdfAnnotationUnderlineFromDict (_gfg *_egg .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_bdag :=PdfAnnotationUnderline {};_baag ,_bbb :=_aea .newPdfAnnotationMarkupFromDict (_gfg ); if _bbb !=nil {return nil ,_bbb ;};_bdag .PdfAnnotationMarkup =_baag ;_bdag .QuadPoints =_gfg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_bdag ,nil ;}; // NewReaderOpts generates a default `ReaderOpts` instance. func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }}; // NewPdfReaderFromFile creates a new PdfReader from the speficied PDF file. // If ReaderOpts is nil it will be set to default value from NewReaderOpts. func NewPdfReaderFromFile (pdfFile string ,opts *ReaderOpts )(*PdfReader ,*_gf .File ,error ){const _gfgff ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065"; _deeag ,_gabac :=_gf .Open (pdfFile );if _gabac !=nil {return nil ,nil ,_gabac ;};_fbga ,_gabac :=_ffee (_deeag ,opts ,true ,_gfgff );if _gabac !=nil {_deeag .Close ();return nil ,nil ,_gabac ;};return _fbga ,_deeag ,nil ;}; // ToPdfObject implements interface PdfModel. func (_gdga *PdfActionSound )ToPdfObject ()_egg .PdfObject {_gdga .PdfAction .ToPdfObject ();_eaf :=_gdga ._bf ;_ag :=_eaf .PdfObject .(*_egg .PdfObjectDictionary );_ag .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeSound )));_ag .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_gdga .Sound ); _ag .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_gdga .Volume );_ag .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_gdga .Synchronous );_ag .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_gdga .Repeat );_ag .SetIfNotNil ("\u004d\u0069\u0078",_gdga .Mix ); return _eaf ;}; // WriteToFile writes the output PDF to file. func (_eceddb *PdfWriter )WriteToFile (outputFilePath string )error {_fcagf ,_daegc :=_gf .Create (outputFilePath );if _daegc !=nil {return _daegc ;};defer _fcagf .Close ();return _eceddb .Write (_fcagf );}; // GetRuneMetrics returns the character metrics for the rune. // A bool flag is returned to indicate whether or not the entry was found. func (_bbfd pdfFontSimple )GetRuneMetrics (r rune )(_bgd .CharMetrics ,bool ){if _bbfd ._dddd !=nil {_egegf ,_fgfbg :=_bbfd ._dddd .Read (r );if _fgfbg {return _egegf ,true ;};};_dcceg :=_bbfd .Encoder ();if _dcceg ==nil {_bag .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_bbfd ); return _bgd .CharMetrics {},false ;};_bcef ,_gedaab :=_dcceg .RuneToCharcode (r );if !_gedaab {if r !=' '{_bag .Log .Trace ("\u004e\u006f\u0020c\u0068\u0061\u0072\u0063o\u0064\u0065\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u003d\u0025\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",r ,_bbfd ); };return _bgd .CharMetrics {},false ;};_eafb ,_fdbg :=_bbfd .GetCharMetrics (_bcef );return _eafb ,_fdbg ;};func _fbbfc (_addg *_egg .PdfObjectDictionary ,_cedg *fontCommon ,_geggg _ef .TextEncoder )(*pdfFontSimple ,error ){_dfcff :=_gefca (_cedg );_dfcff ._cdee =_geggg ; if _geggg ==nil {_edaac :=_addg .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _edaac ==nil {_edaac =_egg .MakeInteger (0);};_dfcff .FirstChar =_edaac ;_fedb ,_aaef :=_egg .GetIntVal (_edaac );if !_aaef {_bag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0046i\u0072s\u0074C\u0068\u0061\u0072\u0020\u0074\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029",_edaac ); return nil ,_egg .ErrTypeError ;};_agfef :=_ef .CharCode (_fedb );_edaac =_addg .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _edaac ==nil {_edaac =_egg .MakeInteger (255);};_dfcff .LastChar =_edaac ;_fedb ,_aaef =_egg .GetIntVal (_edaac ); if !_aaef {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004c\u0061\u0073\u0074\u0043h\u0061\u0072\u0020\u0074\u0079\u0070\u0065 \u0028\u0025\u0054\u0029",_edaac );return nil ,_egg .ErrTypeError ; };_agabb :=_ef .CharCode (_fedb );_dfcff ._babec =make (map[_ef .CharCode ]float64 );_edaac =_addg .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _edaac !=nil {_dfcff .Widths =_edaac ;_cfbgf ,_aacbc :=_egg .GetArray (_edaac );if !_aacbc {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020W\u0069\u0064t\u0068\u0073\u0020\u0061\u0074\u0074\u0072\u0069b\u0075\u0074\u0065\u0020\u0021\u003d\u0020\u0061\u0072\u0072\u0061\u0079 \u0028\u0025\u0054\u0029",_edaac ); return nil ,_egg .ErrTypeError ;};_gdbcg ,_acgg :=_cfbgf .ToFloat64Array ();if _acgg !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0077\u0069d\u0074\u0068\u0073\u0020\u0074\u006f\u0020a\u0072\u0072\u0061\u0079"); return nil ,_acgg ;};if len (_gdbcg )!=int (_agabb -_agfef +1){_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0074\u0068s\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u0021\u003d\u0020\u0025\u0064 \u0028\u0025\u0064\u0029",_agabb -_agfef +1,len (_gdbcg )); return nil ,_egg .ErrRangeError ;};for _aaabc ,_cbddd :=range _gdbcg {_dfcff ._babec [_agfef +_ef .CharCode (_aaabc )]=_cbddd ;};};};_dfcff .Encoding =_egg .TraceToDirectObject (_addg .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _dfcff ,nil ; };func _gefca (_abdccd *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_abdccd }}; // Encoder returns the font's text encoder. func (_cfec pdfCIDFontType0 )Encoder ()_ef .TextEncoder {return _cfec ._dafeb }; // NewPdfActionGoTo3DView returns a new "goTo3DView" action. func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_fae :=NewPdfAction ();_aba :=&PdfActionGoTo3DView {};_aba .PdfAction =_fae ;_fae .SetContext (_aba );return _aba ;};func _aggea (_addag _egg .PdfObject )(*PdfPageResourcesColorspaces ,error ){_gbbac :=&PdfPageResourcesColorspaces {}; if _cbgeb ,_acgd :=_addag .(*_egg .PdfIndirectObject );_acgd {_gbbac ._bcecc =_cbgeb ;_addag =_cbgeb .PdfObject ;};_eabb ,_bcdac :=_egg .GetDict (_addag );if !_bcdac {return nil ,_gd .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };_gbbac .Names =[]string {};_gbbac .Colorspaces =map[string ]PdfColorspace {};for _ ,_dbdfd :=range _eabb .Keys (){_gbdf :=_eabb .Get (_dbdfd );_gbbac .Names =append (_gbbac .Names ,string (_dbdfd ));_gffbe ,_fdcc :=NewPdfColorspaceFromPdfObject (_gbdf ); if _fdcc !=nil {return nil ,_fdcc ;};_gbbac .Colorspaces [string (_dbdfd )]=_gffbe ;};return _gbbac ,nil ;}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 1 for a CalGray device. func (_cddg *PdfColorspaceCalGray )GetNumComponents ()int {return 1}; // GetPdfVersion gets the version of the PDF used within this document. func (_fbdfb *PdfWriter )GetPdfVersion ()string {return _fbdfb .getPdfVersion ()}; // GetFontByName gets the font specified by keyName. Returns the PdfObject which // the entry refers to. Returns a bool value indicating whether or not the entry was found. func (_fcgbd *PdfPageResources )GetFontByName (keyName _egg .PdfObjectName )(_egg .PdfObject ,bool ){if _fcgbd .Font ==nil {return nil ,false ;};_gcddg ,_egceef :=_egg .TraceToDirectObject (_fcgbd .Font ).(*_egg .PdfObjectDictionary );if !_egceef {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0021\u0020(\u0067\u006ft\u0020\u0025\u0054\u0029",_egg .TraceToDirectObject (_fcgbd .Font )); return nil ,false ;};if _edee :=_gcddg .Get (keyName );_edee !=nil {return _edee ,true ;};return nil ,false ;}; // GetContainingPdfObject returns the container of the resources object (indirect object). func (_ceff *PdfPageResources )GetContainingPdfObject ()_egg .PdfObject {return _ceff ._cbcba }; // SetPdfSubject sets the Subject attribute of the output PDF. func SetPdfSubject (subject string ){_cgag .Lock ();defer _cgag .Unlock ();_eggc =subject };var _ pdfFont =(*pdfFontType0 )(nil ); // ToPdfObject returns an indirect object containing the signature field dictionary. func (_ccaf *PdfFieldSignature )ToPdfObject ()_egg .PdfObject {if _ccaf .PdfAnnotationWidget !=nil {_ccaf .PdfAnnotationWidget .ToPdfObject ();};_ccaf .PdfField .ToPdfObject ();_aeded :=_ccaf ._agef ;_baacg :=_aeded .PdfObject .(*_egg .PdfObjectDictionary ); _baacg .SetIfNotNil ("\u0046\u0054",_egg .MakeName ("\u0053\u0069\u0067"));_baacg .SetIfNotNil ("\u004c\u006f\u0063\u006b",_ccaf .Lock );_baacg .SetIfNotNil ("\u0053\u0056",_ccaf .SV );if _ccaf .V !=nil {_baacg .SetIfNotNil ("\u0056",_ccaf .V .ToPdfObject ()); };return _aeded ;}; // GetContainingPdfObject implements interface PdfModel. func (_adf *PdfAnnotation )GetContainingPdfObject ()_egg .PdfObject {return _adf ._cef }; // PdfActionGoToR represents a GoToR action. type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _egg .PdfObject ;NewWindow _egg .PdfObject ;}; // ToPdfObject returns colorspace in a PDF object format [name dictionary] func (_ffcg *PdfColorspaceLab )ToPdfObject ()_egg .PdfObject {_afcg :=_egg .MakeArray ();_afcg .Append (_egg .MakeName ("\u004c\u0061\u0062"));_ggef :=_egg .MakeDict ();if _ffcg .WhitePoint !=nil {_bcec :=_egg .MakeArray (_egg .MakeFloat (_ffcg .WhitePoint [0]),_egg .MakeFloat (_ffcg .WhitePoint [1]),_egg .MakeFloat (_ffcg .WhitePoint [2])); _ggef .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_bcec );}else {_bag .Log .Error ("\u004c\u0061\u0062: \u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0057h\u0069t\u0065P\u006fi\u006e\u0074\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029"); };if _ffcg .BlackPoint !=nil {_egfe :=_egg .MakeArray (_egg .MakeFloat (_ffcg .BlackPoint [0]),_egg .MakeFloat (_ffcg .BlackPoint [1]),_egg .MakeFloat (_ffcg .BlackPoint [2]));_ggef .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_egfe ); };if _ffcg .Range !=nil {_gaea :=_egg .MakeArray (_egg .MakeFloat (_ffcg .Range [0]),_egg .MakeFloat (_ffcg .Range [1]),_egg .MakeFloat (_ffcg .Range [2]),_egg .MakeFloat (_ffcg .Range [3]));_ggef .Set ("\u0052\u0061\u006eg\u0065",_gaea );};_afcg .Append (_ggef ); if _ffcg ._ceaag !=nil {_ffcg ._ceaag .PdfObject =_afcg ;return _ffcg ._ceaag ;};return _afcg ;};func (_gcgcd *LTV )validateSig (_eedec *PdfSignature )error {if _eedec ==nil ||_eedec .Contents ==nil ||len (_eedec .Contents .Bytes ())==0{return _f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_eedec ); };return nil ;}; // AppendContentStream adds content stream by string. Appends to the last // contentstream instance if many. func (_fcbf *PdfPage )AppendContentStream (contentStr string )error {_faaa ,_afgc :=_fcbf .GetContentStreams ();if _afgc !=nil {return _afgc ;};if len (_faaa )==0{_faaa =[]string {contentStr };return _fcbf .SetContentStreams (_faaa ,_egg .NewFlateEncoder ()); };var _fffe _dd .Buffer ;_fffe .WriteString (_faaa [len (_faaa )-1]);_fffe .WriteString ("\u000a");_fffe .WriteString (contentStr );_faaa [len (_faaa )-1]=_fffe .String ();return _fcbf .SetContentStreams (_faaa ,_egg .NewFlateEncoder ());}; // NewPdfPageResources returns a new PdfPageResources object. func NewPdfPageResources ()*PdfPageResources {_aeecg :=&PdfPageResources {};_aeecg ._cbcba =_egg .MakeDict ();return _aeecg ;}; // Encrypt encrypts the output file with a specified user/owner password. func (_dcefc *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_eegaf :=RC4_128bit ;if options !=nil {_eegaf =options .Algorithm ;};_cgdad :=_fe .PermOwner ;if options !=nil {_cgdad =options .Permissions ;};var _edca _gfc .Filter ; switch _eegaf {case RC4_128bit :_edca =_gfc .NewFilterV2 (16);case AES_128bit :_edca =_gfc .NewFilterAESV2 ();case AES_256bit :_edca =_gfc .NewFilterAESV3 ();default:return _f .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm ); };_gaaab ,_gafec ,_eacga :=_egg .PdfCryptNewEncrypt (_edca ,userPass ,ownerPass ,_cgdad );if _eacga !=nil {return _eacga ;};_dcefc ._agdag =_gaaab ;if _gafec .Major !=0{_dcefc .SetVersion (_gafec .Major ,_gafec .Minor );};_dcefc ._edafcc =_gafec .Encrypt ; _dcefc ._caddc ,_dcefc ._bagaa =_gafec .ID0 ,_gafec .ID1 ;_gcdfc :=_egg .MakeIndirectObject (_gafec .Encrypt );_dcefc ._afcc =_gcdfc ;_dcefc .addObject (_gcdfc );return nil ;}; // PdfActionImportData represents a importData action. type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;}; // HasColorspaceByName checks if the colorspace with the specified name exists in the page resources. func (_ccgae *PdfPageResources )HasColorspaceByName (keyName _egg .PdfObjectName )bool {_gggadd ,_ccdae :=_ccgae .GetColorspaces ();if _ccdae !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0072\u0061\u0063\u0065: \u0025\u0076",_ccdae ); return false ;};if _gggadd ==nil {return false ;};_ ,_accgd :=_gggadd .Colorspaces [string (keyName )];return _accgd ;}; // ColorFromFloats returns a new PdfColorDevice based on the input slice of // color components. The slice should contain four elements representing the // cyan, magenta, yellow and key components of the color. The values of the // elements should be between 0 and 1. func (_ddef *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cgdd :=vals [0];if _cgdd < 0.0||_cgdd > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cgdd ); return nil ,ErrColorOutOfRange ;};_dfgg :=vals [1];if _dfgg < 0.0||_dfgg > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_dfgg );return nil ,ErrColorOutOfRange ; };_cfed :=vals [2];if _cfed < 0.0||_cfed > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cfed );return nil ,ErrColorOutOfRange ;};_bbgc :=vals [3]; if _bbgc < 0.0||_bbgc > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bbgc );return nil ,ErrColorOutOfRange ;};_fcacf :=NewPdfColorDeviceCMYK (_cgdd ,_dfgg ,_cfed ,_bbgc ); return _fcacf ,nil ;}; // NewPdfAnnotationUnderline returns a new text underline annotation. func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_bdf :=NewPdfAnnotation ();_bge :=&PdfAnnotationUnderline {};_bge .PdfAnnotation =_bdf ;_bge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bdf .SetContext (_bge );return _bge ;};func (_ggab *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"}; // ToPdfObject returns the PDF representation of the colorspace. func (_gbfg *PdfPageResourcesColorspaces )ToPdfObject ()_egg .PdfObject {_dbcgb :=_egg .MakeDict ();for _ ,_feeac :=range _gbfg .Names {_dbcgb .Set (_egg .PdfObjectName (_feeac ),_gbfg .Colorspaces [_feeac ].ToPdfObject ());};if _gbfg ._bcecc !=nil {_gbfg ._bcecc .PdfObject =_dbcgb ; return _gbfg ._bcecc ;};return _dbcgb ;}; // SetContentStream sets the pattern cell's content stream. func (_edbef *PdfTilingPattern )SetContentStream (content []byte ,encoder _egg .StreamEncoder )error {_eead ,_cacb :=_edbef ._fgec .(*_egg .PdfObjectStream );if !_cacb {_bag .Log .Debug ("\u0054\u0069l\u0069\u006e\u0067\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_edbef ._fgec ); return _egg .ErrTypeError ;};if encoder ==nil {encoder =_egg .NewRawEncoder ();};_fdadg :=_eead .PdfObjectDictionary ;_gafb :=encoder .MakeStreamDict ();_fdadg .Merge (_gafb );_cgfg ,_dgae :=encoder .EncodeBytes (content );if _dgae !=nil {return _dgae ; };_fdadg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_cgfg ))));_eead .Stream =_cgfg ;return nil ;}; // GetMediaBox gets the inheritable media box value, either from the page // or a higher up page/pages struct. func (_cdcaf *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _cdcaf .MediaBox !=nil {return _cdcaf .MediaBox ,nil ;};_fedda :=_cdcaf .Parent ;for _fedda !=nil {_gfaafa ,_efbag :=_egg .GetDict (_fedda );if !_efbag {return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063t\u0073\u0020\u0064\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079"); };if _ebgdc :=_gfaafa .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_ebgdc !=nil {_cdbg ,_efec :=_egg .GetArray (_ebgdc );if !_efec {return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078"); };_beeff ,_ggee :=NewPdfRectangle (*_cdbg );if _ggee !=nil {return nil ,_ggee ;};return _beeff ,nil ;};_fedda =_gfaafa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_gd .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064"); }; // GetContentStream returns the XObject Form's content stream. func (_ebcgb *XObjectForm )GetContentStream ()([]byte ,error ){_dbafe ,_bcgcdb :=_egg .DecodeStream (_ebcgb ._acgef );if _bcgcdb !=nil {return nil ,_bcgcdb ;};return _dbafe ,nil ;}; // ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks. type ContentStreamWrapper interface{WrapContentStream (_ageg *PdfPage )error ;};func (_aeaa *PdfAppender )updateObjectsDeep (_abba _egg .PdfObject ,_ddfb map[_egg .PdfObject ]struct{}){if _ddfb ==nil {_ddfb =map[_egg .PdfObject ]struct{}{};};if _ ,_beae :=_ddfb [_abba ]; _beae ||_abba ==nil {return ;};_ddfb [_abba ]=struct{}{};_egcf :=_egg .ResolveReferencesDeep (_abba ,_aeaa ._bdbf );if _egcf !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_egcf );};switch _aeb :=_abba .(type ){case *_egg .PdfIndirectObject :switch {case _aeb .GetParser ()==_aeaa ._bgaa ._dafgab :return ; case _aeb .GetParser ()==_aeaa .Reader ._dafgab :_bdgg ,_ :=_aeaa ._bgaa .GetIndirectObjectByNumber (int (_aeb .ObjectNumber ));_befe ,_agab :=_bdgg .(*_egg .PdfIndirectObject );if _agab &&_befe !=nil {if _befe .PdfObject !=_aeb .PdfObject &&_befe .PdfObject .WriteString ()!=_aeb .PdfObject .WriteString (){_aeaa .addNewObject (_abba ); _aeaa ._eegc [_abba ]=_aeb .ObjectNumber ;};};default:_aeaa .addNewObject (_abba );};_aeaa .updateObjectsDeep (_aeb .PdfObject ,_ddfb );case *_egg .PdfObjectArray :for _ ,_fgbfe :=range _aeb .Elements (){_aeaa .updateObjectsDeep (_fgbfe ,_ddfb );};case *_egg .PdfObjectDictionary :for _ ,_baef :=range _aeb .Keys (){_aeaa .updateObjectsDeep (_aeb .Get (_baef ),_ddfb ); };case *_egg .PdfObjectStreams :if _aeb .GetParser ()!=_aeaa ._bgaa ._dafgab {for _ ,_bafga :=range _aeb .Elements (){_aeaa .updateObjectsDeep (_bafga ,_ddfb );};};case *_egg .PdfObjectStream :switch {case _aeb .GetParser ()==_aeaa ._bgaa ._dafgab :return ; case _aeb .GetParser ()==_aeaa .Reader ._dafgab :if _efag ,_bfcf :=_aeaa ._bgaa ._dafgab .LookupByReference (_aeb .PdfObjectReference );_bfcf ==nil {var _ccce bool ;if _bddg ,_ddga :=_egg .GetStream (_efag );_ddga &&_dd .Equal (_bddg .Stream ,_aeb .Stream ){_ccce =true ; };if _edc ,_bdab :=_egg .GetDict (_efag );_ccce &&_bdab {_ccce =_edc .WriteString ()==_aeb .PdfObjectDictionary .WriteString ();};if _ccce {return ;};};if _aeb .ObjectNumber !=0{_aeaa ._eegc [_abba ]=_aeb .ObjectNumber ;};default:if _ ,_bgac :=_aeaa ._bdba [_abba ]; !_bgac {_aeaa .addNewObject (_abba );};};_aeaa .updateObjectsDeep (_aeb .PdfObjectDictionary ,_ddfb );};}; // CharMetrics represents width and height metrics of a glyph. type CharMetrics =_bgd .CharMetrics ;const (_ PdfOutputIntentType =iota ;PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ;); // GetShadingByName gets the shading specified by keyName. Returns nil if not existing. // The bool flag indicated whether it was found or not. func (_beagac *PdfPageResources )GetShadingByName (keyName _egg .PdfObjectName )(*PdfShading ,bool ){if _beagac .Shading ==nil {return nil ,false ;};_fcga ,_ecbdf :=_egg .TraceToDirectObject (_beagac .Shading ).(*_egg .PdfObjectDictionary );if !_ecbdf {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0068\u0061d\u0069\u006e\u0067\u0020\u0065\u006e\u0074r\u0079\u0020\u002d\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064i\u0063\u0074\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_beagac .Shading ); return nil ,false ;};if _aceg :=_fcga .Get (keyName );_aceg !=nil {_ceged ,_dcffa :=_edbaa (_aceg );if _dcffa !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020f\u0061\u0069l\u0065\u0064\u0020\u0074\u006f\u0020\u006c\u006fa\u0064\u0020\u0070\u0064\u0066\u0020\u0073\u0068\u0061\u0064\u0069\u006eg\u003a\u0020\u0025\u0076",_dcffa ); return nil ,false ;};return _ceged ,true ;};return nil ,false ;}; // NewPdfActionRendition returns a new "rendition" action. func NewPdfActionRendition ()*PdfActionRendition {_aa :=NewPdfAction ();_dgg :=&PdfActionRendition {};_dgg .PdfAction =_aa ;_aa .SetContext (_dgg );return _dgg ;}; // NewPdfAnnotationPolyLine returns a new polyline annotation. func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_cga :=NewPdfAnnotation ();_fgff :=&PdfAnnotationPolyLine {};_fgff .PdfAnnotation =_cga ;_fgff .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cga .SetContext (_fgff );return _fgff ;}; // SetXObjectByName adds the XObject from the passed in stream to the page resources. // The added XObject is identified by the specified name. func (_ffdbc *PdfPageResources )SetXObjectByName (keyName _egg .PdfObjectName ,stream *_egg .PdfObjectStream )error {if _ffdbc .XObject ==nil {_ffdbc .XObject =_egg .MakeDict ();};_faaefg :=_egg .TraceToDirectObject (_ffdbc .XObject );_afbff ,_fdbab :=_faaefg .(*_egg .PdfObjectDictionary ); if !_fdbab {_bag .Log .Debug ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0058\u004f\u0062j\u0065\u0063\u0074\u002c\u0020\u0067\u006f\u0074\u0020\u0025T\u002f\u0025\u0054",_ffdbc .XObject ,_faaefg );return _gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072"); };_afbff .Set (keyName ,stream );return nil ;}; // ToPdfObject implements interface PdfModel. func (_cecb *PdfActionTrans )ToPdfObject ()_egg .PdfObject {_cecb .PdfAction .ToPdfObject ();_gbf :=_cecb ._bf ;_gfaa :=_gbf .PdfObject .(*_egg .PdfObjectDictionary );_gfaa .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeTrans )));_gfaa .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_cecb .Trans ); return _gbf ;}; // GetContainingPdfObject implements interface PdfModel. func (_bgbbd *PdfSignature )GetContainingPdfObject ()_egg .PdfObject {return _bgbbd ._ccbda };func (_cgbf *DSS )addCerts (_cace [][]byte )([]*_egg .PdfObjectStream ,error ){return _cgbf .add (&_cgbf .Certs ,_cgbf ._gafe ,_cace );}; // NewPdfColorspaceSpecialIndexed returns a new Indexed color. func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};}; // NewPdfColorspaceSpecialPattern returns a new pattern color. func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};}; // GetRuneMetrics returns the character metrics for the specified rune. // A bool flag is returned to indicate whether or not the entry was found. func (_degb pdfCIDFontType2 )GetRuneMetrics (r rune )(_bgd .CharMetrics ,bool ){_ddac ,_eaaa :=_degb ._beec [r ];if !_eaaa {_gcdd ,_accb :=_egg .GetInt (_degb .DW );if !_accb {return _bgd .CharMetrics {},false ;};_ddac =int (*_gcdd );};return _bgd .CharMetrics {Wx :float64 (_ddac )},true ; };func (_abcd fontCommon )coreString ()string {_ebfde :="";if _abcd ._bgacg !=nil {_ebfde =_abcd ._bgacg .String ();};return _f .Sprintf ("\u0025#\u0071\u0020%\u0023\u0071\u0020%\u0071\u0020\u006f\u0062\u006a\u003d\u0025d\u0020\u0054\u006f\u0055\u006e\u0069c\u006f\u0064\u0065\u003d\u0025\u0074\u0020\u0066\u006c\u0061\u0067s\u003d\u0030\u0078\u0025\u0030\u0078\u0020\u0025\u0073",_abcd ._ebdf ,_abcd ._dgfdc ,_abcd ._cbgce ,_abcd ._ccaae ,_abcd ._gdbae !=nil ,_abcd .fontFlags (),_ebfde ); }; // ColorToRGB converts a ICCBased color to an RGB color. func (_cgac *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _cgac .Alternate ==nil {_bag .Log .Debug ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065"); if _cgac .N ==1{_bag .Log .Debug ("\u0049\u0043\u0043\u0020\u0042a\u0073\u0065\u0064\u0020\u0063o\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061\u006c\u0074\u0065r\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006e\u0067\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061y\u0020\u0028\u004e\u003d\u0031\u0029"); _fbcdb :=NewPdfColorspaceDeviceGray ();return _fbcdb .ColorToRGB (color );}else if _cgac .N ==3{_bag .Log .Debug ("\u0049\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067 \u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006eg\u0020\u0044\u0065\u0076\u0069\u0063e\u0052\u0047B\u0020\u0028N\u003d3\u0029"); return color ,nil ;}else if _cgac .N ==4{_bag .Log .Debug ("\u0049\u0043\u0043\u0020\u0042a\u0073\u0065\u0064\u0020\u0063o\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061\u006c\u0074\u0065r\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006e\u0067\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059K\u0020\u0028\u004e\u003d\u0034\u0029"); _dfaa :=NewPdfColorspaceDeviceCMYK ();return _dfaa .ColorToRGB (color );}else {return nil ,_gd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065"); };};_bag .Log .Trace ("\u0049\u0043\u0043 \u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0077\u0069\u0074\u0068\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061t\u0069\u0076\u0065\u003a\u0020\u0025\u0023\u0076",_cgac ); return _cgac .Alternate .ColorToRGB (color );}; // GenerateXObjectName generates an unused XObject name that can be used for // adding new XObjects. Uses format XObj1, XObj2, ... func (_bfbdcf *PdfPageResources )GenerateXObjectName ()_egg .PdfObjectName {_dggdg :=1;for {_fdcbe :=_egg .MakeName (_f .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_dggdg ));if !_bfbdcf .HasXObjectByName (*_fdcbe ){return *_fdcbe ;};_dggdg ++;};}; // ToPdfObject implements interface PdfModel. func (_fff *PdfActionGoToE )ToPdfObject ()_egg .PdfObject {_fff .PdfAction .ToPdfObject ();_aef :=_fff ._bf ;_dge :=_aef .PdfObject .(*_egg .PdfObjectDictionary );_dge .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeGoToE )));if _fff .F !=nil {_dge .Set ("\u0046",_fff .F .ToPdfObject ()); };_dge .SetIfNotNil ("\u0044",_fff .D );_dge .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_fff .NewWindow );_dge .SetIfNotNil ("\u0054",_fff .T );return _aef ;}; // PdfSignatureReference represents a PDF signature reference dictionary and is used for signing via form signature fields. // (Section 12.8.1, Table 253 - Entries in a signature reference dictionary p. 469 in PDF32000_2008). type PdfSignatureReference struct{_fedcg *_egg .PdfObjectDictionary ;Type *_egg .PdfObjectName ;TransformMethod *_egg .PdfObjectName ;TransformParams _egg .PdfObject ;Data _egg .PdfObject ;DigestMethod *_egg .PdfObjectName ;};func _gecfbd ()string {_cgag .Lock (); defer _cgag .Unlock ();return _fafb };func _ffee (_gbabe _dag .ReadSeeker ,_edgbb *ReaderOpts ,_cgbbe bool ,_dgfcd string )(*PdfReader ,error ){if _edgbb ==nil {_edgbb =NewReaderOpts ();};_adbgg :=*_edgbb ;_feadc :=&PdfReader {_eefb :_gbabe ,_gbabf :map[_egg .PdfObject ]struct{}{},_dabaf :_fedbe (),_cede :_edgbb .LazyLoad ,_gccee :_edgbb .ComplianceMode ,_gddafb :_cgbbe ,_ecbf :&_adbgg }; _cegcb ,_cgbag :=_gfgfd ("\u0072");if _cgbag !=nil {return nil ,_cgbag ;};_cgbag =_ace .Track (_cegcb ,_dgfcd );if _cgbag !=nil {return nil ,_cgbag ;};_feadc ._faeea =_cegcb ;var _bgcab *_egg .PdfParser ;if !_feadc ._gccee {_bgcab ,_cgbag =_egg .NewParser (_gbabe ); }else {_bgcab ,_cgbag =_egg .NewCompliancePdfParser (_gbabe );};if _cgbag !=nil {return nil ,_cgbag ;};_feadc ._dafgab =_bgcab ;_eddde ,_cgbag :=_feadc .IsEncrypted ();if _cgbag !=nil {return nil ,_cgbag ;};if !_eddde {_cgbag =_feadc .loadStructure (); if _cgbag !=nil {return nil ,_cgbag ;};}else if _cgbbe {_dbgdc ,_debgd :=_feadc .Decrypt ([]byte (_edgbb .Password ));if _debgd !=nil {return nil ,_debgd ;};if !_dbgdc {return nil ,_gd .New ("\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074\u006f \u0064\u0065c\u0072\u0079\u0070\u0074\u0020\u0070\u0061\u0073\u0073w\u006f\u0072\u0064\u0020p\u0072\u006f\u0074\u0065\u0063\u0074\u0065\u0064\u0020\u0066\u0069\u006c\u0065\u0020\u002d\u0020\u006e\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0073\u0070\u0065\u0063\u0069\u0066y\u0020\u0070\u0061s\u0073\u0020\u0074\u006f\u0020\u0044\u0065\u0063\u0072\u0079\u0070\u0074"); };};_feadc ._gcfcf =make (map[*PdfReader ]*PdfReader );_feadc ._acad =make ([]*PdfReader ,_bgcab .GetRevisionNumber ());return _feadc ,nil ;};func _cbcfd (_edce *_egg .PdfObjectDictionary )(*PdfTilingPattern ,error ){_fbac :=&PdfTilingPattern {};_bfdag :=_edce .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e"); if _bfdag ==nil {_bag .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_dgfec ,_cgdaf :=_bfdag .(*_egg .PdfObjectInteger );if !_cgdaf {_bag .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054y\u0070\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074e\u0067\u0065\u0072\u0020\u0028\u0067\u006ft\u0020\u0025\u0054\u0029",_bfdag ); return nil ,_egg .ErrTypeError ;};_fbac .PaintType =_dgfec ;_bfdag =_edce .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _bfdag ==nil {_bag .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067"); return nil ,ErrRequiredAttributeMissing ;};_debgb ,_cgdaf :=_bfdag .(*_egg .PdfObjectInteger );if !_cgdaf {_bag .Log .Debug ("\u0054\u0069\u006cin\u0067\u0054\u0079\u0070\u0065\u0020\u006e\u006f\u0074 \u0061n\u0020i\u006et\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_bfdag ); return nil ,_egg .ErrTypeError ;};_fbac .TilingType =_debgb ;_bfdag =_edce .Get ("\u0042\u0042\u006f\u0078");if _bfdag ==nil {_bag .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ; };_bfdag =_egg .TraceToDirectObject (_bfdag );_dagbc ,_cgdaf :=_bfdag .(*_egg .PdfObjectArray );if !_cgdaf {_bag .Log .Debug ("\u0042B\u006f\u0078 \u0073\u0068\u006fu\u006c\u0064\u0020\u0062\u0065\u0020\u0073p\u0065\u0063\u0069\u0066\u0069\u0065d\u0020\u0062\u0079\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061y\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_bfdag ); return nil ,_egg .ErrTypeError ;};_efade ,_cfdgd :=NewPdfRectangle (*_dagbc );if _cfdgd !=nil {_bag .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_cfdgd );return nil ,_cfdgd ;};_fbac .BBox =_efade ;_bfdag =_edce .Get ("\u0058\u0053\u0074e\u0070"); if _bfdag ==nil {_bag .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_fcfba ,_cfdgd :=_egg .GetNumberAsFloat (_bfdag );if _cfdgd !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0058S\u0074e\u0070\u0020\u0061\u0073\u0020\u0066\u006c\u006f\u0061\u0074\u003a\u0020\u0025\u0076",_fcfba ); return nil ,_cfdgd ;};_fbac .XStep =_egg .MakeFloat (_fcfba );_bfdag =_edce .Get ("\u0059\u0053\u0074e\u0070");if _bfdag ==nil {_bag .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ; };_feafa ,_cfdgd :=_egg .GetNumberAsFloat (_bfdag );if _cfdgd !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0059S\u0074e\u0070\u0020\u0061\u0073\u0020\u0066\u006c\u006f\u0061\u0074\u003a\u0020\u0025\u0076",_feafa ); return nil ,_cfdgd ;};_fbac .YStep =_egg .MakeFloat (_feafa );_bfdag =_edce .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _bfdag ==nil {_bag .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067"); return nil ,ErrRequiredAttributeMissing ;};_edce ,_cgdaf =_egg .TraceToDirectObject (_bfdag ).(*_egg .PdfObjectDictionary );if !_cgdaf {return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_bfdag ); };_gcfea ,_cfdgd :=NewPdfPageResourcesFromDict (_edce );if _cfdgd !=nil {return nil ,_cfdgd ;};_fbac .Resources =_gcfea ;if _feaad :=_edce .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_feaad !=nil {_cbcgf ,_fggbe :=_feaad .(*_egg .PdfObjectArray );if !_fggbe {_bag .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_feaad ); return nil ,_egg .ErrTypeError ;};_fbac .Matrix =_cbcgf ;};return _fbac ,nil ;}; // GetContentStream returns the pattern cell's content stream func (_ddbde *PdfTilingPattern )GetContentStream ()([]byte ,error ){_cgca ,_ ,_adeea :=_ddbde .GetContentStreamWithEncoder ();return _cgca ,_adeea ;}; // PdfShadingType3 is a Radial shading. type PdfShadingType3 struct{*PdfShading ;Coords *_egg .PdfObjectArray ;Domain *_egg .PdfObjectArray ;Function []PdfFunction ;Extend *_egg .PdfObjectArray ;}; // ToPdfObject implements interface PdfModel. func (_gde *PdfActionMovie )ToPdfObject ()_egg .PdfObject {_gde .PdfAction .ToPdfObject ();_dfgbd :=_gde ._bf ;_ccg :=_dfgbd .PdfObject .(*_egg .PdfObjectDictionary );_ccg .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeMovie )));_ccg .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_gde .Annotation ); _ccg .SetIfNotNil ("\u0054",_gde .T );_ccg .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_gde .Operation );return _dfgbd ;}; // SetOCProperties sets the optional content properties. func (_dbdfe *PdfWriter )SetOCProperties (ocProperties _egg .PdfObject )error {_gfeeae :=_dbdfe ._acea ;if ocProperties !=nil {_bag .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e"); _gfeeae .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _dbdfe .addObjects (ocProperties );};return nil ;}; // ToPdfObject converts date to a PDF string object. func (_acdafb *PdfDate )ToPdfObject ()_egg .PdfObject {_dgeg :=_f .Sprintf ("\u0044\u003a\u0025\u002e\u0034\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e2\u0064\u0025\u0063\u0025\u002e2\u0064\u0027%\u002e\u0032\u0064\u0027",_acdafb ._acadbc ,_acdafb ._cbffc ,_acdafb ._fgddd ,_acdafb ._bfcd ,_acdafb ._fceaf ,_acdafb ._ffccc ,_acdafb ._ebcdc ,_acdafb ._ebeed ,_acdafb ._fcafb ); return _egg .MakeString (_dgeg );}; // FlattenFieldsWithOpts flattens the AcroForm fields of the reader using the // provided field appearance generator and the specified options. If no options // are specified, all form fields are flattened. // If a filter function is provided using the opts parameter, only the filtered // fields are flattened. Otherwise, all form fields are flattened. // At the end of the process, the AcroForm contains all the fields which were // not flattened. If all fields are flattened, the reader's AcroForm field // is set to nil. func (_eegcb *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _eegcb .flattenFieldsWithOpts (false ,appgen ,opts );}; // NewPdfActionJavaScript returns a new "javaScript" action. func NewPdfActionJavaScript ()*PdfActionJavaScript {_ae :=NewPdfAction ();_aad :=&PdfActionJavaScript {};_aad .PdfAction =_ae ;_ae .SetContext (_aad );return _aad ;};func (_ecgc *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064"; }; // FontDescriptor returns font's PdfFontDescriptor. This may be a builtin descriptor for standard 14 // fonts but must be an explicit descriptor for other fonts. func (_adfdf *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _adfdf .baseFields ()._bgacg !=nil {return _adfdf .baseFields ()._bgacg ;};if _bcbab :=_adfdf ._edde .getFontDescriptor ();_bcbab !=nil {return _bcbab ;};_bag .Log .Error ("\u0041\u006cl \u0066\u006f\u006et\u0073\u0020\u0068\u0061ve \u0061 D\u0065\u0073\u0063\u0072\u0069\u0070\u0074or\u002e\u0020\u0066\u006f\u006e\u0074\u003d%\u0073",_adfdf ); return nil ;};func (_acc *PdfAnnotationMarkup )appendToPdfDictionary (_fcbd *_egg .PdfObjectDictionary ){_fcbd .SetIfNotNil ("\u0054",_acc .T );if _acc .Popup !=nil {_fcbd .Set ("\u0050\u006f\u0070u\u0070",_acc .Popup .ToPdfObject ());};_fcbd .SetIfNotNil ("\u0043\u0041",_acc .CA ); _fcbd .SetIfNotNil ("\u0052\u0043",_acc .RC );_fcbd .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_acc .CreationDate );_fcbd .SetIfNotNil ("\u0049\u0052\u0054",_acc .IRT );_fcbd .SetIfNotNil ("\u0053\u0075\u0062\u006a",_acc .Subj ); _fcbd .SetIfNotNil ("\u0052\u0054",_acc .RT );_fcbd .SetIfNotNil ("\u0049\u0054",_acc .IT );_fcbd .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_acc .ExData );}; // SetBorderWidth sets the style's border width. func (_cacg *PdfBorderStyle )SetBorderWidth (width float64 ){_cacg .W =&width }; // ToPdfOutline returns a low level PdfOutline object, based on the current // instance. func (_gbffb *Outline )ToPdfOutline ()*PdfOutline {_dbeae :=NewPdfOutline ();var _fcec []*PdfOutlineItem ;var _gfdbf int64 ;var _ggfa *PdfOutlineItem ;for _ ,_dgafa :=range _gbffb .Entries {_acbed ,_ebefe :=_dgafa .ToPdfOutlineItem ();_acbed .Parent =&_dbeae .PdfOutlineTreeNode ; if _ggfa !=nil {_ggfa .Next =&_acbed .PdfOutlineTreeNode ;_acbed .Prev =&_ggfa .PdfOutlineTreeNode ;};_fcec =append (_fcec ,_acbed );_gfdbf +=_ebefe ;_ggfa =_acbed ;};_fgffd :=int64 (len (_fcec ));_gfdbf +=_fgffd ;if _fgffd > 0{_dbeae .First =&_fcec [0].PdfOutlineTreeNode ; _dbeae .Last =&_fcec [_fgffd -1].PdfOutlineTreeNode ;_dbeae .Count =&_gfdbf ;};return _dbeae ;}; // GetContainingPdfObject returns the container of the outline tree node (indirect object). func (_afef *PdfOutlineTreeNode )GetContainingPdfObject ()_egg .PdfObject {return _afef .GetContext ().GetContainingPdfObject ();};func (_gcea *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _gcea ._bgacg }; // NewPdfAnnotation returns an initialized generic PDF annotation model. func NewPdfAnnotation ()*PdfAnnotation {_gacf :=&PdfAnnotation {};_gacf ._cef =_egg .MakeIndirectObject (_egg .MakeDict ());return _gacf ;}; // ToPdfObject converts the pdfCIDFontType0 to a PDF representation. func (_bgcf *pdfCIDFontType0 )ToPdfObject ()_egg .PdfObject {return _egg .MakeNull ()};func (_agdc *PdfReader )newPdfAnnotationCircleFromDict (_dbff *_egg .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_ffg :=PdfAnnotationCircle {};_cfa ,_dbcc :=_agdc .newPdfAnnotationMarkupFromDict (_dbff ); if _dbcc !=nil {return nil ,_dbcc ;};_ffg .PdfAnnotationMarkup =_cfa ;_ffg .BS =_dbff .Get ("\u0042\u0053");_ffg .IC =_dbff .Get ("\u0049\u0043");_ffg .BE =_dbff .Get ("\u0042\u0045");_ffg .RD =_dbff .Get ("\u0052\u0044");return &_ffg ,nil ;};func (_ececf *PdfWriter )addObject (_gcfef _egg .PdfObject )bool {_gafea :=_ececf .hasObject (_gcfef ); if !_gafea {_eefe :=_egg .ResolveReferencesDeep (_gcfef ,_ececf ._adcd );if _eefe !=nil {_bag .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_eefe );};_ececf ._bbead =append (_ececf ._bbead ,_gcfef ); _ececf ._bacec [_gcfef ]=struct{}{};return true ;};return false ;}; // NewPdfSignature creates a new PdfSignature object. func NewPdfSignature (handler SignatureHandler )*PdfSignature {_ebedd :=&PdfSignature {Type :_egg .MakeName ("\u0053\u0069\u0067"),Handler :handler };_faded :=&pdfSignDictionary {PdfObjectDictionary :_egg .MakeDict (),_ebdca :&handler ,_gbbba :_ebedd }; _ebedd ._ccbda =_egg .MakeIndirectObject (_faded );return _ebedd ;}; // PdfOutputIntent provides a means for matching the color characteristics of a PDF document with // those of a target output device. // Multiple PdfOutputIntents allows the production process to be customized to the expected workflow and the specific // tools available. type PdfOutputIntent struct{ // Type is an optional PDF object that this dictionary describes. // If present, must be OutputIntent for an output intent dictionary. Type string ; // S defines the OutputIntent subtype which should match the standard used in given document i.e: // for PDF/X use PdfOutputIntentTypeX. S PdfOutputIntentType ; // OutputCondition is an optional field that is identifying the intended output device or production condition in // human-readable form. This is preferred method of defining such a string for presentation to the user. OutputCondition string ; // OutputConditionIdentifier is a required field identifying the intended output device or production condition in // human or machine-readable form. If human-readable, this string may be used // in lieu of an OutputCondition for presentation to the user. // A typical value for this entry would be the name of a production condition maintained // in an industry-standard registry such as the ICC Characterization Data Registry // If the intended production condition is not a recognized standard, the value Custom is recommended for this entry. // the DestOutputProfile entry defines the ICC profile, and the Info entry is used for further // human-readable identification. OutputConditionIdentifier string ; // RegistryName is an optional string field (conventionally URI) identifying the registry in which the condition // designated by OutputConditionIdentifier is defined. RegistryName string ; // Info is a required field if OutputConditionIdentifier does not specify a standard production condition. // A human-readable text string containing additional information or comments about intended // target device or production condition. Info string ; // DestOutputProfile is required if OutputConditionIdentifier does not specify a standard production condition. // It is an ICC profile stream defining the transformation from the PDF document's source colors to output device colorants. DestOutputProfile []byte ; // ColorComponents is the number of color components supported by given output profile. ColorComponents int ;_gdaaa *_egg .PdfObjectDictionary ;}; // PdfTransformParamsDocMDP represents a transform parameters dictionary for the DocMDP method and is used to detect // modifications relative to a signature field that is signed by the author of a document. // (Section 12.8.2.2, Table 254 - Entries in the DocMDP transform parameters dictionary p. 471 in PDF32000_2008). type PdfTransformParamsDocMDP struct{Type *_egg .PdfObjectName ;P *_egg .PdfObjectInteger ;V *_egg .PdfObjectName ;}; // ToPdfObject implements interface PdfModel. func (_cfdbg *PdfTransformParamsDocMDP )ToPdfObject ()_egg .PdfObject {_dcccb :=_egg .MakeDict ();_dcccb .SetIfNotNil ("\u0054\u0079\u0070\u0065",_cfdbg .Type );_dcccb .SetIfNotNil ("\u0056",_cfdbg .V );_dcccb .SetIfNotNil ("\u0050",_cfdbg .P );return _dcccb ; }; // PdfFunctionType2 defines an exponential interpolation of one input value and n // output values: // f(x) = y_0, ..., y_(n-1) // y_j = C0_j + x^N * (C1_j - C0_j); for 0 <= j < n // When N=1 ; linear interpolation between C0 and C1. type PdfFunctionType2 struct{Domain []float64 ;Range []float64 ;C0 []float64 ;C1 []float64 ;N float64 ;_ffcfb *_egg .PdfIndirectObject ;}; // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // components. The slice should contain three PdfObjectFloat elements representing // the A, B and C components of the color. func (_bgbd *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgcec ,_acec :=_egg .GetNumbersAsFloat (objects ); if _acec !=nil {return nil ,_acec ;};return _bgbd .ColorFromFloats (_bgcec );}; // ColorToRGB verifies that the input color is an RGB color. Method exists in // order to satisfy the PdfColorspace interface. func (_fdbe *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_fbba ,_fagg :=color .(*PdfColorDeviceRGB );if !_fagg {_bag .Log .Debug ("\u0049\u006e\u0070\u0075\u0074\u0020\u0063\u006f\u006c\u006f\u0072 \u006e\u006f\u0074\u0020\u0064\u0065\u0076\u0069\u0063\u0065 \u0052\u0047\u0042"); return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _fbba ,nil ;};func _bcgcb (_bbea _egg .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_beacb :=NewPdfColorspaceSpecialSeparation (); if _aagg ,_agaf :=_bbea .(*_egg .PdfIndirectObject );_agaf {_beacb ._eedg =_aagg ;};_bbea =_egg .TraceToDirectObject (_bbea );_ggccd ,_dcfg :=_bbea .(*_egg .PdfObjectArray );if !_dcfg {return nil ,_f .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062je\u0063\u0074"); };if _ggccd .Len ()!=4{return nil ,_f .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074i\u006f\u006e \u0043\u0053\u003a\u0020\u0049\u006e\u0063\u006fr\u0072\u0065\u0063\u0074\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006ce\u006e\u0067\u0074\u0068");};_bbea =_ggccd .Get (0); _dggg ,_dcfg :=_bbea .(*_egg .PdfObjectName );if !_dcfg {return nil ,_f .Errorf ("\u0073\u0065\u0070ar\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a \u0069n\u0076a\u006ci\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065"); };if *_dggg !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_f .Errorf ("\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020w\u0072o\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065"); };_bbea =_ggccd .Get (1);_dggg ,_dcfg =_bbea .(*_egg .PdfObjectName );if !_dcfg {return nil ,_f .Errorf ("\u0073\u0065pa\u0072\u0061\u0074i\u006f\u006e\u0020\u0043S: \u0049nv\u0061\u006c\u0069\u0064\u0020\u0063\u006flo\u0072\u0061\u006e\u0074\u0020\u006e\u0061m\u0065"); };_beacb .ColorantName =_dggg ;_bbea =_ggccd .Get (2);_dacg ,_cffc :=NewPdfColorspaceFromPdfObject (_bbea );if _cffc !=nil {return nil ,_cffc ;};_beacb .AlternateSpace =_dacg ;_cebc ,_cffc :=_bdefe (_ggccd .Get (3));if _cffc !=nil {return nil ,_cffc ;}; _beacb .TintTransform =_cebc ;return _beacb ,nil ;}; // A returns the value of the A component of the color. func (_baedb *PdfColorCalRGB )A ()float64 {return _baedb [0]}; // ToJBIG2Image converts current image to the core.JBIG2Image. func (_bdaea *Image )ToJBIG2Image ()(*_egg .JBIG2Image ,error ){_dadefb ,_eaed :=_bdaea .ToGoImage ();if _eaed !=nil {return nil ,_eaed ;};return _egg .GoImageToJBIG2 (_dadefb ,_egg .JB2ImageAutoThreshold );}; // AddContentStreamByString adds content stream by string. Puts the content // string into a stream object and points the content stream towards it. func (_gecc *PdfPage )AddContentStreamByString (contentStr string )error {_aeagd ,_dfgc :=_egg .MakeStream ([]byte (contentStr ),_egg .NewFlateEncoder ());if _dfgc !=nil {return _dfgc ;};if _gecc .Contents ==nil {_gecc .Contents =_aeagd ;}else {_eagce :=_egg .TraceToDirectObject (_gecc .Contents ); _cgab ,_badc :=_eagce .(*_egg .PdfObjectArray );if !_badc {_cgab =_egg .MakeArray (_eagce );};_cgab .Append (_aeagd );_gecc .Contents =_cgab ;};return nil ;}; // String returns a string that describes `base`. func (_gdabe fontCommon )String ()string {return _f .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_gdabe .coreString ());};func (_cdfa *PdfReader )newPdfAnnotationPrinterMarkFromDict (_fcf *_egg .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_gcgf :=PdfAnnotationPrinterMark {}; _gcgf .MN =_fcf .Get ("\u004d\u004e");return &_gcgf ,nil ;}; // PdfActionGoTo represents a GoTo action. type PdfActionGoTo struct{*PdfAction ;D _egg .PdfObject ;}; // Compress is yet to be implemented. // Should be able to compress in terms of JPEG quality parameter, // and DPI threshold (need to know bounding area dimensions). func (_dgfac DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;}; // SetOptimizer sets the optimizer to optimize PDF before writing. func (_befdc *PdfWriter )SetOptimizer (optimizer Optimizer ){_befdc ._cfgb =optimizer };func (_dda *PdfReader )newPdfActionMovieFromDict (_cfb *_egg .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_cfb .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_cfb .Get ("\u0054"),Operation :_cfb .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ; };func (_acda *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _acda ._bgacg }; // PdfRectangle is a definition of a rectangle. type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;}; // IsPush returns true if the button field represents a push button, false otherwise. func (_bcba *PdfFieldButton )IsPush ()bool {return _bcba .GetType ()==ButtonTypePush }; // NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options. func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_gbeag :=&PdfAppender {_cbe :reader ._eefb ,Reader :reader ,_daac :reader ._dafgab ,_bdbf :reader ._gbabf };_bgg ,_gega :=_gbeag ._cbe .Seek (0,_dag .SeekEnd ); if _gega !=nil {return nil ,_gega ;};_gbeag ._bbba =_bgg ;if _ ,_gega =_gbeag ._cbe .Seek (0,_dag .SeekStart );_gega !=nil {return nil ,_gega ;};_gbeag ._bgaa ,_gega =NewPdfReaderWithOpts (_gbeag ._cbe ,opts );if _gega !=nil {return nil ,_gega ;};for _ ,_fdbc :=range _gbeag .Reader .GetObjectNums (){if _gbeag ._gfdcd < _fdbc {_gbeag ._gfdcd =_fdbc ; };};_gbeag ._beed =_gbeag ._daac .GetXrefTable ();_gbeag ._gfbc =_gbeag ._daac .GetXrefOffset ();_gbeag ._beac =append (_gbeag ._beac ,_gbeag ._bgaa .PageList ...);_gbeag ._bdba =make (map[_egg .PdfObject ]struct{});_gbeag ._eegc =make (map[_egg .PdfObject ]int64 ); _gbeag ._eecgg =make (map[_egg .PdfObject ]struct{});_gbeag ._aeec =_gbeag ._bgaa .AcroForm ;_gbeag ._dgdc =_gbeag ._bgaa .DSS ;if opts !=nil {_gbeag ._cbdd =opts .Password ;};if encryptOptions !=nil {_gbeag ._effa =encryptOptions ;};return _gbeag ,nil ; }; // ToPdfObject returns the text field dictionary within an indirect object (container). func (_bcdb *PdfFieldText )ToPdfObject ()_egg .PdfObject {_bcdb .PdfField .ToPdfObject ();_bcfc :=_bcdb ._agef ;_ebad :=_bcfc .PdfObject .(*_egg .PdfObjectDictionary );_ebad .Set ("\u0046\u0054",_egg .MakeName ("\u0054\u0078"));if _bcdb .DA !=nil {_ebad .Set ("\u0044\u0041",_bcdb .DA ); };if _bcdb .Q !=nil {_ebad .Set ("\u0051",_bcdb .Q );};if _bcdb .DS !=nil {_ebad .Set ("\u0044\u0053",_bcdb .DS );};if _bcdb .RV !=nil {_ebad .Set ("\u0052\u0056",_bcdb .RV );};if _bcdb .MaxLen !=nil {_ebad .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_bcdb .MaxLen ); };return _bcfc ;};func _fadfa ()string {_cgag .Lock ();defer _cgag .Unlock ();return _cdcf }; // DecodeArray returns the range of color component values in DeviceCMYK colorspace. func (_abgb *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};func _egaa (_ebba _bgd .StdFont )pdfFontSimple {_eagc :=_ebba .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_ebdf :"\u0054\u0079\u0070e\u0031",_dgfdc :_ebba .Name ()},_dddd :_ebba .GetMetricsTable (),_dbbfc :&PdfFontDescriptor {FontName :_egg .MakeName (string (_eagc .Name )),FontFamily :_egg .MakeName (_eagc .Family ),FontWeight :_egg .MakeFloat (float64 (_eagc .Weight )),Flags :_egg .MakeInteger (int64 (_eagc .Flags )),FontBBox :_egg .MakeArrayFromFloats (_eagc .BBox [:]),ItalicAngle :_egg .MakeFloat (_eagc .ItalicAngle ),Ascent :_egg .MakeFloat (_eagc .Ascent ),Descent :_egg .MakeFloat (_eagc .Descent ),CapHeight :_egg .MakeFloat (_eagc .CapHeight ),XHeight :_egg .MakeFloat (_eagc .XHeight ),StemV :_egg .MakeFloat (_eagc .StemV ),StemH :_egg .MakeFloat (_eagc .StemH )},_cdee :_ebba .Encoder ()}; }; // ToPdfObject implements interface PdfModel. func (_eb *PdfActionSubmitForm )ToPdfObject ()_egg .PdfObject {_eb .PdfAction .ToPdfObject ();_beg :=_eb ._bf ;_fbf :=_beg .PdfObject .(*_egg .PdfObjectDictionary );_fbf .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeSubmitForm )));if _eb .F !=nil {_fbf .Set ("\u0046",_eb .F .ToPdfObject ()); };_fbf .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_eb .Fields );_fbf .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_eb .Flags );return _beg ;};func (_fed *PdfReader )newPdfAnnotationRedactFromDict (_cfac *_egg .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_dcb :=PdfAnnotationRedact {}; _ccd ,_gbfa :=_fed .newPdfAnnotationMarkupFromDict (_cfac );if _gbfa !=nil {return nil ,_gbfa ;};_dcb .PdfAnnotationMarkup =_ccd ;_dcb .QuadPoints =_cfac .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_dcb .IC =_cfac .Get ("\u0049\u0043"); _dcb .RO =_cfac .Get ("\u0052\u004f");_dcb .OverlayText =_cfac .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_dcb .Repeat =_cfac .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_dcb .DA =_cfac .Get ("\u0044\u0041");_dcb .Q =_cfac .Get ("\u0051"); return &_dcb ,nil ;}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 3 for a Lab device. func (_dfge *PdfColorspaceLab )GetNumComponents ()int {return 3};func (_cffcd fontCommon )isCIDFont ()bool {if _cffcd ._ebdf ==""{_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0069\u0073\u0043\u0049\u0044\u0046\u006f\u006e\u0074\u002e\u0020\u0063o\u006e\u0074\u0065\u0078\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_cffcd ); };_facbd :=false ;switch _cffcd ._ebdf {case "\u0054\u0079\u0070e\u0030","\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030","\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_facbd =true ;};_bag .Log .Trace ("i\u0073\u0043\u0049\u0044\u0046\u006fn\u0074\u003a\u0020\u0069\u0073\u0043\u0049\u0044\u003d%\u0074\u0020\u0066o\u006et\u003d\u0025\u0073",_facbd ,_cffcd ); return _facbd ;}; // PdfAnnotationWatermark represents Watermark annotations. // (Section 12.5.6.22). type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _egg .PdfObject ;}; // ColorToRGB converts a DeviceN color to an RGB color. func (_eddce *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _eddce .AlternateSpace ==nil {return nil ,_gd .New ("\u0044\u0065\u0076\u0069\u0063\u0065N\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0065\u0020\u0073\u0070a\u0063\u0065\u0020\u0075\u006e\u0064\u0065f\u0069\u006e\u0065\u0064"); };return _eddce .AlternateSpace .ColorToRGB (color );};func _dagag (_aecc _egg .PdfObject )(*PdfColorspaceLab ,error ){_ebd :=NewPdfColorspaceLab ();if _eabeg ,_bdfac :=_aecc .(*_egg .PdfIndirectObject );_bdfac {_ebd ._ceaag =_eabeg ;};_aecc =_egg .TraceToDirectObject (_aecc ); _fda ,_edbe :=_aecc .(*_egg .PdfObjectArray );if !_edbe {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fda .Len ()!=2{return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e"); };_aecc =_egg .TraceToDirectObject (_fda .Get (0));_dbbd ,_edbe :=_aecc .(*_egg .PdfObjectName );if !_edbe {return nil ,_f .Errorf ("\u006c\u0061\u0062\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074"); };if *_dbbd !="\u004c\u0061\u0062"{return nil ,_f .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_aecc =_egg .TraceToDirectObject (_fda .Get (1));_fbeg ,_edbe :=_aecc .(*_egg .PdfObjectDictionary ); if !_edbe {return nil ,_f .Errorf ("c\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0020\u0069\u006ev\u0061l\u0069\u0064");};_aecc =_fbeg .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074"); _aecc =_egg .TraceToDirectObject (_aecc );_bgfg ,_edbe :=_aecc .(*_egg .PdfObjectArray );if !_edbe {return nil ,_f .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");};if _bgfg .Len ()!=3{return nil ,_f .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079"); };_eccf ,_ggcc :=_bgfg .GetAsFloat64Slice ();if _ggcc !=nil {return nil ,_ggcc ;};_ebd .WhitePoint =_eccf ;_aecc =_fbeg .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _aecc !=nil {_aecc =_egg .TraceToDirectObject (_aecc );_cggfa ,_ebcd :=_aecc .(*_egg .PdfObjectArray ); if !_ebcd {return nil ,_f .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");};if _cggfa .Len ()!=3{return nil ,_f .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079"); };_gedc ,_gddb :=_cggfa .GetAsFloat64Slice ();if _gddb !=nil {return nil ,_gddb ;};_ebd .BlackPoint =_gedc ;};_aecc =_fbeg .Get ("\u0052\u0061\u006eg\u0065");if _aecc !=nil {_aecc =_egg .TraceToDirectObject (_aecc );_ebfea ,_edga :=_aecc .(*_egg .PdfObjectArray ); if !_edga {_bag .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");return nil ,_f .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _ebfea .Len ()!=4{_bag .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072"); return nil ,_f .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_bdfd ,_cgaeb :=_ebfea .GetAsFloat64Slice ();if _cgaeb !=nil {return nil ,_cgaeb ;};_ebd .Range =_bdfd ;};return _ebd ,nil ;}; // String implements interface PdfObject. func (_cda *PdfAction )String ()string {_deb ,_gg :=_cda .ToPdfObject ().(*_egg .PdfIndirectObject );if _gg {return _f .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_cda ._abb ,_deb .PdfObject .String ());};return "";}; // GetRotate gets the inheritable rotate value, either from the page // or a higher up page/pages struct. func (_cadb *PdfPage )GetRotate ()(int64 ,error ){if _cadb .Rotate !=nil {return *_cadb .Rotate ,nil ;};_dgbb :=_cadb .Parent ;for _dgbb !=nil {_fdefac ,_cgfb :=_egg .GetDict (_dgbb );if !_cgfb {return 0,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063t\u0073\u0020\u0064\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079"); };if _fafga :=_fdefac .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_fafga !=nil {_fabe ,_cgfbg :=_egg .GetInt (_fafga );if !_cgfbg {return 0,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065");}; if _fabe !=nil {return int64 (*_fabe ),nil ;};return 0,_gd .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_dgbb =_fdefac .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_gd .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064"); };func _babef (_bgaf _egg .PdfObject )(map[_ef .CharCode ]float64 ,error ){if _bgaf ==nil {return nil ,nil ;};_eccb ,_cada :=_egg .GetArray (_bgaf );if !_cada {return nil ,nil ;};_gaaa :=map[_ef .CharCode ]float64 {};_aaabe :=_eccb .Len ();for _gaed :=0; _gaed < _aaabe -1;_gaed ++{_gdgf :=_egg .TraceToDirectObject (_eccb .Get (_gaed ));_bgfcb ,_ccge :=_egg .GetIntVal (_gdgf );if !_ccge {return nil ,_f .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_gaed ,_gdgf ); };_gaed ++;if _gaed > _aaabe -1{return nil ,_f .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_eccb );};_ffefc :=_egg .TraceToDirectObject (_eccb .Get (_gaed )); switch _ffefc .(type ){case *_egg .PdfObjectArray :_fafca ,_ :=_egg .GetArray (_ffefc );if _ceaeg ,_eaddf :=_fafca .ToFloat64Array ();_eaddf ==nil {for _adddb :=0;_adddb < len (_ceaeg );_adddb ++{_gaaa [_ef .CharCode (_bgfcb +_adddb )]=_ceaeg [_adddb ]; };}else {return nil ,_f .Errorf ("\u0042\u0061\u0064 \u0066\u006f\u006e\u0074 \u0057\u0020\u0061\u0072\u0072\u0061\u0079 \u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_gaed ,_ffefc );};case *_egg .PdfObjectInteger :_fbab ,_fbgga :=_egg .GetIntVal (_ffefc ); if !_fbgga {return nil ,_f .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_gaed ,_ffefc );};_gaed ++;if _gaed > _aaabe -1{return nil ,_f .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_eccb ); };_bcaf :=_eccb .Get (_gaed );_bceg ,_fgbda :=_egg .GetNumberAsFloat (_bcaf );if _fgbda !=nil {return nil ,_f .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0032\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_gaed ,_bcaf ); };for _abdcc :=_bgfcb ;_abdcc <=_fbab ;_abdcc ++{_gaaa [_ef .CharCode (_abdcc )]=_bceg ;};default:return nil ,_f .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057 \u006f\u0062\u006a\u0031\u0020\u0074\u0079p\u0065\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_gaed ,_ffefc ); };};return _gaaa ,nil ;}; // IsSimple returns true if `font` is a simple font. func (_edaa *PdfFont )IsSimple ()bool {_ ,_beda :=_edaa ._edde .(*pdfFontSimple );return _beda };func (_fbde *PdfAppender )mergeResources (_cegc ,_eeab _egg .PdfObject ,_bdbb map[_egg .PdfObjectName ]_egg .PdfObjectName )_egg .PdfObject {if _eeab ==nil &&_cegc ==nil {return nil ; };if _eeab ==nil {return _cegc ;};_bcgb ,_acb :=_egg .GetDict (_eeab );if !_acb {return _cegc ;};if _cegc ==nil {_fgaa :=_egg .MakeDict ();_fgaa .Merge (_bcgb );return _eeab ;};_ggag ,_acb :=_egg .GetDict (_cegc );if !_acb {_bag .Log .Error ("\u0045\u0072\u0072or\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063\u0065 \u0069s\u0020n\u006ft\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079"); _ggag =_egg .MakeDict ();};for _ ,_bdfb :=range _bcgb .Keys (){if _dgfe ,_aeeed :=_bdbb [_bdfb ];_aeeed {_ggag .Set (_dgfe ,_bcgb .Get (_bdfb ));}else {_ggag .Set (_bdfb ,_bcgb .Get (_bdfb ));};};return _ggag ;}; // PdfAnnotation3D represents 3D annotations. // (Section 13.6.2). type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _egg .PdfObject ;T3DV _egg .PdfObject ;T3DA _egg .PdfObject ;T3DI _egg .PdfObject ;T3DB _egg .PdfObject ;};func (_eacgfe *PdfWriter )writeDocumentVersion (){if _eacgfe ._gabaca {_eacgfe .writeString ("\u000a"); }else {_eacgfe .writeString (_f .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_eacgfe ._dacce .Major ,_eacgfe ._dacce .Minor ));_eacgfe .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};};func (_ddag *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _ddag ._dafgab .GetCrypter ()!=nil &&!_ddag ._dafgab .IsAuthenticated (){return nil ,_f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074"); };_fdefd :=_ddag ._eacf ;_gagaa :=_fdefd .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _gagaa ==nil {return nil ,nil ;};_bag .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_efaa :=_egg .ResolveReference (_gagaa ); _bag .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_efaa );if _cbabg :=_egg .IsNullObject (_efaa );_cbabg {_bag .Log .Trace ("\u004f\u0075\u0074li\u006e\u0065\u0020\u0072\u006f\u006f\u0074\u0020\u0069s\u0020n\u0075l\u006c \u002d\u0020\u006e\u006f\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"); return nil ,nil ;};_aebd ,_cgbe :=_efaa .(*_egg .PdfIndirectObject );if !_cgbe {if _ ,_faeeb :=_egg .GetDict (_efaa );!_faeeb {_bag .Log .Debug ("\u0049\u006e\u0076a\u006c\u0069\u0064\u0020o\u0075\u0074\u006c\u0069\u006e\u0065\u0020r\u006f\u006f\u0074\u0020\u002d\u0020\u0073\u006b\u0069\u0070\u0070\u0069\u006e\u0067"); return nil ,nil ;};_bag .Log .Debug ("\u004f\u0075t\u006c\u0069\u006e\u0065\u0020r\u006f\u006f\u0074\u0020\u0069s\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u002e\u0020\u0053\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074"); _aebd =_egg .MakeIndirectObject (_efaa );};_gcfca ,_cgbe :=_aebd .PdfObject .(*_egg .PdfObjectDictionary );if !_cgbe {return nil ,_gd .New ("\u006f\u0075\u0074\u006c\u0069n\u0065\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072y"); };_bag .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_gcfca );_eada ,_ ,_cafe :=_ddag .buildOutlineTree (_aebd ,nil ,nil ,nil );if _cafe !=nil {return nil ,_cafe ;};_bag .Log .Trace ("\u0052\u0065\u0073\u0075\u006c\u0074\u0069\u006e\u0067\u0020\u006fu\u0074\u006c\u0069\u006e\u0065\u0020\u0074\u0072\u0065\u0065:\u0020\u0025\u0076",_eada ); return _eada ,nil ;}; // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // components. The slice should contain a single PdfObjectFloat element. func (_edbee *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_effe ,_egeg :=_egg .GetNumbersAsFloat (objects ); if _egeg !=nil {return nil ,_egeg ;};return _edbee .ColorFromFloats (_effe );}; // PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF. type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_egg .PdfObjectBool ;SigFlags *_egg .PdfObjectInteger ;CO *_egg .PdfObjectArray ;DR *PdfPageResources ;DA *_egg .PdfObjectString ;Q *_egg .PdfObjectInteger ;XFA _egg .PdfObject ;_befdb *_egg .PdfIndirectObject ; }; // ToPdfObject implements interface PdfModel. func (_cffa *PdfAnnotation3D )ToPdfObject ()_egg .PdfObject {_cffa .PdfAnnotation .ToPdfObject ();_cbbf :=_cffa ._cef ;_cfdg :=_cbbf .PdfObject .(*_egg .PdfObjectDictionary );_cfdg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0033\u0044")); _cfdg .SetIfNotNil ("\u0033\u0044\u0044",_cffa .T3DD );_cfdg .SetIfNotNil ("\u0033\u0044\u0056",_cffa .T3DV );_cfdg .SetIfNotNil ("\u0033\u0044\u0041",_cffa .T3DA );_cfdg .SetIfNotNil ("\u0033\u0044\u0049",_cffa .T3DI );_cfdg .SetIfNotNil ("\u0033\u0044\u0042",_cffa .T3DB ); return _cbbf ;}; // SetSubtype sets the Subtype S for given PdfOutputIntent. func (_aeef *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _gd .New ("\u0070\u0072o\u0076\u0069\u0064\u0065d\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u004f\u0075t\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0020\u0053\u0075b\u0054\u0079\u0070\u0065"); };_aeef .S =subtype ;return nil ;}; // ImageToRGB converts ICCBased colorspace image to RGB and returns the result. func (_dbfdf *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _dbfdf .Alternate ==nil {_bag .Log .Debug ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065"); if _dbfdf .N ==1{_bag .Log .Debug ("\u0049\u0043\u0043\u0020\u0042a\u0073\u0065\u0064\u0020\u0063o\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061\u006c\u0074\u0065r\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006e\u0067\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061y\u0020\u0028\u004e\u003d\u0031\u0029"); _gegcc :=NewPdfColorspaceDeviceGray ();return _gegcc .ImageToRGB (img );}else if _dbfdf .N ==3{_bag .Log .Debug ("\u0049\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067 \u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006eg\u0020\u0044\u0065\u0076\u0069\u0063e\u0052\u0047B\u0020\u0028N\u003d3\u0029"); return img ,nil ;}else if _dbfdf .N ==4{_bag .Log .Debug ("\u0049\u0043\u0043\u0020\u0042a\u0073\u0065\u0064\u0020\u0063o\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061\u006c\u0074\u0065r\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006e\u0067\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059K\u0020\u0028\u004e\u003d\u0034\u0029"); _gdfc :=NewPdfColorspaceDeviceCMYK ();return _gdfc .ImageToRGB (img );}else {return img ,_gd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065"); };};_bag .Log .Trace ("\u0049\u0043\u0043 \u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0077\u0069\u0074\u0068\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061t\u0069\u0076\u0065\u003a\u0020\u0025\u0023\u0076",_dbfdf ); _ebgg ,_bebb :=_dbfdf .Alternate .ImageToRGB (img );_bag .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_bag .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_ebgg ); return _ebgg ,_bebb ;}; // WriteToFile writes the Appender output to file specified by path. func (_cad *PdfAppender )WriteToFile (outputPath string )error {_addb ,_dfbcc :=_gf .Create (outputPath );if _dfbcc !=nil {return _dfbcc ;};defer _addb .Close ();return _cad .Write (_addb );}; // NewPdfAnnotationWidget returns an initialized annotation widget. func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_dae :=NewPdfAnnotation ();_fce :=&PdfAnnotationWidget {};_fce .PdfAnnotation =_dae ;_dae .SetContext (_fce );return _fce ;}; // ToPdfObject implements interface PdfModel. func (_cgcb *PdfAnnotationFreeText )ToPdfObject ()_egg .PdfObject {_cgcb .PdfAnnotation .ToPdfObject ();_ddce :=_cgcb ._cef ;_bage :=_ddce .PdfObject .(*_egg .PdfObjectDictionary );_cgcb .PdfAnnotationMarkup .appendToPdfDictionary (_bage );_bage .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074")); _bage .SetIfNotNil ("\u0044\u0041",_cgcb .DA );_bage .SetIfNotNil ("\u0051",_cgcb .Q );_bage .SetIfNotNil ("\u0052\u0043",_cgcb .RC );_bage .SetIfNotNil ("\u0044\u0053",_cgcb .DS );_bage .SetIfNotNil ("\u0043\u004c",_cgcb .CL );_bage .SetIfNotNil ("\u0049\u0054",_cgcb .IT ); _bage .SetIfNotNil ("\u0042\u0045",_cgcb .BE );_bage .SetIfNotNil ("\u0052\u0044",_cgcb .RD );_bage .SetIfNotNil ("\u0042\u0053",_cgcb .BS );_bage .SetIfNotNil ("\u004c\u0045",_cgcb .LE );return _ddce ;}; // NewCompliancePdfReader creates a PdfReader or an input io.ReadSeeker that during reading will scan the files for the // metadata details. It could be used for the PDF standard implementations like PDF/A or PDF/X. // NOTE: This implementation is in experimental development state. // Keep in mind that it might change in the subsequent minor versions. func NewCompliancePdfReader (rs _dag .ReadSeeker )(*CompliancePdfReader ,error ){const _ddgef ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_ecebg ,_aagaa :=_ffee (rs ,&ReaderOpts {ComplianceMode :true },false ,_ddgef ); if _aagaa !=nil {return nil ,_aagaa ;};return &CompliancePdfReader {PdfReader :_ecebg },nil ;}; // NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN. func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_degd :=&PdfColorspaceDeviceN {};return _degd }; // Permissions specify a permissions dictionary (PDF 1.5). // (Section 12.8.4, Table 258 - Entries in a permissions dictionary p. 477 in PDF32000_2008). type Permissions struct{DocMDP *PdfSignature ;_ffgafc *_egg .PdfObjectDictionary ;}; // String returns a human readable description of `fontfile`. func (_accd *fontFile )String ()string {_gcca :="\u005b\u004e\u006f\u006e\u0065\u005d";if _accd ._gdcd !=nil {_gcca =_accd ._gdcd .String ();};return _f .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_accd ._ebfa ,_gcca ); };func (_dffee *DSS )add (_eedge *[]*_egg .PdfObjectStream ,_gbaf map[string ]*_egg .PdfObjectStream ,_agbbb [][]byte )([]*_egg .PdfObjectStream ,error ){_bdad :=make ([]*_egg .PdfObjectStream ,0,len (_agbbb ));for _ ,_dece :=range _agbbb {_geef ,_agcgf :=_eefdc (_dece ); if _agcgf !=nil {return nil ,_agcgf ;};_ebeg ,_edda :=_gbaf [string (_geef )];if !_edda {_ebeg ,_agcgf =_egg .MakeStream (_dece ,_egg .NewRawEncoder ());if _agcgf !=nil {return nil ,_agcgf ;};_gbaf [string (_geef )]=_ebeg ;*_eedge =append (*_eedge ,_ebeg ); };_bdad =append (_bdad ,_ebeg );};return _bdad ,nil ;}; // ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the // AcroForm dictionary. func (_caccg *PdfAcroForm )ToPdfObject ()_egg .PdfObject {_fbgbf :=_caccg ._befdb ;_cfcgd :=_fbgbf .PdfObject .(*_egg .PdfObjectDictionary );if _caccg .Fields !=nil {_adafb :=_egg .PdfObjectArray {};for _ ,_cgaeg :=range *_caccg .Fields {_eafd :=_cgaeg .GetContext (); if _eafd !=nil {_adafb .Append (_eafd .ToPdfObject ());}else {_adafb .Append (_cgaeg .ToPdfObject ());};};_cfcgd .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_adafb );};if _caccg .NeedAppearances !=nil {_cfcgd .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_caccg .NeedAppearances ); };if _caccg .SigFlags !=nil {_cfcgd .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_caccg .SigFlags );};if _caccg .CO !=nil {_cfcgd .Set ("\u0043\u004f",_caccg .CO );};if _caccg .DR !=nil {_cfcgd .Set ("\u0044\u0052",_caccg .DR .ToPdfObject ()); };if _caccg .DA !=nil {_cfcgd .Set ("\u0044\u0041",_caccg .DA );};if _caccg .Q !=nil {_cfcgd .Set ("\u0051",_caccg .Q );};if _caccg .XFA !=nil {_cfcgd .Set ("\u0058\u0046\u0041",_caccg .XFA );};return _fbgbf ;}; // SetDocInfo set document info. // This will overwrite any globally declared document info. func (_aeeddc *PdfWriter )SetDocInfo (info *PdfInfo ){_aeeddc .setDocInfo (info .ToPdfObject ())}; // ToPdfObject implements model.PdfModel interface. func (_ecdgf *PdfOutputIntent )ToPdfObject ()_egg .PdfObject {if _ecdgf ._gdaaa ==nil {_ecdgf ._gdaaa =_egg .MakeDict ();};_gafcf :=_ecdgf ._gdaaa ;if _ecdgf .Type !=""{_gafcf .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName (_ecdgf .Type ));};_gafcf .Set ("\u0053",_egg .MakeName (_ecdgf .S .String ())); if _ecdgf .OutputCondition !=""{_gafcf .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_egg .MakeString (_ecdgf .OutputCondition ));};_gafcf .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_egg .MakeString (_ecdgf .OutputConditionIdentifier )); _gafcf .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_egg .MakeString (_ecdgf .RegistryName ));if _ecdgf .Info !=""{_gafcf .Set ("\u0049\u006e\u0066\u006f",_egg .MakeString (_ecdgf .Info ));};if len (_ecdgf .DestOutputProfile )!=0{_eaea ,_bgcc :=_egg .MakeStream (_ecdgf .DestOutputProfile ,_egg .NewFlateEncoder ()); if _bgcc !=nil {_bag .Log .Error ("\u004d\u0061\u006b\u0065\u0053\u0074\u0072\u0065\u0061\u006d\u0020\u0044\u0065s\u0074\u004f\u0075\u0074\u0070\u0075t\u0050\u0072\u006f\u0066\u0069\u006c\u0065\u0020\u0066\u0061\u0069\u006c\u0065d\u003a\u0020\u0025\u0076",_bgcc ); };_eaea .PdfObjectDictionary .Set ("\u004e",_egg .MakeInteger (int64 (_ecdgf .ColorComponents )));_gdaf :=make ([]float64 ,_ecdgf .ColorComponents *2);for _aggag :=0;_aggag < _ecdgf .ColorComponents *2;_aggag ++{_gfbcg :=0.0;if _aggag %2!=0{_gfbcg =1.0; };_gdaf [_aggag ]=_gfbcg ;};_eaea .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_egg .MakeArrayFromFloats (_gdaf ));_gafcf .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_eaea );};return _gafcf ; }; // PdfColorLab represents a color in the L*, a*, b* 3 component colorspace. // Each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity. type PdfColorLab [3]float64 ; // ToPdfObject converts the font to a PDF representation. func (_faebdd *pdfFontType3 )ToPdfObject ()_egg .PdfObject {if _faebdd ._acdgb ==nil {_faebdd ._acdgb =&_egg .PdfIndirectObject {};};_cabf :=_faebdd .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_faebdd ._acdgb .PdfObject =_cabf ;if _faebdd .FirstChar !=nil {_cabf .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_faebdd .FirstChar ); };if _faebdd .LastChar !=nil {_cabf .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_faebdd .LastChar );};if _faebdd .Widths !=nil {_cabf .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_faebdd .Widths );};if _faebdd .Encoding !=nil {_cabf .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_faebdd .Encoding ); }else if _faebdd ._fbfed !=nil {_adga :=_faebdd ._fbfed .ToPdfObject ();if _adga !=nil {_cabf .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_adga );};};if _faebdd .FontBBox !=nil {_cabf .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_faebdd .FontBBox ); };if _faebdd .FontMatrix !=nil {_cabf .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_faebdd .FontMatrix );};if _faebdd .CharProcs !=nil {_cabf .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_faebdd .CharProcs );};if _faebdd .Resources !=nil {_cabf .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_faebdd .Resources ); };return _faebdd ._acdgb ;};func (_gaggf *PdfWriter )setWriter (_fbfg _dag .Writer ){_gaggf ._cdaab =_gaggf ._ddfee ;_gaggf ._beegad =_d .NewWriter (_fbfg );};func (_dage *PdfReader )newPdfActionSoundFromDict (_bgcb *_egg .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_bgcb .Get ("\u0053\u006f\u0075n\u0064"),Volume :_bgcb .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_bgcb .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_bgcb .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_bgcb .Get ("\u004d\u0069\u0078")},nil ; }; // NewPdfFieldSignature returns an initialized signature field. func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_bagd :=&PdfFieldSignature {};_bagd .PdfField =NewPdfField ();_bagd .PdfField .SetContext (_bagd );_bagd .PdfAnnotationWidget =NewPdfAnnotationWidget ();_bagd .PdfAnnotationWidget .SetContext (_bagd ); _bagd .PdfAnnotationWidget ._cef =_bagd .PdfField ._agef ;_bagd .T =_egg .MakeString ("");_bagd .F =_egg .MakeInteger (132);_bagd .V =signature ;return _bagd ;}; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. The slice should contain a single element between 0 and 1. func (_aacg *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_feec :=vals [0];if _feec < 0.0||_feec > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_feec ); return nil ,ErrColorOutOfRange ;};_dagg :=NewPdfColorCalGray (_feec );return _dagg ,nil ;}; // Enable LTV enables the specified signature. The signing certificate // chain is extracted from the signature dictionary. Optionally, additional // certificates can be specified through the `extraCerts` parameter. // The LTV client attempts to build the certificate chain up to a trusted root // by downloading any missing certificates. func (_abdd *LTV )Enable (sig *PdfSignature ,extraCerts []*_dg .Certificate )error {if _gcad :=_abdd .validateSig (sig );_gcad !=nil {return _gcad ;};_dafa ,_ddegc :=_abdd .generateVRIKey (sig );if _ddegc !=nil {return _ddegc ;};if _ ,_bddad :=_abdd ._cbbab .VRI [_dafa ]; _bddad &&_abdd .SkipExisting {return nil ;};_dcbbg ,_ddegc :=sig .GetCerts ();if _ddegc !=nil {return _ddegc ;};return _abdd .enable (_dcbbg ,extraCerts ,_dafa );}; // GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7. func (_gbbgd *PdfShading )GetContext ()PdfModel {return _gbbgd ._fagfe }; // EnableAll LTV enables all signatures in the PDF document. // The signing certificate chain is extracted from each signature dictionary. // Optionally, additional certificates can be specified through the // `extraCerts` parameter. The LTV client attempts to build the certificate // chain up to a trusted root by downloading any missing certificates. func (_gdgfa *LTV )EnableAll (extraCerts []*_dg .Certificate )error {_cdac :=_gdgfa ._dbdga ._bgaa .AcroForm ;for _ ,_egbg :=range _cdac .AllFields (){_eedff ,_ :=_egbg .GetContext ().(*PdfFieldSignature );if _eedff ==nil {continue ;};_agdea :=_eedff .V ; if _dedgg :=_gdgfa .validateSig (_agdea );_dedgg !=nil {_bag .Log .Debug ("\u0057\u0041\u0052N\u003a\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0076",_dedgg ); };if _bbdgeb :=_gdgfa .Enable (_agdea ,extraCerts );_bbdgeb !=nil {return _bbdgeb ;};};return nil ;};func (_daggb *PdfWriter )checkPendingObjects (){for _acdfd ,_caaga :=range _daggb ._afcd {if !_daggb .hasObject (_acdfd ){_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u0020\u0050\u0065n\u0064\u0069\u006eg\u0020\u006f\u0062j\u0065\u0063t\u0020\u0025\u002b\u0076\u0020\u0025T\u0020(%\u0070\u0029\u0020\u006e\u0065\u0076\u0065\u0072\u0020\u0061\u0064\u0064\u0065\u0064\u0020\u0066\u006f\u0072\u0020\u0077\u0072\u0069\u0074\u0069\u006e\u0067",_acdfd ,_acdfd ,_acdfd ); for _ ,_dcgga :=range _caaga {for _ ,_adae :=range _dcgga .Keys (){_bfgcbb :=_dcgga .Get (_adae );if _bfgcbb ==_acdfd {_bag .Log .Debug ("\u0050e\u006e\u0064i\u006e\u0067\u0020\u006fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0075\u006e\u0064\u0021\u0020\u0061nd\u0020\u0072\u0065p\u006c\u0061c\u0065\u0064\u0020\u0077\u0069\u0074h\u0020\u006eu\u006c\u006c"); _dcgga .Set (_adae ,_egg .MakeNull ());break ;};};};};};}; // ToPdfObject implements interface PdfModel. func (_ge *PdfActionGoToR )ToPdfObject ()_egg .PdfObject {_ge .PdfAction .ToPdfObject ();_aec :=_ge ._bf ;_ccc :=_aec .PdfObject .(*_egg .PdfObjectDictionary );_ccc .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeGoToR )));if _ge .F !=nil {_ccc .Set ("\u0046",_ge .F .ToPdfObject ()); };_ccc .SetIfNotNil ("\u0044",_ge .D );_ccc .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_ge .NewWindow );return _aec ;}; // Encoder returns the font's text encoder. func (_aebc pdfFontType3 )Encoder ()_ef .TextEncoder {return _aebc ._fbfed };func _ffaf (_bcdg *_egg .PdfObjectDictionary )bool {for _ ,_bcfb :=range _bcdg .Keys (){if _ ,_cccb :=_effdb [_bcfb .String ()];_cccb {return true ;};};return false ;}; // PdfColorspaceCalGray represents CalGray color space. type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_agdab *_egg .PdfIndirectObject ;}; // NewPdfAnnotationMovie returns a new movie annotation. func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_cbd :=NewPdfAnnotation ();_dgcg :=&PdfAnnotationMovie {};_dgcg .PdfAnnotation =_cbd ;_cbd .SetContext (_dgcg );return _dgcg ;}; // ToInteger convert to an integer format. func (_gegc *PdfColorLab )ToInteger (bits int )[3]uint32 {_fffc :=_dgb .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_fffc *_gegc .L ()),uint32 (_fffc *_gegc .A ()),uint32 (_fffc *_gegc .B ())};}; // GetCapHeight returns the CapHeight of the font `descriptor`. func (_bbgfd *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _egg .GetNumberAsFloat (_bbgfd .CapHeight );};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ; XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;); // Duplicate creates a duplicate page based on the current one and returns it. func (_gbcc *PdfPage )Duplicate ()*PdfPage {_afag :=*_gbcc ;_afag ._fgfd =_egg .MakeDict ();_afag ._dfee =_egg .MakeIndirectObject (_afag ._fgfd );return &_afag ;};func _feaa (_cdbb _egg .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_cfffd :=NewPdfColorspaceSpecialIndexed (); if _bdbd ,_eegf :=_cdbb .(*_egg .PdfIndirectObject );_eegf {_cfffd ._ceed =_bdbd ;};_cdbb =_egg .TraceToDirectObject (_cdbb );_adfbb ,_ebagf :=_cdbb .(*_egg .PdfObjectArray );if !_ebagf {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };if _adfbb .Len ()!=4{return nil ,_f .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069\u006e\u0076a\u006ci\u0064\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");};_cdbb =_adfbb .Get (0); _ffcf ,_ebagf :=_cdbb .(*_egg .PdfObjectName );if !_ebagf {return nil ,_f .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_ffcf !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_f .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065"); };_cdbb =_adfbb .Get (1);_eeff ,_ebfd :=DetermineColorspaceNameFromPdfObject (_cdbb );if _ebfd !=nil {return nil ,_ebfd ;};if _eeff =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_eeff =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_bag .Log .Debug ("E\u0072\u0072o\u0072\u003a\u0020\u0049\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0049\u006e\u0064e\u0078\u0065\u0064\u002f\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0043S\u0020\u0061\u0073\u0020\u0062\u0061\u0073\u0065\u0020\u0028\u0025v\u0029",_eeff ); return nil ,_ccgg ;};_gea ,_ebfd :=NewPdfColorspaceFromPdfObject (_cdbb );if _ebfd !=nil {return nil ,_ebfd ;};_cfffd .Base =_gea ;_cdbb =_adfbb .Get (2);_gfab ,_ebfd :=_egg .GetNumberAsInt64 (_cdbb );if _ebfd !=nil {return nil ,_ebfd ;};if _gfab > 255{return nil ,_f .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l"); };_cfffd .HiVal =int (_gfab );_cdbb =_adfbb .Get (3);_cfffd .Lookup =_cdbb ;_cdbb =_egg .TraceToDirectObject (_cdbb );var _dgabe []byte ;if _efeg ,_gcaf :=_cdbb .(*_egg .PdfObjectString );_gcaf {_dgabe =_efeg .Bytes ();_bag .Log .Trace ("\u0049\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0073\u0074r\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072\u0020\u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0020\u0064",_dgabe ); }else if _bgef ,_dffa :=_cdbb .(*_egg .PdfObjectStream );_dffa {_bag .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_cdbb .String ());_bag .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_bgef .Stream ),_bgef .Stream ); _aeeg ,_cefa :=_egg .DecodeStream (_bgef );if _cefa !=nil {return nil ,_cefa ;};_bag .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_aeeg ),_aeeg );_dgabe =_aeeg ;}else {_bag .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_cdbb ); return nil ,_f .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076a\u006ci\u0064\u0020\u0074\u0061\u0062\u006c\u0065\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};if len (_dgabe )< _cfffd .Base .GetNumComponents ()*(_cfffd .HiVal +1){_bag .Log .Debug ("\u0050\u0044\u0046\u0020\u0049\u006e\u0063o\u006d\u0070\u0061t\u0069\u0062\u0069\u006ci\u0074\u0079\u003a\u0020\u0049\u006e\u0064\u0065\u0078\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0074\u006f\u006f\u0020\u0073\u0068\u006f\u0072\u0074"); _bag .Log .Debug ("\u0046\u0061i\u006c\u002c\u0020\u006c\u0065\u006e\u0028\u0064\u0061\u0074\u0061\u0029\u003a\u0020\u0025\u0064\u002c\u0020\u0063\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u002c\u0020\u0068\u0069\u0056\u0061\u006c\u003a\u0020\u0025\u0064",len (_dgabe ),_cfffd .Base .GetNumComponents (),_cfffd .HiVal ); }else {_dgabe =_dgabe [:_cfffd .Base .GetNumComponents ()*(_cfffd .HiVal +1)];};_cfffd ._defc =_dgabe ;return _cfffd ,nil ;}; // PdfActionGoTo3DView represents a GoTo3DView action. type PdfActionGoTo3DView struct{*PdfAction ;TA _egg .PdfObject ;V _egg .PdfObject ;};func (_ggbef *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _dcaf :=_ggbef ._bgacg ;_dcaf !=nil {return _dcaf ;};return _ggbef ._dbbfc ;}; // SetAnnotations sets the annotations list. func (_aecff *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_aecff ._bcce =annotations }; // ToPdfObject implements interface PdfModel. func (_acd *PdfAnnotationTrapNet )ToPdfObject ()_egg .PdfObject {_acd .PdfAnnotation .ToPdfObject ();_fbccd :=_acd ._cef ;_bbda :=_fbccd .PdfObject .(*_egg .PdfObjectDictionary );_bbda .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074")); return _fbccd ;}; // DecodeArray returns the range of color component values in CalGray colorspace. func (_aagb *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}}; // GetSubFilter returns SubFilter value or empty string. func (_accdd *pdfSignDictionary )GetSubFilter ()string {_aeecge :=_accdd .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _aeecge ==nil {return "";};if _ceeg ,_ccdbg :=_egg .GetNameVal (_aeecge );_ccdbg {return _ceeg ;};return "";}; // SetContext set the sub annotation (context). func (_geded *PdfShading )SetContext (ctx PdfModel ){_geded ._fagfe =ctx }; // PdfAnnotationLink represents Link annotations. // (Section 12.5.6.5 p. 403). type PdfAnnotationLink struct{*PdfAnnotation ;A _egg .PdfObject ;Dest _egg .PdfObject ;H _egg .PdfObject ;PA _egg .PdfObject ;QuadPoints _egg .PdfObject ;BS _egg .PdfObject ;_fdb *PdfAction ;_efb *PdfReader ;}; // NewXObjectImageFromImage creates a new XObject Image from an image object // with default options. If encoder is nil, uses raw encoding (none). func NewXObjectImageFromImage (img *Image ,cs PdfColorspace ,encoder _egg .StreamEncoder )(*XObjectImage ,error ){_fagfcb :=NewXObjectImage ();return UpdateXObjectImageFromImage (_fagfcb ,img ,cs ,encoder );}; // ToPdfObject converts the pdfCIDFontType2 to a PDF representation. func (_cadgd *pdfCIDFontType2 )ToPdfObject ()_egg .PdfObject {if _cadgd ._gcfdg ==nil {_cadgd ._gcfdg =&_egg .PdfIndirectObject {};};_afbd :=_cadgd .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"); _cadgd ._gcfdg .PdfObject =_afbd ;if _cadgd .CIDSystemInfo !=nil {_afbd .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_cadgd .CIDSystemInfo );};if _cadgd .DW !=nil {_afbd .Set ("\u0044\u0057",_cadgd .DW );};if _cadgd .DW2 !=nil {_afbd .Set ("\u0044\u0057\u0032",_cadgd .DW2 ); };if _cadgd .W !=nil {_afbd .Set ("\u0057",_cadgd .W );};if _cadgd .W2 !=nil {_afbd .Set ("\u0057\u0032",_cadgd .W2 );};if _cadgd .CIDToGIDMap !=nil {_afbd .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_cadgd .CIDToGIDMap );};return _cadgd ._gcfdg ; }; // SetForms sets the Acroform for a PDF file. func (_agdcad *PdfWriter )SetForms (form *PdfAcroForm )error {_agdcad ._aggec =form ;return nil }; // NewPdfActionSound returns a new "sound" action. func NewPdfActionSound ()*PdfActionSound {_ccb :=NewPdfAction ();_ede :=&PdfActionSound {};_ede .PdfAction =_ccb ;_ccb .SetContext (_ede );return _ede ;};func (_dfbf *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079"; }; // GetTrailer returns the PDF's trailer dictionary. func (_bdceg *PdfReader )GetTrailer ()(*_egg .PdfObjectDictionary ,error ){_fbead :=_bdceg ._dafgab .GetTrailer ();if _fbead ==nil {return nil ,_gd .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _fbead ,nil ; }; // DecodeArray returns the range of color component values in DeviceRGB colorspace. func (_geda *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};}; // HasXObjectByName checks if has XObject resource by name. func (_egcee *PdfPage )HasXObjectByName (name _egg .PdfObjectName )bool {_ffeddc ,_febda :=_egcee .Resources .XObject .(*_egg .PdfObjectDictionary );if !_febda {return false ;};if _gafa :=_ffeddc .Get (name );_gafa !=nil {return true ;};return false ;}; // PdfFieldSignature signature field represents digital signatures and optional data for authenticating // the name of the signer and verifying document contents. type PdfFieldSignature struct{*PdfField ;*PdfAnnotationWidget ;V *PdfSignature ;Lock *_egg .PdfIndirectObject ;SV *_egg .PdfIndirectObject ;};func _eggba (_eefcc _egg .PdfObject )(*PdfColorspaceDeviceN ,error ){_dfbfc :=NewPdfColorspaceDeviceN ();if _eddcg ,_bfee :=_eefcc .(*_egg .PdfIndirectObject ); _bfee {_dfbfc ._dadga =_eddcg ;};_eefcc =_egg .TraceToDirectObject (_eefcc );_feca ,_cbef :=_eefcc .(*_egg .PdfObjectArray );if !_cbef {return nil ,_f .Errorf ("\u0064\u0065\u0076\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062j\u0065\u0063\u0074"); };if _feca .Len ()!=4&&_feca .Len ()!=5{return nil ,_f .Errorf ("\u0064\u0065\u0076ic\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0049\u006ec\u006fr\u0072e\u0063t\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");};_eefcc =_feca .Get (0); _degg ,_cbef :=_eefcc .(*_egg .PdfObjectName );if !_cbef {return nil ,_f .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065"); };if *_degg !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_f .Errorf ("\u0064\u0065v\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020na\u006d\u0065");};_eefcc =_feca .Get (1); _eefcc =_egg .TraceToDirectObject (_eefcc );_dcbc ,_cbef :=_eefcc .(*_egg .PdfObjectArray );if !_cbef {return nil ,_f .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0049\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079"); };_dfbfc .ColorantNames =_dcbc ;_eefcc =_feca .Get (2);_degdg ,_bbgad :=NewPdfColorspaceFromPdfObject (_eefcc );if _bbgad !=nil {return nil ,_bbgad ;};_dfbfc .AlternateSpace =_degdg ;_ffdd ,_bbgad :=_bdefe (_feca .Get (3));if _bbgad !=nil {return nil ,_bbgad ; };_dfbfc .TintTransform =_ffdd ;if _feca .Len ()==5{_ecebe ,_degf :=_facdg (_feca .Get (4));if _degf !=nil {return nil ,_degf ;};_dfbfc .Attributes =_ecebe ;};return _dfbfc ,nil ;};var _cbaa =map[string ]struct{}{"\u0054\u0069\u0074l\u0065":{},"\u0041\u0075\u0074\u0068\u006f\u0072":{},"\u0053u\u0062\u006a\u0065\u0063\u0074":{},"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":{},"\u0043r\u0065\u0061\u0074\u006f\u0072":{},"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":{},"\u0054r\u0061\u0070\u0070\u0065\u0064":{},"\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":{},"\u004do\u0064\u0044\u0061\u0074\u0065":{}}; func (_bdcda *PdfWriter )writeObjects (){_bag .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_bdcda ._bbead ));_bdcda ._ccceb =make (map[int ]crossReference );_bdcda ._ccceb [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF}; if _bdcda ._ecfgc .ObjectMap !=nil {for _bgacb ,_ecbgf :=range _bdcda ._ecfgc .ObjectMap {if _bgacb ==0{continue ;};if _ecbgf .XType ==_egg .XrefTypeObjectStream {_aaecc :=crossReference {Type :2,ObjectNumber :_ecbgf .OsObjNumber ,Index :_ecbgf .OsObjIndex }; _bdcda ._ccceb [_bgacb ]=_aaecc ;};if _ecbgf .XType ==_egg .XrefTypeTableEntry {_gcfda :=crossReference {Type :1,ObjectNumber :_ecbgf .ObjectNumber ,Offset :_ecbgf .Offset };_bdcda ._ccceb [_bgacb ]=_gcfda ;};};};}; // ToPdfObject returns the PDF representation of the colorspace. func (_agca *PdfColorspaceSpecialPattern )ToPdfObject ()_egg .PdfObject {if _agca .UnderlyingCS ==nil {return _egg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_baad :=_egg .MakeArray (_egg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e")); _baad .Append (_agca .UnderlyingCS .ToPdfObject ());if _agca ._ceae !=nil {_agca ._ceae .PdfObject =_baad ;return _agca ._ceae ;};return _baad ;};func (_baeef *PdfReader )newPdfFieldFromIndirectObject (_afdd *_egg .PdfIndirectObject ,_gdfd *PdfField )(*PdfField ,error ){if _ffad ,_febf :=_baeef ._dabaf .GetModelFromPrimitive (_afdd ).(*PdfField ); _febf {return _ffad ,nil ;};_fdfb ,_aggbb :=_egg .GetDict (_afdd );if !_aggbb {return nil ,_f .Errorf ("\u0050\u0064f\u0046\u0069\u0065\u006c\u0064 \u0069\u006e\u0064\u0069\u0072e\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079"); };_dcbg :=NewPdfField ();_dcbg ._agef =_afdd ;_dcbg ._agef .PdfObject =_fdfb ;if _ccaa ,_gcgg :=_egg .GetName (_fdfb .Get ("\u0046\u0054"));_gcgg {_dcbg .FT =_ccaa ;};if _gdfd !=nil {_dcbg .Parent =_gdfd ;};_dcbg .T ,_ =_fdfb .Get ("\u0054").(*_egg .PdfObjectString ); _dcbg .TU ,_ =_fdfb .Get ("\u0054\u0055").(*_egg .PdfObjectString );_dcbg .TM ,_ =_fdfb .Get ("\u0054\u004d").(*_egg .PdfObjectString );_dcbg .Ff ,_ =_fdfb .Get ("\u0046\u0066").(*_egg .PdfObjectInteger );_dcbg .V =_fdfb .Get ("\u0056");_dcbg .DV =_fdfb .Get ("\u0044\u0056"); _dcbg .AA =_fdfb .Get ("\u0041\u0041");if DA :=_fdfb .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_egg .GetString (DA );_dcbg .VariableText =&VariableText {DA :DA };Q ,_ :=_fdfb .Get ("\u0051").(*_egg .PdfObjectInteger );DS ,_ :=_fdfb .Get ("\u0044\u0053").(*_egg .PdfObjectString ); RV :=_fdfb .Get ("\u0052\u0056");_dcbg .VariableText .Q =Q ;_dcbg .VariableText .DS =DS ;_dcbg .VariableText .RV =RV ;};_eecaf :=_dcbg .FT ;if _eecaf ==nil &&_gdfd !=nil {_eecaf =_gdfd .FT ;};if _eecaf !=nil {switch *_eecaf {case "\u0054\u0078":_bccb ,_gcbb :=_aefg (_fdfb ); if _gcbb !=nil {return nil ,_gcbb ;};_bccb .PdfField =_dcbg ;_dcbg ._gbdee =_bccb ;case "\u0043\u0068":_agga ,_aaed :=_ddfce (_fdfb );if _aaed !=nil {return nil ,_aaed ;};_agga .PdfField =_dcbg ;_dcbg ._gbdee =_agga ;case "\u0042\u0074\u006e":_gaabe ,_bdce :=_aedd (_fdfb ); if _bdce !=nil {return nil ,_bdce ;};_gaabe .PdfField =_dcbg ;_dcbg ._gbdee =_gaabe ;case "\u0053\u0069\u0067":_befg ,_gafef :=_baeef .newPdfFieldSignatureFromDict (_fdfb );if _gafef !=nil {return nil ,_gafef ;};_befg .PdfField =_dcbg ;_dcbg ._gbdee =_befg ; default:_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0073\u0075\u0070\u0070\u006f\u0072t\u0065d\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0025\u0073",*_dcbg .FT );return nil ,_gd .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065"); };};if _debce ,_bdaaa :=_egg .GetName (_fdfb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_bdaaa {if *_debce =="\u0057\u0069\u0064\u0067\u0065\u0074"{_bbeg ,_deaa :=_baeef .newPdfAnnotationFromIndirectObject (_afdd );if _deaa !=nil {return nil ,_deaa ; };_fgfb ,_afede :=_bbeg .GetContext ().(*PdfAnnotationWidget );if !_afede {return nil ,_gd .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_fgfb ._daa =_dcbg ;_fgfb .Parent =_dcbg ._agef ; _dcbg .Annotations =append (_dcbg .Annotations ,_fgfb );return _dcbg ,nil ;};};_gddac :=true ;if _fagfc ,_cccc :=_egg .GetArray (_fdfb .Get ("\u004b\u0069\u0064\u0073"));_cccc {_befc :=make ([]*_egg .PdfIndirectObject ,0,_fagfc .Len ());for _ ,_cdggg :=range _fagfc .Elements (){_cggb ,_bdfeg :=_egg .GetIndirect (_cdggg ); if !_bdfeg {_eaca ,_faeff :=_egg .GetStream (_cdggg );if _faeff &&_eaca .PdfObjectDictionary !=nil {_efbde ,_bcacd :=_egg .GetNameVal (_eaca .Get ("\u0054\u0079\u0070\u0065"));if _bcacd &&_efbde =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_bag .Log .Debug ("E\u0052RO\u0052:\u0020f\u006f\u0072\u006d\u0020\u0066i\u0065\u006c\u0064 \u004b\u0069\u0064\u0073\u0020a\u0072\u0072\u0061y\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0073\u0020\u0069n\u0076\u0061\u006cid \u004d\u0065\u0074\u0061\u0064\u0061t\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u002e\u0020\u0053\u006bi\u0070p\u0069\u006e\u0067\u002e"); continue ;};};return nil ,_gd .New ("n\u006f\u0074\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063t\u0020\u006f\u0062\u006a\u0065\u0063\u0074 \u0028\u0066\u006f\u0072\u006d\u0020\u0066\u0069\u0065\u006cd\u0029");};_efac ,_ffcd :=_egg .GetDict (_cggb ); if !_ffcd {return nil ,ErrTypeCheck ;};if _gddac {_gddac =!_ffaf (_efac );};_befc =append (_befc ,_cggb );};for _ ,_fgaed :=range _befc {if _gddac {_gcafa ,_ebff :=_baeef .newPdfAnnotationFromIndirectObject (_fgaed );if _ebff !=nil {_bag .Log .Debug ("\u0045r\u0072\u006fr\u0020\u006c\u006fa\u0064\u0069\u006e\u0067\u0020\u0077\u0069d\u0067\u0065\u0074\u0020\u0061\u006en\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0066\u006f\u0072 \u0066\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0076",_ebff ); return nil ,_ebff ;};_bgfbf ,_bfgc :=_gcafa ._gcf .(*PdfAnnotationWidget );if !_bfgc {return nil ,ErrTypeCheck ;};_bgfbf ._daa =_dcbg ;_dcbg .Annotations =append (_dcbg .Annotations ,_bgfbf );}else {_ddbe ,_gaef :=_baeef .newPdfFieldFromIndirectObject (_fgaed ,_dcbg ); if _gaef !=nil {_bag .Log .Debug ("\u0045\u0072r\u006f\u0072\u0020\u006c\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0063\u0068\u0069\u006c\u0064\u0020\u0066\u0069\u0065\u006c\u0064: \u0025\u0076",_gaef );return nil ,_gaef ;};_dcbg .Kids =append (_dcbg .Kids ,_ddbe ); };};};return _dcbg ,nil ;}; // SetLocation sets the `Location` field of the signature. func (_cegcg *PdfSignature )SetLocation (location string ){_cegcg .Location =_egg .MakeString (location )}; // GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this. func (_dgdgg *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _dgdgg ._fcbdg .(*PdfTilingPattern );}; // NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values. func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_abgd :=PdfColorDeviceRGB {r ,g ,b };return &_abgd ;}; // SetRotation sets the rotation of all pages added to writer. The rotation is // specified in degrees and must be a multiple of 90. // The Rotate field of individual pages has priority over the global rotation. func (_ffce *PdfWriter )SetRotation (rotate int64 )error {_dgcdb ,_bdgbe :=_egg .GetDict (_ffce ._gfbe );if !_bdgbe {return ErrTypeCheck ;};_dgcdb .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_egg .MakeInteger (rotate ));return nil ;}; // Register registers (caches) a model to primitive object relationship. func (_aeace *modelManager )Register (primitive _egg .PdfObject ,model PdfModel ){_aeace ._eefgc [model ]=primitive ;_aeace ._ggbg [primitive ]=model ;};func (_cfcda *PdfReader )newPdfSignatureFromIndirect (_aedba *_egg .PdfIndirectObject )(*PdfSignature ,error ){_gcdbe ,_abefbf :=_aedba .PdfObject .(*_egg .PdfObjectDictionary ); if !_abefbf {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072e\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072\u0020\u006e\u006ft\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079"); return nil ,ErrTypeCheck ;};if _fcagb ,_accdb :=_cfcda ._dabaf .GetModelFromPrimitive (_aedba ).(*PdfSignature );_accdb {return _fcagb ,nil ;};_aggbg :=&PdfSignature {};_aggbg ._ccbda =_aedba ;_aggbg .Type ,_ =_egg .GetName (_gcdbe .Get ("\u0054\u0079\u0070\u0065")); _aggbg .Filter ,_abefbf =_egg .GetName (_gcdbe .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_abefbf {_bag .Log .Error ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0053i\u0067\u006e\u0061\u0074\u0075r\u0065\u0020\u0046\u0069\u006c\u0074\u0065\u0072\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067"); return nil ,ErrInvalidAttribute ;};_aggbg .SubFilter ,_ =_egg .GetName (_gcdbe .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_aggbg .Contents ,_abefbf =_egg .GetString (_gcdbe .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_abefbf {_bag .Log .Error ("\u0045\u0052\u0052\u004f\u0052\u003a \u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006et\u0065\u006e\u0074\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067"); return nil ,ErrInvalidAttribute ;};if _begcd ,_ccab :=_egg .GetArray (_gcdbe .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_ccab {_aggbg .Reference =_egg .MakeArray ();for _ ,_dccdb :=range _begcd .Elements (){_gfaec ,_dggae :=_egg .GetDict (_dccdb ); if !_dggae {_bag .Log .Error ("\u0045\u0052R\u004f\u0052\u003a\u0020R\u0065\u0066e\u0072\u0065\u006e\u0063\u0065\u0020\u0063\u006fn\u0074\u0065\u006e\u0074\u0073\u0020\u0069\u006e\u0076\u0061\u006c\u0069d\u0061\u0074\u0065\u0064");return nil ,ErrInvalidAttribute ; };_bgdfb ,_eaceb :=_cfcda .newPdfSignatureReferenceFromDict (_gfaec );if _eaceb !=nil {return nil ,_eaceb ;};_aggbg .Reference .Append (_bgdfb .ToPdfObject ());};};_aggbg .Cert =_gcdbe .Get ("\u0043\u0065\u0072\u0074");_aggbg .ByteRange ,_ =_egg .GetArray (_gcdbe .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e")); _aggbg .Changes ,_ =_egg .GetArray (_gcdbe .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_aggbg .Name ,_ =_egg .GetString (_gcdbe .Get ("\u004e\u0061\u006d\u0065"));_aggbg .M ,_ =_egg .GetString (_gcdbe .Get ("\u004d"));_aggbg .Location ,_ =_egg .GetString (_gcdbe .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e")); _aggbg .Reason ,_ =_egg .GetString (_gcdbe .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_aggbg .ContactInfo ,_ =_egg .GetString (_gcdbe .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_aggbg .R ,_ =_egg .GetInt (_gcdbe .Get ("\u0052")); _aggbg .V ,_ =_egg .GetInt (_gcdbe .Get ("\u0056"));_aggbg .PropBuild ,_ =_egg .GetDict (_gcdbe .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_aggbg .PropAuthTime ,_ =_egg .GetInt (_gcdbe .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065")); _aggbg .PropAuthType ,_ =_egg .GetName (_gcdbe .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_cfcda ._dabaf .Register (_aedba ,_aggbg );return _aggbg ,nil ;}; // NewPdfAnnotationInk returns a new ink annotation. func NewPdfAnnotationInk ()*PdfAnnotationInk {_cbb :=NewPdfAnnotation ();_gge :=&PdfAnnotationInk {};_gge .PdfAnnotation =_cbb ;_gge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cbb .SetContext (_gge );return _gge ;}; // GetStandardApplier gets currently used StandardApplier.. func (_ffcde *PdfWriter )GetStandardApplier ()StandardApplier {return _ffcde ._ebgad }; // ToGoTime returns the date in time.Time format. func (_deefg PdfDate )ToGoTime ()_e .Time {_eabef :=int (_deefg ._ebeed *60*60+_deefg ._fcafb *60);switch _deefg ._ebcdc {case '-':_eabef =-_eabef ;case 'Z':_eabef =0;};_bebe :=_f .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_deefg ._ebcdc ,_deefg ._ebeed ,_deefg ._fcafb ); _cdaea :=_e .FixedZone (_bebe ,_eabef );return _e .Date (int (_deefg ._acadbc ),_e .Month (_deefg ._cbffc ),int (_deefg ._fgddd ),int (_deefg ._bfcd ),int (_deefg ._fceaf ),int (_deefg ._ffccc ),0,_cdaea );}; // StandardImplementer is an interface that defines specified PDF standards like PDF/A-1A (pdfa.Profile1A) // NOTE: This implementation is in experimental development state. // Keep in mind that it might change in the subsequent minor versions. type StandardImplementer interface{StandardValidator ;StandardApplier ; // StandardName gets the human-readable name of the standard. StandardName ()string ;}; // AddFont adds a font dictionary to the Font resources. func (_bcdgg *PdfPage )AddFont (name _egg .PdfObjectName ,font _egg .PdfObject )error {if _bcdgg .Resources ==nil {_bcdgg .Resources =NewPdfPageResources ();};if _bcdgg .Resources .Font ==nil {_bcdgg .Resources .Font =_egg .MakeDict ();};_deeba ,_aeacb :=_egg .TraceToDirectObject (_bcdgg .Resources .Font ).(*_egg .PdfObjectDictionary ); if !_aeacb {_bag .Log .Debug ("\u0045\u0078\u0070\u0065\u0063\u0074\u0065\u0064 \u0066\u006f\u006et \u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u003a \u0025\u0076",_egg .TraceToDirectObject (_bcdgg .Resources .Font )); return _gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_deeba .Set (name ,font );return nil ;}; // NewPdfColorspaceLab returns a new Lab colorspace object. func NewPdfColorspaceLab ()*PdfColorspaceLab {_cfdb :=&PdfColorspaceLab {};_cfdb .BlackPoint =[]float64 {0.0,0.0,0.0};_cfdb .Range =[]float64 {-100,100,-100,100};return _cfdb ;}; // SetPageLabels sets the PageLabels entry in the PDF catalog. // See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008). func (_dgggd *PdfWriter )SetPageLabels (pageLabels _egg .PdfObject )error {if pageLabels ==nil {return nil ;};_bag .Log .Trace ("\u0053\u0065t\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006cs.\u002e\u002e"); _dgggd ._acea .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _dgggd .addObjects (pageLabels );}; // PageProcessCallback callback function used in page loading // that could be used to modify the page content. // // If an error is returned, the `ToWriter` process would fail. // // This callback, if defined, will take precedence over `PageCallback` callback. type PageProcessCallback func (_cedf int ,_beeb *PdfPage )error ; // Val returns the color value. func (_fggg *PdfColorDeviceGray )Val ()float64 {return float64 (*_fggg )}; // PdfAction represents an action in PDF (section 12.6 p. 412). type PdfAction struct{_abb PdfModel ;Type _egg .PdfObject ;S _egg .PdfObject ;Next _egg .PdfObject ;_bf *_egg .PdfIndirectObject ;};func (_eaddb *PdfWriter )checkCrossReferenceStream ()bool {_fceag :=_eaddb ._dacce .Major > 1||(_eaddb ._dacce .Major ==1&&_eaddb ._dacce .Minor > 4); if _eaddb ._bfga !=nil {_fceag =*_eaddb ._bfga ;};return _fceag ;}; // GetColorspaceByName returns the colorspace with the specified name from the page resources. func (_bbafa *PdfPageResources )GetColorspaceByName (keyName _egg .PdfObjectName )(PdfColorspace ,bool ){_ffff ,_bdfdf :=_bbafa .GetColorspaces ();if _bdfdf !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0072\u0061\u0063\u0065: \u0025\u0076",_bdfdf ); return nil ,false ;};if _ffff ==nil {return nil ,false ;};_effad ,_bfca :=_ffff .Colorspaces [string (keyName )];if !_bfca {return nil ,false ;};return _effad ,true ;}; // ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace. // Format: [/DeviceN names alternateSpace tintTransform] // or: [/DeviceN names alternateSpace tintTransform attributes] func (_ecbd *PdfColorspaceDeviceN )ToPdfObject ()_egg .PdfObject {_fbfd :=_egg .MakeArray (_egg .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_fbfd .Append (_ecbd .ColorantNames );_fbfd .Append (_ecbd .AlternateSpace .ToPdfObject ());_fbfd .Append (_ecbd .TintTransform .ToPdfObject ()); if _ecbd .Attributes !=nil {_fbfd .Append (_ecbd .Attributes .ToPdfObject ());};if _ecbd ._dadga !=nil {_ecbd ._dadga .PdfObject =_fbfd ;return _ecbd ._dadga ;};return _fbfd ;}; // WatermarkImageOptions contains options for configuring the watermark process. type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};func (_gfbbc *PdfWriter )writeAcroFormFields ()error {if _gfbbc ._aggec ==nil {return nil ;};_bag .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073"); _bbgg :=_gfbbc ._aggec .ToPdfObject ();_bag .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_bbgg );_gfbbc ._acea .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_bbgg );_ceece :=_gfbbc .addObjects (_bbgg ); if _ceece !=nil {return _ceece ;};return nil ;}; // ToPdfObject returns the PDF representation of the pattern. func (_dceg *PdfPattern )ToPdfObject ()_egg .PdfObject {_debec :=_dceg .getDict ();_debec .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_debec .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_egg .MakeInteger (_dceg .PatternType )); return _dceg ._fgec ;}; // SetPdfTitle sets the Title attribute of the output PDF. func SetPdfTitle (title string ){_cgag .Lock ();defer _cgag .Unlock ();_fcfbd =title }; // UpdateXObjectImageFromImage creates a new XObject Image from an // Image object `img` and default masks from xobjIn. // The default masks are overridden if img.hasAlpha // If `encoder` is nil, uses raw encoding (none). func UpdateXObjectImageFromImage (xobjIn *XObjectImage ,img *Image ,cs PdfColorspace ,encoder _egg .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_egg .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_effcd ,_abaa :=encoder .EncodeBytes (img .Data ); if _abaa !=nil {_bag .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_abaa );return nil ,_abaa ;};_aeeea :=NewXObjectImage ();_bgacgc :=img .Width ;_cbbed :=img .Height ; _aeeea .Width =&_bgacgc ;_aeeea .Height =&_cbbed ;_gdaeb :=img .BitsPerComponent ;_aeeea .BitsPerComponent =&_gdaeb ;_aeeea .Filter =encoder ;_aeeea .Stream =_effcd ;if cs ==nil {if img .ColorComponents ==1{_aeeea .ColorSpace =NewPdfColorspaceDeviceGray (); }else if img .ColorComponents ==3{_aeeea .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_aeeea .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return nil ,_gd .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064"); };}else {_aeeea .ColorSpace =cs ;};if len (img ._fgggb )!=0{_gbga :=NewXObjectImage ();_gbga .Filter =encoder ;_bfffe ,_fedga :=encoder .EncodeBytes (img ._fgggb );if _fedga !=nil {_bag .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_fedga ); return nil ,_fedga ;};_gbga .Stream =_bfffe ;_gbga .BitsPerComponent =_aeeea .BitsPerComponent ;_gbga .Width =&img .Width ;_gbga .Height =&img .Height ;_gbga .ColorSpace =NewPdfColorspaceDeviceGray ();_aeeea .SMask =_gbga .ToPdfObject ();}else {_aeeea .SMask =xobjIn .SMask ; _aeeea .ImageMask =xobjIn .ImageMask ;if _aeeea .ColorSpace .GetNumComponents ()==1{_eebf (_aeeea );};};return _aeeea ,nil ;}; // GetRuneMetrics returns the character metrics for the specified rune. // A bool flag is returned to indicate whether or not the entry was found. func (_cegd pdfFontType3 )GetRuneMetrics (r rune )(_bgd .CharMetrics ,bool ){_gcae :=_cegd .Encoder ();if _gcae ==nil {_bag .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_cegd ); return _bgd .CharMetrics {},false ;};_gbbbg ,_cfcf :=_gcae .RuneToCharcode (r );if !_cfcf {if r !=' '{_bag .Log .Trace ("\u004e\u006f\u0020c\u0068\u0061\u0072\u0063o\u0064\u0065\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u003d\u0025\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",r ,_cegd ); };return _bgd .CharMetrics {},false ;};_faag ,_bfeg :=_cegd .GetCharMetrics (_gbbbg );return _faag ,_bfeg ;}; // ImageToRGB converts an Image in a given PdfColorspace to an RGB image. func (_cfdab *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_fdfc :=_fb .NewReader (img .getBase ());_ceaea :=_eg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._fgggb ,img ._abfae ); _egfa :=_fb .NewWriter (_ceaea );_eafed :=_dgb .Pow (2,float64 (img .BitsPerComponent ))-1;_gdgb :=_cfdab .GetNumComponents ();_gebe :=make ([]uint32 ,_gdgb );_acfdf :=make ([]float64 ,_gdgb );for {_bcbfc :=_fdfc .ReadSamples (_gebe );if _bcbfc ==_dag .EOF {break ; }else if _bcbfc !=nil {return img ,_bcbfc ;};for _eagf :=0;_eagf < _gdgb ;_eagf ++{_dgce :=float64 (_gebe [_eagf ])/_eafed ;_acfdf [_eagf ]=_dgce ;};_bedce ,_bcbfc :=_cfdab .TintTransform .Evaluate (_acfdf );if _bcbfc !=nil {return img ,_bcbfc ;};for _ ,_ccbde :=range _bedce {_ccbde =_dgb .Min (_dgb .Max (0,_ccbde ),1.0); if _bcbfc =_egfa .WriteSample (uint32 (_ccbde *_eafed ));_bcbfc !=nil {return img ,_bcbfc ;};};};return _cfdab .AlternateSpace .ImageToRGB (_cggba (&_ceaea ));}; // IsEncrypted returns true if the PDF file is encrypted. func (_fdccf *PdfReader )IsEncrypted ()(bool ,error ){return _fdccf ._dafgab .IsEncrypted ()}; // ToPdfObject implements interface PdfModel. func (_bbdec *PdfAnnotationStamp )ToPdfObject ()_egg .PdfObject {_bbdec .PdfAnnotation .ToPdfObject ();_eceg :=_bbdec ._cef ;_cbce :=_eceg .PdfObject .(*_egg .PdfObjectDictionary );_bbdec .PdfAnnotationMarkup .appendToPdfDictionary (_cbce );_cbce .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053\u0074\u0061m\u0070")); _cbce .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bbdec .Name );return _eceg ;}; // DecodeArray returns the component range values for the Separation colorspace. func (_ffga *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}}; // PdfActionResetForm represents a resetForm action. type PdfActionResetForm struct{*PdfAction ;Fields _egg .PdfObject ;Flags _egg .PdfObject ;}; // BorderStyle defines border type, typically used for annotations. type BorderStyle int ; // PdfShading represents a shading dictionary. There are 7 types of shading, // indicatedby the shading type variable: // 1: Function-based shading. // 2: Axial shading. // 3: Radial shading. // 4: Free-form Gouraud-shaded triangle mesh. // 5: Lattice-form Gouraud-shaded triangle mesh. // 6: Coons patch mesh. // 7: Tensor-product patch mesh. // types 4-7 are contained in a stream object, where the dictionary is given by the stream dictionary. type PdfShading struct{ShadingType *_egg .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_egg .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_egg .PdfObjectBool ;_fagfe PdfModel ;_cfdbd _egg .PdfObject ;}; // GetPrimitiveFromModel returns the primitive object corresponding to the input `model`. func (_edecb *modelManager )GetPrimitiveFromModel (model PdfModel )_egg .PdfObject {_egeba ,_bbgcg :=_edecb ._eefgc [model ];if !_bbgcg {return nil ;};return _egeba ;};func (_deegb *PdfPattern )getDict ()*_egg .PdfObjectDictionary {if _acface ,_gfde :=_deegb ._fgec .(*_egg .PdfIndirectObject ); _gfde {_cbafg ,_dfde :=_acface .PdfObject .(*_egg .PdfObjectDictionary );if !_dfde {return nil ;};return _cbafg ;}else if _efgbd ,_gebg :=_deegb ._fgec .(*_egg .PdfObjectStream );_gebg {return _efgbd .PdfObjectDictionary ;}else {_bag .Log .Debug ("\u0054r\u0079\u0069\u006e\u0067\u0020\u0074\u006f a\u0063\u0063\u0065\u0073\u0073\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e\u0020d\u0069\u0063t\u0069\u006f\u006ea\u0072\u0079\u0020\u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062j\u0065\u0063t \u0074\u0079\u0070e\u0020\u0028\u0025\u0054\u0029",_deegb ._fgec ); return nil ;};};func (_adfdb *PdfReader )newPdfAcroFormFromDict (_bede *_egg .PdfIndirectObject ,_gcag *_egg .PdfObjectDictionary )(*PdfAcroForm ,error ){_daaag :=NewPdfAcroForm ();if _bede !=nil {_daaag ._befdb =_bede ;_bede .PdfObject =_egg .MakeDict (); };if _dgdcc :=_gcag .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_dgdcc !=nil &&!_egg .IsNullObject (_dgdcc ){_ffded ,_ecafc :=_egg .GetArray (_dgdcc );if !_ecafc {return nil ,_f .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_dgdcc ); };var _ebgff []*PdfField ;for _ ,_dfba :=range _ffded .Elements (){_facg ,_fbed :=_egg .GetIndirect (_dfba );if !_fbed {if _ ,_baea :=_dfba .(*_egg .PdfObjectNull );_baea {_bag .Log .Trace ("\u0053k\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u006f\u0076\u0065\u0072 \u006e\u0075\u006c\u006c\u0020\u0066\u0069\u0065\u006c\u0064"); continue ;};_bag .Log .Debug ("\u0046\u0069\u0065\u006c\u0064 \u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0064 \u0069\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0054",_dfba ); return nil ,_f .Errorf ("\u0066\u0069\u0065l\u0064\u0020\u006e\u006ft\u0020\u0069\u006e\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_acbef ,_eaga :=_adfdb .newPdfFieldFromIndirectObject (_facg ,nil ); if _eaga !=nil {return nil ,_eaga ;};_bag .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_acbef );_ebgff =append (_ebgff ,_acbef );};_daaag .Fields =&_ebgff ;};if _ddgd :=_gcag .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073"); _ddgd !=nil {_ddgf ,_cdcgd :=_egg .GetBool (_ddgd );if _cdcgd {_daaag .NeedAppearances =_ddgf ;}else {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004e\u0065\u0065\u0064\u0041\u0070p\u0065\u0061\u0072\u0061\u006e\u0063e\u0073\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006ft\u0020\u0025\u0054\u0029",_ddgd ); };};if _fbbb :=_gcag .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_fbbb !=nil {_afbac ,_gabd :=_egg .GetInt (_fbbb );if _gabd {_daaag .SigFlags =_afbac ;}else {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073 \u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_fbbb ); };};if _adfbbb :=_gcag .Get ("\u0043\u004f");_adfbbb !=nil {_ffdb ,_fecag :=_egg .GetArray (_adfbbb );if _fecag {_daaag .CO =_ffdb ;}else {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043\u004f\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006f\u0074 \u0025\u0054\u0029",_adfbbb ); };};if _ccddb :=_gcag .Get ("\u0044\u0052");_ccddb !=nil {if _gfcac ,_dgfff :=_egg .GetDict (_ccddb );_dgfff {_bfdcc ,_beacf :=NewPdfPageResourcesFromDict (_gfcac );if _beacf !=nil {_bag .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_beacf ); return nil ,_beacf ;};_daaag .DR =_bfdcc ;}else {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0044\u0052\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006f\u0074 \u0025\u0054\u0029",_ccddb );};};if _fbbdf :=_gcag .Get ("\u0044\u0041"); _fbbdf !=nil {_agfeff ,_aaaff :=_egg .GetString (_fbbdf );if _aaaff {_daaag .DA =_agfeff ;}else {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0044\u0041\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006f\u0074 \u0025\u0054\u0029",_fbbdf ); };};if _gcee :=_gcag .Get ("\u0051");_gcee !=nil {_defa ,_aegea :=_egg .GetInt (_gcee );if _aegea {_daaag .Q =_defa ;}else {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_gcee ); };};if _cegg :=_gcag .Get ("\u0058\u0046\u0041");_cegg !=nil {_daaag .XFA =_cegg ;};_daaag .ToPdfObject ();return _daaag ,nil ;}; // PdfColorDeviceGray represents a grayscale color value that shall be represented by a single number in the // range 0.0 to 1.0 where 0.0 corresponds to black and 1.0 to white. type PdfColorDeviceGray float64 ; // ToInteger convert to an integer format. func (_ecgf *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_ffabd :=_dgb .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_ffabd *_ecgf .A ()),uint32 (_ffabd *_ecgf .B ()),uint32 (_ffabd *_ecgf .C ())};}; // SetDocInfo sets the document /Info metadata. // This will overwrite any globally declared document info. func (_ebag *PdfAppender )SetDocInfo (info *PdfInfo ){_ebag ._gaagg =info }; // GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder func (_gacee *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_egg .StreamEncoder ,error ){_egafe ,_cgea :=_gacee ._fgec .(*_egg .PdfObjectStream );if !_cgea {_bag .Log .Debug ("\u0054\u0069l\u0069\u006e\u0067\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_gacee ._fgec ); return nil ,nil ,_egg .ErrTypeError ;};_eacec ,_fgcbg :=_egg .DecodeStream (_egafe );if _fgcbg !=nil {_bag .Log .Debug ("\u0046\u0061\u0069l\u0065\u0064\u0020\u0064e\u0063\u006f\u0064\u0069\u006e\u0067\u0020s\u0074\u0072\u0065\u0061\u006d\u002c\u0020\u0065\u0072\u0072\u003a\u0020\u0025\u0076",_fgcbg ); return nil ,nil ,_fgcbg ;};_gedf ,_fgcbg :=_egg .NewEncoderFromStream (_egafe );if _fgcbg !=nil {_bag .Log .Debug ("F\u0061\u0069\u006c\u0065\u0064\u0020f\u0069\u006e\u0064\u0069\u006e\u0067 \u0064\u0065\u0063\u006f\u0064\u0069\u006eg\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u003a\u0020%\u0076",_fgcbg ); return nil ,nil ,_fgcbg ;};return _eacec ,_gedf ,nil ;}; // ParsePdfObject parses input pdf object into given output intent. func (_cbddc *PdfOutputIntent )ParsePdfObject (object _egg .PdfObject )error {_bgfbfc ,_cbced :=_egg .GetDict (object );if !_cbced {_bag .Log .Error ("\u0055\u006e\u006bno\u0077\u006e\u0020\u0074\u0079\u0070\u0065\u003a\u0020%\u0054 \u0066o\u0072 \u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0069\u006e\u0074\u0065\u006e\u0074",object ); return _gd .New ("\u0075\u006e\u006b\u006e\u006fw\u006e\u0020\u0070\u0064\u0066\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020t\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0069\u006e\u0074\u0065\u006e\u0074"); };_cbddc ._gdaaa =_bgfbfc ;_cbddc .Type ,_ =_bgfbfc .GetString ("\u0054\u0079\u0070\u0065");_gegd ,_cbced :=_bgfbfc .GetString ("\u0053");if _cbced {switch _gegd {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_cbddc .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_cbddc .S =PdfOutputIntentTypeA2 ; case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_cbddc .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_cbddc .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_cbddc .S =PdfOutputIntentTypeX ; };};_cbddc .OutputCondition ,_ =_bgfbfc .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_cbddc .OutputConditionIdentifier ,_ =_bgfbfc .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r"); _cbddc .RegistryName ,_ =_bgfbfc .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_cbddc .Info ,_ =_bgfbfc .GetString ("\u0049\u006e\u0066\u006f");if _dgag ,_dfad :=_egg .GetStream (_bgfbfc .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065")); _dfad {_cbddc .ColorComponents ,_ =_egg .GetIntVal (_dgag .Get ("\u004e"));_dfcb ,_bfge :=_egg .DecodeStream (_dgag );if _bfge !=nil {return _bfge ;};_cbddc .DestOutputProfile =_dfcb ;};return nil ;};func (_gedaaf *pdfFontType0 )subsetRegistered ()error {_fecb ,_bedac :=_gedaaf .DescendantFont ._edde .(*pdfCIDFontType2 ); if !_bedac {_bag .Log .Debug ("\u0046\u006fnt\u0020\u006e\u006ft\u0020\u0073\u0075\u0070por\u0074ed\u0020\u0066\u006f\u0072\u0020\u0073\u0075bs\u0065\u0074\u0074\u0069\u006e\u0067\u0020%\u0054",_gedaaf .DescendantFont );return nil ;};if _fecb ==nil {return nil ; };if _fecb ._bgacg ==nil {_bag .Log .Debug ("\u004d\u0069\u0073si\u006e\u0067\u0020\u0066\u006f\u006e\u0074\u0020\u0064\u0065\u0073\u0063\u0072\u0069\u0070\u0074\u006f\u0072");return nil ;};if _gedaaf ._bfddc ==nil {_bag .Log .Debug ("\u004e\u006f\u0020e\u006e\u0063\u006f\u0064e\u0072\u0020\u002d\u0020\u0073\u0075\u0062s\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0069\u0067\u006e\u006f\u0072\u0065\u0064"); return nil ;};_egebf ,_bedac :=_egg .GetStream (_fecb ._bgacg .FontFile2 );if !_bedac {_bag .Log .Debug ("\u0045\u006d\u0062\u0065\u0064\u0064\u0065\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u006f\u0062\u006a\u0065c\u0074\u0020\u006e\u006f\u0074\u0020\u0066o\u0075\u006e\u0064\u0020\u002d\u002d\u0020\u0041\u0042\u004f\u0052T\u0020\u0073\u0075\u0062\u0073\u0065\u0074\u0074\u0069\u006e\u0067"); return _gd .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_edefc ,_bdeae :=_egg .DecodeStream (_egebf );if _bdeae !=nil {_bag .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_bdeae ); return _bdeae ;};_ddbg ,_bdeae :=_ec .Parse (_dd .NewReader (_edefc ));if _bdeae !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0025\u0064\u0020\u0062\u0079\u0074\u0065\u0020f\u006f\u006e\u0074",len (_egebf .Stream )); return _bdeae ;};var _eacg []rune ;var _caab *_ec .Font ;switch _gcgd :=_gedaaf ._bfddc .(type ){case *_ef .TrueTypeFontEncoder :_eacg =_gcgd .RegisteredRunes ();_caab ,_bdeae =_ddbg .SubsetKeepRunes (_eacg );if _bdeae !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeae ); return _bdeae ;};_gcgd .SubsetRegistered ();case *_ef .IdentityEncoder :_eacg =_gcgd .RegisteredRunes ();_deba :=make ([]_ec .GlyphIndex ,len (_eacg ));for _baedc ,_ecba :=range _eacg {_deba [_baedc ]=_ec .GlyphIndex (_ecba );};_caab ,_bdeae =_ddbg .SubsetKeepIndices (_deba ); if _bdeae !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeae );return _bdeae ;};case _ef .SimpleEncoder :_fcfb :=_gcgd .Charcodes ();for _ ,_fgggc :=range _fcfb {_ebfed ,_efead :=_gcgd .CharcodeToRune (_fgggc );if !_efead {_bag .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0075\u006e\u0061\u0062\u006c\u0065\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0020\u0074\u006f \u0072\u0075\u006e\u0065\u003a\u0020\u0025\u0064",_fgggc ); continue ;};_eacg =append (_eacg ,_ebfed );};default:return _f .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020s\u0075\u0062\u0073\u0065\u0074t\u0069\u006eg\u003a\u0020\u0025\u0054",_gedaaf ._bfddc ); };var _gegaf _dd .Buffer ;_bdeae =_caab .Write (&_gegaf );if _bdeae !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeae );return _bdeae ;};if _gedaaf ._bfbgf !=nil {_fcda :=make (map[_ga .CharCode ]rune ,len (_eacg ));for _ ,_ccdb :=range _eacg {_aeed ,_fbae :=_gedaaf ._bfddc .RuneToCharcode (_ccdb ); if !_fbae {continue ;};_fcda [_ga .CharCode (_aeed )]=_ccdb ;};_gedaaf ._bfbgf =_ga .NewToUnicodeCMap (_fcda );};_egebf ,_bdeae =_egg .MakeStream (_gegaf .Bytes (),_egg .NewFlateEncoder ());if _bdeae !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeae ); return _bdeae ;};_egebf .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_egg .MakeInteger (int64 (_gegaf .Len ())));if _edaaf ,_abeed :=_egg .GetStream (_fecb ._bgacg .FontFile2 );_abeed {*_edaaf =*_egebf ;}else {_fecb ._bgacg .FontFile2 =_egebf ;};_gbgf :=_eaebg (); if len (_gedaaf ._dgfdc )> 0{_gedaaf ._dgfdc =_egcge (_gedaaf ._dgfdc ,_gbgf );};if len (_fecb ._dgfdc )> 0{_fecb ._dgfdc =_egcge (_fecb ._dgfdc ,_gbgf );};if len (_gedaaf ._cbgce )> 0{_gedaaf ._cbgce =_egcge (_gedaaf ._cbgce ,_gbgf );};if _fecb ._bgacg !=nil {_fgaca ,_gddcc :=_egg .GetName (_fecb ._bgacg .FontName ); if _gddcc &&len (_fgaca .String ())> 0{_cgbfa :=_egcge (_fgaca .String (),_gbgf );_fecb ._bgacg .FontName =_egg .MakeName (_cgbfa );};};return nil ;};func (_facdc *PdfWriter )updateObjectNumbers (){_daccd :=_facdc .ObjNumOffset ;_cbfae :=0;for _ ,_gaca :=range _facdc ._bbead {_agbeb :=int64 (_cbfae +1+_daccd ); _ffeddd :=true ;if _facdc ._gabaca {if _gcab ,_aaaac :=_facdc ._fcgfe [_gaca ];_aaaac {_agbeb =_gcab ;_ffeddd =false ;};};switch _aeeba :=_gaca .(type ){case *_egg .PdfIndirectObject :_aeeba .ObjectNumber =_agbeb ;_aeeba .GenerationNumber =0;case *_egg .PdfObjectStream :_aeeba .ObjectNumber =_agbeb ; _aeeba .GenerationNumber =0;case *_egg .PdfObjectStreams :_aeeba .ObjectNumber =_agbeb ;_aeeba .GenerationNumber =0;default:_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0055\u006e\u006b\u006e\u006f\u0077\u006e\u0020\u0074\u0079\u0070\u0065\u0020%\u0054\u0020\u002d\u0020\u0073\u006b\u0069p\u0070\u0069\u006e\u0067",_aeeba ); continue ;};if _ffeddd {_cbfae ++;};};_gedfd :=func (_afdf _egg .PdfObject )int64 {switch _gcdgc :=_afdf .(type ){case *_egg .PdfIndirectObject :return _gcdgc .ObjectNumber ;case *_egg .PdfObjectStream :return _gcdgc .ObjectNumber ;case *_egg .PdfObjectStreams :return _gcdgc .ObjectNumber ; };return 0;};_cf .SliceStable (_facdc ._bbead ,func (_eedeb ,_bgggb int )bool {return _gedfd (_facdc ._bbead [_eedeb ])< _gedfd (_facdc ._bbead [_bgggb ])});}; // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // components. The slice should contain a single PdfObjectFloat element. func (_bfcfa *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdea ,_aggb :=_egg .GetNumbersAsFloat (objects ); if _aggb !=nil {return nil ,_aggb ;};return _bfcfa .ColorFromFloats (_cdea );}; // SignatureHandlerDocMDPParams describe the specific parameters for the SignatureHandlerEx // These parameters describe how to check the difference between revisions. // Revisions of the document get from the PdfParser. type SignatureHandlerDocMDPParams struct{Parser *_egg .PdfParser ;DiffPolicy _be .DiffPolicy ;}; // NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject. func NewPdfOutputIntentFromPdfObject (object _egg .PdfObject )(*PdfOutputIntent ,error ){_bdebc :=&PdfOutputIntent {};if _bdfc :=_bdebc .ParsePdfObject (object );_bdfc !=nil {return nil ,_bdfc ;};return _bdebc ,nil ;};func _bbeb (_edbdbd *PdfField ,_fagge _egg .PdfObject ){for _ ,_cdaae :=range _edbdbd .Annotations {_cdaae .AS =_fagge ; _cdaae .ToPdfObject ();};}; // ToPdfObject returns the PDF representation of the DSS dictionary. func (_dgaca *DSS )ToPdfObject ()_egg .PdfObject {_gfdb :=_dgaca ._eaceg .PdfObject .(*_egg .PdfObjectDictionary );_gfdb .Clear ();_fcgg :=_egg .MakeDict ();for _eadee ,_bdbbd :=range _dgaca .VRI {_fcgg .Set (*_egg .MakeName (_eadee ),_bdbbd .ToPdfObject ()); };_gfdb .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_dgagb (_dgaca .Certs ));_gfdb .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_dgagb (_dgaca .OCSPs ));_gfdb .SetIfNotNil ("\u0043\u0052\u004c\u0073",_dgagb (_dgaca .CRLs ));_gfdb .Set ("\u0056\u0052\u0049",_fcgg ); return _dgaca ._eaceg ;}; // Subtype returns the font's "Subtype" field. func (_adcgf *PdfFont )Subtype ()string {_befbf :=_adcgf .baseFields ()._ebdf ;if _fdec ,_fede :=_adcgf ._edde .(*pdfFontType0 );_fede {_befbf =_befbf +"\u003a"+_fdec .DescendantFont .Subtype ();};return _befbf ;}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 3 for a CalRGB device. func (_babe *PdfColorspaceCalRGB )GetNumComponents ()int {return 3}; // PdfDate represents a date, which is a PDF string of the form: // (D:YYYYMMDDHHmmSSOHH'mm) type PdfDate struct{_acadbc int64 ;_cbffc int64 ;_fgddd int64 ;_bfcd int64 ;_fceaf int64 ;_ffccc int64 ;_ebcdc byte ;_ebeed int64 ;_fcafb int64 ;}; // ImageToRGB converts an image with samples in Separation CS to an image with samples specified in // DeviceRGB CS. func (_bgbfb *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_bdggf :=_fb .NewReader (img .getBase ());_cdeag :=_eg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_bgbfb .AlternateSpace .GetNumComponents (),nil ,img ._fgggb ,nil ); _bbaeb :=_fb .NewWriter (_cdeag );_ffgf :=_dgb .Pow (2,float64 (img .BitsPerComponent ))-1;_bag .Log .Trace ("\u0053\u0065\u0070a\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0073\u0070\u0061\u0063\u0065\u0020\u002d\u003e\u0020\u0054\u006f\u0052\u0047\u0042\u0020\u0063o\u006e\u0076\u0065\u0072\u0073\u0069\u006f\u006e"); _bag .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_bgbfb .TintTransform );_aebaf :=_bgbfb .AlternateSpace .DecodeArray ();var (_gdcb uint32 ;_gddf error ;);for {_gdcb ,_gddf =_bdggf .ReadSample (); if _gddf ==_dag .EOF {break ;};if _gddf !=nil {return img ,_gddf ;};_gdddf :=float64 (_gdcb )/_ffgf ;_dfabe ,_eagb :=_bgbfb .TintTransform .Evaluate ([]float64 {_gdddf });if _eagb !=nil {return img ,_eagb ;};for _bdeb ,_gcgcf :=range _dfabe {_ccbf :=_eg .LinearInterpolate (_gcgcf ,_aebaf [_bdeb *2],_aebaf [_bdeb *2+1],0,1); if _eagb =_bbaeb .WriteSample (uint32 (_ccbf *_ffgf ));_eagb !=nil {return img ,_eagb ;};};};return _bgbfb .AlternateSpace .ImageToRGB (_cggba (&_cdeag ));};var _eefde =map[string ]struct{}{"\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067":{},"\u004d\u0061c\u0052\u006f\u006da\u006e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067":{},"\u004d\u0061\u0063\u0045\u0078\u0070\u0065\u0072\u0074\u0045\u006e\u0063o\u0064\u0069\u006e\u0067":{},"\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067":{}}; // GetNumComponents returns the number of color components (3 for RGB). func (_bfgf *PdfColorDeviceRGB )GetNumComponents ()int {return 3}; // ToWriter creates a new writer from the current reader, based on the specified options. // If no options are provided, all reader properties are copied to the writer. func (_afbeea *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_egeag :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_fefa ,_bcgbf :=_afbeea .GetNumPages ();if _bcgbf !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bcgbf ); return nil ,_bcgbf ;};for _afeeg :=1;_afeeg <=_fefa ;_afeeg ++{_gegafg ,_bdeba :=_afbeea .GetPage (_afeeg );if _bdeba !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeba );return nil ,_bdeba ;};if opts .PageProcessCallback !=nil {_bdeba =opts .PageProcessCallback (_afeeg ,_gegafg ); if _bdeba !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeba );return nil ,_bdeba ;};}else if opts .PageCallback !=nil {opts .PageCallback (_afeeg ,_gegafg );};_bdeba =_egeag .AddPage (_gegafg );if _bdeba !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeba ); return nil ,_bdeba ;};};_egeag ._dacce =_afbeea .PdfVersion ();if !opts .SkipInfo {_ffead ,_fcbcb :=_afbeea .GetPdfInfo ();if _fcbcb !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fcbcb );}else {_egeag ._efage .PdfObject =_ffead .ToPdfObject (); };};if !opts .SkipMetadata {if _aadad :=_afbeea ._eacf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_aadad !=nil {if _cccd :=_egeag .SetCatalogMetadata (_aadad );_cccd !=nil {return nil ,_cccd ;};};};if !opts .SkipAcroForm {_ecfff :=_egeag .SetForms (_afbeea .AcroForm ); if _ecfff !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ecfff );return nil ,_ecfff ;};};if !opts .SkipOutlines {_egeag .AddOutlineTree (_afbeea .GetOutlineTree ());};if !opts .SkipOCProperties {_bdbbc ,_degbc :=_afbeea .GetOCProperties (); if _degbc !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_degbc );}else {_degbc =_egeag .SetOCProperties (_bdbbc );if _degbc !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_degbc );};};};if !opts .SkipPageLabels {_cccac ,_fggfg :=_afbeea .GetPageLabels (); if _fggfg !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fggfg );}else {_fggfg =_egeag .SetPageLabels (_cccac );if _fggfg !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fggfg );};};};if !opts .SkipNamedDests {_dceag ,_aabf :=_afbeea .GetNamedDestinations (); if _aabf !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aabf );}else {_aabf =_egeag .SetNamedDestinations (_dceag );if _aabf !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aabf );};};};if !opts .SkipNameDictionary {_bgggg ,_bbeag :=_afbeea .GetNameDictionary (); if _bbeag !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbeag );}else {_bbeag =_egeag .SetNameDictionary (_bgggg );if _bbeag !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbeag );};};};if !opts .SkipRotation &&_afbeea .Rotate !=nil {if _cbbdb :=_egeag .SetRotation (*_afbeea .Rotate ); _cbbdb !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cbbdb );};};return &_egeag ,nil ;}; // ToPdfObject returns the PDF representation of the function. func (_ccac *PdfFunctionType0 )ToPdfObject ()_egg .PdfObject {if _ccac ._adfae ==nil {_ccac ._adfae =&_egg .PdfObjectStream {};};_dccc :=_egg .MakeDict ();_dccc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_egg .MakeInteger (0)); _affd :=&_egg .PdfObjectArray {};for _ ,_efae :=range _ccac .Domain {_affd .Append (_egg .MakeFloat (_efae ));};_dccc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_affd );_gcaa :=&_egg .PdfObjectArray {};for _ ,_bdbfa :=range _ccac .Range {_gcaa .Append (_egg .MakeFloat (_bdbfa )); };_dccc .Set ("\u0052\u0061\u006eg\u0065",_gcaa );_faee :=&_egg .PdfObjectArray {};for _ ,_bbebc :=range _ccac .Size {_faee .Append (_egg .MakeInteger (int64 (_bbebc )));};_dccc .Set ("\u0053\u0069\u007a\u0065",_faee );_dccc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_egg .MakeInteger (int64 (_ccac .BitsPerSample ))); if _ccac .Order !=1{_dccc .Set ("\u004f\u0072\u0064e\u0072",_egg .MakeInteger (int64 (_ccac .Order )));};_dccc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_ccac ._efacf ))));_ccac ._adfae .Stream =_ccac ._efacf ;_ccac ._adfae .PdfObjectDictionary =_dccc ; return _ccac ._adfae ;}; // PdfField contains the common attributes of a form field. The context object contains the specific field data // which can represent a button, text, choice or signature. // The PdfField is typically not used directly, but is encapsulated by the more specific field types such as // PdfFieldButton etc (i.e. the context attribute). type PdfField struct{_gbdee PdfModel ;_agef *_egg .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_egg .PdfObjectName ;T *_egg .PdfObjectString ;TU *_egg .PdfObjectString ;TM *_egg .PdfObjectString ;Ff *_egg .PdfObjectInteger ; V _egg .PdfObject ;DV _egg .PdfObject ;AA _egg .PdfObject ;VariableText *VariableText ;}; // PdfAnnotationSquiggly represents Squiggly annotations. // (Section 12.5.6.10). type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _egg .PdfObject ;};func (_edfcd *PdfReader )flattenFieldsWithOpts (_baagf bool ,_cbefg FieldAppearanceGenerator ,_fgdf *FieldFlattenOpts )error {if _fgdf ==nil {_fgdf =&FieldFlattenOpts {}; };var _ffbgg bool ;_adgg :=map[*PdfAnnotation ]bool {};{var _fadc []*PdfField ;_fbcf :=_edfcd .AcroForm ;if _fbcf !=nil {if _fgdf .FilterFunc !=nil {_fadc =_fbcf .filteredFields (_fgdf .FilterFunc ,true );_ffbgg =_fbcf .Fields !=nil &&len (*_fbcf .Fields )> 0; }else {_fadc =_fbcf .AllFields ();};};for _ ,_gdecb :=range _fadc {for _ ,_degdga :=range _gdecb .Annotations {_adgg [_degdga .PdfAnnotation ]=_gdecb .V !=nil ;if _cbefg !=nil {_fdad ,_fbfe :=_cbefg .GenerateAppearanceDict (_fbcf ,_gdecb ,_degdga );if _fbfe !=nil {return _fbfe ; };_degdga .AP =_fdad ;};};};};if _baagf {for _ ,_ggcg :=range _edfcd .PageList {_abbfg ,_fgfee :=_ggcg .GetAnnotations ();if _fgfee !=nil {return _fgfee ;};for _ ,_aegd :=range _abbfg {_adgg [_aegd ]=true ;};};};for _ ,_ggcgg :=range _edfcd .PageList {var _afdca []*PdfAnnotation ; if _cbefg !=nil {if _gebb :=_cbefg .WrapContentStream (_ggcgg );_gebb !=nil {return _gebb ;};};_ddfe ,_ccbc :=_ggcgg .GetAnnotations ();if _ccbc !=nil {return _ccbc ;};for _ ,_cbca :=range _ddfe {_dfgfg ,_dbcb :=_adgg [_cbca ];if !_dbcb &&_fgdf .AnnotFilterFunc !=nil {if _ ,_cbcge :=_cbca .GetContext ().(*PdfAnnotationWidget ); !_cbcge {_dbcb =_fgdf .AnnotFilterFunc (_cbca );};};if !_dbcb {_afdca =append (_afdca ,_cbca );continue ;};switch _cbca .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ; };_fagb ,_febe ,_gggeae :=_acfec (_cbca );if _gggeae !=nil {if !_dfgfg {_bag .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0077\u0069\u0074h\u006f\u0075\u0074\u0020\u0056\u0020\u002d\u003e\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0077\u0069\u0074h\u006f\u0075t\u0020\u0061p\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u0073\u0074\u0072\u0065am\u0020\u002d\u0020\u0073\u006b\u0069\u0070\u0070\u0069n\u0067\u0020\u006f\u0076\u0065\u0072"); continue ;};_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u0020\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0077\u0069\u0074h\u006f\u0075\u0074\u0020\u0061\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u0073\u0074\u0072\u0065\u0061\u006d,\u0020\u0065\u0072\u0072\u0020\u003a\u0020\u0025\u0076\u0020\u002d\u0020\u0073\u006bi\u0070\u0070\u0069n\u0067\u0020\u006f\u0076\u0065\u0072",_gggeae ); continue ;};if _fagb ==nil {continue ;};_efga :=_ggcgg .Resources .GenerateXObjectName ();_ggcgg .Resources .SetXObjectFormByName (_efga ,_fagb );_cbcee :=_dgb .Min (_febe .Llx ,_febe .Urx );_begd :=_dgb .Min (_febe .Lly ,_febe .Ury );var _befgb []string ; _befgb =append (_befgb ,"\u0071");_befgb =append (_befgb ,_f .Sprintf ("\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020%\u002e6\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0063\u006d",1.0,0.0,0.0,1.0,_cbcee ,_begd )); _befgb =append (_befgb ,_f .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_efga .String ()));_befgb =append (_befgb ,"\u0051");_faafc :=_fc .Join (_befgb ,"\u000a");_gggeae =_ggcgg .AppendContentStream (_faafc );if _gggeae !=nil {return _gggeae ;};if _fagb .Resources !=nil {_dfae ,_gcfdb :=_egg .GetDict (_fagb .Resources .Font ); if _gcfdb {for _ ,_egeb :=range _dfae .Keys (){if !_ggcgg .Resources .HasFontByName (_egeb ){_ggcgg .Resources .SetFontByName (_egeb ,_dfae .Get (_egeb ));};};};};};if len (_afdca )> 0{_ggcgg ._bcce =_afdca ;}else {_ggcgg ._bcce =[]*PdfAnnotation {};}; };if !_ffbgg {_edfcd .AcroForm =nil ;};return nil ;}; // PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes. type PdfFieldChoice struct{*PdfField ;Opt *_egg .PdfObjectArray ;TI *_egg .PdfObjectInteger ;I *_egg .PdfObjectArray ;}; // ToPdfObject implements interface PdfModel. func (_cea *PdfAnnotationWatermark )ToPdfObject ()_egg .PdfObject {_cea .PdfAnnotation .ToPdfObject ();_aed :=_cea ._cef ;_daba :=_aed .PdfObject .(*_egg .PdfObjectDictionary );_daba .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k")); _daba .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_cea .FixedPrint );return _aed ;}; // ToPdfObject returns the PDF representation of the tiling pattern. func (_gefcg *PdfTilingPattern )ToPdfObject ()_egg .PdfObject {_gefcg .PdfPattern .ToPdfObject ();_fcdcc :=_gefcg .getDict ();if _gefcg .PaintType !=nil {_fcdcc .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_gefcg .PaintType );};if _gefcg .TilingType !=nil {_fcdcc .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_gefcg .TilingType ); };if _gefcg .BBox !=nil {_fcdcc .Set ("\u0042\u0042\u006f\u0078",_gefcg .BBox .ToPdfObject ());};if _gefcg .XStep !=nil {_fcdcc .Set ("\u0058\u0053\u0074e\u0070",_gefcg .XStep );};if _gefcg .YStep !=nil {_fcdcc .Set ("\u0059\u0053\u0074e\u0070",_gefcg .YStep ); };if _gefcg .Resources !=nil {_fcdcc .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_gefcg .Resources .ToPdfObject ());};if _gefcg .Matrix !=nil {_fcdcc .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gefcg .Matrix );};return _gefcg ._fgec ;}; // HasExtGState checks whether a font is defined by the specified keyName. func (_beafg *PdfPageResources )HasExtGState (keyName _egg .PdfObjectName )bool {_ ,_bccca :=_beafg .GetFontByName (keyName );return _bccca ;}; // ToPdfObject implements interface PdfModel. func (_cecag *Permissions )ToPdfObject ()_egg .PdfObject {return _cecag ._ffgafc };func _egcge (_dabe ,_fbbfe string )string {if _fc .Contains (_dabe ,"\u002b"){_dcga :=_fc .Split (_dabe ,"\u002b");if len (_dcga )==2{_dabe =_dcga [1];};};return _fbbfe +"\u002b"+_dabe ; }; // GetContainingPdfObject returns the container of the outline item (indirect object). func (_eaccc *PdfOutlineItem )GetContainingPdfObject ()_egg .PdfObject {return _eaccc ._gfcb }; // B returns the value of the blue component of the color. func (_gfe *PdfColorDeviceRGB )B ()float64 {return _gfe [2]}; // StringToCharcodeBytes maps the provided string runes to charcode bytes and // it returns the resulting slice of bytes, along with the number of runes // which could not be converted. If the number of misses is 0, all string runes // were successfully converted. func (_ecac *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _ecac .RunesToCharcodeBytes ([]rune (str ));}; // ToPdfObject implements interface PdfModel. func (_dgbe *PdfActionRendition )ToPdfObject ()_egg .PdfObject {_dgbe .PdfAction .ToPdfObject ();_fcbb :=_dgbe ._bf ;_gga :=_fcbb .PdfObject .(*_egg .PdfObjectDictionary );_gga .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeRendition )));_gga .SetIfNotNil ("\u0052",_dgbe .R ); _gga .SetIfNotNil ("\u0041\u004e",_dgbe .AN );_gga .SetIfNotNil ("\u004f\u0050",_dgbe .OP );_gga .SetIfNotNil ("\u004a\u0053",_dgbe .JS );return _fcbb ;}; // ToPdfObject convert PdfInfo to pdf object. func (_abadb *PdfInfo )ToPdfObject ()_egg .PdfObject {_fdgg :=_egg .MakeDict ();_fdgg .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_abadb .Title );_fdgg .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_abadb .Author );_fdgg .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_abadb .Subject ); _fdgg .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_abadb .Keywords );_fdgg .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_abadb .Creator );_fdgg .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_abadb .Producer ); _fdgg .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_abadb .Trapped );if _abadb .CreationDate !=nil {_fdgg .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_abadb .CreationDate .ToPdfObject ());};if _abadb .ModifiedDate !=nil {_fdgg .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_abadb .ModifiedDate .ToPdfObject ()); };for _ ,_eefd :=range _abadb ._eggg .Keys (){_fdgg .SetIfNotNil (_eefd ,_abadb ._eggg .Get (_eefd ));};return _fdgg ;}; // DetermineColorspaceNameFromPdfObject determines PDF colorspace from a PdfObject. Returns the colorspace name and // an error on failure. If the colorspace was not found, will return an empty string. func DetermineColorspaceNameFromPdfObject (obj _egg .PdfObject )(_egg .PdfObjectName ,error ){var _fbccg *_egg .PdfObjectName ;var _fcca *_egg .PdfObjectArray ;if _baac ,_debgg :=obj .(*_egg .PdfIndirectObject );_debgg {if _cgedb ,_gggea :=_baac .PdfObject .(*_egg .PdfObjectArray ); _gggea {_fcca =_cgedb ;}else if _dgbd ,_dbfd :=_baac .PdfObject .(*_egg .PdfObjectName );_dbfd {_fbccg =_dgbd ;};}else if _bbae ,_cddcg :=obj .(*_egg .PdfObjectArray );_cddcg {_fcca =_bbae ;}else if _ebga ,_aacf :=obj .(*_egg .PdfObjectName );_aacf {_fbccg =_ebga ; };if _fbccg !=nil {switch *_fbccg {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 *_fbccg ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_fbccg ,nil ; };};if _fcca !=nil &&_fcca .Len ()> 0{if _fgbd ,_fcadf :=_fcca .Get (0).(*_egg .PdfObjectName );_fcadf {switch *_fgbd {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 _fcca .Len ()==1{return *_fgbd ,nil ; };case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_fgbd ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_fgbd ,nil ; case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_fgbd ,nil ;};};};return "",nil ;};func _aefg (_deee *_egg .PdfObjectDictionary )(*PdfFieldText ,error ){_eagbd :=&PdfFieldText {};_eagbd .DA ,_ =_egg .GetString (_deee .Get ("\u0044\u0041")); _eagbd .Q ,_ =_egg .GetInt (_deee .Get ("\u0051"));_eagbd .DS ,_ =_egg .GetString (_deee .Get ("\u0044\u0053"));_eagbd .RV =_deee .Get ("\u0052\u0056");_eagbd .MaxLen ,_ =_egg .GetInt (_deee .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _eagbd ,nil ; }; // NewPdfColorspaceSpecialSeparation returns a new separation color. func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_gefb :=&PdfColorspaceSpecialSeparation {};return _gefb ;}; // DecodeArray returns the component range values for the DeviceN colorspace. // [0 1.0 0 1.0 ...] for each color component. func (_fcfa *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _eeaf []float64 ;for _gdab :=0;_gdab < _fcfa .GetNumComponents ();_gdab ++{_eeaf =append (_eeaf ,0.0,1.0);};return _eeaf ;}; // SignatureHandler interface defines the common functionality for PDF signature handlers, which // need to be capable of validating digital signatures and signing PDF documents. type SignatureHandler interface{ // IsApplicable checks if a given signature dictionary `sig` is applicable for the signature handler. // For example a signature of type `adbe.pkcs7.detached` might not fit for a rsa.sha1 handler. IsApplicable (_gcbbb *PdfSignature )bool ; // Validate validates a PDF signature against a given digest (hash) such as that determined // for an input file. Returns validation results. Validate (_dcgag *PdfSignature ,_cdgage Hasher )(SignatureValidationResult ,error ); // InitSignature prepares the signature dictionary for signing. This involves setting all // necessary fields, and also allocating sufficient space to the Contents so that the // finalized signature can be inserted once the hash is calculated. InitSignature (_ddgfg *PdfSignature )error ; // NewDigest creates a new digest/hasher based on the signature dictionary and handler. NewDigest (_befbe *PdfSignature )(Hasher ,error ); // Sign receives the hash `digest` (for example hash of an input file), and signs based // on the signature dictionary `sig` and applies the signature data to the signature // dictionary Contents field. Sign (_cgfbe *PdfSignature ,_cdfag Hasher )error ;}; // CharcodeBytesToUnicode converts PDF character codes `data` to a Go unicode string. // // 9.10 Extraction of Text Content (page 292) // The process of finding glyph descriptions in OpenType fonts by a conforming reader shall be the following: // • For Type 1 fonts using “CFF” tables, the process shall be as described in 9.6.6.2, "Encodings // for Type 1 Fonts". // • For TrueType fonts using “glyf” tables, the process shall be as described in 9.6.6.4, // "Encodings for TrueType Fonts". Since this process sometimes produces ambiguous results, // conforming writers, instead of using a simple font, shall use a Type 0 font with an Identity-H // encoding and use the glyph indices as character codes, as described following Table 118. func (_gdeg *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_cfag ,_ ,_aaggef :=_gdeg .CharcodesToUnicodeWithStats (_gdeg .BytesToCharcodes (data ));_fegd :=_ef .ExpandLigatures (_cfag );return _fegd ,_ab .RuneCountInString (_fegd ),_aaggef ; };func (_ddgce *PdfWriter )mapObjectStreams (_gcdcc bool )(map[_egg .PdfObject ]bool ,bool ){_aadbg :=make (map[_egg .PdfObject ]bool );for _ ,_ebaeg :=range _ddgce ._bbead {if _eggcb ,_addcd :=_ebaeg .(*_egg .PdfObjectStreams );_addcd {_gcdcc =true ;for _ ,_bcaea :=range _eggcb .Elements (){_aadbg [_bcaea ]=true ; if _cfce ,_eccgf :=_bcaea .(*_egg .PdfIndirectObject );_eccgf {_aadbg [_cfce .PdfObject ]=true ;};};};};return _aadbg ,_gcdcc ;};func (_gfga *DSS )generateHashMap (_adfc []*_egg .PdfObjectStream )(map[string ]*_egg .PdfObjectStream ,error ){_gfdce :=map[string ]*_egg .PdfObjectStream {}; for _ ,_edgf :=range _adfc {_ced ,_bdgf :=_egg .DecodeStream (_edgf );if _bdgf !=nil {return nil ,_bdgf ;};_daad ,_bdgf :=_eefdc (_ced );if _bdgf !=nil {return nil ,_bdgf ;};_gfdce [string (_daad )]=_edgf ;};return _gfdce ,nil ;}; // NewPdfAnnotationWatermark returns a new watermark annotation. func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_aee :=NewPdfAnnotation ();_eda :=&PdfAnnotationWatermark {};_eda .PdfAnnotation =_aee ;_aee .SetContext (_eda );return _eda ;};func (_ecbce *PdfWriter )writeOutlines ()error {if _ecbce ._dcedg ==nil {return nil ; };_bag .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_ecbce ._dcedg );_gcadg :=_ecbce ._dcedg .ToPdfObject ();_bag .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_gcadg ,_gcadg ,_gcadg ); _ecbce ._acea .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_gcadg );_fgeee :=_ecbce .addObjects (_gcadg );if _fgeee !=nil {return _fgeee ;};return nil ;}; // ImageHandler interface implements common image loading and processing tasks. // Implementing as an interface allows for the possibility to use non-standard libraries for faster // loading and processing of images. type ImageHandler interface{ // Read any image type and load into a new Image object. Read (_afeaa _dag .Reader )(*Image ,error ); // NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure. NewImageFromGoImage (_gggaf _cd .Image )(*Image ,error ); // NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure. NewGrayImageFromGoImage (_eeffc _cd .Image )(*Image ,error ); // Compress an image. Compress (_ecbbd *Image ,_cddgg int64 )(*Image ,error );}; // XObjectImage (Table 89 in 8.9.5.1). // Implements PdfModel interface. type XObjectImage struct{ //ColorSpace PdfObject Width *int64 ;Height *int64 ;ColorSpace PdfColorspace ;BitsPerComponent *int64 ;Filter _egg .StreamEncoder ;Intent _egg .PdfObject ;ImageMask _egg .PdfObject ;Mask _egg .PdfObject ;Matte _egg .PdfObject ;Decode _egg .PdfObject ;Interpolate _egg .PdfObject ; Alternatives _egg .PdfObject ;SMask _egg .PdfObject ;SMaskInData _egg .PdfObject ;Name _egg .PdfObject ;StructParent _egg .PdfObject ;ID _egg .PdfObject ;OPI _egg .PdfObject ;Metadata _egg .PdfObject ;OC _egg .PdfObject ;Stream []byte ;_gefbe *_egg .PdfObjectStream ; }; // AnnotFilterFunc represents a PDF annotation filtering function. If the function // returns true, the annotation is kept, otherwise it is discarded. type AnnotFilterFunc func (*PdfAnnotation )bool ; // NewPdfColorspaceDeviceGray returns a new grayscale colorspace. func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}}; // AddExtension adds the specified extension to the Extensions dictionary. // See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008). func (_aafee *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_afddb ,_cagbd :=_egg .GetDict (_aafee ._acea .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_cagbd {_afddb =_egg .MakeDict ();_aafee ._acea .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_afddb ); };_daaae ,_cagbd :=_egg .GetDict (_afddb .Get (_egg .PdfObjectName (extName )));if !_cagbd {_daaae =_egg .MakeDict ();_afddb .Set (_egg .PdfObjectName (extName ),_daaae );};if _acdab ,_ :=_egg .GetNameVal (_daaae .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e")); _acdab !=baseVersion {_daaae .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_egg .MakeName (baseVersion ));};if _egega ,_ :=_egg .GetIntVal (_daaae .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c")); _egega !=extLevel {_daaae .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_egg .MakeInteger (int64 (extLevel )));};};func _deec (_feeg _egg .PdfObject )(*PdfColorspaceCalGray ,error ){_cggf :=NewPdfColorspaceCalGray (); if _edgg ,_befa :=_feeg .(*_egg .PdfIndirectObject );_befa {_cggf ._agdab =_edgg ;};_feeg =_egg .TraceToDirectObject (_feeg );_ecfa ,_agfb :=_feeg .(*_egg .PdfObjectArray );if !_agfb {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };if _ecfa .Len ()!=2{return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0061\u006cG\u0072\u0061\u0079\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_feeg =_egg .TraceToDirectObject (_ecfa .Get (0));_bacb ,_agfb :=_feeg .(*_egg .PdfObjectName ); if !_agfb {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061\u0079\u0020\u006e\u0061m\u0065\u0020\u006e\u006f\u0074\u0020\u0061 \u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};if *_bacb !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_f .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065"); };_feeg =_egg .TraceToDirectObject (_ecfa .Get (1));_beab ,_agfb :=_feeg .(*_egg .PdfObjectDictionary );if !_agfb {return nil ,_f .Errorf ("\u0043\u0061lG\u0072\u0061\u0079 \u0064\u0069\u0063\u0074 no\u0074 a\u0020\u0044\u0069\u0063\u0074\u0069\u006fna\u0072\u0079\u0020\u006f\u0062\u006a\u0065c\u0074"); };_feeg =_beab .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_feeg =_egg .TraceToDirectObject (_feeg );_aeaac ,_agfb :=_feeg .(*_egg .PdfObjectArray );if !_agfb {return nil ,_f .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020W\u0068\u0069\u0074e\u0050o\u0069\u006e\u0074"); };if _aeaac .Len ()!=3{return nil ,_f .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069t\u0065\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_fdfgg ,_fead :=_aeaac .GetAsFloat64Slice (); if _fead !=nil {return nil ,_fead ;};_cggf .WhitePoint =_fdfgg ;_feeg =_beab .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _feeg !=nil {_feeg =_egg .TraceToDirectObject (_feeg );_gddcbd ,_bbgb :=_feeg .(*_egg .PdfObjectArray ); if !_bbgb {return nil ,_f .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020B\u006c\u0061\u0063k\u0050o\u0069\u006e\u0074");};if _gddcbd .Len ()!=3{return nil ,_f .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061c\u006b\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079"); };_dafg ,_eggb :=_gddcbd .GetAsFloat64Slice ();if _eggb !=nil {return nil ,_eggb ;};_cggf .BlackPoint =_dafg ;};_feeg =_beab .Get ("\u0047\u0061\u006dm\u0061");if _feeg !=nil {_feeg =_egg .TraceToDirectObject (_feeg );_cbfd ,_eeced :=_egg .GetNumberAsFloat (_feeg ); if _eeced !=nil {return nil ,_f .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");};_cggf .Gamma =_cbfd ;};return _cggf ,nil ;}; // Val returns the value of the color. func (_ecff *PdfColorCalGray )Val ()float64 {return float64 (*_ecff )}; // NewXObjectImageFromStream builds the image xobject from a stream object. // An image dictionary is the dictionary portion of a stream object representing an image XObject. func NewXObjectImageFromStream (stream *_egg .PdfObjectStream )(*XObjectImage ,error ){_fbdfc :=&XObjectImage {};_fbdfc ._gefbe =stream ;_dedae :=*(stream .PdfObjectDictionary );_ebacc ,_gddda :=_egg .NewEncoderFromStream (stream );if _gddda !=nil {return nil ,_gddda ; };_fbdfc .Filter =_ebacc ;if _bgdcd :=_egg .TraceToDirectObject (_dedae .Get ("\u0057\u0069\u0064t\u0068"));_bgdcd !=nil {_adbfac ,_bggb :=_bgdcd .(*_egg .PdfObjectInteger );if !_bggb {return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0069\u006d\u0061g\u0065\u0020\u0077\u0069\u0064\u0074\u0068\u0020\u006f\u0062j\u0065\u0063\u0074"); };_abfge :=int64 (*_adbfac );_fbdfc .Width =&_abfge ;}else {return nil ,_gd .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _egdgb :=_egg .TraceToDirectObject (_dedae .Get ("\u0048\u0065\u0069\u0067\u0068\u0074")); _egdgb !=nil {_cdacd ,_aded :=_egdgb .(*_egg .PdfObjectInteger );if !_aded {return nil ,_gd .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_dbdgb :=int64 (*_cdacd ); _fbdfc .Height =&_dbdgb ;}else {return nil ,_gd .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _ddgfd :=_egg .TraceToDirectObject (_dedae .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065")); _ddgfd !=nil {_bbfad ,_dfagb :=NewPdfColorspaceFromPdfObject (_ddgfd );if _dfagb !=nil {return nil ,_dfagb ;};_fbdfc .ColorSpace =_bbfad ;}else {_bag .Log .Debug ("\u0058O\u0062\u006a\u0065c\u0074\u0020\u0049m\u0061ge\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u002d\u0020\u0061\u0073\u0073\u0075\u006d\u0069\u006e\u0067 1\u0020c\u006f\u006c\u006f\u0072\u0020\u0063o\u006d\u0070\u006f\u006e\u0065n\u0074\u0020\u002d\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0047r\u0061\u0079"); _fbdfc .ColorSpace =NewPdfColorspaceDeviceGray ();};if _dcaca :=_egg .TraceToDirectObject (_dedae .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_dcaca !=nil {_ddafb ,_accac :=_dcaca .(*_egg .PdfObjectInteger ); if !_accac {return nil ,_gd .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_cbadd :=int64 (*_ddafb );_fbdfc .BitsPerComponent =&_cbadd ;};_fbdfc .Intent =_dedae .Get ("\u0049\u006e\u0074\u0065\u006e\u0074"); _fbdfc .ImageMask =_dedae .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_fbdfc .Mask =_dedae .Get ("\u004d\u0061\u0073\u006b");_fbdfc .Decode =_dedae .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_fbdfc .Interpolate =_dedae .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065"); _fbdfc .Alternatives =_dedae .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_fbdfc .SMask =_dedae .Get ("\u0053\u004d\u0061s\u006b");_fbdfc .SMaskInData =_dedae .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061"); _fbdfc .Matte =_dedae .Get ("\u004d\u0061\u0074t\u0065");_fbdfc .Name =_dedae .Get ("\u004e\u0061\u006d\u0065");_fbdfc .StructParent =_dedae .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_fbdfc .ID =_dedae .Get ("\u0049\u0044"); _fbdfc .OPI =_dedae .Get ("\u004f\u0050\u0049");_fbdfc .Metadata =_dedae .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_fbdfc .OC =_dedae .Get ("\u004f\u0043");_fbdfc .Stream =stream .Stream ;return _fbdfc ,nil ;}; // Write writes out the PDF. func (_cdefg *PdfWriter )Write (writer _dag .Writer )error {_bag .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_ecedd :=_cdefg .checkLicense ();if _ecedd !=nil {return _ecedd ;};if _ecedd =_cdefg .writeOutlines ();_ecedd !=nil {return _ecedd ;}; if _ecedd =_cdefg .writeAcroFormFields ();_ecedd !=nil {return _ecedd ;};_cdefg .checkPendingObjects ();if _ecedd =_cdefg .writeOutputIntents ();_ecedd !=nil {return _ecedd ;};_cdefg .setCatalogVersion ();_cdefg .copyObjects ();if _ecedd =_cdefg .optimize (); _ecedd !=nil {return _ecedd ;};if _ecedd =_cdefg .optimizeDocument ();_ecedd !=nil {return _ecedd ;};var _fcebc _bb .Hash ;if _cdefg ._aafeg {_fcebc =_ea .New ();writer =_dag .MultiWriter (_fcebc ,writer );};_cdefg .setWriter (writer );_fbdcc :=_cdefg .checkCrossReferenceStream (); _gfcef ,_fbdcc :=_cdefg .mapObjectStreams (_fbdcc );_cdefg .adjustXRefAffectedVersion (_fbdcc );_cdefg .writeDocumentVersion ();_cdefg .updateObjectNumbers ();_cdefg .writeObjects ();if _ecedd =_cdefg .writeObjectsInStreams (_gfcef );_ecedd !=nil {return _ecedd ; };_dagdd :=_cdefg ._cdaab ;var _bbfdc int ;for _aebafc :=range _cdefg ._ccceb {if _aebafc > _bbfdc {_bbfdc =_aebafc ;};};if _cdefg ._aafeg {if _ecedd =_cdefg .setHashIDs (_fcebc );_ecedd !=nil {return _ecedd ;};};if _fbdcc {if _ecedd =_cdefg .writeXRefStreams (_bbfdc ,_dagdd ); _ecedd !=nil {return _ecedd ;};}else {_cdefg .writeTrailer (_bbfdc );};_cdefg .makeOffSetReference (_dagdd );if _ecedd =_cdefg .flushWriter ();_ecedd !=nil {return _ecedd ;};return nil ;}; // PdfFilespec represents a file specification which can either refer to an external or embedded file. type PdfFilespec struct{Type _egg .PdfObject ;FS _egg .PdfObject ;F _egg .PdfObject ;UF _egg .PdfObject ;DOS _egg .PdfObject ;Mac _egg .PdfObject ;Unix _egg .PdfObject ;ID _egg .PdfObject ;V _egg .PdfObject ;EF _egg .PdfObject ;RF _egg .PdfObject ;Desc _egg .PdfObject ; CI _egg .PdfObject ;_fbdd _egg .PdfObject ;}; // NewPdfOutlineTree returns an initialized PdfOutline tree. func NewPdfOutlineTree ()*PdfOutline {_afcb :=NewPdfOutline ();_afcb ._bgbfg =&_afcb ;return _afcb }; // Encoder returns the font's text encoder. func (_abcce pdfFontType0 )Encoder ()_ef .TextEncoder {return _abcce ._bfddc }; // ToPdfObject implements interface PdfModel. func (_eag *PdfActionHide )ToPdfObject ()_egg .PdfObject {_eag .PdfAction .ToPdfObject ();_efa :=_eag ._bf ;_gbd :=_efa .PdfObject .(*_egg .PdfObjectDictionary );_gbd .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeHide )));_gbd .SetIfNotNil ("\u0054",_eag .T ); _gbd .SetIfNotNil ("\u0048",_eag .H );return _efa ;}; // PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377). type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_egg .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _egg .PdfObject ;A _egg .PdfObject ;SE _egg .PdfObject ;C _egg .PdfObject ;F _egg .PdfObject ; _gfcb *_egg .PdfIndirectObject ;}; // ToPdfObject converts the pdfFontSimple to its PDF representation for outputting. func (_dcbd *pdfFontSimple )ToPdfObject ()_egg .PdfObject {if _dcbd ._efde ==nil {_dcbd ._efde =&_egg .PdfIndirectObject {};};_adab :=_dcbd .baseFields ().asPdfObjectDictionary ("");_dcbd ._efde .PdfObject =_adab ;if _dcbd .FirstChar !=nil {_adab .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_dcbd .FirstChar ); };if _dcbd .LastChar !=nil {_adab .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_dcbd .LastChar );};if _dcbd .Widths !=nil {_adab .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_dcbd .Widths );};if _dcbd .Encoding !=nil {_adab .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dcbd .Encoding ); }else if _dcbd ._cbdegf !=nil {_cdcbg :=_dcbd ._cbdegf .ToPdfObject ();if _cdcbg !=nil {_adab .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cdcbg );};};return _dcbd ._efde ;};func (_adce *DSS )addOCSPs (_dfeb [][]byte )([]*_egg .PdfObjectStream ,error ){return _adce .add (&_adce .OCSPs ,_adce ._gaaec ,_dfeb ); };func (_aae *PdfReader )newPdfActionRenditionFromDict (_bbg *_egg .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_bbg .Get ("\u0052"),AN :_bbg .Get ("\u0041\u004e"),OP :_bbg .Get ("\u004f\u0050"),JS :_bbg .Get ("\u004a\u0053")},nil ; }; // FieldFilterFunc represents a PDF field filtering function. If the function // returns true, the PDF field is kept, otherwise it is discarded. type FieldFilterFunc func (*PdfField )bool ;func (_gbfdf SignatureValidationResult )String ()string {var _ccgafd _dd .Buffer ;_ccgafd .WriteString (_f .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_gbfdf .Name ));if _gbfdf .Date ._acadbc > 0{_ccgafd .WriteString (_f .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_gbfdf .Date .ToGoTime ().String ())); }else {_ccgafd .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_gbfdf .Reason )> 0{_ccgafd .WriteString (_f .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_gbfdf .Reason )); }else {_ccgafd .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");};if len (_gbfdf .Location )> 0{_ccgafd .WriteString (_f .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_gbfdf .Location )); }else {_ccgafd .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_gbfdf .ContactInfo )> 0{_ccgafd .WriteString (_f .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_gbfdf .ContactInfo )); }else {_ccgafd .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");};_ccgafd .WriteString (_f .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_gbfdf .Fields ))); if _gbfdf .IsSigned {_ccgafd .WriteString ("S\u0069\u0067\u006e\u0065\u0064\u003a \u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u0020i\u0073\u0020\u0073i\u0067n\u0065\u0064\u000a");}else {_ccgafd .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a"); };if _gbfdf .IsVerified {_ccgafd .WriteString ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072e\u0020\u0076\u0061\u006c\u0069\u0064\u0061t\u0069\u006f\u006e\u003a\u0020\u0049\u0073\u0020\u0076\u0061\u006c\u0069\u0064\u000a");}else {_ccgafd .WriteString ("\u0053\u0069\u0067\u006e\u0061\u0074u\u0072\u0065\u0020\u0076\u0061\u006c\u0069\u0064\u0061\u0074\u0069\u006f\u006e:\u0020\u0049\u0073\u0020\u0069\u006e\u0076a\u006c\u0069\u0064\u000a"); };if _gbfdf .IsTrusted {_ccgafd .WriteString ("\u0054\u0072\u0075\u0073\u0074\u0065\u0064\u003a\u0020\u0043\u0065\u0072\u0074\u0069\u0066i\u0063a\u0074\u0065\u0020\u0069\u0073\u0020\u0074\u0072\u0075\u0073\u0074\u0065\u0064\u000a");}else {_ccgafd .WriteString ("\u0054\u0072\u0075s\u0074\u0065\u0064\u003a \u0055\u006e\u0074\u0072\u0075\u0073\u0074e\u0064\u0020\u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u000a"); };if !_gbfdf .GeneralizedTime .IsZero (){_ccgafd .WriteString (_f .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_gbfdf .GeneralizedTime .String ()));};if _gbfdf .DiffResults !=nil {_ccgafd .WriteString (_f .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_gbfdf .DiffResults .IsPermitted ())); if len (_gbfdf .DiffResults .Warnings )> 0{_ccgafd .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a");for _ ,_gfggg :=range _gbfdf .DiffResults .Warnings {_ccgafd .WriteString (_f .Sprintf ("\u0009\u0025\u0073\u000a",_gfggg )); };};if len (_gbfdf .DiffResults .Errors )> 0{_ccgafd .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a");for _ ,_aaccg :=range _gbfdf .DiffResults .Errors {_ccgafd .WriteString (_f .Sprintf ("\u0009\u0025\u0073\u000a",_aaccg )); };};};return _ccgafd .String ();};func (_cabcc *PdfReader )newPdfActionGoTo3DViewFromDict (_fbd *_egg .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_fbd .Get ("\u0054\u0041"),V :_fbd .Get ("\u0056")},nil ;}; // PdfActionJavaScript represents a javaScript action. type PdfActionJavaScript struct{*PdfAction ;JS _egg .PdfObject ;};var _debadf =false ; // PdfAnnotationInk represents Ink annotations. // (Section 12.5.6.13). type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _egg .PdfObject ;BS _egg .PdfObject ;};func (_cebgb PdfOutputIntentType )String ()string {switch _cebgb {case PdfOutputIntentTypeA1 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411"; case PdfOutputIntentTypeA2 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412";case PdfOutputIntentTypeA3 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413";case PdfOutputIntentTypeA4 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414";case PdfOutputIntentTypeX :return "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058"; default:return "\u0055N\u0044\u0045\u0046\u0049\u004e\u0045D";};}; // ToPdfObject returns a PDF object representation of the outline destination. func (_feed OutlineDest )ToPdfObject ()_egg .PdfObject {if (_feed .PageObj ==nil &&_feed .Page < 0)||_feed .Mode ==""{return _egg .MakeNull ();};_fbfedc :=_egg .MakeArray ();if _feed .PageObj !=nil {_fbfedc .Append (_feed .PageObj );}else {_fbfedc .Append (_egg .MakeInteger (_feed .Page )); };_fbfedc .Append (_egg .MakeName (_feed .Mode ));switch _feed .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_fbfedc .Append (_egg .MakeFloat (_feed .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_fbfedc .Append (_egg .MakeFloat (_feed .X )); case "\u0058\u0059\u005a":_fbfedc .Append (_egg .MakeFloat (_feed .X ));_fbfedc .Append (_egg .MakeFloat (_feed .Y ));_fbfedc .Append (_egg .MakeFloat (_feed .Zoom ));default:_fbfedc .Set (1,_egg .MakeName ("\u0046\u0069\u0074"));};return _fbfedc ;}; // AppendContentBytes creates a PDF stream from `cs` and appends it to the // array of streams specified by the pages's Contents entry. // If `wrapContents` is true, the content stream of the page is wrapped using // a `q/Q` operator pair, so that its state does not affect the appended // content stream. func (_dgfb *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_fdgff :=_dgfb .GetContentStreamObjs ();wrapContents =wrapContents &&len (_fdgff )> 0;_gdacf :=_egg .NewFlateEncoder ();_degaa :=_egg .MakeArray ();if wrapContents {_gdgae ,_gfbccb :=_egg .MakeStream ([]byte ("\u0071\u000a"),_gdacf ); if _gfbccb !=nil {return _gfbccb ;};_degaa .Append (_gdgae );};_degaa .Append (_fdgff ...);if wrapContents {_ffbbg ,_eceda :=_egg .MakeStream ([]byte ("\u000a\u0051\u000a"),_gdacf );if _eceda !=nil {return _eceda ;};_degaa .Append (_ffbbg );};_dcac ,_cacaf :=_egg .MakeStream (cs ,_gdacf ); if _cacaf !=nil {return _cacaf ;};_degaa .Append (_dcac );_dgfb .Contents =_degaa ;return nil ;};func (_gffad *PdfWriter )flushWriter ()error {if _gffad ._gdbeb ==nil {_gffad ._gdbeb =_gffad ._beegad .Flush ();};return _gffad ._gdbeb ;}; // WriteString outputs the object as it is to be written to file. func (_dagbcc *PdfTransformParamsDocMDP )WriteString ()string {return _dagbcc .ToPdfObject ().WriteString ();}; // ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object. func (_dgdca *PdfFontDescriptor )ToPdfObject ()_egg .PdfObject {_eegb :=_egg .MakeDict ();if _dgdca ._faeb ==nil {_dgdca ._faeb =&_egg .PdfIndirectObject {};};_dgdca ._faeb .PdfObject =_eegb ;_eegb .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072")); if _dgdca .FontName !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_dgdca .FontName );};if _dgdca .FontFamily !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_dgdca .FontFamily );};if _dgdca .FontStretch !=nil {_eegb .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_dgdca .FontStretch ); };if _dgdca .FontWeight !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_dgdca .FontWeight );};if _dgdca .Flags !=nil {_eegb .Set ("\u0046\u006c\u0061g\u0073",_dgdca .Flags );};if _dgdca .FontBBox !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_dgdca .FontBBox ); };if _dgdca .ItalicAngle !=nil {_eegb .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_dgdca .ItalicAngle );};if _dgdca .Ascent !=nil {_eegb .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_dgdca .Ascent );};if _dgdca .Descent !=nil {_eegb .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_dgdca .Descent ); };if _dgdca .Leading !=nil {_eegb .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_dgdca .Leading );};if _dgdca .CapHeight !=nil {_eegb .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_dgdca .CapHeight );};if _dgdca .XHeight !=nil {_eegb .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_dgdca .XHeight ); };if _dgdca .StemV !=nil {_eegb .Set ("\u0053\u0074\u0065m\u0056",_dgdca .StemV );};if _dgdca .StemH !=nil {_eegb .Set ("\u0053\u0074\u0065m\u0048",_dgdca .StemH );};if _dgdca .AvgWidth !=nil {_eegb .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_dgdca .AvgWidth ); };if _dgdca .MaxWidth !=nil {_eegb .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_dgdca .MaxWidth );};if _dgdca .MissingWidth !=nil {_eegb .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_dgdca .MissingWidth );};if _dgdca .FontFile !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_dgdca .FontFile ); };if _dgdca .FontFile2 !=nil {_eegb .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_dgdca .FontFile2 );};if _dgdca .FontFile3 !=nil {_eegb .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_dgdca .FontFile3 );};if _dgdca .CharSet !=nil {_eegb .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_dgdca .CharSet ); };if _dgdca .Style !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_dgdca .FontName );};if _dgdca .Lang !=nil {_eegb .Set ("\u004c\u0061\u006e\u0067",_dgdca .Lang );};if _dgdca .FD !=nil {_eegb .Set ("\u0046\u0044",_dgdca .FD );}; if _dgdca .CIDSet !=nil {_eegb .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_dgdca .CIDSet );};return _dgdca ._faeb ;};func (_gfdc *PdfReader )newPdfActionResetFormFromDict (_cbg *_egg .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_cbg .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_cbg .Get ("\u0046\u006c\u0061g\u0073")},nil ; }; // NewPdfAnnotationLine returns a new line annotation. func NewPdfAnnotationLine ()*PdfAnnotationLine {_eae :=NewPdfAnnotation ();_agc :=&PdfAnnotationLine {};_agc .PdfAnnotation =_eae ;_agc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eae .SetContext (_agc );return _agc ;}; // NewPdfReader returns a new PdfReader for an input io.ReadSeeker interface. Can be used to read PDF from // memory or file. Immediately loads and traverses the PDF structure including pages and page contents (if // not encrypted). Loads entire document structure into memory. // Alternatively a lazy-loading reader can be created with NewPdfReaderLazy which loads only references, // and references are loaded from disk into memory on an as-needed basis. func NewPdfReader (rs _dag .ReadSeeker )(*PdfReader ,error ){const _ffea ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _ffee (rs ,&ReaderOpts {},false ,_ffea );}; // Mask returns the uin32 bitmask for the specific flag. func (_afdc FieldFlag )Mask ()uint32 {return uint32 (_afdc )}; // GetObjectNums returns the object numbers of the PDF objects in the file // Numbered objects are either indirect objects or stream objects. // e.g. objNums := pdfReader.GetObjectNums() // The underlying objects can then be accessed with // pdfReader.GetIndirectObjectByNumber(objNums[0]) for the first available object. func (_gfdff *PdfReader )GetObjectNums ()[]int {return _gfdff ._dafgab .GetObjectNums ()}; // PdfShadingType7 is a Tensor-product patch mesh. type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_egg .PdfObjectInteger ;BitsPerComponent *_egg .PdfObjectInteger ;BitsPerFlag *_egg .PdfObjectInteger ;Decode *_egg .PdfObjectArray ;Function []PdfFunction ;}; // NewPdfReaderLazy creates a new PdfReader for `rs` in lazy-loading mode. The difference // from NewPdfReader is that in lazy-loading mode, objects are only loaded into memory when needed // rather than entire structure being loaded into memory on reader creation. // Note that it may make sense to use the lazy-load reader when processing only parts of files, // rather than loading entire file into memory. Example: splitting a few pages from a large PDF file. func NewPdfReaderLazy (rs _dag .ReadSeeker )(*PdfReader ,error ){const _dceaa ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _ffee (rs ,&ReaderOpts {LazyLoad :true },false ,_dceaa ); }; // ToPdfObject returns the PDF representation of the colorspace. func (_dbeba *PdfColorspaceSpecialSeparation )ToPdfObject ()_egg .PdfObject {_fdefa :=_egg .MakeArray (_egg .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_fdefa .Append (_dbeba .ColorantName );_fdefa .Append (_dbeba .AlternateSpace .ToPdfObject ()); _fdefa .Append (_dbeba .TintTransform .ToPdfObject ());if _dbeba ._eedg !=nil {_dbeba ._eedg .PdfObject =_fdefa ;return _dbeba ._eedg ;};return _fdefa ;}; // EnableChain adds the specified certificate chain and validation data (OCSP // and CRL information) for it to the global scope of the document DSS. The // added data is used for validating any of the signatures present in the // document. The LTV client attempts to build the certificate chain up to a // trusted root by downloading any missing certificates. func (_efefg *LTV )EnableChain (chain []*_dg .Certificate )error {return _efefg .enable (nil ,chain ,"")}; // ColorAt returns the color of the image pixel specified by the x and y coordinates. func (_geefae *Image )ColorAt (x ,y int )(_ba .Color ,error ){_feffg :=_eg .BytesPerLine (int (_geefae .Width ),int (_geefae .BitsPerComponent ),_geefae .ColorComponents );switch _geefae .ColorComponents {case 1:return _eg .ColorAtGrayscale (x ,y ,int (_geefae .BitsPerComponent ),_feffg ,_geefae .Data ,_geefae ._abfae ); case 3:return _eg .ColorAtNRGBA (x ,y ,int (_geefae .Width ),_feffg ,int (_geefae .BitsPerComponent ),_geefae .Data ,_geefae ._fgggb ,_geefae ._abfae );case 4:return _eg .ColorAtCMYK (x ,y ,int (_geefae .Width ),_geefae .Data ,_geefae ._abfae );};_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064 i\u006da\u0067\u0065\u002e\u0020\u0025\u0064\u0020\u0063\u006f\u006d\u0070\u006fn\u0065\u006e\u0074\u0073\u002c\u0020\u0025\u0064\u0020\u0062\u0069\u0074\u0073\u0020\u0070\u0065\u0072 \u0063\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_geefae .ColorComponents ,_geefae .BitsPerComponent ); return nil ,_gd .New ("\u0075\u006e\u0073\u0075p\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0069\u006d\u0061g\u0065 \u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065");}; // ToPdfObject converts the PdfPage to a dictionary within an indirect object container. func (_bfbea *PdfPage )ToPdfObject ()_egg .PdfObject {_gabff :=_bfbea ._dfee ;_bfbea .GetPageDict ();return _gabff ;}; // NewPdfWriter initializes a new PdfWriter. func NewPdfWriter ()PdfWriter {_cefd :=PdfWriter {};_cefd ._bacec =map[_egg .PdfObject ]struct{}{};_cefd ._bbead =[]_egg .PdfObject {};_cefd ._afcd =map[_egg .PdfObject ][]*_egg .PdfObjectDictionary {};_cefd ._adcd =map[_egg .PdfObject ]struct{}{};_cefd ._dacce .Major =1; _cefd ._dacce .Minor =3;_gaecc :=_egg .MakeDict ();_cdegb :=[]struct{_eecba _egg .PdfObjectName ;_dgffb string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_aagbg ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_ggeed ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_fadfa ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_cbcgg ()},{"\u0054\u0069\u0074l\u0065",_babdd ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_gecfbd ()}}; for _ ,_agfgd :=range _cdegb {if _agfgd ._dgffb !=""{_gaecc .Set (_agfgd ._eecba ,_egg .MakeString (_agfgd ._dgffb ));};};if _dbca :=_bdcd ();!_dbca .IsZero (){if _bafac ,_gfdda :=NewPdfDateFromTime (_dbca );_gfdda ==nil {_gaecc .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_bafac .ToPdfObject ()); };};if _cceg :=_ddgfga ();!_cceg .IsZero (){if _efbg ,_baffe :=NewPdfDateFromTime (_cceg );_baffe ==nil {_gaecc .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_efbg .ToPdfObject ());};};_aaee :=_egg .PdfIndirectObject {};_aaee .PdfObject =_gaecc ;_cefd ._efage =&_aaee ; _cefd .addObject (&_aaee );_acgad :=_egg .PdfIndirectObject {};_bccdc :=_egg .MakeDict ();_bccdc .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_acgad .PdfObject =_bccdc ;_cefd ._egad =&_acgad ;_cefd .addObject (_cefd ._egad ); _cdcfc ,_adgfa :=_gfgfd ("\u0077");if _adgfa !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adgfa );};_cefd ._fbgdb =_cdcfc ;_gggc :=_egg .PdfIndirectObject {};_efged :=_egg .MakeDict ();_efged .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0050\u0061\u0067e\u0073")); _cefb :=_egg .PdfObjectArray {};_efged .Set ("\u004b\u0069\u0064\u0073",&_cefb );_efged .Set ("\u0043\u006f\u0075n\u0074",_egg .MakeInteger (0));_gggc .PdfObject =_efged ;_cefd ._gfbe =&_gggc ;_cefd ._fcdab =map[_egg .PdfObject ]struct{}{};_cefd .addObject (_cefd ._gfbe ); _bccdc .Set ("\u0050\u0061\u0067e\u0073",&_gggc );_cefd ._acea =_bccdc ;_bag .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_acgad );return _cefd ;}; // String returns a string that describes `font`. func (_fafg *PdfFont )String ()string {_gcbf :="";if _fafg ._edde .Encoder ()!=nil {_gcbf =_fafg ._edde .Encoder ().String ();};return _f .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_fafg ._edde ,_fafg .baseFields ().coreString (),_gcbf ); };func (_dabcfd *PdfWriter )setHashIDs (_feba _bb .Hash )error {_ggefe :=_feba .Sum (nil );if _dabcfd ._caddc ==""{_dabcfd ._caddc =_fg .EncodeToString (_ggefe [:8]);};_dabcfd .setDocumentIDs (_dabcfd ._caddc ,_fg .EncodeToString (_ggefe [8:]));return nil ; }; // XObjectType represents the type of an XObject. type XObjectType int ;func _ffc (_eddb _egg .PdfObject )(*PdfColorspaceCalRGB ,error ){_dggc :=NewPdfColorspaceCalRGB ();if _dagc ,_aagbc :=_eddb .(*_egg .PdfIndirectObject );_aagbc {_dggc ._fcgc =_dagc ;};_eddb =_egg .TraceToDirectObject (_eddb );_beag ,_ebagb :=_eddb .(*_egg .PdfObjectArray ); if !_ebagb {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _beag .Len ()!=2{return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e"); };_eddb =_egg .TraceToDirectObject (_beag .Get (0));_gdea ,_ebagb :=_eddb .(*_egg .PdfObjectName );if !_ebagb {return nil ,_f .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074"); };if *_gdea !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_f .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_eddb =_egg .TraceToDirectObject (_beag .Get (1)); _eaaca ,_ebagb :=_eddb .(*_egg .PdfObjectDictionary );if !_ebagb {return nil ,_f .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074"); };_eddb =_eaaca .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_eddb =_egg .TraceToDirectObject (_eddb );_aafb ,_ebagb :=_eddb .(*_egg .PdfObjectArray );if !_ebagb {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050o\u0069\u006e\u0074"); };if _aafb .Len ()!=3{return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0057h\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");};_febg ,_dbgf :=_aafb .GetAsFloat64Slice (); if _dbgf !=nil {return nil ,_dbgf ;};_dggc .WhitePoint =_febg ;_eddb =_eaaca .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _eddb !=nil {_eddb =_egg .TraceToDirectObject (_eddb );_dadfb ,_gbda :=_eddb .(*_egg .PdfObjectArray ); if !_gbda {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050o\u0069\u006e\u0074");};if _dadfb .Len ()!=3{return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0042l\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079"); };_gdbab ,_deac :=_dadfb .GetAsFloat64Slice ();if _deac !=nil {return nil ,_deac ;};_dggc .BlackPoint =_gdbab ;};_eddb =_eaaca .Get ("\u0047\u0061\u006dm\u0061");if _eddb !=nil {_eddb =_egg .TraceToDirectObject (_eddb );_dffegd ,_bcfd :=_eddb .(*_egg .PdfObjectArray ); if !_bcfd {return nil ,_f .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _dffegd .Len ()!=3{return nil ,_f .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079"); };_cffdd ,_bgage :=_dffegd .GetAsFloat64Slice ();if _bgage !=nil {return nil ,_bgage ;};_dggc .Gamma =_cffdd ;};_eddb =_eaaca .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _eddb !=nil {_eddb =_egg .TraceToDirectObject (_eddb );_ggad ,_gacg :=_eddb .(*_egg .PdfObjectArray ); if !_gacg {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _ggad .Len ()!=9{_bag .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_ggad .String ()); return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052G\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u004da\u0074\u0072\u0069\u0078\u0020\u0061\u0072r\u0061\u0079");};_bcac ,_beaga :=_ggad .GetAsFloat64Slice ();if _beaga !=nil {return nil ,_beaga ; };_dggc .Matrix =_bcac ;};return _dggc ,nil ;}; // PdfColorspace interface defines the common methods of a PDF colorspace. // The colorspace defines the data storage format for each color and color representation. // // Device based colorspace, specified by name // - /DeviceGray // - /DeviceRGB // - /DeviceCMYK // // CIE based colorspace specified by [name, dictionary] // - [/CalGray dict] // - [/CalRGB dict] // - [/Lab dict] // - [/ICCBased dict] // // Special colorspaces // - /Pattern // - /Indexed // - /Separation // - /DeviceN // // Work is in progress to support all colorspaces. At the moment ICCBased color spaces fall back to the alternate // colorspace which works OK in most cases. For full color support, will need fully featured ICC support. type PdfColorspace interface{ // String returns the PdfColorspace's name. String ()string ; // ImageToRGB converts an Image in a given PdfColorspace to an RGB image. ImageToRGB (Image )(Image ,error ); // ColorToRGB converts a single color in a given PdfColorspace to an RGB color. ColorToRGB (_bafe PdfColor )(PdfColor ,error ); // GetNumComponents returns the number of components in the PdfColorspace. GetNumComponents ()int ; // ToPdfObject returns a PdfObject representation of the PdfColorspace. ToPdfObject ()_egg .PdfObject ; // ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each // PdfObject represents a numeric value. ColorFromPdfObjects (_fgad []_egg .PdfObject )(PdfColor ,error ); // ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace. ColorFromFloats (_gbae []float64 )(PdfColor ,error ); // DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component. DecodeArray ()[]float64 ;};func (_gffdf *PdfWriter )checkLicense ()error {_dbag :=_ace .GetLicenseKey ();if (_dbag ==nil ||!_dbag .IsLicensed ())&&!_debadf {_f .Printf ("\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064\u0020c\u006f\u0070\u0079\u0020\u006f\u0066\u0020\u0055\u006e\u0069P\u0044\u0046\u000a"); _f .Println ("-\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u0066\u0072e\u0065\u0020\u0074\u0072\u0069\u0061\u006c l\u0069\u0063\u0065\u006es\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070s:\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f"); return _gd .New ("\u0075\u006e\u0069\u0070d\u0066\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020c\u006fd\u0065\u0020\u0072\u0065\u0071\u0075\u0069r\u0065\u0064");};return nil ;}; // ReaderOpts defines options for creating PdfReader instances. type ReaderOpts struct{ // Password password of the PDF file encryption. // Default: empty (""). Password string ; // LazyLoad set if the PDF file would be loaded using lazy-loading mode. // Default: true. LazyLoad bool ; // ComplianceMode set if parsed PDF file should contain meta information for the verifiers of the compliance standards like PDF/A. ComplianceMode bool ;}; // GetPerms returns the Permissions dictionary func (_eacab *PdfReader )GetPerms ()*Permissions {return _eacab ._eacd }; // PdfAnnotationStrikeOut represents StrikeOut annotations. // (Section 12.5.6.10). type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _egg .PdfObject ;}; // SetContentStream updates the content stream with specified encoding. // If encoding is null, will use the xform.Filter object or Raw encoding if not set. func (_egeca *XObjectForm )SetContentStream (content []byte ,encoder _egg .StreamEncoder )error {_dgegb :=content ;if encoder ==nil {if _egeca .Filter !=nil {encoder =_egeca .Filter ;}else {encoder =_egg .NewRawEncoder ();};};_eaada ,_bbfbf :=encoder .EncodeBytes (_dgegb ); if _bbfbf !=nil {return _bbfbf ;};_dgegb =_eaada ;_egeca .Stream =_dgegb ;_egeca .Filter =encoder ;return nil ;}; // NewPdfAnnotationSquare returns a new square annotation. func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_fba :=NewPdfAnnotation ();_edg :=&PdfAnnotationSquare {};_edg .PdfAnnotation =_fba ;_edg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fba .SetContext (_edg );return _edg ;}; // ToPdfObject implements interface PdfModel. func (_ceb *PdfActionResetForm )ToPdfObject ()_egg .PdfObject {_ceb .PdfAction .ToPdfObject ();_acf :=_ceb ._bf ;_db :=_acf .PdfObject .(*_egg .PdfObjectDictionary );_db .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeResetForm )));_db .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_ceb .Fields ); _db .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_ceb .Flags );return _acf ;};func (_dbfdd *PdfWriter )hasObject (_abacc _egg .PdfObject )bool {_ ,_cdedf :=_dbfdd ._bacec [_abacc ];return _cdedf ;};func (_dadf *PdfReader )newPdfAnnotation3DFromDict (_eaa *_egg .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_aaga :=PdfAnnotation3D {}; _aaga .T3DD =_eaa .Get ("\u0033\u0044\u0044");_aaga .T3DV =_eaa .Get ("\u0033\u0044\u0056");_aaga .T3DA =_eaa .Get ("\u0033\u0044\u0041");_aaga .T3DI =_eaa .Get ("\u0033\u0044\u0049");_aaga .T3DB =_eaa .Get ("\u0033\u0044\u0042");return &_aaga ,nil ;}; // GetOutlinesFlattened returns a flattened list of tree nodes and titles. // NOTE: for most use cases, it is recommended to use the high-level GetOutlines // method instead, which also provides information regarding the destination // of the outline items. func (_adea *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _bbbcb []*PdfOutlineTreeNode ;var _dcfec []string ;var _gebbe func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_gebbe =func (_adac *PdfOutlineTreeNode ,_beegf *[]*PdfOutlineTreeNode ,_gfcab *[]string ,_degab int ){if _adac ==nil {return ; };if _adac ._bgbfg ==nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020M\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006e\u006fd\u0065\u002e\u0063o\u006et\u0065\u0078\u0074");return ;};_efefc ,_ffdec :=_adac ._bgbfg .(*PdfOutlineItem );if _ffdec {*_beegf =append (*_beegf ,&_efefc .PdfOutlineTreeNode ); _ccdbf :=_fc .Repeat ("\u0020",_degab *2)+_efefc .Title .Decoded ();*_gfcab =append (*_gfcab ,_ccdbf );};if _adac .First !=nil {_ecfc :=_fc .Repeat ("\u0020",_degab *2)+"\u002b";*_gfcab =append (*_gfcab ,_ecfc );_gebbe (_adac .First ,_beegf ,_gfcab ,_degab +1); };if _ffdec &&_efefc .Next !=nil {_gebbe (_efefc .Next ,_beegf ,_gfcab ,_degab );};};_gebbe (_adea ._cccbg ,&_bbbcb ,&_dcfec ,0);return _bbbcb ,_dcfec ,nil ;}; // IsCID returns true if the underlying font is CID. func (_fddda *PdfFont )IsCID ()bool {return _fddda .baseFields ().isCIDFont ()}; // ToPdfObject implements interface PdfModel. func (_cbbef *PdfAnnotationPolyLine )ToPdfObject ()_egg .PdfObject {_cbbef .PdfAnnotation .ToPdfObject ();_dgbcc :=_cbbef ._cef ;_gdec :=_dgbcc .PdfObject .(*_egg .PdfObjectDictionary );_cbbef .PdfAnnotationMarkup .appendToPdfDictionary (_gdec );_gdec .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065")); _gdec .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_cbbef .Vertices );_gdec .SetIfNotNil ("\u004c\u0045",_cbbef .LE );_gdec .SetIfNotNil ("\u0042\u0053",_cbbef .BS );_gdec .SetIfNotNil ("\u0049\u0043",_cbbef .IC );_gdec .SetIfNotNil ("\u0042\u0045",_cbbef .BE ); _gdec .SetIfNotNil ("\u0049\u0054",_cbbef .IT );_gdec .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_cbbef .Measure );return _dgbcc ;};func (_faafd *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};func (_deffc *PdfWriter )optimize ()error {if _deffc ._cfgb ==nil {return nil ; };var _fdbd error ;_deffc ._bbead ,_fdbd =_deffc ._cfgb .Optimize (_deffc ._bbead );if _fdbd !=nil {return _fdbd ;};_daacb :=make (map[_egg .PdfObject ]struct{},len (_deffc ._bbead ));for _ ,_fcfbb :=range _deffc ._bbead {_daacb [_fcfbb ]=struct{}{};}; _deffc ._bacec =_daacb ;return nil ;};func (_effd *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";}; // NewPdfActionURI returns a new "Uri" action. func NewPdfActionURI ()*PdfActionURI {_ee :=NewPdfAction ();_bef :=&PdfActionURI {};_bef .PdfAction =_ee ;_ee .SetContext (_bef );return _bef ;}; // PdfAnnotationPopup represents Popup annotations. // (Section 12.5.6.14). type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _egg .PdfObject ;Open _egg .PdfObject ;}; // ToPdfObject return the CalGray colorspace as a PDF object (name dictionary). func (_eabc *PdfColorspaceCalGray )ToPdfObject ()_egg .PdfObject {_cbbg :=&_egg .PdfObjectArray {};_cbbg .Append (_egg .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_fcaf :=_egg .MakeDict ();if _eabc .WhitePoint !=nil {_fcaf .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_egg .MakeArray (_egg .MakeFloat (_eabc .WhitePoint [0]),_egg .MakeFloat (_eabc .WhitePoint [1]),_egg .MakeFloat (_eabc .WhitePoint [2]))); }else {_bag .Log .Error ("\u0043\u0061\u006c\u0047\u0072\u0061\u0079\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006fi\u006e\u0074\u0020\u0028\u0052e\u0071\u0075i\u0072\u0065\u0064\u0029");};if _eabc .BlackPoint !=nil {_fcaf .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_egg .MakeArray (_egg .MakeFloat (_eabc .BlackPoint [0]),_egg .MakeFloat (_eabc .BlackPoint [1]),_egg .MakeFloat (_eabc .BlackPoint [2]))); };_fcaf .Set ("\u0047\u0061\u006dm\u0061",_egg .MakeFloat (_eabc .Gamma ));_cbbg .Append (_fcaf );if _eabc ._agdab !=nil {_eabc ._agdab .PdfObject =_cbbg ;return _eabc ._agdab ;};return _cbbg ;}; // SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field. func (_aagge *PdfField )SetContext (ctx PdfModel ){_aagge ._gbdee =ctx };func _cgdf (_bddfb []byte )(_cfgg ,_agcga string ,_badfd error ){_bag .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_bddfb )); _fgcgf :=_bgegd .FindIndex (_bddfb );if _fgcgf ==nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0067\u0065\u0074\u0041\u0053\u0043\u0049\u0049\u0053\u0065\u0063\u0074\u0069o\u006e\u0073\u002e\u0020\u004e\u006f\u0020d\u0069\u0063\u0074\u002e"); return "","",_egg .ErrTypeError ;};_dbfa :=_fgcgf [1];_deaaf :=_fc .Index (string (_bddfb [_dbfa :]),_afbc );if _deaaf < 0{_cfgg =string (_bddfb [_dbfa :]);return _cfgg ,"",nil ;};_dbbde :=_dbfa +_deaaf ;_cfgg =string (_bddfb [_dbfa :_dbbde ]);_ccfe :=_dbbde ; _deaaf =_fc .Index (string (_bddfb [_ccfe :]),_gcfbf );if _deaaf < 0{_bag .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0067e\u0074\u0041\u0053\u0043\u0049\u0049\u0053e\u0063\u0074\u0069\u006f\u006e\u0073\u002e\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_badfd ); return "","",_egg .ErrTypeError ;};_bbec :=_ccfe +_deaaf ;_agcga =string (_bddfb [_ccfe :_bbec ]);return _cfgg ,_agcga ,nil ;}; // Insert adds a top level outline item in the outline, // at the specified index. func (_dbggg *Outline )Insert (index uint ,item *OutlineItem ){_baccb :=uint (len (_dbggg .Entries ));if index > _baccb {index =_baccb ;};_dbggg .Entries =append (_dbggg .Entries [:index ],append ([]*OutlineItem {item },_dbggg .Entries [index :]...)...); }; // ToPdfObject returns the PDF representation of the VRI dictionary. func (_agfea *VRI )ToPdfObject ()*_egg .PdfObjectDictionary {_dcfe :=_egg .MakeDict ();_dcfe .SetIfNotNil (_egg .PdfObjectName ("\u0043\u0065\u0072\u0074"),_dgagb (_agfea .Cert ));_dcfe .SetIfNotNil (_egg .PdfObjectName ("\u004f\u0043\u0053\u0050"),_dgagb (_agfea .OCSP )); _dcfe .SetIfNotNil (_egg .PdfObjectName ("\u0043\u0052\u004c"),_dgagb (_agfea .CRL ));_dcfe .SetIfNotNil ("\u0054\u0055",_agfea .TU );_dcfe .SetIfNotNil ("\u0054\u0053",_agfea .TS );return _dcfe ;};func (_ccadg Image )getBase ()_eg .ImageBase {return _eg .NewImageBase (int (_ccadg .Width ),int (_ccadg .Height ),int (_ccadg .BitsPerComponent ),_ccadg .ColorComponents ,_ccadg .Data ,_ccadg ._fgggb ,_ccadg ._abfae ); }; // SetColorspaceByName adds the provided colorspace to the page resources. func (_acccd *PdfPageResources )SetColorspaceByName (keyName _egg .PdfObjectName ,cs PdfColorspace )error {_gadce ,_bege :=_acccd .GetColorspaces ();if _bege !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0072\u0061\u0063\u0065: \u0025\u0076",_bege ); return _bege ;};if _gadce ==nil {_gadce =NewPdfPageResourcesColorspaces ();_acccd .SetColorSpace (_gadce );};_gadce .Set (keyName ,cs );return nil ;};func (_ecb *PdfAnnotation )String ()string {_cfca :="";_eac ,_fgbf :=_ecb .ToPdfObject ().(*_egg .PdfIndirectObject ); if _fgbf {_cfca =_f .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_ecb ._gcf ,_eac .PdfObject .String ());};return _cfca ;};func _bcfdf (_aedb _egg .PdfObject )(string ,error ){_aedb =_egg .TraceToDirectObject (_aedb );switch _bgfd :=_aedb .(type ){case *_egg .PdfObjectString :return _bgfd .Str (),nil ; case *_egg .PdfObjectStream :_efebd ,_ddfcf :=_egg .DecodeStream (_bgfd );if _ddfcf !=nil {return "",_ddfcf ;};return string (_efebd ),nil ;};return "",_f .Errorf ("\u0069\u006e\u0076\u0061\u006ci\u0064\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0073\u0074\u0072e\u0061\u006d\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0068\u006f\u006c\u0064\u0065\u0072\u0020\u0028\u0025\u0054\u0029",_aedb ); }; // GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the // annotations, otherwise returns the loaded list. func (_fcdac *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _fcdac ._bcce !=nil {return _fcdac ._bcce ,nil ;};if _fcdac .Annots ==nil {_fcdac ._bcce =[]*PdfAnnotation {};return nil ,nil ;};if _fcdac ._gcfcb ==nil {_fcdac ._bcce =[]*PdfAnnotation {}; return nil ,nil ;};_afedb ,_ggdc :=_fcdac ._gcfcb .loadAnnotations (_fcdac .Annots );if _ggdc !=nil {return nil ,_ggdc ;};if _afedb ==nil {_fcdac ._bcce =[]*PdfAnnotation {};};_fcdac ._bcce =_afedb ;return _fcdac ._bcce ,nil ;};func (_eedded *PdfReader )buildNameNodes (_fbcge *_egg .PdfIndirectObject ,_cfdef map[_egg .PdfObject ]struct{})error {if _fbcge ==nil {return nil ; };if _ ,_gecfb :=_cfdef [_fbcge ];_gecfb {_bag .Log .Debug ("\u0043\u0079\u0063l\u0069\u0063\u0020\u0072e\u0063\u0075\u0072\u0073\u0069\u006f\u006e,\u0020\u0073\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u0028\u0025\u0076\u0029",_fbcge .ObjectNumber ); return nil ;};_cfdef [_fbcge ]=struct{}{};_gagbgd ,_aaagg :=_fbcge .PdfObject .(*_egg .PdfObjectDictionary );if !_aaagg {return _gd .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _gcbe ,_geggd :=_egg .GetDict (_gagbgd .Get ("\u0044\u0065\u0073t\u0073")); _geggd {_gfbab ,_bfag :=_egg .GetArray (_gcbe .Get ("\u004b\u0069\u0064\u0073"));if !_bfag {return _gd .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_bag .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_gfbab ); for _gbfd ,_ecdd :=range _gfbab .Elements (){_dgabb ,_abbb :=_egg .GetIndirect (_ecdd );if !_abbb {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u0068\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006e\u0064i\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u002d \u0028\u0025\u0073\u0029",_dgabb ); return _gd .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_gfbab .Set (_gbfd ,_dgabb );_faeebg :=_eedded .buildNameNodes (_dgabb ,_cfdef );if _faeebg !=nil {return _faeebg ; };};};if _aaebf ,_adeaa :=_egg .GetDict (_gagbgd );_adeaa {if !_egg .IsNullObject (_aaebf .Get ("\u004b\u0069\u0064\u0073")){if _ddefe ,_cfae :=_egg .GetArray (_aaebf .Get ("\u004b\u0069\u0064\u0073"));_cfae {for _fbce ,_cbfa :=range _ddefe .Elements (){if _cfdd ,_cabae :=_egg .GetIndirect (_cbfa ); _cabae {_ddefe .Set (_fbce ,_cfdd );_cgbeg :=_eedded .buildNameNodes (_cfdd ,_cfdef );if _cgbeg !=nil {return _cgbeg ;};};};};};};return nil ;}; // PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh. type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_egg .PdfObjectInteger ;BitsPerComponent *_egg .PdfObjectInteger ;VerticesPerRow *_egg .PdfObjectInteger ;Decode *_egg .PdfObjectArray ;Function []PdfFunction ;}; // HasFontByName checks whether a font is defined by the specified keyName. func (_dbbg *PdfPageResources )HasFontByName (keyName _egg .PdfObjectName )bool {_ ,_effbg :=_dbbg .GetFontByName (keyName );return _effbg ;}; // GetContainingPdfObject implements interface PdfModel. func (_aacc *PdfFilespec )GetContainingPdfObject ()_egg .PdfObject {return _aacc ._fbdd }; // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // component PDF objects. func (_fdgf *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if _fdgf .Alternate ==nil {if _fdgf .N ==1{_afd :=NewPdfColorspaceDeviceGray ();return _afd .ColorFromPdfObjects (objects );}else if _fdgf .N ==3{_aagad :=NewPdfColorspaceDeviceRGB (); return _aagad .ColorFromPdfObjects (objects );}else if _fdgf .N ==4{_cfbaa :=NewPdfColorspaceDeviceCMYK ();return _cfbaa .ColorFromPdfObjects (objects );}else {return nil ,_gd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065"); };};return _fdgf .Alternate .ColorFromPdfObjects (objects );}; // EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document. type EncryptionAlgorithm int ; // PdfColorspaceDeviceRGB represents an RGB colorspace. type PdfColorspaceDeviceRGB struct{}; // PdfAnnotationRedact represents Redact annotations. // (Section 12.5.6.23). type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _egg .PdfObject ;IC _egg .PdfObject ;RO _egg .PdfObject ;OverlayText _egg .PdfObject ;Repeat _egg .PdfObject ;DA _egg .PdfObject ;Q _egg .PdfObject ;}; // PdfAppender appends new PDF content to an existing PDF document via incremental updates. type PdfAppender struct{_cbe _dag .ReadSeeker ;_daac *_egg .PdfParser ;_bgaa *PdfReader ;Reader *PdfReader ;_beac []*PdfPage ;_aeec *PdfAcroForm ;_dgdc *DSS ;_aga *Permissions ;_beed _egg .XrefTable ;_gfbc int64 ;_gfdcd int ;_dbbe []_egg .PdfObject ;_bdba map[_egg .PdfObject ]struct{}; _eegc map[_egg .PdfObject ]int64 ;_eecgg map[_egg .PdfObject ]struct{};_bdbf map[_egg .PdfObject ]struct{};_bbba int64 ;_faab bool ;_cbdd string ;_effa *EncryptOptions ;_gaagg *PdfInfo ;}; // GetContext returns the annotation context which contains the specific type-dependent context. // The context represents the subannotation. func (_dcee *PdfAnnotation )GetContext ()PdfModel {if _dcee ==nil {return nil ;};return _dcee ._gcf ;}; // PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30). type PdfPage struct{Parent _egg .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _egg .PdfObject ;Contents _egg .PdfObject ; Rotate *int64 ;Group _egg .PdfObject ;Thumb _egg .PdfObject ;B _egg .PdfObject ;Dur _egg .PdfObject ;Trans _egg .PdfObject ;AA _egg .PdfObject ;Metadata _egg .PdfObject ;PieceInfo _egg .PdfObject ;StructParents _egg .PdfObject ;ID _egg .PdfObject ;PZ _egg .PdfObject ; SeparationInfo _egg .PdfObject ;Tabs _egg .PdfObject ;TemplateInstantiated _egg .PdfObject ;PresSteps _egg .PdfObject ;UserUnit _egg .PdfObject ;VP _egg .PdfObject ;Annots _egg .PdfObject ;_bcce []*PdfAnnotation ;_fgfd *_egg .PdfObjectDictionary ;_dfee *_egg .PdfIndirectObject ; _gcfcb *PdfReader ;};func _aedd (_bega *_egg .PdfObjectDictionary )(*PdfFieldButton ,error ){_cabgd :=&PdfFieldButton {};_cabgd .PdfField =NewPdfField ();_cabgd .PdfField .SetContext (_cabgd );_cabgd .Opt ,_ =_egg .GetArray (_bega .Get ("\u004f\u0070\u0074")); _ecag :=NewPdfAnnotationWidget ();_ecag .A ,_ =_egg .GetDict (_bega .Get ("\u0041"));_ecag .AP ,_ =_egg .GetDict (_bega .Get ("\u0041\u0050"));_ecag .SetContext (_cabgd );_cabgd .PdfField .Annotations =append (_cabgd .PdfField .Annotations ,_ecag );return _cabgd ,nil ; }; // ToPdfObject implements interface PdfModel. func (_edbb *PdfActionURI )ToPdfObject ()_egg .PdfObject {_edbb .PdfAction .ToPdfObject ();_cab :=_edbb ._bf ;_dca :=_cab .PdfObject .(*_egg .PdfObjectDictionary );_dca .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeURI )));_dca .SetIfNotNil ("\u0055\u0052\u0049",_edbb .URI ); _dca .SetIfNotNil ("\u0049\u0073\u004da\u0070",_edbb .IsMap );return _cab ;}; // SetShadingByName sets a shading resource specified by keyName. func (_afbbb *PdfPageResources )SetShadingByName (keyName _egg .PdfObjectName ,shadingObj _egg .PdfObject )error {if _afbbb .Shading ==nil {_afbbb .Shading =_egg .MakeDict ();};_degff ,_begaa :=_afbbb .Shading .(*_egg .PdfObjectDictionary );if !_begaa {return _egg .ErrTypeError ; };_degff .Set (keyName ,shadingObj );return nil ;}; // PdfActionSubmitForm represents a submitForm action. type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _egg .PdfObject ;Flags _egg .PdfObject ;}; // ToPdfObject returns the PDF representation of the colorspace. func (_dabc *PdfColorspaceDeviceGray )ToPdfObject ()_egg .PdfObject {return _egg .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");}; // Add appends an outline item as a child of the current outline item. func (_beba *OutlineItem )Add (item *OutlineItem ){_beba .Entries =append (_beba .Entries ,item )};func (_aebaac *PdfWriter )setDocInfo (_fagdf _egg .PdfObject ){if _aebaac .hasObject (_aebaac ._efage ){delete (_aebaac ._bacec ,_aebaac ._efage );delete (_aebaac ._adcd ,_aebaac ._efage ); for _cgbab ,_bfdad :=range _aebaac ._bbead {if _bfdad ==_aebaac ._efage {copy (_aebaac ._bbead [_cgbab :],_aebaac ._bbead [_cgbab +1:]);_aebaac ._bbead [len (_aebaac ._bbead )-1]=nil ;_aebaac ._bbead =_aebaac ._bbead [:len (_aebaac ._bbead )-1];break ; };};};_baaf :=_egg .PdfIndirectObject {};_baaf .PdfObject =_fagdf ;_aebaac ._efage =&_baaf ;_aebaac .addObject (&_baaf );};func _efdgd (_cgaff *_egg .PdfObjectDictionary )(*PdfShadingType6 ,error ){_bggd :=PdfShadingType6 {};_abgad :=_cgaff .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065"); if _abgad ==nil {_bag .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064 \u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065\u0072C\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065"); return nil ,ErrRequiredAttributeMissing ;};_ecgag ,_bbded :=_abgad .(*_egg .PdfObjectInteger );if !_bbded {_bag .Log .Debug ("\u0042\u0069\u0074\u0073\u0050e\u0072\u0043\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_abgad ); return nil ,_egg .ErrTypeError ;};_bggd .BitsPerCoordinate =_ecgag ;_abgad =_cgaff .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _abgad ==nil {_bag .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064\u0020a\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073in\u0067\u003a\u0020B\u0069\u0074s\u0050\u0065\u0072\u0043\u006f\u006dp\u006f\u006ee\u006e\u0074"); return nil ,ErrRequiredAttributeMissing ;};_ecgag ,_bbded =_abgad .(*_egg .PdfObjectInteger );if !_bbded {_bag .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065r \u0028\u0067\u006ft\u0020%\u0054\u0029",_abgad ); return nil ,_egg .ErrTypeError ;};_bggd .BitsPerComponent =_ecgag ;_abgad =_cgaff .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _abgad ==nil {_bag .Log .Debug ("\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065r\u0046\u006c\u0061\u0067"); return nil ,ErrRequiredAttributeMissing ;};_ecgag ,_bbded =_abgad .(*_egg .PdfObjectInteger );if !_bbded {_bag .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072F\u006c\u0061\u0067\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074e\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025T\u0029",_abgad ); return nil ,_egg .ErrTypeError ;};_bggd .BitsPerComponent =_ecgag ;_abgad =_cgaff .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _abgad ==nil {_bag .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0044\u0065\u0063\u006f\u0064\u0065"); return nil ,ErrRequiredAttributeMissing ;};_addbg ,_bbded :=_abgad .(*_egg .PdfObjectArray );if !_bbded {_bag .Log .Debug ("\u0044\u0065\u0063\u006fd\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_abgad ); return nil ,_egg .ErrTypeError ;};_bggd .Decode =_addbg ;if _egdg :=_cgaff .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_egdg !=nil {_bggd .Function =[]PdfFunction {};if _dbaba ,_dcgca :=_egdg .(*_egg .PdfObjectArray );_dcgca {for _ ,_beagd :=range _dbaba .Elements (){_fefd ,_cgefb :=_bdefe (_beagd ); if _cgefb !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_cgefb );return nil ,_cgefb ;};_bggd .Function =append (_bggd .Function ,_fefd ); };}else {_eecc ,_ccbg :=_bdefe (_egdg );if _ccbg !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_ccbg );return nil ,_ccbg ;}; _bggd .Function =append (_bggd .Function ,_eecc );};};return &_bggd ,nil ;};func (_dbfg *PdfReader )loadAction (_ggfd _egg .PdfObject )(*PdfAction ,error ){if _deff ,_geg :=_egg .GetIndirect (_ggfd );_geg {_gfdf ,_dfd :=_dbfg .newPdfActionFromIndirectObject (_deff ); if _dfd !=nil {return nil ,_dfd ;};return _gfdf ,nil ;}else if !_egg .IsNullObject (_ggfd ){return nil ,_gd .New ("\u0061\u0063\u0074\u0069\u006fn\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074 \u0074\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074"); };return nil ,nil ;}; // PdfColorCalRGB represents a color in the Colorimetric CIE RGB colorspace. // A, B, C components // Each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity. type PdfColorCalRGB [3]float64 ;func (_afg *PdfReader )newPdfAnnotationCaretFromDict (_fgcb *_egg .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_dadc :=PdfAnnotationCaret {};_bddd ,_cfef :=_afg .newPdfAnnotationMarkupFromDict (_fgcb );if _cfef !=nil {return nil ,_cfef ; };_dadc .PdfAnnotationMarkup =_bddd ;_dadc .RD =_fgcb .Get ("\u0052\u0044");_dadc .Sy =_fgcb .Get ("\u0053\u0079");return &_dadc ,nil ;};func (_acebd *PdfWriter )writeTrailer (_beegfb int ){_acebd .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _adebe :=0; _adebe <=_beegfb ;{for ;_adebe <=_beegfb ;_adebe ++{_ccdbbe ,_defe :=_acebd ._ccceb [_adebe ];if _defe &&(!_acebd ._gabaca ||_acebd ._gabaca &&(_ccdbbe .Type ==1&&_ccdbbe .Offset >=_acebd ._ggdad ||_ccdbbe .Type ==0)){break ;};};var _agcd int ;for _agcd =_adebe +1; _agcd <=_beegfb ;_agcd ++{_aaccc ,_egaeb :=_acebd ._ccceb [_agcd ];if _egaeb &&(!_acebd ._gabaca ||_acebd ._gabaca &&(_aaccc .Type ==1&&_aaccc .Offset > _acebd ._ggdad )){continue ;};break ;};_gdacb :=_f .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_adebe ,_agcd -_adebe ); _acebd .writeString (_gdacb );for _bfefg :=_adebe ;_bfefg < _agcd ;_bfefg ++{_cgacc :=_acebd ._ccceb [_bfefg ];switch _cgacc .Type {case 0:_gdacb =_f .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);_acebd .writeString (_gdacb ); case 1:_gdacb =_f .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_cgacc .Offset ,0);_acebd .writeString (_gdacb );};};_adebe =_agcd +1;};_gdaad :=_egg .MakeDict ();_gdaad .Set ("\u0049\u006e\u0066\u006f",_acebd ._efage ); _gdaad .Set ("\u0052\u006f\u006f\u0074",_acebd ._egad );_gdaad .Set ("\u0053\u0069\u007a\u0065",_egg .MakeInteger (int64 (_beegfb +1)));if _acebd ._gabaca &&_acebd ._gccgfe > 0{_gdaad .Set ("\u0050\u0072\u0065\u0076",_egg .MakeInteger (_acebd ._gccgfe )); };if _acebd ._agdag !=nil {_gdaad .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_acebd ._afcc );};if _acebd ._aaea ==nil &&_acebd ._caddc !=""&&_acebd ._bagaa !=""{_acebd ._aaea =_egg .MakeArray (_egg .MakeHexString (_acebd ._caddc ),_egg .MakeHexString (_acebd ._bagaa )); };if _acebd ._aaea !=nil {_gdaad .Set ("\u0049\u0044",_acebd ._aaea );_bag .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_acebd ._aaea );};_acebd .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_acebd .writeString (_gdaad .WriteString ()); _acebd .writeString ("\u000a");}; // PdfAnnotationSound represents Sound annotations. // (Section 12.5.6.16). type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _egg .PdfObject ;Name _egg .PdfObject ;}; // PdfColorspaceSpecialSeparation is a Separation colorspace. // At the moment the colour space is set to a Separation space, the conforming reader shall determine whether the // device has an available colorant (e.g. dye) corresponding to the name of the requested space. If so, the conforming // reader shall ignore the alternateSpace and tintTransform parameters; subsequent painting operations within the // space shall apply the designated colorant directly, according to the tint values supplied. // // Format: [/Separation name alternateSpace tintTransform] type PdfColorspaceSpecialSeparation struct{ColorantName *_egg .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_eedg *_egg .PdfIndirectObject ;}; // NewPdfAnnotationPopup returns a new popup annotation. func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_fgbg :=NewPdfAnnotation ();_ggge :=&PdfAnnotationPopup {};_ggge .PdfAnnotation =_fgbg ;_fgbg .SetContext (_ggge );return _ggge ;}; // GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number. func (_ecdab *PdfReader )GetIndirectObjectByNumber (number int )(_egg .PdfObject ,error ){_eacaa ,_bbaddg :=_ecdab ._dafgab .LookupByNumber (number );return _eacaa ,_bbaddg ;}; // ToPdfObject converts the PdfFont object to its PDF representation. func (_ffadf *PdfFont )ToPdfObject ()_egg .PdfObject {if _ffadf ._edde ==nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0066\u006f\u006e\u0074 \u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0069\u0073 \u006e\u0069\u006c");return _egg .MakeNull (); };return _ffadf ._edde .ToPdfObject ();};func (_agfg *PdfReader )newPdfAnnotationFromIndirectObject (_gca *_egg .PdfIndirectObject )(*PdfAnnotation ,error ){_ggda ,_dgac :=_gca .PdfObject .(*_egg .PdfObjectDictionary );if !_dgac {return nil ,_f .Errorf ("\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006ft\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079"); };if model :=_agfg ._dabaf .GetModelFromPrimitive (_ggda );model !=nil {_eecb ,_eded :=model .(*PdfAnnotation );if !_eded {return nil ,_f .Errorf ("\u0063\u0061\u0063\u0068\u0065\u0064 \u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050D\u0046\u0020\u0061\u006e\u006e\u006f\u0074a\u0074\u0069\u006f\u006e"); };return _eecb ,nil ;};_aegf :=&PdfAnnotation {};_aegf ._cef =_gca ;_agfg ._dabaf .Register (_ggda ,_aegf );if _ecg :=_ggda .Get ("\u0054\u0079\u0070\u0065");_ecg !=nil {_eeb ,_cdag :=_ecg .(*_egg .PdfObjectName );if !_cdag {_bag .Log .Trace ("\u0049\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u0021\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u006f\u0066\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029\u0020\u002d\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u004e\u0061m\u0065",_ecg ); }else {if *_eeb !="\u0041\u006e\u006eo\u0074"{_bag .Log .Trace ("\u0055\u006e\u0073\u0075\u0073\u0070\u0065\u0063\u0074\u0065d\u0020\u0054\u0079\u0070\u0065\u0020\u0021=\u0020\u0041\u006e\u006e\u006f\u0074\u0020\u0028\u0025\u0073\u0029",*_eeb );};};};if _bcge :=_ggda .Get ("\u0052\u0065\u0063\u0074"); _bcge !=nil {_aegf .Rect =_bcge ;};if _agfgg :=_ggda .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_agfgg !=nil {_aegf .Contents =_agfgg ;};if _ecec :=_ggda .Get ("\u0050");_ecec !=nil {_aegf .P =_ecec ;};if _eefc :=_ggda .Get ("\u004e\u004d"); _eefc !=nil {_aegf .NM =_eefc ;};if _deeg :=_ggda .Get ("\u004d");_deeg !=nil {_aegf .M =_deeg ;};if _efbd :=_ggda .Get ("\u0046");_efbd !=nil {_aegf .F =_efbd ;};if _bbdg :=_ggda .Get ("\u0041\u0050");_bbdg !=nil {_aegf .AP =_bbdg ;};if _gce :=_ggda .Get ("\u0041\u0053"); _gce !=nil {_aegf .AS =_gce ;};if _dcag :=_ggda .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_dcag !=nil {_aegf .Border =_dcag ;};if _bac :=_ggda .Get ("\u0043");_bac !=nil {_aegf .C =_bac ;};if _faff :=_ggda .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074"); _faff !=nil {_aegf .StructParent =_faff ;};if _adbg :=_ggda .Get ("\u004f\u0043");_adbg !=nil {_aegf .OC =_adbg ;};_bda :=_ggda .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _bda ==nil {_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u0049\u004e\u0047:\u0020\u0043\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079 \u0069s\u0073\u0075\u0065\u0020\u002d\u0020a\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0020\u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u002d\u0020\u0061\u0073\u0073u\u006d\u0069\u006e\u0067\u0020\u006e\u006f\u0020\u0073\u0075\u0062\u0074\u0079p\u0065"); _aegf ._gcf =nil ;return _aegf ,nil ;};_bafg ,_fcef :=_bda .(*_egg .PdfObjectName );if !_fcef {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0053\u0075\u0062ty\u0070\u0065\u0020\u006fb\u006a\u0065\u0063\u0074\u0020\u0074\u0079\u0070\u0065 !\u003d\u0020n\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_bda ); return nil ,_f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u006f\u0062\u006ae\u0063\u0074\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d n\u0061\u006d\u0065 \u0028%\u0054\u0029",_bda );};switch *_bafg {case "\u0054\u0065\u0078\u0074":_efab ,_cggc :=_agfg .newPdfAnnotationTextFromDict (_ggda ); if _cggc !=nil {return nil ,_cggc ;};_efab .PdfAnnotation =_aegf ;_aegf ._gcf =_efab ;return _aegf ,nil ;case "\u004c\u0069\u006e\u006b":_bfg ,_gbgb :=_agfg .newPdfAnnotationLinkFromDict (_ggda );if _gbgb !=nil {return nil ,_gbgb ;};_bfg .PdfAnnotation =_aegf ; _aegf ._gcf =_bfg ;return _aegf ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_gag ,_ceca :=_agfg .newPdfAnnotationFreeTextFromDict (_ggda );if _ceca !=nil {return nil ,_ceca ;};_gag .PdfAnnotation =_aegf ;_aegf ._gcf =_gag ;return _aegf ,nil ; case "\u004c\u0069\u006e\u0065":_eade ,_fccg :=_agfg .newPdfAnnotationLineFromDict (_ggda );if _fccg !=nil {return nil ,_fccg ;};_eade .PdfAnnotation =_aegf ;_aegf ._gcf =_eade ;_bag .Log .Trace ("\u004c\u0049\u004e\u0045\u0020\u0041N\u004e\u004f\u0054\u0041\u0054\u0049\u004f\u004e\u003a\u0020\u0061\u006e\u006eo\u0074\u0020\u0028\u0025\u0054\u0029\u003a \u0025\u002b\u0076\u000a",_aegf ,_aegf ); _bag .Log .Trace ("\u004c\u0049\u004eE\u0020\u0041\u004e\u004eO\u0054\u0041\u0054\u0049\u004f\u004e\u003a \u0063\u0074\u0078\u0020\u0028\u0025\u0054\u0029\u003a\u0020\u0025\u002b\u0076\u000a",_eade ,_eade );_bag .Log .Trace ("\u004c\u0049\u004e\u0045\u0020\u0041\u004e\u004e\u004f\u0054\u0041\u0054\u0049\u004f\u004e\u0020\u004d\u0061\u0072\u006b\u0075\u0070\u003a\u0020c\u0074\u0078\u0020\u0028\u0025T\u0029\u003a \u0025\u002b\u0076\u000a",_eade .PdfAnnotationMarkup ,_eade .PdfAnnotationMarkup ); return _aegf ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_gaga ,_faaf :=_agfg .newPdfAnnotationSquareFromDict (_ggda );if _faaf !=nil {return nil ,_faaf ;};_gaga .PdfAnnotation =_aegf ;_aegf ._gcf =_gaga ;return _aegf ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_cdc ,_cffb :=_agfg .newPdfAnnotationCircleFromDict (_ggda ); if _cffb !=nil {return nil ,_cffb ;};_cdc .PdfAnnotation =_aegf ;_aegf ._gcf =_cdc ;return _aegf ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_fgab ,_ebf :=_agfg .newPdfAnnotationPolygonFromDict (_ggda );if _ebf !=nil {return nil ,_ebf ;};_fgab .PdfAnnotation =_aegf ; _aegf ._gcf =_fgab ;return _aegf ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_ecc ,_dgea :=_agfg .newPdfAnnotationPolyLineFromDict (_ggda );if _dgea !=nil {return nil ,_dgea ;};_ecc .PdfAnnotation =_aegf ;_aegf ._gcf =_ecc ;return _aegf ,nil ; case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_def ,_ceg :=_agfg .newPdfAnnotationHighlightFromDict (_ggda );if _ceg !=nil {return nil ,_ceg ;};_def .PdfAnnotation =_aegf ;_aegf ._gcf =_def ;return _aegf ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_fbdb ,_aabb :=_agfg .newPdfAnnotationUnderlineFromDict (_ggda ); if _aabb !=nil {return nil ,_aabb ;};_fbdb .PdfAnnotation =_aegf ;_aegf ._gcf =_fbdb ;return _aegf ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_gdd ,_dfa :=_agfg .newPdfAnnotationSquigglyFromDict (_ggda );if _dfa !=nil {return nil ,_dfa ; };_gdd .PdfAnnotation =_aegf ;_aegf ._gcf =_gdd ;return _aegf ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_dcd ,_ccbb :=_agfg .newPdfAnnotationStrikeOut (_ggda );if _ccbb !=nil {return nil ,_ccbb ;};_dcd .PdfAnnotation =_aegf ;_aegf ._gcf =_dcd ; return _aegf ,nil ;case "\u0043\u0061\u0072e\u0074":_bdee ,_ega :=_agfg .newPdfAnnotationCaretFromDict (_ggda );if _ega !=nil {return nil ,_ega ;};_bdee .PdfAnnotation =_aegf ;_aegf ._gcf =_bdee ;return _aegf ,nil ;case "\u0053\u0074\u0061m\u0070":_edag ,_dfgf :=_agfg .newPdfAnnotationStampFromDict (_ggda ); if _dfgf !=nil {return nil ,_dfgf ;};_edag .PdfAnnotation =_aegf ;_aegf ._gcf =_edag ;return _aegf ,nil ;case "\u0049\u006e\u006b":_bbc ,_ddc :=_agfg .newPdfAnnotationInkFromDict (_ggda );if _ddc !=nil {return nil ,_ddc ;};_bbc .PdfAnnotation =_aegf ;_aegf ._gcf =_bbc ; return _aegf ,nil ;case "\u0050\u006f\u0070u\u0070":_cfba ,_bfec :=_agfg .newPdfAnnotationPopupFromDict (_ggda );if _bfec !=nil {return nil ,_bfec ;};_cfba .PdfAnnotation =_aegf ;_aegf ._gcf =_cfba ;return _aegf ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_bafgg ,_bdg :=_agfg .newPdfAnnotationFileAttachmentFromDict (_ggda ); if _bdg !=nil {return nil ,_bdg ;};_bafgg .PdfAnnotation =_aegf ;_aegf ._gcf =_bafgg ;return _aegf ,nil ;case "\u0053\u006f\u0075n\u0064":_dcg ,_fcad :=_agfg .newPdfAnnotationSoundFromDict (_ggda );if _fcad !=nil {return nil ,_fcad ;};_dcg .PdfAnnotation =_aegf ; _aegf ._gcf =_dcg ;return _aegf ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_baee ,_ddb :=_agfg .newPdfAnnotationRichMediaFromDict (_ggda );if _ddb !=nil {return nil ,_ddb ;};_baee .PdfAnnotation =_aegf ;_aegf ._gcf =_baee ;return _aegf ,nil ; case "\u004d\u006f\u0076i\u0065":_bafa ,_gagc :=_agfg .newPdfAnnotationMovieFromDict (_ggda );if _gagc !=nil {return nil ,_gagc ;};_bafa .PdfAnnotation =_aegf ;_aegf ._gcf =_bafa ;return _aegf ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_bdd ,_ecbg :=_agfg .newPdfAnnotationScreenFromDict (_ggda ); if _ecbg !=nil {return nil ,_ecbg ;};_bdd .PdfAnnotation =_aegf ;_aegf ._gcf =_bdd ;return _aegf ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_cefc ,_fcag :=_agfg .newPdfAnnotationWidgetFromDict (_ggda );if _fcag !=nil {return nil ,_fcag ;};_cefc .PdfAnnotation =_aegf ; _aegf ._gcf =_cefc ;return _aegf ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_fbc ,_gfb :=_agfg .newPdfAnnotationPrinterMarkFromDict (_ggda );if _gfb !=nil {return nil ,_gfb ;};_fbc .PdfAnnotation =_aegf ;_aegf ._gcf =_fbc ; return _aegf ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_eca ,_aegfa :=_agfg .newPdfAnnotationTrapNetFromDict (_ggda );if _aegfa !=nil {return nil ,_aegfa ;};_eca .PdfAnnotation =_aegf ;_aegf ._gcf =_eca ;return _aegf ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_cbbe ,_agda :=_agfg .newPdfAnnotationWatermarkFromDict (_ggda ); if _agda !=nil {return nil ,_agda ;};_cbbe .PdfAnnotation =_aegf ;_aegf ._gcf =_cbbe ;return _aegf ,nil ;case "\u0033\u0044":_gacd ,_gggb :=_agfg .newPdfAnnotation3DFromDict (_ggda );if _gggb !=nil {return nil ,_gggb ;};_gacd .PdfAnnotation =_aegf ;_aegf ._gcf =_gacd ; return _aegf ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_gffg ,_bdb :=_agfg .newPdfAnnotationProjectionFromDict (_ggda );if _bdb !=nil {return nil ,_bdb ;};_gffg .PdfAnnotation =_aegf ;_aegf ._gcf =_gffg ;return _aegf ,nil ; case "\u0052\u0065\u0064\u0061\u0063\u0074":_baa ,_edbf :=_agfg .newPdfAnnotationRedactFromDict (_ggda );if _edbf !=nil {return nil ,_edbf ;};_baa .PdfAnnotation =_aegf ;_aegf ._gcf =_baa ;return _aegf ,nil ;};_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u0067\u006e\u006f\u0072\u0069\u006e\u0067\u0020\u0075\u006e\u006b\u006e\u006f\u0077\u006e\u0020a\u006e\u006e\u006f\u0074\u0061t\u0069\u006fn\u003a\u0020\u0025\u0073",*_bafg ); return nil ,nil ;}; // RunesToCharcodeBytes maps the provided runes to charcode bytes and it // returns the resulting slice of bytes, along with the number of runes which // could not be converted. If the number of misses is 0, all runes were // successfully converted. func (_bfbdd *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _ebadg []_ef .TextEncoder ;var _afae _ef .CMapEncoder ;if _babfg :=_bfbdd .baseFields ()._bfbgf ;_babfg !=nil {_afae =_ef .NewCMapEncoder ("",nil ,_babfg );};_gfec :=_bfbdd .Encoder (); if _gfec !=nil {switch _fefb :=_gfec .(type ){case _ef .SimpleEncoder :_fbea :=_fefb .BaseName ();if _ ,_cceeb :=_eefde [_fbea ];_cceeb {_ebadg =append (_ebadg ,_gfec );};};};if len (_ebadg )==0{if _bfbdd .baseFields ()._bfbgf !=nil {_ebadg =append (_ebadg ,_afae ); };if _gfec !=nil {_ebadg =append (_ebadg ,_gfec );};};var _bdeec _dd .Buffer ;var _gfbdd int ;for _ ,_cccbf :=range data {var _gbfc bool ;for _ ,_cadg :=range _ebadg {if _baebc :=_cadg .Encode (string (_cccbf ));len (_baebc )> 0{_bdeec .Write (_baebc ); _gbfc =true ;break ;};};if !_gbfc {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020f\u0061\u0069\u006ce\u0064\u0020\u0074\u006f \u006d\u0061\u0070\u0020\u0072\u0075\u006e\u0065\u0020\u0060\u0025\u002b\u0071\u0060\u0020\u0074\u006f\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065",_cccbf ); _gfbdd ++;};};if _gfbdd !=0{_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0061\u006cl\u0020\u0072\u0075\u006e\u0065\u0073\u0020\u0074\u006f\u0020\u0063\u0068\u0061\u0072c\u006fd\u0065\u0073\u002e\u000a"+"\u0009\u006e\u0075\u006d\u0052\u0075\u006e\u0065\u0073\u003d\u0025d\u0020\u006e\u0075\u006d\u004d\u0069\u0073\u0073\u0065\u0073=\u0025\u0064\u000a"+"\t\u0066\u006f\u006e\u0074=%\u0073 \u0065\u006e\u0063\u006f\u0064e\u0072\u0073\u003d\u0025\u002b\u0076",len (data ),_gfbdd ,_bfbdd ,_ebadg ); };return _bdeec .Bytes (),_gfbdd ;};var (_cgag _b .Mutex ;_cdcf ="";_fabb _e .Time ;_cefff ="";_fafb ="";_gfeea _e .Time ;_bdbde ="";_eggc ="";_fcfbd ="";); // NewPdfAppender creates a new Pdf appender from a Pdf reader. func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_abcc :=&PdfAppender {_cbe :reader ._eefb ,Reader :reader ,_daac :reader ._dafgab ,_bdbf :reader ._gbabf };_aege ,_adbf :=_abcc ._cbe .Seek (0,_dag .SeekEnd );if _adbf !=nil {return nil ,_adbf ; };_abcc ._bbba =_aege ;if _ ,_adbf =_abcc ._cbe .Seek (0,_dag .SeekStart );_adbf !=nil {return nil ,_adbf ;};_abcc ._bgaa ,_adbf =NewPdfReader (_abcc ._cbe );if _adbf !=nil {return nil ,_adbf ;};for _ ,_eced :=range _abcc .Reader .GetObjectNums (){if _abcc ._gfdcd < _eced {_abcc ._gfdcd =_eced ; };};_abcc ._beed =_abcc ._daac .GetXrefTable ();_abcc ._gfbc =_abcc ._daac .GetXrefOffset ();_abcc ._beac =append (_abcc ._beac ,_abcc ._bgaa .PageList ...);_abcc ._bdba =make (map[_egg .PdfObject ]struct{});_abcc ._eegc =make (map[_egg .PdfObject ]int64 ); _abcc ._eecgg =make (map[_egg .PdfObject ]struct{});_abcc ._aeec =_abcc ._bgaa .AcroForm ;_abcc ._dgdc =_abcc ._bgaa .DSS ;return _abcc ,nil ;}; // GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this. func (_efcfa *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _efcfa ._fcbdg .(*PdfShadingPattern );}; // EnableByName LTV enables the signature dictionary of the PDF AcroForm // field identified the specified name. The signing certificate chain is // extracted from the signature dictionary. Optionally, additional certificates // can be specified through the `extraCerts` parameter. The LTV client attempts // to build the certificate chain up to a trusted root by downloading any // missing certificates. func (_ceda *LTV )EnableByName (name string ,extraCerts []*_dg .Certificate )error {_gade :=_ceda ._dbdga ._bgaa .AcroForm ;for _ ,_fdbad :=range _gade .AllFields (){_fafee ,_ :=_fdbad .GetContext ().(*PdfFieldSignature );if _fafee ==nil {continue ;};if _eafbg :=_fafee .PartialName (); _eafbg !=name {continue ;};return _ceda .Enable (_fafee .V ,extraCerts );};return nil ;}; // GetCharMetrics returns the character metrics for the specified character code. A bool flag is // returned to indicate whether or not the entry was found in the glyph to charcode mapping. // How it works: // 1) Return a value the /Widths array (charWidths) if there is one. // 2) If the font has the same name as a standard 14 font then return width=250. // 3) Otherwise return no match and let the caller substitute a default. func (_edbgd pdfFontSimple )GetCharMetrics (code _ef .CharCode )(_bgd .CharMetrics ,bool ){if _ffbfb ,_geae :=_edbgd ._babec [code ];_geae {return _bgd .CharMetrics {Wx :_ffbfb },true ;};if _bgd .IsStdFont (_bgd .StdFontName (_edbgd ._dgfdc )){return _bgd .CharMetrics {Wx :250},true ; };return _bgd .CharMetrics {},false ;};func _dbggc (_fgdcd _egg .PdfObject )(*fontFile ,error ){_bag .Log .Trace ("\u006e\u0065\u0077\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0046\u0072\u006f\u006dP\u0064f\u004f\u0062\u006a\u0065\u0063\u0074\u003a\u0020\u006f\u0062\u006a\u003d\u0025\u0073",_fgdcd ); _cfaae :=&fontFile {};_fgdcd =_egg .TraceToDirectObject (_fgdcd );_bcdf ,_gdbd :=_fgdcd .(*_egg .PdfObjectStream );if !_gdbd {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020F\u006f\u006et\u0046\u0069\u006c\u0065\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d \u0028\u0025\u0054\u0029",_fgdcd ); return nil ,_egg .ErrTypeError ;};_fgba :=_bcdf .PdfObjectDictionary ;_dgddc ,_ggaf :=_egg .DecodeStream (_bcdf );if _ggaf !=nil {return nil ,_ggaf ;};_gggg ,_gdbd :=_egg .GetNameVal (_fgba .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_gdbd {_cfaae ._eecf =_gggg ; if _gggg =="\u0054\u0079\u0070\u0065\u0031\u0043"{_bag .Log .Debug ("T\u0079\u0070\u0065\u0031\u0043\u0020\u0066\u006f\u006e\u0074\u0073\u0020\u0061\u0072\u0065\u0020\u0063\u0075r\u0072\u0065\u006e\u0074\u006c\u0079\u0020\u006e\u006f\u0074 s\u0075\u0070\u0070o\u0072t\u0065\u0064"); return nil ,ErrType1CFontNotSupported ;};};_bbadd ,_ :=_egg .GetIntVal (_fgba .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_fgbb ,_ :=_egg .GetIntVal (_fgba .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _bbadd > len (_dgddc ){_bbadd =len (_dgddc ); };if _bbadd +_fgbb > len (_dgddc ){_fgbb =len (_dgddc )-_bbadd ;};_efdcg :=_dgddc [:_bbadd ];var _befd []byte ;if _fgbb > 0{_befd =_dgddc [_bbadd :_bbadd +_fgbb ];};if _bbadd > 0&&_fgbb > 0{_egdf :=_cfaae .loadFromSegments (_efdcg ,_befd );if _egdf !=nil {return nil ,_egdf ; };};return _cfaae ,nil ;}; // GetOutlines returns a high-level Outline object, based on the outline tree // of the reader. func (_dcgcc *PdfReader )GetOutlines ()(*Outline ,error ){if _dcgcc ==nil {return nil ,_gd .New ("\u0063\u0061n\u006e\u006f\u0074\u0020c\u0072\u0065a\u0074\u0065\u0020\u006f\u0075\u0074\u006c\u0069n\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u006e\u0069\u006c\u0020\u0072e\u0061\u0064\u0065\u0072"); };_agdd :=_dcgcc .GetOutlineTree ();if _agdd ==nil {return nil ,_gd .New ("\u0074\u0068\u0065\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0072\u0065\u0061\u0064e\u0072\u0020\u0064\u006f\u0065\u0073\u0020n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u006e\u0020o\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0074\u0072\u0065\u0065"); };var _bbef func (_agaa *PdfOutlineTreeNode ,_deaff *[]*OutlineItem );_bbef =func (_fbef *PdfOutlineTreeNode ,_ceabf *[]*OutlineItem ){if _fbef ==nil {return ;};if _fbef ._bgbfg ==nil {_bag .Log .Debug ("\u0045\u0052RO\u0052\u003a\u0020m\u0069\u0073\u0073\u0069ng \u006fut\u006c\u0069\u006e\u0065\u0020\u0065\u006etr\u0079\u0020\u0063\u006f\u006e\u0074\u0065x\u0074"); return ;};var _dege *OutlineItem ;if _ggafe ,_ddceag :=_fbef ._bgbfg .(*PdfOutlineItem );_ddceag {_ffbcd :=_ggafe .Dest ;if (_ffbcd ==nil ||_egg .IsNullObject (_ffbcd ))&&_ggafe .A !=nil {if _ecgcg ,_feeabf :=_egg .GetDict (_ggafe .A );_feeabf {if _febdg ,_dbcfc :=_egg .GetArray (_ecgcg .Get ("\u0044")); _dbcfc {_ffbcd =_febdg ;}else {_gaccg ,_cbbea :=_egg .GetString (_ecgcg .Get ("\u0044"));if !_cbbea {return ;};_bfgd ,_cbbea :=_dcgcc ._eacf .Get ("\u004e\u0061\u006de\u0073").(*_egg .PdfObjectReference );if !_cbbea {return ;};_bddae ,_egaed :=_dcgcc ._dafgab .LookupByReference (*_bfgd ); if _egaed !=nil {_bag .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0072\u0065\u0061\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0072\u0065\u0066\u0065\u0072e\u006e\u0063\u0065\u0020\u0028\u0025\u0073\u0029",_egaed .Error ()); return ;};_ddcdg ,_cbbea :=_bddae .(*_egg .PdfIndirectObject );if !_cbbea {return ;};_gcege :=map[_egg .PdfObject ]struct{}{};_egaed =_dcgcc .buildNameNodes (_ddcdg ,_gcege );if _egaed !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0062\u0075\u0069\u006c\u0064\u0020\u006ea\u006d\u0065\u0020\u006e\u006fd\u0065\u0073 \u0028\u0025\u0073\u0029",_egaed .Error ()); return ;};for _bceff :=range _gcege {_afgcf ,_adecdb :=_egg .GetDict (_bceff );if !_adecdb {continue ;};_cecbda ,_adecdb :=_egg .GetArray (_afgcf .Get ("\u004e\u0061\u006de\u0073"));if !_adecdb {continue ;};for _geefc ,_cfcga :=range _cecbda .Elements (){switch _cfcga .(type ){case *_egg .PdfObjectString :if _cfcga .String ()==_gaccg .String (){if _bbfdf :=_cecbda .Get (_geefc +1); _bbfdf !=nil {if _eddag ,_ggfg :=_egg .GetDict (_bbfdf );_ggfg {_ffbcd =_eddag .Get ("\u0044");break ;};};};};};};};};};var _ddgbg OutlineDest ;if _ffbcd !=nil &&!_egg .IsNullObject (_ffbcd ){if _fafda ,_ebdef :=_afcaa (_ffbcd ,_dcgcc );_ebdef ==nil {_ddgbg =*_fafda ; }else {_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020p\u0061\u0072\u0073\u0065\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0064\u0065\u0073\u0074\u0020\u0028\u0025\u0076\u0029\u003a\u0020\u0025\u0076",_ffbcd ,_ebdef ); };};_dege =NewOutlineItem (_ggafe .Title .Decoded (),_ddgbg );*_ceabf =append (*_ceabf ,_dege );if _ggafe .Next !=nil {_bbef (_ggafe .Next ,_ceabf );};};if _fbef .First !=nil {if _dege !=nil {_ceabf =&_dege .Entries ;};_bbef (_fbef .First ,_ceabf );};}; _ffadfb :=NewOutline ();_bbef (_agdd ,&_ffadfb .Entries );return _ffadfb ,nil ;};func (_decb *pdfFontSimple )updateStandard14Font (){_aebf ,_bcgfd :=_decb .Encoder ().(_ef .SimpleEncoder );if !_bcgfd {_bag .Log .Error ("\u0057\u0072\u006f\u006e\u0067\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0074y\u0070e\u003a\u0020\u0025\u0054\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073\u002e",_decb .Encoder (),_decb ); return ;};_gggbf :=_aebf .Charcodes ();_decb ._babec =make (map[_ef .CharCode ]float64 ,len (_gggbf ));for _ ,_dbabb :=range _gggbf {_dfgfgb ,_ :=_aebf .CharcodeToRune (_dbabb );_bfdc ,_ :=_decb ._dddd .Read (_dfgfgb );_decb ._babec [_dbabb ]=_bfdc .Wx ; };}; // NewPdfAction returns an initialized generic PDF action model. func NewPdfAction ()*PdfAction {_eff :=&PdfAction {};_eff ._bf =_egg .MakeIndirectObject (_egg .MakeDict ());return _eff ;}; // PdfOutputIntentType is the subtype of the given PdfOutputIntent. type PdfOutputIntentType int ; // NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object // from the input dictionary. func NewPdfPageResourcesFromDict (dict *_egg .PdfObjectDictionary )(*PdfPageResources ,error ){_cbaef :=NewPdfPageResources ();if _bcefc :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_bcefc !=nil {_cbaef .ExtGState =_bcefc ;};if _dgee :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"); _dgee !=nil &&!_egg .IsNullObject (_dgee ){_cbaef .ColorSpace =_dgee ;};if _bbfbg :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_bbfbg !=nil {_cbaef .Pattern =_bbfbg ;};if _dfbfcg :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_dfbfcg !=nil {_cbaef .Shading =_dfbfcg ; };if _afac :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_afac !=nil {_cbaef .XObject =_afac ;};if _dgfab :=_egg .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_dgfab !=nil {_cbaef .Font =_dgfab ;};if _aedfc :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074"); _aedfc !=nil {_cbaef .ProcSet =_aedfc ;};if _daff :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_daff !=nil {_cbaef .Properties =_daff ;};return _cbaef ,nil ;};