// // 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 (_g "bufio";_cbd "bytes";_bb "crypto/rand";_d "crypto/sha1";_ce "crypto/x509";_gg "encoding/binary";_c "encoding/hex";_bbd "errors";_e "fmt";_gb "github.com/unidoc/pkcs7";_dbg "github.com/unidoc/unipdf/v3/common";_eg "github.com/unidoc/unipdf/v3/core"; _fc "github.com/unidoc/unipdf/v3/core/security";_cf "github.com/unidoc/unipdf/v3/core/security/crypt";_aff "github.com/unidoc/unipdf/v3/internal/cmap";_ff "github.com/unidoc/unipdf/v3/internal/imageutil";_dd "github.com/unidoc/unipdf/v3/internal/license"; _ccg "github.com/unidoc/unipdf/v3/internal/sampling";_cec "github.com/unidoc/unipdf/v3/internal/textencoding";_cc "github.com/unidoc/unipdf/v3/internal/transform";_ab "github.com/unidoc/unipdf/v3/model/internal/fonts";_cbf "github.com/unidoc/unipdf/v3/model/sigutil"; _ea "github.com/unidoc/unipdf/v3/ps";_af "github.com/unidoc/unitype";_ead "golang.org/x/xerrors";_ec "image";_f "image/color";_ "image/gif";_ "image/png";_de "io";_aa "io/ioutil";_bc "math";_gf "math/rand";_bg "os";_ge "regexp";_ae "sort";_db "strconv"; _dc "strings";_eb "sync";_ee "time";_cg "unicode";_cb "unicode/utf8";); // NewPdfAnnotationScreen returns a new screen annotation. func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_cbdda :=NewPdfAnnotation ();_aad :=&PdfAnnotationScreen {};_aad .PdfAnnotation =_cbdda ;_cbdda .SetContext (_aad );return _aad ;}; // 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 (_dbbed *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _gbcc []_cec .TextEncoder ;var _beab _cec .CMapEncoder ;if _cbebc :=_dbbed .baseFields ()._fffc ;_cbebc !=nil {_beab =_cec .NewCMapEncoder ("",nil ,_cbebc );};_adbcb :=_dbbed .Encoder (); if _adbcb !=nil {switch _baegf :=_adbcb .(type ){case _cec .SimpleEncoder :_adga :=_baegf .BaseName ();if _ ,_aefae :=_acgcf [_adga ];_aefae {_gbcc =append (_gbcc ,_adbcb );};};};if len (_gbcc )==0{if _dbbed .baseFields ()._fffc !=nil {_gbcc =append (_gbcc ,_beab ); };if _adbcb !=nil {_gbcc =append (_gbcc ,_adbcb );};};var _bcadf _cbd .Buffer ;var _ecgfd int ;for _ ,_cfcd :=range data {var _fega bool ;for _ ,_cafed :=range _gbcc {if _addf :=_cafed .Encode (string (_cfcd ));len (_addf )> 0{_bcadf .Write (_addf );_fega =true ; break ;};};if !_fega {_dbg .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",_cfcd ); _ecgfd ++;};};if _ecgfd !=0{_dbg .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 ),_ecgfd ,_dbbed ,_gbcc ); };return _bcadf .Bytes (),_ecgfd ;};func (_gbcec *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};var _ pdfFont =(*pdfCIDFontType0 )(nil ); // ColorFromFloats returns a new PdfColor based on the input slice of color // components. The slice should contain a single element. func (_debd *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aebb :=vals [0];_aagg :=[]float64 {_aebb };_aabb ,_bdcg :=_debd .TintTransform .Evaluate (_aagg ); if _bdcg !=nil {_dbg .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",_bdcg );_dbg .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_debd .TintTransform ); return nil ,_bdcg ;};_dbg .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",_aabb ,_debd .AlternateSpace ); _abab ,_bdcg :=_debd .AlternateSpace .ColorFromFloats (_aabb );if _bdcg !=nil {_dbg .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",_bdcg ); return nil ,_bdcg ;};return _abab ,nil ;}; // ToPdfObject returns the PDF representation of the function. func (_cdecc *PdfFunctionType2 )ToPdfObject ()_eg .PdfObject {_bdgfc :=_eg .MakeDict ();_bdgfc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eg .MakeInteger (2));_bbbcg :=&_eg .PdfObjectArray {};for _ ,_ccgbb :=range _cdecc .Domain {_bbbcg .Append (_eg .MakeFloat (_ccgbb )); };_bdgfc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bbbcg );if _cdecc .Range !=nil {_agca :=&_eg .PdfObjectArray {};for _ ,_eegca :=range _cdecc .Range {_agca .Append (_eg .MakeFloat (_eegca ));};_bdgfc .Set ("\u0052\u0061\u006eg\u0065",_agca );};if _cdecc .C0 !=nil {_agagd :=&_eg .PdfObjectArray {}; for _ ,_adaea :=range _cdecc .C0 {_agagd .Append (_eg .MakeFloat (_adaea ));};_bdgfc .Set ("\u0043\u0030",_agagd );};if _cdecc .C1 !=nil {_fbbgc :=&_eg .PdfObjectArray {};for _ ,_feabf :=range _cdecc .C1 {_fbbgc .Append (_eg .MakeFloat (_feabf ));};_bdgfc .Set ("\u0043\u0031",_fbbgc ); };_bdgfc .Set ("\u004e",_eg .MakeFloat (_cdecc .N ));if _cdecc ._daaf !=nil {_cdecc ._daaf .PdfObject =_bdgfc ;return _cdecc ._daaf ;};return _bdgfc ;}; // 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 (_ecbdf *PdfPageResources )GetFontByName (keyName _eg .PdfObjectName )(_eg .PdfObject ,bool ){if _ecbdf .Font ==nil {return nil ,false ;};_faedc ,_aacab :=_eg .TraceToDirectObject (_ecbdf .Font ).(*_eg .PdfObjectDictionary );if !_aacab {_dbg .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",_eg .TraceToDirectObject (_ecbdf .Font )); return nil ,false ;};if _becga :=_faedc .Get (keyName );_becga !=nil {return _becga ,true ;};return nil ,false ;};func (_dgfb *PdfReader )loadStructure ()error {if _dgfb ._cdggc .GetCrypter ()!=nil &&!_dgfb ._cdggc .IsAuthenticated (){return _e .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"); };_dbgff :=_dgfb ._cdggc .GetTrailer ();if _dbgff ==nil {return _e .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_ddefce ,_agbb :=_dbgff .Get ("\u0052\u006f\u006f\u0074").(*_eg .PdfObjectReference );if !_agbb {return _e .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",_dbgff ); };_degaf ,_becbg :=_dgfb ._cdggc .LookupByReference (*_ddefce );if _becbg !=nil {_dbg .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",_becbg ); return _becbg ;};_gfgb ,_agbb :=_degaf .(*_eg .PdfIndirectObject );if !_agbb {_dbg .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",_degaf ,*_dbgff ); return _bbd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_dafbab ,_agbb :=(*_gfgb ).PdfObject .(*_eg .PdfObjectDictionary );if !_agbb {_dbg .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",_gfgb .PdfObject ); return _bbd .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_dbg .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_dafbab );_ebcgf ,_agbb :=_dafbab .Get ("\u0050\u0061\u0067e\u0073").(*_eg .PdfObjectReference ); if !_agbb {return _bbd .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");};_fgbcc ,_becbg :=_dgfb ._cdggc .LookupByReference (*_ebcgf ); if _becbg !=nil {_dbg .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 _becbg ;};_agedd ,_agbb :=_fgbcc .(*_eg .PdfIndirectObject );if !_agbb {_dbg .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"); _dbg .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_agedd );return _bbd .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_ggcee ,_agbb :=_agedd .PdfObject .(*_eg .PdfObjectDictionary );if !_agbb {_dbg .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",_agedd ); return _bbd .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_gbfeb ,_agbb :=_eg .GetInt (_ggcee .Get ("\u0043\u006f\u0075n\u0074"));if !_agbb {_dbg .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 _bbd .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_agbb =_eg .GetName (_ggcee .Get ("\u0054\u0079\u0070\u0065"));!_agbb {_dbg .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"); _ggcee .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0050\u0061\u0067e\u0073"));};if _bfeca ,_cbae :=_eg .GetInt (_ggcee .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_cbae {_ecbg :=int64 (*_bfeca );_dgfb .Rotate =&_ecbg ;};_dgfb ._faafd =_ddefce ; _dgfb ._efdg =_dafbab ;_dgfb ._faacgc =_ggcee ;_dgfb ._debff =_agedd ;_dgfb ._abddb =int (*_gbfeb );_dgfb ._dfff =[]*_eg .PdfIndirectObject {};_dgbfa :=map[_eg .PdfObject ]struct{}{};_becbg =_dgfb .buildPageList (_agedd ,nil ,_dgbfa );if _becbg !=nil {return _becbg ; };_dbg .Log .Trace ("\u002d\u002d\u002d");_dbg .Log .Trace ("\u0054\u004f\u0043");_dbg .Log .Trace ("\u0050\u0061\u0067e\u0073");_dbg .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_dgfb ._dfff ),_dgfb ._dfff );_dgfb ._ebgea ,_becbg =_dgfb .loadOutlines (); if _becbg !=nil {_dbg .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",_becbg ); return _becbg ;};_dgfb .AcroForm ,_becbg =_dgfb .loadForms ();if _becbg !=nil {return _becbg ;};_dgfb .DSS ,_becbg =_dgfb .loadDSS ();if _becbg !=nil {return _becbg ;};return nil ;}; // ToPdfObject implements interface PdfModel. func (_edcg *PdfAnnotationInk )ToPdfObject ()_eg .PdfObject {_edcg .PdfAnnotation .ToPdfObject ();_gbbc :=_edcg ._gag ;_afe :=_gbbc .PdfObject .(*_eg .PdfObjectDictionary );_edcg .PdfAnnotationMarkup .appendToPdfDictionary (_afe );_afe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0049\u006e\u006b")); _afe .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_edcg .InkList );_afe .SetIfNotNil ("\u0042\u0053",_edcg .BS );return _gbbc ;}; // Mask returns the uin32 bitmask for the specific flag. func (_cfceg FieldFlag )Mask ()uint32 {return uint32 (_cfceg )}; // SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern. func (_ggdec *PdfPattern )SetContext (ctx PdfModel ){_ggdec ._defdf =ctx };func (_ffc *PdfReader )newPdfActionHideFromDict (_bd *_eg .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_bd .Get ("\u0054"),H :_bd .Get ("\u0048")},nil ; };func _dddgd (_eaaca _eg .PdfObject ){_dbg .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_eaaca ,_eaaca .String ());if _cgcfg ,_gaaa :=_eaaca .(*_eg .PdfObjectStream );_gaaa {_adebce ,_fdbcf :=_eg .DecodeStream (_cgcfg ); if _fdbcf !=nil {_dbg .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_fdbcf );return ;};_dbg .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_adebce );}else if _fbcfd ,_cfdbf :=_eaaca .(*_eg .PdfIndirectObject ); _cfdbf {_dbg .Log .Debug ("\u0025\u0054\u0020%\u0076",_fbcfd .PdfObject ,_fbcfd .PdfObject );_dbg .Log .Debug ("\u0025\u0073",_fbcfd .PdfObject .String ());};}; // NewPdfAnnotationRedact returns a new redact annotation. func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_cdc :=NewPdfAnnotation ();_eff :=&PdfAnnotationRedact {};_eff .PdfAnnotation =_cdc ;_eff .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cdc .SetContext (_eff );return _eff ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_bcfg *PdfShadingType5 )ToPdfObject ()_eg .PdfObject {_bcfg .PdfShading .ToPdfObject ();_cccfa ,_fdfec :=_bcfg .getShadingDict ();if _fdfec !=nil {_dbg .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 _bcfg .BitsPerCoordinate !=nil {_cccfa .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_bcfg .BitsPerCoordinate );};if _bcfg .BitsPerComponent !=nil {_cccfa .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_bcfg .BitsPerComponent ); };if _bcfg .VerticesPerRow !=nil {_cccfa .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_bcfg .VerticesPerRow );};if _bcfg .Decode !=nil {_cccfa .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_bcfg .Decode );};if _bcfg .Function !=nil {if len (_bcfg .Function )==1{_cccfa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bcfg .Function [0].ToPdfObject ()); }else {_fgee :=_eg .MakeArray ();for _ ,_agbaf :=range _bcfg .Function {_fgee .Append (_agbaf .ToPdfObject ());};_cccfa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fgee );};};return _bcfg ._beag ;}; // 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 (_edbff *PdfPage )SetContentStreams (cStreams []string ,encoder _eg .StreamEncoder )error {if len (cStreams )==0{_edbff .Contents =nil ;return nil ;};if encoder ==nil {encoder =_eg .NewRawEncoder ();};var _efabe []*_eg .PdfObjectStream ;for _ ,_feadc :=range cStreams {_bfedg :=&_eg .PdfObjectStream {}; _bcegb :=encoder .MakeStreamDict ();_gfaf ,_gfgca :=encoder .EncodeBytes ([]byte (_feadc ));if _gfgca !=nil {return _gfgca ;};_bcegb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_gfaf ))));_bfedg .PdfObjectDictionary =_bcegb ; _bfedg .Stream =_gfaf ;_efabe =append (_efabe ,_bfedg );};if len (_efabe )==1{_edbff .Contents =_efabe [0];}else {_edbcd :=_eg .MakeArray ();for _ ,_agabd :=range _efabe {_edbcd .Append (_agabd );};_edbff .Contents =_edbcd ;};return nil ;}; // ToPdfObject implements interface PdfModel. func (_bcb *PdfActionGoTo3DView )ToPdfObject ()_eg .PdfObject {_bcb .PdfAction .ToPdfObject ();_ecf :=_bcb ._ege ;_egef :=_ecf .PdfObject .(*_eg .PdfObjectDictionary );_egef .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeGoTo3DView )));_egef .SetIfNotNil ("\u0054\u0041",_bcb .TA ); _egef .SetIfNotNil ("\u0056",_bcb .V );return _ecf ;}; // String returns a string representation of what flags are set. func (_baecb FieldFlag )String ()string {_bfac :="";if _baecb ==FieldFlagClear {_bfac ="\u0043\u006c\u0065a\u0072";return _bfac ;};if _baecb &FieldFlagReadOnly > 0{_bfac +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _baecb &FieldFlagRequired > 0{_bfac +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy"; };if _baecb &FieldFlagNoExport > 0{_bfac +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _baecb &FieldFlagNoToggleToOff > 0{_bfac +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _baecb &FieldFlagRadio > 0{_bfac +="\u007c\u0052\u0061\u0064\u0069\u006f"; };if _baecb &FieldFlagPushbutton > 0{_bfac +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _baecb &FieldFlagRadiosInUnision > 0{_bfac +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _baecb &FieldFlagMultiline > 0{_bfac +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065"; };if _baecb &FieldFlagPassword > 0{_bfac +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _baecb &FieldFlagFileSelect > 0{_bfac +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _baecb &FieldFlagDoNotScroll > 0{_bfac +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c"; };if _baecb &FieldFlagComb > 0{_bfac +="\u007c\u0043\u006fm\u0062";};if _baecb &FieldFlagRichText > 0{_bfac +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _baecb &FieldFlagDoNotSpellCheck > 0{_bfac +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b"; };if _baecb &FieldFlagCombo > 0{_bfac +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _baecb &FieldFlagEdit > 0{_bfac +="\u007c\u0045\u0064i\u0074";};if _baecb &FieldFlagSort > 0{_bfac +="\u007c\u0053\u006fr\u0074";};if _baecb &FieldFlagMultiSelect > 0{_bfac +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074"; };if _baecb &FieldFlagCommitOnSelChange > 0{_bfac +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _dc .Trim (_bfac ,"\u007c");}; // NewPdfAnnotationProjection returns a new projection annotation. func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_ffg :=NewPdfAnnotation ();_cfd :=&PdfAnnotationProjection {};_cfd .PdfAnnotation =_ffg ;_cfd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ffg .SetContext (_cfd );return _cfd ;}; // PdfAppender appends new PDF content to an existing PDF document via incremental updates. type PdfAppender struct{_gcbb _de .ReadSeeker ;_fbdd *_eg .PdfParser ;_acdg *PdfReader ;Reader *PdfReader ;_bfce []*PdfPage ;_ggcc *PdfAcroForm ;_aegd *DSS ;_cdga _eg .XrefTable ;_cfaf int64 ;_dace int ;_acda []_eg .PdfObject ;_adge map[_eg .PdfObject ]struct{}; _bddd map[_eg .PdfObject ]int64 ;_agaa map[_eg .PdfObject ]struct{};_baeg map[_eg .PdfObject ]struct{};_ade int64 ;_fabe bool ;}; // PdfColor interface represents a generic color in PDF. type PdfColor interface{}; // NewPdfColorCalGray returns a new CalGray color. func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_gcddg :=PdfColorCalGray (grayVal );return &_gcddg ;}; // FullName returns the full name of the field as in rootname.parentname.partialname. func (_dfg *PdfField )FullName ()(string ,error ){var _gdeb _cbd .Buffer ;_fdbd :=[]string {};if _dfg .T !=nil {_fdbd =append (_fdbd ,_dfg .T .Decoded ());};_fccg :=map[*PdfField ]bool {};_fccg [_dfg ]=true ;_feda :=_dfg .Parent ;for _feda !=nil {if _ ,_feff :=_fccg [_feda ]; _feff {return _gdeb .String (),_bbd .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _feda .T ==nil {return _gdeb .String (),_bbd .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"); };_fdbd =append (_fdbd ,_feda .T .Decoded ());_fccg [_feda ]=true ;_feda =_feda .Parent ;};for _bdfg :=len (_fdbd )-1;_bdfg >=0;_bdfg --{_gdeb .WriteString (_fdbd [_bdfg ]);if _bdfg > 0{_gdeb .WriteString ("\u002e");};};return _gdeb .String (),nil ;}; // NewPdfOutlineItem returns an initialized PdfOutlineItem. func NewPdfOutlineItem ()*PdfOutlineItem {_bdega :=&PdfOutlineItem {_bfega :_eg .MakeIndirectObject (_eg .MakeDict ())};_bdega ._dbaeb =_bdega ;return _bdega ;};func _dddfc (_agfc _eg .PdfObject )(*PdfFunctionType2 ,error ){_cbbff :=&PdfFunctionType2 {}; var _ccae *_eg .PdfObjectDictionary ;if _gbee ,_faeeb :=_agfc .(*_eg .PdfIndirectObject );_faeeb {_ggafa ,_egefd :=_gbee .PdfObject .(*_eg .PdfObjectDictionary );if !_egefd {return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072"); };_cbbff ._daaf =_gbee ;_ccae =_ggafa ;}else if _ebgba ,_bbdfdd :=_agfc .(*_eg .PdfObjectDictionary );_bbdfdd {_ccae =_ebgba ;}else {return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dbg .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_ccae .String ()); _dgeda ,_ccddg :=_eg .TraceToDirectObject (_ccae .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eg .PdfObjectArray );if !_ccddg {_dbg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bbd .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 _dgeda .Len ()< 0||_dgeda .Len ()%2!=0{_dbg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_bbd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065"); };_debeb ,_dcdec :=_dgeda .ToFloat64Array ();if _dcdec !=nil {return nil ,_dcdec ;};_cbbff .Domain =_debeb ;_dgeda ,_ccddg =_eg .TraceToDirectObject (_ccae .Get ("\u0052\u0061\u006eg\u0065")).(*_eg .PdfObjectArray );if _ccddg {if _dgeda .Len ()< 0||_dgeda .Len ()%2!=0{return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065"); };_bacdc ,_abebe :=_dgeda .ToFloat64Array ();if _abebe !=nil {return nil ,_abebe ;};_cbbff .Range =_bacdc ;};_dgeda ,_ccddg =_eg .TraceToDirectObject (_ccae .Get ("\u0043\u0030")).(*_eg .PdfObjectArray );if _ccddg {_ecegd ,_fcabd :=_dgeda .ToFloat64Array (); if _fcabd !=nil {return nil ,_fcabd ;};_cbbff .C0 =_ecegd ;};_dgeda ,_ccddg =_eg .TraceToDirectObject (_ccae .Get ("\u0043\u0031")).(*_eg .PdfObjectArray );if _ccddg {_fcabf ,_eddb :=_dgeda .ToFloat64Array ();if _eddb !=nil {return nil ,_eddb ;};_cbbff .C1 =_fcabf ; };if len (_cbbff .C0 )!=len (_cbbff .C1 ){_dbg .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_eg .ErrRangeError ;};N ,_dcdec :=_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_ccae .Get ("\u004e"))); if _dcdec !=nil {_dbg .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",_ccae .String ());return nil ,_dcdec ;};_cbbff .N =N ; return _cbbff ,nil ;}; // ToPdfObject returns a PDF object representation of the outline. func (_fegab *Outline )ToPdfObject ()_eg .PdfObject {return _fegab .ToPdfOutline ().ToPdfObject ()}; // 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 ;_defdf PdfModel ;_cfaag _eg .PdfObject ;};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;); // NewPdfAnnotationPolygon returns a new polygon annotation. func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_efa :=NewPdfAnnotation ();_fedd :=&PdfAnnotationPolygon {};_fedd .PdfAnnotation =_efa ;_fedd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_efa .SetContext (_fedd );return _fedd ;};func _gdbee ()_ee .Time {_egbeg .Lock (); defer _egbeg .Unlock ();return _gbbee }; // ImageToRGB returns the passed in image. Method exists in order to satisfy // the PdfColorspace interface. func (_ccfe *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };func _edca ()string {_egbeg .Lock ();defer _egbeg .Unlock ();return _dfdfdc }; // 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 (_dbgcb *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _dbgcb .baseFields ()._eecfe !=nil {return _dbgcb .baseFields ()._eecfe ;};if _cebf :=_dbgcb ._gdcab .getFontDescriptor ();_cebf !=nil {return _cebf ;};_dbg .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",_dbgcb ); return nil ;}; // ImageToRGB converts an Image in a given PdfColorspace to an RGB image. func (_aabad *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_fbdgc :=_ccg .NewReader (img .getBase ());_baadd :=_ff .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._fcec ,img ._aaeac ); _abef :=_ccg .NewWriter (_baadd );_afcc :=_bc .Pow (2,float64 (img .BitsPerComponent ))-1;_fdagc :=_aabad .GetNumComponents ();_gbfb :=make ([]uint32 ,_fdagc );_ffda :=make ([]float64 ,_fdagc );for {_ggae :=_fbdgc .ReadSamples (_gbfb );if _ggae ==_de .EOF {break ; }else if _ggae !=nil {return img ,_ggae ;};for _fbbe :=0;_fbbe < _fdagc ;_fbbe ++{_cagd :=float64 (_gbfb [_fbbe ])/_afcc ;_ffda [_fbbe ]=_cagd ;};_gdaf ,_ggae :=_aabad .TintTransform .Evaluate (_ffda );if _ggae !=nil {return img ,_ggae ;};for _ ,_abeb :=range _gdaf {_abeb =_bc .Min (_bc .Max (0,_abeb ),1.0); if _ggae =_abef .WriteSample (uint32 (_abeb *_afcc ));_ggae !=nil {return img ,_ggae ;};};};return _aabad .AlternateSpace .ImageToRGB (_egbde (&_baadd ));}; // ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks. type ContentStreamWrapper interface{WrapContentStream (_dcef *PdfPage )error ;}; // PdfAnnotationLine represents Line annotations. // (Section 12.5.6.7). type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _eg .PdfObject ;BS _eg .PdfObject ;LE _eg .PdfObject ;IC _eg .PdfObject ;LL _eg .PdfObject ;LLE _eg .PdfObject ;Cap _eg .PdfObject ;IT _eg .PdfObject ;LLO _eg .PdfObject ;CP _eg .PdfObject ; Measure _eg .PdfObject ;CO _eg .PdfObject ;}; // ToPdfObject returns the PDF representation of the page resources. func (_eaca *PdfPageResources )ToPdfObject ()_eg .PdfObject {_gdgc :=_eaca ._fbcbc ;_gdgc .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_eaca .ExtGState );if _eaca ._gecbc !=nil {_eaca .ColorSpace =_eaca ._gecbc .ToPdfObject ();};_gdgc .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_eaca .ColorSpace ); _gdgc .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_eaca .Pattern );_gdgc .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_eaca .Shading );_gdgc .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_eaca .XObject );_gdgc .SetIfNotNil ("\u0046\u006f\u006e\u0074",_eaca .Font ); _gdgc .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_eaca .ProcSet );_gdgc .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_eaca .Properties );return _gdgc ;};func _gbdcf (_eabccd *_eg .PdfObjectArray )(float64 ,error ){_aegdc ,_bfage :=_eabccd .ToFloat64Array (); if _bfage !=nil {_dbg .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",_eabccd ,_bfage );};switch len (_aegdc ){case 1:return _aegdc [0],nil ; case 3:_begbe :=PdfColorspaceDeviceRGB {};_cdbae ,_fbbacf :=_begbe .ColorFromFloats (_aegdc );if _fbbacf !=nil {return 0.0,_fbbacf ;};return _cdbae .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_agggad :=PdfColorspaceDeviceCMYK {};_fddab ,_ededg :=_agggad .ColorFromFloats (_aegdc ); if _ededg !=nil {return 0.0,_ededg ;};_geegd ,_ededg :=_agggad .ColorToRGB (_fddab .(*PdfColorDeviceCMYK ));if _ededg !=nil {return 0.0,_ededg ;};return _geegd .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;};_bfage =_bbd .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072"); _dbg .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_eabccd ,_bfage );return 0.0,_bfage ;}; // Clear clears flag fl from the flag and returns the resulting flag. func (_fcfgg FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_fcfgg .Mask ()&^fl .Mask ())}; // GetNumComponents returns the number of color components (3 for Lab). func (_dgecf *PdfColorLab )GetNumComponents ()int {return 3};var (_egbeg _eb .Mutex ;_dfdfdc ="";_gbbee _ee .Time ;_ebgfe ="";_bbgff ="";_cced _ee .Time ;_gdagd ="";_gfcae ="";_dgage ="";); // ColorFromFloats returns a new PdfColor based on the input slice of color // components. The slice should contain a single element. func (_faed *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_faed .Base .GetNumComponents ();_gdgbdg :=int (vals [0])*N ; if _gdgbdg < 0||(_gdgbdg +N -1)>=len (_faed ._dbcc ){return nil ,_bbd .New ("\u006f\u0075\u0074\u0073\u0069\u0064\u0065\u0020\u0072\u0061\u006e\u0067\u0065");};_ddgc :=_faed ._dbcc [_gdgbdg :_gdgbdg +N ];var _abdc []float64 ;for _ ,_bcdb :=range _ddgc {_abdc =append (_abdc ,float64 (_bcdb )/255.0); };_adgc ,_abcg :=_faed .Base .ColorFromFloats (_abdc );if _abcg !=nil {return nil ,_abcg ;};return _adgc ,nil ;};func _dbbge ()*modelManager {_fdfgg :=modelManager {};_fdfgg ._eegb =map[PdfModel ]_eg .PdfObject {};_fdfgg ._bfgf =map[_eg .PdfObject ]PdfModel {}; return &_fdfgg ;}; // NewPdfDateFromTime will create a PdfDate based on the given time func NewPdfDateFromTime (timeObj _ee .Time )(PdfDate ,error ){_aefc :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_ecfbf ,_ :=_db .ParseInt (_aefc [1:3],10,32);_gdggg ,_ :=_db .ParseInt (_aefc [4:6],10,32);return PdfDate {_cggcf :int64 (timeObj .Year ()),_agfdbf :int64 (timeObj .Month ()),_ebfff :int64 (timeObj .Day ()),_bfabc :int64 (timeObj .Hour ()),_edagg :int64 (timeObj .Minute ()),_ggcbe :int64 (timeObj .Second ()),_facfb :_aefc [0],_gaggg :_ecfbf ,_daabe :_gdggg },nil ; }; // GetCharMetrics returns the char metrics for character code `code`. func (_eeec pdfCIDFontType0 )GetCharMetrics (code _cec .CharCode )(_ab .CharMetrics ,bool ){_aeda :=_eeec ._gfbab ;if _fdaec ,_fcgg :=_eeec ._fedfd [code ];_fcgg {_aeda =_fdaec ;};return _ab .CharMetrics {Wx :_aeda },true ;}; // ToPdfObject sets the common field elements. // Note: Call the more field context's ToPdfObject to set both the generic and // non-generic information. func (_ebed *PdfField )ToPdfObject ()_eg .PdfObject {_degf :=_ebed ._afbe ;_beebe :=_degf .PdfObject .(*_eg .PdfObjectDictionary );_dcdaf :=_eg .MakeArray ();for _ ,_dbe :=range _ebed .Kids {_dcdaf .Append (_dbe .ToPdfObject ());};for _ ,_febf :=range _ebed .Annotations {if _febf ._gag !=_ebed ._afbe {_dcdaf .Append (_febf .GetContext ().ToPdfObject ()); };};if _ebed .Parent !=nil {_beebe .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_ebed .Parent .GetContainingPdfObject ());};if _dcdaf .Len ()> 0{_beebe .Set ("\u004b\u0069\u0064\u0073",_dcdaf );};_beebe .SetIfNotNil ("\u0046\u0054",_ebed .FT ); _beebe .SetIfNotNil ("\u0054",_ebed .T );_beebe .SetIfNotNil ("\u0054\u0055",_ebed .TU );_beebe .SetIfNotNil ("\u0054\u004d",_ebed .TM );_beebe .SetIfNotNil ("\u0046\u0066",_ebed .Ff );_beebe .SetIfNotNil ("\u0056",_ebed .V );_beebe .SetIfNotNil ("\u0044\u0056",_ebed .DV ); _beebe .SetIfNotNil ("\u0041\u0041",_ebed .AA );return _degf ;};func _dccbga (_eefce *[]*PdfField ,_ccgb FieldFilterFunc ,_gcec bool )[]*PdfField {if _eefce ==nil {return nil ;};_bgbfg :=*_eefce ;if len (*_eefce )==0{return nil ;};_ccff :=_bgbfg [:0];if _ccgb ==nil {_ccgb =func (*PdfField )bool {return true }; };var _bffcd []*PdfField ;for _ ,_cfafc :=range _bgbfg {_fegf :=_ccgb (_cfafc );if _fegf {_bffcd =append (_bffcd ,_cfafc );if len (_cfafc .Kids )> 0{_bffcd =append (_bffcd ,_dccbga (&_cfafc .Kids ,_ccgb ,_gcec )...);};};if !_gcec ||!_fegf ||len (_cfafc .Kids )> 0{_ccff =append (_ccff ,_cfafc ); };};*_eefce =_ccff ;return _bffcd ;}; // SetOCProperties sets the optional content properties. func (_bebag *PdfWriter )SetOCProperties (ocProperties _eg .PdfObject )error {_eedfe :=_bebag ._ebaaa ;if ocProperties !=nil {_dbg .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e"); _eedfe .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _bebag .addObjects (ocProperties );};return nil ;}; // ToOutlineTree returns a low level PdfOutlineTreeNode object, based on // the current instance. func (_daebe *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_daebe .ToPdfOutline ().PdfOutlineTreeNode ;}; // PdfAnnotationRedact represents Redact annotations. // (Section 12.5.6.23). type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eg .PdfObject ;IC _eg .PdfObject ;RO _eg .PdfObject ;OverlayText _eg .PdfObject ;Repeat _eg .PdfObject ;DA _eg .PdfObject ;Q _eg .PdfObject ;};func (_gdgbd *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"; }; // 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 ;_fcec []byte ;_aaeac []float64 ;}; // NewPdfAnnotationMovie returns a new movie annotation. func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_ggge :=NewPdfAnnotation ();_fgcc :=&PdfAnnotationMovie {};_fgcc .PdfAnnotation =_ggge ;_ggge .SetContext (_fgcc );return _fgcc ;}; // GetRuneMetrics returns the character metrics for the specified rune. // A bool flag is returned to indicate whether or not the entry was found. func (_deca pdfFontType3 )GetRuneMetrics (r rune )(_ab .CharMetrics ,bool ){_bccd :=_deca .Encoder ();if _bccd ==nil {_dbg .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_deca ); return _ab .CharMetrics {},false ;};_fbge ,_edag :=_bccd .RuneToCharcode (r );if !_edag {if r !=' '{_dbg .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 ,_deca ); };return _ab .CharMetrics {},false ;};_cbfa ,_eedbc :=_deca .GetCharMetrics (_fbge );return _cbfa ,_eedbc ;}; // PdfAnnotationHighlight represents Highlight annotations. // (Section 12.5.6.10). type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eg .PdfObject ;}; // PdfAnnotationPrinterMark represents PrinterMark annotations. // (Section 12.5.6.20). type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _eg .PdfObject ;}; // GetFontDescriptor returns the font descriptor for `font`. func (_ddadg PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _ddadg ._gdcab .getFontDescriptor (),nil ;}; // PdfShadingType6 is a Coons patch mesh. type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_eg .PdfObjectInteger ;BitsPerComponent *_eg .PdfObjectInteger ;BitsPerFlag *_eg .PdfObjectInteger ;Decode *_eg .PdfObjectArray ;Function []PdfFunction ;};var _aced =_ge .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b"); func _geec (_cgdg string )map[string ]string {_abfca :=_aced .Split (_cgdg ,-1);_beed :=map[string ]string {};for _ ,_cgceg :=range _abfca {_ccde :=_bbed .FindStringSubmatch (_cgceg );if _ccde ==nil {continue ;};_daef ,_aafbc :=_ccde [1],_ccde [2];_beed [_daef ]=_aafbc ; };return _beed ;}; // ColorToRGB converts gray -> rgb for a single color component. func (_edbc *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_abgb ,_ceed :=color .(*PdfColorDeviceGray );if !_ceed {_dbg .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 ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_abgb ),float64 (*_abgb ),float64 (*_abgb )),nil ;}; // Set applies flag fl to the flag's bitmask and returns the combined flag. func (_bfef FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_bfef .Mask ()|fl .Mask ())};func (_ddeg *PdfReader )newPdfAnnotationMovieFromDict (_agfb *_eg .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_gedf :=PdfAnnotationMovie {};_gedf .T =_agfb .Get ("\u0054"); _gedf .Movie =_agfb .Get ("\u004d\u006f\u0076i\u0065");_gedf .A =_agfb .Get ("\u0041");return &_gedf ,nil ;};func (_edc *PdfReader )newPdfAnnotationStrikeOut (_babc *_eg .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_gcb :=PdfAnnotationStrikeOut {}; _dgc ,_bgbe :=_edc .newPdfAnnotationMarkupFromDict (_babc );if _bgbe !=nil {return nil ,_bgbe ;};_gcb .PdfAnnotationMarkup =_dgc ;_gcb .QuadPoints =_babc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_gcb ,nil ;};func _aaaad (_bgcfd *_eg .PdfIndirectObject )(*PdfOutline ,error ){_dffag ,_bffec :=_bgcfd .PdfObject .(*_eg .PdfObjectDictionary ); if !_bffec {return nil ,_e .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");};_cfdec :=NewPdfOutline ();if _bdegg :=_dffag .Get ("\u0054\u0079\u0070\u0065"); _bdegg !=nil {_eddcd ,_bdad :=_bdegg .(*_eg .PdfObjectName );if _bdad {if *_eddcd !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_dbg .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",*_eddcd ); };};};if _gcae :=_dffag .Get ("\u0043\u006f\u0075n\u0074");_gcae !=nil {_edgd ,_efdfe :=_eg .GetNumberAsInt64 (_gcae );if _efdfe !=nil {return nil ,_efdfe ;};_cfdec .Count =&_edgd ;};return _cfdec ,nil ;};func (_efe *PdfReader )newPdfActionGotoRFromDict (_baa *_eg .PdfObjectDictionary )(*PdfActionGoToR ,error ){_dfe ,_eecf :=_gbbe (_baa .Get ("\u0046")); if _eecf !=nil {return nil ,_eecf ;};return &PdfActionGoToR {D :_baa .Get ("\u0044"),NewWindow :_baa .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_dfe },nil ;};func (_ggdbdd *PdfWriter )addObjects (_bbgdc _eg .PdfObject )error {_dbg .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021"); if _ecgb ,_cgaa :=_bbgdc .(*_eg .PdfIndirectObject );_cgaa {_dbg .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_dbg .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_bbgdc ,_ecgb );_dbg .Log .Trace ("\u002d\u0020\u0025\u0073",_ecgb .PdfObject ); if _ggdbdd .addObject (_ecgb ){_fedeec :=_ggdbdd .addObjects (_ecgb .PdfObject );if _fedeec !=nil {return _fedeec ;};};return nil ;};if _ddfa ,_gfefa :=_bbgdc .(*_eg .PdfObjectStream );_gfefa {_dbg .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_dbg .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_bbgdc ,_bbgdc ); if _ggdbdd .addObject (_ddfa ){_gbcad :=_ggdbdd .addObjects (_ddfa .PdfObjectDictionary );if _gbcad !=nil {return _gbcad ;};};return nil ;};if _dbeac ,_eeade :=_bbgdc .(*_eg .PdfObjectDictionary );_eeade {_dbg .Log .Trace ("\u0044\u0069\u0063\u0074");_dbg .Log .Trace ("\u002d\u0020\u0025\u0073",_bbgdc ); for _ ,_cabfcg :=range _dbeac .Keys (){_fdea :=_dbeac .Get (_cabfcg );if _fcgga ,_agcc :=_fdea .(*_eg .PdfObjectReference );_agcc {_fdea =_fcgga .Resolve ();_dbeac .Set (_cabfcg ,_fdea );};if _cabfcg !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _ffcfg :=_ggdbdd .addObjects (_fdea ); _ffcfg !=nil {return _ffcfg ;};}else {if _ ,_aeffe :=_fdea .(*_eg .PdfObjectNull );_aeffe {continue ;};if _fdgacf :=_ggdbdd .hasObject (_fdea );!_fdgacf {_dbg .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",_fdea ,_fdea ,_fdea ); _ggdbdd ._cfadb [_fdea ]=append (_ggdbdd ._cfadb [_fdea ],_dbeac );};};};return nil ;};if _gebee ,_cacg :=_bbgdc .(*_eg .PdfObjectArray );_cacg {_dbg .Log .Trace ("\u0041\u0072\u0072a\u0079");_dbg .Log .Trace ("\u002d\u0020\u0025\u0073",_bbgdc );if _gebee ==nil {return _bbd .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c"); };for _agbcgc ,_ebaba :=range _gebee .Elements (){if _dcfd ,_ecgbf :=_ebaba .(*_eg .PdfObjectReference );_ecgbf {_ebaba =_dcfd .Resolve ();_gebee .Set (_agbcgc ,_ebaba );};if _aedcb :=_ggdbdd .addObjects (_ebaba );_aedcb !=nil {return _aedcb ;};};return nil ; };if _ ,_cdbd :=_bbgdc .(*_eg .PdfObjectReference );_cdbd {_dbg .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",_bbgdc ); return _bbd .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;}; // NewPdfFieldSignature returns an initialized signature field. func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_dcca :=&PdfFieldSignature {};_dcca .PdfField =NewPdfField ();_dcca .PdfField .SetContext (_dcca );_dcca .PdfAnnotationWidget =NewPdfAnnotationWidget ();_dcca .PdfAnnotationWidget .SetContext (_dcca ); _dcca .PdfAnnotationWidget ._gag =_dcca .PdfField ._afbe ;_dcca .T =_eg .MakeString ("");_dcca .F =_eg .MakeInteger (132);_dcca .V =signature ;return _dcca ;}; // GetContainingPdfObject implements interface PdfModel. func (_bdge *PdfAnnotation )GetContainingPdfObject ()_eg .PdfObject {return _bdge ._gag }; // 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 _eg .PdfObject ;_dbcc []byte ;_cbdga *_eg .PdfIndirectObject ;};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;); // FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other // flags are specific. type FieldFlag uint32 ;func _ebbgf (_bfcbc *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_ddgfc ,_dgge :=_eg .GetDict (_bfcbc .AP );if !_dgge {return nil ,nil ,_bbd .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 _ddgfc ==nil {return nil ,nil ,nil ;};_adae ,_dgge :=_eg .GetArray (_bfcbc .Rect );if !_dgge ||_adae .Len ()!=4{return nil ,nil ,_bbd .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_aaaef ,_facf :=NewPdfRectangle (*_adae ); if _facf !=nil {return nil ,nil ,_facf ;};_dfbe :=_eg .TraceToDirectObject (_ddgfc .Get ("\u004e"));switch _bgdad :=_dfbe .(type ){case *_eg .PdfObjectStream :_cgfa :=_bgdad ;_cabgg ,_ggebb :=NewXObjectFormFromStream (_cgfa );return _cabgg ,_aaaef ,_ggebb ; case *_eg .PdfObjectDictionary :_geeb :=_bgdad ;_cbfec ,_ggcd :=_eg .GetName (_bfcbc .AS );if !_ggcd {return nil ,nil ,nil ;};if _geeb .Get (*_cbfec )==nil {_dbg .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 ;};_bdebb ,_ggcd :=_eg .GetStream (_geeb .Get (*_cbfec ));if !_ggcd {_dbg .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",_cbfec ); return nil ,nil ,_bbd .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_ddefc ,_aceg :=NewXObjectFormFromStream (_bdebb );return _ddefc ,_aaaef ,_aceg ;};_dbg .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_dfbe ); return nil ,nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");}; // 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 (_egcb *PdfFieldButton )SetType (btype ButtonType ){_eccf :=uint32 (0);if _egcb .Ff !=nil {_eccf =uint32 (*_egcb .Ff );};switch btype {case ButtonTypePush :_eccf |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_eccf |=FieldFlagRadio .Mask (); };_egcb .Ff =_eg .MakeInteger (int64 (_eccf ));}; // Y returns the value of the yellow component of the color. func (_gggb *PdfColorDeviceCMYK )Y ()float64 {return _gggb [2]}; // NewPdfColorspaceDeviceGray returns a new grayscale colorspace. func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}}; // Evaluate runs the function on the passed in slice and returns the results. func (_cdgeg *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_dbg .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };return nil ,_bbd .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");}; // ToPdfObject returns the PDF representation of the colorspace. func (_aafbd *PdfColorspaceDeviceCMYK )ToPdfObject ()_eg .PdfObject {return _eg .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");}; // 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 _eg .PdfObject ;FontFamily _eg .PdfObject ;FontStretch _eg .PdfObject ;FontWeight _eg .PdfObject ;Flags _eg .PdfObject ;FontBBox _eg .PdfObject ;ItalicAngle _eg .PdfObject ;Ascent _eg .PdfObject ;Descent _eg .PdfObject ; Leading _eg .PdfObject ;CapHeight _eg .PdfObject ;XHeight _eg .PdfObject ;StemV _eg .PdfObject ;StemH _eg .PdfObject ;AvgWidth _eg .PdfObject ;MaxWidth _eg .PdfObject ;MissingWidth _eg .PdfObject ;FontFile _eg .PdfObject ;FontFile2 _eg .PdfObject ;FontFile3 _eg .PdfObject ; CharSet _eg .PdfObject ;_eaafa int ;_afce float64 ;*fontFile ;_bgcbd *_ab .TtfType ; // Additional entries for CIDFonts Style _eg .PdfObject ;Lang _eg .PdfObject ;FD _eg .PdfObject ;CIDSet _eg .PdfObject ;_fcfbbf *_eg .PdfIndirectObject ;}; // NewPdfColorCalRGB returns a new CalRBG color. func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_dccd :=PdfColorCalRGB {a ,b ,c };return &_dccd ;}; // PdfActionNamed represents a named action. type PdfActionNamed struct{*PdfAction ;N _eg .PdfObject ;}; // PdfAnnotationFileAttachment represents FileAttachment annotations. // (Section 12.5.6.15). type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _eg .PdfObject ;Name _eg .PdfObject ;}; // Add appends a top level outline item to the outline. func (_gdce *Outline )Add (item *OutlineItem ){_gdce .Entries =append (_gdce .Entries ,item )}; // NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an // error is returned. func NewPdfFontFromPdfObject (fontObj _eg .PdfObject )(*PdfFont ,error ){return _cdac (fontObj ,true )}; // NewPdfOutlineTree returns an initialized PdfOutline tree. func NewPdfOutlineTree ()*PdfOutline {_ggdf :=NewPdfOutline ();_ggdf ._dbaeb =&_ggdf ;return _ggdf };func (_bfeb *PdfReader )newPdfAnnotation3DFromDict (_bggc *_eg .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_gfbe :=PdfAnnotation3D {};_gfbe .T3DD =_bggc .Get ("\u0033\u0044\u0044"); _gfbe .T3DV =_bggc .Get ("\u0033\u0044\u0056");_gfbe .T3DA =_bggc .Get ("\u0033\u0044\u0041");_gfbe .T3DI =_bggc .Get ("\u0033\u0044\u0049");_gfbe .T3DB =_bggc .Get ("\u0033\u0044\u0042");return &_gfbe ,nil ;}; // String returns a string representation of the field. func (_bgegc *PdfField )String ()string {if _bbfa ,_gdgbg :=_bgegc .ToPdfObject ().(*_eg .PdfIndirectObject );_gdgbg {return _e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_bgegc ._ceag ,_bbfa .PdfObject .String ());};return "";};func (_egec *fontFile )loadFromSegments (_bgfgg ,_bcbgc []byte )error {_dbg .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_bgfgg ),len (_bcbgc )); _agce :=_egec .parseASCIIPart (_bgfgg );if _agce !=nil {return _agce ;};_dbg .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_egec );if len (_bcbgc )==0{return nil ;};_dbg .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_egec ); return nil ;};func (_bbaf *PdfAnnotation )String ()string {_feb :="";_daa ,_agg :=_bbaf .ToPdfObject ().(*_eg .PdfIndirectObject );if _agg {_feb =_e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_bbaf ._ffbe ,_daa .PdfObject .String ());};return _feb ; };func (_cefb *PdfReader )newPdfAnnotationScreenFromDict (_bbb *_eg .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_fgbe :=PdfAnnotationScreen {};_fgbe .T =_bbb .Get ("\u0054");_fgbe .MK =_bbb .Get ("\u004d\u004b");_fgbe .A =_bbb .Get ("\u0041"); _fgbe .AA =_bbb .Get ("\u0041\u0041");return &_fgbe ,nil ;}; // GetNumComponents returns the number of color components (3 for CalRGB). func (_gdegb *PdfColorCalRGB )GetNumComponents ()int {return 3};func (_cfdd *PdfReader )newPdfAnnotationFromIndirectObject (_degc *_eg .PdfIndirectObject )(*PdfAnnotation ,error ){_agb ,_ffgg :=_degc .PdfObject .(*_eg .PdfObjectDictionary );if !_ffgg {return nil ,_e .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 :=_cfdd ._gced .GetModelFromPrimitive (_agb );model !=nil {_egg ,_aab :=model .(*PdfAnnotation );if !_aab {return nil ,_e .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 _egg ,nil ;};_egdf :=&PdfAnnotation {};_egdf ._gag =_degc ;_cfdd ._gced .Register (_agb ,_egdf );if _ebcde :=_agb .Get ("\u0054\u0079\u0070\u0065");_ebcde !=nil {_dcgb ,_egbg :=_ebcde .(*_eg .PdfObjectName );if !_egbg {_dbg .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",_ebcde ); }else {if *_dcgb !="\u0041\u006e\u006eo\u0074"{_dbg .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",*_dcgb );};};}; if _adbe :=_agb .Get ("\u0052\u0065\u0063\u0074");_adbe !=nil {_egdf .Rect =_adbe ;};if _afcf :=_agb .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_afcf !=nil {_egdf .Contents =_afcf ;};if _abbd :=_agb .Get ("\u0050");_abbd !=nil {_egdf .P =_abbd ; };if _dafe :=_agb .Get ("\u004e\u004d");_dafe !=nil {_egdf .NM =_dafe ;};if _bdgd :=_agb .Get ("\u004d");_bdgd !=nil {_egdf .M =_bdgd ;};if _cfg :=_agb .Get ("\u0046");_cfg !=nil {_egdf .F =_cfg ;};if _gfgd :=_agb .Get ("\u0041\u0050");_gfgd !=nil {_egdf .AP =_gfgd ; };if _gdag :=_agb .Get ("\u0041\u0053");_gdag !=nil {_egdf .AS =_gdag ;};if _gdeg :=_agb .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_gdeg !=nil {_egdf .Border =_gdeg ;};if _afb :=_agb .Get ("\u0043");_afb !=nil {_egdf .C =_afb ;};if _gdd :=_agb .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074"); _gdd !=nil {_egdf .StructParent =_gdd ;};if _ecgc :=_agb .Get ("\u004f\u0043");_ecgc !=nil {_egdf .OC =_ecgc ;};_cge :=_agb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _cge ==nil {_dbg .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"); _egdf ._ffbe =nil ;return _egdf ,nil ;};_ggbd ,_ecdg :=_cge .(*_eg .PdfObjectName );if !_ecdg {_dbg .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",_cge ); return nil ,_e .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",_cge );};switch *_ggbd {case "\u0054\u0065\u0078\u0074":_agfe ,_gadg :=_cfdd .newPdfAnnotationTextFromDict (_agb ); if _gadg !=nil {return nil ,_gadg ;};_agfe .PdfAnnotation =_egdf ;_egdf ._ffbe =_agfe ;return _egdf ,nil ;case "\u004c\u0069\u006e\u006b":_bed ,_dad :=_cfdd .newPdfAnnotationLinkFromDict (_agb );if _dad !=nil {return nil ,_dad ;};_bed .PdfAnnotation =_egdf ; _egdf ._ffbe =_bed ;return _egdf ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_dadb ,_cdge :=_cfdd .newPdfAnnotationFreeTextFromDict (_agb );if _cdge !=nil {return nil ,_cdge ;};_dadb .PdfAnnotation =_egdf ;_egdf ._ffbe =_dadb ;return _egdf ,nil ; case "\u004c\u0069\u006e\u0065":_cdfd ,_gggg :=_cfdd .newPdfAnnotationLineFromDict (_agb );if _gggg !=nil {return nil ,_gggg ;};_cdfd .PdfAnnotation =_egdf ;_egdf ._ffbe =_cdfd ;_dbg .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",_egdf ,_egdf ); _dbg .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",_cdfd ,_cdfd );_dbg .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",_cdfd .PdfAnnotationMarkup ,_cdfd .PdfAnnotationMarkup ); return _egdf ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_abgc ,_cfdb :=_cfdd .newPdfAnnotationSquareFromDict (_agb );if _cfdb !=nil {return nil ,_cfdb ;};_abgc .PdfAnnotation =_egdf ;_egdf ._ffbe =_abgc ;return _egdf ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_eacb ,_fgffe :=_cfdd .newPdfAnnotationCircleFromDict (_agb ); if _fgffe !=nil {return nil ,_fgffe ;};_eacb .PdfAnnotation =_egdf ;_egdf ._ffbe =_eacb ;return _egdf ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_bbcb ,_bgg :=_cfdd .newPdfAnnotationPolygonFromDict (_agb );if _bgg !=nil {return nil ,_bgg ;};_bbcb .PdfAnnotation =_egdf ; _egdf ._ffbe =_bbcb ;return _egdf ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_geee ,_aeff :=_cfdd .newPdfAnnotationPolyLineFromDict (_agb );if _aeff !=nil {return nil ,_aeff ;};_geee .PdfAnnotation =_egdf ;_egdf ._ffbe =_geee ;return _egdf ,nil ; case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_gdb ,_edd :=_cfdd .newPdfAnnotationHighlightFromDict (_agb );if _edd !=nil {return nil ,_edd ;};_gdb .PdfAnnotation =_egdf ;_egdf ._ffbe =_gdb ;return _egdf ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_dde ,_dbgg :=_cfdd .newPdfAnnotationUnderlineFromDict (_agb ); if _dbgg !=nil {return nil ,_dbgg ;};_dde .PdfAnnotation =_egdf ;_egdf ._ffbe =_dde ;return _egdf ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_fdfd ,_dge :=_cfdd .newPdfAnnotationSquigglyFromDict (_agb );if _dge !=nil {return nil ,_dge ; };_fdfd .PdfAnnotation =_egdf ;_egdf ._ffbe =_fdfd ;return _egdf ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_fda ,_fdb :=_cfdd .newPdfAnnotationStrikeOut (_agb );if _fdb !=nil {return nil ,_fdb ;};_fda .PdfAnnotation =_egdf ;_egdf ._ffbe =_fda ; return _egdf ,nil ;case "\u0043\u0061\u0072e\u0074":_cfgf ,_eaf :=_cfdd .newPdfAnnotationCaretFromDict (_agb );if _eaf !=nil {return nil ,_eaf ;};_cfgf .PdfAnnotation =_egdf ;_egdf ._ffbe =_cfgf ;return _egdf ,nil ;case "\u0053\u0074\u0061m\u0070":_dgaf ,_gbc :=_cfdd .newPdfAnnotationStampFromDict (_agb ); if _gbc !=nil {return nil ,_gbc ;};_dgaf .PdfAnnotation =_egdf ;_egdf ._ffbe =_dgaf ;return _egdf ,nil ;case "\u0049\u006e\u006b":_bebd ,_eadfg :=_cfdd .newPdfAnnotationInkFromDict (_agb );if _eadfg !=nil {return nil ,_eadfg ;};_bebd .PdfAnnotation =_egdf ; _egdf ._ffbe =_bebd ;return _egdf ,nil ;case "\u0050\u006f\u0070u\u0070":_bcd ,_efcc :=_cfdd .newPdfAnnotationPopupFromDict (_agb );if _efcc !=nil {return nil ,_efcc ;};_bcd .PdfAnnotation =_egdf ;_egdf ._ffbe =_bcd ;return _egdf ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_bae ,_dbge :=_cfdd .newPdfAnnotationFileAttachmentFromDict (_agb ); if _dbge !=nil {return nil ,_dbge ;};_bae .PdfAnnotation =_egdf ;_egdf ._ffbe =_bae ;return _egdf ,nil ;case "\u0053\u006f\u0075n\u0064":_dfeg ,_ddee :=_cfdd .newPdfAnnotationSoundFromDict (_agb );if _ddee !=nil {return nil ,_ddee ;};_dfeg .PdfAnnotation =_egdf ; _egdf ._ffbe =_dfeg ;return _egdf ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_ggeb ,_cfce :=_cfdd .newPdfAnnotationRichMediaFromDict (_agb );if _cfce !=nil {return nil ,_cfce ;};_ggeb .PdfAnnotation =_egdf ;_egdf ._ffbe =_ggeb ;return _egdf ,nil ; case "\u004d\u006f\u0076i\u0065":_aefd ,_cdecb :=_cfdd .newPdfAnnotationMovieFromDict (_agb );if _cdecb !=nil {return nil ,_cdecb ;};_aefd .PdfAnnotation =_egdf ;_egdf ._ffbe =_aefd ;return _egdf ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_efef ,_ccf :=_cfdd .newPdfAnnotationScreenFromDict (_agb ); if _ccf !=nil {return nil ,_ccf ;};_efef .PdfAnnotation =_egdf ;_egdf ._ffbe =_efef ;return _egdf ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_aaa ,_adab :=_cfdd .newPdfAnnotationWidgetFromDict (_agb );if _adab !=nil {return nil ,_adab ;};_aaa .PdfAnnotation =_egdf ; _egdf ._ffbe =_aaa ;return _egdf ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_cgeb ,_egff :=_cfdd .newPdfAnnotationPrinterMarkFromDict (_agb );if _egff !=nil {return nil ,_egff ;};_cgeb .PdfAnnotation =_egdf ;_egdf ._ffbe =_cgeb ; return _egdf ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_effd ,_bga :=_cfdd .newPdfAnnotationTrapNetFromDict (_agb );if _bga !=nil {return nil ,_bga ;};_effd .PdfAnnotation =_egdf ;_egdf ._ffbe =_effd ;return _egdf ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_fae ,_bca :=_cfdd .newPdfAnnotationWatermarkFromDict (_agb ); if _bca !=nil {return nil ,_bca ;};_fae .PdfAnnotation =_egdf ;_egdf ._ffbe =_fae ;return _egdf ,nil ;case "\u0033\u0044":_gfcb ,_fge :=_cfdd .newPdfAnnotation3DFromDict (_agb );if _fge !=nil {return nil ,_fge ;};_gfcb .PdfAnnotation =_egdf ;_egdf ._ffbe =_gfcb ; return _egdf ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_ggbf ,_feg :=_cfdd .newPdfAnnotationProjectionFromDict (_agb );if _feg !=nil {return nil ,_feg ;};_ggbf .PdfAnnotation =_egdf ;_egdf ._ffbe =_ggbf ;return _egdf ,nil ; case "\u0052\u0065\u0064\u0061\u0063\u0074":_bde ,_dfcd :=_cfdd .newPdfAnnotationRedactFromDict (_agb );if _dfcd !=nil {return nil ,_dfcd ;};_bde .PdfAnnotation =_egdf ;_egdf ._ffbe =_bde ;return _egdf ,nil ;};_dbg .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",*_ggbd ); return nil ,nil ;}; // 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 ;func (_bgea *PdfReader )newPdfAnnotationStampFromDict (_abgf *_eg .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_cegc :=PdfAnnotationStamp {};_eag ,_aea :=_bgea .newPdfAnnotationMarkupFromDict (_abgf );if _aea !=nil {return nil ,_aea ; };_cegc .PdfAnnotationMarkup =_eag ;_cegc .Name =_abgf .Get ("\u004e\u0061\u006d\u0065");return &_cegc ,nil ;}; // SetAlpha sets the alpha layer for the image. func (_egca *Image )SetAlpha (alpha []byte ){_egca ._fcec =alpha }; // ToPdfObject returns the PDF representation of the pattern. func (_ecbbf *PdfPattern )ToPdfObject ()_eg .PdfObject {_bebcg :=_ecbbf .getDict ();_bebcg .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_bebcg .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_eg .MakeInteger (_ecbbf .PatternType )); return _ecbbf ._cfaag ;}; // 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 *_eg .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_cegff *_eg .PdfIndirectObject ;}; // ToPdfObject returns the PDF representation of the colorspace. func (_caa *PdfColorspaceDeviceRGB )ToPdfObject ()_eg .PdfObject {return _eg .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");}; // ToPdfObject converts date to a PDF string object. func (_dfcebd *PdfDate )ToPdfObject ()_eg .PdfObject {_cabef :=_e .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",_dfcebd ._cggcf ,_dfcebd ._agfdbf ,_dfcebd ._ebfff ,_dfcebd ._bfabc ,_dfcebd ._edagg ,_dfcebd ._ggcbe ,_dfcebd ._facfb ,_dfcebd ._gaggg ,_dfcebd ._daabe ); return _eg .MakeString (_cabef );};func (_ggbe *pdfFontSimple )addEncoding ()error {var (_fdcdd string ;_dbgd map[_cec .CharCode ]_cec .GlyphName ;_adeafb _cec .SimpleEncoder ;);if _ggbe .Encoder ()!=nil {_dbcf ,_ffggd :=_ggbe .Encoder ().(_cec .SimpleEncoder ); if _ffggd &&_dbcf !=nil {_fdcdd =_dbcf .BaseName ();};};if _ggbe .Encoding !=nil {_ebcae ,_ddeba ,_ffad :=_ggbe .getFontEncoding ();if _ffad !=nil {_dbg .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",_ggbe ._cfab ,_ggbe ._fgbbb ,_ggbe .Encoding ,_ggbe .Encoding ,_ffad ); return _ffad ;};if _ebcae !=""{_fdcdd =_ebcae ;};_dbgd =_ddeba ;_adeafb ,_ffad =_cec .NewSimpleTextEncoder (_fdcdd ,_dbgd );if _ffad !=nil {return _ffad ;};};if _adeafb ==nil {_gfbca :=_ggbe ._eecfe ;if _gfbca !=nil {switch _ggbe ._fgbbb {case "\u0054\u0079\u0070e\u0031":if _gfbca .fontFile !=nil &&_gfbca .fontFile ._feffd !=nil {_dbg .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065"); _adeafb =_gfbca .fontFile ._feffd ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _gfbca ._bgcbd !=nil {_dbg .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_cgfac ,_dbbgb :=_gfbca ._bgcbd .MakeEncoder (); if _dbbgb ==nil {_adeafb =_cgfac ;};};};};};if _adeafb !=nil {if _dbgd !=nil {_dbg .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_dbgd ,_ggbe .baseFields ()); _adeafb =_cec .ApplyDifferences (_adeafb ,_dbgd );};_ggbe .SetEncoder (_adeafb );};return nil ;}; // BorderEffect represents a border effect (Table 167 p. 395). type BorderEffect int ; // 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 *_eg .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};func (_ffec *PdfReader )newPdfAnnotationInkFromDict (_dfdd *_eg .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_cee :=PdfAnnotationInk {}; _bfba ,_gffc :=_ffec .newPdfAnnotationMarkupFromDict (_dfdd );if _gffc !=nil {return nil ,_gffc ;};_cee .PdfAnnotationMarkup =_bfba ;_cee .InkList =_dfdd .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_cee .BS =_dfdd .Get ("\u0042\u0053");return &_cee ,nil ; }; // PdfActionSetOCGState represents a SetOCGState action. type PdfActionSetOCGState struct{*PdfAction ;State _eg .PdfObject ;PreserveRB _eg .PdfObject ;}; // ToPdfObject implements interface PdfModel. func (_fe *PdfActionTrans )ToPdfObject ()_eg .PdfObject {_fe .PdfAction .ToPdfObject ();_gfd :=_fe ._ege ;_gae :=_gfd .PdfObject .(*_eg .PdfObjectDictionary );_gae .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeTrans )));_gae .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_fe .Trans ); return _gfd ;}; // NewPdfFilespecFromObj creates and returns a new PdfFilespec object. func NewPdfFilespecFromObj (obj _eg .PdfObject )(*PdfFilespec ,error ){_afad :=&PdfFilespec {};var _bcdc *_eg .PdfObjectDictionary ;if _ccga ,_eggg :=_eg .GetIndirect (obj );_eggg {_afad ._fceg =_ccga ;_ffaa ,_aefa :=_eg .GetDict (_ccga .PdfObject );if !_aefa {_dbg .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 ,_eg .ErrTypeError ;};_bcdc =_ffaa ;}else if _dbgae ,_fdega :=_eg .GetDict (obj );_fdega {_afad ._fceg =_dbgae ;_bcdc =_dbgae ;}else {_dbg .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 ,_eg .ErrTypeError ;};if _bcdc ==nil {_dbg .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_bbd .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067"); };if _fgeff :=_bcdc .Get ("\u0054\u0079\u0070\u0065");_fgeff !=nil {_gdcb ,_ddge :=_fgeff .(*_eg .PdfObjectName );if !_ddge {_dbg .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",_fgeff ); }else {if *_gdcb !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_dbg .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",*_gdcb ); };};};if _aebec :=_bcdc .Get ("\u0046\u0053");_aebec !=nil {_afad .FS =_aebec ;};if _ggfb :=_bcdc .Get ("\u0046");_ggfb !=nil {_afad .F =_ggfb ;};if _dedd :=_bcdc .Get ("\u0055\u0046");_dedd !=nil {_afad .UF =_dedd ;};if _gbbcb :=_bcdc .Get ("\u0044\u004f\u0053"); _gbbcb !=nil {_afad .DOS =_gbbcb ;};if _dcbf :=_bcdc .Get ("\u004d\u0061\u0063");_dcbf !=nil {_afad .Mac =_dcbf ;};if _edgfd :=_bcdc .Get ("\u0055\u006e\u0069\u0078");_edgfd !=nil {_afad .Unix =_edgfd ;};if _bafd :=_bcdc .Get ("\u0049\u0044");_bafd !=nil {_afad .ID =_bafd ; };if _cabcee :=_bcdc .Get ("\u0056");_cabcee !=nil {_afad .V =_cabcee ;};if _edfef :=_bcdc .Get ("\u0045\u0046");_edfef !=nil {_afad .EF =_edfef ;};if _agfeb :=_bcdc .Get ("\u0052\u0046");_agfeb !=nil {_afad .RF =_agfeb ;};if _ecdc :=_bcdc .Get ("\u0044\u0065\u0073\u0063"); _ecdc !=nil {_afad .Desc =_ecdc ;};if _dggaa :=_bcdc .Get ("\u0043\u0049");_dggaa !=nil {_afad .CI =_dggaa ;};return _afad ,nil ;}; // NewPdfColorspaceSpecialPattern returns a new pattern color. func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};func _cafa (_bcfb _eg .PdfObject )(*PdfColorspaceDeviceN ,error ){_bgeg :=NewPdfColorspaceDeviceN ();if _gdfg ,_cefbf :=_bcfb .(*_eg .PdfIndirectObject ); _cefbf {_bgeg ._cedg =_gdfg ;};_bcfb =_eg .TraceToDirectObject (_bcfb );_bcgc ,_adda :=_bcfb .(*_eg .PdfObjectArray );if !_adda {return nil ,_e .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 _bcgc .Len ()!=4&&_bcgc .Len ()!=5{return nil ,_e .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");};_bcfb =_bcgc .Get (0); _baf ,_adda :=_bcfb .(*_eg .PdfObjectName );if !_adda {return nil ,_e .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 *_baf !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_e .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");};_bcfb =_bcgc .Get (1); _bcfb =_eg .TraceToDirectObject (_bcfb );_dbbfc ,_adda :=_bcfb .(*_eg .PdfObjectArray );if !_adda {return nil ,_e .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"); };_bgeg .ColorantNames =_dbbfc ;_bcfb =_bcgc .Get (2);_gefc ,_dcdcd :=NewPdfColorspaceFromPdfObject (_bcfb );if _dcdcd !=nil {return nil ,_dcdcd ;};_bgeg .AlternateSpace =_gefc ;_gfag ,_dcdcd :=_dgbga (_bcgc .Get (3));if _dcdcd !=nil {return nil ,_dcdcd ; };_bgeg .TintTransform =_gfag ;if _bcgc .Len ()==5{_adbc ,_bdebg :=_fegg (_bcgc .Get (4));if _bdebg !=nil {return nil ,_bdebg ;};_bgeg .Attributes =_adbc ;};return _bgeg ,nil ;}; // AddExtension adds the specified extension to the Extensions dictionary. // See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008). func (_cbfgc *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_bedba ,_eegcag :=_eg .GetDict (_cbfgc ._ebaaa .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_eegcag {_bedba =_eg .MakeDict ();_cbfgc ._ebaaa .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_bedba ); };_ffdeg ,_eegcag :=_eg .GetDict (_bedba .Get (_eg .PdfObjectName (extName )));if !_eegcag {_ffdeg =_eg .MakeDict ();_bedba .Set (_eg .PdfObjectName (extName ),_ffdeg );};if _eebf ,_ :=_eg .GetNameVal (_ffdeg .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e")); _eebf !=baseVersion {_ffdeg .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_eg .MakeName (baseVersion ));};if _beggf ,_ :=_eg .GetIntVal (_ffdeg .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c")); _beggf !=extLevel {_ffdeg .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_eg .MakeInteger (int64 (extLevel )));};}; // DecodeArray returns the component range values for the Indexed colorspace. func (_dcec *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_dcec .HiVal )};}; // PdfAnnotationTrapNet represents TrapNet annotations. // (Section 12.5.6.21). type PdfAnnotationTrapNet struct{*PdfAnnotation }; // GetCustomInfo returns a custom info value for the specified name. func (_cbde *PdfInfo )GetCustomInfo (name string )*_eg .PdfObjectString {var _gbeg *_eg .PdfObjectString ;if _cbde ._fbfgb ==nil {return _gbeg ;};if _eabg ,_dfaf :=_cbde ._fbfgb .Get (*_eg .MakeName (name )).(*_eg .PdfObjectString );_dfaf {_gbeg =_eabg ; };return _gbeg ;};var _ccad =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":{}}; // ToPdfObject implements interface PdfModel. func (_aeaf *PdfAnnotationUnderline )ToPdfObject ()_eg .PdfObject {_aeaf .PdfAnnotation .ToPdfObject ();_ccb :=_aeaf ._gag ;_dac :=_ccb .PdfObject .(*_eg .PdfObjectDictionary );_aeaf .PdfAnnotationMarkup .appendToPdfDictionary (_dac );_dac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee")); _dac .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_aeaf .QuadPoints );return _ccb ;}; // ToPdfObject implements interface PdfModel. func (_ffga *PdfAnnotationStamp )ToPdfObject ()_eg .PdfObject {_ffga .PdfAnnotation .ToPdfObject ();_afgc :=_ffga ._gag ;_cbea :=_afgc .PdfObject .(*_eg .PdfObjectDictionary );_ffga .PdfAnnotationMarkup .appendToPdfDictionary (_cbea );_cbea .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053\u0074\u0061m\u0070")); _cbea .SetIfNotNil ("\u004e\u0061\u006d\u0065",_ffga .Name );return _afgc ;}; // PdfFieldText represents a text field where user can enter text. type PdfFieldText struct{*PdfField ;DA *_eg .PdfObjectString ;Q *_eg .PdfObjectInteger ;DS *_eg .PdfObjectString ;RV _eg .PdfObject ;MaxLen *_eg .PdfObjectInteger ;}; // 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 ;_daaf *_eg .PdfIndirectObject ;}; // ToPdfObject implements interface PdfModel. func (_add *PdfActionSetOCGState )ToPdfObject ()_eg .PdfObject {_add .PdfAction .ToPdfObject ();_abg :=_add ._ege ;_egf :=_abg .PdfObject .(*_eg .PdfObjectDictionary );_egf .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeSetOCGState )));_egf .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_add .State ); _egf .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_add .PreserveRB );return _abg ;}; // XObjectType represents the type of an XObject. type XObjectType int ; // NewPdfAnnotationSound returns a new sound annotation. func NewPdfAnnotationSound ()*PdfAnnotationSound {_abd :=NewPdfAnnotation ();_aeg :=&PdfAnnotationSound {};_aeg .PdfAnnotation =_abd ;_aeg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_abd .SetContext (_aeg );return _aeg ;}; // GetPdfName returns the PDF name used to indicate the border style. // (Table 166 p. 395). func (_eeff *BorderStyle )GetPdfName ()string {switch *_eeff {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055"; };return "";}; // NewPdfAnnotationUnderline returns a new text underline annotation. func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_ddcg :=NewPdfAnnotation ();_cgcd :=&PdfAnnotationUnderline {};_cgcd .PdfAnnotation =_ddcg ;_cgcd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ddcg .SetContext (_cgcd );return _cgcd ;}; // GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the // annotations, otherwise returns the loaded list. func (_gddd *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _gddd ._egge !=nil {return _gddd ._egge ,nil ;};if _gddd .Annots ==nil {_gddd ._egge =[]*PdfAnnotation {};return nil ,nil ;};if _gddd ._fdfdec ==nil {_gddd ._egge =[]*PdfAnnotation {}; return nil ,nil ;};_eafff ,_bgfcf :=_gddd ._fdfdec .loadAnnotations (_gddd .Annots );if _bgfcf !=nil {return nil ,_bgfcf ;};if _eafff ==nil {_gddd ._egge =[]*PdfAnnotation {};};_gddd ._egge =_eafff ;return _gddd ._egge ,nil ;}; // NewPdfActionImportData returns a new "import data" action. func NewPdfActionImportData ()*PdfActionImportData {_ebg :=NewPdfAction ();_cab :=&PdfActionImportData {};_cab .PdfAction =_ebg ;_ebg .SetContext (_cab );return _cab ;}; // 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 (_fbgf *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dbgbg :=vals [0];if _dbgbg < 0.0||_dbgbg > 100.0{_dbg .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",_dbgbg ); return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dgca :=vals [1];_bfcd :=float64 (-100);_dcde :=float64 (100);if len (_fbgf .Range )> 1{_bfcd =_fbgf .Range [0];_dcde =_fbgf .Range [1];};if _dgca < _bfcd ||_dgca > _dcde {_dbg .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",_dgca ,_bfcd ,_dcde ); return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eebga :=vals [2];_ggaa :=float64 (-100);_ebgfb :=float64 (100);if len (_fbgf .Range )> 3{_ggaa =_fbgf .Range [2];_ebgfb =_fbgf .Range [3];};if _eebga < _ggaa ||_eebga > _ebgfb {_dbg .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",_eebga ,_ggaa ,_ebgfb ); return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dce :=NewPdfColorLab (_dbgbg ,_dgca ,_eebga );return _dce ,nil ;}; // NewPdfColorspaceICCBased returns a new ICCBased colorspace object. func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_cgcf :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029"); };_cgcf .N =N ;return _cgcf ,nil ;}; // SetFontByName sets the font specified by keyName to the given object. func (_adaa *PdfPageResources )SetFontByName (keyName _eg .PdfObjectName ,obj _eg .PdfObject )error {if _adaa .Font ==nil {_adaa .Font =_eg .MakeDict ();};_bdcec ,_ageca :=_eg .TraceToDirectObject (_adaa .Font ).(*_eg .PdfObjectDictionary );if !_ageca {_dbg .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",_eg .TraceToDirectObject (_adaa .Font )); return _eg .ErrTypeError ;};_bdcec .Set (keyName ,obj );return nil ;}; // 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 *_eg .PdfObjectInteger ;TilingType *_eg .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_eg .PdfObjectFloat ;YStep *_eg .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_eg .PdfObjectArray ;}; // Encoder returns the font's text encoder. func (_ffgeg *PdfFont )Encoder ()_cec .TextEncoder {_gggge :=_ffgeg .actualFont ();if _gggge ==nil {_dbg .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",_ffgeg ._gdcab ); return nil ;};return _gggge .Encoder ();};func (_feadd *LTV )validateSig (_ccdb *PdfSignature )error {if _ccdb ==nil ||_ccdb .Contents ==nil ||len (_ccdb .Contents .Bytes ())==0{return _e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_ccdb ); };return nil ;};func _aadg (_fffef *PdfPage )map[_eg .PdfObjectName ]_eg .PdfObject {_cacf :=make (map[_eg .PdfObjectName ]_eg .PdfObject );if _fffef .Resources ==nil {return _cacf ;};if _fffef .Resources .Font !=nil {if _fad ,_gbcf :=_eg .GetDict (_fffef .Resources .Font ); _gbcf {for _ ,_bedg :=range _fad .Keys (){_cacf [_bedg ]=_fad .Get (_bedg );};};};if _fffef .Resources .ExtGState !=nil {if _cdbe ,_cfdf :=_eg .GetDict (_fffef .Resources .ExtGState );_cfdf {for _ ,_fedcfd :=range _cdbe .Keys (){_cacf [_fedcfd ]=_cdbe .Get (_fedcfd ); };};};if _fffef .Resources .XObject !=nil {if _ccbc ,_bbdc :=_eg .GetDict (_fffef .Resources .XObject );_bbdc {for _ ,_ebag :=range _ccbc .Keys (){_cacf [_ebag ]=_ccbc .Get (_ebag );};};};if _fffef .Resources .Pattern !=nil {if _accd ,_facb :=_eg .GetDict (_fffef .Resources .Pattern ); _facb {for _ ,_affd :=range _accd .Keys (){_cacf [_affd ]=_accd .Get (_affd );};};};if _fffef .Resources .Shading !=nil {if _bbbd ,_gfadb :=_eg .GetDict (_fffef .Resources .Shading );_gfadb {for _ ,_fdgc :=range _bbbd .Keys (){_cacf [_fdgc ]=_bbbd .Get (_fdgc ); };};};if _fffef .Resources .ProcSet !=nil {if _efbf ,_fdae :=_eg .GetDict (_fffef .Resources .ProcSet );_fdae {for _ ,_begef :=range _efbf .Keys (){_cacf [_begef ]=_efbf .Get (_begef );};};};if _fffef .Resources .Properties !=nil {if _gcaf ,_dddf :=_eg .GetDict (_fffef .Resources .Properties ); _dddf {for _ ,_aafb :=range _gcaf .Keys (){_cacf [_aafb ]=_gcaf .Get (_aafb );};};};return _cacf ;}; // WatermarkImageOptions contains options for configuring the watermark process. type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ; ); // ToPdfObject returns the text field dictionary within an indirect object (container). func (_eedf *PdfFieldText )ToPdfObject ()_eg .PdfObject {_eedf .PdfField .ToPdfObject ();_gdbce :=_eedf ._afbe ;_fddg :=_gdbce .PdfObject .(*_eg .PdfObjectDictionary );_fddg .Set ("\u0046\u0054",_eg .MakeName ("\u0054\u0078"));if _eedf .DA !=nil {_fddg .Set ("\u0044\u0041",_eedf .DA ); };if _eedf .Q !=nil {_fddg .Set ("\u0051",_eedf .Q );};if _eedf .DS !=nil {_fddg .Set ("\u0044\u0053",_eedf .DS );};if _eedf .RV !=nil {_fddg .Set ("\u0052\u0056",_eedf .RV );};if _eedf .MaxLen !=nil {_fddg .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_eedf .MaxLen ); };return _gdbce ;}; // GetPdfInfo returns the PDF info dictionary. func (_fbgee *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_dbebd :=PdfInfo {};_dcafg ,_bfecaa :=_fbgee .GetTrailer ();if _bfecaa !=nil {return nil ,_bfecaa ;};var _ebda *_eg .PdfObjectDictionary ;_bfbcg :=_dcafg .Get ("\u0049\u006e\u0066\u006f");switch _bddaab :=_bfbcg .(type ){case *_eg .PdfObjectReference :_faeaa :=_bddaab ; _bfbcg ,_bfecaa =_fbgee .GetIndirectObjectByNumber (int (_faeaa .ObjectNumber ));_bfbcg =_eg .TraceToDirectObject (_bfbcg );if _bfecaa !=nil {return nil ,_bfecaa ;};_ebda ,_ =_bfbcg .(*_eg .PdfObjectDictionary );case *_eg .PdfObjectDictionary :_ebda =_bddaab ; };if _ebda ==nil {return nil ,_bbd .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};for _ ,_deeda :=range _ebda .Keys (){switch _deeda {case "\u0054\u0069\u0074l\u0065":_dbebd .Title ,_ =_eg .GetString (_ebda .Get ("\u0054\u0069\u0074l\u0065")); case "\u0041\u0075\u0074\u0068\u006f\u0072":_dbebd .Author ,_ =_eg .GetString (_ebda .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));case "\u0053u\u0062\u006a\u0065\u0063\u0074":_dbebd .Subject ,_ =_eg .GetString (_ebda .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074")); case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_dbebd .Keywords ,_ =_eg .GetString (_ebda .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));case "\u0043r\u0065\u0061\u0074\u006f\u0072":_dbebd .Creator ,_ =_eg .GetString (_ebda .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072")); case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_dbebd .Producer ,_ =_eg .GetString (_ebda .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));case "\u0054r\u0061\u0070\u0070\u0065\u0064":_dbebd .Trapped ,_ =_eg .GetName (_ebda .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064")); case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _adcda ,_bedbf :=_eg .GetString (_ebda .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));_bedbf &&_adcda .String ()!=""{_dbcaa ,_edgfg :=NewPdfDate (_adcda .String ()); if _edgfg !=nil {return nil ,_edgfg ;};_dbebd .CreationDate =&_dbcaa ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _abea ,_bcgab :=_eg .GetString (_ebda .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_bcgab &&_abea .String ()!=""{_cfgeb ,_bdfab :=NewPdfDate (_abea .String ()); if _bdfab !=nil {return nil ,_bdfab ;};_dbebd .ModifiedDate =&_cfgeb ;};default:_befcf ,_ :=_eg .GetString (_ebda .Get (_deeda ));if _dbebd ._fbfgb ==nil {_dbebd ._fbfgb =_eg .MakeDict ();};_dbebd ._fbfgb .Set (_deeda ,_befcf );};};return &_dbebd ,nil ; };func (_efca *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _efca ._eecfe };func (_fbfff *pdfFontSimple )baseFields ()*fontCommon {return &_fbfff .fontCommon }; // ToPdfObject returns a stream object. func (_dcccd *XObjectImage )ToPdfObject ()_eg .PdfObject {_fgdd :=_dcccd ._dcdb ;_dagec :=_fgdd .PdfObjectDictionary ;if _dcccd .Filter !=nil {_dagec =_dcccd .Filter .MakeStreamDict ();_fgdd .PdfObjectDictionary =_dagec ;};_dagec .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074")); _dagec .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0049\u006d\u0061g\u0065"));_dagec .Set ("\u0057\u0069\u0064t\u0068",_eg .MakeInteger (*(_dcccd .Width )));_dagec .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_eg .MakeInteger (*(_dcccd .Height ))); if _dcccd .BitsPerComponent !=nil {_dagec .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eg .MakeInteger (*(_dcccd .BitsPerComponent )));};if _dcccd .ColorSpace !=nil {_dagec .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_dcccd .ColorSpace .ToPdfObject ()); };_dagec .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_dcccd .Intent );_dagec .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_dcccd .ImageMask );_dagec .SetIfNotNil ("\u004d\u0061\u0073\u006b",_dcccd .Mask );_fgbcg :=_dagec .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ; if _dcccd .Decode ==nil &&_fgbcg {_dagec .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _dcccd .Decode !=nil {_dagec .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dcccd .Decode );};_dagec .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_dcccd .Interpolate ); _dagec .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_dcccd .Alternatives );_dagec .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_dcccd .SMask );_dagec .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_dcccd .SMaskInData ); _dagec .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_dcccd .Matte );_dagec .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dcccd .Name );_dagec .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_dcccd .StructParent );_dagec .SetIfNotNil ("\u0049\u0044",_dcccd .ID ); _dagec .SetIfNotNil ("\u004f\u0050\u0049",_dcccd .OPI );_dagec .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_dcccd .Metadata );_dagec .SetIfNotNil ("\u004f\u0043",_dcccd .OC );_dagec .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_dcccd .Stream )))); _fgdd .Stream =_dcccd .Stream ;return _fgdd ;}; // 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 (_fbcg *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _fbcg .RunesToCharcodeBytes ([]rune (str ));}; // ToPdfObject returns the PDF representation of the tiling pattern. func (_dafgd *PdfTilingPattern )ToPdfObject ()_eg .PdfObject {_dafgd .PdfPattern .ToPdfObject ();_fffcg :=_dafgd .getDict ();if _dafgd .PaintType !=nil {_fffcg .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_dafgd .PaintType );};if _dafgd .TilingType !=nil {_fffcg .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_dafgd .TilingType ); };if _dafgd .BBox !=nil {_fffcg .Set ("\u0042\u0042\u006f\u0078",_dafgd .BBox .ToPdfObject ());};if _dafgd .XStep !=nil {_fffcg .Set ("\u0058\u0053\u0074e\u0070",_dafgd .XStep );};if _dafgd .YStep !=nil {_fffcg .Set ("\u0059\u0053\u0074e\u0070",_dafgd .YStep ); };if _dafgd .Resources !=nil {_fffcg .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_dafgd .Resources .ToPdfObject ());};if _dafgd .Matrix !=nil {_fffcg .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_dafgd .Matrix );};return _dafgd ._cfaag ;}; // SetPdfSubject sets the Subject attribute of the output PDF. func SetPdfSubject (subject string ){_egbeg .Lock ();defer _egbeg .Unlock ();_gfcae =subject }; // PdfAnnotationPolygon represents Polygon annotations. // (Section 12.5.6.9). type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _eg .PdfObject ;LE _eg .PdfObject ;BS _eg .PdfObject ;IC _eg .PdfObject ;BE _eg .PdfObject ;IT _eg .PdfObject ;Measure _eg .PdfObject ;};func (_ddad *PdfReader )newPdfAnnotationRedactFromDict (_bfbag *_eg .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_fdeef :=PdfAnnotationRedact {}; _cgcg ,_effda :=_ddad .newPdfAnnotationMarkupFromDict (_bfbag );if _effda !=nil {return nil ,_effda ;};_fdeef .PdfAnnotationMarkup =_cgcg ;_fdeef .QuadPoints =_bfbag .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_fdeef .IC =_bfbag .Get ("\u0049\u0043"); _fdeef .RO =_bfbag .Get ("\u0052\u004f");_fdeef .OverlayText =_bfbag .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_fdeef .Repeat =_bfbag .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_fdeef .DA =_bfbag .Get ("\u0044\u0041");_fdeef .Q =_bfbag .Get ("\u0051"); return &_fdeef ,nil ;}; // PdfActionGoTo represents a GoTo action. type PdfActionGoTo struct{*PdfAction ;D _eg .PdfObject ;};type crossReference struct{Type int ; // Type 1 Offset int64 ;Generation int64 ; // Type 2 ObjectNumber int ;Index int ;}; // G returns the value of the green component of the color. func (_feec *PdfColorDeviceRGB )G ()float64 {return _feec [1]}; // GetNumComponents returns the number of color components (1 for CalGray). func (_eafd *PdfColorCalGray )GetNumComponents ()int {return 1};func (_bdafg *fontFile )parseASCIIPart (_ffbfg []byte )error {if len (_ffbfg )< 2||string (_ffbfg [:2])!="\u0025\u0021"{return _bbd .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"); };_egggc ,_faacg ,_fcega :=_eced (_ffbfg );if _fcega !=nil {return _fcega ;};_aeag :=_geec (_egggc );_bdafg ._dadg =_aeag ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _bdafg ._dadg ==""{_dbg .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 _faacg !=""{_edffc ,_cacdb :=_ddaab (_faacg );if _cacdb !=nil {return _cacdb ;};_defeg ,_cacdb :=_cec .NewCustomSimpleTextEncoder (_edffc ,nil );if _cacdb !=nil {_dbg .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",_cacdb ); return nil ;};_bdafg ._feffd =_defeg ;};return nil ;}; // NewPdfAnnotation3D returns a new 3d annotation. func NewPdfAnnotation3D ()*PdfAnnotation3D {_eba :=NewPdfAnnotation ();_fgd :=&PdfAnnotation3D {};_fgd .PdfAnnotation =_eba ;_eba .SetContext (_fgd );return _fgd ;};func _gbbed (_ccgda []byte )bool {if len (_ccgda )< 4{return true ;};for _cceec :=range _ccgda [:4]{_dccdg :=rune (_cceec ); if !_cg .Is (_cg .ASCII_Hex_Digit ,_dccdg )&&!_cg .IsSpace (_dccdg ){return true ;};};return false ;};func (_bgad *pdfCIDFontType0 )baseFields ()*fontCommon {return &_bgad .fontCommon }; // PdfAnnotationProjection represents Projection annotations. type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;}; // PdfAnnotationMarkup represents additional fields for mark-up annotations. // (Section 12.5.6.2 p. 399). type PdfAnnotationMarkup struct{T _eg .PdfObject ;Popup *PdfAnnotationPopup ;CA _eg .PdfObject ;RC _eg .PdfObject ;CreationDate _eg .PdfObject ;IRT _eg .PdfObject ;Subj _eg .PdfObject ;RT _eg .PdfObject ;IT _eg .PdfObject ;ExData _eg .PdfObject ;}; // Read reads an image and loads into a new Image object with an RGB // colormap and 8 bits per component. func (_gffda DefaultImageHandler )Read (reader _de .Reader )(*Image ,error ){_efce ,_ ,_efgag :=_ec .Decode (reader );if _efgag !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_efgag ); return nil ,_efgag ;};return _gffda .NewImageFromGoImage (_efce );}; // GetNumComponents returns the number of color components (3 for RGB). func (_ebbc *PdfColorDeviceRGB )GetNumComponents ()int {return 3};func (_fec fontCommon )fontFlags ()int {if _fec ._eecfe ==nil {return 0;};return _fec ._eecfe ._eaafa ;};func _edgbb ()string {_egbeg .Lock ();defer _egbeg .Unlock ();return _bbgff }; // ButtonType represents the subtype of a button field, can be one of: // - Checkbox (ButtonTypeCheckbox) // - PushButton (ButtonTypePushButton) // - RadioButton (ButtonTypeRadioButton) type ButtonType int ;func (_cefeg *PdfField )inherit (_cdcfa func (*PdfField )bool )(bool ,error ){_gbceg :=map[*PdfField ]bool {};_cbbfe :=false ;_bgbg :=_cefeg ;for _bgbg !=nil {if _ ,_eece :=_gbceg [_bgbg ];_eece {return false ,_bbd .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c"); };_cdfa :=_cdcfa (_bgbg );if _cdfa {_cbbfe =true ;break ;};_gbceg [_bgbg ]=true ;_bgbg =_bgbg .Parent ;};return _cbbfe ,nil ;}; // DecodeArray returns the range of color component values in DeviceCMYK colorspace. func (_fcfec *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};}; // ToPdfObject converts the PdfFont object to its PDF representation. func (_ecea *PdfFont )ToPdfObject ()_eg .PdfObject {if _ecea ._gdcab ==nil {_dbg .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 _eg .MakeNull (); };return _ecea ._gdcab .ToPdfObject ();}; // ToPdfObject implements interface PdfModel. func (_gfef *PdfAnnotationWatermark )ToPdfObject ()_eg .PdfObject {_gfef .PdfAnnotation .ToPdfObject ();_cfe :=_gfef ._gag ;_acbe :=_cfe .PdfObject .(*_eg .PdfObjectDictionary );_acbe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k")); _acbe .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_gfef .FixedPrint );return _cfe ;}; // DefaultImageHandler is the default implementation of the ImageHandler using the standard go library. type DefaultImageHandler struct{}; // L returns the value of the L component of the color. func (_cbge *PdfColorLab )L ()float64 {return _cbge [0]}; // Encoder returns the font's text encoder. func (_eeffb pdfFontType3 )Encoder ()_cec .TextEncoder {return _eeffb ._daeg }; // PdfAnnotationWatermark represents Watermark annotations. // (Section 12.5.6.22). type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _eg .PdfObject ;}; // Evaluate runs the function on the passed in slice and returns the results. func (_cfdea *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_dbg .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };_bccdc :=[]float64 {0.0};if _cfdea .C0 !=nil {_bccdc =_cfdea .C0 ;};_cgbeg :=[]float64 {1.0};if _cfdea .C1 !=nil {_cgbeg =_cfdea .C1 ;};var _eadff []float64 ;for _dcfb :=0;_dcfb < len (_bccdc );_dcfb ++{_dcgc :=_bccdc [_dcfb ]+_bc .Pow (x [0],_cfdea .N )*(_cgbeg [_dcfb ]-_bccdc [_dcfb ]); _eadff =append (_eadff ,_dcgc );};return _eadff ,nil ;};func _dgbga (_ceac _eg .PdfObject )(PdfFunction ,error ){_ceac =_eg .ResolveReference (_ceac );if _cfabg ,_bbdbg :=_ceac .(*_eg .PdfObjectStream );_bbdbg {_cbbdf :=_cfabg .PdfObjectDictionary ;_ecbd ,_gada :=_cbbdf .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_eg .PdfObjectInteger ); if !_gada {_dbg .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 ,_bbd .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 *_ecbd ==0{return _adecc (_cfabg );}else if *_ecbd ==4{return _cddff (_cfabg );}else {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _fcaa ,_fbfee :=_ceac .(*_eg .PdfIndirectObject ); _fbfee {_cbacd ,_gaega :=_fcaa .PdfObject .(*_eg .PdfObjectDictionary );if !_gaega {_dbg .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 ,_bbd .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");};_ggbfab ,_gaega :=_cbacd .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_eg .PdfObjectInteger ); if !_gaega {_dbg .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 ,_bbd .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 *_ggbfab ==2{return _dddfc (_fcaa );}else if *_ggbfab ==3{return _gdea (_fcaa );}else {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _dcab ,_fdecg :=_ceac .(*_eg .PdfObjectDictionary ); _fdecg {_facd ,_eegec :=_dcab .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_eg .PdfObjectInteger );if !_eegec {_dbg .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 ,_bbd .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 *_facd ==2{return _dddfc (_dcab );}else if *_facd ==3{return _gdea (_dcab ); }else {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_dbg .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_ceac ); return nil ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};func (_gaggf *PdfReader )loadDSS ()(*DSS ,error ){if _gaggf ._cdggc .GetCrypter ()!=nil &&!_gaggf ._cdggc .IsAuthenticated (){return nil ,_e .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"); };_bafg :=_gaggf ._efdg .Get ("\u0044\u0053\u0053");if _bafg ==nil {return nil ,nil ;};_acfdd ,_ :=_eg .GetIndirect (_bafg );_bafg =_eg .TraceToDirectObject (_bafg );switch _cfefg :=_bafg .(type ){case *_eg .PdfObjectNull :return nil ,nil ;case *_eg .PdfObjectDictionary :return _ebbee (_acfdd ,_cfefg ); };return nil ,_e .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_bafg );}; // DecodeArray returns the component range values for the Separation colorspace. func (_debf *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}}; // NewXObjectFormFromStream builds the Form XObject from a stream object. // TODO: Should this be exposed? Consider different access points. func NewXObjectFormFromStream (stream *_eg .PdfObjectStream )(*XObjectForm ,error ){_cbbc :=&XObjectForm {};_cbbc ._cdcaf =stream ;_agfgbc :=*(stream .PdfObjectDictionary );_bbggb ,_edgaa :=_eg .NewEncoderFromStream (stream );if _edgaa !=nil {return nil ,_edgaa ; };_cbbc .Filter =_bbggb ;if _cgdcg :=_agfgbc .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_cgdcg !=nil {_begba ,_bbdeb :=_cgdcg .(*_eg .PdfObjectName );if !_bbdeb {return nil ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };if *_begba !="\u0046\u006f\u0072\u006d"{_dbg .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_bbd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065"); };};if _gffg :=_agfgbc .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_gffg !=nil {_cbbc .FormType =_gffg ;};if _begbd :=_agfgbc .Get ("\u0042\u0042\u006f\u0078");_begbd !=nil {_cbbc .BBox =_begbd ;};if _efcg :=_agfgbc .Get ("\u004d\u0061\u0074\u0072\u0069\u0078"); _efcg !=nil {_cbbc .Matrix =_efcg ;};if _faecc :=_agfgbc .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_faecc !=nil {_faecc =_eg .TraceToDirectObject (_faecc );_gcddga ,_accdf :=_faecc .(*_eg .PdfObjectDictionary );if !_accdf {_dbg .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 ,_eg .ErrTypeError ;};_fbgdcd ,_caecc :=NewPdfPageResourcesFromDict (_gcddga );if _caecc !=nil {_dbg .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 ,_caecc ;};_cbbc .Resources =_fbgdcd ;_dbg .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_cbbc .Resources );};_cbbc .Group =_agfgbc .Get ("\u0047\u0072\u006fu\u0070"); _cbbc .Ref =_agfgbc .Get ("\u0052\u0065\u0066");_cbbc .MetaData =_agfgbc .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_cbbc .PieceInfo =_agfgbc .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_cbbc .LastModified =_agfgbc .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064"); _cbbc .StructParent =_agfgbc .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_cbbc .StructParents =_agfgbc .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_cbbc .OPI =_agfgbc .Get ("\u004f\u0050\u0049"); _cbbc .OC =_agfgbc .Get ("\u004f\u0043");_cbbc .Name =_agfgbc .Get ("\u004e\u0061\u006d\u0065");_cbbc .Stream =stream .Stream ;return _cbbc ,nil ;}; // PdfColorspaceCalGray represents CalGray color space. type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_gccdc *_eg .PdfIndirectObject ;}; // GetBorderWidth returns the border style's width. func (_acfc *PdfBorderStyle )GetBorderWidth ()float64 {if _acfc .W ==nil {return 1;};return *_acfc .W ;}; // ToPdfObject returns the PDF representation of the colorspace. func (_febb *PdfColorspaceSpecialPattern )ToPdfObject ()_eg .PdfObject {if _febb .UnderlyingCS ==nil {return _eg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_fdbb :=_eg .MakeArray (_eg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_fdbb .Append (_febb .UnderlyingCS .ToPdfObject ()); if _febb ._ecbb !=nil {_febb ._ecbb .PdfObject =_fdbb ;return _febb ._ecbb ;};return _fdbb ;};func (_bgcb *PdfReader )newPdfActionResetFormFromDict (_eca *_eg .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_eca .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_eca .Get ("\u0046\u006c\u0061g\u0073")},nil ; }; // Val returns the value of the color. func (_cfbf *PdfColorCalGray )Val ()float64 {return float64 (*_cfbf )}; // AddCustomInfo adds a custom info into document info dictionary. func (_cecbg *PdfInfo )AddCustomInfo (name string ,value string )error {if _cecbg ._fbfgb ==nil {_cecbg ._fbfgb =_eg .MakeDict ();};if _ ,_dcad :=_ccad [name ];_dcad {return _e .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 ); };_cecbg ._fbfgb .SetIfNotNil (*_eg .MakeName (name ),_eg .MakeString (value ));return nil ;}; // GetAction returns the PDF action for the annotation link. func (_afd *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _afd ._cecf !=nil {return _afd ._cecf ,nil ;};if _afd .A ==nil {return nil ,nil ;};if _afd ._fab ==nil {return nil ,nil ;};_ggb ,_bfb :=_afd ._fab .loadAction (_afd .A );if _bfb !=nil {return nil ,_bfb ; };_afd ._cecf =_ggb ;return _afd ._cecf ,nil ;}; // 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 _de .ReadSeeker )(*PdfReader ,error ){const _geega ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";_eeebc :=&PdfReader {_addac :rs ,_gadge :map[_eg .PdfObject ]struct{}{},_gced :_dbbge (),_bebe :false }; _dbec ,_beabg :=_fccgd ("\u0072");if _beabg !=nil {return nil ,_beabg ;};_beabg =_dd .Track (_dbec ,_geega );if _beabg !=nil {return nil ,_beabg ;};_eeebc ._ebcgb =_dbec ;_fdca ,_beabg :=_eg .NewParser (rs );if _beabg !=nil {return nil ,_beabg ;};_eeebc ._cdggc =_fdca ; _fabbe ,_beabg :=_eeebc .IsEncrypted ();if _beabg !=nil {return nil ,_beabg ;};if !_fabbe {_beabg =_eeebc .loadStructure ();if _beabg !=nil {return nil ,_beabg ;};};return _eeebc ,nil ;}; // NewPdfFilespec returns an initialized generic PDF filespec model. func NewPdfFilespec ()*PdfFilespec {_aedca :=&PdfFilespec {};_aedca ._fceg =_eg .MakeIndirectObject (_eg .MakeDict ());return _aedca ;}; // AddExtGState adds a graphics state to the XObject resources. func (_efeeef *PdfPage )AddExtGState (name _eg .PdfObjectName ,egs *_eg .PdfObjectDictionary )error {if _efeeef .Resources ==nil {_efeeef .Resources =NewPdfPageResources ();};if _efeeef .Resources .ExtGState ==nil {_efeeef .Resources .ExtGState =_eg .MakeDict (); };_fecd ,_fgde :=_eg .TraceToDirectObject (_efeeef .Resources .ExtGState ).(*_eg .PdfObjectDictionary );if !_fgde {_dbg .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",_eg .TraceToDirectObject (_efeeef .Resources .ExtGState )); return _bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fecd .Set (name ,egs );return nil ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_cdcgdc *PdfShadingType1 )ToPdfObject ()_eg .PdfObject {_cdcgdc .PdfShading .ToPdfObject ();_adfa ,_feef :=_cdcgdc .getShadingDict ();if _feef !=nil {_dbg .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 _cdcgdc .Domain !=nil {_adfa .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cdcgdc .Domain );};if _cdcgdc .Matrix !=nil {_adfa .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_cdcgdc .Matrix );};if _cdcgdc .Function !=nil {if len (_cdcgdc .Function )==1{_adfa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cdcgdc .Function [0].ToPdfObject ()); }else {_gbab :=_eg .MakeArray ();for _ ,_gcaaea :=range _cdcgdc .Function {_gbab .Append (_gcaaea .ToPdfObject ());};_adfa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gbab );};};return _cdcgdc ._beag ;};func (_fcfcc *PdfReader )buildPageList (_ccaf *_eg .PdfIndirectObject ,_feegc *_eg .PdfIndirectObject ,_ggebe map[_eg .PdfObject ]struct{})error {if _ccaf ==nil {return nil ; };if _ ,_bacc :=_ggebe [_ccaf ];_bacc {_dbg .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",_ccaf .ObjectNumber ); return nil ;};_ggebe [_ccaf ]=struct{}{};_ebccef ,_febea :=_ccaf .PdfObject .(*_eg .PdfObjectDictionary );if !_febea {return _bbd .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_bbfee ,_febea :=(*_ebccef ).Get ("\u0054\u0079\u0070\u0065").(*_eg .PdfObjectName ); if !_febea {if _ebccef .Get ("\u004b\u0069\u0064\u0073")==nil {return _bbd .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");};_dbg .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."); _bbfee =_eg .MakeName ("\u0050\u0061\u0067e\u0073");_ebccef .Set ("\u0054\u0079\u0070\u0065",_bbfee );};_dbg .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",*_bbfee ,_ccaf ); if *_bbfee =="\u0050\u0061\u0067\u0065"{_cffgf ,_babe :=_fcfcc .newPdfPageFromDict (_ebccef );if _babe !=nil {return _babe ;};_cffgf .setContainer (_ccaf );if _feegc !=nil {_ebccef .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_feegc );};_fcfcc ._dfff =append (_fcfcc ._dfff ,_ccaf ); _fcfcc .PageList =append (_fcfcc .PageList ,_cffgf );return nil ;};if *_bbfee !="\u0050\u0061\u0067e\u0073"{_dbg .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",_bbfee ); return _bbd .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 _feegc !=nil {_ebccef .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_feegc );};if !_fcfcc ._bebe {_daefd :=_fcfcc .traverseObjectData (_ccaf );if _daefd !=nil {return _daefd ;};};_fdfcd ,_acgb :=_fcfcc ._cdggc .Resolve (_ebccef .Get ("\u004b\u0069\u0064\u0073")); if _acgb !=nil {_dbg .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 _acgb ;};var _bdgfb *_eg .PdfObjectArray ; _bdgfb ,_febea =_fdfcd .(*_eg .PdfObjectArray );if !_febea {_geeab ,_agaec :=_fdfcd .(*_eg .PdfIndirectObject );if !_agaec {return _bbd .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");}; _bdgfb ,_febea =_geeab .PdfObject .(*_eg .PdfObjectArray );if !_febea {return _bbd .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");};};_dbg .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_bdgfb ); for _dgagf ,_gefea :=range _bdgfb .Elements (){_gaefg ,_geae :=_eg .GetIndirect (_gefea );if !_geae {_dbg .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",_gaefg ); return _bbd .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_bdgfb .Set (_dgagf ,_gaefg );_acgb =_fcfcc .buildPageList (_gaefg ,_ccaf ,_ggebe );if _acgb !=nil {return _acgb ; };};return 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 ;_ebad []byte ;_dgfa []uint32 ;_bafa *_eg .PdfObjectStream ;};func (_bfgd *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079"; }; // ToPdfObject returns colorspace in a PDF object format [name stream] func (_dcgba *PdfColorspaceICCBased )ToPdfObject ()_eg .PdfObject {_fabc :=&_eg .PdfObjectArray {};_fabc .Append (_eg .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _ddfc *_eg .PdfObjectStream ;if _dcgba ._efdb !=nil {_ddfc =_dcgba ._efdb ; }else {_ddfc =&_eg .PdfObjectStream {};};_ggeaf :=_eg .MakeDict ();_ggeaf .Set ("\u004e",_eg .MakeInteger (int64 (_dcgba .N )));if _dcgba .Alternate !=nil {_ggeaf .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_dcgba .Alternate .ToPdfObject ());}; if _dcgba .Metadata !=nil {_ggeaf .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_dcgba .Metadata );};if _dcgba .Range !=nil {var _deed []_eg .PdfObject ;for _ ,_cfaa :=range _dcgba .Range {_deed =append (_deed ,_eg .MakeFloat (_cfaa ));};_ggeaf .Set ("\u0052\u0061\u006eg\u0065",_eg .MakeArray (_deed ...)); };_ggeaf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_dcgba .Data ))));_ddfc .Stream =_dcgba .Data ;_ddfc .PdfObjectDictionary =_ggeaf ;_fabc .Append (_ddfc );if _dcgba ._acga !=nil {_dcgba ._acga .PdfObject =_fabc ;return _dcgba ._acga ; };return _fabc ;}; // SetFlag sets the flag for the field. func (_cadc *PdfField )SetFlag (flag FieldFlag ){_cadc .Ff =_eg .MakeInteger (int64 (flag ))}; // PdfAnnotationFreeText represents FreeText annotations. // (Section 12.5.6.6). type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _eg .PdfObject ;Q _eg .PdfObject ;RC _eg .PdfObject ;DS _eg .PdfObject ;CL _eg .PdfObject ;IT _eg .PdfObject ;BE _eg .PdfObject ;RD _eg .PdfObject ;BS _eg .PdfObject ;LE _eg .PdfObject ; }; // PdfActionResetForm represents a resetForm action. type PdfActionResetForm struct{*PdfAction ;Fields _eg .PdfObject ;Flags _eg .PdfObject ;}; // GetCharMetrics returns the char metrics for character code `code`. func (_caae pdfFontType3 )GetCharMetrics (code _cec .CharCode )(_ab .CharMetrics ,bool ){if _eege ,_effce :=_caae ._cgcec [code ];_effce {return _ab .CharMetrics {Wx :_eege },true ;};if _ab .IsStdFont (_ab .StdFontName (_caae ._cfab )){return _ab .CharMetrics {Wx :250},true ; };return _ab .CharMetrics {},false ;}; // EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document. type EncryptionAlgorithm int ; // StdFontName represents name of a standard font. type StdFontName =_ab .StdFontName ; // PdfOutline represents a PDF outline dictionary (Table 152 - p. 376). type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_ffbba *_eg .PdfIndirectObject ;}; // SetPdfTitle sets the Title attribute of the output PDF. func SetPdfTitle (title string ){_egbeg .Lock ();defer _egbeg .Unlock ();_dgage =title };func (_ddgga *PdfSignature )extractChainFromPKCS7 ()([]*_ce .Certificate ,error ){_debcc ,_fdcdc :=_gb .Parse (_ddgga .Contents .Bytes ());if _fdcdc !=nil {return nil ,_fdcdc ; };return _debcc .Certificates ,nil ;}; // 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 (_aaecf *PdfReader )CheckAccessRights (password []byte )(bool ,_fc .Permissions ,error ){return _aaecf ._cdggc .CheckAccessRights (password );}; // SetAnnotations sets the annotations list. func (_egaac *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_egaac ._egge =annotations };func _caefc ()string {_egbeg .Lock ();defer _egbeg .Unlock ();return _dgage }; // PdfAnnotationSquare represents Square annotations. // (Section 12.5.6.8). type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _eg .PdfObject ;IC _eg .PdfObject ;BE _eg .PdfObject ;RD _eg .PdfObject ;}; // 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 _de .ReadSeeker )(*PdfFont ,error ){const _dgaed =_cec .CharCode (32);const _eddeed =_cec .CharCode (255);_febbd ,_beddf :=_aa .ReadAll (r );if _beddf !=nil {_dbg .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",_beddf ); return nil ,_beddf ;};_gcaae ,_beddf :=_ab .TtfParse (_cbd .NewReader (_febbd ));if _beddf !=nil {_dbg .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",_beddf ); return nil ,_beddf ;};_bbdfe :=&pdfFontSimple {_baga :make (map[_cec .CharCode ]float64 ),fontCommon :fontCommon {_fgbbb :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_bbdfe ._gccbc =_cec .NewWinAnsiEncoder ();_bbdfe ._cfab =_gcaae .PostScriptName ; _bbdfe .FirstChar =_eg .MakeInteger (int64 (_dgaed ));_bbdfe .LastChar =_eg .MakeInteger (int64 (_eddeed ));_acgde :=1000.0/float64 (_gcaae .UnitsPerEm );if len (_gcaae .Widths )<=0{return nil ,_bbd .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"); };_debe :=_acgde *float64 (_gcaae .Widths [0]);_dcefg :=make ([]float64 ,0,_eddeed -_dgaed +1);for _bdbge :=_dgaed ;_bdbge <=_eddeed ;_bdbge ++{_fade ,_fecgg :=_bbdfe .Encoder ().CharcodeToRune (_bdbge );if !_fecgg {_dbg .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_bdbge ); _dcefg =append (_dcefg ,_debe );continue ;};_cfdfc ,_eebgb :=_gcaae .Chars [_fade ];if !_eebgb {_dbg .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_dcefg =append (_dcefg ,_debe );continue ; };_cbec :=_acgde *float64 (_gcaae .Widths [_cfdfc ]);_dcefg =append (_dcefg ,_cbec );};_bbdfe .Widths =_eg .MakeIndirectObject (_eg .MakeArrayFromFloats (_dcefg ));if len (_dcefg )< int (_eddeed -_dgaed +1){_dbg .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 (_dcefg ),255-32+1); return nil ,_eg .ErrRangeError ;};for _ddgcd :=_dgaed ;_ddgcd <=_eddeed ;_ddgcd ++{_bbdfe ._baga [_ddgcd ]=_dcefg [_ddgcd -_dgaed ];};_bbdfe .Encoding =_eg .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_cegcf :=&PdfFontDescriptor {}; _cegcf .FontName =_eg .MakeName (_gcaae .PostScriptName );_cegcf .Ascent =_eg .MakeFloat (_acgde *float64 (_gcaae .TypoAscender ));_cegcf .Descent =_eg .MakeFloat (_acgde *float64 (_gcaae .TypoDescender ));_cegcf .CapHeight =_eg .MakeFloat (_acgde *float64 (_gcaae .CapHeight )); _cegcf .FontBBox =_eg .MakeArrayFromFloats ([]float64 {_acgde *float64 (_gcaae .Xmin ),_acgde *float64 (_gcaae .Ymin ),_acgde *float64 (_gcaae .Xmax ),_acgde *float64 (_gcaae .Ymax )});_cegcf .ItalicAngle =_eg .MakeFloat (_gcaae .ItalicAngle );_cegcf .MissingWidth =_eg .MakeFloat (_acgde *float64 (_gcaae .Widths [0])); _ceaec ,_beddf :=_eg .MakeStream (_febbd ,_eg .NewFlateEncoder ());if _beddf !=nil {_dbg .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",_beddf ); return nil ,_beddf ;};_ceaec .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_eg .MakeInteger (int64 (len (_febbd ))));_cegcf .FontFile2 =_ceaec ;if _gcaae .Bold {_cegcf .StemV =_eg .MakeInteger (120);}else {_cegcf .StemV =_eg .MakeInteger (70); };_eedb :=_bacd ;if _gcaae .IsFixedPitch {_eedb |=_defe ;};if _gcaae .ItalicAngle !=0{_eedb |=_fedcc ;};_cegcf .Flags =_eg .MakeInteger (int64 (_eedb ));_bbdfe ._eecfe =_cegcf ;_fdef :=&PdfFont {_gdcab :_bbdfe };return _fdef ,nil ;}; // NewBorderStyle returns an initialized PdfBorderStyle. func NewBorderStyle ()*PdfBorderStyle {_afcg :=&PdfBorderStyle {};return _afcg };func (_ddde *PdfReader )newPdfAnnotationPrinterMarkFromDict (_gcd *_eg .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_gfbd :=PdfAnnotationPrinterMark {};_gfbd .MN =_gcd .Get ("\u004d\u004e"); return &_gfbd ,nil ;}; // PdfAnnotationLink represents Link annotations. // (Section 12.5.6.5 p. 403). type PdfAnnotationLink struct{*PdfAnnotation ;A _eg .PdfObject ;Dest _eg .PdfObject ;H _eg .PdfObject ;PA _eg .PdfObject ;QuadPoints _eg .PdfObject ;BS _eg .PdfObject ;_cecf *PdfAction ;_fab *PdfReader ;}; // PdfAnnotationWidget represents Widget annotations. // Note: Widget annotations are used to display form fields. // (Section 12.5.6.19). type PdfAnnotationWidget struct{*PdfAnnotation ;H _eg .PdfObject ;MK _eg .PdfObject ;A _eg .PdfObject ;AA _eg .PdfObject ;BS _eg .PdfObject ;Parent _eg .PdfObject ;_cdda *PdfField ;_gde bool ;}; // ToGoTime returns the date in time.Time format. func (_dbac PdfDate )ToGoTime ()_ee .Time {_eafba :=int (_dbac ._gaggg *60*60+_dbac ._daabe *60);switch _dbac ._facfb {case '-':_eafba =-_eafba ;case 'Z':_eafba =0;};_bbgcfa :=_e .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_dbac ._facfb ,_dbac ._gaggg ,_dbac ._daabe ); _gcadc :=_ee .FixedZone (_bbgcfa ,_eafba );return _ee .Date (int (_dbac ._cggcf ),_ee .Month (_dbac ._agfdbf ),int (_dbac ._ebfff ),int (_dbac ._bfabc ),int (_dbac ._edagg ),int (_dbac ._ggcbe ),0,_gcadc );}; // 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 (_cbgg *Image )SetSamples (samples []uint32 ){if _cbgg .BitsPerComponent < 8{samples =_cbgg .samplesAddPadding (samples );};_efga :=_ccg .ResampleUint32 (samples ,int (_cbgg .BitsPerComponent ),8);_edfb :=make ([]byte ,len (_efga ));for _bdabg ,_cegfa :=range _efga {_edfb [_bdabg ]=byte (_cegfa ); };_cbgg .Data =_edfb ;}; // ToPdfObject returns the PDF representation of the DSS dictionary. func (_ddgbb *DSS )ToPdfObject ()_eg .PdfObject {_fdbg :=_ddgbb ._gded .PdfObject .(*_eg .PdfObjectDictionary );_fdbg .Clear ();_cabce :=_eg .MakeDict ();for _ffbdc ,_gbed :=range _ddgbb .VRI {_cabce .Set (*_eg .MakeName (_ffbdc ),_gbed .ToPdfObject ()); };_fdbg .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_bffd (_ddgbb .Certs ));_fdbg .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_bffd (_ddgbb .OCSPs ));_fdbg .SetIfNotNil ("\u0043\u0052\u004c\u0073",_bffd (_ddgbb .CRLs ));_fdbg .Set ("\u0056\u0052\u0049",_cabce ); return _ddgbb ._gded ;};func _fegb (_geefg *_eg .PdfObjectDictionary ,_agfd *fontCommon )(*pdfCIDFontType2 ,error ){if _agfd ._fgbbb !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_dbg .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",_agfd ); return nil ,_eg .ErrRangeError ;};_eacce :=_egdg (_agfd );_fgabe ,_dcdf :=_eg .GetDict (_geefg .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_dcdf {_dbg .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",_agfd ); return nil ,ErrRequiredAttributeMissing ;};_eacce .CIDSystemInfo =_fgabe ;_eacce .DW =_geefg .Get ("\u0044\u0057");_eacce .W =_geefg .Get ("\u0057");_eacce .DW2 =_geefg .Get ("\u0044\u0057\u0032");_eacce .W2 =_geefg .Get ("\u0057\u0032");_eacce .CIDToGIDMap =_geefg .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070"); _eacce ._cbgd =1000.0;if _dgefbc ,_fbcga :=_eg .GetNumberAsFloat (_eacce .DW );_fbcga ==nil {_eacce ._cbgd =_dgefbc ;};_cded ,_abafa :=_dbae (_eacce .W );if _abafa !=nil {return nil ,_abafa ;};if _cded ==nil {_cded =map[_cec .CharCode ]float64 {};};_eacce ._egdc =_cded ; return _eacce ,nil ;}; // AcroFormRepairOptions contains options for rebuilding the AcroForm. type AcroFormRepairOptions struct{};func (_baafe *Image )resampleLowBits (_cbba []uint32 ){_fgfg :=_ff .BytesPerLine (int (_baafe .Width ),int (_baafe .BitsPerComponent ),_baafe .ColorComponents );_ggecc :=make ([]byte ,_baafe .ColorComponents *_fgfg *int (_baafe .Height )); _efbee :=int (_baafe .BitsPerComponent )*_baafe .ColorComponents *int (_baafe .Width );_fgbea :=uint8 (8);var (_ffbcc ,_bdae int ;_fdbad uint32 ;);for _cfgbd :=0;_cfgbd < int (_baafe .Height );_cfgbd ++{_bdae =_cfgbd *_fgfg ;for _efdbe :=0;_efdbe < _efbee ; _efdbe ++{_fdbad =_cbba [_ffbcc ];_fgbea -=uint8 (_baafe .BitsPerComponent );_ggecc [_bdae ]|=byte (_fdbad )<<_fgbea ;if _fgbea ==0{_fgbea =8;_bdae ++;};_ffbcc ++;};};_baafe .Data =_ggecc ;}; // SetPdfKeywords sets the Keywords attribute of the output PDF. func SetPdfKeywords (keywords string ){_egbeg .Lock ();defer _egbeg .Unlock ();_bbgff =keywords }; // 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 (_gbbd *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _bbd .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"); };_cbeaa :=field .V ;if _cbeaa ==nil {return _bbd .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");};_ceb :=pageNum -1; if _ceb < 0||_ceb > len (_gbbd ._bfce )-1{return _e .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_adea :=_gbbd .Reader .PageList [_ceb ];field .P =_adea .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_eg .MakeString (_e .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum )); };_adea .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _gbbd ._ggcc ==_gbbd ._acdg .AcroForm {_gbbd ._ggcc =_gbbd .Reader .AcroForm ;};_ccggg :=_gbbd ._ggcc ;if _ccggg ==nil {_ccggg =NewPdfAcroForm ();};_ccggg .SigFlags =_eg .MakeInteger (3); _bgef :=append (_ccggg .AllFields (),field .PdfField );_ccggg .Fields =&_bgef ;_gbbd .ReplaceAcroForm (_ccggg );_gbbd .UpdatePage (_adea );_gbbd ._bfce [_ceb ]=_adea ;return nil ;}; // ToInteger convert to an integer format. func (_fdfa *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_aged :=_bc .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_aged *_fdfa .C ()),uint32 (_aged *_fdfa .M ()),uint32 (_aged *_fdfa .Y ()),uint32 (_aged *_fdfa .K ())};}; // PdfDate represents a date, which is a PDF string of the form: // (D:YYYYMMDDHHmmSSOHH'mm) type PdfDate struct{_cggcf int64 ;_agfdbf int64 ;_ebfff int64 ;_bfabc int64 ;_edagg int64 ;_ggcbe int64 ;_facfb byte ;_gaggg int64 ;_daabe int64 ;};func (_cbbab *LTV )getCerts (_dbdaf []*_ce .Certificate )([][]byte ,error ){_dfegg :=make ([][]byte ,0,len (_dbdaf )); for _ ,_deae :=range _dbdaf {_dfegg =append (_dfegg ,_deae .Raw );};return _dfegg ,nil ;}; // 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 ; // ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object. func (_cgcge *PdfFontDescriptor )ToPdfObject ()_eg .PdfObject {_fffg :=_eg .MakeDict ();if _cgcge ._fcfbbf ==nil {_cgcge ._fcfbbf =&_eg .PdfIndirectObject {};};_cgcge ._fcfbbf .PdfObject =_fffg ;_fffg .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072")); if _cgcge .FontName !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_cgcge .FontName );};if _cgcge .FontFamily !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_cgcge .FontFamily );};if _cgcge .FontStretch !=nil {_fffg .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_cgcge .FontStretch ); };if _cgcge .FontWeight !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_cgcge .FontWeight );};if _cgcge .Flags !=nil {_fffg .Set ("\u0046\u006c\u0061g\u0073",_cgcge .Flags );};if _cgcge .FontBBox !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_cgcge .FontBBox ); };if _cgcge .ItalicAngle !=nil {_fffg .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_cgcge .ItalicAngle );};if _cgcge .Ascent !=nil {_fffg .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_cgcge .Ascent );};if _cgcge .Descent !=nil {_fffg .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_cgcge .Descent ); };if _cgcge .Leading !=nil {_fffg .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_cgcge .Leading );};if _cgcge .CapHeight !=nil {_fffg .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_cgcge .CapHeight );};if _cgcge .XHeight !=nil {_fffg .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_cgcge .XHeight ); };if _cgcge .StemV !=nil {_fffg .Set ("\u0053\u0074\u0065m\u0056",_cgcge .StemV );};if _cgcge .StemH !=nil {_fffg .Set ("\u0053\u0074\u0065m\u0048",_cgcge .StemH );};if _cgcge .AvgWidth !=nil {_fffg .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_cgcge .AvgWidth ); };if _cgcge .MaxWidth !=nil {_fffg .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_cgcge .MaxWidth );};if _cgcge .MissingWidth !=nil {_fffg .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_cgcge .MissingWidth );};if _cgcge .FontFile !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_cgcge .FontFile ); };if _cgcge .FontFile2 !=nil {_fffg .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_cgcge .FontFile2 );};if _cgcge .FontFile3 !=nil {_fffg .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_cgcge .FontFile3 );};if _cgcge .CharSet !=nil {_fffg .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_cgcge .CharSet ); };if _cgcge .Style !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_cgcge .FontName );};if _cgcge .Lang !=nil {_fffg .Set ("\u004c\u0061\u006e\u0067",_cgcge .Lang );};if _cgcge .FD !=nil {_fffg .Set ("\u0046\u0044",_cgcge .FD );}; if _cgcge .CIDSet !=nil {_fffg .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_cgcge .CIDSet );};return _cgcge ._fcfbbf ;};func _faae (_gagcc *_eg .PdfObjectDictionary ,_gefb *fontCommon )(*pdfFontType0 ,error ){_eeba ,_agdg :=_eg .GetArray (_gagcc .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073")); if !_agdg {_dbg .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",_gefb ); return nil ,_eg .ErrRangeError ;};if _eeba .Len ()!=1{_dbg .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",_eeba .Len ());return nil ,_eg .ErrRangeError ; };_deddc ,_dccbg :=_cdac (_eeba .Get (0),false );if _dccbg !=nil {_dbg .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",_dccbg ,_gefb ); return nil ,_dccbg ;};_bcbgd :=_gcbdb (_gefb );_bcbgd .DescendantFont =_deddc ;_bcadfg ,_agdg :=_eg .GetNameVal (_gagcc .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _agdg {if _bcadfg =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_bcadfg =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_bcbgd ._eceba =_cec .NewIdentityTextEncoder (_bcadfg ); }else if _aff .IsPredefinedCMap (_bcadfg ){_bcbgd ._adad ,_dccbg =_aff .LoadPredefinedCMap (_bcadfg );if _dccbg !=nil {_dbg .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",_bcadfg ,_dccbg ); };}else {_dbg .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_bcadfg );};};if _edbee :=_deddc .baseFields ()._fffc ;_edbee !=nil {if _agae :=_edbee .Name ();_agae =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_agae =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_agae =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_agae =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_bcbgd ._eceba =_cec .NewCMapEncoder (_bcadfg ,_bcbgd ._adad ,_edbee ); };};return _bcbgd ,nil ;}; // AddFont adds a font dictionary to the Font resources. func (_cebfd *PdfPage )AddFont (name _eg .PdfObjectName ,font _eg .PdfObject )error {if _cebfd .Resources ==nil {_cebfd .Resources =NewPdfPageResources ();};if _cebfd .Resources .Font ==nil {_cebfd .Resources .Font =_eg .MakeDict ();};_beaf ,_afbbe :=_eg .TraceToDirectObject (_cebfd .Resources .Font ).(*_eg .PdfObjectDictionary ); if !_afbbe {_dbg .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",_eg .TraceToDirectObject (_cebfd .Resources .Font )); return _bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_beaf .Set (name ,font );return nil ;}; // String returns the name of the colorspace (DeviceN). func (_gfdf *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"}; // GetContentStreams returns the content stream as an array of strings. func (_fcbd *PdfPage )GetContentStreams ()([]string ,error ){_ddgfb :=_fcbd .GetContentStreamObjs ();var _adeac []string ;for _ ,_eccea :=range _ddgfb {_fgbbg ,_ddegc :=_cafedf (_eccea );if _ddegc !=nil {return nil ,_ddegc ;};_adeac =append (_adeac ,_fgbbg ); };return _adeac ,nil ;}; // GetAllContentStreams gets all the content streams for a page as one string. func (_efeab *PdfPage )GetAllContentStreams ()(string ,error ){_bdfa ,_eeffg :=_efeab .GetContentStreams ();if _eeffg !=nil {return "",_eeffg ;};return _dc .Join (_bdfa ,"\u0020"),nil ;}; // ImageToRGB convert 1-component grayscale data to 3-component RGB. func (_efbfc *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_bbd .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"); };_acad ,_cfbd :=_ff .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fcec ,img ._aaeac );if _cfbd !=nil {return img ,_cfbd ;};_bagf ,_cfbd :=_ff .NRGBAConverter .Convert (_acad );if _cfbd !=nil {return img ,_cfbd ; };_dbcd :=_egbde (_bagf .Base ());_dbg .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_dbg .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_dbg .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_dbcd .Data ); _dbg .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_dbcd );return _dbcd ,nil ;};func _gbeab (_dedgb _eg .PdfObject )(*fontFile ,error ){_dbg .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",_dedgb ); _gcbda :=&fontFile {};_dedgb =_eg .TraceToDirectObject (_dedgb );_edaa ,_egee :=_dedgb .(*_eg .PdfObjectStream );if !_egee {_dbg .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",_dedgb ); return nil ,_eg .ErrTypeError ;};_dgfca :=_edaa .PdfObjectDictionary ;_ebaf ,_cfbg :=_eg .DecodeStream (_edaa );if _cfbg !=nil {return nil ,_cfbg ;};_cgbfc ,_egee :=_eg .GetNameVal (_dgfca .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_egee {_gcbda ._gecf =_cgbfc ; if _cgbfc =="\u0054\u0079\u0070\u0065\u0031\u0043"{_dbg .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 ;};};_dcfgg ,_ :=_eg .GetIntVal (_dgfca .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_edaca ,_ :=_eg .GetIntVal (_dgfca .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _dcfgg > len (_ebaf ){_dcfgg =len (_ebaf ); };if _dcfgg +_edaca > len (_ebaf ){_edaca =len (_ebaf )-_dcfgg ;};_adebc :=_ebaf [:_dcfgg ];var _addcd []byte ;if _edaca > 0{_addcd =_ebaf [_dcfgg :_dcfgg +_edaca ];};if _dcfgg > 0&&_edaca > 0{_dfddb :=_gcbda .loadFromSegments (_adebc ,_addcd );if _dfddb !=nil {return nil ,_dfddb ; };};return _gcbda ,nil ;};func (_edbce *DSS )addOCSPs (_abfc [][]byte )([]*_eg .PdfObjectStream ,error ){return _edbce .add (&_edbce .OCSPs ,_edbce ._geeeb ,_abfc );}; // NewPdfColorspaceCalRGB returns a new CalRGB colorspace object. func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_dcace :=&PdfColorspaceCalRGB {};_dcace .BlackPoint =[]float64 {0.0,0.0,0.0};_dcace .Gamma =[]float64 {1.0,1.0,1.0};_dcace .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _dcace ;};func (_ebgc *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"}; // ToPdfObject implements interface PdfModel. func (_ceg *PdfActionHide )ToPdfObject ()_eg .PdfObject {_ceg .PdfAction .ToPdfObject ();_geg :=_ceg ._ege ;_dbf :=_geg .PdfObject .(*_eg .PdfObjectDictionary );_dbf .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeHide )));_dbf .SetIfNotNil ("\u0054",_ceg .T ); _dbf .SetIfNotNil ("\u0048",_ceg .H );return _geg ;}; // PdfAnnotation represents an annotation in PDF (section 12.5 p. 389). type PdfAnnotation struct{_ffbe PdfModel ;Rect _eg .PdfObject ;Contents _eg .PdfObject ;P _eg .PdfObject ;NM _eg .PdfObject ;M _eg .PdfObject ;F _eg .PdfObject ;AP _eg .PdfObject ;AS _eg .PdfObject ;Border _eg .PdfObject ;C _eg .PdfObject ;StructParent _eg .PdfObject ; OC _eg .PdfObject ;_gag *_eg .PdfIndirectObject ;}; // GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton // for a button field. func (_cbdee *PdfField )GetContext ()PdfModel {return _cbdee ._ceag };func (_bcfdb *PdfReader )newPdfSignatureFromIndirect (_aegfb *_eg .PdfIndirectObject )(*PdfSignature ,error ){_ccbf ,_ffcea :=_aegfb .PdfObject .(*_eg .PdfObjectDictionary );if !_ffcea {_dbg .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 _bcegbc ,_caafe :=_bcfdb ._gced .GetModelFromPrimitive (_aegfb ).(*PdfSignature );_caafe {return _bcegbc ,nil ;};_efda :=&PdfSignature {};_efda ._ffae =_aegfb ;_efda .Type ,_ =_eg .GetName (_ccbf .Get ("\u0054\u0079\u0070\u0065")); _efda .Filter ,_ffcea =_eg .GetName (_ccbf .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_ffcea {_dbg .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 ;};_efda .SubFilter ,_ =_eg .GetName (_ccbf .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_efda .Contents ,_ffcea =_eg .GetString (_ccbf .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_ffcea {_dbg .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 ;};_efda .Cert =_ccbf .Get ("\u0043\u0065\u0072\u0074");_efda .ByteRange ,_ =_eg .GetArray (_ccbf .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));_efda .Reference ,_ =_eg .GetArray (_ccbf .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e")); _efda .Changes ,_ =_eg .GetArray (_ccbf .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_efda .Name ,_ =_eg .GetString (_ccbf .Get ("\u004e\u0061\u006d\u0065"));_efda .M ,_ =_eg .GetString (_ccbf .Get ("\u004d"));_efda .Location ,_ =_eg .GetString (_ccbf .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e")); _efda .Reason ,_ =_eg .GetString (_ccbf .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_efda .ContactInfo ,_ =_eg .GetString (_ccbf .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_efda .R ,_ =_eg .GetInt (_ccbf .Get ("\u0052")); _efda .V ,_ =_eg .GetInt (_ccbf .Get ("\u0056"));_efda .PropBuild ,_ =_eg .GetDict (_ccbf .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_efda .PropAuthTime ,_ =_eg .GetInt (_ccbf .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065")); _efda .PropAuthType ,_ =_eg .GetName (_ccbf .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));return _efda ,nil ;}; // 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 []*_eg .PdfObjectStream ;OCSP []*_eg .PdfObjectStream ;CRL []*_eg .PdfObjectStream ;TU *_eg .PdfObjectString ;TS *_eg .PdfObjectString ;};var _ pdfFont =(*pdfFontType3 )(nil ); // 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 (_eebe *LTV )EnableByName (name string ,extraCerts []*_ce .Certificate )error {_ggeca :=_eebe ._caadf ._acdg .AcroForm ;for _ ,_ddfg :=range _ggeca .AllFields (){_ddbgd ,_ :=_ddfg .GetContext ().(*PdfFieldSignature );if _ddbgd ==nil {continue ;};if _eggde :=_ddbgd .PartialName (); _eggde !=name {continue ;};return _eebe .Enable (_ddbgd .V ,extraCerts );};return nil ;};type pdfFont interface{_ab .Font ; // ToPdfObject returns a PDF representation of the font and implements interface Model. ToPdfObject ()_eg .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;}; // ToPdfObject implements interface PdfModel. func (_gdc *PdfAnnotationRedact )ToPdfObject ()_eg .PdfObject {_gdc .PdfAnnotation .ToPdfObject ();_gcdg :=_gdc ._gag ;_cfcc :=_gcdg .PdfObject .(*_eg .PdfObjectDictionary );_gdc .PdfAnnotationMarkup .appendToPdfDictionary (_cfcc );_cfcc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074")); _cfcc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gdc .QuadPoints );_cfcc .SetIfNotNil ("\u0049\u0043",_gdc .IC );_cfcc .SetIfNotNil ("\u0052\u004f",_gdc .RO );_cfcc .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_gdc .OverlayText ); _cfcc .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_gdc .Repeat );_cfcc .SetIfNotNil ("\u0044\u0041",_gdc .DA );_cfcc .SetIfNotNil ("\u0051",_gdc .Q );return _gcdg ;}; // ToPdfObject returns the PDF representation of the shading pattern. func (_acaf *PdfShadingPattern )ToPdfObject ()_eg .PdfObject {_acaf .PdfPattern .ToPdfObject ();_adde :=_acaf .getDict ();if _acaf .Shading !=nil {_adde .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_acaf .Shading .ToPdfObject ());};if _acaf .Matrix !=nil {_adde .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_acaf .Matrix ); };if _acaf .ExtGState !=nil {_adde .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_acaf .ExtGState );};return _acaf ._cfaag ;}; // DecodeArray returns the range of color component values in DeviceGray colorspace. func (_dffe *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}}; // HasExtGState checks if ExtGState name is available. func (_cggaa *PdfPage )HasExtGState (name _eg .PdfObjectName )bool {if _cggaa .Resources ==nil {return false ;};if _cggaa .Resources .ExtGState ==nil {return false ;};_gacb ,_dedged :=_eg .TraceToDirectObject (_cggaa .Resources .ExtGState ).(*_eg .PdfObjectDictionary ); if !_dedged {_dbg .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",_eg .TraceToDirectObject (_cggaa .Resources .ExtGState )); return false ;};_gcfgb :=_gacb .Get (name );_ccaa :=_gcfgb !=nil ;return _ccaa ;}; // DecodeArray returns an empty slice as there are no components associated with pattern colorspace. func (_cceb *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}}; // ToPdfObject implements interface PdfModel. func (_bgcf *PdfAnnotationStrikeOut )ToPdfObject ()_eg .PdfObject {_bgcf .PdfAnnotation .ToPdfObject ();_dfb :=_bgcf ._gag ;_dbbd :=_dfb .PdfObject .(*_eg .PdfObjectDictionary );_bgcf .PdfAnnotationMarkup .appendToPdfDictionary (_dbbd );_dbbd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t")); _dbbd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bgcf .QuadPoints );return _dfb ;}; // PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons. type PdfFieldButton struct{*PdfField ;Opt *_eg .PdfObjectArray ;};func (_gebe *pdfFontSimple )getFontEncoding ()(_efcd string ,_afba map[_cec .CharCode ]_cec .GlyphName ,_gcbe error ){_efcd ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"; if _aafe ,_dcbfa :=_aaffe [_gebe ._cfab ];_dcbfa {_efcd =_aafe ;}else if _gebe .fontFlags ()&_efecb !=0{for _gfcea ,_fafbf :=range _aaffe {if _dc .Contains (_gebe ._cfab ,_gfcea ){_efcd =_fafbf ;break ;};};};if _gebe .Encoding ==nil {return _efcd ,nil ,nil ; };switch _bfefd :=_gebe .Encoding .(type ){case *_eg .PdfObjectName :return string (*_bfefd ),nil ,nil ;case *_eg .PdfObjectDictionary :_egceg ,_feecd :=_eg .GetName (_bfefd .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067")); if _feecd {_efcd =_egceg .String ();};if _cbbfb :=_bfefd .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_cbbfb !=nil {_cegb ,_ebedd :=_eg .GetArray (_cbbfb );if !_ebedd {_dbg .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",_bfefd ,_bfefd .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073")); return "",nil ,_eg .ErrTypeError ;};_afba ,_gcbe =_cec .FromFontDifferences (_cegb );};return _efcd ,_afba ,_gcbe ;default:_dbg .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",_gebe .Encoding ,_gebe .Encoding ); return "",nil ,_eg .ErrTypeError ;};}; // BytesToCharcodes converts the bytes in a PDF string to character codes. func (_bddgb *PdfFont )BytesToCharcodes (data []byte )[]_cec .CharCode {_dbg .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 _cadgc ,_dfcef :=_bddgb ._gdcab .(*pdfFontType0 );_dfcef &&_cadgc ._adad !=nil {if _aeee ,_faega :=_cadgc .bytesToCharcodes (data );_faega {return _aeee ;};};_edea :=make ([]_cec .CharCode ,0,len (data )+len (data )%2);if _bddgb .baseFields ().isCIDFont (){if len (data )==1{data =[]byte {0,data [0]}; };if len (data )%2!=0{_dbg .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 _fbaa :=0;_fbaa < len (data );_fbaa +=2{_fbeg :=uint16 (data [_fbaa ])<<8|uint16 (data [_fbaa +1]);_edea =append (_edea ,_cec .CharCode (_fbeg ));};}else {for _ ,_fcba :=range data {_edea =append (_edea ,_cec .CharCode (_fcba )); };};return _edea ;}; // SetLocation sets the `Location` field of the signature. func (_bgdaf *PdfSignature )SetLocation (location string ){_bgdaf .Location =_eg .MakeString (location )};func _fbgdc (_eeaa _eg .PdfObject )(*PdfColorspaceICCBased ,error ){_cege :=&PdfColorspaceICCBased {};if _fgbde ,_gbfg :=_eeaa .(*_eg .PdfIndirectObject ); _gbfg {_cege ._acga =_fgbde ;};_eeaa =_eg .TraceToDirectObject (_eeaa );_bebfc ,_cfef :=_eeaa .(*_eg .PdfObjectArray );if !_cfef {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bebfc .Len ()!=2{return nil ,_e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065"); };_eeaa =_eg .TraceToDirectObject (_bebfc .Get (0));_cbbf ,_cfef :=_eeaa .(*_eg .PdfObjectName );if !_cfef {return nil ,_e .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 *_cbbf !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_e .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");};_eeaa =_bebfc .Get (1); _eaef ,_cfef :=_eg .GetStream (_eeaa );if !_cfef {_dbg .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",_eeaa ); return nil ,_e .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_fdff :=_eaef .PdfObjectDictionary ;_adeaf ,_cfef :=_fdff .Get ("\u004e").(*_eg .PdfObjectInteger ); if !_cfef {return nil ,_e .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 *_adeaf !=1&&*_adeaf !=3&&*_adeaf !=4{return nil ,_e .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"); };_cege .N =int (*_adeaf );if _bdda :=_fdff .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_bdda !=nil {_gbgf ,_ddab :=NewPdfColorspaceFromPdfObject (_bdda );if _ddab !=nil {return nil ,_ddab ;};_cege .Alternate =_gbgf ;};if _eegc :=_fdff .Get ("\u0052\u0061\u006eg\u0065"); _eegc !=nil {_eegc =_eg .TraceToDirectObject (_eegc );_cdcec ,_bggbb :=_eegc .(*_eg .PdfObjectArray );if !_bggbb {return nil ,_e .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 _cdcec .Len ()!=2*_cege .N {return nil ,_e .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"); };_bffb ,_gagd :=_cdcec .GetAsFloat64Slice ();if _gagd !=nil {return nil ,_gagd ;};_cege .Range =_bffb ;}else {_cege .Range =make ([]float64 ,2*_cege .N );for _cgeca :=0;_cgeca < _cege .N ;_cgeca ++{_cege .Range [2*_cgeca ]=0.0;_cege .Range [2*_cgeca +1]=1.0; };};if _ggec :=_fdff .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_ggec !=nil {_ffcf ,_ddbg :=_ggec .(*_eg .PdfObjectStream );if !_ddbg {return nil ,_e .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"); };_cege .Metadata =_ffcf ;};_fccd ,_bagg :=_eg .DecodeStream (_eaef );if _bagg !=nil {return nil ,_bagg ;};_cege .Data =_fccd ;_cege ._efdb =_eaef ;return _cege ,nil ;}; // 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 *_eg .PdfIndirectObject ;SV *_eg .PdfIndirectObject ;}; // NewPdfActionRendition returns a new "rendition" action. func NewPdfActionRendition ()*PdfActionRendition {_ed :=NewPdfAction ();_aag :=&PdfActionRendition {};_aag .PdfAction =_ed ;_ed .SetContext (_aag );return _aag ;};func _adbbg (_gdfcf _eg .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_dbg .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",_gdfcf .String (),_gdfcf ); _acgc :=NewPdfColorspaceSpecialPattern ();if _gbef ,_dbca :=_gdfcf .(*_eg .PdfIndirectObject );_dbca {_acgc ._ecbb =_gbef ;};_gdfcf =_eg .TraceToDirectObject (_gdfcf );if _cfdg ,_fgcb :=_gdfcf .(*_eg .PdfObjectName );_fgcb {if *_cfdg !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_e .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065"); };return _acgc ,nil ;};_baggg ,_cfbb :=_gdfcf .(*_eg .PdfObjectArray );if !_cfbb {_dbg .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",_gdfcf ); return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _baggg .Len ()!=1&&_baggg .Len ()!=2{_dbg .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",_baggg ); return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_gdfcf =_baggg .Get (0);if _adabb ,_gcefg :=_gdfcf .(*_eg .PdfObjectName );_gcefg {if *_adabb !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_dbg .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",_adabb ); return nil ,_e .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _baggg .Len ()> 1{_gdfcf =_baggg .Get (1);_gdfcf =_eg .TraceToDirectObject (_gdfcf );_fegdg ,_cgfc :=NewPdfColorspaceFromPdfObject (_gdfcf );if _cgfc !=nil {return nil ,_cgfc ; };_acgc .UnderlyingCS =_fegdg ;};_dbg .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",_acgc .UnderlyingCS ); return _acgc ,nil ;}; // NewPdfActionLaunch returns a new "launch" action. func NewPdfActionLaunch ()*PdfActionLaunch {_df :=NewPdfAction ();_deg :=&PdfActionLaunch {};_deg .PdfAction =_df ;_df .SetContext (_deg );return _deg ;}; // NewPdfAnnotationLine returns a new line annotation. func NewPdfAnnotationLine ()*PdfAnnotationLine {_fca :=NewPdfAnnotation ();_bdg :=&PdfAnnotationLine {};_bdg .PdfAnnotation =_fca ;_bdg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fca .SetContext (_bdg );return _bdg ;};func (_acf *PdfReader )newPdfActionFromIndirectObject (_fcfbb *_eg .PdfIndirectObject )(*PdfAction ,error ){_fed ,_fdc :=_fcfbb .PdfObject .(*_eg .PdfObjectDictionary ); if !_fdc {return nil ,_e .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 :=_acf ._gced .GetModelFromPrimitive (_fed );model !=nil {_bba ,_gff :=model .(*PdfAction );if !_gff {return nil ,_e .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 _bba ,nil ;};_fcg :=&PdfAction {};_fcg ._ege =_fcfbb ;_acf ._gced .Register (_fed ,_fcg );if _dab :=_fed .Get ("\u0054\u0079\u0070\u0065");_dab !=nil {_agf ,_ede :=_dab .(*_eg .PdfObjectName );if !_ede {_dbg .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",_dab ); }else {if *_agf !="\u0041\u0063\u0074\u0069\u006f\u006e"{_dbg .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",*_agf ); };_fcg .Type =_agf ;};};if _aace :=_fed .Get ("\u004e\u0065\u0078\u0074");_aace !=nil {_fcg .Next =_aace ;};if _ffed :=_fed .Get ("\u0053");_ffed !=nil {_fcg .S =_ffed ;};_ffd ,_ceae :=_fcg .S .(*_eg .PdfObjectName );if !_ceae {_dbg .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",_fcg .S ); return nil ,_e .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",_fcg .S );};_bbad :=PdfActionType (_ffd .String ()); switch _bbad {case ActionTypeGoTo :_faf ,_eac :=_acf .newPdfActionGotoFromDict (_fed );if _eac !=nil {return nil ,_eac ;};_faf .PdfAction =_fcg ;_fcg ._cea =_faf ;return _fcg ,nil ;case ActionTypeGoToR :_eeb ,_ecfd :=_acf .newPdfActionGotoRFromDict (_fed ); if _ecfd !=nil {return nil ,_ecfd ;};_eeb .PdfAction =_fcg ;_fcg ._cea =_eeb ;return _fcg ,nil ;case ActionTypeGoToE :_cbe ,_fga :=_acf .newPdfActionGotoEFromDict (_fed );if _fga !=nil {return nil ,_fga ;};_cbe .PdfAction =_fcg ;_fcg ._cea =_cbe ;return _fcg ,nil ; case ActionTypeLaunch :_ddc ,_dfc :=_acf .newPdfActionLaunchFromDict (_fed );if _dfc !=nil {return nil ,_dfc ;};_ddc .PdfAction =_fcg ;_fcg ._cea =_ddc ;return _fcg ,nil ;case ActionTypeThread :_caf ,_eade :=_acf .newPdfActionThreadFromDict (_fed );if _eade !=nil {return nil ,_eade ; };_caf .PdfAction =_fcg ;_fcg ._cea =_caf ;return _fcg ,nil ;case ActionTypeURI :_eacf ,_bad :=_acf .newPdfActionURIFromDict (_fed );if _bad !=nil {return nil ,_bad ;};_eacf .PdfAction =_fcg ;_fcg ._cea =_eacf ;return _fcg ,nil ;case ActionTypeSound :_cbg ,_cfc :=_acf .newPdfActionSoundFromDict (_fed ); if _cfc !=nil {return nil ,_cfc ;};_cbg .PdfAction =_fcg ;_fcg ._cea =_cbg ;return _fcg ,nil ;case ActionTypeMovie :_gecb ,_gfa :=_acf .newPdfActionMovieFromDict (_fed );if _gfa !=nil {return nil ,_gfa ;};_gecb .PdfAction =_fcg ;_fcg ._cea =_gecb ;return _fcg ,nil ; case ActionTypeHide :_dfd ,_afa :=_acf .newPdfActionHideFromDict (_fed );if _afa !=nil {return nil ,_afa ;};_dfd .PdfAction =_fcg ;_fcg ._cea =_dfd ;return _fcg ,nil ;case ActionTypeNamed :_cd ,_ecb :=_acf .newPdfActionNamedFromDict (_fed );if _ecb !=nil {return nil ,_ecb ; };_cd .PdfAction =_fcg ;_fcg ._cea =_cd ;return _fcg ,nil ;case ActionTypeSubmitForm :_bbadc ,_bbc :=_acf .newPdfActionSubmitFormFromDict (_fed );if _bbc !=nil {return nil ,_bbc ;};_bbadc .PdfAction =_fcg ;_fcg ._cea =_bbadc ;return _fcg ,nil ;case ActionTypeResetForm :_bge ,_gaa :=_acf .newPdfActionResetFormFromDict (_fed ); if _gaa !=nil {return nil ,_gaa ;};_bge .PdfAction =_fcg ;_fcg ._cea =_bge ;return _fcg ,nil ;case ActionTypeImportData :_fgf ,_gebb :=_acf .newPdfActionImportDataFromDict (_fed );if _gebb !=nil {return nil ,_gebb ;};_fgf .PdfAction =_fcg ;_fcg ._cea =_fgf ; return _fcg ,nil ;case ActionTypeSetOCGState :_bgc ,_egb :=_acf .newPdfActionSetOCGStateFromDict (_fed );if _egb !=nil {return nil ,_egb ;};_bgc .PdfAction =_fcg ;_fcg ._cea =_bgc ;return _fcg ,nil ;case ActionTypeRendition :_fff ,_fgc :=_acf .newPdfActionRenditionFromDict (_fed ); if _fgc !=nil {return nil ,_fgc ;};_fff .PdfAction =_fcg ;_fcg ._cea =_fff ;return _fcg ,nil ;case ActionTypeTrans :_gga ,_eae :=_acf .newPdfActionTransFromDict (_fed );if _eae !=nil {return nil ,_eae ;};_gga .PdfAction =_fcg ;_fcg ._cea =_gga ;return _fcg ,nil ; case ActionTypeGoTo3DView :_bac ,_dcc :=_acf .newPdfActionGoTo3DViewFromDict (_fed );if _dcc !=nil {return nil ,_dcc ;};_bac .PdfAction =_fcg ;_fcg ._cea =_bac ;return _fcg ,nil ;case ActionTypeJavaScript :_efd ,_cba :=_acf .newPdfActionJavaScriptFromDict (_fed ); if _cba !=nil {return nil ,_cba ;};_efd .PdfAction =_fcg ;_fcg ._cea =_efd ;return _fcg ,nil ;};_dbg .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",_bbad ); return nil ,nil ;}; // ImageToGray returns a new grayscale image based on the passed in RGB image. func (_egce *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_bbd .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"); };_edad ,_cfcf :=_ff .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fcec ,img ._aaeac );if _cfcf !=nil {return img ,_cfcf ;};_dedge ,_cfcf :=_ff .GrayConverter .Convert (_edad );if _cfcf !=nil {return img ,_cfcf ; };return _egbde (_dedge .Base ()),nil ;}; // ToInteger convert to an integer format. func (_ceda *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_fgef :=_bc .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_fgef *_ceda .A ()),uint32 (_fgef *_ceda .B ()),uint32 (_fgef *_ceda .C ())};}; // PdfFont represents an underlying font structure which can be of type: // - Type0 // - Type1 // - TrueType // etc. type PdfFont struct{_gdcab pdfFont };func (_geda *Image )samplesTrimPadding (_dcdg []uint32 )[]uint32 {_fdfb :=_geda .ColorComponents *int (_geda .Width )*int (_geda .Height );if len (_dcdg )==_fdfb {return _dcdg ;};_cecfg :=make ([]uint32 ,_fdfb );_ffbbgg :=int (_geda .Width )*_geda .ColorComponents ; var _efdcd ,_bgaag ,_cddab ,_beeba int ;_bdcc :=_ff .BytesPerLine (int (_geda .Width ),int (_geda .BitsPerComponent ),_geda .ColorComponents );for _efdcd =0;_efdcd < int (_geda .Height );_efdcd ++{_bgaag =_efdcd *int (_geda .Width );_cddab =_efdcd *_bdcc ; for _beeba =0;_beeba < _ffbbgg ;_beeba ++{_cecfg [_bgaag +_beeba ]=_dcdg [_cddab +_beeba ];};};return _cecfg ;};func _fcagb (_abcfg *_eg .PdfObjectDictionary )(*PdfShadingType6 ,error ){_adefb :=PdfShadingType6 {};_ggefa :=_abcfg .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065"); if _ggefa ==nil {_dbg .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 ;};_dbgbb ,_acgbd :=_ggefa .(*_eg .PdfObjectInteger );if !_acgbd {_dbg .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",_ggefa ); return nil ,_eg .ErrTypeError ;};_adefb .BitsPerCoordinate =_dbgbb ;_ggefa =_abcfg .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _ggefa ==nil {_dbg .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 ;};_dbgbb ,_acgbd =_ggefa .(*_eg .PdfObjectInteger );if !_acgbd {_dbg .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",_ggefa ); return nil ,_eg .ErrTypeError ;};_adefb .BitsPerComponent =_dbgbb ;_ggefa =_abcfg .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _ggefa ==nil {_dbg .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 ;};_dbgbb ,_acgbd =_ggefa .(*_eg .PdfObjectInteger );if !_acgbd {_dbg .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",_ggefa ); return nil ,_eg .ErrTypeError ;};_adefb .BitsPerComponent =_dbgbb ;_ggefa =_abcfg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _ggefa ==nil {_dbg .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 ;};_aceec ,_acgbd :=_ggefa .(*_eg .PdfObjectArray );if !_acgbd {_dbg .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",_ggefa ); return nil ,_eg .ErrTypeError ;};_adefb .Decode =_aceec ;if _gbga :=_abcfg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_gbga !=nil {_adefb .Function =[]PdfFunction {};if _begg ,_cceecd :=_gbga .(*_eg .PdfObjectArray );_cceecd {for _ ,_gbagb :=range _begg .Elements (){_gbcee ,_eeagf :=_dgbga (_gbagb ); if _eeagf !=nil {_dbg .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",_eeagf );return nil ,_eeagf ;};_adefb .Function =append (_adefb .Function ,_gbcee ); };}else {_fcfbf ,_dfefc :=_dgbga (_gbga );if _dfefc !=nil {_dbg .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",_dfefc );return nil ,_dfefc ; };_adefb .Function =append (_adefb .Function ,_fcfbf );};};return &_adefb ,nil ;};type modelManager struct{_eegb map[PdfModel ]_eg .PdfObject ;_bfgf map[_eg .PdfObject ]PdfModel ;}; // 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 };}; // GetNumComponents returns the number of color components (4 for CMYK32). func (_edade *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};func (_gaeg *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _gaeg ._eecfe }; // ToPdfObject converts the font to a PDF representation. func (_cfabf *pdfFontType3 )ToPdfObject ()_eg .PdfObject {if _cfabf ._bbfae ==nil {_cfabf ._bbfae =&_eg .PdfIndirectObject {};};_gefcc :=_cfabf .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_cfabf ._bbfae .PdfObject =_gefcc ;if _cfabf .FirstChar !=nil {_gefcc .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_cfabf .FirstChar ); };if _cfabf .LastChar !=nil {_gefcc .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_cfabf .LastChar );};if _cfabf .Widths !=nil {_gefcc .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_cfabf .Widths );};if _cfabf .Encoding !=nil {_gefcc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cfabf .Encoding ); }else if _cfabf ._daeg !=nil {_cgee :=_cfabf ._daeg .ToPdfObject ();if _cgee !=nil {_gefcc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cgee );};};if _cfabf .FontBBox !=nil {_gefcc .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_cfabf .FontBBox ); };if _cfabf .FontMatrix !=nil {_gefcc .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_cfabf .FontMatrix );};if _cfabf .CharProcs !=nil {_gefcc .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_cfabf .CharProcs );};if _cfabf .Resources !=nil {_gefcc .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_cfabf .Resources ); };return _cfabf ._bbfae ;}; // 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 ; // A returns the value of the A component of the color. func (_fbba *PdfColorCalRGB )A ()float64 {return _fbba [0]};func _dcafge (_abfe _eg .PdfObject )(*PdfShading ,error ){_ggfeg :=&PdfShading {};var _edada *_eg .PdfObjectDictionary ;if _gaefaf ,_ababbd :=_eg .GetIndirect (_abfe );_ababbd {_ggfeg ._beag =_gaefaf ; _daad ,_dffaf :=_gaefaf .PdfObject .(*_eg .PdfObjectDictionary );if !_dffaf {_dbg .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 ,_eg .ErrTypeError ; };_edada =_daad ;}else if _fcacd ,_gbcfcc :=_eg .GetStream (_abfe );_gbcfcc {_ggfeg ._beag =_fcacd ;_edada =_fcacd .PdfObjectDictionary ;}else if _adeeg ,_bfacc :=_eg .GetDict (_abfe );_bfacc {_ggfeg ._beag =_adeeg ;_edada =_adeeg ;}else {_dbg .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",_abfe ); return nil ,_eg .ErrTypeError ;};if _edada ==nil {_dbg .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_bbd .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067"); };_abfe =_edada .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _abfe ==nil {_dbg .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 ;};_abfe =_eg .TraceToDirectObject (_abfe );_edgdd ,_deba :=_abfe .(*_eg .PdfObjectInteger );if !_deba {_dbg .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",_abfe ); return nil ,_eg .ErrTypeError ;};if *_edgdd < 1||*_edgdd > 7{_dbg .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",*_edgdd ); return nil ,_eg .ErrTypeError ;};_ggfeg .ShadingType =_edgdd ;_abfe =_edada .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _abfe ==nil {_dbg .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 ;};_dagaf ,_ggad :=NewPdfColorspaceFromPdfObject (_abfe );if _ggad !=nil {_dbg .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",_ggad ); return nil ,_ggad ;};_ggfeg .ColorSpace =_dagaf ;_abfe =_edada .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _abfe !=nil {_abfe =_eg .TraceToDirectObject (_abfe );_abbb ,_aebfdf :=_abfe .(*_eg .PdfObjectArray );if !_aebfdf {_dbg .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)",_abfe ); return nil ,_eg .ErrTypeError ;};_ggfeg .Background =_abbb ;};_abfe =_edada .Get ("\u0042\u0042\u006f\u0078");if _abfe !=nil {_abfe =_eg .TraceToDirectObject (_abfe );_adeef ,_dbcg :=_abfe .(*_eg .PdfObjectArray );if !_dbcg {_dbg .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)",_abfe ); return nil ,_eg .ErrTypeError ;};_eaeac ,_dddd :=NewPdfRectangle (*_adeef );if _dddd !=nil {_dbg .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_dddd );return nil ,_dddd ;};_ggfeg .BBox =_eaeac ;};_abfe =_edada .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s"); if _abfe !=nil {_abfe =_eg .TraceToDirectObject (_abfe );_bcdbg ,_fecdf :=_abfe .(*_eg .PdfObjectBool );if !_fecdf {_dbg .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",_abfe ); return nil ,_eg .ErrTypeError ;};_ggfeg .AntiAlias =_bcdbg ;};switch *_edgdd {case 1:_ccgf ,_edba :=_abegg (_edada );if _edba !=nil {return nil ,_edba ;};_ccgf .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_ccgf ;return _ggfeg ,nil ;case 2:_daaa ,_deceg :=_bfbaf (_edada ); if _deceg !=nil {return nil ,_deceg ;};_daaa .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_daaa ;return _ggfeg ,nil ;case 3:_fecac ,_ebfabe :=_aabab (_edada );if _ebfabe !=nil {return nil ,_ebfabe ;};_fecac .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_fecac ;return _ggfeg ,nil ; case 4:_bdaac ,_fggfe :=_bbfd (_edada );if _fggfe !=nil {return nil ,_fggfe ;};_bdaac .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_bdaac ;return _ggfeg ,nil ;case 5:_bcbeg ,_affcg :=_gaggb (_edada );if _affcg !=nil {return nil ,_affcg ;};_bcbeg .PdfShading =_ggfeg ; _ggfeg ._ccdbe =_bcbeg ;return _ggfeg ,nil ;case 6:_cdcbd ,_ecbf :=_fcagb (_edada );if _ecbf !=nil {return nil ,_ecbf ;};_cdcbd .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_cdcbd ;return _ggfeg ,nil ;case 7:_aedec ,_cdcgc :=_gaggd (_edada );if _cdcgc !=nil {return nil ,_cdcgc ; };_aedec .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_aedec ;return _ggfeg ,nil ;};return nil ,_bbd .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");}; // GetXObjectFormByName returns the XObjectForm with the specified name from the // page resources, if it exists. func (_fffd *PdfPageResources )GetXObjectFormByName (keyName _eg .PdfObjectName )(*XObjectForm ,error ){_feba ,_daebc :=_fffd .GetXObjectByName (keyName );if _feba ==nil {return nil ,nil ;};if _daebc !=XObjectTypeForm {return nil ,_bbd .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d"); };_cfdeab ,_beedb :=NewXObjectFormFromStream (_feba );if _beedb !=nil {return nil ,_beedb ;};return _cfdeab ,nil ;}; // ToImage converts an object to an Image which can be transformed or saved out. // The image data is decoded and the Image returned. func (_cacdc *XObjectImage )ToImage ()(*Image ,error ){_agabg :=&Image {};if _cacdc .Height ==nil {return nil ,_bbd .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067"); };_agabg .Height =*_cacdc .Height ;if _cacdc .Width ==nil {return nil ,_bbd .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_agabg .Width =*_cacdc .Width ;if _cacdc .BitsPerComponent ==nil {switch _cacdc .Filter .(type ){case *_eg .CCITTFaxEncoder ,*_eg .JBIG2Encoder :_agabg .BitsPerComponent =1; case *_eg .LZWEncoder ,*_eg .RunLengthEncoder :_agabg .BitsPerComponent =8;default:return nil ,_bbd .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 {_agabg .BitsPerComponent =*_cacdc .BitsPerComponent ;};_agabg .ColorComponents =_cacdc .ColorSpace .GetNumComponents ();_cacdc ._dcdb .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_eg .MakeInteger (int64 (_agabg .ColorComponents ))); _eggef ,_ebdad :=_eg .DecodeStream (_cacdc ._dcdb );if _ebdad !=nil {return nil ,_ebdad ;};_agabg .Data =_eggef ;if _cacdc .Decode !=nil {_ecgea ,_bbbdf :=_cacdc .Decode .(*_eg .PdfObjectArray );if !_bbbdf {_dbg .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074"); return nil ,_bbd .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_agggf ,_dbfbb :=_ecgea .ToFloat64Array ();if _dbfbb !=nil {return nil ,_dbfbb ;};_agabg ._aaeac =_agggf ;};return _agabg ,nil ;}; // NewPdfAnnotationSquiggly returns a new text squiggly annotation. func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_fbb :=NewPdfAnnotation ();_ffba :=&PdfAnnotationSquiggly {};_ffba .PdfAnnotation =_fbb ;_ffba .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fbb .SetContext (_ffba );return _ffba ;}; // Items returns all children outline items. func (_eaagg *OutlineItem )Items ()[]*OutlineItem {return _eaagg .Entries }; // PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh. type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_eg .PdfObjectInteger ;BitsPerComponent *_eg .PdfObjectInteger ;BitsPerFlag *_eg .PdfObjectInteger ;Decode *_eg .PdfObjectArray ;Function []PdfFunction ;};var _ pdfFont =(*pdfCIDFontType2 )(nil ); // PdfAnnotationCaret represents Caret annotations. // (Section 12.5.6.11). type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _eg .PdfObject ;Sy _eg .PdfObject ;}; // GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern. func (_ebeba *PdfPattern )GetContext ()PdfModel {return _ebeba ._defdf };func (_fgbdbb *PdfWriter )writeString (_dgbed string ){if _fgbdbb ._cfgdd !=nil {return ;};_bddceb ,_bdcd :=_fgbdbb ._fggeg .WriteString (_dgbed );_fgbdbb ._agecc +=int64 (_bddceb ); _fgbdbb ._cfgdd =_bdcd ;}; // NewPdfActionTrans returns a new "trans" action. func NewPdfActionTrans ()*PdfActionTrans {_beg :=NewPdfAction ();_eef :=&PdfActionTrans {};_eef .PdfAction =_beg ;_beg .SetContext (_eef );return _eef ;}; // GetContainingPdfObject returns the container of the outline tree node (indirect object). func (_bgbga *PdfOutlineTreeNode )GetContainingPdfObject ()_eg .PdfObject {return _bgbga .GetContext ().GetContainingPdfObject ();}; // GenerateXObjectName generates an unused XObject name that can be used for // adding new XObjects. Uses format XObj1, XObj2, ... func (_egefc *PdfPageResources )GenerateXObjectName ()_eg .PdfObjectName {_ebbb :=1;for {_efgad :=_eg .MakeName (_e .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_ebbb ));if !_egefc .HasXObjectByName (*_efgad ){return *_efgad ;};_ebbb ++;};}; // GetPageDict converts the Page to a PDF object dictionary. func (_bdfe *PdfPage )GetPageDict ()*_eg .PdfObjectDictionary {_aabgg :=_bdfe ._ecbba ;_aabgg .Clear ();_aabgg .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0050\u0061\u0067\u0065"));_aabgg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_bdfe .Parent ); if _bdfe .LastModified !=nil {_aabgg .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_bdfe .LastModified .ToPdfObject ());};if _bdfe .Resources !=nil {_aabgg .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_bdfe .Resources .ToPdfObject ()); };if _bdfe .CropBox !=nil {_aabgg .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_bdfe .CropBox .ToPdfObject ());};if _bdfe .MediaBox !=nil {_aabgg .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_bdfe .MediaBox .ToPdfObject ());};if _bdfe .BleedBox !=nil {_aabgg .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_bdfe .BleedBox .ToPdfObject ()); };if _bdfe .TrimBox !=nil {_aabgg .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_bdfe .TrimBox .ToPdfObject ());};if _bdfe .ArtBox !=nil {_aabgg .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_bdfe .ArtBox .ToPdfObject ());};_aabgg .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_bdfe .BoxColorInfo ); _aabgg .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_bdfe .Contents );if _bdfe .Rotate !=nil {_aabgg .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_eg .MakeInteger (*_bdfe .Rotate ));};_aabgg .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_bdfe .Group ); _aabgg .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_bdfe .Thumb );_aabgg .SetIfNotNil ("\u0042",_bdfe .B );_aabgg .SetIfNotNil ("\u0044\u0075\u0072",_bdfe .Dur );_aabgg .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_bdfe .Trans );_aabgg .SetIfNotNil ("\u0041\u0041",_bdfe .AA ); _aabgg .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_bdfe .Metadata );_aabgg .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_bdfe .PieceInfo );_aabgg .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_bdfe .StructParents ); _aabgg .SetIfNotNil ("\u0049\u0044",_bdfe .ID );_aabgg .SetIfNotNil ("\u0050\u005a",_bdfe .PZ );_aabgg .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_bdfe .SeparationInfo );_aabgg .SetIfNotNil ("\u0054\u0061\u0062\u0073",_bdfe .Tabs ); _aabgg .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_bdfe .TemplateInstantiated );_aabgg .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_bdfe .PresSteps );_aabgg .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_bdfe .UserUnit ); _aabgg .SetIfNotNil ("\u0056\u0050",_bdfe .VP );if _bdfe ._egge !=nil {_fgabc :=_eg .MakeArray ();for _ ,_dacg :=range _bdfe ._egge {if _bgcd :=_dacg .GetContext ();_bgcd !=nil {_fgabc .Append (_bgcd .ToPdfObject ());}else {_fgabc .Append (_dacg .ToPdfObject ()); };};if _fgabc .Len ()> 0{_aabgg .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_fgabc );};}else if _bdfe .Annots !=nil {_aabgg .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_bdfe .Annots );};return _aabgg ;}; // 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 ){_gfbfd ,_cdaf :=_bg .Open (filePath );if _cdaf !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_cdaf ); return nil ,_cdaf ;};defer _gfbfd .Close ();return NewCompositePdfFontFromTTF (_gfbfd );}; // NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive. func NewXObjectForm ()*XObjectForm {_fdffa :=&XObjectForm {};_cefg :=&_eg .PdfObjectStream {};_cefg .PdfObjectDictionary =_eg .MakeDict ();_fdffa ._cdcaf =_cefg ;return _fdffa ;}; // PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh. type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_eg .PdfObjectInteger ;BitsPerComponent *_eg .PdfObjectInteger ;VerticesPerRow *_eg .PdfObjectInteger ;Decode *_eg .PdfObjectArray ;Function []PdfFunction ;}; // ToPdfObject returns the button field dictionary within an indirect object. func (_ebbf *PdfFieldButton )ToPdfObject ()_eg .PdfObject {_ebbf .PdfField .ToPdfObject ();_dbcdc :=_ebbf ._afbe ;_fggb :=_dbcdc .PdfObject .(*_eg .PdfObjectDictionary );_fggb .Set ("\u0046\u0054",_eg .MakeName ("\u0042\u0074\u006e"));if _ebbf .Opt !=nil {_fggb .Set ("\u004f\u0070\u0074",_ebbf .Opt ); };return _dbcdc ;}; // NewPdfAnnotationLink returns a new link annotation. func NewPdfAnnotationLink ()*PdfAnnotationLink {_agd :=NewPdfAnnotation ();_cdb :=&PdfAnnotationLink {};_cdb .PdfAnnotation =_agd ;_agd .SetContext (_cdb );return _cdb ;}; // ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which // replaces the original AcroForm. func (_cffd *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_cffd .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_cffd ._ggcc =acroForm ;}; // ToPdfObject implements interface PdfModel. func (_eadb *PdfAction )ToPdfObject ()_eg .PdfObject {_gec :=_eadb ._ege ;_ga :=_gec .PdfObject .(*_eg .PdfObjectDictionary );_ga .Clear ();_ga .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_ga .SetIfNotNil ("\u0053",_eadb .S ); _ga .SetIfNotNil ("\u004e\u0065\u0078\u0074",_eadb .Next );return _gec ;}; // NewPdfActionGoToR returns a new "go to remote" action. func NewPdfActionGoToR ()*PdfActionGoToR {_daf :=NewPdfAction ();_eadf :=&PdfActionGoToR {};_eadf .PdfAction =_daf ;_daf .SetContext (_eadf );return _eadf ;}; // ColorToRGB converts a CalGray color to an RGB color. func (_gcef *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_abfd ,_bgab :=color .(*PdfColorCalGray );if !_bgab {_dbg .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 ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_abfd .Val ();X :=_gcef .WhitePoint [0]*_bc .Pow (ANorm ,_gcef .Gamma );Y :=_gcef .WhitePoint [1]*_bc .Pow (ANorm ,_gcef .Gamma ); Z :=_gcef .WhitePoint [2]*_bc .Pow (ANorm ,_gcef .Gamma );_fdgg :=3.240479*X +-1.537150*Y +-0.498535*Z ;_fddf :=-0.969256*X +1.875992*Y +0.041556*Z ;_afbf :=0.055648*X +-0.204043*Y +1.057311*Z ;_fdgg =_bc .Min (_bc .Max (_fdgg ,0),1.0);_fddf =_bc .Min (_bc .Max (_fddf ,0),1.0); _afbf =_bc .Min (_bc .Max (_afbf ,0),1.0);return NewPdfColorDeviceRGB (_fdgg ,_fddf ,_afbf ),nil ;}; // ToInteger convert to an integer format. func (_fdec *PdfColorDeviceGray )ToInteger (bits int )uint32 {_caee :=_bc .Pow (2,float64 (bits ))-1;return uint32 (_caee *_fdec .Val ());};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;); func (_cad *PdfReader )newPdfAnnotationFileAttachmentFromDict (_eccg *_eg .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_bbga :=PdfAnnotationFileAttachment {};_aebf ,_bdf :=_cad .newPdfAnnotationMarkupFromDict (_eccg );if _bdf !=nil {return nil ,_bdf ; };_bbga .PdfAnnotationMarkup =_aebf ;_bbga .FS =_eccg .Get ("\u0046\u0053");_bbga .Name =_eccg .Get ("\u004e\u0061\u006d\u0065");return &_bbga ,nil ;}; // AllFields returns a flattened list of all fields in the form. func (_agda *PdfAcroForm )AllFields ()[]*PdfField {if _agda ==nil {return nil ;};var _bdcgc []*PdfField ;if _agda .Fields !=nil {for _ ,_dcbb :=range *_agda .Fields {_bdcgc =append (_bdcgc ,_fafgc (_dcbb )...);};};return _bdcgc ;}; // FieldValueProvider provides field values from a data source such as FDF, JSON or any other. type FieldValueProvider interface{FieldValues ()(map[string ]_eg .PdfObject ,error );}; // GetNumComponents returns the number of input color components, i.e. that are input to the tint transform. func (_efcf *PdfColorspaceDeviceN )GetNumComponents ()int {return _efcf .ColorantNames .Len ()}; // 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 (_fdbf *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ceeg :=vals [0];if _ceeg < 0.0||_ceeg > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };_bbbe :=vals [1];if _bbbe < 0.0||_bbbe > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcga :=vals [2];if _bcga < 0.0||_bcga > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };_ecce :=NewPdfColorDeviceRGB (_ceeg ,_bbbe ,_bcga );return _ecce ,nil ;}; // SetColorspaceByName adds the provided colorspace to the page resources. func (_ccca *PdfPageResources )SetColorspaceByName (keyName _eg .PdfObjectName ,cs PdfColorspace )error {_ecfeb ,_baegb :=_ccca .GetColorspaces ();if _baegb !=nil {_dbg .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",_baegb ); return _baegb ;};if _ecfeb ==nil {_ecfeb =NewPdfPageResourcesColorspaces ();_ccca .SetColorSpace (_ecfeb );};_ecfeb .Set (keyName ,cs );return nil ;};func (_abb *PdfReader )newPdfActionLaunchFromDict (_gcc *_eg .PdfObjectDictionary )(*PdfActionLaunch ,error ){_ggg ,_fb :=_gbbe (_gcc .Get ("\u0046")); if _fb !=nil {return nil ,_fb ;};return &PdfActionLaunch {Win :_gcc .Get ("\u0057\u0069\u006e"),Mac :_gcc .Get ("\u004d\u0061\u0063"),Unix :_gcc .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_gcc .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_ggg },nil ; }; // NewPdfActionSound returns a new "sound" action. func NewPdfActionSound ()*PdfActionSound {_beb :=NewPdfAction ();_cbc :=&PdfActionSound {};_cbc .PdfAction =_beb ;_beb .SetContext (_cbc );return _cbc ;}; // GetPageLabels returns the PageLabels entry in the PDF catalog. // See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008). func (_bece *PdfReader )GetPageLabels ()(_eg .PdfObject ,error ){_egebg :=_eg .ResolveReference (_bece ._efdg .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _egebg ==nil {return nil ,nil ;};if !_bece ._bebe {_gbcfc :=_bece .traverseObjectData (_egebg ); if _gbcfc !=nil {return nil ,_gbcfc ;};};return _egebg ,nil ;}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 3 for a Lab device. func (_gfgf *PdfColorspaceLab )GetNumComponents ()int {return 3}; // 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 (_bgbgag *PdfPage )Size ()(float64 ,float64 ,error ){_acgdb ,_egdabe :=_bgbgag .GetMediaBox ();if _egdabe !=nil {return 0,0,_egdabe ;};_ffea ,_acfad :=_acgdb .Width (),_acgdb .Height ();if _bbafbb :=_bgbgag .Rotate ;_bbafbb !=nil &&*_bbafbb %360!=0&&*_bbafbb %90==0{if _bfda :=(360+*_bbafbb %360)%360; _bfda ==90||_bfda ==270{_ffea ,_acfad =_acfad ,_ffea ;};};return _ffea ,_acfad ,nil ;}; // HasXObjectByName checks if has XObject resource by name. func (_eafdd *PdfPage )HasXObjectByName (name _eg .PdfObjectName )bool {_bffce ,_ebgdb :=_eafdd .Resources .XObject .(*_eg .PdfObjectDictionary );if !_ebgdb {return false ;};if _bacga :=_bffce .Get (name );_bacga !=nil {return true ;};return false ;};func (_degbdb fontCommon )isCIDFont ()bool {if _degbdb ._fgbbb ==""{_dbg .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",_degbdb ); };_cfefe :=false ;switch _degbdb ._fgbbb {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":_cfefe =true ;};_dbg .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",_cfefe ,_degbdb ); return _cfefe ;};func (_fgff *PdfReader )newPdfActionJavaScriptFromDict (_bged *_eg .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_bged .Get ("\u004a\u0053")},nil ;}; // PdfActionRendition represents a Rendition action. type PdfActionRendition struct{*PdfAction ;R _eg .PdfObject ;AN _eg .PdfObject ;OP _eg .PdfObject ;JS _eg .PdfObject ;};func _gecc (_gdff _ab .StdFont )pdfFontSimple {_effba :=_gdff .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_fgbbb :"\u0054\u0079\u0070e\u0031",_cfab :_gdff .Name ()},_edgae :_gdff .GetMetricsTable (),_ggce :&PdfFontDescriptor {FontName :_eg .MakeName (string (_effba .Name )),FontFamily :_eg .MakeName (_effba .Family ),FontWeight :_eg .MakeFloat (float64 (_effba .Weight )),Flags :_eg .MakeInteger (int64 (_effba .Flags )),FontBBox :_eg .MakeArrayFromFloats (_effba .BBox [:]),ItalicAngle :_eg .MakeFloat (_effba .ItalicAngle ),Ascent :_eg .MakeFloat (_effba .Ascent ),Descent :_eg .MakeFloat (_effba .Descent ),CapHeight :_eg .MakeFloat (_effba .CapHeight ),XHeight :_eg .MakeFloat (_effba .XHeight ),StemV :_eg .MakeFloat (_effba .StemV ),StemH :_eg .MakeFloat (_effba .StemH )},_fcgd :_gdff .Encoder ()}; }; // ReplacePage replaces the original page to a new page. func (_cdcb *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_dcgd :=pageNum -1;for _gccd :=range _cdcb ._bfce {if _gccd ==_dcgd {_baeb :=page .Duplicate ();_faadf (_baeb );_cdcb ._bfce [_gccd ]=_baeb ;};};}; // 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 (_cgbga *PdfFont )CharcodesToStrings (charcodes []_cec .CharCode )([]string ,int ,int ){_dgbb :=_cgbga .baseFields ();_bdbac :=make ([]string ,0,len (charcodes ));_aaeda :=0;_cgfb :=_cgbga .Encoder ();if _cgfb !=nil {switch _bfbe :=_cgfb .(type ){case _cec .SimpleEncoder :_cegg :=_bfbe .BaseName (); if _ ,_defc :=_acgcf [_cegg ];_defc {for _ ,_cfafg :=range charcodes {if _dafb ,_ccac :=_cgfb .CharcodeToRune (_cfafg );_ccac {_bdbac =append (_bdbac ,string (_dafb ));}else {_dbg .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",_cfafg ,charcodes ,_dgbb .isCIDFont (),_cgbga ,_cgfb ); _aaeda ++;_bdbac =append (_bdbac ,_aff .MissingCodeString );};};return _bdbac ,len (_bdbac ),_aaeda ;};};};for _ ,_deafg :=range charcodes {if _dgbb ._fffc !=nil {if _bbeac ,_aebg :=_dgbb ._fffc .CharcodeToUnicode (_aff .CharCode (_deafg ));_aebg {_bdbac =append (_bdbac ,_bbeac ); continue ;};};if _cgfb !=nil {if _afbg ,_cecg :=_cgfb .CharcodeToRune (_deafg );_cecg {_bdbac =append (_bdbac ,string (_afbg ));continue ;};};_dbg .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",_deafg ,charcodes ,_dgbb .isCIDFont (),_cgbga ,_cgfb ); _aaeda ++;_bdbac =append (_bdbac ,_aff .MissingCodeString );};if _aaeda !=0{_dbg .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 ),_aaeda ,_cgbga ); };return _bdbac ,len (_bdbac ),_aaeda ;}; // ToPdfObject returns an indirect object containing the signature field dictionary. func (_gcdb *PdfFieldSignature )ToPdfObject ()_eg .PdfObject {if _gcdb .PdfAnnotationWidget !=nil {_gcdb .PdfAnnotationWidget .ToPdfObject ();};_gcdb .PdfField .ToPdfObject ();_fedef :=_gcdb ._afbe ;_dacf :=_fedef .PdfObject .(*_eg .PdfObjectDictionary ); _dacf .SetIfNotNil ("\u0046\u0054",_eg .MakeName ("\u0053\u0069\u0067"));_dacf .SetIfNotNil ("\u004c\u006f\u0063\u006b",_gcdb .Lock );_dacf .SetIfNotNil ("\u0053\u0056",_gcdb .SV );if _gcdb .V !=nil {_dacf .SetIfNotNil ("\u0056",_gcdb .V .ToPdfObject ()); };return _fedef ;}; // 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 (_bagc *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgdf ,_gbd :=_eg .GetNumbersAsFloat (objects ); if _gbd !=nil {return nil ,_gbd ;};return _bagc .ColorFromFloats (_bgdf );};func (_bdd *PdfReader )newPdfActionTransFromDict (_baab *_eg .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_baab .Get ("\u0054\u0072\u0061n\u0073")},nil ; };func (_dgeg *PdfReader )newPdfAnnotationMarkupFromDict (_eeg *_eg .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_eda :=&PdfAnnotationMarkup {};if _fgcg :=_eeg .Get ("\u0054");_fgcg !=nil {_eda .T =_fgcg ;};if _ecca :=_eeg .Get ("\u0050\u006f\u0070u\u0070"); _ecca !=nil {_egdb ,_dbbe :=_ecca .(*_eg .PdfIndirectObject );if !_dbbe {if _ ,_afag :=_ecca .(*_eg .PdfObjectNull );!_afag {return nil ,_bbd .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 {_fgb ,_gcf :=_dgeg .newPdfAnnotationFromIndirectObject (_egdb );if _gcf !=nil {return nil ,_gcf ;};if _fgb !=nil {_fedc ,_ddg :=_fgb ._ffbe .(*PdfAnnotationPopup );if !_ddg {return nil ,_bbd .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"); };_eda .Popup =_fedc ;};};};if _febc :=_eeg .Get ("\u0043\u0041");_febc !=nil {_eda .CA =_febc ;};if _cgad :=_eeg .Get ("\u0052\u0043");_cgad !=nil {_eda .RC =_cgad ;};if _agbe :=_eeg .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"); _agbe !=nil {_eda .CreationDate =_agbe ;};if _bgf :=_eeg .Get ("\u0049\u0052\u0054");_bgf !=nil {_eda .IRT =_bgf ;};if _eggd :=_eeg .Get ("\u0053\u0075\u0062\u006a");_eggd !=nil {_eda .Subj =_eggd ;};if _fac :=_eeg .Get ("\u0052\u0054");_fac !=nil {_eda .RT =_fac ; };if _cgf :=_eeg .Get ("\u0049\u0054");_cgf !=nil {_eda .IT =_cgf ;};if _cbaa :=_eeg .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_cbaa !=nil {_eda .ExData =_cbaa ;};return _eda ,nil ;}; // ToPdfObject converts the pdfCIDFontType2 to a PDF representation. func (_ebdce *pdfCIDFontType2 )ToPdfObject ()_eg .PdfObject {if _ebdce ._ddfb ==nil {_ebdce ._ddfb =&_eg .PdfIndirectObject {};};_ccfcg :=_ebdce .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"); _ebdce ._ddfb .PdfObject =_ccfcg ;if _ebdce .CIDSystemInfo !=nil {_ccfcg .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_ebdce .CIDSystemInfo );};if _ebdce .DW !=nil {_ccfcg .Set ("\u0044\u0057",_ebdce .DW );};if _ebdce .DW2 !=nil {_ccfcg .Set ("\u0044\u0057\u0032",_ebdce .DW2 ); };if _ebdce .W !=nil {_ccfcg .Set ("\u0057",_ebdce .W );};if _ebdce .W2 !=nil {_ccfcg .Set ("\u0057\u0032",_ebdce .W2 );};if _ebdce .CIDToGIDMap !=nil {_ccfcg .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_ebdce .CIDToGIDMap );}; return _ebdce ._ddfb ;}; // NewPdfAction returns an initialized generic PDF action model. func NewPdfAction ()*PdfAction {_da :=&PdfAction {};_da ._ege =_eg .MakeIndirectObject (_eg .MakeDict ());return _da ;}; // PdfActionGoTo3DView represents a GoTo3DView action. type PdfActionGoTo3DView struct{*PdfAction ;TA _eg .PdfObject ;V _eg .PdfObject ;}; // AddAnnotation appends `annot` to the list of page annotations. func (_faagd *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _faagd ._egge ==nil {_faagd .GetAnnotations ();};_faagd ._egge =append (_faagd ._egge ,annot );};func _cafd (_ggbdgd []byte )([]byte ,error ){_ggccb :=_d .New ();if _ ,_ffaab :=_de .Copy (_ggccb ,_cbd .NewReader (_ggbdgd )); _ffaab !=nil {return nil ,_ffaab ;};return _ggccb .Sum (nil ),nil ;}; // ImageToRGB converts ICCBased colorspace image to RGB and returns the result. func (_agag *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _agag .Alternate ==nil {_dbg .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 _agag .N ==1{_dbg .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"); _dggb :=NewPdfColorspaceDeviceGray ();return _dggb .ImageToRGB (img );}else if _agag .N ==3{_dbg .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 _agag .N ==4{_dbg .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"); _eefa :=NewPdfColorspaceDeviceCMYK ();return _eefa .ImageToRGB (img );}else {return img ,_bbd .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"); };};_dbg .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",_agag ); _dbad ,_bfae :=_agag .Alternate .ImageToRGB (img );_dbg .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_dbg .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_dbad ); return _dbad ,_bfae ;};func (_eecea *PdfFont )baseFields ()*fontCommon {if _eecea ._gdcab ==nil {_dbg .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 _eecea ._gdcab .baseFields ();};func _abafe ()string {_abeg :="\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 _ecafc _cbd .Buffer ; for _dbcefc :=0;_dbcefc < 6;_dbcefc ++{_ecafc .WriteRune (rune (_abeg [_gf .Intn (len (_abeg ))]));};return _ecafc .String ();}; // ToPdfObject returns a PDF object representation of the outline destination. func (_gfbcae OutlineDest )ToPdfObject ()_eg .PdfObject {if (_gfbcae .PageObj ==nil &&_gfbcae .Page < 0)||_gfbcae .Mode ==""{return _eg .MakeNull ();};_dgadd :=_eg .MakeArray ();if _gfbcae .PageObj !=nil {_dgadd .Append (_gfbcae .PageObj );}else {_dgadd .Append (_eg .MakeInteger (_gfbcae .Page )); };_dgadd .Append (_eg .MakeName (_gfbcae .Mode ));switch _gfbcae .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_dgadd .Append (_eg .MakeFloat (_gfbcae .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_dgadd .Append (_eg .MakeFloat (_gfbcae .X )); case "\u0058\u0059\u005a":_dgadd .Append (_eg .MakeFloat (_gfbcae .X ));_dgadd .Append (_eg .MakeFloat (_gfbcae .Y ));_dgadd .Append (_eg .MakeFloat (_gfbcae .Zoom ));default:_dgadd .Set (1,_eg .MakeName ("\u0046\u0069\u0074"));};return _dgadd ;};func (_bgabfa *PdfReader )newPdfFieldSignatureFromDict (_bbdfd *_eg .PdfObjectDictionary )(*PdfFieldSignature ,error ){_eecc :=&PdfFieldSignature {}; _fcbf ,_aeeb :=_eg .GetIndirect (_bbdfd .Get ("\u0056"));if _aeeb {var _agab error ;_eecc .V ,_agab =_bgabfa .newPdfSignatureFromIndirect (_fcbf );if _agab !=nil {return nil ,_agab ;};};_eecc .Lock ,_ =_eg .GetIndirect (_bbdfd .Get ("\u004c\u006f\u0063\u006b")); _eecc .SV ,_ =_eg .GetIndirect (_bbdfd .Get ("\u0053\u0056"));return _eecc ,nil ;}; // GetNumComponents returns the number of color components (1 for Separation). func (_edab *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};func (_ddae *PdfReader )newPdfAnnotationWidgetFromDict (_efee *_eg .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_eegg :=PdfAnnotationWidget {};_eegg .H =_efee .Get ("\u0048"); _eegg .MK =_efee .Get ("\u004d\u004b");_eegg .A =_efee .Get ("\u0041");_eegg .AA =_efee .Get ("\u0041\u0041");_eegg .BS =_efee .Get ("\u0042\u0053");_eegg .Parent =_efee .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_eegg ,nil ;}; // 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 {_gcdbd ,_ffbbg :=NewStandard14Font (basefont );if _ffbbg !=nil {panic (_e .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 _gcdbd ;};func _dbae (_aecc _eg .PdfObject )(map[_cec .CharCode ]float64 ,error ){if _aecc ==nil {return nil ,nil ;};_edged ,_ecegf :=_eg .GetArray (_aecc );if !_ecegf {return nil ,nil ;};_bfbf :=map[_cec .CharCode ]float64 {};_ggfcb :=_edged .Len (); for _adbef :=0;_adbef < _ggfcb -1;_adbef ++{_fbdcf :=_eg .TraceToDirectObject (_edged .Get (_adbef ));_ccgab ,_defd :=_eg .GetIntVal (_fbdcf );if !_defd {return nil ,_e .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_adbef ,_fbdcf ); };_adbef ++;if _adbef > _ggfcb -1{return nil ,_e .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",_edged );};_aabc :=_eg .TraceToDirectObject (_edged .Get (_adbef )); switch _aabc .(type ){case *_eg .PdfObjectArray :_ecebg ,_ :=_eg .GetArray (_aabc );if _fddbac ,_affce :=_ecebg .ToFloat64Array ();_affce ==nil {for _afbfc :=0;_afbfc < len (_fddbac );_afbfc ++{_bfbf [_cec .CharCode (_ccgab +_afbfc )]=_fddbac [_afbfc ]; };}else {return nil ,_e .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",_adbef ,_aabc );};case *_eg .PdfObjectInteger :_dcdff ,_ebce :=_eg .GetIntVal (_aabc ); if !_ebce {return nil ,_e .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",_adbef ,_aabc );};_adbef ++;if _adbef > _ggfcb -1{return nil ,_e .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",_edged ); };_acdcb :=_edged .Get (_adbef );_eaged ,_fbec :=_eg .GetNumberAsFloat (_acdcb );if _fbec !=nil {return nil ,_e .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",_adbef ,_acdcb ); };for _cfcce :=_ccgab ;_cfcce <=_dcdff ;_cfcce ++{_bfbf [_cec .CharCode (_cfcce )]=_eaged ;};default:return nil ,_e .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",_adbef ,_aabc ); };};return _bfbf ,nil ;}; // ToPdfObject implements interface PdfModel. func (_fgbd *PdfAnnotationFileAttachment )ToPdfObject ()_eg .PdfObject {_fgbd .PdfAnnotation .ToPdfObject ();_gaefa :=_fgbd ._gag ;_ebab :=_gaefa .PdfObject .(*_eg .PdfObjectDictionary );_fgbd .PdfAnnotationMarkup .appendToPdfDictionary (_ebab );_ebab .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074")); _ebab .SetIfNotNil ("\u0046\u0053",_fgbd .FS );_ebab .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fgbd .Name );return _gaefa ;}; // PdfActionGoToR represents a GoToR action. type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _eg .PdfObject ;NewWindow _eg .PdfObject ;}; // EncryptOptions represents encryption options for an output PDF. type EncryptOptions struct{Permissions _fc .Permissions ;Algorithm EncryptionAlgorithm ;}; // UpdateObject marks `obj` as updated and to be included in the following revision. func (_ffdd *PdfAppender )UpdateObject (obj _eg .PdfObject ){_ffdd .replaceObject (obj ,obj );if _ ,_fedf :=_ffdd ._adge [obj ];!_fedf {_ffdd ._acda =append (_ffdd ._acda ,obj );_ffdd ._adge [obj ]=struct{}{};};}; // String returns a human readable description of `fontfile`. func (_fdce *fontFile )String ()string {_ecefb :="\u005b\u004e\u006f\u006e\u0065\u005d";if _fdce ._feffd !=nil {_ecefb =_fdce ._feffd .String ();};return _e .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_fdce ._dadg ,_ecefb ); };func _becf (_gfdd _eg .PdfObject )(*PdfColorspaceCalGray ,error ){_caaf :=NewPdfColorspaceCalGray ();if _bbea ,_fede :=_gfdd .(*_eg .PdfIndirectObject );_fede {_caaf ._gccdc =_bbea ;};_gfdd =_eg .TraceToDirectObject (_gfdd );_gdac ,_bacba :=_gfdd .(*_eg .PdfObjectArray ); if !_bacba {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gdac .Len ()!=2{return nil ,_e .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"); };_gfdd =_eg .TraceToDirectObject (_gdac .Get (0));_afcfb ,_bacba :=_gfdd .(*_eg .PdfObjectName );if !_bacba {return nil ,_e .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 *_afcfb !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_e .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_gfdd =_eg .TraceToDirectObject (_gdac .Get (1)); _gaee ,_bacba :=_gfdd .(*_eg .PdfObjectDictionary );if !_bacba {return nil ,_e .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"); };_gfdd =_gaee .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_gfdd =_eg .TraceToDirectObject (_gfdd );_ecfdc ,_bacba :=_gfdd .(*_eg .PdfObjectArray );if !_bacba {return nil ,_e .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 _ecfdc .Len ()!=3{return nil ,_e .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");};_addc ,_adbb :=_ecfdc .GetAsFloat64Slice (); if _adbb !=nil {return nil ,_adbb ;};_caaf .WhitePoint =_addc ;_gfdd =_gaee .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _gfdd !=nil {_gfdd =_eg .TraceToDirectObject (_gfdd );_fdbe ,_bebf :=_gfdd .(*_eg .PdfObjectArray );if !_bebf {return nil ,_e .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 _fdbe .Len ()!=3{return nil ,_e .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");};_bdc ,_dbfb :=_fdbe .GetAsFloat64Slice (); if _dbfb !=nil {return nil ,_dbfb ;};_caaf .BlackPoint =_bdc ;};_gfdd =_gaee .Get ("\u0047\u0061\u006dm\u0061");if _gfdd !=nil {_gfdd =_eg .TraceToDirectObject (_gfdd );_aagc ,_gfaa :=_eg .GetNumberAsFloat (_gfdd );if _gfaa !=nil {return nil ,_e .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072"); };_caaf .Gamma =_aagc ;};return _caaf ,nil ;}; // GetContext returns the action context which contains the specific type-dependent context. // The context represents the subaction. func (_ca *PdfAction )GetContext ()PdfModel {if _ca ==nil {return nil ;};return _ca ._cea ;}; // 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 ()_eg .PdfObject ;GetContainingPdfObject ()_eg .PdfObject ;};func _adged (_dbcec *_eg .PdfObjectDictionary ,_adcbf *fontCommon )(*pdfCIDFontType0 ,error ){if _adcbf ._fgbbb !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_dbg .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",_adcbf ); return nil ,_eg .ErrRangeError ;};_bbcbc :=_aebfd (_adcbf );_cgcb ,_bbbeb :=_eg .GetDict (_dbcec .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_bbbeb {_dbg .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",_adcbf ); return nil ,ErrRequiredAttributeMissing ;};_bbcbc .CIDSystemInfo =_cgcb ;_bbcbc .DW =_dbcec .Get ("\u0044\u0057");_bbcbc .W =_dbcec .Get ("\u0057");_bbcbc .DW2 =_dbcec .Get ("\u0044\u0057\u0032");_bbcbc .W2 =_dbcec .Get ("\u0057\u0032");_bbcbc ._gfbab =1000.0; if _egeb ,_cedc :=_eg .GetNumberAsFloat (_bbcbc .DW );_cedc ==nil {_bbcbc ._gfbab =_egeb ;};_fggg ,_gcdcf :=_dbae (_bbcbc .W );if _gcdcf !=nil {return nil ,_gcdcf ;};if _fggg ==nil {_fggg =map[_cec .CharCode ]float64 {};};_bbcbc ._fedfd =_fggg ;return _bbcbc ,nil ; }; // PdfColorCalGray represents a CalGray colorspace. type PdfColorCalGray float64 ; // AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc. func (_efafa *Image )AlphaMap (mapFunc AlphaMapFunc ){for _ddcdg ,_cggc :=range _efafa ._fcec {_efafa ._fcec [_ddcdg ]=mapFunc (_cggc );};}; // SetShadingByName sets a shading resource specified by keyName. func (_dgbc *PdfPageResources )SetShadingByName (keyName _eg .PdfObjectName ,shadingObj _eg .PdfObject )error {if _dgbc .Shading ==nil {_dgbc .Shading =_eg .MakeDict ();};_egfac ,_beaba :=_dgbc .Shading .(*_eg .PdfObjectDictionary );if !_beaba {return _eg .ErrTypeError ; };_egfac .Set (keyName ,shadingObj );return nil ;}; // 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 _eg .StreamEncoder )(*XObjectImage ,error ){_aaacg :=NewXObjectImage ();return UpdateXObjectImageFromImage (_aaacg ,img ,cs ,encoder );}; // GetCapHeight returns the CapHeight of the font `descriptor`. func (_eagec *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _eg .GetNumberAsFloat (_eagec .CapHeight );}; // PdfColorspaceCalRGB stores A, B, C components type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_ddaeb *_eg .PdfObjectDictionary ;_gdef *_eg .PdfIndirectObject ;}; // NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object. func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}}; // 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 (_fcbfc *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_fbcf :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_gbbff ,_fddbb :=_fcbfc .GetNumPages ();if _fddbb !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fddbb ); return nil ,_fddbb ;};for _dfafcd :=1;_dfafcd <=_gbbff ;_dfafcd ++{_cegga ,_defed :=_fcbfc .GetPage (_dfafcd );if _defed !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_defed );return nil ,_defed ;};if opts .PageProcessCallback !=nil {_defed =opts .PageProcessCallback (_dfafcd ,_cegga ); if _defed !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_defed );return nil ,_defed ;};}else if opts .PageCallback !=nil {opts .PageCallback (_dfafcd ,_cegga );};_defed =_fbcf .AddPage (_cegga );if _defed !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_defed ); return nil ,_defed ;};};_fbcf ._dacab =_fcbfc .PdfVersion ().Major ;_fbcf ._ecae =_fcbfc .PdfVersion ().Minor ;if !opts .SkipInfo {_fdcdf ,_egfed :=_fcbfc .GetPdfInfo ();if _egfed !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_egfed ); }else {_fbcf ._ggca .PdfObject =_fdcdf .ToPdfObject ();};};if !opts .SkipAcroForm {_fdecd :=_fbcf .SetForms (_fcbfc .AcroForm );if _fdecd !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fdecd );return nil ,_fdecd ;};};if !opts .SkipOutlines {_fbcf .AddOutlineTree (_fcbfc .GetOutlineTree ()); };if !opts .SkipOCProperties {_cecfgc ,_bbcf :=_fcbfc .GetOCProperties ();if _bbcf !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbcf );}else {_bbcf =_fbcf .SetOCProperties (_cecfgc );if _bbcf !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbcf ); };};};if !opts .SkipPageLabels {_eafdg ,_aaag :=_fcbfc .GetPageLabels ();if _aaag !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aaag );}else {_aaag =_fbcf .SetPageLabels (_eafdg );if _aaag !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aaag ); };};};if !opts .SkipNamedDests {_ggafd ,_cece :=_fcbfc .GetNamedDestinations ();if _cece !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cece );}else {_cece =_fbcf .SetNamedDestinations (_ggafd );if _cece !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cece ); };};};if !opts .SkipRotation &&_fcbfc .Rotate !=nil {if _dcee :=_fbcf .SetRotation (*_fcbfc .Rotate );_dcee !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dcee );};};return &_fbcf ,nil ;};var ImageHandling ImageHandler =DefaultImageHandler {}; func _dcaf (_addb *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_addb }}; // ColorAt returns the color of the image pixel specified by the x and y coordinates. func (_fcabfd *Image )ColorAt (x ,y int )(_f .Color ,error ){_fegbg :=_ff .BytesPerLine (int (_fcabfd .Width ),int (_fcabfd .BitsPerComponent ),_fcabfd .ColorComponents );switch _fcabfd .ColorComponents {case 1:return _ff .ColorAtGrayscale (x ,y ,int (_fcabfd .BitsPerComponent ),_fegbg ,_fcabfd .Data ,_fcabfd ._aaeac ); case 3:return _ff .ColorAtNRGBA (x ,y ,int (_fcabfd .Width ),_fegbg ,int (_fcabfd .BitsPerComponent ),_fcabfd .Data ,_fcabfd ._fcec ,_fcabfd ._aaeac );case 4:return _ff .ColorAtCMYK (x ,y ,int (_fcabfd .Width ),_fcabfd .Data ,_fcabfd ._aaeac );};_dbg .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",_fcabfd .ColorComponents ,_fcabfd .BitsPerComponent ); return nil ,_bbd .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");};func (_eddeeb *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _cdff :=_eddeeb ._eecfe ; _cdff !=nil {return _cdff ;};return _eddeeb ._ggce ;}; // ToPdfObject returns the choice field dictionary within an indirect object (container). func (_ddgg *PdfFieldChoice )ToPdfObject ()_eg .PdfObject {_ddgg .PdfField .ToPdfObject ();_ffff :=_ddgg ._afbe ;_cbaf :=_ffff .PdfObject .(*_eg .PdfObjectDictionary );_cbaf .Set ("\u0046\u0054",_eg .MakeName ("\u0043\u0068"));if _ddgg .Opt !=nil {_cbaf .Set ("\u004f\u0070\u0074",_ddgg .Opt ); };if _ddgg .TI !=nil {_cbaf .Set ("\u0054\u0049",_ddgg .TI );};if _ddgg .I !=nil {_cbaf .Set ("\u0049",_ddgg .I );};return _ffff ;}; // 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 (_adgcd *PdfFieldButton )GetType ()ButtonType {_ceagc :=ButtonTypeCheckbox ;if _adgcd .Ff !=nil {if (uint32 (*_adgcd .Ff )&FieldFlagPushbutton .Mask ())> 0{_ceagc =ButtonTypePush ;}else if (uint32 (*_adgcd .Ff )&FieldFlagRadio .Mask ())> 0{_ceagc =ButtonTypeRadio ; };};return _ceagc ;};var _dfee =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":{}}; // Initialize initializes the PdfSignature. func (_baage *PdfSignature )Initialize ()error {if _baage .Handler ==nil {return _bbd .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 _baage .Handler .InitSignature (_baage );};func (_ddfccc *LTV )buildCertChain (_fcdb ,_febd []*_ce .Certificate )([]*_ce .Certificate ,map[string ]*_ce .Certificate ,error ){_ccfd :=map[string ]*_ce .Certificate {};for _ ,_beac :=range _fcdb {_ccfd [_beac .Subject .CommonName ]=_beac ; };_edbbe :=_fcdb ;for _ ,_efddb :=range _febd {_gbgba :=_efddb .Subject .CommonName ;if _ ,_dcgbff :=_ccfd [_gbgba ];_dcgbff {continue ;};_ccfd [_gbgba ]=_efddb ;_edbbe =append (_edbbe ,_efddb );};if len (_edbbe )==0{return nil ,nil ,ErrSignNoCertificates ; };var _bdbe error ;for _dadbc :=_edbbe [0];_dadbc !=nil &&!_ddfccc .CertClient .IsCA (_dadbc );{_fdcgd ,_gbec :=_ccfd [_dadbc .Issuer .CommonName ];if !_gbec {if _fdcgd ,_bdbe =_ddfccc .CertClient .GetIssuer (_dadbc );_bdbe !=nil {_dbg .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",_bdbe ); break ;};_ccfd [_dadbc .Issuer .CommonName ]=_fdcgd ;_edbbe =append (_edbbe ,_fdcgd );};_dadbc =_fdcgd ;};return _edbbe ,_ccfd ,nil ;}; // ImageToRGB converts CalRGB colorspace image to RGB and returns the result. func (_bbbg *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_fdgbb :=_ccg .NewReader (img .getBase ());_dbfa :=_ff .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_cabcd :=_ccg .NewWriter (_dbfa ); _bdfc :=_bc .Pow (2,float64 (img .BitsPerComponent ))-1;_fbbg :=make ([]uint32 ,3);var (_egag error ;_cgacd ,_bbgad ,_fbcd ,_ggfa ,_cecb ,_ffef float64 ;);for {_egag =_fdgbb .ReadSamples (_fbbg );if _egag ==_de .EOF {break ;}else if _egag !=nil {return img ,_egag ; };_cgacd =float64 (_fbbg [0])/_bdfc ;_bbgad =float64 (_fbbg [1])/_bdfc ;_fbcd =float64 (_fbbg [2])/_bdfc ;_ggfa =_bbbg .Matrix [0]*_bc .Pow (_cgacd ,_bbbg .Gamma [0])+_bbbg .Matrix [3]*_bc .Pow (_bbgad ,_bbbg .Gamma [1])+_bbbg .Matrix [6]*_bc .Pow (_fbcd ,_bbbg .Gamma [2]); _cecb =_bbbg .Matrix [1]*_bc .Pow (_cgacd ,_bbbg .Gamma [0])+_bbbg .Matrix [4]*_bc .Pow (_bbgad ,_bbbg .Gamma [1])+_bbbg .Matrix [7]*_bc .Pow (_fbcd ,_bbbg .Gamma [2]);_ffef =_bbbg .Matrix [2]*_bc .Pow (_cgacd ,_bbbg .Gamma [0])+_bbbg .Matrix [5]*_bc .Pow (_bbgad ,_bbbg .Gamma [1])+_bbbg .Matrix [8]*_bc .Pow (_fbcd ,_bbbg .Gamma [2]); _cgacd =3.240479*_ggfa +-1.537150*_cecb +-0.498535*_ffef ;_bbgad =-0.969256*_ggfa +1.875992*_cecb +0.041556*_ffef ;_fbcd =0.055648*_ggfa +-0.204043*_cecb +1.057311*_ffef ;_cgacd =_bc .Min (_bc .Max (_cgacd ,0),1.0);_bbgad =_bc .Min (_bc .Max (_bbgad ,0),1.0); _fbcd =_bc .Min (_bc .Max (_fbcd ,0),1.0);_fbbg [0]=uint32 (_cgacd *_bdfc );_fbbg [1]=uint32 (_bbgad *_bdfc );_fbbg [2]=uint32 (_fbcd *_bdfc );if _egag =_cabcd .WriteSamples (_fbbg );_egag !=nil {return img ,_egag ;};};return _egbde (&_dbfa ),nil ;};func _abbg ()string {return _dbg .Version }; func (_fgeg *PdfReader )newPdfAnnotationPolygonFromDict (_bgaa *_eg .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_fddd :=PdfAnnotationPolygon {};_cgda ,_gfga :=_fgeg .newPdfAnnotationMarkupFromDict (_bgaa );if _gfga !=nil {return nil ,_gfga ;}; _fddd .PdfAnnotationMarkup =_cgda ;_fddd .Vertices =_bgaa .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_fddd .LE =_bgaa .Get ("\u004c\u0045");_fddd .BS =_bgaa .Get ("\u0042\u0053");_fddd .IC =_bgaa .Get ("\u0049\u0043");_fddd .BE =_bgaa .Get ("\u0042\u0045"); _fddd .IT =_bgaa .Get ("\u0049\u0054");_fddd .Measure =_bgaa .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_fddd ,nil ;}; // 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 (_bbeae *PdfWriter )SetRotation (rotate int64 )error {_efffa ,_gfbeg :=_eg .GetDict (_bbeae ._afbga );if !_gfbeg {return ErrTypeCheck ;};_efffa .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_eg .MakeInteger (rotate ));return nil ;};func (_acgdef *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _acgdef ._cdggc .GetCrypter ()!=nil &&!_acgdef ._cdggc .IsAuthenticated (){return nil ,_e .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"); };_deefd :=_acgdef ._efdg ;_defg :=_deefd .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _defg ==nil {return nil ,nil ;};_dcffc ,_ :=_eg .GetIndirect (_defg );_defg =_eg .TraceToDirectObject (_defg );if _eg .IsNullObject (_defg ){_dbg .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 ;};_bgca ,_ebdcc :=_eg .GetDict (_defg );if !_ebdcc {_dbg .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_defg );_dbg .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073"); return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_defg );};_dbg .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073"); _dbg .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 !_acgdef ._bebe {_dcbd :=_acgdef .traverseObjectData (_bgca ); if _dcbd !=nil {_dbg .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",_dcbd ); return nil ,_dcbd ;};};_fbadd ,_defa :=_acgdef .newPdfAcroFormFromDict (_dcffc ,_bgca );if _defa !=nil {return nil ,_defa ;};return _fbadd ,nil ;}; // ToPdfObject returns colorspace in a PDF object format [name dictionary] func (_aecfe *PdfColorspaceCalRGB )ToPdfObject ()_eg .PdfObject {_fbac :=&_eg .PdfObjectArray {};_fbac .Append (_eg .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_bcaf :=_eg .MakeDict ();if _aecfe .WhitePoint !=nil {_bfeg :=_eg .MakeArray (_eg .MakeFloat (_aecfe .WhitePoint [0]),_eg .MakeFloat (_aecfe .WhitePoint [1]),_eg .MakeFloat (_aecfe .WhitePoint [2])); _bcaf .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_bfeg );}else {_dbg .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 _aecfe .BlackPoint !=nil {_fdfc :=_eg .MakeArray (_eg .MakeFloat (_aecfe .BlackPoint [0]),_eg .MakeFloat (_aecfe .BlackPoint [1]),_eg .MakeFloat (_aecfe .BlackPoint [2]));_bcaf .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_fdfc ); };if _aecfe .Gamma !=nil {_eage :=_eg .MakeArray (_eg .MakeFloat (_aecfe .Gamma [0]),_eg .MakeFloat (_aecfe .Gamma [1]),_eg .MakeFloat (_aecfe .Gamma [2]));_bcaf .Set ("\u0047\u0061\u006dm\u0061",_eage );};if _aecfe .Matrix !=nil {_gbdb :=_eg .MakeArray (_eg .MakeFloat (_aecfe .Matrix [0]),_eg .MakeFloat (_aecfe .Matrix [1]),_eg .MakeFloat (_aecfe .Matrix [2]),_eg .MakeFloat (_aecfe .Matrix [3]),_eg .MakeFloat (_aecfe .Matrix [4]),_eg .MakeFloat (_aecfe .Matrix [5]),_eg .MakeFloat (_aecfe .Matrix [6]),_eg .MakeFloat (_aecfe .Matrix [7]),_eg .MakeFloat (_aecfe .Matrix [8])); _bcaf .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gbdb );};_fbac .Append (_bcaf );if _aecfe ._gdef !=nil {_aecfe ._gdef .PdfObject =_fbac ;return _aecfe ._gdef ;};return _fbac ;};func (_bfd *PdfReader )newPdfAnnotationLineFromDict (_bda *_eg .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_cbaac :=PdfAnnotationLine {}; _dgae ,_cgec :=_bfd .newPdfAnnotationMarkupFromDict (_bda );if _cgec !=nil {return nil ,_cgec ;};_cbaac .PdfAnnotationMarkup =_dgae ;_cbaac .L =_bda .Get ("\u004c");_cbaac .BS =_bda .Get ("\u0042\u0053");_cbaac .LE =_bda .Get ("\u004c\u0045");_cbaac .IC =_bda .Get ("\u0049\u0043"); _cbaac .LL =_bda .Get ("\u004c\u004c");_cbaac .LLE =_bda .Get ("\u004c\u004c\u0045");_cbaac .Cap =_bda .Get ("\u0043\u0061\u0070");_cbaac .IT =_bda .Get ("\u0049\u0054");_cbaac .LLO =_bda .Get ("\u004c\u004c\u004f");_cbaac .CP =_bda .Get ("\u0043\u0050"); _cbaac .Measure =_bda .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");_cbaac .CO =_bda .Get ("\u0043\u004f");return &_cbaac ,nil ;}; // ToPdfObject implements interface PdfModel. func (_faag *PdfAnnotationSquiggly )ToPdfObject ()_eg .PdfObject {_faag .PdfAnnotation .ToPdfObject ();_deb :=_faag ._gag ;_cafc :=_deb .PdfObject .(*_eg .PdfObjectDictionary );_faag .PdfAnnotationMarkup .appendToPdfDictionary (_cafc );_cafc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079")); _cafc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_faag .QuadPoints );return _deb ;};func (_fbe *PdfReader )newPdfActionImportDataFromDict (_cafg *_eg .PdfObjectDictionary )(*PdfActionImportData ,error ){_ebfg ,_gfad :=_gbbe (_cafg .Get ("\u0046")); if _gfad !=nil {return nil ,_gfad ;};return &PdfActionImportData {F :_ebfg },nil ;}; // ToPdfObject implements interface PdfModel. func (_bcf *PdfAnnotationMovie )ToPdfObject ()_eg .PdfObject {_bcf .PdfAnnotation .ToPdfObject ();_ffge :=_bcf ._gag ;_fdgb :=_ffge .PdfObject .(*_eg .PdfObjectDictionary );_fdgb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u004d\u006f\u0076i\u0065")); _fdgb .SetIfNotNil ("\u0054",_bcf .T );_fdgb .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_bcf .Movie );_fdgb .SetIfNotNil ("\u0041",_bcf .A );return _ffge ;}; // 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 (_bacf *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_abcf :=vals [0];if _abcf < 0.0||_abcf > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };_ffca :=vals [1];if _ffca < 0.0||_ffca > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aefb :=vals [2];if _aefb < 0.0||_aefb > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };_bee :=vals [3];if _bee < 0.0||_bee > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_baad :=NewPdfColorDeviceCMYK (_abcf ,_ffca ,_aefb ,_bee );return _baad ,nil ;};func (_dcf *PdfReader )newPdfActionSoundFromDict (_ecc *_eg .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_ecc .Get ("\u0053\u006f\u0075n\u0064"),Volume :_ecc .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_ecc .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_ecc .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_ecc .Get ("\u004d\u0069\u0078")},nil ; }; // NewPdfActionJavaScript returns a new "javaScript" action. func NewPdfActionJavaScript ()*PdfActionJavaScript {_ebe :=NewPdfAction ();_gee :=&PdfActionJavaScript {};_gee .PdfAction =_ebe ;_ebe .SetContext (_gee );return _gee ;}; // IsRadio returns true if the button field represents a radio button, false otherwise. func (_gedb *PdfFieldButton )IsRadio ()bool {return _gedb .GetType ()==ButtonTypeRadio }; // NewPdfField returns an initialized PdfField. func NewPdfField ()*PdfField {return &PdfField {_afbe :_eg .MakeIndirectObject (_eg .MakeDict ())}}; // GetPrimitiveFromModel returns the primitive object corresponding to the input `model`. func (_cbaag *modelManager )GetPrimitiveFromModel (model PdfModel )_eg .PdfObject {_ffabe ,_bfebd :=_cbaag ._eegb [model ];if !_bfebd {return nil ;};return _ffabe ;}; // 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 (_fecad *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _bada []*PdfOutlineTreeNode ;var _aceea []string ;var _gbdd func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_gbdd =func (_cacbb *PdfOutlineTreeNode ,_ffdef *[]*PdfOutlineTreeNode ,_bbagf *[]string ,_adcdc int ){if _cacbb ==nil {return ; };if _cacbb ._dbaeb ==nil {_dbg .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 ;};_gagaa ,_egeae :=_cacbb ._dbaeb .(*PdfOutlineItem );if _egeae {*_ffdef =append (*_ffdef ,&_gagaa .PdfOutlineTreeNode ); _agcge :=_dc .Repeat ("\u0020",_adcdc *2)+_gagaa .Title .Decoded ();*_bbagf =append (*_bbagf ,_agcge );};if _cacbb .First !=nil {_gdedf :=_dc .Repeat ("\u0020",_adcdc *2)+"\u002b";*_bbagf =append (*_bbagf ,_gdedf );_gbdd (_cacbb .First ,_ffdef ,_bbagf ,_adcdc +1); };if _egeae &&_gagaa .Next !=nil {_gbdd (_gagaa .Next ,_ffdef ,_bbagf ,_adcdc );};};_gbdd (_fecad ._ebgea ,&_bada ,&_aceea ,0);return _bada ,_aceea ,nil ;};func (_dcbfaa *Image )samplesAddPadding (_eafee []uint32 )[]uint32 {_bebae :=_ff .BytesPerLine (int (_dcbfaa .Width ),int (_dcbfaa .BitsPerComponent ),_dcbfaa .ColorComponents )*(8/int (_dcbfaa .BitsPerComponent )); _gaae :=_bebae *int (_dcbfaa .Height );if len (_eafee )==_gaae {return _eafee ;};_eebgd :=make ([]uint32 ,_gaae );_fgcgd :=int (_dcbfaa .Width )*_dcbfaa .ColorComponents ;for _bfbb :=0;_bfbb < int (_dcbfaa .Height );_bfbb ++{_acgf :=_bfbb *int (_dcbfaa .Width ); _dgaa :=_bfbb *_bebae ;for _fdgca :=0;_fdgca < _fgcgd ;_fdgca ++{_eebgd [_dgaa +_fdgca ]=_eafee [_acgf +_fdgca ];};};return _eebgd ;}; // PdfWriter handles outputing PDF content. type PdfWriter struct{_eeeg *_eg .PdfIndirectObject ;_afbga *_eg .PdfIndirectObject ;_eacbf map[_eg .PdfObject ]struct{};_aecabb []_eg .PdfObject ;_bccbf map[_eg .PdfObject ]struct{};_afcgff []*_eg .PdfIndirectObject ;_ebeg *PdfOutlineTreeNode ;_ebaaa *_eg .PdfObjectDictionary ; _gcabd []_eg .PdfObject ;_ggca *_eg .PdfIndirectObject ;_fggeg *_g .Writer ;_agecc int64 ;_cfgdd error ;_ccag *_eg .PdfCrypt ;_fbdcc *_eg .PdfObjectDictionary ;_fbbfd *_eg .PdfIndirectObject ;_ecadc *_eg .PdfObjectArray ;_dacab int ;_ecae int ;_fdgeg *bool ; _cfadb map[_eg .PdfObject ][]*_eg .PdfObjectDictionary ;_adcgf *PdfAcroForm ;_efdcf Optimizer ;_fadgbb map[int ]crossReference ;_dfgff int64 ;ObjNumOffset int ;_aaedc bool ;_adcdd _eg .XrefTable ;_fcebcb int64 ;_cdedc int64 ;_cacc map[_eg .PdfObject ]int64 ; _aeceg map[_eg .PdfObject ]struct{};_fggebg string ;}; // PdfFilespec represents a file specification which can either refer to an external or embedded file. type PdfFilespec struct{Type _eg .PdfObject ;FS _eg .PdfObject ;F _eg .PdfObject ;UF _eg .PdfObject ;DOS _eg .PdfObject ;Mac _eg .PdfObject ;Unix _eg .PdfObject ;ID _eg .PdfObject ;V _eg .PdfObject ;EF _eg .PdfObject ;RF _eg .PdfObject ;Desc _eg .PdfObject ; CI _eg .PdfObject ;_fceg _eg .PdfObject ;}; // PdfActionTrans represents a trans action. type PdfActionTrans struct{*PdfAction ;Trans _eg .PdfObject ;}; // ToPdfObject returns a PDF object representation of the outline item. func (_abadg *OutlineItem )ToPdfObject ()_eg .PdfObject {_gcdf ,_ :=_abadg .ToPdfOutlineItem ();return _gcdf .ToPdfObject ();}; // PdfFunctionType4 is a Postscript calculator functions. type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_ea .PSProgram ;_fdgac *_ea .PSExecutor ;_efgdd []byte ;_egdfb *_eg .PdfObjectStream ;};type pdfFontType3 struct{fontCommon ;_bbfae *_eg .PdfIndirectObject ; // These fields are specific to Type 3 fonts. CharProcs _eg .PdfObject ;Encoding _eg .PdfObject ;FontBBox _eg .PdfObject ;FontMatrix _eg .PdfObject ;FirstChar _eg .PdfObject ;LastChar _eg .PdfObject ;Widths _eg .PdfObject ;Resources _eg .PdfObject ;_cgcec map[_cec .CharCode ]float64 ;_daeg _cec .TextEncoder ; }; // GetNamedDestinations returns the Names entry in the PDF catalog. // See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008). func (_daba *PdfReader )GetNamedDestinations ()(_eg .PdfObject ,error ){_gecbg :=_eg .ResolveReference (_daba ._efdg .Get ("\u004e\u0061\u006de\u0073"));if _gecbg ==nil {return nil ,nil ;};if !_daba ._bebe {_feagb :=_daba .traverseObjectData (_gecbg ); if _feagb !=nil {return nil ,_feagb ;};};return _gecbg ,nil ;}; // WriteToFile writes the output PDF to file. func (_accf *PdfWriter )WriteToFile (outputFilePath string )error {_ebfe ,_acbcg :=_bg .Create (outputFilePath );if _acbcg !=nil {return _acbcg ;};defer _ebfe .Close ();return _accf .Write (_ebfe );};func _aceda (_dagdf *_eg .PdfObjectDictionary )(*PdfShadingPattern ,error ){_fege :=&PdfShadingPattern {}; _gggda :=_dagdf .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _gggda ==nil {_dbg .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_bgade ,_aaege :=_dcafge (_gggda ); if _aaege !=nil {_dbg .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_aaege );return nil ,_aaege ;};_fege .Shading =_bgade ;if _bbgd :=_dagdf .Get ("\u004d\u0061\u0074\u0072\u0069\u0078"); _bbgd !=nil {_cegfe ,_dfdbd :=_bbgd .(*_eg .PdfObjectArray );if !_dfdbd {_dbg .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",_bbgd );return nil ,_eg .ErrTypeError ; };_fege .Matrix =_cegfe ;};if _gedg :=_dagdf .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_gedg !=nil {_fege .ExtGState =_gedg ;};return _fege ,nil ;}; // R returns the value of the red component of the color. func (_baded *PdfColorDeviceRGB )R ()float64 {return _baded [0]}; // PdfAnnotationText represents Text annotations. // (Section 12.5.6.4 p. 402). type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _eg .PdfObject ;Name _eg .PdfObject ;State _eg .PdfObject ;StateModel _eg .PdfObject ;}; // NewPdfColorDeviceCMYK returns a new CMYK32 color. func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_aggb :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_aggb ;}; // CustomKeys returns all custom info keys as list. func (_gdfbc *PdfInfo )CustomKeys ()[]string {if _gdfbc ._fbfgb ==nil {return nil ;};_fdfab :=make ([]string ,len (_gdfbc ._fbfgb .Keys ()));for _ ,_ddbb :=range _gdfbc ._fbfgb .Keys (){_fdfab =append (_fdfab ,_ddbb .String ());};return _fdfab ;}; // NewLTV returns a new LTV client. func NewLTV (appender *PdfAppender )(*LTV ,error ){_cgcdf :=appender .Reader .DSS ;if _cgcdf ==nil {_cgcdf =NewDSS ();};if _ggggg :=_cgcdf .generateHashMaps ();_ggggg !=nil {return nil ,_ggggg ;};return <V {CertClient :_cbf .NewCertClient (),OCSPClient :_cbf .NewOCSPClient (),CRLClient :_cbf .NewCRLClient (),SkipExisting :true ,_caadf :appender ,_fgada :_cgcdf },nil ; }; // ToPdfObject implements interface PdfModel. func (_dbfc *PdfActionImportData )ToPdfObject ()_eg .PdfObject {_dbfc .PdfAction .ToPdfObject ();_dca :=_dbfc ._ege ;_ebf :=_dca .PdfObject .(*_eg .PdfObjectDictionary );_ebf .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeImportData )));if _dbfc .F !=nil {_ebf .Set ("\u0046",_dbfc .F .ToPdfObject ()); };return _dca ;}; // ImageToRGB convert an indexed image to RGB. func (_addgc *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_addgc .Base .GetNumComponents ();if N < 1{return Image {},_e .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 ); };_cfbbe :=_ff .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._fcec ,img ._aaeac );_bggf :=_ccg .NewReader (img .getBase ());_caaa :=_ccg .NewWriter (_cfbbe );var (_efbfcg uint32 ;_cgbf int ;_gfed error ;);for {_efbfcg ,_gfed =_bggf .ReadSample (); if _gfed ==_de .EOF {break ;}else if _gfed !=nil {return img ,_gfed ;};_cgbf =int (_efbfcg );_dbg .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",_cgbf ,N ,len (_addgc ._dbcc )); if (_cgbf +1)*N > len (_addgc ._dbcc ){_cgbf =len (_addgc ._dbcc )/N -1;_dbg .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_cgbf );if _cgbf < 0{_dbg .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 _dcfa :=_cgbf *N ;_dcfa < (_cgbf +1)*N ;_dcfa ++{if _gfed =_caaa .WriteSample (uint32 (_addgc ._dbcc [_dcfa ]));_gfed !=nil {return img ,_gfed ;};};};return _addgc .Base .ImageToRGB (_egbde (&_cfbbe ));}; // Hasher is the interface that wraps the basic Write method. type Hasher interface{Write (_edbda []byte )(_bedfe int ,_acedb error );}; // ToPdfObject implements interface PdfModel. func (_aae *PdfActionSound )ToPdfObject ()_eg .PdfObject {_aae .PdfAction .ToPdfObject ();_gbb :=_aae ._ege ;_fcfb :=_gbb .PdfObject .(*_eg .PdfObjectDictionary );_fcfb .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeSound )));_fcfb .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_aae .Sound ); _fcfb .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_aae .Volume );_fcfb .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_aae .Synchronous );_fcfb .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_aae .Repeat ); _fcfb .SetIfNotNil ("\u004d\u0069\u0078",_aae .Mix );return _gbb ;}; // NewPdfWriter initializes a new PdfWriter. func NewPdfWriter ()PdfWriter {_eeddeb :=PdfWriter {};_eeddeb ._bccbf =map[_eg .PdfObject ]struct{}{};_eeddeb ._aecabb =[]_eg .PdfObject {};_eeddeb ._cfadb =map[_eg .PdfObject ][]*_eg .PdfObjectDictionary {};_eeddeb ._aeceg =map[_eg .PdfObject ]struct{}{}; _eeddeb ._dacab =1;_eeddeb ._ecae =3;_aeddc :=_eg .MakeDict ();_aegcf :=[]struct{_ddeeea _eg .PdfObjectName ;_gdefd string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_cfabd ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_ddgae ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_edca ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_ebaad ()},{"\u0054\u0069\u0074l\u0065",_caefc ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_edgbb ()}}; for _ ,_abdb :=range _aegcf {if _abdb ._gdefd !=""{_aeddc .Set (_abdb ._ddeeea ,_eg .MakeString (_abdb ._gdefd ));};};if _gbeag :=_gdbee ();!_gbeag .IsZero (){if _gacfb ,_bcafd :=NewPdfDateFromTime (_gbeag );_bcafd ==nil {_aeddc .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_gacfb .ToPdfObject ()); };};if _eagbf :=_gagda ();!_eagbf .IsZero (){if _fecacc ,_fbedc :=NewPdfDateFromTime (_eagbf );_fbedc ==nil {_aeddc .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_fecacc .ToPdfObject ());};};_bgceb :=_eg .PdfIndirectObject {};_bgceb .PdfObject =_aeddc ; _eeddeb ._ggca =&_bgceb ;_eeddeb .addObject (&_bgceb );_gbae :=_eg .PdfIndirectObject {};_fccf :=_eg .MakeDict ();_fccf .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_gbae .PdfObject =_fccf ;_eeddeb ._eeeg =&_gbae ; _eeddeb .addObject (_eeddeb ._eeeg );_cbcc ,_aeccb :=_fccgd ("\u0077");if _aeccb !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aeccb );};_eeddeb ._fggebg =_cbcc ;_cfgbc :=_eg .PdfIndirectObject {};_cadb :=_eg .MakeDict ();_cadb .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0050\u0061\u0067e\u0073")); _cedca :=_eg .PdfObjectArray {};_cadb .Set ("\u004b\u0069\u0064\u0073",&_cedca );_cadb .Set ("\u0043\u006f\u0075n\u0074",_eg .MakeInteger (0));_cfgbc .PdfObject =_cadb ;_eeddeb ._afbga =&_cfgbc ;_eeddeb ._eacbf =map[_eg .PdfObject ]struct{}{};_eeddeb .addObject (_eeddeb ._afbga ); _fccf .Set ("\u0050\u0061\u0067e\u0073",&_cfgbc );_eeddeb ._ebaaa =_fccf ;_dbg .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_gbae );return _eeddeb ;}; // PdfColorspaceDeviceGray represents a grayscale colorspace. type PdfColorspaceDeviceGray struct{}; // 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 (_ddccf *Image )ConvertToBinary ()error {if _ddccf .ColorComponents ==1&&_ddccf .BitsPerComponent ==1{return nil ;};_adaba ,_bfcfc :=_ddccf .ToGoImage ();if _bfcfc !=nil {return _bfcfc ;};_agaf ,_bfcfc :=_ff .MonochromeConverter .Convert (_adaba ); if _bfcfc !=nil {return _bfcfc ;};_ddccf .Data =_agaf .Base ().Data ;_ddccf ._fcec ,_bfcfc =_ff .ScaleAlphaToMonochrome (_ddccf ._fcec ,int (_ddccf .Width ),int (_ddccf .Height ));if _bfcfc !=nil {return _bfcfc ;};_ddccf .BitsPerComponent =1;_ddccf .ColorComponents =1; _ddccf ._aaeac =nil ;return nil ;}; // ImageToRGB converts an image with samples in Separation CS to an image with samples specified in // DeviceRGB CS. func (_ffdc *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_dcdc :=_ccg .NewReader (img .getBase ());_agec :=_ff .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_ffdc .AlternateSpace .GetNumComponents (),nil ,img ._fcec ,nil ); _fabcc :=_ccg .NewWriter (_agec );_gdgd :=_bc .Pow (2,float64 (img .BitsPerComponent ))-1;_dbg .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"); _dbg .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_ffdc .TintTransform );_cacee :=_ffdc .AlternateSpace .DecodeArray ();var (_fbbb uint32 ;_cadf error ;);for {_fbbb ,_cadf =_dcdc .ReadSample (); if _cadf ==_de .EOF {break ;};if _cadf !=nil {return img ,_cadf ;};_bddc :=float64 (_fbbb )/_gdgd ;_dbaad ,_acdb :=_ffdc .TintTransform .Evaluate ([]float64 {_bddc });if _acdb !=nil {return img ,_acdb ;};for _bgdff ,_dddb :=range _dbaad {_gdca :=_ff .LinearInterpolate (_dddb ,_cacee [_bgdff *2],_cacee [_bgdff *2+1],0,1); if _acdb =_fabcc .WriteSample (uint32 (_gdca *_gdgd ));_acdb !=nil {return img ,_acdb ;};};};return _ffdc .AlternateSpace .ImageToRGB (_egbde (&_agec ));}; // NewPdfOutline returns an initialized PdfOutline. func NewPdfOutline ()*PdfOutline {_cdgc :=&PdfOutline {_ffbba :_eg .MakeIndirectObject (_eg .MakeDict ())};_cdgc ._dbaeb =_cdgc ;return _cdgc ;}; // GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject. func (_fbged *PdfPage )GetPageAsIndirectObject ()*_eg .PdfIndirectObject {return _fbged ._caaef }; // Items returns all children outline items. func (_fdgggb *Outline )Items ()[]*OutlineItem {return _fdgggb .Entries }; // GetPage returns the PdfPage model for the specified page number. func (_fagca *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _fagca ._cdggc .GetCrypter ()!=nil &&!_fagca ._cdggc .IsAuthenticated (){return nil ,_e .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 (_fagca ._dfff )< pageNumber {return nil ,_bbd .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"); };_aecce :=pageNumber -1;if _aecce < 0{return nil ,_e .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");};_dgecfd :=_fagca .PageList [_aecce ]; return _dgecfd ,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 ){_cgbgg ,_abed :=_aefad (basefont );if _abed !=nil {return nil ,_abed ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_cgbgg ._gccbc =_cec .NewWinAnsiEncoder ();};return &PdfFont {_gdcab :&_cgbgg },nil ; }; // ToPdfObject implements interface PdfModel. func (_gefaa *PdfAnnotationScreen )ToPdfObject ()_eg .PdfObject {_gefaa .PdfAnnotation .ToPdfObject ();_dcbg :=_gefaa ._gag ;_ddcc :=_dcbg .PdfObject .(*_eg .PdfObjectDictionary );_ddcc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e")); _ddcc .SetIfNotNil ("\u0054",_gefaa .T );_ddcc .SetIfNotNil ("\u004d\u004b",_gefaa .MK );_ddcc .SetIfNotNil ("\u0041",_gefaa .A );_ddcc .SetIfNotNil ("\u0041\u0041",_gefaa .AA );return _dcbg ;}; // ColorToRGB converts a ICCBased color to an RGB color. func (_dgac *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _dgac .Alternate ==nil {_dbg .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 _dgac .N ==1{_dbg .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"); _bgabc :=NewPdfColorspaceDeviceGray ();return _bgabc .ColorToRGB (color );}else if _dgac .N ==3{_dbg .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 _dgac .N ==4{_dbg .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"); _fabeb :=NewPdfColorspaceDeviceCMYK ();return _fabeb .ColorToRGB (color );}else {return nil ,_bbd .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"); };};_dbg .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",_dgac ); return _dgac .Alternate .ColorToRGB (color );}; // DecodeArray returns the range of color component values in CalRGB colorspace. func (_adgee *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};}; // Encrypt encrypts the output file with a specified user/owner password. func (_ebebb *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_debgd :=RC4_128bit ;if options !=nil {_debgd =options .Algorithm ;};_dabaa :=_fc .PermOwner ;if options !=nil {_dabaa =options .Permissions ;};var _ceafd _cf .Filter ; switch _debgd {case RC4_128bit :_ceafd =_cf .NewFilterV2 (16);case AES_128bit :_ceafd =_cf .NewFilterAESV2 ();case AES_256bit :_ceafd =_cf .NewFilterAESV3 ();default:return _e .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm ); };_gfgea ,_aeabd ,_caff :=_eg .PdfCryptNewEncrypt (_ceafd ,userPass ,ownerPass ,_dabaa );if _caff !=nil {return _caff ;};_ebebb ._ccag =_gfgea ;if _aeabd .Major !=0{_ebebb .SetVersion (_aeabd .Major ,_aeabd .Minor );};_ebebb ._fbdcc =_aeabd .Encrypt ;_ebebb ._ecadc =_eg .MakeArray (_eg .MakeHexString (_aeabd .ID0 ),_eg .MakeHexString (_aeabd .ID1 )); _abfge :=_eg .MakeIndirectObject (_aeabd .Encrypt );_ebebb ._fbbfd =_abfge ;_ebebb .addObject (_abfge );return nil ;};func (_gccf *LTV )getOCSPs (_fdcf []*_ce .Certificate ,_fgdf map[string ]*_ce .Certificate )([][]byte ,error ){_bffcf :=make ([][]byte ,0,len (_fdcf )); for _ ,_fbfdb :=range _fdcf {for _ ,_dgffa :=range _fbfdb .OCSPServer {if _gccf .CertClient .IsCA (_fbfdb ){continue ;};_aafa ,_ddcbc :=_fgdf [_fbfdb .Issuer .CommonName ];if !_ddcbc {_dbg .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 ;};_ ,_ccffb ,_egdae :=_gccf .OCSPClient .MakeRequest (_dgffa ,_fbfdb ,_aafa );if _egdae !=nil {_dbg .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",_egdae ); continue ;};_bffcf =append (_bffcf ,_ccffb );};};return _bffcf ,nil ;};func _gaggd (_gdaed *_eg .PdfObjectDictionary )(*PdfShadingType7 ,error ){_fcfgd :=PdfShadingType7 {};_cfgfe :=_gdaed .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065"); if _cfgfe ==nil {_dbg .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 ;};_ecebae ,_cbaeg :=_cfgfe .(*_eg .PdfObjectInteger );if !_cbaeg {_dbg .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",_cfgfe ); return nil ,_eg .ErrTypeError ;};_fcfgd .BitsPerCoordinate =_ecebae ;_cfgfe =_gdaed .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _cfgfe ==nil {_dbg .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 ;};_ecebae ,_cbaeg =_cfgfe .(*_eg .PdfObjectInteger );if !_cbaeg {_dbg .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",_cfgfe ); return nil ,_eg .ErrTypeError ;};_fcfgd .BitsPerComponent =_ecebae ;_cfgfe =_gdaed .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _cfgfe ==nil {_dbg .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 ;};_ecebae ,_cbaeg =_cfgfe .(*_eg .PdfObjectInteger );if !_cbaeg {_dbg .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",_cfgfe ); return nil ,_eg .ErrTypeError ;};_fcfgd .BitsPerComponent =_ecebae ;_cfgfe =_gdaed .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _cfgfe ==nil {_dbg .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 ;};_efgda ,_cbaeg :=_cfgfe .(*_eg .PdfObjectArray );if !_cbaeg {_dbg .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",_cfgfe ); return nil ,_eg .ErrTypeError ;};_fcfgd .Decode =_efgda ;if _bcbgg :=_gdaed .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_bcbgg !=nil {_fcfgd .Function =[]PdfFunction {};if _eccfc ,_dgbfc :=_bcbgg .(*_eg .PdfObjectArray );_dgbfc {for _ ,_bagd :=range _eccfc .Elements (){_dgfgd ,_cffa :=_dgbga (_bagd ); if _cffa !=nil {_dbg .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",_cffa );return nil ,_cffa ;};_fcfgd .Function =append (_fcfgd .Function ,_dgfgd ); };}else {_cfeab ,_dbgaa :=_dgbga (_bcbgg );if _dbgaa !=nil {_dbg .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",_dbgaa );return nil ,_dbgaa ; };_fcfgd .Function =append (_fcfgd .Function ,_cfeab );};};return &_fcfgd ,nil ;};func (_dbde *PdfReader )newPdfAnnotationTextFromDict (_fbf *_eg .PdfObjectDictionary )(*PdfAnnotationText ,error ){_bddg :=PdfAnnotationText {};_bcbe ,_acfg :=_dbde .newPdfAnnotationMarkupFromDict (_fbf ); if _acfg !=nil {return nil ,_acfg ;};_bddg .PdfAnnotationMarkup =_bcbe ;_bddg .Open =_fbf .Get ("\u004f\u0070\u0065\u006e");_bddg .Name =_fbf .Get ("\u004e\u0061\u006d\u0065");_bddg .State =_fbf .Get ("\u0053\u0074\u0061t\u0065");_bddg .StateModel =_fbf .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c"); return &_bddg ,nil ;}; // 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 (_gaac *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eeggf ,_deag :=_eg .GetNumbersAsFloat (objects ); if _deag !=nil {return nil ,_deag ;};return _gaac .ColorFromFloats (_eeggf );};func (_cbbeg *PdfWriter )copyObjects (){_fdbfa :=make (map[_eg .PdfObject ]_eg .PdfObject );_bdgac :=make ([]_eg .PdfObject ,0,len (_cbbeg ._aecabb ));_ebeag :=make (map[_eg .PdfObject ]struct{},len (_cbbeg ._aecabb )); _badd :=make (map[_eg .PdfObject ]struct{});for _ ,_adaae :=range _cbbeg ._aecabb {_gfggf :=_cbbeg .copyObject (_adaae ,_fdbfa ,_badd ,false );if _ ,_facc :=_badd [_adaae ];_facc {continue ;};_bdgac =append (_bdgac ,_gfggf );_ebeag [_gfggf ]=struct{}{}; };_cbbeg ._aecabb =_bdgac ;_cbbeg ._bccbf =_ebeag ;_cbbeg ._ggca =_cbbeg .copyObject (_cbbeg ._ggca ,_fdbfa ,nil ,false ).(*_eg .PdfIndirectObject );_cbbeg ._eeeg =_cbbeg .copyObject (_cbbeg ._eeeg ,_fdbfa ,nil ,false ).(*_eg .PdfIndirectObject );if _cbbeg ._fbbfd !=nil {_cbbeg ._fbbfd =_cbbeg .copyObject (_cbbeg ._fbbfd ,_fdbfa ,nil ,false ).(*_eg .PdfIndirectObject ); };if _cbbeg ._aaedc {_eeca :=make (map[_eg .PdfObject ]int64 );for _bbdfef ,_cfbgf :=range _cbbeg ._cacc {if _acdeg ,_begca :=_fdbfa [_bbdfef ];_begca {_eeca [_acdeg ]=_cfbgf ;}else {_dbg .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"); };};_cbbeg ._cacc =_eeca ;};}; // NewPdfActionNamed returns a new "named" action. func NewPdfActionNamed ()*PdfActionNamed {_ecd :=NewPdfAction ();_fcf :=&PdfActionNamed {};_fcf .PdfAction =_ecd ;_ecd .SetContext (_fcf );return _fcf ;}; // PdfActionType represents an action type in PDF (section 12.6.4 p. 417). type PdfActionType string ;func (_fedee *DSS )addCRLs (_eaag [][]byte )([]*_eg .PdfObjectStream ,error ){return _fedee .add (&_fedee .CRLs ,_fedee ._fgbdb ,_eaag );}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_agffa *PdfShadingType7 )ToPdfObject ()_eg .PdfObject {_agffa .PdfShading .ToPdfObject ();_gdge ,_dcea :=_agffa .getShadingDict ();if _dcea !=nil {_dbg .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 _agffa .BitsPerCoordinate !=nil {_gdge .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_agffa .BitsPerCoordinate );};if _agffa .BitsPerComponent !=nil {_gdge .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_agffa .BitsPerComponent ); };if _agffa .BitsPerFlag !=nil {_gdge .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_agffa .BitsPerFlag );};if _agffa .Decode !=nil {_gdge .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_agffa .Decode );};if _agffa .Function !=nil {if len (_agffa .Function )==1{_gdge .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_agffa .Function [0].ToPdfObject ()); }else {_bfdcd :=_eg .MakeArray ();for _ ,_ddada :=range _agffa .Function {_bfdcd .Append (_ddada .ToPdfObject ());};_gdge .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bfdcd );};};return _agffa ._beag ;};func (_gagc *PdfFilespec )getDict ()*_eg .PdfObjectDictionary {if _eddee ,_aafcg :=_gagc ._fceg .(*_eg .PdfIndirectObject ); _aafcg {_cgfcb ,_gbcd :=_eddee .PdfObject .(*_eg .PdfObjectDictionary );if !_gbcd {return nil ;};return _cgfcb ;}else if _bdde ,_bgac :=_gagc ._fceg .(*_eg .PdfObjectDictionary );_bgac {return _bdde ;}else {_dbg .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",_gagc ._fceg ); return nil ;};}; // NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image. func (_gbeea DefaultImageHandler )NewGrayImageFromGoImage (goimg _ec .Image )(*Image ,error ){_edgag :=goimg .Bounds ();_gcfcd :=&Image {Width :int64 (_edgag .Dx ()),Height :int64 (_edgag .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _fdab :=goimg .(type ){case *_ec .Gray :if len (_fdab .Pix )!=_edgag .Dx ()*_edgag .Dy (){_cecga ,_dfaaf :=_ff .GrayConverter .Convert (goimg ); if _dfaaf !=nil {return nil ,_dfaaf ;};_gcfcd .Data =_cecga .Pix ();}else {_gcfcd .Data =_fdab .Pix ;};case *_ec .Gray16 :_gcfcd .BitsPerComponent =16;if len (_fdab .Pix )!=_edgag .Dx ()*_edgag .Dy ()*2{_gbbedg ,_ggfed :=_ff .Gray16Converter .Convert (goimg ); if _ggfed !=nil {return nil ,_ggfed ;};_gcfcd .Data =_gbbedg .Pix ();}else {_gcfcd .Data =_fdab .Pix ;};case _ff .Image :_acea :=_fdab .Base ();if _acea .ColorComponents ==1{_gcfcd .BitsPerComponent =int64 (_acea .BitsPerComponent );_gcfcd .Data =_acea .Data ; return _gcfcd ,nil ;};_bddad ,_adcd :=_ff .GrayConverter .Convert (goimg );if _adcd !=nil {return nil ,_adcd ;};_gcfcd .Data =_bddad .Pix ();default:_aede ,_feggd :=_ff .GrayConverter .Convert (goimg );if _feggd !=nil {return nil ,_feggd ;};_gcfcd .Data =_aede .Pix (); };return _gcfcd ,nil ;}; // GetTrailer returns the PDF's trailer dictionary. func (_bgbca *PdfReader )GetTrailer ()(*_eg .PdfObjectDictionary ,error ){_dfgea :=_bgbca ._cdggc .GetTrailer ();if _dfgea ==nil {return nil ,_bbd .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _dfgea ,nil ; }; // GetCharMetrics returns the char metrics for character code `code`. func (_bceda pdfFontType0 )GetCharMetrics (code _cec .CharCode )(_ab .CharMetrics ,bool ){if _bceda .DescendantFont ==nil {_dbg .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",_bceda ); return _ab .CharMetrics {},false ;};return _bceda .DescendantFont .GetCharMetrics (code );}; // NewPdfActionURI returns a new "Uri" action. func NewPdfActionURI ()*PdfActionURI {_dgb :=NewPdfAction ();_ggd :=&PdfActionURI {};_ggd .PdfAction =_dgb ;_dgb .SetContext (_ggd );return _ggd ;}; // ToPdfObject implements interface PdfModel. func (_cac *PdfActionJavaScript )ToPdfObject ()_eg .PdfObject {_cac .PdfAction .ToPdfObject ();_cbdc :=_cac ._ege ;_dga :=_cbdc .PdfObject .(*_eg .PdfObjectDictionary );_dga .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeJavaScript )));_dga .SetIfNotNil ("\u004a\u0053",_cac .JS ); return _cbdc ;};func (_gfb *PdfReader )newPdfActionSetOCGStateFromDict (_gca *_eg .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_gca .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_gca .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ; }; // 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 _eg .PdfObject )(_eg .PdfObjectName ,error ){var _abge *_eg .PdfObjectName ;var _gdgb *_eg .PdfObjectArray ;if _gbced ,_acag :=obj .(*_eg .PdfIndirectObject );_acag {if _cbcbe ,_egfd :=_gbced .PdfObject .(*_eg .PdfObjectArray ); _egfd {_gdgb =_cbcbe ;}else if _eaaa ,_fcd :=_gbced .PdfObject .(*_eg .PdfObjectName );_fcd {_abge =_eaaa ;};}else if _ecdf ,_fdad :=obj .(*_eg .PdfObjectArray );_fdad {_gdgb =_ecdf ;}else if _agc ,_ggbfa :=obj .(*_eg .PdfObjectName );_ggbfa {_abge =_agc ; };if _abge !=nil {switch *_abge {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 *_abge ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_abge ,nil ; };};if _gdgb !=nil &&_gdgb .Len ()> 0{if _gdcd ,_gdgfb :=_gdgb .Get (0).(*_eg .PdfObjectName );_gdgfb {switch *_gdcd {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 _gdgb .Len ()==1{return *_gdcd ,nil ; };case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_gdcd ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_gdcd ,nil ; case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_gdcd ,nil ;};};};return "",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 (_bcgae *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _cecdg []*PdfField ;if _bcgae .AcroForm !=nil {_cecdg =_bcgae .AcroForm .AllFields ();};_cdde :=make (map[*PdfField ]struct{},len (_cecdg ));for _ ,_gfeb :=range _cecdg {_cdde [_gfeb ]=struct{}{}; };for _ ,_gadefg :=range _bcgae .PageList {_gdfeg ,_aadc :=_gadefg .GetAnnotations ();if _aadc !=nil {return false ,_aadc ;};for _ ,_bcbea :=range _gdfeg {_egbdb ,_eaebd :=_bcbea .GetContext ().(*PdfAnnotationWidget );if !_eaebd {continue ;};_ccgbd :=_egbdb .Field (); if _ccgbd ==nil {return true ,nil ;};if _ ,_gaaca :=_cdde [_ccgbd ];!_gaaca {return true ,nil ;};};};return false ,nil ;}; // GetContainingPdfObject returns the container of the DSS (indirect object). func (_ddefe *DSS )GetContainingPdfObject ()_eg .PdfObject {return _ddefe ._gded }; // Has checks if flag fl is set in flag and returns true if so, false otherwise. func (_gggd FieldFlag )Has (fl FieldFlag )bool {return (_gggd .Mask ()&fl .Mask ())> 0}; // ToGoImage converts the unidoc Image to a golang Image structure. func (_fdedbb *Image )ToGoImage ()(_ec .Image ,error ){_dbg .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_adeg ,_efefb :=_ff .NewImage (int (_fdedbb .Width ),int (_fdedbb .Height ),int (_fdedbb .BitsPerComponent ),_fdedbb .ColorComponents ,_fdedbb .Data ,_fdedbb ._fcec ,_fdedbb ._aaeac ); if _efefb !=nil {return nil ,_efefb ;};return _adeg ,nil ;};func _adecc (_ecba *_eg .PdfObjectStream )(*PdfFunctionType0 ,error ){_gccg :=&PdfFunctionType0 {};_gccg ._bafa =_ecba ;_gadcb :=_ecba .PdfObjectDictionary ;_ffcfee ,_eaeec :=_eg .TraceToDirectObject (_gadcb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eg .PdfObjectArray ); if !_eaeec {_dbg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bbd .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 _ffcfee .Len ()< 0||_ffcfee .Len ()%2!=0{_dbg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_bbd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065"); };_gccg .NumInputs =_ffcfee .Len ()/2;_afgbb ,_agceg :=_ffcfee .ToFloat64Array ();if _agceg !=nil {return nil ,_agceg ;};_gccg .Domain =_afgbb ;_ffcfee ,_eaeec =_eg .TraceToDirectObject (_gadcb .Get ("\u0052\u0061\u006eg\u0065")).(*_eg .PdfObjectArray ); if !_eaeec {_dbg .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");return nil ,_bbd .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 _ffcfee .Len ()< 0||_ffcfee .Len ()%2!=0{return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_gccg .NumOutputs =_ffcfee .Len ()/2;_eecbbe ,_agceg :=_ffcfee .ToFloat64Array ();if _agceg !=nil {return nil ,_agceg ; };_gccg .Range =_eecbbe ;_ffcfee ,_eaeec =_eg .TraceToDirectObject (_gadcb .Get ("\u0053\u0069\u007a\u0065")).(*_eg .PdfObjectArray );if !_eaeec {_dbg .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064"); return nil ,_bbd .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");};_abgge ,_agceg :=_ffcfee .ToIntegerArray (); if _agceg !=nil {return nil ,_agceg ;};if len (_abgge )!=_gccg .NumInputs {_dbg .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 ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gccg .Size =_abgge ;_dbabg ,_eaeec :=_eg .TraceToDirectObject (_gadcb .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_eg .PdfObjectInteger ); if !_eaeec {_dbg .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 ,_bbd .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 *_dbabg !=1&&*_dbabg !=2&&*_dbabg !=4&&*_dbabg !=8&&*_dbabg !=12&&*_dbabg !=16&&*_dbabg !=24&&*_dbabg !=32{_dbg .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",*_dbabg ); return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gccg .BitsPerSample =int (*_dbabg );_gccg .Order =1;_dgad ,_eaeec :=_eg .TraceToDirectObject (_gadcb .Get ("\u004f\u0072\u0064e\u0072")).(*_eg .PdfObjectInteger ); if _eaeec {if *_dgad !=1&&*_dgad !=3{_dbg .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_dgad );return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gccg .Order =int (*_dgad ); };_ffcfee ,_eaeec =_eg .TraceToDirectObject (_gadcb .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_eg .PdfObjectArray );if _eaeec {_fgcdb ,_gcce :=_ffcfee .ToFloat64Array ();if _gcce !=nil {return nil ,_gcce ;};_gccg .Encode =_fgcdb ;};_ffcfee ,_eaeec =_eg .TraceToDirectObject (_gadcb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_eg .PdfObjectArray ); if _eaeec {_cdgb ,_egea :=_ffcfee .ToFloat64Array ();if _egea !=nil {return nil ,_egea ;};_gccg .Decode =_cdgb ;};_becfc ,_agceg :=_eg .DecodeStream (_ecba );if _agceg !=nil {return nil ,_agceg ;};_gccg ._ebad =_becfc ;return _gccg ,nil ;}; // ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly // or indirectly within an indirect object container. func (_fccb *PdfColorspaceDeviceNAttributes )ToPdfObject ()_eg .PdfObject {_ebge :=_eg .MakeDict ();if _fccb .Subtype !=nil {_ebge .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fccb .Subtype );};_ebge .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_fccb .Colorants ); _ebge .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_fccb .Process );_ebge .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_fccb .MixingHints );if _fccb ._bcca !=nil {_fccb ._bcca .PdfObject =_ebge ;return _fccb ._bcca ; };return _ebge ;};func (_gegd *DSS )generateHashMaps ()error {_bgdba ,_eaafb :=_gegd .generateHashMap (_gegd .Certs );if _eaafb !=nil {return _eaafb ;};_aecg ,_eaafb :=_gegd .generateHashMap (_gegd .OCSPs );if _eaafb !=nil {return _eaafb ;};_baac ,_eaafb :=_gegd .generateHashMap (_gegd .CRLs ); if _eaafb !=nil {return _eaafb ;};_gegd ._gaad =_bgdba ;_gegd ._geeeb =_aecg ;_gegd ._fgbdb =_baac ;return nil ;}; // GetAlphabet returns a map of the runes in `text` and their frequencies. func GetAlphabet (text string )map[rune ]int {_bdgc :=map[rune ]int {};for _ ,_fdege :=range text {_bdgc [_fdege ]++;};return _bdgc ;}; // 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 (_gbfce *PdfFont )CharcodesToUnicode (charcodes []_cec .CharCode )[]rune {_dfcf ,_ ,_ :=_gbfce .CharcodesToUnicodeWithStats (charcodes );return _dfcf ;}; // ToPdfOutlineItem returns a low level PdfOutlineItem object, // based on the current instance. func (_deadg *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_fafeb :=NewPdfOutlineItem ();_fafeb .Title =_eg .MakeEncodedString (_deadg .Title ,true );_fafeb .Dest =_deadg .Dest .ToPdfObject ();var _bgede []*PdfOutlineItem ;var _fgfcd int64 ; var _cfcbf *PdfOutlineItem ;for _ ,_gdfab :=range _deadg .Entries {_fgcfc ,_gdgdf :=_gdfab .ToPdfOutlineItem ();_fgcfc .Parent =&_fafeb .PdfOutlineTreeNode ;if _cfcbf !=nil {_cfcbf .Next =&_fgcfc .PdfOutlineTreeNode ;_fgcfc .Prev =&_cfcbf .PdfOutlineTreeNode ; };_bgede =append (_bgede ,_fgcfc );_fgfcd +=_gdgdf ;_cfcbf =_fgcfc ;};_ebff :=len (_bgede );_fgfcd +=int64 (_ebff );if _ebff > 0{_fafeb .First =&_bgede [0].PdfOutlineTreeNode ;_fafeb .Last =&_bgede [_ebff -1].PdfOutlineTreeNode ;_fafeb .Count =&_fgfcd ; };return _fafeb ,_fgfcd ;}; // NewPdfAnnotationPolyLine returns a new polyline annotation. func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_aaca :=NewPdfAnnotation ();_cgg :=&PdfAnnotationPolyLine {};_cgg .PdfAnnotation =_aaca ;_cgg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aaca .SetContext (_cgg );return _cgg ;};func (_ffgfe *PdfPattern )getDict ()*_eg .PdfObjectDictionary {if _bggdb ,_dbcfd :=_ffgfe ._cfaag .(*_eg .PdfIndirectObject ); _dbcfd {_dacdf ,_gfbcaf :=_bggdb .PdfObject .(*_eg .PdfObjectDictionary );if !_gfbcaf {return nil ;};return _dacdf ;}else if _gabeb ,_dfgaf :=_ffgfe ._cfaag .(*_eg .PdfObjectStream );_dfgaf {return _gabeb .PdfObjectDictionary ;}else {_dbg .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",_ffgfe ._cfaag ); return nil ;};};func _ebaad ()string {_egbeg .Lock ();defer _egbeg .Unlock ();return _gfcae }; // GetContainingPdfObject implements interface PdfModel. func (_edda *PdfFilespec )GetContainingPdfObject ()_eg .PdfObject {return _edda ._fceg }; // SetImage updates XObject Image with new image data. func (_ddggf *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_ddggf .Filter .UpdateParams (img .GetParamsDict ());_ccadg ,_bbadcb :=_ddggf .Filter .EncodeBytes (img .Data );if _bbadcb !=nil {return _bbadcb ;};_ddggf .Stream =_ccadg ;_cbbde :=img .Width ; _ddggf .Width =&_cbbde ;_caaae :=img .Height ;_ddggf .Height =&_caaae ;_cegea :=img .BitsPerComponent ;_ddggf .BitsPerComponent =&_cegea ;if cs ==nil {if img .ColorComponents ==1{_ddggf .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_ddggf .ColorSpace =NewPdfColorspaceDeviceRGB (); }else if img .ColorComponents ==4{_ddggf .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _bbd .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_ddggf .ColorSpace =cs ;};return nil ; }; // SetBorderWidth sets the style's border width. func (_dcac *PdfBorderStyle )SetBorderWidth (width float64 ){_dcac .W =&width }; // ToPdfObject implements interface PdfModel. func (_ded *PdfAnnotation3D )ToPdfObject ()_eg .PdfObject {_ded .PdfAnnotation .ToPdfObject ();_efde :=_ded ._gag ;_edf :=_efde .PdfObject .(*_eg .PdfObjectDictionary );_edf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0033\u0044")); _edf .SetIfNotNil ("\u0033\u0044\u0044",_ded .T3DD );_edf .SetIfNotNil ("\u0033\u0044\u0056",_ded .T3DV );_edf .SetIfNotNil ("\u0033\u0044\u0041",_ded .T3DA );_edf .SetIfNotNil ("\u0033\u0044\u0049",_ded .T3DI );_edf .SetIfNotNil ("\u0033\u0044\u0042",_ded .T3DB ); return _efde ;};func (_dbgef *PdfReader )newPdfAnnotationUnderlineFromDict (_fdaf *_eg .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_gccb :=PdfAnnotationUnderline {};_eafa ,_bdag :=_dbgef .newPdfAnnotationMarkupFromDict (_fdaf );if _bdag !=nil {return nil ,_bdag ; };_gccb .PdfAnnotationMarkup =_eafa ;_gccb .QuadPoints =_fdaf .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_gccb ,nil ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_edaga *PdfShadingType3 )ToPdfObject ()_eg .PdfObject {_edaga .PdfShading .ToPdfObject ();_gegg ,_fcagcd :=_edaga .getShadingDict ();if _fcagcd !=nil {_dbg .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 _edaga .Coords !=nil {_gegg .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_edaga .Coords );};if _edaga .Domain !=nil {_gegg .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_edaga .Domain );};if _edaga .Function !=nil {if len (_edaga .Function )==1{_gegg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_edaga .Function [0].ToPdfObject ()); }else {_cdbc :=_eg .MakeArray ();for _ ,_ggfag :=range _edaga .Function {_cdbc .Append (_ggfag .ToPdfObject ());};_gegg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cdbc );};};if _edaga .Extend !=nil {_gegg .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_edaga .Extend ); };return _edaga ._beag ;}; // ToPdfObject implements interface PdfModel. func (_aef *PdfActionGoToE )ToPdfObject ()_eg .PdfObject {_aef .PdfAction .ToPdfObject ();_gad :=_aef ._ege ;_fg :=_gad .PdfObject .(*_eg .PdfObjectDictionary );_fg .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeGoToE )));if _aef .F !=nil {_fg .Set ("\u0046",_aef .F .ToPdfObject ()); };_fg .SetIfNotNil ("\u0044",_aef .D );_fg .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_aef .NewWindow );_fg .SetIfNotNil ("\u0054",_aef .T );return _gad ;};func _eced (_dadd []byte )(_bcac ,_dedbf string ,_bedgg error ){_dbg .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_dadd )); _ebaef :=_bgffe .FindIndex (_dadd );if _ebaef ==nil {_dbg .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 "","",_eg .ErrTypeError ;};_eaae :=_ebaef [1];_ddegb :=_dc .Index (string (_dadd [_eaae :]),_bdga );if _ddegb < 0{_bcac =string (_dadd [_eaae :]);return _bcac ,"",nil ;};_deeg :=_eaae +_ddegb ;_bcac =string (_dadd [_eaae :_deeg ]);_effcg :=_deeg ; _ddegb =_dc .Index (string (_dadd [_effcg :]),_ccdf );if _ddegb < 0{_dbg .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",_bedgg ); return "","",_eg .ErrTypeError ;};_fabeg :=_effcg +_ddegb ;_dedbf =string (_dadd [_effcg :_fabeg ]);return _bcac ,_dedbf ,nil ;}; // NewPdfActionSetOCGState returns a new "named" action. func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_adc :=NewPdfAction ();_ba :=&PdfActionSetOCGState {};_ba .PdfAction =_adc ;_adc .SetContext (_ba );return _ba ;}; // 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 (_dffg *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _dffg .flattenFieldsWithOpts (false ,appgen ,opts );};func (_adba *PdfReader )newPdfAnnotationProjectionFromDict (_bcg *_eg .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_ebb :=&PdfAnnotationProjection {}; _gcac ,_fdg :=_adba .newPdfAnnotationMarkupFromDict (_bcg );if _fdg !=nil {return nil ,_fdg ;};_ebb .PdfAnnotationMarkup =_gcac ;return _ebb ,nil ;};func (_gedbd *PdfReader )newPdfPageFromDict (_ccccg *_eg .PdfObjectDictionary )(*PdfPage ,error ){_efecbe :=NewPdfPage (); _efecbe ._ecbba =_ccccg ;_bfead :=*_ccccg ;_gcg ,_afcge :=_bfead .Get ("\u0054\u0079\u0070\u0065").(*_eg .PdfObjectName );if !_afcge {return nil ,_bbd .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 *_gcg !="\u0050\u0061\u0067\u0065"{return nil ,_bbd .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 _bcfee :=_bfead .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"); _bcfee !=nil {_efecbe .Parent =_bcfee ;};if _egggf :=_bfead .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_egggf !=nil {_cfbfe ,_ggff :=_eg .GetString (_egggf );if !_ggff {return nil ,_bbd .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"); };_egced ,_addfe :=NewPdfDate (_cfbfe .Str ());if _addfe !=nil {return nil ,_addfe ;};_efecbe .LastModified =&_egced ;};if _ccfec :=_bfead .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_ccfec !=nil &&!_eg .IsNullObject (_ccfec ){_dcbcf ,_ebdbe :=_eg .GetDict (_ccfec ); if !_ebdbe {return nil ,_e .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",_ccfec );};var _bbedc error ;_efecbe .Resources ,_bbedc =NewPdfPageResourcesFromDict (_dcbcf ); if _bbedc !=nil {return nil ,_bbedc ;};}else {_dfbbb ,_dddge :=_efecbe .getParentResources ();if _dddge !=nil {return nil ,_dddge ;};if _dfbbb ==nil {_dfbbb =NewPdfPageResources ();};_efecbe .Resources =_dfbbb ;};if _cgcea :=_bfead .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078"); _cgcea !=nil {_gedbf ,_fccde :=_eg .GetArray (_cgcea );if !_fccde {return nil ,_bbd .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 _bbcgd error ; _efecbe .MediaBox ,_bbcgd =NewPdfRectangle (*_gedbf );if _bbcgd !=nil {return nil ,_bbcgd ;};};if _febg :=_bfead .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_febg !=nil {_daceg ,_gabdd :=_eg .GetArray (_febg );if !_gabdd {return nil ,_bbd .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y"); };var _dgfdf error ;_efecbe .CropBox ,_dgfdf =NewPdfRectangle (*_daceg );if _dgfdf !=nil {return nil ,_dgfdf ;};};if _gbgfb :=_bfead .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_gbgfb !=nil {_gbgeba ,_egcaa :=_eg .GetArray (_gbgfb );if !_egcaa {return nil ,_bbd .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 _fbee error ;_efecbe .BleedBox ,_fbee =NewPdfRectangle (*_gbgeba );if _fbee !=nil {return nil ,_fbee ;};};if _eabge :=_bfead .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_eabge !=nil {_gdafe ,_afdf :=_eg .GetArray (_eabge );if !_afdf {return nil ,_bbd .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y"); };var _bdegb error ;_efecbe .TrimBox ,_bdegb =NewPdfRectangle (*_gdafe );if _bdegb !=nil {return nil ,_bdegb ;};};if _gdeeb :=_bfead .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_gdeeb !=nil {_fgacb ,_feccf :=_eg .GetArray (_gdeeb );if !_feccf {return nil ,_bbd .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079"); };var _agbcg error ;_efecbe .ArtBox ,_agbcg =NewPdfRectangle (*_fgacb );if _agbcg !=nil {return nil ,_agbcg ;};};if _fddbd :=_bfead .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_fddbd !=nil {_efecbe .BoxColorInfo =_fddbd ; };if _dbee :=_bfead .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_dbee !=nil {_efecbe .Contents =_dbee ;};if _cfeed :=_bfead .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_cfeed !=nil {_bgdbc ,_agdbb :=_eg .GetInt (_cfeed );if !_agdbb {return nil ,_bbd .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"); };_dcfe :=int64 (*_bgdbc );_efecbe .Rotate =&_dcfe ;};if _dgafe :=_bfead .Get ("\u0047\u0072\u006fu\u0070");_dgafe !=nil {_efecbe .Group =_dgafe ;};if _eeed :=_bfead .Get ("\u0054\u0068\u0075m\u0062");_eeed !=nil {_efecbe .Thumb =_eeed ;};if _ccbge :=_bfead .Get ("\u0042"); _ccbge !=nil {_efecbe .B =_ccbge ;};if _ccfgg :=_bfead .Get ("\u0044\u0075\u0072");_ccfgg !=nil {_efecbe .Dur =_ccfgg ;};if _fafa :=_bfead .Get ("\u0054\u0072\u0061n\u0073");_fafa !=nil {_efecbe .Trans =_fafa ;};if _gdcfe :=_bfead .Get ("\u0041\u0041"); _gdcfe !=nil {_efecbe .AA =_gdcfe ;};if _gcde :=_bfead .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_gcde !=nil {_efecbe .Metadata =_gcde ;};if _fgcgf :=_bfead .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_fgcgf !=nil {_efecbe .PieceInfo =_fgcgf ; };if _gabe :=_bfead .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_gabe !=nil {_efecbe .StructParents =_gabe ;};if _bedgb :=_bfead .Get ("\u0049\u0044");_bedgb !=nil {_efecbe .ID =_bedgb ;};if _fdfac :=_bfead .Get ("\u0050\u005a"); _fdfac !=nil {_efecbe .PZ =_fdfac ;};if _egede :=_bfead .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");_egede !=nil {_efecbe .SeparationInfo =_egede ;};if _babg :=_bfead .Get ("\u0054\u0061\u0062\u0073");_babg !=nil {_efecbe .Tabs =_babg ; };if _dabe :=_bfead .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");_dabe !=nil {_efecbe .TemplateInstantiated =_dabe ;};if _adadd :=_bfead .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_adadd !=nil {_efecbe .PresSteps =_adadd ; };if _adaee :=_bfead .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_adaee !=nil {_efecbe .UserUnit =_adaee ;};if _baadb :=_bfead .Get ("\u0056\u0050");_baadb !=nil {_efecbe .VP =_baadb ;};if _addd :=_bfead .Get ("\u0041\u006e\u006e\u006f\u0074\u0073"); _addd !=nil {_efecbe .Annots =_addd ;};_efecbe ._fdfdec =_gedbd ;return _efecbe ,nil ;};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065"; ); // ToPdfObject implements interface PdfModel. func (_gaef *PdfAnnotationLink )ToPdfObject ()_eg .PdfObject {_gaef .PdfAnnotation .ToPdfObject ();_fedcf :=_gaef ._gag ;_dae :=_fedcf .PdfObject .(*_eg .PdfObjectDictionary );_dae .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u004c\u0069\u006e\u006b")); if _gaef ._cecf !=nil &&_gaef ._cecf ._cea !=nil {_dae .Set ("\u0041",_gaef ._cecf ._cea .ToPdfObject ());}else if _gaef .A !=nil {_dae .Set ("\u0041",_gaef .A );};_dae .SetIfNotNil ("\u0044\u0065\u0073\u0074",_gaef .Dest );_dae .SetIfNotNil ("\u0048",_gaef .H ); _dae .SetIfNotNil ("\u0050\u0041",_gaef .PA );_dae .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gaef .QuadPoints );_dae .SetIfNotNil ("\u0042\u0053",_gaef .BS );return _fedcf ;}; // HasColorspaceByName checks if the colorspace with the specified name exists in the page resources. func (_eddge *PdfPageResources )HasColorspaceByName (keyName _eg .PdfObjectName )bool {_bbfb ,_efbg :=_eddge .GetColorspaces ();if _efbg !=nil {_dbg .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",_efbg ); return false ;};if _bbfb ==nil {return false ;};_ ,_cfac :=_bbfb .Colorspaces [string (keyName )];return _cfac ;};func _dgace (_gdae *_eg .PdfObjectDictionary )bool {for _ ,_fddca :=range _gdae .Keys (){if _ ,_fgfc :=_dfee [_fddca .String ()];_fgfc {return true ; };};return false ;}; // ToPdfObject implements interface PdfModel. func (_cce *PdfAnnotationPrinterMark )ToPdfObject ()_eg .PdfObject {_cce .PdfAnnotation .ToPdfObject ();_acb :=_cce ._gag ;_ggaf :=_acb .PdfObject .(*_eg .PdfObjectDictionary );_ggaf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b")); _ggaf .SetIfNotNil ("\u004d\u004e",_cce .MN );return _acb ;};func _fccgd (_egbdd string )(string ,error ){var _cdefg _cbd .Buffer ;_cdefg .WriteString (_egbdd );_fdgfg :=make ([]byte ,8+16);_bcgbf :=_ee .Now ().UTC ().UnixNano ();_gg .BigEndian .PutUint64 (_fdgfg ,uint64 (_bcgbf )); _ ,_abfce :=_bb .Read (_fdgfg [8:]);if _abfce !=nil {return "",_abfce ;};_cdefg .WriteString (_c .EncodeToString (_fdgfg ));return _cdefg .String (),nil ;}; // ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk). func (_baca *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dbab ,_ffcec :=_eg .GetNumbersAsFloat (objects ); if _ffcec !=nil {return nil ,_ffcec ;};return _baca .ColorFromFloats (_dbab );}; // ToPdfObject returns the PDF representation of the function. func (_dfga *PdfFunctionType3 )ToPdfObject ()_eg .PdfObject {_dbabe :=_eg .MakeDict ();_dbabe .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eg .MakeInteger (3));_fagga :=&_eg .PdfObjectArray {};for _ ,_faba :=range _dfga .Domain {_fagga .Append (_eg .MakeFloat (_faba )); };_dbabe .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_fagga );if _dfga .Range !=nil {_efdd :=&_eg .PdfObjectArray {};for _ ,_bafdca :=range _dfga .Range {_efdd .Append (_eg .MakeFloat (_bafdca ));};_dbabe .Set ("\u0052\u0061\u006eg\u0065",_efdd );};if _dfga .Functions !=nil {_bdddf :=&_eg .PdfObjectArray {}; for _ ,_fbbea :=range _dfga .Functions {_bdddf .Append (_fbbea .ToPdfObject ());};_dbabe .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_bdddf );};if _dfga .Bounds !=nil {_bcbgf :=&_eg .PdfObjectArray {};for _ ,_eegad :=range _dfga .Bounds {_bcbgf .Append (_eg .MakeFloat (_eegad )); };_dbabe .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_bcbgf );};if _dfga .Encode !=nil {_feag :=&_eg .PdfObjectArray {};for _ ,_eddef :=range _dfga .Encode {_feag .Append (_eg .MakeFloat (_eddef ));};_dbabe .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_feag ); };if _dfga ._gfddd !=nil {_dfga ._gfddd .PdfObject =_dbabe ;return _dfga ._gfddd ;};return _dbabe ;}; // HasFontByName checks whether a font is defined by the specified keyName. func (_faefae *PdfPageResources )HasFontByName (keyName _eg .PdfObjectName )bool {_ ,_bffbc :=_faefae .GetFontByName (keyName );return _bffbc ;};func (_dgfae *LTV )getCRLs (_bcgcc []*_ce .Certificate )([][]byte ,error ){_dead :=make ([][]byte ,0,len (_bcgcc )); for _ ,_babfg :=range _bcgcc {for _ ,_geafc :=range _babfg .CRLDistributionPoints {if _dgfae .CertClient .IsCA (_babfg ){continue ;};_faedf ,_ffde :=_dgfae .CRLClient .MakeRequest (_geafc ,_babfg );if _ffde !=nil {_dbg .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",_ffde ); continue ;};_dead =append (_dead ,_faedf );};};return _dead ,nil ;}; // GetContentStream returns the pattern cell's content stream func (_abgggc *PdfTilingPattern )GetContentStream ()([]byte ,error ){_feega ,_ ,_gaeee :=_abgggc .GetContentStreamWithEncoder ();return _feega ,_gaeee ;}; // GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this. func (_acage *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _acage ._defdf .(*PdfTilingPattern );}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_caca *PdfShadingType6 )ToPdfObject ()_eg .PdfObject {_caca .PdfShading .ToPdfObject ();_gdbb ,_bgeb :=_caca .getShadingDict ();if _bgeb !=nil {_dbg .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 _caca .BitsPerCoordinate !=nil {_gdbb .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_caca .BitsPerCoordinate );};if _caca .BitsPerComponent !=nil {_gdbb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_caca .BitsPerComponent ); };if _caca .BitsPerFlag !=nil {_gdbb .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_caca .BitsPerFlag );};if _caca .Decode !=nil {_gdbb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_caca .Decode );};if _caca .Function !=nil {if len (_caca .Function )==1{_gdbb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_caca .Function [0].ToPdfObject ()); }else {_cbfg :=_eg .MakeArray ();for _ ,_aabac :=range _caca .Function {_cbfg .Append (_aabac .ToPdfObject ());};_gdbb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cbfg );};};return _caca ._beag ;}; // 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 (_aedbc pdfFontSimple )GetCharMetrics (code _cec .CharCode )(_ab .CharMetrics ,bool ){if _faac ,_ddfcc :=_aedbc ._baga [code ];_ddfcc {return _ab .CharMetrics {Wx :_faac },true ;};if _ab .IsStdFont (_ab .StdFontName (_aedbc ._cfab )){return _ab .CharMetrics {Wx :250},true ; };return _ab .CharMetrics {},false ;}; // ColorToRGB converts a DeviceN color to an RGB color. func (_gdfgg *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _gdfgg .AlternateSpace ==nil {return nil ,_bbd .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 _gdfgg .AlternateSpace .ColorToRGB (color );}; // NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object). func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_edeaf :_eg .MakeIndirectObject (_eg .MakeDict ())};};func (_gbbb *LTV )enable (_bgbc ,_faaa []*_ce .Certificate ,_gdde string )error {_dgddg ,_bbgae ,_fbaed :=_gbbb .buildCertChain (_bgbc ,_faaa ); if _fbaed !=nil {return _fbaed ;};_fefac ,_fbaed :=_gbbb .getCerts (_dgddg );if _fbaed !=nil {return _fbaed ;};_eafg ,_fbaed :=_gbbb .getOCSPs (_dgddg ,_bbgae );if _fbaed !=nil {return _fbaed ;};_baagf ,_fbaed :=_gbbb .getCRLs (_dgddg );if _fbaed !=nil {return _fbaed ; };_ccbg :=_gbbb ._fgada ;_dceg ,_fbaed :=_ccbg .addCerts (_fefac );if _fbaed !=nil {return _fbaed ;};_fcdeg ,_fbaed :=_ccbg .addOCSPs (_eafg );if _fbaed !=nil {return _fbaed ;};_bdage ,_fbaed :=_ccbg .addCRLs (_baagf );if _fbaed !=nil {return _fbaed ;}; if _gdde !=""{_ccbg .VRI [_gdde ]=&VRI {Cert :_dceg ,OCSP :_fcdeg ,CRL :_bdage };};_gbbb ._caadf .SetDSS (_ccbg );return nil ;};func (_adeb PdfFont )actualFont ()pdfFont {if _adeb ._gdcab ==nil {_dbg .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",_adeb ); };return _adeb ._gdcab ;}; // ColorFromFloats returns a new PdfColor based on input color components. func (_geaf *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_geaf .GetNumComponents (){return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gaf ,_dgdb :=_geaf .TintTransform .Evaluate (vals ); if _dgdb !=nil {return nil ,_dgdb ;};_cfda ,_dgdb :=_geaf .AlternateSpace .ColorFromFloats (_gaf );if _dgdb !=nil {return nil ,_dgdb ;};return _cfda ,nil ;}; // 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 (_adfe *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_bbd .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"); };_caedd :=&PdfColorPattern {};_dfad ,_bdab :=objects [len (objects )-1].(*_eg .PdfObjectName );if !_bdab {_dbg .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 ;};_caedd .PatternName =*_dfad ;if len (objects )> 1{_bgbfe :=objects [0:len (objects )-1];if _adfe .UnderlyingCS ==nil {_dbg .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 ,_bbd .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_fdfe ,_fbdcb :=_adfe .UnderlyingCS .ColorFromPdfObjects (_bgbfe );if _fbdcb !=nil {_dbg .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",_fbdcb ); return nil ,_fbdcb ;};_caedd .Color =_fdfe ;};return _caedd ,nil ;}; // ToPdfObject returns the PDF representation of the colorspace. func (_ceecg *PdfColorspaceDeviceGray )ToPdfObject ()_eg .PdfObject {return _eg .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};type pdfCIDFontType2 struct{fontCommon ;_ddfb *_eg .PdfIndirectObject ;_befc _cec .TextEncoder ; // Table 117 – Entries in a CIDFont dictionary (page 269) // Dictionary that defines the character collection of the CIDFont (required). // See Table 116. CIDSystemInfo *_eg .PdfObjectDictionary ; // Glyph metrics fields (optional). DW _eg .PdfObject ;W _eg .PdfObject ;DW2 _eg .PdfObject ;W2 _eg .PdfObject ; // CIDs to glyph indices mapping (optional). CIDToGIDMap _eg .PdfObject ;_egdc map[_cec .CharCode ]float64 ;_cbgd float64 ;_dgefb map[rune ]int ;};func _faadf (_aacdc *PdfPage ){_aefbc :=_dd .GetLicenseKey ();if _aefbc !=nil &&_aefbc .IsLicensed (){return ;};_gagea :=_eg .PdfObjectName ("\u0055\u0046\u0031"); if !_aacdc .Resources .HasFontByName (_gagea ){_aacdc .Resources .SetFontByName (_gagea ,DefaultFont ().ToPdfObject ());};var _cfffa []string ;_cfffa =append (_cfffa ,"\u0071");_cfffa =append (_cfffa ,"\u0042\u0054");_cfffa =append (_cfffa ,_e .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_gagea .String ())); _cfffa =append (_cfffa ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");_cfffa =append (_cfffa ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_cffag :="\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"; _cfffa =append (_cfffa ,_e .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_cffag ));_cfffa =append (_cfffa ,"\u0045\u0054");_cfffa =append (_cfffa ,"\u0051");_fgdfa :=_dc .Join (_cfffa ,"\u000a");_aacdc .AddContentStreamByString (_fgdfa );_aacdc .ToPdfObject (); };func (_aga *PdfReader )newPdfAnnotationCircleFromDict (_adf *_eg .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_bccb :=PdfAnnotationCircle {};_bbdb ,_eaa :=_aga .newPdfAnnotationMarkupFromDict (_adf );if _eaa !=nil {return nil ,_eaa ;};_bccb .PdfAnnotationMarkup =_bbdb ; _bccb .BS =_adf .Get ("\u0042\u0053");_bccb .IC =_adf .Get ("\u0049\u0043");_bccb .BE =_adf .Get ("\u0042\u0045");_bccb .RD =_adf .Get ("\u0052\u0044");return &_bccb ,nil ;}; // 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 *_eg .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_cedg *_eg .PdfIndirectObject ;}; // SetForms sets the Acroform for a PDF file. func (_bbcc *PdfWriter )SetForms (form *PdfAcroForm )error {_bbcc ._adcgf =form ;return nil }; // SetContext sets the sub action (context). func (_geb *PdfAction )SetContext (ctx PdfModel ){_geb ._cea =ctx }; // GetColorspaceByName returns the colorspace with the specified name from the page resources. func (_fegbgc *PdfPageResources )GetColorspaceByName (keyName _eg .PdfObjectName )(PdfColorspace ,bool ){_cbbabg ,_gdffe :=_fegbgc .GetColorspaces ();if _gdffe !=nil {_dbg .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",_gdffe ); return nil ,false ;};if _cbbabg ==nil {return nil ,false ;};_dfgafb ,_edabc :=_cbbabg .Colorspaces [string (keyName )];if !_edabc {return nil ,false ;};return _dfgafb ,true ;}; // 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 (_bdbb *Image )Resample (targetBitsPerComponent int64 ){if _bdbb .BitsPerComponent ==targetBitsPerComponent {return ;};_gagbf :=_bdbb .GetSamples ();if targetBitsPerComponent < _bdbb .BitsPerComponent {_fgegc :=_bdbb .BitsPerComponent -targetBitsPerComponent ; for _cecaf :=range _gagbf {_gagbf [_cecaf ]>>=uint (_fgegc );};}else if targetBitsPerComponent > _bdbb .BitsPerComponent {_bfafa :=targetBitsPerComponent -_bdbb .BitsPerComponent ;for _bdbag :=range _gagbf {_gagbf [_bdbag ]<<=uint (_bfafa );};};_bdbb .BitsPerComponent =targetBitsPerComponent ; if _bdbb .BitsPerComponent < 8{_bdbb .resampleLowBits (_gagbf );return ;};_fcefc :=_ff .BytesPerLine (int (_bdbb .Width ),int (_bdbb .BitsPerComponent ),_bdbb .ColorComponents );_aacd :=make ([]byte ,_fcefc *int (_bdbb .Height ));var (_efag ,_baee ,_cdfde ,_agge int ; _cgfd uint32 ;);for _cdfde =0;_cdfde < int (_bdbb .Height );_cdfde ++{_efag =_cdfde *_fcefc ;_baee =(_cdfde +1)*_fcefc -1;_feebd :=_ccg .ResampleUint32 (_gagbf [_efag :_baee ],int (targetBitsPerComponent ),8);for _agge ,_cgfd =range _feebd {_aacd [_agge +_efag ]=byte (_cgfd ); };};_bdbb .Data =_aacd ;}; // 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 ; // IsTerminal returns true for terminal fields, false otherwise. // Terminal fields are fields whose descendants are only widget annotations. func (_gfbf *PdfField )IsTerminal ()bool {return len (_gfbf .Kids )==0}; // UpdatePage updates the `page` in the new revision if it has changed. func (_cacb *PdfAppender )UpdatePage (page *PdfPage ){_cacb .updateObjectsDeep (page .ToPdfObject (),nil )};func (_agfa *PdfReader )newPdfAnnotationPolyLineFromDict (_dcgf *_eg .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_ecdd :=PdfAnnotationPolyLine {}; _dada ,_dece :=_agfa .newPdfAnnotationMarkupFromDict (_dcgf );if _dece !=nil {return nil ,_dece ;};_ecdd .PdfAnnotationMarkup =_dada ;_ecdd .Vertices =_dcgf .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_ecdd .LE =_dcgf .Get ("\u004c\u0045"); _ecdd .BS =_dcgf .Get ("\u0042\u0053");_ecdd .IC =_dcgf .Get ("\u0049\u0043");_ecdd .BE =_dcgf .Get ("\u0042\u0045");_ecdd .IT =_dcgf .Get ("\u0049\u0054");_ecdd .Measure =_dcgf .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_ecdd ,nil ;}; // ReaderToWriterOpts options used to generate a PdfWriter. type ReaderToWriterOpts struct{SkipAcroForm bool ;SkipInfo bool ;SkipNamedDests bool ;SkipOCProperties bool ;SkipOutlines bool ;SkipPageLabels bool ;SkipRotation bool ;PageProcessCallback PageProcessCallback ; // Deprecated: will be removed in v4. Use PageProcessCallback instead. PageCallback PageCallback ;}; // NewOutline returns a new outline instance. func NewOutline ()*Outline {return &Outline {}};func (_bcgcg *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _bcgcg ._eecfe }; // ToPdfObject implements interface PdfModel. func (_ac *PdfActionMovie )ToPdfObject ()_eg .PdfObject {_ac .PdfAction .ToPdfObject ();_gabf :=_ac ._ege ;_gfc :=_gabf .PdfObject .(*_eg .PdfObjectDictionary );_gfc .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeMovie )));_gfc .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_ac .Annotation ); _gfc .SetIfNotNil ("\u0054",_ac .T );_gfc .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_ac .Operation );return _gabf ;}; // ToPdfObject implements interface PdfModel. func (_cbdca *PdfAnnotationHighlight )ToPdfObject ()_eg .PdfObject {_cbdca .PdfAnnotation .ToPdfObject ();_aada :=_cbdca ._gag ;_abe :=_aada .PdfObject .(*_eg .PdfObjectDictionary );_cbdca .PdfAnnotationMarkup .appendToPdfDictionary (_abe );_abe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t")); _abe .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_cbdca .QuadPoints );return _aada ;}; // GetCerts returns the signature certificate chain. func (_ceedff *PdfSignature )GetCerts ()([]*_ce .Certificate ,error ){var _dgadde []func ()([]*_ce .Certificate ,error );switch _ddcba ,_ :=_eg .GetNameVal (_ceedff .SubFilter );_ddcba {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":_dgadde =append (_dgadde ,_ceedff .extractChainFromPKCS7 ,_ceedff .extractChainFromCert ); case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_dgadde =append (_dgadde ,_ceedff .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_dgadde =append (_dgadde ,_ceedff .extractChainFromPKCS7 ); default:return nil ,_e .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_ddcba );};for _ ,_bggedd :=range _dgadde {_bcacf ,_fefad :=_bggedd ();if _fefad !=nil {return nil ,_fefad ; };if len (_bcacf )> 0{return _bcacf ,nil ;};};return nil ,ErrSignNoCertificates ;};type fontCommon struct{_cfab string ;_fgbbb string ;_dfgf string ;_fgegd _eg .PdfObject ;_fffc *_aff .CMap ;_eecfe *PdfFontDescriptor ;_aaaf int64 ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_ggdd *PdfShadingType4 )ToPdfObject ()_eg .PdfObject {_ggdd .PdfShading .ToPdfObject ();_cdage ,_dagea :=_ggdd .getShadingDict ();if _dagea !=nil {_dbg .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 _ggdd .BitsPerCoordinate !=nil {_cdage .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_ggdd .BitsPerCoordinate );};if _ggdd .BitsPerComponent !=nil {_cdage .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ggdd .BitsPerComponent ); };if _ggdd .BitsPerFlag !=nil {_cdage .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_ggdd .BitsPerFlag );};if _ggdd .Decode !=nil {_cdage .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_ggdd .Decode );};if _ggdd .Function !=nil {if len (_ggdd .Function )==1{_cdage .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ggdd .Function [0].ToPdfObject ()); }else {_ggdbd :=_eg .MakeArray ();for _ ,_adfb :=range _ggdd .Function {_ggdbd .Append (_adfb .ToPdfObject ());};_cdage .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ggdbd );};};return _ggdd ._beag ;};func _ddgae ()string {_egbeg .Lock ();defer _egbeg .Unlock (); if len (_ebgfe )> 0{return _ebgfe ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";}; // GetAscent returns the Ascent of the font `descriptor`. func (_becb *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _eg .GetNumberAsFloat (_becb .Ascent );};func (_dgedb *PdfPage )getParentResources ()(*PdfPageResources ,error ){_cgcefb :=_dgedb .Parent ;for _cgcefb !=nil {_dfgfa ,_decf :=_eg .GetDict (_cgcefb ); if !_decf {_dbg .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 ,_bbd .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074"); };if _edbf :=_dfgfa .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_edbf !=nil {_ceaf ,_acfcd :=_eg .GetDict (_edbf );if !_acfcd {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074"); };_aecgb ,_fgfbb :=NewPdfPageResourcesFromDict (_ceaf );if _fgfbb !=nil {return nil ,_fgfbb ;};return _aecgb ,nil ;};_cgcefb =_dfgfa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;}; // 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 _eg .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_eg .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_egeg ,_aedeg :=encoder .EncodeBytes (img .Data ); if _aedeg !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_aedeg );return nil ,_aedeg ;};_faaea :=NewXObjectImage ();_gbegge :=img .Width ;_bacda :=img .Height ; _faaea .Width =&_gbegge ;_faaea .Height =&_bacda ;_dfbcde :=img .BitsPerComponent ;_faaea .BitsPerComponent =&_dfbcde ;_faaea .Filter =encoder ;_faaea .Stream =_egeg ;if cs ==nil {if img .ColorComponents ==1{_faaea .ColorSpace =NewPdfColorspaceDeviceGray (); }else if img .ColorComponents ==3{_faaea .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_faaea .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return nil ,_bbd .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064"); };}else {_faaea .ColorSpace =cs ;};if len (img ._fcec )!=0{_gcegg :=NewXObjectImage ();_gcegg .Filter =encoder ;_dbfbc ,_efabgb :=encoder .EncodeBytes (img ._fcec );if _efabgb !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_efabgb ); return nil ,_efabgb ;};_gcegg .Stream =_dbfbc ;_gcegg .BitsPerComponent =_faaea .BitsPerComponent ;_gcegg .Width =&img .Width ;_gcegg .Height =&img .Height ;_gcegg .ColorSpace =NewPdfColorspaceDeviceGray ();_faaea .SMask =_gcegg .ToPdfObject ();}else {_faaea .SMask =xobjIn .SMask ; _faaea .ImageMask =xobjIn .ImageMask ;if _faaea .ColorSpace .GetNumComponents ()==1{_fccc (_faaea );};};return _faaea ,nil ;}; // ToPdfObject implements interface PdfModel. // Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information. func (_fbd *PdfAnnotation )ToPdfObject ()_eg .PdfObject {_gaag :=_fbd ._gag ;_cgb :=_gaag .PdfObject .(*_eg .PdfObjectDictionary );_cgb .Clear ();_cgb .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0041\u006e\u006eo\u0074"));_cgb .SetIfNotNil ("\u0052\u0065\u0063\u0074",_fbd .Rect ); _cgb .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_fbd .Contents );_cgb .SetIfNotNil ("\u0050",_fbd .P );_cgb .SetIfNotNil ("\u004e\u004d",_fbd .NM );_cgb .SetIfNotNil ("\u004d",_fbd .M );_cgb .SetIfNotNil ("\u0046",_fbd .F );_cgb .SetIfNotNil ("\u0041\u0050",_fbd .AP ); _cgb .SetIfNotNil ("\u0041\u0053",_fbd .AS );_cgb .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_fbd .Border );_cgb .SetIfNotNil ("\u0043",_fbd .C );_cgb .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_fbd .StructParent ); _cgb .SetIfNotNil ("\u004f\u0043",_fbd .OC );return _gaag ;};func _bbfd (_cbafe *_eg .PdfObjectDictionary )(*PdfShadingType4 ,error ){_ffcbf :=PdfShadingType4 {};_cbdfc :=_cbafe .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065"); if _cbdfc ==nil {_dbg .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 ;};_egaae ,_ddec :=_cbdfc .(*_eg .PdfObjectInteger );if !_ddec {_dbg .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",_cbdfc ); return nil ,_eg .ErrTypeError ;};_ffcbf .BitsPerCoordinate =_egaae ;_cbdfc =_cbafe .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _cbdfc ==nil {_dbg .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 ;};_egaae ,_ddec =_cbdfc .(*_eg .PdfObjectInteger );if !_ddec {_dbg .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",_cbdfc ); return nil ,_eg .ErrTypeError ;};_ffcbf .BitsPerComponent =_egaae ;_cbdfc =_cbafe .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _cbdfc ==nil {_dbg .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 ;};_egaae ,_ddec =_cbdfc .(*_eg .PdfObjectInteger );if !_ddec {_dbg .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",_cbdfc ); return nil ,_eg .ErrTypeError ;};_ffcbf .BitsPerComponent =_egaae ;_cbdfc =_cbafe .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _cbdfc ==nil {_dbg .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 ;};_dbfd ,_ddec :=_cbdfc .(*_eg .PdfObjectArray );if !_ddec {_dbg .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",_cbdfc ); return nil ,_eg .ErrTypeError ;};_ffcbf .Decode =_dbfd ;_cbdfc =_cbafe .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _cbdfc ==nil {_dbg .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 ;};_ffcbf .Function =[]PdfFunction {};if _bgddf ,_bddf :=_cbdfc .(*_eg .PdfObjectArray );_bddf {for _ ,_ecge :=range _bgddf .Elements (){_fgggd ,_bcdef :=_dgbga (_ecge );if _bcdef !=nil {_dbg .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",_bcdef ); return nil ,_bcdef ;};_ffcbf .Function =append (_ffcbf .Function ,_fgggd );};}else {_dgffb ,_dfbf :=_dgbga (_cbdfc );if _dfbf !=nil {_dbg .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",_dfbf ); return nil ,_dfbf ;};_ffcbf .Function =append (_ffcbf .Function ,_dgffb );};return &_ffcbf ,nil ;}; // GetRuneMetrics returns the character metrics for the rune. // A bool flag is returned to indicate whether or not the entry was found. func (_eedd pdfFontSimple )GetRuneMetrics (r rune )(_ab .CharMetrics ,bool ){if _eedd ._edgae !=nil {_fcgdb ,_adcgc :=_eedd ._edgae .Read (r );if _adcgc {return _fcgdb ,true ;};};_abca :=_eedd .Encoder ();if _abca ==nil {_dbg .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_eedd ); return _ab .CharMetrics {},false ;};_eabcc ,_faee :=_abca .RuneToCharcode (r );if !_faee {if r !=' '{_dbg .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 ,_eedd ); };return _ab .CharMetrics {},false ;};_baba ,_gccc :=_eedd .GetCharMetrics (_eabcc );return _baba ,_gccc ;};func (_dgff *PdfAppender )updateObjectsDeep (_dged _eg .PdfObject ,_ece map[_eg .PdfObject ]struct{}){if _ece ==nil {_ece =map[_eg .PdfObject ]struct{}{}; };if _ ,_dbba :=_ece [_dged ];_dbba ||_dged ==nil {return ;};_ece [_dged ]=struct{}{};_dbff :=_eg .ResolveReferencesDeep (_dged ,_dgff ._baeg );if _dbff !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbff );};switch _aafc :=_dged .(type ){case *_eg .PdfIndirectObject :switch {case _aafc .GetParser ()==_dgff ._acdg ._cdggc :return ; case _aafc .GetParser ()==_dgff .Reader ._cdggc :_fbfc ,_ :=_dgff ._acdg .GetIndirectObjectByNumber (int (_aafc .ObjectNumber ));_dgcg ,_ggfe :=_fbfc .(*_eg .PdfIndirectObject );if _ggfe &&_dgcg !=nil {if _dgcg .PdfObject !=_aafc .PdfObject &&_dgcg .PdfObject .WriteString ()!=_aafc .PdfObject .WriteString (){_dgff .addNewObject (_dged ); _dgff ._bddd [_dged ]=_aafc .ObjectNumber ;};};default:_dgff .addNewObject (_dged );};_dgff .updateObjectsDeep (_aafc .PdfObject ,_ece );case *_eg .PdfObjectArray :for _ ,_gaec :=range _aafc .Elements (){_dgff .updateObjectsDeep (_gaec ,_ece );};case *_eg .PdfObjectDictionary :for _ ,_bead :=range _aafc .Keys (){_dgff .updateObjectsDeep (_aafc .Get (_bead ),_ece ); };case *_eg .PdfObjectStreams :if _aafc .GetParser ()!=_dgff ._acdg ._cdggc {for _ ,_cecd :=range _aafc .Elements (){_dgff .updateObjectsDeep (_cecd ,_ece );};};case *_eg .PdfObjectStream :switch {case _aafc .GetParser ()==_dgff ._acdg ._cdggc :return ; case _aafc .GetParser ()==_dgff .Reader ._cdggc :if _bdgg ,_bfec :=_dgff ._acdg ._cdggc .LookupByReference (_aafc .PdfObjectReference );_bfec ==nil {var _eaeb bool ;if _bcbg ,_cfde :=_eg .GetStream (_bdgg );_cfde &&_cbd .Equal (_bcbg .Stream ,_aafc .Stream ){_eaeb =true ; };if _eecg ,_dff :=_eg .GetDict (_bdgg );_eaeb &&_dff {_eaeb =_eecg .WriteString ()==_aafc .PdfObjectDictionary .WriteString ();};if _eaeb {return ;};};if _aafc .ObjectNumber !=0{_dgff ._bddd [_dged ]=_aafc .ObjectNumber ;};default:if _ ,_dfcdg :=_dgff ._adge [_dged ]; !_dfcdg {_dgff .addNewObject (_dged );};};_dgff .updateObjectsDeep (_aafc .PdfObjectDictionary ,_ece );};}; // PdfAnnotationSquiggly represents Squiggly annotations. // (Section 12.5.6.10). type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eg .PdfObject ;}; // NewPdfAnnotationSquare returns a new square annotation. func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_ebef :=NewPdfAnnotation ();_ecg :=&PdfAnnotationSquare {};_ecg .PdfAnnotation =_ebef ;_ecg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ebef .SetContext (_ecg );return _ecg ;}; // BaseFont returns the font's "BaseFont" field. func (_efgd *PdfFont )BaseFont ()string {return _efgd .baseFields ()._cfab };var _aaffe =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"}; type pdfCIDFontType0 struct{fontCommon ;_aeaff *_eg .PdfIndirectObject ;_aafde _cec .TextEncoder ; // Table 117 – Entries in a CIDFont dictionary (page 269) // (Required) Dictionary that defines the character collection of the CIDFont. // See Table 116. CIDSystemInfo *_eg .PdfObjectDictionary ; // Glyph metrics fields (optional). DW _eg .PdfObject ;W _eg .PdfObject ;DW2 _eg .PdfObject ;W2 _eg .PdfObject ;_fedfd map[_cec .CharCode ]float64 ;_gfbab float64 ;};func (_dacga *PdfReader )resolveReference (_ecbge *_eg .PdfObjectReference )(_eg .PdfObject ,bool ,error ){_effe ,_ffgab :=_dacga ._cdggc .ObjCache [int (_ecbge .ObjectNumber )]; if !_ffgab {_dbg .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_ecbge );_gaacab ,_gdfaf :=_dacga ._cdggc .LookupByReference (*_ecbge );if _gdfaf !=nil {return nil ,false ,_gdfaf ;}; _dacga ._cdggc .ObjCache [int (_ecbge .ObjectNumber )]=_gaacab ;return _gaacab ,false ,nil ;};return _effe ,true ,nil ;}; // PdfRectangle is a definition of a rectangle. type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;}; // IsColored specifies if the pattern is colored. func (_ddbe *PdfTilingPattern )IsColored ()bool {if _ddbe .PaintType !=nil &&*_ddbe .PaintType ==1{return true ;};return false ;}; // ColorToRGB converts a CMYK32 color to an RGB color. func (_bcgb *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_dbbf ,_gdfa :=color .(*PdfColorDeviceCMYK );if !_gdfa {_dbg .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 ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dbbec :=_dbbf .C ();_cbfc :=_dbbf .M ();_dcfg :=_dbbf .Y ();_acgdd :=_dbbf .K ();_dbbec =_dbbec *(1-_acgdd )+_acgdd ;_cbfc =_cbfc *(1-_acgdd )+_acgdd ; _dcfg =_dcfg *(1-_acgdd )+_acgdd ;_daeb :=1-_dbbec ;_cddc :=1-_cbfc ;_cfbe :=1-_dcfg ;return NewPdfColorDeviceRGB (_daeb ,_cddc ,_cfbe ),nil ;}; // Encoder returns the font's text encoder. func (_ebcfb pdfCIDFontType0 )Encoder ()_cec .TextEncoder {return _ebcfb ._aafde };func (_cgae *XObjectImage )getParamsDict ()*_eg .PdfObjectDictionary {_afefa :=_eg .MakeDict ();_afefa .Set ("\u0057\u0069\u0064t\u0068",_eg .MakeInteger (*_cgae .Width )); _afefa .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_eg .MakeInteger (*_cgae .Height ));_afefa .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_eg .MakeInteger (int64 (_cgae .ColorSpace .GetNumComponents ())));_afefa .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eg .MakeInteger (*_cgae .BitsPerComponent )); return _afefa ;};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";); // 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 ;_abbc *_eg .PdfIndirectObject ;}; // ToInteger convert to an integer format. func (_gfce *PdfColorLab )ToInteger (bits int )[3]uint32 {_bffc :=_bc .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_bffc *_gfce .L ()),uint32 (_bffc *_gfce .A ()),uint32 (_bffc *_gfce .B ())};};func _aebfd (_ccfc *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_ccfc }}; // NewPdfAnnotationTrapNet returns a new trapnet annotation. func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_ffbb :=NewPdfAnnotation ();_abc :=&PdfAnnotationTrapNet {};_abc .PdfAnnotation =_ffbb ;_ffbb .SetContext (_abc );return _abc ;}; // NewPdfActionSubmitForm returns a new "submit form" action. func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_fa :=NewPdfAction ();_gab :=&PdfActionSubmitForm {};_gab .PdfAction =_fa ;_fa .SetContext (_gab );return _gab ;}; // NewXObjectImage returns a new XObjectImage. func NewXObjectImage ()*XObjectImage {_cdgfd :=&XObjectImage {};_afcca :=&_eg .PdfObjectStream {};_afcca .PdfObjectDictionary =_eg .MakeDict ();_cdgfd ._dcdb =_afcca ;return _cdgfd ;}; // 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 *_eg .PdfObjectStream )(*XObjectImage ,error ){_dfegd :=&XObjectImage {};_dfegd ._dcdb =stream ;_ddebe :=*(stream .PdfObjectDictionary );_bfgdc ,_aabgfe :=_eg .NewEncoderFromStream (stream );if _aabgfe !=nil {return nil ,_aabgfe ; };_dfegd .Filter =_bfgdc ;if _eagae :=_eg .TraceToDirectObject (_ddebe .Get ("\u0057\u0069\u0064t\u0068"));_eagae !=nil {_cgba ,_bafdfc :=_eagae .(*_eg .PdfObjectInteger );if !_bafdfc {return nil ,_bbd .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"); };_gfceb :=int64 (*_cgba );_dfegd .Width =&_gfceb ;}else {return nil ,_bbd .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _acbcd :=_eg .TraceToDirectObject (_ddebe .Get ("\u0048\u0065\u0069\u0067\u0068\u0074")); _acbcd !=nil {_aacae ,_dcfae :=_acbcd .(*_eg .PdfObjectInteger );if !_dcfae {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_efgdf :=int64 (*_aacae ); _dfegd .Height =&_efgdf ;}else {return nil ,_bbd .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _ecceb :=_eg .TraceToDirectObject (_ddebe .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065")); _ecceb !=nil {_eafcd ,_bgae :=NewPdfColorspaceFromPdfObject (_ecceb );if _bgae !=nil {return nil ,_bgae ;};_dfegd .ColorSpace =_eafcd ;}else {_dbg .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063t\u0020\u0049\u006d\u0061\u0067e\u0020\u0063\u006f\u006c\u006f\u0072s\u0070\u0061\u0063\u0065\u0020n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064 \u002d\u0020\u0061\u0073\u0073\u0075\u006d\u0069\u006e\u0067\u0020\u0031\u0020\u0063\u006fl\u006f\u0072\u0020\u0063\u006f\u006d\u0070\u006fn\u0065\u006e\u0074"); _dfegd .ColorSpace =NewPdfColorspaceDeviceGray ();};if _agage :=_eg .TraceToDirectObject (_ddebe .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_agage !=nil {_ecffg ,_eebd :=_agage .(*_eg .PdfObjectInteger ); if !_eebd {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_edbfca :=int64 (*_ecffg );_dfegd .BitsPerComponent =&_edbfca ;};_dfegd .Intent =_ddebe .Get ("\u0049\u006e\u0074\u0065\u006e\u0074"); _dfegd .ImageMask =_ddebe .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_dfegd .Mask =_ddebe .Get ("\u004d\u0061\u0073\u006b");_dfegd .Decode =_ddebe .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_dfegd .Interpolate =_ddebe .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065"); _dfegd .Alternatives =_ddebe .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_dfegd .SMask =_ddebe .Get ("\u0053\u004d\u0061s\u006b");_dfegd .SMaskInData =_ddebe .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061"); _dfegd .Matte =_ddebe .Get ("\u004d\u0061\u0074t\u0065");_dfegd .Name =_ddebe .Get ("\u004e\u0061\u006d\u0065");_dfegd .StructParent =_ddebe .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_dfegd .ID =_ddebe .Get ("\u0049\u0044"); _dfegd .OPI =_ddebe .Get ("\u004f\u0050\u0049");_dfegd .Metadata =_ddebe .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_dfegd .OC =_ddebe .Get ("\u004f\u0043");_dfegd .Stream =stream .Stream ;return _dfegd ,nil ;};func (_cgecb *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _cgecb ._cdggc .GetCrypter ()!=nil &&!_cgecb ._cdggc .IsAuthenticated (){return nil ,_e .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"); };_bbef :=_cgecb ._efdg ;_agbec :=_bbef .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _agbec ==nil {return nil ,nil ;};_dbg .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_dfceb :=_eg .ResolveReference (_agbec ); _dbg .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_dfceb );if _cbad :=_eg .IsNullObject (_dfceb );_cbad {_dbg .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 ;};_fagd ,_bccfee :=_dfceb .(*_eg .PdfIndirectObject );if !_bccfee {if _ ,_abce :=_eg .GetDict (_dfceb );!_abce {_dbg .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 ;};_dbg .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"); _fagd =_eg .MakeIndirectObject (_dfceb );};_geffa ,_bccfee :=_fagd .PdfObject .(*_eg .PdfObjectDictionary );if !_bccfee {return nil ,_bbd .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"); };_dbg .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_geffa );_faef ,_ ,_bcdcc :=_cgecb .buildOutlineTree (_fagd ,nil ,nil ,nil );if _bcdcc !=nil {return nil ,_bcdcc ;};_dbg .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",_faef ); return _faef ,nil ;};func (_egdgb *PdfAcroForm )filteredFields (_gdgbf FieldFilterFunc ,_bbcbb bool )[]*PdfField {if _egdgb ==nil {return nil ;};return _dccbga (_egdgb .Fields ,_gdgbf ,_bbcbb );}; // ToPdfObject converts the pdfFontSimple to its PDF representation for outputting. func (_ecfe *pdfFontSimple )ToPdfObject ()_eg .PdfObject {if _ecfe ._acfb ==nil {_ecfe ._acfb =&_eg .PdfIndirectObject {};};_edefg :=_ecfe .baseFields ().asPdfObjectDictionary ("");_ecfe ._acfb .PdfObject =_edefg ;if _ecfe .FirstChar !=nil {_edefg .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_ecfe .FirstChar ); };if _ecfe .LastChar !=nil {_edefg .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_ecfe .LastChar );};if _ecfe .Widths !=nil {_edefg .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_ecfe .Widths );};if _ecfe .Encoding !=nil {_edefg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ecfe .Encoding ); }else if _ecfe ._gccbc !=nil {_ffeg :=_ecfe ._gccbc .ToPdfObject ();if _ffeg !=nil {_edefg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ffeg );};};return _ecfe ._acfb ;}; // 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 _de .ReadSeeker )(*PdfFont ,error ){_gagaf ,_ebcag :=_aa .ReadAll (r );if _ebcag !=nil {_dbg .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",_ebcag ); return nil ,_ebcag ;};_dgfcd ,_ebcag :=_ab .TtfParse (_cbd .NewReader (_gagaf ));if _ebcag !=nil {_dbg .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",_ebcag ); return nil ,_ebcag ;};_adcc :=&pdfCIDFontType2 {fontCommon :fontCommon {_fgbbb :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_eg .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};_deab :=make ([]rune ,0,len (_dgfcd .Chars )); for _cecad :=range _dgfcd .Chars {_deab =append (_deab ,_cecad );};_ae .Slice (_deab ,func (_fgdc ,_gcdcbg int )bool {return _deab [_fgdc ]< _deab [_gcdcbg ]});_facba :=1000.0/float64 (_dgfcd .UnitsPerEm );if len (_dgfcd .Widths )<=0{return nil ,_bbd .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"); };_badgg :=_facba *float64 (_dgfcd .Widths [0]);_beaad :=make (map[rune ]int );for _ ,_cfede :=range _deab {_dfbcg :=_dgfcd .Chars [_cfede ];_aagcf :=_facba *float64 (_dgfcd .Widths [_dfbcg ]);_beaad [_cfede ]=int (_aagcf );};_adcc ._dgefb =_beaad ;_adcc .DW =_eg .MakeInteger (int64 (_badgg )); _cfedc :=_abff (_deab ,_beaad ,_dgfcd .Chars );_adcc .W =_eg .MakeIndirectObject (_cfedc );_geag :=_eg .MakeDict ();_geag .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_eg .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_geag .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_eg .MakeString ("\u0041\u0064\u006fb\u0065")); _geag .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_eg .MakeInteger (0));_adcc .CIDSystemInfo =_geag ;_dgbea :=&PdfFontDescriptor {FontName :_eg .MakeName (_dgfcd .PostScriptName ),Ascent :_eg .MakeFloat (_facba *float64 (_dgfcd .TypoAscender )),Descent :_eg .MakeFloat (_facba *float64 (_dgfcd .TypoDescender )),CapHeight :_eg .MakeFloat (_facba *float64 (_dgfcd .CapHeight )),FontBBox :_eg .MakeArrayFromFloats ([]float64 {_facba *float64 (_dgfcd .Xmin ),_facba *float64 (_dgfcd .Ymin ),_facba *float64 (_dgfcd .Xmax ),_facba *float64 (_dgfcd .Ymax )}),ItalicAngle :_eg .MakeFloat (_dgfcd .ItalicAngle ),MissingWidth :_eg .MakeFloat (_facba *float64 (_dgfcd .Widths [0]))}; _eefe ,_ebcag :=_eg .MakeStream (_gagaf ,_eg .NewFlateEncoder ());if _ebcag !=nil {_dbg .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",_ebcag ); return nil ,_ebcag ;};_eefe .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_eg .MakeInteger (int64 (len (_gagaf ))));_dgbea .FontFile2 =_eefe ;if _dgfcd .Bold {_dgbea .StemV =_eg .MakeInteger (120);}else {_dgbea .StemV =_eg .MakeInteger (70); };_gbgfa :=_efecb ;if _dgfcd .IsFixedPitch {_gbgfa |=_defe ;};if _dgfcd .ItalicAngle !=0{_gbgfa |=_fedcc ;};_dgbea .Flags =_eg .MakeInteger (int64 (_gbgfa ));_adcc ._cfab =_dgfcd .PostScriptName ;_adcc ._eecfe =_dgbea ;_bfdc :=pdfFontType0 {fontCommon :fontCommon {_fgbbb :"\u0054\u0079\u0070e\u0030",_cfab :_dgfcd .PostScriptName },DescendantFont :&PdfFont {_gdcab :_adcc },Encoding :_eg .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_eceba :_dgfcd .NewEncoder ()}; if len (_dgfcd .Chars )> 0{_ffgda :=make (map[_aff .CharCode ]rune ,len (_dgfcd .Chars ));for _aggga ,_ddeae :=range _dgfcd .Chars {_gdad :=_aff .CharCode (_ddeae );if _acge ,_cffg :=_ffgda [_gdad ];!_cffg ||(_cffg &&_acge > _aggga ){_ffgda [_gdad ]=_aggga ; };};_bfdc ._fffc =_aff .NewToUnicodeCMap (_ffgda );};_fecg :=PdfFont {_gdcab :&_bfdc };return &_fecg ,nil ;};func (_bag *PdfReader )newPdfActionGotoFromDict (_bacb *_eg .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_bacb .Get ("\u0044")},nil ; };func _acde (_eged _eg .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_ecgf :=NewPdfColorspaceSpecialIndexed ();if _fbad ,_adbd :=_eged .(*_eg .PdfIndirectObject );_adbd {_ecgf ._cbdga =_fbad ;};_eged =_eg .TraceToDirectObject (_eged );_fgcd ,_fdge :=_eged .(*_eg .PdfObjectArray ); if !_fdge {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fgcd .Len ()!=4{return nil ,_e .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"); };_eged =_fgcd .Get (0);_gged ,_fdge :=_eged .(*_eg .PdfObjectName );if !_fdge {return nil ,_e .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_gged !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_e .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065"); };_eged =_fgcd .Get (1);_gaba ,_ddcf :=DetermineColorspaceNameFromPdfObject (_eged );if _ddcf !=nil {return nil ,_ddcf ;};if _gaba =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_gaba =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_dbg .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",_gaba ); return nil ,_fgega ;};_dgcd ,_ddcf :=NewPdfColorspaceFromPdfObject (_eged );if _ddcf !=nil {return nil ,_ddcf ;};_ecgf .Base =_dgcd ;_eged =_fgcd .Get (2);_aaed ,_ddcf :=_eg .GetNumberAsInt64 (_eged );if _ddcf !=nil {return nil ,_ddcf ;};if _aaed > 255{return nil ,_e .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l"); };_ecgf .HiVal =int (_aaed );_eged =_fgcd .Get (3);_ecgf .Lookup =_eged ;_eged =_eg .TraceToDirectObject (_eged );var _cbfea []byte ;if _bgabf ,_fcae :=_eged .(*_eg .PdfObjectString );_fcae {_cbfea =_bgabf .Bytes ();_dbg .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",_cbfea ); }else if _dggbb ,_dbcef :=_eged .(*_eg .PdfObjectStream );_dbcef {_dbg .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_eged .String ());_dbg .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_dggbb .Stream ),_dggbb .Stream ); _ebcb ,_gfadf :=_eg .DecodeStream (_dggbb );if _gfadf !=nil {return nil ,_gfadf ;};_dbg .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_ebcb ),_ebcb );_cbfea =_ebcb ;}else {_dbg .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_eged ); return nil ,_e .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 (_cbfea )< _ecgf .Base .GetNumComponents ()*(_ecgf .HiVal +1){_dbg .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"); _dbg .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 (_cbfea ),_ecgf .Base .GetNumComponents (),_ecgf .HiVal ); }else {_cbfea =_cbfea [:_ecgf .Base .GetNumComponents ()*(_ecgf .HiVal +1)];};_ecgf ._dbcc =_cbfea ;return _ecgf ,nil ;}; // B returns the value of the B component of the color. func (_faeb *PdfColorLab )B ()float64 {return _faeb [2]}; // NewPdfActionHide returns a new "hide" action. func NewPdfActionHide ()*PdfActionHide {_fdf :=NewPdfAction ();_ebc :=&PdfActionHide {};_ebc .PdfAction =_fdf ;_fdf .SetContext (_ebc );return _ebc ;}; // PdfAnnotationPolyLine represents PolyLine annotations. // (Section 12.5.6.9). type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _eg .PdfObject ;LE _eg .PdfObject ;BS _eg .PdfObject ;IC _eg .PdfObject ;BE _eg .PdfObject ;IT _eg .PdfObject ;Measure _eg .PdfObject ;}; // 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 (_afec *pdfFontSimple )SetEncoder (encoder _cec .TextEncoder ){_afec ._gccbc =encoder }; // PartialName returns the partial name of the field. func (_caedf *PdfField )PartialName ()string {_dbfcb :="";if _caedf .T !=nil {_dbfcb =_caedf .T .Decoded ();}else {_dbg .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 _dbfcb ;}; // MergePageWith appends page content to source Pdf file page content. func (_geef *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_daff :=pageNum -1;var _fcga *PdfPage ;for _cdgaa ,_fgcgc :=range _geef ._bfce {if _cdgaa ==_daff {_fcga =_fgcgc ;};};if _fcga ==nil {return _e .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 _fcga ._caaef !=nil &&_fcga ._caaef .GetParser ()==_geef ._acdg ._cdggc {_fcga =_fcga .Duplicate ();_geef ._bfce [_daff ]=_fcga ;};page =page .Duplicate ();_faadf (page );_fag :=_aadg (_fcga );_fbfg :=_aadg (page );_adcb :=make (map[_eg .PdfObjectName ]_eg .PdfObjectName ); for _bce :=range _fbfg {if _ ,_dgfd :=_fag [_bce ];_dgfd {for _cfdbd :=1;true ;_cfdbd ++{_febe :=_eg .PdfObjectName (string (_bce )+_db .Itoa (_cfdbd ));if _ ,_fedbg :=_fag [_febe ];!_fedbg {_adcb [_bce ]=_febe ;break ;};};};};_gba ,_eaff :=page .GetContentStreams (); if _eaff !=nil {return _eaff ;};_dag ,_eaff :=_fcga .GetContentStreams ();if _eaff !=nil {return _eaff ;};for _dede ,_eaebb :=range _gba {for _ebfc ,_bebg :=range _adcb {_eaebb =_dc .Replace (_eaebb ,"\u002f"+string (_ebfc ),"\u002f"+string (_bebg ),-1); };_gba [_dede ]=_eaebb ;};_dag =append (_dag ,_gba ...);if _cdbg :=_fcga .SetContentStreams (_dag ,_eg .NewFlateEncoder ());_cdbg !=nil {return _cdbg ;};_fcga ._egge =append (_fcga ._egge ,page ._egge ...);if _fcga .Resources ==nil {_fcga .Resources =NewPdfPageResources (); };if page .Resources !=nil {_fcga .Resources .Font =_geef .mergeResources (_fcga .Resources .Font ,page .Resources .Font ,_adcb );_fcga .Resources .XObject =_geef .mergeResources (_fcga .Resources .XObject ,page .Resources .XObject ,_adcb );_fcga .Resources .Properties =_geef .mergeResources (_fcga .Resources .Properties ,page .Resources .Properties ,_adcb ); if _fcga .Resources .ProcSet ==nil {_fcga .Resources .ProcSet =page .Resources .ProcSet ;};_fcga .Resources .Shading =_geef .mergeResources (_fcga .Resources .Shading ,page .Resources .Shading ,_adcb );_fcga .Resources .ExtGState =_geef .mergeResources (_fcga .Resources .ExtGState ,page .Resources .ExtGState ,_adcb ); };_ega ,_eaff :=_fcga .GetMediaBox ();if _eaff !=nil {return _eaff ;};_bgda ,_eaff :=page .GetMediaBox ();if _eaff !=nil {return _eaff ;};var _aaea bool ;if _ega .Llx > _bgda .Llx {_ega .Llx =_bgda .Llx ;_aaea =true ;};if _ega .Lly > _bgda .Lly {_ega .Lly =_bgda .Lly ; _aaea =true ;};if _ega .Urx < _bgda .Urx {_ega .Urx =_bgda .Urx ;_aaea =true ;};if _ega .Ury < _bgda .Ury {_ega .Ury =_bgda .Ury ;_aaea =true ;};if _aaea {_fcga .MediaBox =_ega ;};return nil ;}; // GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number. func (_ecgg *PdfReader )GetIndirectObjectByNumber (number int )(_eg .PdfObject ,error ){_bgaf ,_gdbf :=_ecgg ._cdggc .LookupByNumber (number );return _bgaf ,_gdbf ;}; // AddContentStreamByString adds content stream by string. Puts the content // string into a stream object and points the content stream towards it. func (_dafba *PdfPage )AddContentStreamByString (contentStr string )error {_fcdd ,_cgced :=_eg .MakeStream ([]byte (contentStr ),_eg .NewFlateEncoder ());if _cgced !=nil {return _cgced ;};if _dafba .Contents ==nil {_dafba .Contents =_fcdd ;}else {_bfgcd :=_eg .TraceToDirectObject (_dafba .Contents ); _cfad ,_ffege :=_bfgcd .(*_eg .PdfObjectArray );if !_ffege {_cfad =_eg .MakeArray (_bfgcd );};_cfad .Append (_fcdd );_dafba .Contents =_cfad ;};return nil ;}; // PdfActionSound represents a sound action. type PdfActionSound struct{*PdfAction ;Sound _eg .PdfObject ;Volume _eg .PdfObject ;Synchronous _eg .PdfObject ;Repeat _eg .PdfObject ;Mix _eg .PdfObject ;}; // PdfShadingType7 is a Tensor-product patch mesh. type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_eg .PdfObjectInteger ;BitsPerComponent *_eg .PdfObjectInteger ;BitsPerFlag *_eg .PdfObjectInteger ;Decode *_eg .PdfObjectArray ;Function []PdfFunction ;}; // NewPdfAnnotationInk returns a new ink annotation. func NewPdfAnnotationInk ()*PdfAnnotationInk {_ddd :=NewPdfAnnotation ();_dcd :=&PdfAnnotationInk {};_dcd .PdfAnnotation =_ddd ;_dcd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ddd .SetContext (_dcd );return _dcd ;};func (_ffcee *DSS )add (_cbac *[]*_eg .PdfObjectStream ,_ebfab map[string ]*_eg .PdfObjectStream ,_abgg [][]byte )([]*_eg .PdfObjectStream ,error ){_fdcg :=make ([]*_eg .PdfObjectStream ,0,len (_abgg )); for _ ,_fefb :=range _abgg {_bccfc ,_degg :=_cafd (_fefb );if _degg !=nil {return nil ,_degg ;};_dage ,_gccbg :=_ebfab [string (_bccfc )];if !_gccbg {_dage ,_degg =_eg .MakeStream (_fefb ,_eg .NewRawEncoder ());if _degg !=nil {return nil ,_degg ;};_ebfab [string (_bccfc )]=_dage ; *_cbac =append (*_cbac ,_dage );};_fdcg =append (_fdcg ,_dage );};return _fdcg ,nil ;}; // ToInteger convert to an integer format. func (_ecda *PdfColorCalGray )ToInteger (bits int )uint32 {_cffee :=_bc .Pow (2,float64 (bits ))-1;return uint32 (_cffee *_ecda .Val ());}; // WriteToFile writes the Appender output to file specified by path. func (_eaaf *PdfAppender )WriteToFile (outputPath string )error {_cae ,_eceg :=_bg .Create (outputPath );if _eceg !=nil {return _eceg ;};defer _cae .Close ();return _eaaf .Write (_cae );}; // SetOptimizer sets the optimizer to optimize PDF before writing. func (_gagfe *PdfWriter )SetOptimizer (optimizer Optimizer ){_gagfe ._efdcf =optimizer };func _edbga (_caeaf *PdfField ,_bbfad _eg .PdfObject )error {switch _caeaf .GetContext ().(type ){case *PdfFieldText :switch _gaff :=_bbfad .(type ){case *_eg .PdfObjectName :_fdga :=_gaff ; _dbg .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",_fdga .String ()); _caeaf .V =_eg .MakeEncodedString (_gaff .String (),true );case *_eg .PdfObjectString :_caeaf .V =_eg .MakeEncodedString (_gaff .String (),true );default:_dbg .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",_gaff ,_gaff ); };case *PdfFieldButton :switch _bbfad .(type ){case *_eg .PdfObjectName :if len (_bbfad .String ())> 0{_caeaf .V =_bbfad ;_bbafc (_caeaf ,_bbfad );};case *_eg .PdfObjectString :if len (_bbfad .String ())> 0{_caeaf .V =_eg .MakeName (_bbfad .String ()); _bbafc (_caeaf ,_caeaf .V );};default:_dbg .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",_caeaf .PartialName (),_bbfad );_caeaf .V =_bbfad ; };case *PdfFieldChoice :switch _bbfad .(type ){case *_eg .PdfObjectName :if len (_bbfad .String ())> 0{_caeaf .V =_eg .MakeString (_bbfad .String ());_bbafc (_caeaf ,_bbfad );};case *_eg .PdfObjectString :if len (_bbfad .String ())> 0{_caeaf .V =_bbfad ; _bbafc (_caeaf ,_eg .MakeName (_bbfad .String ()));};default:_dbg .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",_caeaf .PartialName (),_bbfad ); _caeaf .V =_bbfad ;};case *PdfFieldSignature :_dbg .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",_caeaf .PartialName (),_bbfad ); };return nil ;}; // K returns the value of the key component of the color. func (_eafe *PdfColorDeviceCMYK )K ()float64 {return _eafe [3]};func (_dcbdc *PdfWriter )writeObject (_abgbc int ,_gadad _eg .PdfObject ){_dbg .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_abgbc );if _egad ,_ggfec :=_gadad .(*_eg .PdfIndirectObject ); _ggfec {_dcbdc ._fadgbb [_abgbc ]=crossReference {Type :1,Offset :_dcbdc ._agecc ,Generation :_egad .GenerationNumber };_gbgbg :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_abgbc );if _ddccc ,_befde :=_egad .PdfObject .(*pdfSignDictionary ); _befde {_ddccc ._gfefg =_dcbdc ._agecc +int64 (len (_gbgbg ));};if _egad .PdfObject ==nil {_dbg .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"); _egad .PdfObject =_eg .MakeNull ();};_gbgbg +=_egad .PdfObject .WriteString ();_gbgbg +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_dcbdc .writeString (_gbgbg );return ;};if _egecf ,_cdccb :=_gadad .(*_eg .PdfObjectStream );_cdccb {_dcbdc ._fadgbb [_abgbc ]=crossReference {Type :1,Offset :_dcbdc ._agecc ,Generation :_egecf .GenerationNumber }; _bebdd :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_abgbc );_bebdd +=_egecf .PdfObjectDictionary .WriteString ();_bebdd +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_dcbdc .writeString (_bebdd );_dcbdc .writeBytes (_egecf .Stream ); _dcbdc .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _gaabb ,_abacd :=_gadad .(*_eg .PdfObjectStreams );_abacd {_dcbdc ._fadgbb [_abgbc ]=crossReference {Type :1,Offset :_dcbdc ._agecc ,Generation :_gaabb .GenerationNumber }; _ggcdf :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_abgbc );var _fgbf []string ;var _cbfaf string ;var _fdead int64 ;for _ddgcde ,_eeafb :=range _gaabb .Elements (){_dedae ,_afgcf :=_eeafb .(*_eg .PdfIndirectObject );if !_afgcf {_dbg .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",_abgbc ,_eeafb ); continue ;};_defb :=_dedae .PdfObject .WriteString ()+"\u0020";_cbfaf =_cbfaf +_defb ;_fgbf =append (_fgbf ,_e .Sprintf ("\u0025\u0064\u0020%\u0064",_dedae .ObjectNumber ,_fdead ));_dcbdc ._fadgbb [int (_dedae .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_abgbc ,Index :_ddgcde }; _fdead =_fdead +int64 (len ([]byte (_defb )));};_gdcae :=_dc .Join (_fgbf ,"\u0020")+"\u0020";_dacbd :=_eg .NewFlateEncoder ();_cacgg :=_dacbd .MakeStreamDict ();_cacgg .Set (_eg .PdfObjectName ("\u0054\u0079\u0070\u0065"),_eg .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d")); _accaeb :=int64 (_gaabb .Len ());_cacgg .Set (_eg .PdfObjectName ("\u004e"),_eg .MakeInteger (_accaeb ));_fgaga :=int64 (len (_gdcae ));_cacgg .Set (_eg .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_eg .MakeInteger (_fgaga ));_aaggg ,_ :=_dacbd .EncodeBytes ([]byte (_gdcae +_cbfaf )); _abfdag :=int64 (len (_aaggg ));_cacgg .Set (_eg .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_eg .MakeInteger (_abfdag ));_ggcdf +=_cacgg .WriteString ();_ggcdf +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_dcbdc .writeString (_ggcdf ); _dcbdc .writeBytes (_aaggg );_dcbdc .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_dcbdc .writeString (_gadad .WriteString ());};func (_afegd *pdfFontType3 )baseFields ()*fontCommon {return &_afegd .fontCommon }; // ToPdfObject implements interface PdfModel. func (_gfgc *PdfBorderStyle )ToPdfObject ()_eg .PdfObject {_cfee :=_eg .MakeDict ();if _gfgc ._cbeg !=nil {if _edfd ,_acac :=_gfgc ._cbeg .(*_eg .PdfIndirectObject );_acac {_edfd .PdfObject =_cfee ;};};_cfee .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072")); if _gfgc .W !=nil {_cfee .Set ("\u0057",_eg .MakeFloat (*_gfgc .W ));};if _gfgc .S !=nil {_cfee .Set ("\u0053",_eg .MakeName (_gfgc .S .GetPdfName ()));};if _gfgc .D !=nil {_cfee .Set ("\u0044",_eg .MakeArrayFromIntegers (*_gfgc .D ));};if _gfgc ._cbeg !=nil {return _gfgc ._cbeg ; };return _cfee ;}; // SetPatternByName sets a pattern resource specified by keyName. func (_bcbedb *PdfPageResources )SetPatternByName (keyName _eg .PdfObjectName ,pattern _eg .PdfObject )error {if _bcbedb .Pattern ==nil {_bcbedb .Pattern =_eg .MakeDict ();};_afcb ,_gbff :=_bcbedb .Pattern .(*_eg .PdfObjectDictionary );if !_gbff {return _eg .ErrTypeError ; };_afcb .Set (keyName ,pattern );return nil ;}; // SetDate sets the `M` field of the signature. func (_bcgaf *PdfSignature )SetDate (date _ee .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";};_bcgaf .M =_eg .MakeString (date .Format (format )); }; // NewPdfColorLab returns a new Lab color. func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_becd :=PdfColorLab {l ,a ,b };return &_becd }; // PdfActionURI represents an URI action. type PdfActionURI struct{*PdfAction ;URI _eg .PdfObject ;IsMap _eg .PdfObject ;}; // ToPdfObject implements interface PdfModel. func (_bgdbb *PdfSignature )ToPdfObject ()_eg .PdfObject {_egaeg :=_bgdbb ._ffae ;var _gfcd *_eg .PdfObjectDictionary ;if _ffddd ,_bcef :=_egaeg .PdfObject .(*pdfSignDictionary );_bcef {_gfcd =_ffddd .PdfObjectDictionary ;}else {_gfcd =_egaeg .PdfObject .(*_eg .PdfObjectDictionary ); };_gfcd .SetIfNotNil ("\u0054\u0079\u0070\u0065",_bgdbb .Type );_gfcd .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_bgdbb .Filter );_gfcd .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_bgdbb .SubFilter );_gfcd .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_bgdbb .ByteRange ); _gfcd .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_bgdbb .Contents );_gfcd .SetIfNotNil ("\u0043\u0065\u0072\u0074",_bgdbb .Cert );_gfcd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bgdbb .Name );_gfcd .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_bgdbb .Reason ); _gfcd .SetIfNotNil ("\u004d",_bgdbb .M );_gfcd .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_bgdbb .Reference );_gfcd .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_bgdbb .Changes );_gfcd .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_bgdbb .ContactInfo ); return _egaeg ;}; // ToPdfObject implements interface PdfModel. func (_cgbe *PdfAnnotationText )ToPdfObject ()_eg .PdfObject {_cgbe .PdfAnnotation .ToPdfObject ();_cbcd :=_cgbe ._gag ;_dgfe :=_cbcd .PdfObject .(*_eg .PdfObjectDictionary );if _cgbe .PdfAnnotationMarkup !=nil {_cgbe .PdfAnnotationMarkup .appendToPdfDictionary (_dgfe ); };_dgfe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0054\u0065\u0078\u0074"));_dgfe .SetIfNotNil ("\u004f\u0070\u0065\u006e",_cgbe .Open );_dgfe .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cgbe .Name );_dgfe .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_cgbe .State ); _dgfe .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_cgbe .StateModel );return _cbcd ;}; // GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject. func (_ffgee *modelManager )GetModelFromPrimitive (primitive _eg .PdfObject )PdfModel {model ,_deac :=_ffgee ._bfgf [primitive ];if !_deac {return nil ;};return model ;}; // 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 _de .ReadSeeker )(*PdfReader ,error ){const _gecec ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";_ccfb :=&PdfReader {_addac :rs ,_gadge :map[_eg .PdfObject ]struct{}{},_gced :_dbbge (),_bebe :true }; _bcdf ,_edbfc :=_fccgd ("\u0072");if _edbfc !=nil {return nil ,_edbfc ;};_edbfc =_dd .Track (_bcdf ,_gecec );if _edbfc !=nil {return nil ,_edbfc ;};_ccfb ._ebcgb =_bcdf ;_efeff ,_edbfc :=_eg .NewParser (rs );if _edbfc !=nil {return nil ,_edbfc ;};_ccfb ._cdggc =_efeff ; _aefab ,_edbfc :=_ccfb .IsEncrypted ();if _edbfc !=nil {return nil ,_edbfc ;};if !_aefab {_edbfc =_ccfb .loadStructure ();if _edbfc !=nil {return nil ,_edbfc ;};};return _ccfb ,nil ;}; // PdfColorPattern represents a pattern color. type PdfColorPattern struct{Color PdfColor ;PatternName _eg .PdfObjectName ;}; // 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 ; // 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 *_eg .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_eg .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_eg .PdfObjectBool ;_ccdbe PdfModel ;_beag _eg .PdfObject ;}; // 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 (_cgbcf *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_adddc :=_cgbcf .GetContentStreamObjs ();wrapContents =wrapContents &&len (_adddc )> 0;_fedg :=_eg .NewFlateEncoder ();_fbfcc :=_eg .MakeArray ();if wrapContents {_dabdg ,_egdac :=_eg .MakeStream ([]byte ("\u0071\u000a"),_fedg ); if _egdac !=nil {return _egdac ;};_fbfcc .Append (_dabdg );};_fbfcc .Append (_adddc ...);if wrapContents {_eagb ,_aefbd :=_eg .MakeStream ([]byte ("\u000a\u0051\u000a"),_fedg );if _aefbd !=nil {return _aefbd ;};_fbfcc .Append (_eagb );};_cgcfd ,_dfcdc :=_eg .MakeStream (cs ,_fedg ); if _dfcdc !=nil {return _dfcdc ;};_fbfcc .Append (_cgcfd );_cgbcf .Contents =_fbfcc ;return nil ;}; // 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 ){_badb :=PdfDate {};_fcebc :=_gdeaa .FindAllStringSubmatch (dateStr ,1);if len (_fcebc )< 1{return _badb ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0065\u0020s\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0073\u0029",dateStr ); };if len (_fcebc [0])!=10{return _badb ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0067\u0065\u0078p\u0020\u0067\u0072\u006f\u0075\u0070 \u006d\u0061\u0074\u0063\u0068\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020!\u003d\u0020\u0031\u0030"); };_badb ._cggcf ,_ =_db .ParseInt (_fcebc [0][1],10,32);_badb ._agfdbf ,_ =_db .ParseInt (_fcebc [0][2],10,32);_badb ._ebfff ,_ =_db .ParseInt (_fcebc [0][3],10,32);_badb ._bfabc ,_ =_db .ParseInt (_fcebc [0][4],10,32);_badb ._edagg ,_ =_db .ParseInt (_fcebc [0][5],10,32); _badb ._ggcbe ,_ =_db .ParseInt (_fcebc [0][6],10,32);if len (_fcebc [0][7])> 0{_badb ._facfb =_fcebc [0][7][0];}else {_badb ._facfb ='+';};if len (_fcebc [0][8])> 0{_badb ._gaggg ,_ =_db .ParseInt (_fcebc [0][8],10,32);}else {_badb ._gaggg =0;};if len (_fcebc [0][9])> 0{_badb ._daabe ,_ =_db .ParseInt (_fcebc [0][9],10,32); }else {_badb ._daabe =0;};return _badb ,nil ;};func _gbbe (_cca _eg .PdfObject )(*PdfFilespec ,error ){if _cca ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_cca );};var (CourierName =_ab .CourierName ;CourierBoldName =_ab .CourierBoldName ;CourierObliqueName =_ab .CourierObliqueName ; CourierBoldObliqueName =_ab .CourierBoldObliqueName ;HelveticaName =_ab .HelveticaName ;HelveticaBoldName =_ab .HelveticaBoldName ;HelveticaObliqueName =_ab .HelveticaObliqueName ;HelveticaBoldObliqueName =_ab .HelveticaBoldObliqueName ;SymbolName =_ab .SymbolName ; ZapfDingbatsName =_ab .ZapfDingbatsName ;TimesRomanName =_ab .TimesRomanName ;TimesBoldName =_ab .TimesBoldName ;TimesItalicName =_ab .TimesItalicName ;TimesBoldItalicName =_ab .TimesBoldItalicName ;); // ColorToRGB verifies that the input color is an RGB color. Method exists in // order to satisfy the PdfColorspace interface. func (_eee *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_ccgdg ,_gfeff :=color .(*PdfColorDeviceRGB );if !_gfeff {_dbg .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 ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _ccgdg ,nil ;}; // NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN. func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_bef :=&PdfColorspaceDeviceN {};return _bef }; // AddWatermarkImage adds a watermark to the page. func (_gbgfag *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_gfbfe ,_dcbfc :=_gbgfag .GetMediaBox ();if _dcbfc !=nil {return _dcbfc ;};_gbgbe :=_gfbfe .Urx -_gfbfe .Llx ;_abdf :=_gfbfe .Ury -_gfbfe .Lly ;_aebeb :=float64 (*ximg .Width ); _fgacc :=(_gbgbe -_aebeb )/2;if opt .FitToWidth {_aebeb =_gbgbe ;_fgacc =0;};_fabd :=_abdf ;_gcbg :=float64 (0);if opt .PreserveAspectRatio {_fabd =_aebeb *float64 (*ximg .Height )/float64 (*ximg .Width );_gcbg =(_abdf -_fabd )/2;};if _gbgfag .Resources ==nil {_gbgfag .Resources =NewPdfPageResources (); };_fgba :=0;_fbaeg :=_eg .PdfObjectName (_e .Sprintf ("\u0049\u006d\u0077%\u0064",_fgba ));for _gbgfag .Resources .HasXObjectByName (_fbaeg ){_fgba ++;_fbaeg =_eg .PdfObjectName (_e .Sprintf ("\u0049\u006d\u0077%\u0064",_fgba ));};_dcbfc =_gbgfag .AddImageResource (_fbaeg ,ximg ); if _dcbfc !=nil {return _dcbfc ;};_fgba =0;_afbag :=_eg .PdfObjectName (_e .Sprintf ("\u0047\u0053\u0025\u0064",_fgba ));for _gbgfag .HasExtGState (_afbag ){_fgba ++;_afbag =_eg .PdfObjectName (_e .Sprintf ("\u0047\u0053\u0025\u0064",_fgba ));};_dggcd :=_eg .MakeDict (); _dggcd .Set ("\u0042\u004d",_eg .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_dggcd .Set ("\u0043\u0041",_eg .MakeFloat (opt .Alpha ));_dggcd .Set ("\u0063\u0061",_eg .MakeFloat (opt .Alpha ));_dcbfc =_gbgfag .AddExtGState (_afbag ,_dggcd );if _dcbfc !=nil {return _dcbfc ; };_affcc :=_e .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",_afbag ,_aebeb ,_fabd ,_fgacc ,_gcbg ,_fbaeg ); _gbgfag .AddContentStreamByString (_affcc );return nil ;}; // ToPdfObject converts the pdfCIDFontType0 to a PDF representation. func (_ddcb *pdfCIDFontType0 )ToPdfObject ()_eg .PdfObject {return _eg .MakeNull ()};func (_beea *pdfCIDFontType2 )baseFields ()*fontCommon {return &_beea .fontCommon }; // Evaluate runs the function. Input is [x1 x2 x3]. func (_fcefe *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _fcefe ._fdgac ==nil {_fcefe ._fdgac =_ea .NewPSExecutor (_fcefe .Program );};var _febbe []_ea .PSObject ;for _ ,_ebbfg :=range xVec {_febbe =append (_febbe ,_ea .MakeReal (_ebbfg )); };_bdfbb ,_egfdf :=_fcefe ._fdgac .Execute (_febbe );if _egfdf !=nil {return nil ,_egfdf ;};_ggded ,_egfdf :=_ea .PSObjectArrayToFloat64Array (_bdfbb );if _egfdf !=nil {return nil ,_egfdf ;};return _ggded ,nil ;}; // 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 ){_efed ,_agfdb :=_bg .Open (filePath );if _agfdb !=nil {_dbg .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",_agfdb ); return nil ,_agfdb ;};defer _efed .Close ();return NewPdfFontFromTTF (_efed );};var _ _eg .PdfObject =&pdfSignDictionary {}; // 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 (_edbeec *XObjectForm )SetContentStream (content []byte ,encoder _eg .StreamEncoder )error {_gbbfb :=content ;if encoder ==nil {if _edbeec .Filter !=nil {encoder =_edbeec .Filter ;}else {encoder =_eg .NewRawEncoder ();};};_gfabc ,_dcaa :=encoder .EncodeBytes (_gbbfb ); if _dcaa !=nil {return _dcaa ;};_gbbfb =_gfabc ;_edbeec .Stream =_gbbfb ;_edbeec .Filter =encoder ;return nil ;}; // GetNumComponents returns the number of color components (1 for Indexed). func (_afgce *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1}; // ToPdfObject returns the PDF representation of the colorspace. func (_bbeaa *PdfPageResourcesColorspaces )ToPdfObject ()_eg .PdfObject {_fcbc :=_eg .MakeDict ();for _ ,_gfcc :=range _bbeaa .Names {_fcbc .Set (_eg .PdfObjectName (_gfcc ),_bbeaa .Colorspaces [_gfcc ].ToPdfObject ());};if _bbeaa ._abbc !=nil {_bbeaa ._abbc .PdfObject =_fcbc ; return _bbeaa ._abbc ;};return _fcbc ;}; // PdfBorderEffect represents a PDF border effect. type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;}; // GetContentStreamObjs returns a slice of PDF objects containing the content // streams of the page. func (_eeee *PdfPage )GetContentStreamObjs ()[]_eg .PdfObject {if _eeee .Contents ==nil {return nil ;};_bbgc :=_eg .TraceToDirectObject (_eeee .Contents );if _accae ,_ddfe :=_bbgc .(*_eg .PdfObjectArray );_ddfe {return _accae .Elements ();};return []_eg .PdfObject {_bbgc }; }; // 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{_gded *_eg .PdfIndirectObject ;Certs []*_eg .PdfObjectStream ;OCSPs []*_eg .PdfObjectStream ;CRLs []*_eg .PdfObjectStream ;VRI map[string ]*VRI ;_gaad map[string ]*_eg .PdfObjectStream ;_geeeb map[string ]*_eg .PdfObjectStream ;_fgbdb map[string ]*_eg .PdfObjectStream ; }; // ToPdfObject returns the PDF representation of the shading dictionary. func (_dbaac *PdfShadingType2 )ToPdfObject ()_eg .PdfObject {_dbaac .PdfShading .ToPdfObject ();_cbdea ,_fcfcf :=_dbaac .getShadingDict ();if _fcfcf !=nil {_dbg .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 _cbdea ==nil {_dbg .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _dbaac .Coords !=nil {_cbdea .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_dbaac .Coords ); };if _dbaac .Domain !=nil {_cbdea .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dbaac .Domain );};if _dbaac .Function !=nil {if len (_dbaac .Function )==1{_cbdea .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dbaac .Function [0].ToPdfObject ()); }else {_ddade :=_eg .MakeArray ();for _ ,_eeecg :=range _dbaac .Function {_ddade .Append (_eeecg .ToPdfObject ());};_cbdea .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ddade );};};if _dbaac .Extend !=nil {_cbdea .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_dbaac .Extend ); };return _dbaac ._beag ;}; // M returns the value of the magenta component of the color. func (_aedc *PdfColorDeviceCMYK )M ()float64 {return _aedc [1]};func (_dgdf *PdfReader )newPdfActionURIFromDict (_bccf *_eg .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_bccf .Get ("\u0055\u0052\u0049"),IsMap :_bccf .Get ("\u0049\u0073\u004da\u0070")},nil ; }; // PageFromIndirectObject returns the PdfPage and page number for a given indirect object. func (_cabcg *PdfReader )PageFromIndirectObject (ind *_eg .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_cabcg .PageList )!=len (_cabcg ._dfff ){return nil ,0,_bbd .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064"); };for _ecec ,_dcegf :=range _cabcg ._dfff {if _dcegf ==ind {return _cabcg .PageList [_ecec ],_ecec +1,nil ;};};return nil ,0,_bbd .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");}; // GetContainingPdfObject returns the container of the shading object (indirect object). func (_cfeff *PdfShading )GetContainingPdfObject ()_eg .PdfObject {return _cfeff ._beag }; // NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image. // If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead. func (_dbdeb DefaultImageHandler )NewImageFromGoImage (goimg _ec .Image )(*Image ,error ){_cdfc ,_fbfdf :=_ff .FromGoImage (goimg );if _fbfdf !=nil {return nil ,_fbfdf ;};_ecadg :=_egbde (_cdfc .Base ());return &_ecadg ,nil ;};func (_acc *PdfReader )newPdfActionMovieFromDict (_gdf *_eg .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_gdf .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_gdf .Get ("\u0054"),Operation :_gdf .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ; }; // ColorToRGB converts an Indexed color to an RGB color. func (_gfaac *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _gfaac .Base ==nil {return nil ,_bbd .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 _gfaac .Base .ColorToRGB (color );}; // ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb). func (_acfd *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_afcgf ,_bbadce :=_eg .GetNumbersAsFloat (objects ); if _bbadce !=nil {return nil ,_bbadce ;};return _acfd .ColorFromFloats (_afcgf );}; // NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object // from the input dictionary. func NewPdfPageResourcesFromDict (dict *_eg .PdfObjectDictionary )(*PdfPageResources ,error ){_beefb :=NewPdfPageResources ();if _gfefe :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_gfefe !=nil {_beefb .ExtGState =_gfefe ;};if _eaadf :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"); _eaadf !=nil &&!_eg .IsNullObject (_eaadf ){_beefb .ColorSpace =_eaadf ;};if _gfda :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_gfda !=nil {_beefb .Pattern =_gfda ;};if _egcbb :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_egcbb !=nil {_beefb .Shading =_egcbb ; };if _ebcac :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_ebcac !=nil {_beefb .XObject =_ebcac ;};if _dccae :=_eg .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_dccae !=nil {_beefb .Font =_dccae ;};if _adee :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074"); _adee !=nil {_beefb .ProcSet =_adee ;};if _cacdg :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_cacdg !=nil {_beefb .Properties =_cacdg ;};return _beefb ,nil ;}; // ToPdfObject returns the PDF representation of the function. func (_ggggd *PdfFunctionType0 )ToPdfObject ()_eg .PdfObject {if _ggggd ._bafa ==nil {_ggggd ._bafa =&_eg .PdfObjectStream {};};_bcgd :=_eg .MakeDict ();_bcgd .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eg .MakeInteger (0)); _dcbe :=&_eg .PdfObjectArray {};for _ ,_dagd :=range _ggggd .Domain {_dcbe .Append (_eg .MakeFloat (_dagd ));};_bcgd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dcbe );_aaeb :=&_eg .PdfObjectArray {};for _ ,_aceb :=range _ggggd .Range {_aaeb .Append (_eg .MakeFloat (_aceb )); };_bcgd .Set ("\u0052\u0061\u006eg\u0065",_aaeb );_fgfab :=&_eg .PdfObjectArray {};for _ ,_feggf :=range _ggggd .Size {_fgfab .Append (_eg .MakeInteger (int64 (_feggf )));};_bcgd .Set ("\u0053\u0069\u007a\u0065",_fgfab );_bcgd .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_eg .MakeInteger (int64 (_ggggd .BitsPerSample ))); if _ggggd .Order !=1{_bcgd .Set ("\u004f\u0072\u0064e\u0072",_eg .MakeInteger (int64 (_ggggd .Order )));};_bcgd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_ggggd ._ebad ))));_ggggd ._bafa .Stream =_ggggd ._ebad ;_ggggd ._bafa .PdfObjectDictionary =_bcgd ; return _ggggd ._bafa ;}; // 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 _eg .PdfObjectArray )(*PdfRectangle ,error ){_bcge :=PdfRectangle {};if arr .Len ()!=4{return nil ,_bbd .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 _fbefc error ;_bcge .Llx ,_fbefc =_eg .GetNumberAsFloat (arr .Get (0));if _fbefc !=nil {return nil ,_fbefc ;};_bcge .Lly ,_fbefc =_eg .GetNumberAsFloat (arr .Get (1));if _fbefc !=nil {return nil ,_fbefc ;};_bcge .Urx ,_fbefc =_eg .GetNumberAsFloat (arr .Get (2)); if _fbefc !=nil {return nil ,_fbefc ;};_bcge .Ury ,_fbefc =_eg .GetNumberAsFloat (arr .Get (3));if _fbefc !=nil {return nil ,_fbefc ;};return &_bcge ,nil ;};func _dgfc (_efecc *_eg .PdfObjectDictionary )*VRI {_edadb ,_ :=_eg .GetString (_efecc .Get ("\u0054\u0055")); _cfea ,_ :=_eg .GetString (_efecc .Get ("\u0054\u0053"));return &VRI {Cert :_feed (_efecc .Get ("\u0043\u0065\u0072\u0074")),OCSP :_feed (_efecc .Get ("\u004f\u0043\u0053\u0050")),CRL :_feed (_efecc .Get ("\u0043\u0052\u004c")),TU :_edadb ,TS :_cfea }; }; // 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 (_cefc *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _cefc .flattenFieldsWithOpts (allannots ,appgen ,nil );}; // SetAction sets the PDF action for the annotation link. func (_cdec *PdfAnnotationLink )SetAction (action *PdfAction ){_cdec ._cecf =action ;if action ==nil {_cdec .A =nil ;};}; // PdfAnnotationScreen represents Screen annotations. // (Section 12.5.6.18). type PdfAnnotationScreen struct{*PdfAnnotation ;T _eg .PdfObject ;MK _eg .PdfObject ;A _eg .PdfObject ;AA _eg .PdfObject ;}; // ToPdfObject implements interface PdfModel. func (_cfdde *PdfAnnotationTrapNet )ToPdfObject ()_eg .PdfObject {_cfdde .PdfAnnotation .ToPdfObject ();_fabb :=_cfdde ._gag ;_dgcc :=_fabb .PdfObject .(*_eg .PdfObjectDictionary );_dgcc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074")); return _fabb ;}; // ToPdfObject implements interface PdfModel. func (_bbe *PdfActionRendition )ToPdfObject ()_eg .PdfObject {_bbe .PdfAction .ToPdfObject ();_ged :=_bbe ._ege ;_cef :=_ged .PdfObject .(*_eg .PdfObjectDictionary );_cef .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeRendition )));_cef .SetIfNotNil ("\u0052",_bbe .R ); _cef .SetIfNotNil ("\u0041\u004e",_bbe .AN );_cef .SetIfNotNil ("\u004f\u0050",_bbe .OP );_cef .SetIfNotNil ("\u004a\u0053",_bbe .JS );return _ged ;};func _abff (_ddfbd []rune ,_aabe map[rune ]int ,_debbe map[rune ]_ab .GID )*_eg .PdfObjectArray {_gcbcc :=&_eg .PdfObjectArray {}; for _egdab :=0;_egdab < len (_ddfbd );{_fgad :=_aabe [_ddfbd [_egdab ]];_bfdd :=_egdab ;for _cefd :=_egdab +1;_cefd < len (_ddfbd );_cefd ++{_acgab :=_aabe [_ddfbd [_cefd ]];if _fgad ==_acgab {_bfdd =_cefd ;}else {break ;};};_fecc :=_debbe [_ddfbd [_egdab ]]; _ebgge :=_debbe [_ddfbd [_bfdd ]];_gcbcc .Append (_eg .MakeInteger (int64 (_fecc )));_gcbcc .Append (_eg .MakeInteger (int64 (_ebgge )));_gcbcc .Append (_eg .MakeInteger (int64 (_fgad )));_egdab =_bfdd +1;};return _gcbcc ;};func _efeb (_cacd *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_cacd }}; // GetContainingPdfObject implements interface PdfModel. func (_cdbgg *PdfSignature )GetContainingPdfObject ()_eg .PdfObject {return _cdbgg ._ffae }; // SetColorSpace sets `r` colorspace object to `colorspace`. func (_afeeg *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_afeeg ._gecbc =colorspace ;}; // ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the // AcroForm dictionary. func (_bagae *PdfAcroForm )ToPdfObject ()_eg .PdfObject {_cfgc :=_bagae ._edeaf ;_fffed :=_cfgc .PdfObject .(*_eg .PdfObjectDictionary );if _bagae .Fields !=nil {_ccea :=_eg .PdfObjectArray {};for _ ,_cafcb :=range *_bagae .Fields {_gadd :=_cafcb .GetContext (); if _gadd !=nil {_ccea .Append (_gadd .ToPdfObject ());}else {_ccea .Append (_cafcb .ToPdfObject ());};};_fffed .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_ccea );};if _bagae .NeedAppearances !=nil {_fffed .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_bagae .NeedAppearances ); };if _bagae .SigFlags !=nil {_fffed .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_bagae .SigFlags );};if _bagae .CO !=nil {_fffed .Set ("\u0043\u004f",_bagae .CO );};if _bagae .DR !=nil {_fffed .Set ("\u0044\u0052",_bagae .DR .ToPdfObject ()); };if _bagae .DA !=nil {_fffed .Set ("\u0044\u0041",_bagae .DA );};if _bagae .Q !=nil {_fffed .Set ("\u0051",_bagae .Q );};if _bagae .XFA !=nil {_fffed .Set ("\u0058\u0046\u0041",_bagae .XFA );};return _cfgc ;}; // 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 ; // PdfAction represents an action in PDF (section 12.6 p. 412). type PdfAction struct{_cea PdfModel ;Type _eg .PdfObject ;S _eg .PdfObject ;Next _eg .PdfObject ;_ege *_eg .PdfIndirectObject ;}; // GetNumComponents returns the number of color components of the underlying // colorspace device. func (_deda *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _deda .UnderlyingCS .GetNumComponents ();}; // NewPdfAnnotationText returns a new text annotation. func NewPdfAnnotationText ()*PdfAnnotationText {_bgb :=NewPdfAnnotation ();_afg :=&PdfAnnotationText {};_afg .PdfAnnotation =_bgb ;_afg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bgb .SetContext (_afg );return _afg ;}; // 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 (_fegec *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _fegec ._gecbc !=nil {return _fegec ._gecbc ,nil ;};if _fegec .ColorSpace ==nil {return nil ,nil ;};_geaba ,_acaeg :=_cfafcb (_fegec .ColorSpace );if _acaeg !=nil {return nil ,_acaeg ; };_fegec ._gecbc =_geaba ;return _fegec ._gecbc ,nil ;};func (_cfcaf *PdfReader )newPdfAnnotationSquareFromDict (_fbc *_eg .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_cbgb :=PdfAnnotationSquare {};_dbdg ,_bbcg :=_cfcaf .newPdfAnnotationMarkupFromDict (_fbc ); if _bbcg !=nil {return nil ,_bbcg ;};_cbgb .PdfAnnotationMarkup =_dbdg ;_cbgb .BS =_fbc .Get ("\u0042\u0053");_cbgb .IC =_fbc .Get ("\u0049\u0043");_cbgb .BE =_fbc .Get ("\u0042\u0045");_cbgb .RD =_fbc .Get ("\u0052\u0044");return &_cbgb ,nil ;}; // PdfInfoTrapped specifies pdf trapped information. type PdfInfoTrapped string ; // NewPdfActionGoTo3DView returns a new "goTo3DView" action. func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_efb :=NewPdfAction ();_ccgg :=&PdfActionGoTo3DView {};_ccgg .PdfAction =_efb ;_efb .SetContext (_ccgg );return _ccgg ;}; // 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 ;};func _degbd (_aacc _eg .PdfObject )(*PdfColorspaceLab ,error ){_gdbc :=NewPdfColorspaceLab ();if _ddgf ,_adefd :=_aacc .(*_eg .PdfIndirectObject );_adefd {_gdbc ._fcef =_ddgf ;};_aacc =_eg .TraceToDirectObject (_aacc ); _cbeb ,_ggacg :=_aacc .(*_eg .PdfObjectArray );if !_ggacg {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cbeb .Len ()!=2{return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e"); };_aacc =_eg .TraceToDirectObject (_cbeb .Get (0));_ecad ,_ggacg :=_aacc .(*_eg .PdfObjectName );if !_ggacg {return nil ,_e .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 *_ecad !="\u004c\u0061\u0062"{return nil ,_e .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_aacc =_eg .TraceToDirectObject (_cbeb .Get (1));_agff ,_ggacg :=_aacc .(*_eg .PdfObjectDictionary ); if !_ggacg {return nil ,_e .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");}; _aacc =_agff .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_aacc =_eg .TraceToDirectObject (_aacc );_dbfg ,_ggacg :=_aacc .(*_eg .PdfObjectArray );if !_ggacg {return nil ,_e .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074"); };if _dbfg .Len ()!=3{return nil ,_e .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");};_eed ,_bgdbf :=_dbfg .GetAsFloat64Slice (); if _bgdbf !=nil {return nil ,_bgdbf ;};_gdbc .WhitePoint =_eed ;_aacc =_agff .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _aacc !=nil {_aacc =_eg .TraceToDirectObject (_aacc );_bfab ,_cbbd :=_aacc .(*_eg .PdfObjectArray );if !_cbbd {return nil ,_e .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074"); };if _bfab .Len ()!=3{return nil ,_e .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");};_ggbc ,_afde :=_bfab .GetAsFloat64Slice (); if _afde !=nil {return nil ,_afde ;};_gdbc .BlackPoint =_ggbc ;};_aacc =_agff .Get ("\u0052\u0061\u006eg\u0065");if _aacc !=nil {_aacc =_eg .TraceToDirectObject (_aacc );_bbce ,_dgecb :=_aacc .(*_eg .PdfObjectArray );if !_dgecb {_dbg .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); return nil ,_e .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bbce .Len ()!=4{_dbg .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");return nil ,_e .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };_dafa ,_fdggg :=_bbce .GetAsFloat64Slice ();if _fdggg !=nil {return nil ,_fdggg ;};_gdbc .Range =_dafa ;};return _gdbc ,nil ;};func (_faa *PdfReader )newPdfActionGotoEFromDict (_dda *_eg .PdfObjectDictionary )(*PdfActionGoToE ,error ){_cde ,_gc :=_gbbe (_dda .Get ("\u0046")); if _gc !=nil {return nil ,_gc ;};return &PdfActionGoToE {D :_dda .Get ("\u0044"),NewWindow :_dda .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_dda .Get ("\u0054"),F :_cde },nil ;}; // ToJBIG2Image converts current image to the core.JBIG2Image. func (_afee *Image )ToJBIG2Image ()(*_eg .JBIG2Image ,error ){_bgbge ,_agba :=_afee .ToGoImage ();if _agba !=nil {return nil ,_agba ;};return _eg .GoImageToJBIG2 (_bgbge ,_eg .JB2ImageAutoThreshold );};func (_afffd *PdfPage )setContainer (_fbbc *_eg .PdfIndirectObject ){_fbbc .PdfObject =_afffd ._ecbba ; _afffd ._caaef =_fbbc ;}; // GetContainingPdfObject implements interface PdfModel. func (_gbf *PdfAction )GetContainingPdfObject ()_eg .PdfObject {return _gbf ._ege };func (_cafge *PdfReader )loadAction (_aefe _eg .PdfObject )(*PdfAction ,error ){if _baag ,_beba :=_eg .GetIndirect (_aefe );_beba {_fdaa ,_ebdb :=_cafge .newPdfActionFromIndirectObject (_baag ); if _ebdb !=nil {return nil ,_ebdb ;};return _fdaa ,nil ;}else if !_eg .IsNullObject (_aefe ){return nil ,_bbd .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 ;}; // PdfColorspaceDeviceRGB represents an RGB colorspace. type PdfColorspaceDeviceRGB struct{};var (_bgffe =_ge .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");_bbed =_ge .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"); _dcadg =_ge .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"); _bdga ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_ccdf ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_fagc ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063"; ); // SetImageHandler sets the image handler used by the package. func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling }; // PdfColorspaceLab is a L*, a*, b* 3 component colorspace. type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_fcef *_eg .PdfIndirectObject ;}; // Val returns the color value. func (_gceb *PdfColorDeviceGray )Val ()float64 {return float64 (*_gceb )}; // PdfVersion returns version of the PDF file. func (_gbged *PdfReader )PdfVersion ()_eg .Version {return _gbged ._cdggc .PdfVersion ()};func (_dbc *PdfAppender )replaceObject (_eggc ,_egde _eg .PdfObject ){switch _ffgb :=_eggc .(type ){case *_eg .PdfIndirectObject :_dbc ._bddd [_egde ]=_ffgb .ObjectNumber ; case *_eg .PdfObjectStream :_dbc ._bddd [_egde ]=_ffgb .ObjectNumber ;};}; // AppendContentStream adds content stream by string. Appends to the last // contentstream instance if many. func (_cdfcc *PdfPage )AppendContentStream (contentStr string )error {_bfbfg ,_dgaad :=_cdfcc .GetContentStreams ();if _dgaad !=nil {return _dgaad ;};if len (_bfbfg )==0{_bfbfg =[]string {contentStr };return _cdfcc .SetContentStreams (_bfbfg ,_eg .NewFlateEncoder ()); };var _caedc _cbd .Buffer ;_caedc .WriteString (_bfbfg [len (_bfbfg )-1]);_caedc .WriteString ("\u000a");_caedc .WriteString (contentStr );_bfbfg [len (_bfbfg )-1]=_caedc .String ();return _cdfcc .SetContentStreams (_bfbfg ,_eg .NewFlateEncoder ());};func (_dec *PdfReader )newPdfAnnotationLinkFromDict (_cagb *_eg .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_fgg :=PdfAnnotationLink {}; _fgg .A =_cagb .Get ("\u0041");_fgg .Dest =_cagb .Get ("\u0044\u0065\u0073\u0074");_fgg .H =_cagb .Get ("\u0048");_fgg .PA =_cagb .Get ("\u0050\u0041");_fgg .QuadPoints =_cagb .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_fgg .BS =_cagb .Get ("\u0042\u0053"); return &_fgg ,nil ;};func (_cff *PdfReader )newPdfAnnotationHighlightFromDict (_aed *_eg .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_deee :=PdfAnnotationHighlight {};_ddeb ,_gbbf :=_cff .newPdfAnnotationMarkupFromDict (_aed );if _gbbf !=nil {return nil ,_gbbf ; };_deee .PdfAnnotationMarkup =_ddeb ;_deee .QuadPoints =_aed .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_deee ,nil ;}; // GetXObjectImageByName returns the XObjectImage with the specified name from the // page resources, if it exists. func (_cgadd *PdfPageResources )GetXObjectImageByName (keyName _eg .PdfObjectName )(*XObjectImage ,error ){_efagg ,_fgabb :=_cgadd .GetXObjectByName (keyName );if _efagg ==nil {return nil ,nil ;};if _fgabb !=XObjectTypeImage {return nil ,_bbd .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065"); };_eeggg ,_eegcg :=NewXObjectImageFromStream (_efagg );if _eegcg !=nil {return nil ,_eegcg ;};return _eeggg ,nil ;}; // SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current // document revision. func (_eccae *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_eccae .updateObjectsDeep (dss .ToPdfObject (),nil );};_eccae ._aegd =dss ;}; // GetContext returns the annotation context which contains the specific type-dependent context. // The context represents the subannotation. func (_bcba *PdfAnnotation )GetContext ()PdfModel {if _bcba ==nil {return nil ;};return _bcba ._ffbe ;}; // PdfAnnotationCircle represents Circle annotations. // (Section 12.5.6.8). type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _eg .PdfObject ;IC _eg .PdfObject ;BE _eg .PdfObject ;RD _eg .PdfObject ;}; // PdfAnnotationInk represents Ink annotations. // (Section 12.5.6.13). type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _eg .PdfObject ;BS _eg .PdfObject ;}; // 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 (_cfaad byte )byte ; // PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377). type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_eg .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _eg .PdfObject ;A _eg .PdfObject ;SE _eg .PdfObject ;C _eg .PdfObject ;F _eg .PdfObject ; _bfega *_eg .PdfIndirectObject ;}; // PdfActionLaunch represents a launch action. type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _eg .PdfObject ;Mac _eg .PdfObject ;Unix _eg .PdfObject ;NewWindow _eg .PdfObject ;}; // GetXObjectByName returns the XObject with the specified keyName and the object type. func (_acfedg *PdfPageResources )GetXObjectByName (keyName _eg .PdfObjectName )(*_eg .PdfObjectStream ,XObjectType ){if _acfedg .XObject ==nil {return nil ,XObjectTypeUndefined ;};_daca ,_cfcbfb :=_eg .TraceToDirectObject (_acfedg .XObject ).(*_eg .PdfObjectDictionary ); if !_cfcbfb {_dbg .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",_eg .TraceToDirectObject (_acfedg .XObject )); return nil ,XObjectTypeUndefined ;};if _ebcdee :=_daca .Get (keyName );_ebcdee !=nil {_ceccc ,_dafedd :=_eg .GetStream (_ebcdee );if !_dafedd {_dbg .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",_ebcdee ); return nil ,XObjectTypeUndefined ;};_gdgdbd :=_ceccc .PdfObjectDictionary ;_gbbg ,_dafedd :=_eg .TraceToDirectObject (_gdgdbd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_eg .PdfObjectName );if !_dafedd {_dbg .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",_gdgdbd .String ()); return nil ,XObjectTypeUndefined ;};if *_gbbg =="\u0049\u006d\u0061g\u0065"{return _ceccc ,XObjectTypeImage ;}else if *_gbbg =="\u0046\u006f\u0072\u006d"{return _ceccc ,XObjectTypeForm ;}else if *_gbbg =="\u0050\u0053"{return _ceccc ,XObjectTypePS ;}else {_dbg .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",*_gbbg ); return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;};}; // String returns a string that describes `font`. func (_effdb *PdfFont )String ()string {_egbd :="";if _effdb ._gdcab .Encoder ()!=nil {_egbd =_effdb ._gdcab .Encoder ().String ();};return _e .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_effdb ._gdcab ,_effdb .baseFields ().coreString (),_egbd ); }; // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // component PDF objects. func (_gfgcb *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if _gfgcb .Alternate ==nil {if _gfgcb .N ==1{_aeab :=NewPdfColorspaceDeviceGray ();return _aeab .ColorFromPdfObjects (objects );}else if _gfgcb .N ==3{_bdeg :=NewPdfColorspaceDeviceRGB (); return _bdeg .ColorFromPdfObjects (objects );}else if _gfgcb .N ==4{_bdgffb :=NewPdfColorspaceDeviceCMYK ();return _bdgffb .ColorFromPdfObjects (objects );}else {return nil ,_bbd .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 _gfgcb .Alternate .ColorFromPdfObjects (objects );}; // SetContentStream sets the pattern cell's content stream. func (_dgegg *PdfTilingPattern )SetContentStream (content []byte ,encoder _eg .StreamEncoder )error {_aeef ,_gaab :=_dgegg ._cfaag .(*_eg .PdfObjectStream );if !_gaab {_dbg .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",_dgegg ._cfaag ); return _eg .ErrTypeError ;};if encoder ==nil {encoder =_eg .NewRawEncoder ();};_baedf :=_aeef .PdfObjectDictionary ;_bccg :=encoder .MakeStreamDict ();_baedf .Merge (_bccg );_fgfabe ,_ceaad :=encoder .EncodeBytes (content );if _ceaad !=nil {return _ceaad ; };_baedf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_fgfabe ))));_aeef .Stream =_fgfabe ;return nil ;}; // NewPdfColorspaceSpecialIndexed returns a new Indexed color. func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};}; // 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 ; // 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 (_cefe *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdce :=vals [0];if _cdce < 0.0||_cdce > 1.0{_dbg .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 _cdce < 0.0{_cdce =0.0;}else if _cdce > 1.0{_cdce =1.0;};return NewPdfColorDeviceGray (_cdce ),nil ;}; // ToPdfObject recursively builds the Outline tree PDF object. func (_bebc *PdfOutline )ToPdfObject ()_eg .PdfObject {_dbgfe :=_bebc ._ffbba ;_cgbcc :=_dbgfe .PdfObject .(*_eg .PdfObjectDictionary );_cgbcc .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _bebc .First !=nil {_cgbcc .Set ("\u0046\u0069\u0072s\u0074",_bebc .First .ToPdfObject ()); };if _bebc .Last !=nil {_cgbcc .Set ("\u004c\u0061\u0073\u0074",_bebc .Last .GetContext ().GetContainingPdfObject ());};if _bebc .Parent !=nil {_cgbcc .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_bebc .Parent .GetContext ().GetContainingPdfObject ()); };if _bebc .Count !=nil {_cgbcc .Set ("\u0043\u006f\u0075n\u0074",_eg .MakeInteger (*_bebc .Count ));};return _dbgfe ;}; // SetXObjectFormByName adds the provided XObjectForm to the page resources. // The added XObjectForm is identified by the specified name. func (_bacad *PdfPageResources )SetXObjectFormByName (keyName _eg .PdfObjectName ,xform *XObjectForm )error {_adag :=xform .ToPdfObject ().(*_eg .PdfObjectStream );_deabdd :=_bacad .SetXObjectByName (keyName ,_adag );return _deabdd ;}; // ToPdfObject implements interface PdfModel. func (_ddb *PdfActionGoTo )ToPdfObject ()_eg .PdfObject {_ddb .PdfAction .ToPdfObject ();_dba :=_ddb ._ege ;_cga :=_dba .PdfObject .(*_eg .PdfObjectDictionary );_cga .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeGoTo )));_cga .SetIfNotNil ("\u0044",_ddb .D ); return _dba ;};func (_bdb *PdfAppender )addNewObject (_bfecd _eg .PdfObject ){if _ ,_gegc :=_bdb ._adge [_bfecd ];!_gegc {_bdb ._acda =append (_bdb ._acda ,_bfecd );_bdb ._adge [_bfecd ]=struct{}{};};}; // NewPdfAnnotationStrikeOut returns a new text strikeout annotation. func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_cdg :=NewPdfAnnotation ();_dabd :=&PdfAnnotationStrikeOut {};_dabd .PdfAnnotation =_cdg ;_dabd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cdg .SetContext (_dabd );return _dabd ;};func (_fdfcb *pdfFontType0 )subsetRegistered ()error {_gfcfd ,_ebca :=_fdfcb .DescendantFont ._gdcab .(*pdfCIDFontType2 ); if !_ebca {_dbg .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",_fdfcb .DescendantFont );return nil ;};if _gfcfd ==nil {return nil ; };if _gfcfd ._eecfe ==nil {_dbg .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 _fdfcb ._eceba ==nil {_dbg .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 ;};_debdea ,_ebca :=_eg .GetStream (_gfcfd ._eecfe .FontFile2 );if !_ebca {_dbg .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 _bbd .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_bbdfdg ,_dbcac :=_eg .DecodeStream (_debdea );if _dbcac !=nil {_dbg .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_dbcac ); return _dbcac ;};_dcbfg ,_dbcac :=_af .Parse (_cbd .NewReader (_bbdfdg ));if _dbcac !=nil {_dbg .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 (_debdea .Stream )); return _dbcac ;};var _geeg []rune ;var _acfag *_af .Font ;switch _ffebf :=_fdfcb ._eceba .(type ){case *_cec .TrueTypeFontEncoder :_geeg =_ffebf .RegisteredRunes ();_acfag ,_dbcac =_dcbfg .SubsetKeepRunes (_geeg );if _dbcac !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbcac ); return _dbcac ;};_ffebf .SubsetRegistered ();case *_cec .IdentityEncoder :_geeg =_ffebf .RegisteredRunes ();_fcdae :=make ([]_af .GlyphIndex ,len (_geeg ));for _bggbd ,_fgefe :=range _geeg {_fcdae [_bggbd ]=_af .GlyphIndex (_fgefe );};_acfag ,_dbcac =_dcbfg .SubsetKeepIndices (_fcdae ); if _dbcac !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbcac );return _dbcac ;};case _cec .SimpleEncoder :_fcagc :=_ffebf .Charcodes ();for _ ,_bdagg :=range _fcagc {_gbgeb ,_edbea :=_ffebf .CharcodeToRune (_bdagg );if !_edbea {_dbg .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",_bdagg ); continue ;};_geeg =append (_geeg ,_gbgeb );};default:return _e .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",_fdfcb ._eceba ); };var _abag _cbd .Buffer ;_dbcac =_acfag .Write (&_abag );if _dbcac !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbcac );return _dbcac ;};if _fdfcb ._fffc !=nil {_bgbd :=make (map[_aff .CharCode ]rune ,len (_geeg ));for _ ,_dbbdc :=range _geeg {_eaefe ,_gacf :=_fdfcb ._eceba .RuneToCharcode (_dbbdc ); if !_gacf {continue ;};_bgbd [_aff .CharCode (_eaefe )]=_dbbdc ;};_fdfcb ._fffc =_aff .NewToUnicodeCMap (_bgbd );};_debdea ,_dbcac =_eg .MakeStream (_abag .Bytes (),_eg .NewFlateEncoder ());if _dbcac !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbcac ); return _dbcac ;};_debdea .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_eg .MakeInteger (int64 (_abag .Len ())));if _eabd ,_gcagd :=_eg .GetStream (_gfcfd ._eecfe .FontFile2 );_gcagd {*_eabd =*_debdea ;}else {_gfcfd ._eecfe .FontFile2 =_debdea ;};_bcdge :=_abafe (); if len (_fdfcb ._cfab )> 0{_fdfcb ._cfab =_egbe (_fdfcb ._cfab ,_bcdge );};if len (_gfcfd ._cfab )> 0{_gfcfd ._cfab =_egbe (_gfcfd ._cfab ,_bcdge );};if len (_fdfcb ._dfgf )> 0{_fdfcb ._dfgf =_egbe (_fdfcb ._dfgf ,_bcdge );};if _gfcfd ._eecfe !=nil {_bgaae ,_egcg :=_eg .GetName (_gfcfd ._eecfe .FontName ); if _egcg &&len (_bgaae .String ())> 0{_bedc :=_egbe (_bgaae .String (),_bcdge );_gfcfd ._eecfe .FontName =_eg .MakeName (_bedc );};};return nil ;}; // IsEncrypted returns true if the PDF file is encrypted. func (_acef *PdfReader )IsEncrypted ()(bool ,error ){return _acef ._cdggc .IsEncrypted ()}; // ToPdfObject implements interface PdfModel. func (_aaf *PdfActionURI )ToPdfObject ()_eg .PdfObject {_aaf .PdfAction .ToPdfObject ();_gfe :=_aaf ._ege ;_cbdd :=_gfe .PdfObject .(*_eg .PdfObjectDictionary );_cbdd .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeURI )));_cbdd .SetIfNotNil ("\u0055\u0052\u0049",_aaf .URI ); _cbdd .SetIfNotNil ("\u0049\u0073\u004da\u0070",_aaf .IsMap );return _gfe ;}; // NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page. func NewOutlineBookmark (title string ,page *_eg .PdfIndirectObject )*PdfOutlineItem {_ffdfd :=PdfOutlineItem {};_ffdfd ._dbaeb =&_ffdfd ;_ffdfd .Title =_eg .MakeString (title );_eefba :=_eg .MakeArray ();_eefba .Append (page );_eefba .Append (_eg .MakeName ("\u0046\u0069\u0074")); _ffdfd .Dest =_eefba ;return &_ffdfd ;};func _bffd (_bfgcb []*_eg .PdfObjectStream )*_eg .PdfObjectArray {if len (_bfgcb )==0{return nil ;};_cbbef :=make ([]_eg .PdfObject ,0,len (_bfgcb ));for _ ,_abcgf :=range _bfgcb {_cbbef =append (_cbbef ,_abcgf ); };return _eg .MakeArray (_cbbef ...);};func (_edfe *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"}; // B returns the value of the B component of the color. func (_bbba *PdfColorCalRGB )B ()float64 {return _bbba [1]}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 3 for an RGB device. func (_ggafc *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};func (_egfbd *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"}; // ToGray returns a PdfColorDeviceGray color based on the current RGB color. func (_decbb *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_dgeac :=0.3*_decbb .R ()+0.59*_decbb .G ()+0.11*_decbb .B ();_dgeac =_bc .Min (_bc .Max (_dgeac ,0.0),1.0);return NewPdfColorDeviceGray (_dgeac );}; // AddExtGState add External Graphics State (GState). The gsDict can be specified // either directly as a dictionary or an indirect object containing a dictionary. func (_ccffa *PdfPageResources )AddExtGState (gsName _eg .PdfObjectName ,gsDict _eg .PdfObject )error {if _ccffa .ExtGState ==nil {_ccffa .ExtGState =_eg .MakeDict ();};_ffefc :=_ccffa .ExtGState ;_faefg ,_eaeea :=_eg .TraceToDirectObject (_ffefc ).(*_eg .PdfObjectDictionary ); if !_eaeea {_dbg .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",_ffefc ,_eg .TraceToDirectObject (_ffefc )); return _eg .ErrTypeError ;};_faefg .Set (gsName ,gsDict );return nil ;}; // 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"`;}; // ToPdfObject implements interface PdfModel. func (_ggde *PdfAnnotationWidget )ToPdfObject ()_eg .PdfObject {_ggde .PdfAnnotation .ToPdfObject ();_gdec :=_ggde ._gag ;_bgec :=_gdec .PdfObject .(*_eg .PdfObjectDictionary );if _ggde ._gde {return _gdec ;};_ggde ._gde =true ;_bgec .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074")); _bgec .SetIfNotNil ("\u0048",_ggde .H );_bgec .SetIfNotNil ("\u004d\u004b",_ggde .MK );_bgec .SetIfNotNil ("\u0041",_ggde .A );_bgec .SetIfNotNil ("\u0041\u0041",_ggde .AA );_bgec .SetIfNotNil ("\u0042\u0053",_ggde .BS );_ffdf :=_ggde .Parent ;if _ggde ._cdda !=nil {if _ggde ._cdda ._afbe ==_ggde ._gag {_ggde ._cdda .ToPdfObject (); };_ffdf =_ggde ._cdda .GetContainingPdfObject ();};if _ffdf !=_gdec {_bgec .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_ffdf );};_ggde ._gde =false ;return _gdec ;}; // GetOutlines returns a high-level Outline object, based on the outline tree // of the reader. func (_gfdg *PdfReader )GetOutlines ()(*Outline ,error ){if _gfdg ==nil {return nil ,_bbd .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"); };_bdbbf :=_gfdg .GetOutlineTree ();if _bdbbf ==nil {return nil ,_bbd .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 _bbbgc func (_bgfd *PdfOutlineTreeNode ,_cbggc *[]*OutlineItem );_bbbgc =func (_dddcf *PdfOutlineTreeNode ,_ddeag *[]*OutlineItem ){if _dddcf ==nil {return ;};if _dddcf ._dbaeb ==nil {_dbg .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 _bgege *OutlineItem ;if _bdbc ,_agac :=_dddcf ._dbaeb .(*PdfOutlineItem );_agac {_efabg :=_bdbc .Dest ;if (_efabg ==nil ||_eg .IsNullObject (_efabg ))&&_bdbc .A !=nil {if _aeced ,_bcfde :=_eg .GetDict (_bdbc .A );_bcfde {_efabg ,_ =_eg .GetArray (_aeced .Get ("\u0044")); };};var _bbbb OutlineDest ;if _efabg !=nil &&!_eg .IsNullObject (_efabg ){if _gedce ,_cdbeg :=_ddbc (_efabg ,_gfdg );_cdbeg ==nil {_bbbb =*_gedce ;}else {_dbg .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",_efabg ,_cdbeg ); };};_bgege =NewOutlineItem (_bdbc .Title .Decoded (),_bbbb );*_ddeag =append (*_ddeag ,_bgege );if _bdbc .Next !=nil {_bbbgc (_bdbc .Next ,_ddeag );};};if _dddcf .First !=nil {if _bgege !=nil {_ddeag =&_bgege .Entries ;};_bbbgc (_dddcf .First ,_ddeag ); };};_ebafa :=NewOutline ();_bbbgc (_bdbbf ,&_ebafa .Entries );return _ebafa ,nil ;}; // ColorToRGB converts a CalRGB color to an RGB color. func (_adaf *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_cbcf ,_accdd :=color .(*PdfColorCalRGB );if !_accdd {_dbg .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 ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fcbb :=_cbcf .A ();_begc :=_cbcf .B ();_ebdc :=_cbcf .C ();X :=_adaf .Matrix [0]*_bc .Pow (_fcbb ,_adaf .Gamma [0])+_adaf .Matrix [3]*_bc .Pow (_begc ,_adaf .Gamma [1])+_adaf .Matrix [6]*_bc .Pow (_ebdc ,_adaf .Gamma [2]); Y :=_adaf .Matrix [1]*_bc .Pow (_fcbb ,_adaf .Gamma [0])+_adaf .Matrix [4]*_bc .Pow (_begc ,_adaf .Gamma [1])+_adaf .Matrix [7]*_bc .Pow (_ebdc ,_adaf .Gamma [2]);Z :=_adaf .Matrix [2]*_bc .Pow (_fcbb ,_adaf .Gamma [0])+_adaf .Matrix [5]*_bc .Pow (_begc ,_adaf .Gamma [1])+_adaf .Matrix [8]*_bc .Pow (_ebdc ,_adaf .Gamma [2]); _deeb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_egaf :=-0.969256*X +1.875992*Y +0.041556*Z ;_cegd :=0.055648*X +-0.204043*Y +1.057311*Z ;_deeb =_bc .Min (_bc .Max (_deeb ,0),1.0);_egaf =_bc .Min (_bc .Max (_egaf ,0),1.0);_cegd =_bc .Min (_bc .Max (_cegd ,0),1.0); return NewPdfColorDeviceRGB (_deeb ,_egaf ,_cegd ),nil ;};func _cbeab (_bfabe _eg .PdfObject )(*_eg .PdfObjectDictionary ,*fontCommon ,error ){_abeda :=&fontCommon {};if _gcee ,_faage :=_bfabe .(*_eg .PdfIndirectObject );_faage {_abeda ._aaaf =_gcee .ObjectNumber ; };_fcbaa ,_gdbg :=_eg .GetDict (_bfabe );if !_gdbg {_dbg .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",_bfabe ); return nil ,nil ,ErrFontNotSupported ;};_ggcb ,_gdbg :=_eg .GetNameVal (_fcbaa .Get ("\u0054\u0079\u0070\u0065"));if !_gdbg {_dbg .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 _ggcb !="\u0046\u006f\u006e\u0074"{_dbg .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.",_ggcb ,"\u0046\u006f\u006e\u0074"); return nil ,nil ,_eg .ErrTypeError ;};_edfc ,_gdbg :=_eg .GetNameVal (_fcbaa .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_gdbg {_dbg .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 ;};_abeda ._fgbbb =_edfc ;_face ,_gdbg :=_eg .GetNameVal (_fcbaa .Get ("\u004e\u0061\u006d\u0065"));if _gdbg {_abeda ._dfgf =_face ;};_egedd :=_fcbaa .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _egedd !=nil {_abeda ._fgegd =_eg .TraceToDirectObject (_egedd ); _aadgcg ,_abefd :=_eagd (_abeda ._fgegd ,_abeda );if _abefd !=nil {return _fcbaa ,_abeda ,_abefd ;};_abeda ._fffc =_aadgcg ;}else if _edfc =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_edfc =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_fdgga ,_agdfb :=_aff .NewCIDSystemInfo (_fcbaa .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f")); if _agdfb !=nil {return _fcbaa ,_abeda ,_agdfb ;};_fbgc :=_e .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_fdgga .Registry ,_fdgga .Ordering );if _aff .IsPredefinedCMap (_fbgc ){_abeda ._fffc ,_agdfb =_aff .LoadPredefinedCMap (_fbgc ); if _agdfb !=nil {_dbg .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",_fbgc ,_agdfb ); };};};_acgcg :=_fcbaa .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _acgcg !=nil {_dgdd ,_edbb :=_ffeb (_acgcg );if _edbb !=nil {_dbg .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",_edbb ); return _fcbaa ,_abeda ,_edbb ;};_abeda ._eecfe =_dgdd ;};if _edfc !="\u0054\u0079\u0070e\u0033"{_gebbe ,_affc :=_eg .GetNameVal (_fcbaa .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_affc {_dbg .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 _fcbaa ,_abeda ,ErrRequiredAttributeMissing ;};_abeda ._cfab =_gebbe ;};return _fcbaa ,_abeda ,nil ;};func (_gffb *PdfWriter )writeBytes (_bgcda []byte ){if _gffb ._cfgdd !=nil {return ;};_afcfe ,_facee :=_gffb ._fggeg .Write (_bgcda );_gffb ._agecc +=int64 (_afcfe ); _gffb ._cfgdd =_facee ;}; // NewPdfAnnotationWidget returns an initialized annotation widget. func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_dbb :=NewPdfAnnotation ();_bbgf :=&PdfAnnotationWidget {};_bbgf .PdfAnnotation =_dbb ;_dbb .SetContext (_bbgf );return _bbgf ;}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 1 for a grayscale device. func (_gcaa *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1}; // ImageToRGB returns an error since an image cannot be defined in a pattern colorspace. func (_bdee *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_dbg .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 ,_bbd .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");};const (_defe =0x00001; _ggccae =0x00002;_efecb =0x00004;_afeg =0x00008;_bacd =0x00020;_fedcc =0x00040;_fcffe =0x10000;_eefdg =0x20000;_gbgg =0x40000;);func _ebbee (_addga *_eg .PdfIndirectObject ,_dfafc *_eg .PdfObjectDictionary )(*DSS ,error ){if _addga ==nil {_addga =_eg .MakeIndirectObject (nil ); };_addga .PdfObject =_eg .MakeDict ();_cgdaf :=map[string ]*VRI {};if _dccc ,_ffcfe :=_eg .GetDict (_dfafc .Get ("\u0056\u0052\u0049"));_ffcfe {for _ ,_dccb :=range _dccc .Keys (){if _fgce ,_bcdg :=_eg .GetDict (_dccc .Get (_dccb ));_bcdg {_cgdaf [_dc .ToUpper (_dccb .String ())]=_dgfc (_fgce ); };};};return &DSS {Certs :_feed (_dfafc .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_feed (_dfafc .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_feed (_dfafc .Get ("\u0043\u0052\u004c\u0073")),VRI :_cgdaf ,_gded :_addga },nil ;}; // 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 (_fggf *LTV )EnableChain (chain []*_ce .Certificate )error {return _fggf .enable (nil ,chain ,"")};func (_gcda Image )getBase ()_ff .ImageBase {return _ff .NewImageBase (int (_gcda .Width ),int (_gcda .Height ),int (_gcda .BitsPerComponent ),_gcda .ColorComponents ,_gcda .Data ,_gcda ._fcec ,_gcda ._aaeac ); };func _fafgc (_efeee *PdfField )[]*PdfField {_ebcge :=[]*PdfField {_efeee };for _ ,_cecc :=range _efeee .Kids {_ebcge =append (_ebcge ,_fafgc (_cecc )...);};return _ebcge ;}; // GetShadingByName gets the shading specified by keyName. Returns nil if not existing. // The bool flag indicated whether it was found or not. func (_bgedf *PdfPageResources )GetShadingByName (keyName _eg .PdfObjectName )(*PdfShading ,bool ){if _bgedf .Shading ==nil {return nil ,false ;};_aaaae ,_caaff :=_eg .TraceToDirectObject (_bgedf .Shading ).(*_eg .PdfObjectDictionary );if !_caaff {_dbg .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",_bgedf .Shading ); return nil ,false ;};if _defde :=_aaaae .Get (keyName );_defde !=nil {_defca ,_dggg :=_dcafge (_defde );if _dggg !=nil {_dbg .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",_dggg ); return nil ,false ;};return _defca ,true ;};return nil ,false ;}; // GetContainingPdfObject returns the container of the outline (indirect object). func (_feaac *PdfOutline )GetContainingPdfObject ()_eg .PdfObject {return _feaac ._ffbba }; // 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 (_dbgce *PdfReader )Inspect ()(map[string ]int ,error ){return _dbgce ._cdggc .Inspect ()};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;); // 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 (_fefc int ,_babfe *PdfPage );func _debbd (_acbc *_eg .PdfObjectDictionary ,_cabb *fontCommon ,_aafcd _cec .TextEncoder )(*pdfFontSimple ,error ){_fdegeb :=_dcaf (_cabb );_fdegeb ._fcgd =_aafcd ;if _aafcd ==nil {_abfg :=_acbc .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"); if _abfg ==nil {_abfg =_eg .MakeInteger (0);};_fdegeb .FirstChar =_abfg ;_ebcbd ,_dadf :=_eg .GetIntVal (_abfg );if !_dadf {_dbg .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",_abfg ); return nil ,_eg .ErrTypeError ;};_ceaa :=_cec .CharCode (_ebcbd );_abfg =_acbc .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _abfg ==nil {_abfg =_eg .MakeInteger (255);};_fdegeb .LastChar =_abfg ;_ebcbd ,_dadf =_eg .GetIntVal (_abfg );if !_dadf {_dbg .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",_abfg ); return nil ,_eg .ErrTypeError ;};_agcg :=_cec .CharCode (_ebcbd );_fdegeb ._baga =make (map[_cec .CharCode ]float64 );_abfg =_acbc .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _abfg !=nil {_fdegeb .Widths =_abfg ;_cfba ,_ecgd :=_eg .GetArray (_abfg ); if !_ecgd {_dbg .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",_abfg );return nil ,_eg .ErrTypeError ; };_fecf ,_egffd :=_cfba .ToFloat64Array ();if _egffd !=nil {_dbg .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 ,_egffd ;};if len (_fecf )!=int (_agcg -_ceaa +1){_dbg .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",_agcg -_ceaa +1,len (_fecf )); return nil ,_eg .ErrRangeError ;};for _bcbbb ,_facff :=range _fecf {_fdegeb ._baga [_ceaa +_cec .CharCode (_bcbbb )]=_facff ;};};};_fdegeb .Encoding =_eg .TraceToDirectObject (_acbc .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _fdegeb ,nil ; };func (_dgece *pdfFontType0 )bytesToCharcodes (_cgebc []byte )([]_cec .CharCode ,bool ){if _dgece ._adad ==nil {return nil ,false ;};_ecaf ,_fddba :=_dgece ._adad .BytesToCharcodes (_cgebc );if !_fddba {return nil ,false ;};_cbaab :=make ([]_cec .CharCode ,len (_ecaf )); for _aabgf ,_gcdcb :=range _ecaf {_cbaab [_aabgf ]=_cec .CharCode (_gcdcb );};return _cbaab ,true ;};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);); // PdfAnnotationMovie represents Movie annotations. // (Section 12.5.6.17). type PdfAnnotationMovie struct{*PdfAnnotation ;T _eg .PdfObject ;Movie _eg .PdfObject ;A _eg .PdfObject ;}; // Insert adds a top level outline item in the outline, // at the specified index. func (_cdbec *Outline )Insert (index uint ,item *OutlineItem ){_acagc :=uint (len (_cdbec .Entries ));if index > _acagc {index =_acagc ;};_cdbec .Entries =append (_cdbec .Entries [:index ],append ([]*OutlineItem {item },_cdbec .Entries [index :]...)...); }; // 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 (_cgcfab *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_fdfde :=_cgcfab .actualFont ();if _fdfde ==nil {_dbg .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",_cgcfab ._gdcab ); return _ab .CharMetrics {},false ;};if _ecef ,_dgbe :=_fdfde .GetRuneMetrics (r );_dgbe {return _ecef ,true ;};if _efea ,_fdbef :=_cgcfab .GetFontDescriptor ();_fdbef ==nil &&_efea !=nil {return _ab .CharMetrics {Wx :_efea ._afce },true ;};_dbg .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",_cgcfab ); return _ab .CharMetrics {},false ;}; // SetXObjectImageByName adds the provided XObjectImage to the page resources. // The added XObjectImage is identified by the specified name. func (_cdedb *PdfPageResources )SetXObjectImageByName (keyName _eg .PdfObjectName ,ximg *XObjectImage )error {_abafc :=ximg .ToPdfObject ().(*_eg .PdfObjectStream );_efaga :=_cdedb .SetXObjectByName (keyName ,_abafc );return _efaga ;}; // 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 (_caef *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bdfb :=vals [0];if _bdfb < 0.0||_bdfb > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };_cda :=NewPdfColorCalGray (_bdfb );return _cda ,nil ;}; // 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 *_eg .PdfObjectStream ;Data []byte ;_acga *_eg .PdfIndirectObject ;_efdb *_eg .PdfObjectStream ;};func _ddbc (_bccfe _eg .PdfObject ,_ggabd *PdfReader )(*OutlineDest ,error ){_gedea ,_deef :=_eg .GetArray (_bccfe );if !_deef {return nil ,_bbd .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"); };_fcage :=_gedea .Len ();if _fcage < 2{return nil ,_e .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",_fcage ); };_ecddd :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_agfcb :=_gedea .Get (0);if _cebda ,_dceda :=_eg .GetIndirect (_agfcb );_dceda {if _ ,_eaaff ,_edfa :=_ggabd .PageFromIndirectObject (_cebda );_edfa ==nil {_ecddd .Page =int64 (_eaaff -1);}else {_dbg .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",_cebda ); };_ecddd .PageObj =_cebda ;}else if _cggd ,_bedcb :=_eg .GetIntVal (_agfcb );_bedcb {if _cggd >=0&&_cggd < len (_ggabd .PageList ){_ecddd .PageObj =_ggabd .PageList [_cggd ].GetPageAsIndirectObject ();}else {_dbg .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",_cggd ); };_ecddd .Page =int64 (_cggd );}else {return nil ,_e .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",_agfcb );};_eedc ,_deef :=_eg .GetNameVal (_gedea .Get (1)); if !_deef {_dbg .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",_gedea .Get (1)); return _ecddd ,nil ;};switch _eedc {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _fcage > 2{_ecddd .Y ,_ =_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_gedea .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _fcage > 2{_ecddd .X ,_ =_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_gedea .Get (2))); };case "\u0058\u0059\u005a":if _fcage > 4{_ecddd .X ,_ =_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_gedea .Get (2)));_ecddd .Y ,_ =_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_gedea .Get (3)));_ecddd .Zoom ,_ =_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_gedea .Get (4))); };default:_eedc ="\u0046\u0069\u0074";};_ecddd .Mode =_eedc ;return _ecddd ,nil ;}; // NewPdfAnnotationFreeText returns a new free text annotation. func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_ccgd :=NewPdfAnnotation ();_gda :=&PdfAnnotationFreeText {};_gda .PdfAnnotation =_ccgd ;_gda .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ccgd .SetContext (_gda );return _gda ;}; // GetRuneMetrics returns the character metrics for the specified rune. // A bool flag is returned to indicate whether or not the entry was found. func (_ccgc pdfFontType0 )GetRuneMetrics (r rune )(_ab .CharMetrics ,bool ){if _ccgc .DescendantFont ==nil {_dbg .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",_ccgc ); return _ab .CharMetrics {},false ;};return _ccgc .DescendantFont .GetRuneMetrics (r );}; // PdfActionImportData represents a importData action. type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;}; // IsShading specifies if the pattern is a shading pattern. func (_abfda *PdfPattern )IsShading ()bool {return _abfda .PatternType ==2}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_feabc *PdfShading )ToPdfObject ()_eg .PdfObject {_cbdcc :=_feabc ._beag ;_cfgec ,_dfag :=_feabc .getShadingDict ();if _dfag !=nil {_dbg .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 _feabc .ShadingType !=nil {_cfgec .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_feabc .ShadingType );};if _feabc .ColorSpace !=nil {_cfgec .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_feabc .ColorSpace .ToPdfObject ()); };if _feabc .Background !=nil {_cfgec .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_feabc .Background );};if _feabc .BBox !=nil {_cfgec .Set ("\u0042\u0042\u006f\u0078",_feabc .BBox .ToPdfObject ());};if _feabc .AntiAlias !=nil {_cfgec .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_feabc .AntiAlias ); };return _cbdcc ;}; // GetXObjectByName gets XObject by name. func (_bbgbd *PdfPage )GetXObjectByName (name _eg .PdfObjectName )(_eg .PdfObject ,bool ){_efagd ,_gcgg :=_bbgbd .Resources .XObject .(*_eg .PdfObjectDictionary );if !_gcgg {return nil ,false ;};if _dedef :=_efagd .Get (name );_dedef !=nil {return _dedef ,true ; };return nil ,false ;}; // AddImageResource adds an image to the XObject resources. func (_gcbbf *PdfPage )AddImageResource (name _eg .PdfObjectName ,ximg *XObjectImage )error {var _ffgea *_eg .PdfObjectDictionary ;if _gcbbf .Resources .XObject ==nil {_ffgea =_eg .MakeDict ();_gcbbf .Resources .XObject =_ffgea ;}else {var _cggdd bool ; _ffgea ,_cggdd =(_gcbbf .Resources .XObject ).(*_eg .PdfObjectDictionary );if !_cggdd {return _bbd .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_ffgea .Set (name ,ximg .ToPdfObject ()); return nil ;};func (_cfcee *PdfReader )newPdfAnnotationWatermarkFromDict (_eaac *_eg .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_geea :=PdfAnnotationWatermark {};_geea .FixedPrint =_eaac .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074"); return &_geea ,nil ;}; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. func (_gdace *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _gdace .Alternate ==nil {if _gdace .N ==1{_efae :=NewPdfColorspaceDeviceGray ();return _efae .ColorFromFloats (vals );}else if _gdace .N ==3{_dbda :=NewPdfColorspaceDeviceRGB (); return _dbda .ColorFromFloats (vals );}else if _gdace .N ==4{_eafb :=NewPdfColorspaceDeviceCMYK ();return _eafb .ColorFromFloats (vals );}else {return nil ,_bbd .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 _gdace .Alternate .ColorFromFloats (vals );}; // ColorToRGB converts a color in Separation colorspace to RGB colorspace. func (_bcad *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _bcad .AlternateSpace ==nil {return nil ,_bbd .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 _bcad .AlternateSpace .ColorToRGB (color );}; // GetOutlineTree returns the outline tree. func (_gdbea *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _gdbea ._ebgea }; // 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 (_cbgdg *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _ccfcc []*PdfField ;_adddd :=map[*_eg .PdfIndirectObject ]struct{}{};for _ ,_ddggc :=range _cbgdg .PageList {_fddcb ,_ffac :=_ddggc .GetAnnotations ();if _ffac !=nil {return _ffac ; };for _ ,_aefg :=range _fddcb {var _gfaec *PdfField ;switch _gbbdg :=_aefg .GetContext ().(type ){case *PdfAnnotationWidget :if _gbbdg ._cdda !=nil {_gfaec =_gbbdg ._cdda ;break ;};if _eeceb ,_cdcc :=_eg .GetIndirect (_gbbdg .Parent );_cdcc {_gfaec ,_ffac =_cbgdg .newPdfFieldFromIndirectObject (_eeceb ,nil ); if _ffac ==nil {break ;};_dbg .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",_eeceb ,_ffac ); };if _gbbdg ._gag !=nil {_gfaec ,_ffac =_cbgdg .newPdfFieldFromIndirectObject (_gbbdg ._gag ,nil );if _ffac ==nil {break ;};_dbg .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",_gbbdg ._gag ,_ffac ); };};if _gfaec ==nil {continue ;};if _ ,_fgea :=_adddd [_gfaec ._afbe ];_fgea {continue ;};_adddd [_gfaec ._afbe ]=struct{}{};_ccfcc =append (_ccfcc ,_gfaec );};};if len (_ccfcc )==0{return nil ;};if _cbgdg .AcroForm ==nil {_cbgdg .AcroForm =NewPdfAcroForm (); };_cbgdg .AcroForm .Fields =&_ccfcc ;return nil ;}; // ToPdfObject implements interface PdfModel. func (_aca *PdfAnnotationSound )ToPdfObject ()_eg .PdfObject {_aca .PdfAnnotation .ToPdfObject ();_aedb :=_aca ._gag ;_ccd :=_aedb .PdfObject .(*_eg .PdfObjectDictionary );_aca .PdfAnnotationMarkup .appendToPdfDictionary (_ccd );_ccd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053\u006f\u0075n\u0064")); _ccd .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_aca .Sound );_ccd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_aca .Name );return _aedb ;}; // Width returns the width of `rect`. func (_dedad *PdfRectangle )Width ()float64 {return _bc .Abs (_dedad .Urx -_dedad .Llx )}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 3 for a CalRGB device. func (_cgce *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};func (_gedfc *LTV )generateVRIKey (_bgce *PdfSignature )(string ,error ){_abdd ,_dcabf :=_cafd (_bgce .Contents .Bytes ());if _dcabf !=nil {return "",_dcabf ;};return _dc .ToUpper (_c .EncodeToString (_abdd )),nil ; };func _fegg (_abgca _eg .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_eggf :=&PdfColorspaceDeviceNAttributes {};var _bgeed *_eg .PdfObjectDictionary ;switch _fbfga :=_abgca .(type ){case *_eg .PdfIndirectObject :_eggf ._bcca =_fbfga ;var _cfgb bool ; _bgeed ,_cfgb =_fbfga .PdfObject .(*_eg .PdfObjectDictionary );if !_cfgb {_dbg .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 ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };case *_eg .PdfObjectDictionary :_bgeed =_fbfga ;case *_eg .PdfObjectReference :_cbab :=_fbfga .Resolve ();return _fegg (_cbab );default:_dbg .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 ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _beec :=_bgeed .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_beec !=nil {_ffgdf ,_cdceca :=_eg .TraceToDirectObject (_beec ).(*_eg .PdfObjectName );if !_cdceca {_dbg .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 ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_eggf .Subtype =_ffgdf ;};if _begd :=_bgeed .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_begd !=nil {_eggf .Colorants =_begd ;};if _fbgfa :=_bgeed .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073"); _fbgfa !=nil {_eggf .Process =_fbgfa ;};if _faadc :=_bgeed .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_faadc !=nil {_eggf .MixingHints =_faadc ;};return _eggf ,nil ;}; // PdfInfo holds document information that will overwrite // document information global variables defined above. type PdfInfo struct{Title *_eg .PdfObjectString ;Author *_eg .PdfObjectString ;Subject *_eg .PdfObjectString ;Keywords *_eg .PdfObjectString ;Creator *_eg .PdfObjectString ;Producer *_eg .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;Trapped *_eg .PdfObjectName ; _fbfgb *_eg .PdfObjectDictionary ;}; // GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this. func (_cffgd *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _cffgd ._defdf .(*PdfShadingPattern );}; // ToPdfObject converts the PdfPage to a dictionary within an indirect object container. func (_deabd *PdfPage )ToPdfObject ()_eg .PdfObject {_ddbbb :=_deabd ._caaef ;_deabd .GetPageDict ();return _ddbbb ;}; // Duplicate creates a duplicate page based on the current one and returns it. func (_fbbce *PdfPage )Duplicate ()*PdfPage {_efbfd :=*_fbbce ;_efbfd ._ecbba =_eg .MakeDict ();_efbfd ._caaef =_eg .MakeIndirectObject (_efbfd ._ecbba );return &_efbfd ;}; // Add appends an outline item as a child of the current outline item. func (_fdeec *OutlineItem )Add (item *OutlineItem ){_fdeec .Entries =append (_fdeec .Entries ,item )}; // ToPdfObject recursively builds the Outline tree PDF object. func (_faaf *PdfOutlineItem )ToPdfObject ()_eg .PdfObject {_bcdcg :=_faaf ._bfega ;_gadbg :=_bcdcg .PdfObject .(*_eg .PdfObjectDictionary );_gadbg .Set ("\u0054\u0069\u0074l\u0065",_faaf .Title );if _faaf .A !=nil {_gadbg .Set ("\u0041",_faaf .A );};if _ggceb :=_gadbg .Get ("\u0053\u0045"); _ggceb !=nil {_gadbg .Remove ("\u0053\u0045");};if _faaf .C !=nil {_gadbg .Set ("\u0043",_faaf .C );};if _faaf .Dest !=nil {_gadbg .Set ("\u0044\u0065\u0073\u0074",_faaf .Dest );};if _faaf .F !=nil {_gadbg .Set ("\u0046",_faaf .F );};if _faaf .Count !=nil {_gadbg .Set ("\u0043\u006f\u0075n\u0074",_eg .MakeInteger (*_faaf .Count )); };if _faaf .Next !=nil {_gadbg .Set ("\u004e\u0065\u0078\u0074",_faaf .Next .ToPdfObject ());};if _faaf .First !=nil {_gadbg .Set ("\u0046\u0069\u0072s\u0074",_faaf .First .ToPdfObject ());};if _faaf .Prev !=nil {_gadbg .Set ("\u0050\u0072\u0065\u0076",_faaf .Prev .GetContext ().GetContainingPdfObject ()); };if _faaf .Last !=nil {_gadbg .Set ("\u004c\u0061\u0073\u0074",_faaf .Last .GetContext ().GetContainingPdfObject ());};if _faaf .Parent !=nil {_gadbg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_faaf .Parent .GetContext ().GetContainingPdfObject ()); };return _bcdcg ;};func (_ggfacc *PdfAcroForm )fill (_bgbfd FieldValueProvider ,_cbfb FieldAppearanceGenerator )error {if _ggfacc ==nil {return nil ;};_fbaab ,_decaa :=_bgbfd .FieldValues ();if _decaa !=nil {return _decaa ;};for _ ,_acbb :=range _ggfacc .AllFields (){_fbdfa :=_acbb .PartialName (); _fbgba ,_dgfff :=_fbaab [_fbdfa ];if !_dgfff {if _cdcg ,_dfdc :=_acbb .FullName ();_dfdc ==nil {_fbgba ,_dgfff =_fbaab [_cdcg ];};};if !_dgfff {_dbg .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",_fbdfa ); continue ;};if _dceba :=_edbga (_acbb ,_fbgba );_dceba !=nil {return _dceba ;};if _cbfb ==nil {continue ;};for _ ,_cebb :=range _acbb .Annotations {_fcgb ,_cbgf :=_cbfb .GenerateAppearanceDict (_ggfacc ,_acbb ,_cebb );if _cbgf !=nil {return _cbgf ;};_cebb .AP =_fcgb ; _cebb .ToPdfObject ();};};return nil ;}; // GetNumPages returns the number of pages in the document. func (_caec *PdfReader )GetNumPages ()(int ,error ){if _caec ._cdggc .GetCrypter ()!=nil &&!_caec ._cdggc .IsAuthenticated (){return 0,_e .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 (_caec ._dfff ),nil ;}; // NewPdfAnnotation returns an initialized generic PDF annotation model. func NewPdfAnnotation ()*PdfAnnotation {_gfba :=&PdfAnnotation {};_gfba ._gag =_eg .MakeIndirectObject (_eg .MakeDict ());return _gfba ;}; // PdfFunction interface represents the common methods of a function in PDF. type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_eg .PdfObject ;}; // SetDecode sets the decode image float slice. func (_ecfda *Image )SetDecode (decode []float64 ){_ecfda ._aaeac =decode }; // C returns the value of the cyan component of the color. func (_dddc *PdfColorDeviceCMYK )C ()float64 {return _dddc [0]}; // 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 (_fdfg *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dbcb ,_bfa :=_eg .GetNumbersAsFloat (objects ); if _bfa !=nil {return nil ,_bfa ;};return _fdfg .ColorFromFloats (_dbcb );}; // GetOCProperties returns the optional content properties PdfObject. func (_feea *PdfReader )GetOCProperties ()(_eg .PdfObject ,error ){_cgdc :=_feea ._efdg ;_gegdg :=_cgdc .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_gegdg =_eg .ResolveReference (_gegdg );if !_feea ._bebe {_ffffa :=_feea .traverseObjectData (_gegdg ); if _ffffa !=nil {return nil ,_ffffa ;};};return _gegdg ,nil ;}; // NewPdfActionThread returns a new "thread" action. func NewPdfActionThread ()*PdfActionThread {_gd :=NewPdfAction ();_eec :=&PdfActionThread {};_eec .PdfAction =_gd ;_gd .SetContext (_eec );return _eec ;}; // PdfActionJavaScript represents a javaScript action. type PdfActionJavaScript struct{*PdfAction ;JS _eg .PdfObject ;};func _aeebeg (_eecbb []byte )[]byte {const _geba =52845;const _fecfb =22719;_bceg :=55665;for _ ,_eddc :=range _eecbb [:4]{_bceg =(int (_eddc )+_bceg )*_geba +_fecfb ;};_bbfc :=make ([]byte ,len (_eecbb )-4); for _ddcd ,_gabd :=range _eecbb [4:]{_bbfc [_ddcd ]=byte (int (_gabd )^_bceg >>8);_bceg =(int (_gabd )+_bceg )*_geba +_fecfb ;};return _bbfc ;}; // SetPageLabels sets the PageLabels entry in the PDF catalog. // See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008). func (_dcegc *PdfWriter )SetPageLabels (pageLabels _eg .PdfObject )error {if pageLabels ==nil {return nil ;};_dbg .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"); _dcegc ._ebaaa .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _dcegc .addObjects (pageLabels );}; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. func (_gbadf *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _gbadf .UnderlyingCS ==nil {return nil ,_bbd .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 _gbadf .UnderlyingCS .ColorFromFloats (vals );}; // PdfShadingType1 is a Function-based shading. type PdfShadingType1 struct{*PdfShading ;Domain *_eg .PdfObjectArray ;Matrix *_eg .PdfObjectArray ;Function []PdfFunction ;}; // IsCID returns true if the underlying font is CID. func (_cfdcc *PdfFont )IsCID ()bool {return _cfdcc .baseFields ().isCIDFont ()}; // NewPdfAnnotationPrinterMark returns a new printermark annotation. func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_ced :=NewPdfAnnotation ();_dggc :=&PdfAnnotationPrinterMark {};_dggc .PdfAnnotation =_ced ;_ced .SetContext (_dggc );return _dggc ;};var _gdeaa =_ge .MustCompile ("\u005c\u0073\u002a\u0044\u005c\u0073\u002a:\u005c\u0073\u002a\u0028\u005c\u0064\u007b\u0034\u007d\u0029\u0028\u005c\u0064\u007b2\u007d)\u0028\u005c\u0064\u007b\u0032\u007d)\u0028\u005c\u0064\u007b\u0032\u007d\u0029(\u005c\u0064\u007b\u0032\u007d\u0029\u0028\u005c\u0064\u007b\u0032\u007d\u0029\u0028\u005b\u002b\u002d\u005a\u005d\u0029\u003f\u0028\u005cd\u007b\u0032\u007d\u0029\u003f\u0027\u003f\u0028\u005c\u0064\u007b\u0032\u007d)\u003f"); // 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 (_fafgg *PdfSignature )bool ;Validate (_abfb *PdfSignature ,_fafef Hasher )(SignatureValidationResult ,error ); // InitSignature sets the PdfSignature parameters. InitSignature (*PdfSignature )error ;NewDigest (_bbcea *PdfSignature )(Hasher ,error );Sign (_agbdc *PdfSignature ,_gace Hasher )error ;}; // ToPdfObject implements interface PdfModel. func (_bea *PdfAnnotationProjection )ToPdfObject ()_eg .PdfObject {_bea .PdfAnnotation .ToPdfObject ();_dfbg :=_bea ._gag ;_ebdg :=_dfbg .PdfObject .(*_eg .PdfObjectDictionary );_bea .PdfAnnotationMarkup .appendToPdfDictionary (_ebdg );return _dfbg ;}; // NewPdfAnnotationFileAttachment returns a new file attachment annotation. func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_fdee :=NewPdfAnnotation ();_bgbf :=&PdfAnnotationFileAttachment {};_bgbf .PdfAnnotation =_fdee ;_bgbf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fdee .SetContext (_bgbf );return _bgbf ; }; // ToPdfObject implements interface PdfModel. func (_gge *PdfActionGoToR )ToPdfObject ()_eg .PdfObject {_gge .PdfAction .ToPdfObject ();_aec :=_gge ._ege ;_aac :=_aec .PdfObject .(*_eg .PdfObjectDictionary );_aac .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeGoToR )));if _gge .F !=nil {_aac .Set ("\u0046",_gge .F .ToPdfObject ()); };_aac .SetIfNotNil ("\u0044",_gge .D );_aac .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_gge .NewWindow );return _aec ;}; // ToPdfObject returns colorspace in a PDF object format [name dictionary] func (_ebae *PdfColorspaceLab )ToPdfObject ()_eg .PdfObject {_ace :=_eg .MakeArray ();_ace .Append (_eg .MakeName ("\u004c\u0061\u0062"));_dfdb :=_eg .MakeDict ();if _ebae .WhitePoint !=nil {_badg :=_eg .MakeArray (_eg .MakeFloat (_ebae .WhitePoint [0]),_eg .MakeFloat (_ebae .WhitePoint [1]),_eg .MakeFloat (_ebae .WhitePoint [2])); _dfdb .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_badg );}else {_dbg .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 _ebae .BlackPoint !=nil {_efec :=_eg .MakeArray (_eg .MakeFloat (_ebae .BlackPoint [0]),_eg .MakeFloat (_ebae .BlackPoint [1]),_eg .MakeFloat (_ebae .BlackPoint [2]));_dfdb .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_efec ); };if _ebae .Range !=nil {_feae :=_eg .MakeArray (_eg .MakeFloat (_ebae .Range [0]),_eg .MakeFloat (_ebae .Range [1]),_eg .MakeFloat (_ebae .Range [2]),_eg .MakeFloat (_ebae .Range [3]));_dfdb .Set ("\u0052\u0061\u006eg\u0065",_feae );};_ace .Append (_dfdb ); if _ebae ._fcef !=nil {_ebae ._fcef .PdfObject =_ace ;return _ebae ._fcef ;};return _ace ;}; // Height returns the height of `rect`. func (_fdaab *PdfRectangle )Height ()float64 {return _bc .Abs (_fdaab .Ury -_fdaab .Lly )};func _aefad (_dgag StdFontName )(pdfFontSimple ,error ){_edcd ,_adce :=_ab .NewStdFontByName (_dgag );if !_adce {return pdfFontSimple {},ErrFontNotSupported ;};_bgba :=_gecc (_edcd ); return _bgba ,nil ;}; // PdfShadingType2 is an Axial shading. type PdfShadingType2 struct{*PdfShading ;Coords *_eg .PdfObjectArray ;Domain *_eg .PdfObjectArray ;Function []PdfFunction ;Extend *_eg .PdfObjectArray ;};type pdfSignDictionary struct{*_eg .PdfObjectDictionary ;_fbfb *SignatureHandler ;_bcacg *PdfSignature ; _gfefg int64 ;_addad int ;_gaeef int ;_ddbef int ;_bfgaa int ;}; // ToPdfObject returns the PDF representation of the outline tree node. func (_gdbcg *PdfOutlineTreeNode )ToPdfObject ()_eg .PdfObject {return _gdbcg .GetContext ().ToPdfObject ();}; // ToPdfObject implements interface PdfModel. func (_bbdg *PdfAnnotationCircle )ToPdfObject ()_eg .PdfObject {_bbdg .PdfAnnotation .ToPdfObject ();_fgcf :=_bbdg ._gag ;_gega :=_fgcf .PdfObject .(*_eg .PdfObjectDictionary );_bbdg .PdfAnnotationMarkup .appendToPdfDictionary (_gega );_gega .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065")); _gega .SetIfNotNil ("\u0042\u0053",_bbdg .BS );_gega .SetIfNotNil ("\u0049\u0043",_bbdg .IC );_gega .SetIfNotNil ("\u0042\u0045",_bbdg .BE );_gega .SetIfNotNil ("\u0052\u0044",_bbdg .RD );return _fgcf ;}; // GetDescent returns the Descent of the font `descriptor`. func (_eeccd *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _eg .GetNumberAsFloat (_eeccd .Descent );};func (_gce *PdfReader )newPdfAnnotationPopupFromDict (_aefee *_eg .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_def :=PdfAnnotationPopup {}; _def .Parent =_aefee .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_def .Open =_aefee .Get ("\u004f\u0070\u0065\u006e");return &_def ,nil ;}; // ToPdfObject returns the PDF representation of the VRI dictionary. func (_bbcga *VRI )ToPdfObject ()*_eg .PdfObjectDictionary {_ecdb :=_eg .MakeDict ();_ecdb .SetIfNotNil (_eg .PdfObjectName ("\u0043\u0065\u0072\u0074"),_bffd (_bbcga .Cert ));_ecdb .SetIfNotNil (_eg .PdfObjectName ("\u004f\u0043\u0053\u0050"),_bffd (_bbcga .OCSP )); _ecdb .SetIfNotNil (_eg .PdfObjectName ("\u0043\u0052\u004c"),_bffd (_bbcga .CRL ));_ecdb .SetIfNotNil ("\u0054\u0055",_bbcga .TU );_ecdb .SetIfNotNil ("\u0054\u0053",_bbcga .TS );return _ecdb ;}; // DecodeArray returns the range of color component values in DeviceRGB colorspace. func (_bfaf *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};}; // 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 (_ceecf *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_afcgc ,_ ,_gfgfa :=_ceecf .CharcodesToUnicodeWithStats (_ceecf .BytesToCharcodes (data ));_gdcf :=_cec .ExpandLigatures (_afcgc );return _gdcf ,_cb .RuneCountInString (_gdcf ),_gfgfa ; }; // ToPdfObject implements interface PdfModel. func (_gbfe *PdfAnnotationFreeText )ToPdfObject ()_eg .PdfObject {_gbfe .PdfAnnotation .ToPdfObject ();_aecf :=_gbfe ._gag ;_gfca :=_aecf .PdfObject .(*_eg .PdfObjectDictionary );_gbfe .PdfAnnotationMarkup .appendToPdfDictionary (_gfca );_gfca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074")); _gfca .SetIfNotNil ("\u0044\u0041",_gbfe .DA );_gfca .SetIfNotNil ("\u0051",_gbfe .Q );_gfca .SetIfNotNil ("\u0052\u0043",_gbfe .RC );_gfca .SetIfNotNil ("\u0044\u0053",_gbfe .DS );_gfca .SetIfNotNil ("\u0043\u004c",_gbfe .CL );_gfca .SetIfNotNil ("\u0049\u0054",_gbfe .IT ); _gfca .SetIfNotNil ("\u0042\u0045",_gbfe .BE );_gfca .SetIfNotNil ("\u0052\u0044",_gbfe .RD );_gfca .SetIfNotNil ("\u0042\u0053",_gbfe .BS );_gfca .SetIfNotNil ("\u004c\u0045",_gbfe .LE );return _aecf ;}; // 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 (_dffa *LTV )Enable (sig *PdfSignature ,extraCerts []*_ce .Certificate )error {if _dddg :=_dffa .validateSig (sig );_dddg !=nil {return _dddg ;};_ggfef ,_ecdaf :=_dffa .generateVRIKey (sig );if _ecdaf !=nil {return _ecdaf ;};if _ ,_deece :=_dffa ._fgada .VRI [_ggfef ]; _deece &&_dffa .SkipExisting {return nil ;};_baafb ,_ecdaf :=sig .GetCerts ();if _ecdaf !=nil {return _ecdaf ;};return _dffa .enable (_baafb ,extraCerts ,_ggfef );};func (_deaa *DSS )addCerts (_abaf [][]byte )([]*_eg .PdfObjectStream ,error ){return _deaa .add (&_deaa .Certs ,_deaa ._gaad ,_abaf ); }; // 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 (_cdba *PdfFont )CharcodesToUnicodeWithStats (charcodes []_cec .CharCode )(_aadd []rune ,_fcbfb ,_ceagd int ){_gcbd ,_fcbfb ,_ceagd :=_cdba .CharcodesToStrings (charcodes );return []rune (_dc .Join (_gcbd ,"")),_fcbfb ,_ceagd ;}; // ToPdfObject implements interface PdfModel. func (_bcag *PdfAnnotationSquare )ToPdfObject ()_eg .PdfObject {_bcag .PdfAnnotation .ToPdfObject ();_gefa :=_bcag ._gag ;_aebe :=_gefa .PdfObject .(*_eg .PdfObjectDictionary );if _bcag .PdfAnnotationMarkup !=nil {_bcag .PdfAnnotationMarkup .appendToPdfDictionary (_aebe ); };_aebe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_aebe .SetIfNotNil ("\u0042\u0053",_bcag .BS );_aebe .SetIfNotNil ("\u0049\u0043",_bcag .IC );_aebe .SetIfNotNil ("\u0042\u0045",_bcag .BE ); _aebe .SetIfNotNil ("\u0052\u0044",_bcag .RD );return _gefa ;}; // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // components. The slice should contain a single PdfObjectFloat element. func (_edfec *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgfc ,_egefb :=_eg .GetNumbersAsFloat (objects ); if _egefb !=nil {return nil ,_egefb ;};return _edfec .ColorFromFloats (_bgfc );}; // NewOutlineItem returns a new outline item instance. func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };}; // ToPdfObject implements interface PdfModel. func (_dgg *PdfActionResetForm )ToPdfObject ()_eg .PdfObject {_dgg .PdfAction .ToPdfObject ();_ag :=_dgg ._ege ;_ffe :=_ag .PdfObject .(*_eg .PdfObjectDictionary );_ffe .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeResetForm )));_ffe .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_dgg .Fields ); _ffe .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_dgg .Flags );return _ag ;};func _cafedf (_fcdbd _eg .PdfObject )(string ,error ){_fcdbd =_eg .TraceToDirectObject (_fcdbd );switch _fafaa :=_fcdbd .(type ){case *_eg .PdfObjectString :return _fafaa .Str (),nil ; case *_eg .PdfObjectStream :_debge ,_bcbc :=_eg .DecodeStream (_fafaa );if _bcbc !=nil {return "",_bcbc ;};return string (_debge ),nil ;};return "",_e .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",_fcdbd ); }; // SetName sets the `Name` field of the signature. func (_ggfcc *PdfSignature )SetName (name string ){_ggfcc .Name =_eg .MakeString (name )}; // Evaluate runs the function on the passed in slice and returns the results. func (_acade *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_acade .NumInputs {_dbg .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 ,_bbd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _acade ._dgfa ==nil {_acccc :=_acade .processSamples ();if _acccc !=nil {return nil ,_acccc ;};};_bcbbf :=_acade .Encode ;if _bcbbf ==nil {_bcbbf =[]float64 {}; for _cafac :=0;_cafac < len (_acade .Size );_cafac ++{_bcbbf =append (_bcbbf ,0);_bcbbf =append (_bcbbf ,float64 (_acade .Size [_cafac ]-1));};};_bdcf :=_acade .Decode ;if _bdcf ==nil {_bdcf =_acade .Range ;};_dbgeg :=make ([]int ,len (x ));for _fdeb :=0; _fdeb < len (x );_fdeb ++{_aebgf :=x [_fdeb ];_gedff :=_bc .Min (_bc .Max (_aebgf ,_acade .Domain [2*_fdeb ]),_acade .Domain [2*_fdeb +1]);_dadab :=_ff .LinearInterpolate (_gedff ,_acade .Domain [2*_fdeb ],_acade .Domain [2*_fdeb +1],_bcbbf [2*_fdeb ],_bcbbf [2*_fdeb +1]); _aeebd :=_bc .Min (_bc .Max (_dadab ,0),float64 (_acade .Size [_fdeb ]-1));_baff :=int (_bc .Floor (_aeebd +0.5));if _baff < 0{_baff =0;}else if _baff > _acade .Size [_fdeb ]{_baff =_acade .Size [_fdeb ]-1;};_dbgeg [_fdeb ]=_baff ;};_gcfcf :=_dbgeg [0]; for _fffb :=1;_fffb < _acade .NumInputs ;_fffb ++{_geaff :=_dbgeg [_fffb ];for _aabba :=0;_aabba < _fffb ;_aabba ++{_geaff *=_acade .Size [_aabba ];};_gcfcf +=_geaff ;};_gcfcf *=_acade .NumOutputs ;var _cbgad []float64 ;for _efbd :=0;_efbd < _acade .NumOutputs ; _efbd ++{_gcca :=_gcfcf +_efbd ;if _gcca >=len (_acade ._dgfa ){_dbg .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 ;};_cgecag :=_acade ._dgfa [_gcca ];_accad :=_ff .LinearInterpolate (float64 (_cgecag ),0,_bc .Pow (2,float64 (_acade .BitsPerSample )),_bdcf [2*_efbd ],_bdcf [2*_efbd +1]);_fddcc :=_bc .Min (_bc .Max (_accad ,_acade .Range [2*_efbd ]),_acade .Range [2*_efbd +1]); _cbgad =append (_cbgad ,_fddcc );};return _cbgad ,nil ;}; // GetNumComponents returns the number of color components (1 for grayscale). func (_ceec *PdfColorDeviceGray )GetNumComponents ()int {return 1}; // ToPdfObject implements interface PdfModel. func (_gcdd *PdfAnnotationCaret )ToPdfObject ()_eg .PdfObject {_gcdd .PdfAnnotation .ToPdfObject ();_bcbed :=_gcdd ._gag ;_ceca :=_bcbed .PdfObject .(*_eg .PdfObjectDictionary );_gcdd .PdfAnnotationMarkup .appendToPdfDictionary (_ceca );_ceca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0043\u0061\u0072e\u0074")); _ceca .SetIfNotNil ("\u0052\u0044",_gcdd .RD );_ceca .SetIfNotNil ("\u0053\u0079",_gcdd .Sy );return _bcbed ;}; // NewPdfAnnotationStamp returns a new stamp annotation. func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_dgf :=NewPdfAnnotation ();_aeb :=&PdfAnnotationStamp {};_aeb .PdfAnnotation =_dgf ;_aeb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dgf .SetContext (_aeb );return _aeb ;};func _ggafb (_ecddg _eg .PdfObject )(*PdfBorderStyle ,error ){_cffe :=&PdfBorderStyle {}; _cffe ._cbeg =_ecddg ;var _dbag *_eg .PdfObjectDictionary ;_ecddg =_eg .TraceToDirectObject (_ecddg );_dbag ,_fdag :=_ecddg .(*_eg .PdfObjectDictionary );if !_fdag {return nil ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };if _dbgb :=_dbag .Get ("\u0054\u0079\u0070\u0065");_dbgb !=nil {_cbb ,_dgbf :=_dbgb .(*_eg .PdfObjectName );if !_dgbf {_dbg .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",_dbgb ); }else {if *_cbb !="\u0042\u006f\u0072\u0064\u0065\u0072"{_dbg .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",*_cbb );};};};if _bbdf :=_dbag .Get ("\u0057"); _bbdf !=nil {_adg ,_egc :=_eg .GetNumberAsFloat (_bbdf );if _egc !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_egc );return nil ,_egc ;};_cffe .W =&_adg ; };if _ccc :=_dbag .Get ("\u0053");_ccc !=nil {_fbdc ,_gdfb :=_ccc .(*_eg .PdfObjectName );if !_gdfb {return nil ,_bbd .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 _ffce BorderStyle ;switch *_fbdc {case "\u0053":_ffce =BorderStyleSolid ;case "\u0044":_ffce =BorderStyleDashed ;case "\u0042":_ffce =BorderStyleBeveled ;case "\u0049":_ffce =BorderStyleInset ;case "\u0055":_ffce =BorderStyleUnderline ;default:_dbg .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_fbdc ); return nil ,_bbd .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_cffe .S =&_ffce ;};if _dafed :=_dbag .Get ("\u0044");_dafed !=nil {_bede ,_ggdb :=_dafed .(*_eg .PdfObjectArray ); if !_ggdb {_dbg .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",_dafed );return nil ,_bbd .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr"); };_debc ,_bfc :=_bede .ToIntegerArray ();if _bfc !=nil {_dbg .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",_bfc ); return nil ,_bfc ;};_cffe .D =&_debc ;};return _cffe ,nil ;};var _acgcf =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":{}}; // 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 (_gafa int ,_egdd *PdfPage )error ;func (_aaba *PdfAnnotationMarkup )appendToPdfDictionary (_fba *_eg .PdfObjectDictionary ){_fba .SetIfNotNil ("\u0054",_aaba .T );if _aaba .Popup !=nil {_fba .Set ("\u0050\u006f\u0070u\u0070",_aaba .Popup .ToPdfObject ()); };_fba .SetIfNotNil ("\u0043\u0041",_aaba .CA );_fba .SetIfNotNil ("\u0052\u0043",_aaba .RC );_fba .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_aaba .CreationDate );_fba .SetIfNotNil ("\u0049\u0052\u0054",_aaba .IRT ); _fba .SetIfNotNil ("\u0053\u0075\u0062\u006a",_aaba .Subj );_fba .SetIfNotNil ("\u0052\u0054",_aaba .RT );_fba .SetIfNotNil ("\u0049\u0054",_aaba .IT );_fba .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_aaba .ExData );}; // SetPdfProducer sets the Producer attribute of the output PDF. func SetPdfProducer (producer string ){_egbeg .Lock ();defer _egbeg .Unlock ();_gdagd =producer };func (_cdeccd *PdfShading )getShadingDict ()(*_eg .PdfObjectDictionary ,error ){_dccbf :=_cdeccd ._beag ;if _ecgcd ,_ddaf :=_dccbf .(*_eg .PdfIndirectObject ); _ddaf {_eded ,_egfc :=_ecgcd .PdfObject .(*_eg .PdfObjectDictionary );if !_egfc {return nil ,_eg .ErrTypeError ;};return _eded ,nil ;}else if _egba ,_dfgfb :=_dccbf .(*_eg .PdfObjectStream );_dfgfb {return _egba .PdfObjectDictionary ,nil ;}else if _eecgbc ,_beeg :=_dccbf .(*_eg .PdfObjectDictionary ); _beeg {return _eecgbc ,nil ;}else {_dbg .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 ,_eg .ErrTypeError ; };};func (_ebadd *PdfWriter )seekByName (_abddc _eg .PdfObject ,_dcgff []string ,_ccef string )([]_eg .PdfObject ,error ){_dbg .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_abddc );var _cadga []_eg .PdfObject ; if _bfag ,_egcef :=_abddc .(*_eg .PdfIndirectObject );_egcef {return _ebadd .seekByName (_bfag .PdfObject ,_dcgff ,_ccef );};if _faaaa ,_ccbcg :=_abddc .(*_eg .PdfObjectStream );_ccbcg {return _ebadd .seekByName (_faaaa .PdfObjectDictionary ,_dcgff ,_ccef ); };if _abaga ,_dfda :=_abddc .(*_eg .PdfObjectDictionary );_dfda {_dbg .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_agfea :=range _abaga .Keys (){_cdcab :=_abaga .Get (_agfea );if string (_agfea )==_ccef {_cadga =append (_cadga ,_cdcab );};for _ ,_beadc :=range _dcgff {if string (_agfea )==_beadc {_dbg .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_beadc ); _fffba ,_geeedd :=_ebadd .seekByName (_cdcab ,_dcgff ,_ccef );if _geeedd !=nil {return _cadga ,_geeedd ;};_cadga =append (_cadga ,_fffba ...);break ;};};};return _cadga ,nil ;};return _cadga ,nil ;}; // 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 ; // GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161). GeneralizedTime _ee .Time ;}; // ToPdfObject implements interface PdfModel. func (_abcc *PdfAnnotationPolygon )ToPdfObject ()_eg .PdfObject {_abcc .PdfAnnotation .ToPdfObject ();_cgff :=_abcc ._gag ;_cfdbb :=_cgff .PdfObject .(*_eg .PdfObjectDictionary );_abcc .PdfAnnotationMarkup .appendToPdfDictionary (_cfdbb );_cfdbb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e")); _cfdbb .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_abcc .Vertices );_cfdbb .SetIfNotNil ("\u004c\u0045",_abcc .LE );_cfdbb .SetIfNotNil ("\u0042\u0053",_abcc .BS );_cfdbb .SetIfNotNil ("\u0049\u0043",_abcc .IC );_cfdbb .SetIfNotNil ("\u0042\u0045",_abcc .BE ); _cfdbb .SetIfNotNil ("\u0049\u0054",_abcc .IT );_cfdbb .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_abcc .Measure );return _cgff ;};func _ceggb (_ccfdg _eg .PdfObject )(*PdfPattern ,error ){_gcfef :=&PdfPattern {};var _beef *_eg .PdfObjectDictionary ; if _abedb ,_agddd :=_eg .GetIndirect (_ccfdg );_agddd {_gcfef ._cfaag =_abedb ;_ffeaf ,_edagb :=_abedb .PdfObject .(*_eg .PdfObjectDictionary );if !_edagb {_dbg .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",_abedb .PdfObject ); return nil ,_eg .ErrTypeError ;};_beef =_ffeaf ;}else if _gdaa ,_fcecf :=_eg .GetStream (_ccfdg );_fcecf {_gcfef ._cfaag =_gdaa ;_beef =_gdaa .PdfObjectDictionary ;}else {_dbg .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",_ccfdg ); return nil ,_eg .ErrTypeError ;};_ddga :=_beef .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _ddga ==nil {_dbg .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 ;};_babfb ,_ggggf :=_ddga .(*_eg .PdfObjectInteger );if !_ggggf {_dbg .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",_ddga ); return nil ,_eg .ErrTypeError ;};if *_babfb !=1&&*_babfb !=2{_dbg .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",*_babfb );return nil ,_eg .ErrRangeError ; };_gcfef .PatternType =int64 (*_babfb );switch *_babfb {case 1:_abbe ,_dddbc :=_gbdcb (_beef );if _dddbc !=nil {return nil ,_dddbc ;};_abbe .PdfPattern =_gcfef ;_gcfef ._defdf =_abbe ;return _gcfef ,nil ;case 2:_ggggb ,_egdabc :=_aceda (_beef );if _egdabc !=nil {return nil ,_egdabc ; };_ggggb .PdfPattern =_gcfef ;_gcfef ._defdf =_ggggb ;return _gcfef ,nil ;};return nil ,_bbd .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};func (_cbacc *PdfReader )lookupPageByObject (_fdadg _eg .PdfObject )(*PdfPage ,error ){return nil ,_bbd .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064"); }; // ToPdfObject implements interface PdfModel. func (_edac *PdfAnnotationRichMedia )ToPdfObject ()_eg .PdfObject {_edac .PdfAnnotation .ToPdfObject ();_afgb :=_edac ._gag ;_abgfe :=_afgb .PdfObject .(*_eg .PdfObjectDictionary );_abgfe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a")); _abgfe .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_edac .RichMediaSettings );_abgfe .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_edac .RichMediaContent ); return _afgb ;};func (_gage *PdfReader )newPdfAnnotationRichMediaFromDict (_cegf *_eg .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_aaad :=&PdfAnnotationRichMedia {};_aaad .RichMediaSettings =_cegf .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073"); _aaad .RichMediaContent =_cegf .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");return _aaad ,nil ;}; // RemovePage removes a page by number. func (_gagg *PdfAppender )RemovePage (pageNum int ){_cgbc :=pageNum -1;_gagg ._bfce =append (_gagg ._bfce [0:_cgbc ],_gagg ._bfce [pageNum :]...);};func (_bfbc *PdfReader )buildOutlineTree (_dffd _eg .PdfObject ,_dacda *PdfOutlineTreeNode ,_fefec *PdfOutlineTreeNode ,_fgabcf map[_eg .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _fgabcf ==nil {_fgabcf =map[_eg .PdfObject ]struct{}{}; };_fgabcf [_dffd ]=struct{}{};_fcbba ,_agagb :=_dffd .(*_eg .PdfIndirectObject );if !_agagb {return nil ,nil ,_e .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",_dffd ); };_bfbbe ,_caadfa :=_fcbba .PdfObject .(*_eg .PdfObjectDictionary );if !_caadfa {return nil ,nil ,_bbd .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_dbg .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",_bfbbe ,_fcbba ,_fcbba ); if _cccff :=_bfbbe .Get ("\u0054\u0069\u0074l\u0065");_cccff !=nil {_agee ,_bddaa :=_bfbc .newPdfOutlineItemFromIndirectObject (_fcbba );if _bddaa !=nil {return nil ,nil ,_bddaa ;};_agee .Parent =_dacda ;_agee .Prev =_fefec ;_cfdded :=_eg .ResolveReference (_bfbbe .Get ("\u0046\u0069\u0072s\u0074")); if _ ,_adedb :=_fgabcf [_cfdded ];_cfdded !=nil &&_cfdded !=_fcbba &&!_adedb {if !_eg .IsNullObject (_cfdded ){_gcacf ,_agfgb ,_aaee :=_bfbc .buildOutlineTree (_cfdded ,&_agee .PdfOutlineTreeNode ,nil ,_fgabcf );if _aaee !=nil {_dbg .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",_aaee ); }else {_agee .First =_gcacf ;_agee .Last =_agfgb ;};};};_dbbgbd :=_eg .ResolveReference (_bfbbe .Get ("\u004e\u0065\u0078\u0074"));if _ ,_agcege :=_fgabcf [_dbbgbd ];_dbbgbd !=nil &&_dbbgbd !=_fcbba &&!_agcege {if !_eg .IsNullObject (_dbbgbd ){_fgdg ,_geccd ,_cbecf :=_bfbc .buildOutlineTree (_dbbgbd ,_dacda ,&_agee .PdfOutlineTreeNode ,_fgabcf ); if _cbecf !=nil {_dbg .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",_cbecf ); }else {_agee .Next =_fgdg ;return &_agee .PdfOutlineTreeNode ,_geccd ,nil ;};};};return &_agee .PdfOutlineTreeNode ,&_agee .PdfOutlineTreeNode ,nil ;};_caefb ,_becg :=_aaaad (_fcbba );if _becg !=nil {return nil ,nil ,_becg ;};_caefb .Parent =_dacda ;if _egcfcb :=_bfbbe .Get ("\u0046\u0069\u0072s\u0074"); _egcfcb !=nil {_egcfcb =_eg .ResolveReference (_egcfcb );if _ ,_afdd :=_fgabcf [_egcfcb ];_egcfcb !=nil &&_egcfcb !=_fcbba &&!_afdd {_becc :=_eg .TraceToDirectObject (_egcfcb );if _ ,_dfgc :=_becc .(*_eg .PdfObjectNull );!_dfgc &&_becc !=nil {_gcefe ,_bgeae ,_beae :=_bfbc .buildOutlineTree (_egcfcb ,&_caefb .PdfOutlineTreeNode ,nil ,_fgabcf ); if _beae !=nil {_dbg .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",_beae ); }else {_caefb .First =_gcefe ;_caefb .Last =_bgeae ;};};};};return &_caefb .PdfOutlineTreeNode ,&_caefb .PdfOutlineTreeNode ,nil ;}; // NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1]. func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_eaee :=PdfColorDeviceGray (grayVal );return &_eaee ;}; // Write writes the Appender output to io.Writer. // It can only be called once and further invocations will result in an error. func (_aeca *PdfAppender )Write (w _de .Writer )error {if _aeca ._fabe {return _bbd .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"); };_ggfc :=NewPdfWriter ();_fcff ,_edef :=_eg .GetDict (_ggfc ._afbga );if !_edef {return _bbd .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"); };_dgea ,_edef :=_fcff .Get ("\u004b\u0069\u0064\u0073").(*_eg .PdfObjectArray );if !_edef {return _bbd .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"); };_cgbca ,_edef :=_fcff .Get ("\u0043\u006f\u0075n\u0074").(*_eg .PdfObjectInteger );if !_edef {return _bbd .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"); };_eaeg :=_aeca ._acdg ._cdggc ;_dafg :=_eaeg .GetTrailer ();if _dafg ==nil {return _bbd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_eefb ,_edef :=_eg .GetIndirect (_dafg .Get ("\u0052\u006f\u006f\u0074")); if !_edef {return _bbd .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_gbce ,_edef :=_eg .GetDict (_eefb );if !_edef {_dbg .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",_eefb ,*_dafg ); return _bbd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_bfea :=range _gbce .Keys (){if _ggfc ._ebaaa .Get (_bfea )==nil {_cgdd :=_gbce .Get (_bfea );_ggfc ._ebaaa .Set (_bfea ,_cgdd );};};if _aeca ._ggcc !=nil {_ggfc ._ebaaa .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_aeca ._ggcc .ToPdfObject ()); _aeca .updateObjectsDeep (_aeca ._ggcc .ToPdfObject (),nil );};if _aeca ._aegd !=nil {_aeca .updateObjectsDeep (_aeca ._aegd .ToPdfObject (),nil );_ggfc ._ebaaa .Set ("\u0044\u0053\u0053",_aeca ._aegd .GetContainingPdfObject ());};if _ggfc ._dacab < 2{_ggfc .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5); _ggfc .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};_aeca .addNewObject (_ggfc ._ggca );_aeca .addNewObject (_ggfc ._eeeg );_gdfbf :=false ;if len (_aeca ._acdg .PageList )!=len (_aeca ._bfce ){_gdfbf =true ;}else {for _aadga :=range _aeca ._acdg .PageList {switch {case _aeca ._bfce [_aadga ]==_aeca ._acdg .PageList [_aadga ]:case _aeca ._bfce [_aadga ]==_aeca .Reader .PageList [_aadga ]:default:_gdfbf =true ; };if _gdfbf {break ;};};};if _gdfbf {_aeca .updateObjectsDeep (_ggfc ._afbga ,nil );}else {_aeca ._agaa [_ggfc ._afbga ]=struct{}{};};_ggfc ._afbga .ObjectNumber =_aeca .Reader ._debff .ObjectNumber ;_aeca ._bddd [_ggfc ._afbga ]=_aeca .Reader ._debff .ObjectNumber ; _bdec :=[]_eg .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 _ ,_dcgbf :=range _aeca ._bfce {_fdcd :=_dcgbf .ToPdfObject (); *_cgbca =*_cgbca +1;if _aecb ,_fcfa :=_fdcd .(*_eg .PdfIndirectObject );_fcfa &&_aecb .GetParser ()==_aeca ._acdg ._cdggc {_dgea .Append (&_aecb .PdfObjectReference );continue ;};if _cacfg ,_ebcf :=_eg .GetDict (_fdcd );_ebcf {_agbc ,_bgge :=_cacfg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_eg .PdfIndirectObject ); for _bgge {_dbg .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_agbc );_bdgb ,_bdgf :=_agbc .PdfObject .(*_eg .PdfObjectDictionary );if !_bdgf {return _bbd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074"); };for _ ,_bdeb :=range _bdec {_dbg .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_bdeb );if _cacfg .Get (_bdeb )!=nil {_dbg .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ; };if _bff :=_bdgb .Get (_bdeb );_bff !=nil {_dbg .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_bdeb );_cacfg .Set (_bdeb ,_bff );};};_agbc ,_bgge =_bdgb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_eg .PdfIndirectObject ); _dbg .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_bdgb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_cacfg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ggfc ._afbga );};_aeca .updateObjectsDeep (_fdcd ,nil ); _dgea .Append (_fdcd );};if _ ,_fcb :=_aeca ._gcbb .Seek (0,_de .SeekStart );_fcb !=nil {return _fcb ;};_cbga :=make (map[SignatureHandler ]_de .Writer );_gade :=_eg .MakeArray ();for _ ,_ebgf :=range _aeca ._acda {if _eecgb ,_bggd :=_eg .GetIndirect (_ebgf ); _bggd {if _ceef ,_egaa :=_eecgb .PdfObject .(*pdfSignDictionary );_egaa {_bbde :=*_ceef ._fbfb ;var _bbda error ;_cbga [_bbde ],_bbda =_bbde .NewDigest (_ceef ._bcacg );if _bbda !=nil {return _bbda ;};_gade .Append (_eg .MakeInteger (0xfffff),_eg .MakeInteger (0xfffff)); };};};if _gade .Len ()> 0{_gade .Append (_eg .MakeInteger (0xfffff),_eg .MakeInteger (0xfffff));};for _ ,_bbag :=range _aeca ._acda {if _dfaa ,_ecbc :=_eg .GetIndirect (_bbag );_ecbc {if _bebaa ,_faea :=_dfaa .PdfObject .(*pdfSignDictionary );_faea {_bebaa .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_gade ); };};};_afaa :=len (_cbga )> 0;var _gddb _de .Reader =_aeca ._gcbb ;if _afaa {_aage :=make ([]_de .Writer ,0,len (_cbga ));for _ ,_acfa :=range _cbga {_aage =append (_aage ,_acfa );};_gddb =_de .TeeReader (_aeca ._gcbb ,_de .MultiWriter (_aage ...));};_cabc ,_fbca :=_de .Copy (w ,_gddb ); if _fbca !=nil {return _fbca ;};if len (_aeca ._acda )==0{return nil ;};_ggfc ._dfgff =_cabc ;_ggfc .ObjNumOffset =_aeca ._dace ;_ggfc ._aaedc =true ;_ggfc ._adcdd =_aeca ._cdga ;_ggfc ._fcebcb =_aeca ._cfaf ;_ggfc ._cdedc =_aeca ._ade ;_ggfc ._ecae =_aeca ._acdg .PdfVersion ().Minor ; _ggfc ._cacc =_aeca ._bddd ;_bgdb :=_aeca ._fbdd .GetXrefType ();if _bgdb !=nil {_aagd :=*_bgdb ==_eg .XrefTypeObjectStream ;_ggfc ._fdgeg =&_aagd ;};_ggfc ._bccbf =map[_eg .PdfObject ]struct{}{};_ggfc ._aecabb =[]_eg .PdfObject {};for _ ,_decb :=range _aeca ._acda {if _ ,_cdbb :=_aeca ._agaa [_decb ]; _cdbb {continue ;};_ggfc .addObject (_decb );};_dfcc :=w ;if _afaa {_dfcc =_cbd .NewBuffer (nil );};if _fce :=_ggfc .Write (_dfcc );_fce !=nil {return _fce ;};if _afaa {_acfgg :=_dfcc .(*_cbd .Buffer ).Bytes ();_gagf :=_eg .MakeArray ();var _gacg []*pdfSignDictionary ; var _deafa int64 ;for _ ,_bcde :=range _ggfc ._aecabb {if _gcfd ,_acca :=_eg .GetIndirect (_bcde );_acca {if _cgab ,_eab :=_gcfd .PdfObject .(*pdfSignDictionary );_eab {_gacg =append (_gacg ,_cgab );_eaad :=_cgab ._gfefg +int64 (_cgab ._addad );_gagf .Append (_eg .MakeInteger (_deafa ),_eg .MakeInteger (_eaad -_deafa )); _deafa =_cgab ._gfefg +int64 (_cgab ._gaeef );};};};_gagf .Append (_eg .MakeInteger (_deafa ),_eg .MakeInteger (_cabc +int64 (len (_acfgg ))-_deafa ));_ebdbd :=[]byte (_gagf .WriteString ());for _ ,_bdgff :=range _gacg {_gfgab :=int (_bdgff ._gfefg -_cabc ); for _egcf :=_bdgff ._ddbef ;_egcf < _bdgff ._bfgaa ;_egcf ++{_acfgg [_gfgab +_egcf ]=' ';};_cfb :=_acfgg [_gfgab +_bdgff ._ddbef :_gfgab +_bdgff ._bfgaa ];copy (_cfb ,_ebdbd );};var _bced int ;for _ ,_eea :=range _gacg {_ebgd :=int (_eea ._gfefg -_cabc ); _beaa :=_acfgg [_bced :_ebgd +_eea ._addad ];_ddgb :=*_eea ._fbfb ;_cbga [_ddgb ].Write (_beaa );_bced =_ebgd +_eea ._gaeef ;};for _ ,_baaf :=range _gacg {_bgecf :=_acfgg [_bced :];_cgac :=*_baaf ._fbfb ;_cbga [_cgac ].Write (_bgecf );};for _ ,_fbg :=range _gacg {_fdac :=int (_fbg ._gfefg -_cabc ); _aacf :=*_fbg ._fbfb ;_gfdc :=_cbga [_aacf ];if _cddf :=_aacf .Sign (_fbg ._bcacg ,_gfdc );_cddf !=nil {return _cddf ;};_fbg ._bcacg .ByteRange =_gagf ;_fcc :=[]byte (_fbg ._bcacg .Contents .WriteString ());for _gbad :=_fbg ._ddbef ;_gbad < _fbg ._bfgaa ; _gbad ++{_acfgg [_fdac +_gbad ]=' ';};for _bgbeb :=_fbg ._addad ;_bgbeb < _fbg ._gaeef ;_bgbeb ++{_acfgg [_fdac +_bgbeb ]=' ';};_fegd :=_acfgg [_fdac +_fbg ._ddbef :_fdac +_fbg ._bfgaa ];copy (_fegd ,_ebdbd );_fegd =_acfgg [_fdac +_fbg ._addad :_fdac +_fbg ._gaeef ]; copy (_fegd ,_fcc );};_eeab :=_cbd .NewBuffer (_acfgg );_ ,_fbca =_de .Copy (w ,_eeab );if _fbca !=nil {return _fbca ;};};_aeca ._fabe =true ;return nil ;}; // ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't. func (_bcdcb *PdfFont )ToUnicode ()string {if _bcdcb .baseFields ()._fffc ==nil {return "";};return _bcdcb .baseFields ()._fffc .Name ();}; // String returns a string describing the font descriptor. func (_bgga *PdfFontDescriptor )String ()string {var _deddf []string ;if _bgga .FontName !=nil {_deddf =append (_deddf ,_bgga .FontName .String ());};if _bgga .FontFamily !=nil {_deddf =append (_deddf ,_bgga .FontFamily .String ());};if _bgga .fontFile !=nil {_deddf =append (_deddf ,_bgga .fontFile .String ()); };if _bgga ._bgcbd !=nil {_deddf =append (_deddf ,_bgga ._bgcbd .String ());};_deddf =append (_deddf ,_e .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_bgga .FontFile3 !=nil ));return _e .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_dc .Join (_deddf ,"\u002c\u0020")); };func (_ecega *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};func (_beagg *PdfWriter )copyObject (_gafc _eg .PdfObject ,_edcc map[_eg .PdfObject ]_eg .PdfObject ,_bcbeda map[_eg .PdfObject ]struct{},_eeddb bool )_eg .PdfObject {_cbfcc :=!_beagg ._aaedc &&_bcbeda !=nil ; if _bfcff ,_bbceed :=_edcc [_gafc ];_bbceed {if _cbfcc &&!_eeddb {delete (_bcbeda ,_gafc );};return _bfcff ;};_bdcge :=_gafc ;switch _bgfge :=_gafc .(type ){case *_eg .PdfObjectArray :_fffdg :=_eg .MakeArray ();_bdcge =_fffdg ;_edcc [_gafc ]=_bdcge ;for _ ,_ffadc :=range _bgfge .Elements (){_fffdg .Append (_beagg .copyObject (_ffadc ,_edcc ,_bcbeda ,_eeddb )); };case *_eg .PdfObjectStreams :_fgeac :=&_eg .PdfObjectStreams {PdfObjectReference :_bgfge .PdfObjectReference };_bdcge =_fgeac ;_edcc [_gafc ]=_bdcge ;for _ ,_dcabe :=range _bgfge .Elements (){_fgeac .Append (_beagg .copyObject (_dcabe ,_edcc ,_bcbeda ,_eeddb )); };case *_eg .PdfObjectStream :_adca :=&_eg .PdfObjectStream {Stream :_bgfge .Stream ,PdfObjectReference :_bgfge .PdfObjectReference };_bdcge =_adca ;_edcc [_gafc ]=_bdcge ;_adca .PdfObjectDictionary =_beagg .copyObject (_bgfge .PdfObjectDictionary ,_edcc ,_bcbeda ,_eeddb ).(*_eg .PdfObjectDictionary ); case *_eg .PdfObjectDictionary :var _eaaaf bool ;if _cbfcc &&!_eeddb {if _dfbcd ,_ :=_eg .GetNameVal (_bgfge .Get ("\u0054\u0079\u0070\u0065"));_dfbcd =="\u0050\u0061\u0067\u0065"{_ ,_ceab :=_beagg ._eacbf [_bgfge ];_eeddb =!_ceab ;_eaaaf =_eeddb ;};}; _bdacf :=_eg .MakeDict ();_bdcge =_bdacf ;_edcc [_gafc ]=_bdcge ;for _ ,_aacee :=range _bgfge .Keys (){_bdacf .Set (_aacee ,_beagg .copyObject (_bgfge .Get (_aacee ),_edcc ,_bcbeda ,_eeddb ));};if _eaaaf {_bdcge =_eg .MakeNull ();_eeddb =false ;};case *_eg .PdfIndirectObject :_bgfdf :=&_eg .PdfIndirectObject {PdfObjectReference :_bgfge .PdfObjectReference }; _bdcge =_bgfdf ;_edcc [_gafc ]=_bdcge ;_bgfdf .PdfObject =_beagg .copyObject (_bgfge .PdfObject ,_edcc ,_bcbeda ,_eeddb );case *_eg .PdfObjectString :_becbe :=*_bgfge ;_bdcge =&_becbe ;_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectName :_eceag :=*_bgfge ; _bdcge =&_eceag ;_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectNull :_bdcge =_eg .MakeNull ();_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectInteger :_agfef :=*_bgfge ;_bdcge =&_agfef ;_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectReference :_faec :=*_bgfge ;_bdcge =&_faec ; _edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectFloat :_fgdcc :=*_bgfge ;_bdcge =&_fgdcc ;_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectBool :_aegcd :=*_bgfge ;_bdcge =&_aegcd ;_edcc [_gafc ]=_bdcge ;case *pdfSignDictionary :_afcd :=&pdfSignDictionary {PdfObjectDictionary :_eg .MakeDict (),_fbfb :_bgfge ._fbfb ,_bcacg :_bgfge ._bcacg }; _bdcge =_afcd ;_edcc [_gafc ]=_bdcge ;for _ ,_bfbeg :=range _bgfge .Keys (){_afcd .Set (_bfbeg ,_beagg .copyObject (_bgfge .Get (_bfbeg ),_edcc ,_bcbeda ,_eeddb ));};default:_dbg .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",_gafc ); };if _cbfcc &&_eeddb {_bcbeda [_gafc ]=struct{}{};};return _bdcge ;};func _cddff (_bbafb *_eg .PdfObjectStream )(*PdfFunctionType4 ,error ){_faegb :=&PdfFunctionType4 {};_faegb ._egdfb =_bbafb ;_daddg :=_bbafb .PdfObjectDictionary ;_fcad ,_cabbe :=_eg .TraceToDirectObject (_daddg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eg .PdfObjectArray ); if !_cabbe {_dbg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bbd .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 _fcad .Len ()%2!=0{_dbg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_bbd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_aaaff ,_cccb :=_fcad .ToFloat64Array (); if _cccb !=nil {return nil ,_cccb ;};_faegb .Domain =_aaaff ;_fcad ,_cabbe =_eg .TraceToDirectObject (_daddg .Get ("\u0052\u0061\u006eg\u0065")).(*_eg .PdfObjectArray );if _cabbe {if _fcad .Len ()< 0||_fcad .Len ()%2!=0{return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065"); };_fdgf ,_cfeec :=_fcad .ToFloat64Array ();if _cfeec !=nil {return nil ,_cfeec ;};_faegb .Range =_fdgf ;};_cdgf ,_cccb :=_eg .DecodeStream (_bbafb );if _cccb !=nil {return nil ,_cccb ;};_faegb ._efgdd =_cdgf ;_bfecc :=_ea .NewPSParser (_cdgf );_adcee ,_cccb :=_bfecc .Parse (); if _cccb !=nil {return nil ,_cccb ;};_faegb .Program =_adcee ;return _faegb ,nil ;}; // PdfOutlineTreeNode contains common fields used by the outline and outline // item objects. type PdfOutlineTreeNode struct{_dbaeb interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;}; // PdfPageResources is a Page resources model. // Implements PdfModel. type PdfPageResources struct{ExtGState _eg .PdfObject ;ColorSpace _eg .PdfObject ;Pattern _eg .PdfObject ;Shading _eg .PdfObject ;XObject _eg .PdfObject ;Font _eg .PdfObject ;ProcSet _eg .PdfObject ;Properties _eg .PdfObject ;_fbcbc *_eg .PdfObjectDictionary ; _gecbc *PdfPageResourcesColorspaces ;}; // DecodeArray returns the range of color component values in CalGray colorspace. func (_bgefe *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}}; // ToPdfObject implements interface PdfModel. func (_bfg *PdfActionNamed )ToPdfObject ()_eg .PdfObject {_bfg .PdfAction .ToPdfObject ();_bab :=_bfg ._ege ;_egd :=_bab .PdfObject .(*_eg .PdfObjectDictionary );_egd .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeNamed )));_egd .SetIfNotNil ("\u004e",_bfg .N ); return _bab ;}; // GetRuneMetrics returns the character metrics for the specified rune. // A bool flag is returned to indicate whether or not the entry was found. func (_ceea pdfCIDFontType0 )GetRuneMetrics (r rune )(_ab .CharMetrics ,bool ){return _ab .CharMetrics {Wx :_ceea ._gfbab },true ;}; // C returns the value of the C component of the color. func (_bbge *PdfColorCalRGB )C ()float64 {return _bbge [2]};func _fgca (_faade _eg .PdfObject )(*PdfColorspaceCalRGB ,error ){_dbce :=NewPdfColorspaceCalRGB ();if _dbbc ,_bdaa :=_faade .(*_eg .PdfIndirectObject );_bdaa {_dbce ._gdef =_dbbc ;};_faade =_eg .TraceToDirectObject (_faade ); _fbfa ,_aaff :=_faade .(*_eg .PdfObjectArray );if !_aaff {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fbfa .Len ()!=2{return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e"); };_faade =_eg .TraceToDirectObject (_fbfa .Get (0));_eefd ,_aaff :=_faade .(*_eg .PdfObjectName );if !_aaff {return nil ,_e .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 *_eefd !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_e .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_faade =_eg .TraceToDirectObject (_fbfa .Get (1)); _gffd ,_aaff :=_faade .(*_eg .PdfObjectDictionary );if !_aaff {return nil ,_e .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");}; _faade =_gffd .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_faade =_eg .TraceToDirectObject (_faade );_fbed ,_aaff :=_faade .(*_eg .PdfObjectArray );if !_aaff {return nil ,_e .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 _fbed .Len ()!=3{return nil ,_e .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");};_agbf ,_eeaf :=_fbed .GetAsFloat64Slice (); if _eeaf !=nil {return nil ,_eeaf ;};_dbce .WhitePoint =_agbf ;_faade =_gffd .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _faade !=nil {_faade =_eg .TraceToDirectObject (_faade );_bdba ,_cbdg :=_faade .(*_eg .PdfObjectArray ); if !_cbdg {return nil ,_e .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 _bdba .Len ()!=3{return nil ,_e .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"); };_agfg ,_bdbd :=_bdba .GetAsFloat64Slice ();if _bdbd !=nil {return nil ,_bdbd ;};_dbce .BlackPoint =_agfg ;};_faade =_gffd .Get ("\u0047\u0061\u006dm\u0061");if _faade !=nil {_faade =_eg .TraceToDirectObject (_faade );_cfcb ,_ebeb :=_faade .(*_eg .PdfObjectArray ); if !_ebeb {return nil ,_e .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _cfcb .Len ()!=3{return nil ,_e .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079"); };_feab ,_dcgg :=_cfcb .GetAsFloat64Slice ();if _dcgg !=nil {return nil ,_dcgg ;};_dbce .Gamma =_feab ;};_faade =_gffd .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _faade !=nil {_faade =_eg .TraceToDirectObject (_faade );_eeeb ,_ebcc :=_faade .(*_eg .PdfObjectArray ); if !_ebcc {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _eeeb .Len ()!=9{_dbg .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_eeeb .String ()); return nil ,_e .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");};_fgbc ,_gfbad :=_eeeb .GetAsFloat64Slice ();if _gfbad !=nil {return nil ,_gfbad ; };_dbce .Matrix =_fgbc ;};return _dbce ,nil ;}; // PdfAnnotationRichMedia represents Rich Media annotations. type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _eg .PdfObject ;RichMediaContent _eg .PdfObject ;}; // 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 (_aadgc *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_afdg ,_ebbe :=color .(*PdfColorPattern );if !_ebbe {_dbg .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 _afdg .Color ==nil {return color ,nil ;};if _aadgc .UnderlyingCS ==nil {return nil ,_bbd .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");}; return _aadgc .UnderlyingCS .ColorToRGB (_afdg .Color );}; // XObjectForm (Table 95 in 8.10.2). type XObjectForm struct{Filter _eg .StreamEncoder ;FormType _eg .PdfObject ;BBox _eg .PdfObject ;Matrix _eg .PdfObject ;Resources *PdfPageResources ;Group _eg .PdfObject ;Ref _eg .PdfObject ;MetaData _eg .PdfObject ;PieceInfo _eg .PdfObject ;LastModified _eg .PdfObject ; StructParent _eg .PdfObject ;StructParents _eg .PdfObject ;OPI _eg .PdfObject ;OC _eg .PdfObject ;Name _eg .PdfObject ; // Stream data. Stream []byte ;_cdcaf *_eg .PdfObjectStream ;}; // SetPdfAuthor sets the Author attribute of the output PDF. func SetPdfAuthor (author string ){_egbeg .Lock ();defer _egbeg .Unlock ();_dfdfdc =author }; // PdfAnnotationPopup represents Popup annotations. // (Section 12.5.6.14). type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _eg .PdfObject ;Open _eg .PdfObject ;}; // 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 (_aageg _de .Reader )(*Image ,error ); // NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure. NewImageFromGoImage (_gcab _ec .Image )(*Image ,error ); // NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure. NewGrayImageFromGoImage (_egaeb _ec .Image )(*Image ,error ); // Compress an image. Compress (_febce *Image ,_fddda int64 )(*Image ,error );}; // 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 (_bgbfeb *PdfFont )SubsetRegistered ()error {switch _agdd :=_bgbfeb ._gdcab .(type ){case *pdfFontType0 :_eecb :=_agdd .subsetRegistered ();if _eecb !=nil {_dbg .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_eecb ); return _eecb ;};if _agdd ._becfa !=nil {if _agdd ._eceba !=nil {_agdd ._eceba .ToPdfObject ();};_agdd .ToPdfObject ();};default:_dbg .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",_agdd ); };return nil ;};func _fgfa (_cabg *_eg .PdfObjectDictionary )(*PdfFieldChoice ,error ){_eega :=&PdfFieldChoice {};_eega .Opt ,_ =_eg .GetArray (_cabg .Get ("\u004f\u0070\u0074"));_eega .TI ,_ =_eg .GetInt (_cabg .Get ("\u0054\u0049"));_eega .I ,_ =_eg .GetArray (_cabg .Get ("\u0049")); return _eega ,nil ;};func (_acce *PdfReader )newPdfAnnotationSoundFromDict (_ffa *_eg .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_fgac :=PdfAnnotationSound {};_abba ,_bgd :=_acce .newPdfAnnotationMarkupFromDict (_ffa );if _bgd !=nil {return nil ,_bgd ; };_fgac .PdfAnnotationMarkup =_abba ;_fgac .Name =_ffa .Get ("\u004e\u0061\u006d\u0065");_fgac .Sound =_ffa .Get ("\u0053\u006f\u0075n\u0064");return &_fgac ,nil ;};type fontFile struct{_dadg string ;_gecf string ;_feffd _cec .SimpleEncoder ;}; // 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 *_eg .PdfObjectArray ;ExtGState _eg .PdfObject ;}; // GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object // containing the field dictionary. func (_begf *PdfField )GetContainingPdfObject ()_eg .PdfObject {return _begf ._afbe };func (_cdf *PdfReader )newPdfActionGoTo3DViewFromDict (_cag *_eg .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_cag .Get ("\u0054\u0041"),V :_cag .Get ("\u0056")},nil ; };func _egbde (_gcadf *_ff .ImageBase )(_caaaf Image ){_caaaf .Width =int64 (_gcadf .Width );_caaaf .Height =int64 (_gcadf .Height );_caaaf .BitsPerComponent =int64 (_gcadf .BitsPerComponent );_caaaf .ColorComponents =_gcadf .ColorComponents ;_caaaf .Data =_gcadf .Data ; _caaaf ._aaeac =_gcadf .Decode ;_caaaf ._fcec =_gcadf .Alpha ;return _caaaf ;}; // Insert adds an outline item as a child of the current outline item, // at the specified index. func (_cecfa *OutlineItem )Insert (index uint ,item *OutlineItem ){_afca :=uint (len (_cecfa .Entries ));if index > _afca {index =_afca ;};_cecfa .Entries =append (_cecfa .Entries [:index ],append ([]*OutlineItem {item },_cecfa .Entries [index :]...)...); }; // NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing. func NewReaderForText (txt string )*PdfReader {return &PdfReader {_gadge :map[_eg .PdfObject ]struct{}{},_gced :_dbbge (),_cdggc :_eg .NewParserFromString (txt )};};func (_egdfbc *PdfWriter )addObject (_dfbedd _eg .PdfObject )bool {_ffbccd :=_egdfbc .hasObject (_dfbedd ); if !_ffbccd {_aceeb :=_eg .ResolveReferencesDeep (_dfbedd ,_egdfbc ._aeceg );if _aceeb !=nil {_dbg .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_aceeb );};_egdfbc ._aecabb =append (_egdfbc ._aecabb ,_dfbedd ); _egdfbc ._bccbf [_dfbedd ]=struct{}{};return true ;};return false ;};type pdfFontSimple struct{fontCommon ;_acfb *_eg .PdfIndirectObject ;_baga map[_cec .CharCode ]float64 ;_gccbc _cec .TextEncoder ;_fcgd _cec .TextEncoder ;_ggce *PdfFontDescriptor ; // Encoding is subject to limitations that are described in 9.6.6, "Character Encoding". // BaseFont is derived differently. FirstChar _eg .PdfObject ;LastChar _eg .PdfObject ;Widths _eg .PdfObject ;Encoding _eg .PdfObject ;_edgae *_ab .RuneCharSafeMap ;}; // ToPdfObject implements interface PdfModel. func (_fdd *PdfActionThread )ToPdfObject ()_eg .PdfObject {_fdd .PdfAction .ToPdfObject ();_fde :=_fdd ._ege ;_ada :=_fde .PdfObject .(*_eg .PdfObjectDictionary );_ada .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeThread )));if _fdd .F !=nil {_ada .Set ("\u0046",_fdd .F .ToPdfObject ()); };_ada .SetIfNotNil ("\u0044",_fdd .D );_ada .SetIfNotNil ("\u0042",_fdd .B );return _fde ;}; // 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 (_dbfe *Image )GetSamples ()[]uint32 {_cgffb :=_ccg .ResampleBytes (_dbfe .Data ,int (_dbfe .BitsPerComponent ));if _dbfe .BitsPerComponent < 8{_cgffb =_dbfe .samplesTrimPadding (_cgffb );};_ebbed :=int (_dbfe .Width )*int (_dbfe .Height )*_dbfe .ColorComponents ; if len (_cgffb )< _ebbed {_dbg .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 (_cgffb ),_ebbed ); return _cgffb ;}else if len (_cgffb )> _ebbed {_dbg .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 (_cgffb ),_ebbed ); _cgffb =_cgffb [:_ebbed ];};return _cgffb ;}; // PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394). type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_cbeg _eg .PdfObject ;}; // PdfAnnotation3D represents 3D annotations. // (Section 13.6.2). type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _eg .PdfObject ;T3DV _eg .PdfObject ;T3DA _eg .PdfObject ;T3DI _eg .PdfObject ;T3DB _eg .PdfObject ;}; // DefaultFont returns the default font, which is currently the built in Helvetica. func DefaultFont ()*PdfFont {_aafg ,_bfebg :=_ab .NewStdFontByName (HelveticaName );if !_bfebg {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"); };_dfebf :=_gecc (_aafg );return &PdfFont {_gdcab :&_dfebf };}; // 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 (_efaa *PdfFont )GetCharMetrics (code _cec .CharCode )(CharMetrics ,bool ){var _fafb _ab .CharMetrics ;switch _gcag :=_efaa ._gdcab .(type ){case *pdfFontSimple :if _ebea ,_bbdga :=_gcag .GetCharMetrics (code );_bbdga {return _ebea ,_bbdga ;};case *pdfFontType0 :if _beaag ,_fbeb :=_gcag .GetCharMetrics (code ); _fbeb {return _beaag ,_fbeb ;};case *pdfCIDFontType0 :if _dacb ,_dddcc :=_gcag .GetCharMetrics (code );_dddcc {return _dacb ,_dddcc ;};case *pdfCIDFontType2 :if _bfced ,_cebd :=_gcag .GetCharMetrics (code );_cebd {return _bfced ,_cebd ;};case *pdfFontType3 :if _cegeg ,_acee :=_gcag .GetCharMetrics (code ); _acee {return _cegeg ,_acee ;};default:_dbg .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",_efaa ._gdcab ); return _fafb ,false ;};if _gege ,_caea :=_efaa .GetFontDescriptor ();_caea ==nil &&_gege !=nil {return _ab .CharMetrics {Wx :_gege ._afce },true ;};_dbg .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",_efaa ); return _fafb ,false ;}; // GetEncryptionMethod returns a descriptive information string about the encryption method used. func (_aeccf *PdfReader )GetEncryptionMethod ()string {_bebge :=_aeccf ._cdggc .GetCrypter ();return _bebge .String ();}; // ToPdfObject convert PdfInfo to pdf object. func (_dbcag *PdfInfo )ToPdfObject ()_eg .PdfObject {_dcgbb :=_eg .MakeDict ();_dcgbb .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_dbcag .Title );_dcgbb .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_dbcag .Author );_dcgbb .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_dbcag .Subject ); _dcgbb .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_dbcag .Keywords );_dcgbb .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_dbcag .Creator );_dcgbb .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_dbcag .Producer ); _dcgbb .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_dbcag .Trapped );if _dbcag .CreationDate !=nil {_dcgbb .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_dbcag .CreationDate .ToPdfObject ());};if _dbcag .ModifiedDate !=nil {_dcgbb .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_dbcag .ModifiedDate .ToPdfObject ()); };for _ ,_dggf :=range _dbcag ._fbfgb .Keys (){_dcgbb .SetIfNotNil (_dggf ,_dbcag ._fbfgb .Get (_dggf ));};return _dcgbb ;}; // DecodeArray returns the range of color component values in the ICCBased colorspace. func (_bggbc *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _bggbc .Range }; // GetSubFilter returns SubFilter value or empty string. func (_gbfcb *pdfSignDictionary )GetSubFilter ()string {_aacfef :=_gbfcb .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _aacfef ==nil {return "";};if _ebdfb ,_aegb :=_eg .GetNameVal (_aacfef );_aegb {return _ebdfb ;};return "";};func (_gbcab *PdfReader )newPdfOutlineItemFromIndirectObject (_aaeg *_eg .PdfIndirectObject )(*PdfOutlineItem ,error ){_eabf ,_febcb :=_aaeg .PdfObject .(*_eg .PdfObjectDictionary ); if !_febcb {return nil ,_e .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");};_gbac :=NewPdfOutlineItem ();_afcab :=_eabf .Get ("\u0054\u0069\u0074l\u0065"); if _afcab ==nil {return nil ,_e .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"); };_bedb ,_fccbd :=_eg .GetString (_afcab );if !_fccbd {return nil ,_e .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_afcab );};_gbac .Title =_bedb ;if _gbegg :=_eabf .Get ("\u0043\u006f\u0075n\u0074"); _gbegg !=nil {_faeee ,_gfcg :=_gbegg .(*_eg .PdfObjectInteger );if !_gfcg {return nil ,_e .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_gbegg );};_dbebf :=int64 (*_faeee ); _gbac .Count =&_dbebf ;};if _gcdag :=_eabf .Get ("\u0044\u0065\u0073\u0074");_gcdag !=nil {_gbac .Dest =_eg .ResolveReference (_gcdag );if !_gbcab ._bebe {_dcgeb :=_gbcab .traverseObjectData (_gbac .Dest );if _dcgeb !=nil {return nil ,_dcgeb ;};};};if _edbd :=_eabf .Get ("\u0041"); _edbd !=nil {_gbac .A =_eg .ResolveReference (_edbd );if !_gbcab ._bebe {_baef :=_gbcab .traverseObjectData (_gbac .A );if _baef !=nil {return nil ,_baef ;};};};if _aeae :=_eabf .Get ("\u0053\u0045");_aeae !=nil {_gbac .SE =nil ;};if _aecab :=_eabf .Get ("\u0043"); _aecab !=nil {_gbac .C =_eg .ResolveReference (_aecab );};if _feaa :=_eabf .Get ("\u0046");_feaa !=nil {_gbac .F =_eg .ResolveReference (_feaa );};return _gbac ,nil ;}; // ValidateSignatures validates digital signatures in the document. func (_fcaab *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _fcaab .AcroForm ==nil {return nil ,nil ;};if _fcaab .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_cbafb *PdfSignature ; _cgcga *PdfField ;_dgdeb SignatureHandler ;};var _geegc []*sigFieldPair ;for _ ,_efada :=range _fcaab .AcroForm .AllFields (){if _efada .V ==nil {continue ;};if _faegg ,_eagab :=_eg .GetDict (_efada .V );_eagab {if _dcfgc ,_aabeb :=_eg .GetNameVal (_faegg .Get ("\u0054\u0079\u0070\u0065")); _aabeb &&_dcfgc =="\u0053\u0069\u0067"{_bdgbg ,_ffced :=_eg .GetIndirect (_efada .V );if !_ffced {_dbg .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 ;};_dcce ,_aaafff :=_fcaab .newPdfSignatureFromIndirect (_bdgbg );if _aaafff !=nil {return nil ,_aaafff ;};var _fdedf SignatureHandler ;for _ ,_fggbg :=range handlers {if _fggbg .IsApplicable (_dcce ){_fdedf =_fggbg ;break ;};}; _geegc =append (_geegc ,&sigFieldPair {_cbafb :_dcce ,_cgcga :_efada ,_dgdeb :_fdedf });};};};var _fefbb []SignatureValidationResult ;for _ ,_ggece :=range _geegc {_acdcg :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_ggece ._cgcga }}; if _ggece ._dgdeb ==nil {_acdcg .Errors =append (_acdcg .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");_fefbb =append (_fefbb ,_acdcg );continue ;};_abebef ,_eaeeb :=_ggece ._dgdeb .NewDigest (_ggece ._cbafb ); if _eaeeb !=nil {_acdcg .Errors =append (_acdcg .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_eaeeb .Error ());_fefbb =append (_fefbb ,_acdcg );continue ;};_aegga :=_ggece ._cbafb .ByteRange ;if _aegga ==nil {_acdcg .Errors =append (_acdcg .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074"); _fefbb =append (_fefbb ,_acdcg );continue ;};for _cegag :=0;_cegag < _aegga .Len ();_cegag =_cegag +2{_cfabc ,_ :=_eg .GetNumberAsInt64 (_aegga .Get (_cegag ));_bffef ,_ :=_eg .GetIntVal (_aegga .Get (_cegag +1));if _ ,_dcbcff :=_fcaab ._addac .Seek (_cfabc ,_de .SeekStart ); _dcbcff !=nil {return nil ,_dcbcff ;};_dcag :=make ([]byte ,_bffef );if _ ,_eefddf :=_fcaab ._addac .Read (_dcag );_eefddf !=nil {return nil ,_eefddf ;};_abebef .Write (_dcag );};_gbedb ,_eaeeb :=_ggece ._dgdeb .Validate (_ggece ._cbafb ,_abebef );if _eaeeb !=nil {return nil ,_eaeeb ; };_gbedb .Name =_ggece ._cbafb .Name .Decoded ();_gbedb .Reason =_ggece ._cbafb .Reason .Decoded ();if _ggece ._cbafb .M !=nil {_fdded ,_fcdg :=NewPdfDate (_ggece ._cbafb .M .String ());if _fcdg !=nil {_gbedb .Errors =append (_gbedb .Errors ,_fcdg .Error ()); continue ;};_gbedb .Date =_fdded ;};_gbedb .ContactInfo =_ggece ._cbafb .ContactInfo .Decoded ();_gbedb .Location =_ggece ._cbafb .Location .Decoded ();_gbedb .Fields =_acdcg .Fields ;_fefbb =append (_fefbb ,_gbedb );};return _fefbb ,nil ;}; // GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject. func (_eecde *PdfPage )GetContainingPdfObject ()_eg .PdfObject {return _eecde ._caaef };func _egbe (_bacg ,_addca string )string {if _dc .Contains (_bacg ,"\u002b"){_ffcc :=_dc .Split (_bacg ,"\u002b");if len (_ffcc )==2{_bacg =_ffcc [1];};};return _addca +"\u002b"+_bacg ; }; // PdfAnnotationSound represents Sound annotations. // (Section 12.5.6.16). type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _eg .PdfObject ;Name _eg .PdfObject ;};func (_dcbc *PdfAppender )mergeResources (_dea ,_fadg _eg .PdfObject ,_efdc map[_eg .PdfObjectName ]_eg .PdfObjectName )_eg .PdfObject {if _fadg ==nil &&_dea ==nil {return nil ; };if _fadg ==nil {return _dea ;};_bcfc ,_gdcc :=_eg .GetDict (_fadg );if !_gdcc {return _dea ;};if _dea ==nil {_aegg :=_eg .MakeDict ();_aegg .Merge (_bcfc );return _fadg ;};_egfe ,_gdcc :=_eg .GetDict (_dea );if !_gdcc {_dbg .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"); _egfe =_eg .MakeDict ();};for _ ,_dedg :=range _bcfc .Keys (){if _deaf ,_ebgg :=_efdc [_dedg ];_ebgg {_egfe .Set (_deaf ,_bcfc .Get (_dedg ));}else {_egfe .Set (_dedg ,_bcfc .Get (_dedg ));};};return _egfe ;}; // 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 (_faegf []_eg .PdfObject )([]_eg .PdfObject ,error );};func _cfabd ()string {_egbeg .Lock ();defer _egbeg .Unlock ();_dcagg :=_dd .GetLicenseKey ();if len (_gdagd )> 0&&(_dcagg .IsLicensed ()||_dfgac ){return _gdagd ;}; return _e .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",_abbg (),_dcagg .TypeToString ());}; // ToPdfObject implements interface PdfModel. func (_fdda *PdfAnnotationLine )ToPdfObject ()_eg .PdfObject {_fdda .PdfAnnotation .ToPdfObject ();_cbfe :=_fdda ._gag ;_aaced :=_cbfe .PdfObject .(*_eg .PdfObjectDictionary );_fdda .PdfAnnotationMarkup .appendToPdfDictionary (_aaced );_aaced .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u004c\u0069\u006e\u0065")); _aaced .SetIfNotNil ("\u004c",_fdda .L );_aaced .SetIfNotNil ("\u0042\u0053",_fdda .BS );_aaced .SetIfNotNil ("\u004c\u0045",_fdda .LE );_aaced .SetIfNotNil ("\u0049\u0043",_fdda .IC );_aaced .SetIfNotNil ("\u004c\u004c",_fdda .LL );_aaced .SetIfNotNil ("\u004c\u004c\u0045",_fdda .LLE ); _aaced .SetIfNotNil ("\u0043\u0061\u0070",_fdda .Cap );_aaced .SetIfNotNil ("\u0049\u0054",_fdda .IT );_aaced .SetIfNotNil ("\u004c\u004c\u004f",_fdda .LLO );_aaced .SetIfNotNil ("\u0043\u0050",_fdda .CP );_aaced .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_fdda .Measure ); _aaced .SetIfNotNil ("\u0043\u004f",_fdda .CO );return _cbfe ;}; // NewPdfColorspaceLab returns a new Lab colorspace object. func NewPdfColorspaceLab ()*PdfColorspaceLab {_faeg :=&PdfColorspaceLab {};_faeg .BlackPoint =[]float64 {0.0,0.0,0.0};_faeg .Range =[]float64 {-100,100,-100,100};return _faeg ;}; // A returns the value of the A component of the color. func (_fgge *PdfColorLab )A ()float64 {return _fgge [1]}; // ToPdfObject returns the PDF representation of the colorspace. func (_egfa *PdfColorspaceSpecialSeparation )ToPdfObject ()_eg .PdfObject {_gbfc :=_eg .MakeArray (_eg .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_gbfc .Append (_egfa .ColorantName );_gbfc .Append (_egfa .AlternateSpace .ToPdfObject ()); _gbfc .Append (_egfa .TintTransform .ToPdfObject ());if _egfa ._cegff !=nil {_egfa ._cegff .PdfObject =_gbfc ;return _egfa ._cegff ;};return _gbfc ;};func (_fbdgb *PdfReader )newPdfAcroFormFromDict (_fage *_eg .PdfIndirectObject ,_fefa *_eg .PdfObjectDictionary )(*PdfAcroForm ,error ){_ffbaf :=NewPdfAcroForm (); if _fage !=nil {_ffbaf ._edeaf =_fage ;_fage .PdfObject =_eg .MakeDict ();};if _dfgb :=_fefa .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_dfgb !=nil {_bgfe ,_adac :=_eg .GetArray (_dfgb );if !_adac {return nil ,_e .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_dfgb ); };var _ddfd []*PdfField ;for _ ,_cceeb :=range _bgfe .Elements (){_gbdg ,_cedgg :=_eg .GetIndirect (_cceeb );if !_cedgg {if _ ,_gedc :=_cceeb .(*_eg .PdfObjectNull );_gedc {_dbg .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 ;};_dbg .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",_cceeb ); return nil ,_e .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");};_afbfff ,_bdgad :=_fbdgb .newPdfFieldFromIndirectObject (_gbdg ,nil ); if _bdgad !=nil {return nil ,_bdgad ;};_dbg .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_afbfff );_ddfd =append (_ddfd ,_afbfff );};_ffbaf .Fields =&_ddfd ;};if _aaec :=_fefa .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073"); _aaec !=nil {_deedc ,_cfge :=_eg .GetBool (_aaec );if _cfge {_ffbaf .NeedAppearances =_deedc ;}else {_dbg .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",_aaec ); };};if _ggbcc :=_fefa .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_ggbcc !=nil {_ecdba ,_cdef :=_eg .GetInt (_ggbcc );if _cdef {_ffbaf .SigFlags =_ecdba ;}else {_dbg .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",_ggbcc ); };};if _ffbdcc :=_fefa .Get ("\u0043\u004f");_ffbdcc !=nil {_dfbd ,_fbbbg :=_eg .GetArray (_ffbdcc );if _fbbbg {_ffbaf .CO =_dfbd ;}else {_dbg .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",_ffbdcc ); };};if _ddgd :=_fefa .Get ("\u0044\u0052");_ddgd !=nil {if _efbe ,_edfcd :=_eg .GetDict (_ddgd );_edfcd {_dfdfd ,_aegc :=NewPdfPageResourcesFromDict (_efbe );if _aegc !=nil {_dbg .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_aegc ); return nil ,_aegc ;};_ffbaf .DR =_dfdfd ;}else {_dbg .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",_ddgd );};};if _cdag :=_fefa .Get ("\u0044\u0041"); _cdag !=nil {_gfcfg ,_dcdfe :=_eg .GetString (_cdag );if _dcdfe {_ffbaf .DA =_gfcfg ;}else {_dbg .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",_cdag ); };};if _fafbb :=_fefa .Get ("\u0051");_fafbb !=nil {_fcdaa ,_abggg :=_eg .GetInt (_fafbb );if _abggg {_ffbaf .Q =_fcdaa ;}else {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_fafbb ); };};if _gdegc :=_fefa .Get ("\u0058\u0046\u0041");_gdegc !=nil {_ffbaf .XFA =_gdegc ;};_ffbaf .ToPdfObject ();return _ffbaf ,nil ;}; // Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly. func (_ggcf *PdfRectangle )Normalize (){if _ggcf .Llx > _ggcf .Urx {_ggcf .Llx ,_ggcf .Urx =_ggcf .Urx ,_ggcf .Llx ;};if _ggcf .Lly > _ggcf .Ury {_ggcf .Lly ,_ggcf .Ury =_ggcf .Ury ,_ggcf .Lly ;};}; // WriteString outputs the object as it is to be written to file. func (_egcd *pdfSignDictionary )WriteString ()string {_egcd ._addad =0;_egcd ._gaeef =0;_egcd ._ddbef =0;_egcd ._bfgaa =0;_dgaaf :=_cbd .NewBuffer (nil );_dgaaf .WriteString ("\u003c\u003c");for _ ,_acfdc :=range _egcd .Keys (){_fdggf :=_egcd .Get (_acfdc ); switch _acfdc {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_dgaaf .WriteString (_acfdc .WriteString ());_dgaaf .WriteString ("\u0020");_egcd ._ddbef =_dgaaf .Len ();_dgaaf .WriteString (_fdggf .WriteString ());_dgaaf .WriteString ("\u0020");_egcd ._bfgaa =_dgaaf .Len ()-1; case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_dgaaf .WriteString (_acfdc .WriteString ());_dgaaf .WriteString ("\u0020");_egcd ._addad =_dgaaf .Len ();_dgaaf .WriteString (_fdggf .WriteString ());_dgaaf .WriteString ("\u0020");_egcd ._gaeef =_dgaaf .Len ()-1; default:_dgaaf .WriteString (_acfdc .WriteString ());_dgaaf .WriteString ("\u0020");_dgaaf .WriteString (_fdggf .WriteString ());};};_dgaaf .WriteString ("\u003e\u003e");return _dgaaf .String ();}; // ToPdfObject implements interface PdfModel. func (_bcc *PdfActionLaunch )ToPdfObject ()_eg .PdfObject {_bcc .PdfAction .ToPdfObject ();_aacb :=_bcc ._ege ;_ddf :=_aacb .PdfObject .(*_eg .PdfObjectDictionary );_ddf .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeLaunch )));if _bcc .F !=nil {_ddf .Set ("\u0046",_bcc .F .ToPdfObject ()); };_ddf .SetIfNotNil ("\u0057\u0069\u006e",_bcc .Win );_ddf .SetIfNotNil ("\u004d\u0061\u0063",_bcc .Mac );_ddf .SetIfNotNil ("\u0055\u006e\u0069\u0078",_bcc .Unix );_ddf .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_bcc .NewWindow );return _aacb ; }; // Encoder returns the font's text encoder. func (_fcfeg pdfCIDFontType2 )Encoder ()_cec .TextEncoder {return _fcfeg ._befc }; // PdfActionMovie represents a movie action. type PdfActionMovie struct{*PdfAction ;Annotation _eg .PdfObject ;T _eg .PdfObject ;Operation _eg .PdfObject ;}; // NewPdfActionGoTo returns a new "go to" action. func NewPdfActionGoTo ()*PdfActionGoTo {_fd :=NewPdfAction ();_be :=&PdfActionGoTo {};_be .PdfAction =_fd ;_fd .SetContext (_be );return _be ;};func (_dfce *PdfReader )newPdfActionSubmitFormFromDict (_cafe *_eg .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_degb ,_gfab :=_gbbe (_cafe .Get ("\u0046")); if _gfab !=nil {return nil ,_gfab ;};return &PdfActionSubmitForm {F :_degb ,Fields :_cafe .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_cafe .Get ("\u0046\u006c\u0061g\u0073")},nil ;}; // Fill populates `form` with values provided by `provider`. func (_dfbed *PdfAcroForm )Fill (provider FieldValueProvider )error {return _dfbed .fill (provider ,nil )}; // NewPdfAnnotationCaret returns a new caret annotation. func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_fef :=NewPdfAnnotation ();_fea :=&PdfAnnotationCaret {};_fea .PdfAnnotation =_fef ;_fea .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fef .SetContext (_fea );return _fea ;}; // SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field. func (_fdde *PdfField )SetContext (ctx PdfModel ){_fdde ._ceag =ctx };type pdfFontType0 struct{fontCommon ;_becfa *_eg .PdfIndirectObject ;_eceba _cec .TextEncoder ;Encoding _eg .PdfObject ;DescendantFont *PdfFont ;_adad *_aff .CMap ;}; // Flags returns the field flags for the field accounting for any inherited flags. func (_bcbb *PdfField )Flags ()FieldFlag {var _bbbc FieldFlag ;_ecgfa ,_gcaaf :=_bcbb .inherit (func (_fbbf *PdfField )bool {if _fbbf .Ff !=nil {_bbbc =FieldFlag (*_bcbb .Ff );return true ;};return false ;});if _gcaaf !=nil {_dbg .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",_gcaaf ); };if !_ecgfa {_dbg .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 _bbbc ;};func _bbafc (_gfde *PdfField ,_fagg _eg .PdfObject ){for _ ,_aebge :=range _gfde .Annotations {_aebge .AS =_fagg ; _aebge .ToPdfObject ();};}; // GetContainingPdfObject returns the container of the image object (indirect object). func (_ggfdc *XObjectImage )GetContainingPdfObject ()_eg .PdfObject {return _ggfdc ._dcdb };func _eagd (_dfebd _eg .PdfObject ,_bfgc *fontCommon )(*_aff .CMap ,error ){_abgbe ,_eeaab :=_eg .GetStream (_dfebd );if !_eeaab {_dbg .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",_dfebd ); return nil ,_eg .ErrTypeError ;};_aefdb ,_caac :=_eg .DecodeStream (_abgbe );if _caac !=nil {return nil ,_caac ;};_bebaaf ,_caac :=_aff .LoadCmapFromData (_aefdb ,!_bfgc .isCIDFont ());if _caac !=nil {_dbg .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",_abgbe .ObjectNumber ,_caac ); };return _bebaaf ,_caac ;}; // PdfActionGoToE represents a GoToE action. type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _eg .PdfObject ;NewWindow _eg .PdfObject ;T _eg .PdfObject ;};func _gdea (_egebc _eg .PdfObject )(*PdfFunctionType3 ,error ){_ccfg :=&PdfFunctionType3 {};var _dcacg *_eg .PdfObjectDictionary ;if _deec ,_gcddf :=_egebc .(*_eg .PdfIndirectObject ); _gcddf {_bgged ,_beabf :=_deec .PdfObject .(*_eg .PdfObjectDictionary );if !_beabf {return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ccfg ._gfddd =_deec ;_dcacg =_bgged ;}else if _fead ,_eefge :=_egebc .(*_eg .PdfObjectDictionary ); _eefge {_dcacg =_fead ;}else {return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gaagc ,_gcdga :=_eg .TraceToDirectObject (_dcacg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eg .PdfObjectArray ); if !_gcdga {_dbg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bbd .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 _gaagc .Len ()!=2{_dbg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_bbd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_fbbdg ,_fgabf :=_gaagc .ToFloat64Array (); if _fgabf !=nil {return nil ,_fgabf ;};_ccfg .Domain =_fbbdg ;_gaagc ,_gcdga =_eg .TraceToDirectObject (_dcacg .Get ("\u0052\u0061\u006eg\u0065")).(*_eg .PdfObjectArray );if _gcdga {if _gaagc .Len ()< 0||_gaagc .Len ()%2!=0{return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065"); };_afbfd ,_dbagg :=_gaagc .ToFloat64Array ();if _dbagg !=nil {return nil ,_dbagg ;};_ccfg .Range =_afbfd ;};_gaagc ,_gcdga =_eg .TraceToDirectObject (_dcacg .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_eg .PdfObjectArray );if !_gcdga {_dbg .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 ,_bbd .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");};_ccfg .Functions =[]PdfFunction {}; for _ ,_afefg :=range _gaagc .Elements (){_begb ,_abcbb :=_dgbga (_afefg );if _abcbb !=nil {return nil ,_abcbb ;};_ccfg .Functions =append (_ccfg .Functions ,_begb );};_gaagc ,_gcdga =_eg .TraceToDirectObject (_dcacg .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_eg .PdfObjectArray ); if !_gcdga {_dbg .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bbd .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"); };_ffggc ,_fgabf :=_gaagc .ToFloat64Array ();if _fgabf !=nil {return nil ,_fgabf ;};_ccfg .Bounds =_ffggc ;if len (_ccfg .Bounds )!=len (_ccfg .Functions )-1{_dbg .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 (_ccfg .Bounds ),len (_ccfg .Functions )); return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gaagc ,_gcdga =_eg .TraceToDirectObject (_dcacg .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_eg .PdfObjectArray );if !_gcdga {_dbg .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064"); return nil ,_bbd .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");};_gcbce ,_fgabf :=_gaagc .ToFloat64Array (); if _fgabf !=nil {return nil ,_fgabf ;};_ccfg .Encode =_gcbce ;if len (_ccfg .Encode )!=2*len (_ccfg .Functions ){_dbg .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 (_ccfg .Encode ),len (_ccfg .Functions )); return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _ccfg ,nil ;}; // SetVersion sets the PDF version of the output file. func (_fddcbg *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_fddcbg ._dacab =majorVersion ;_fddcbg ._ecae =minorVersion ;}; // SetReason sets the `Reason` field of the signature. func (_bacgd *PdfSignature )SetReason (reason string ){_bacgd .Reason =_eg .MakeString (reason )}; // PdfAnnotationStrikeOut represents StrikeOut annotations. // (Section 12.5.6.10). type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eg .PdfObject ;};func _egdg (_bdca *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_bdca }}; // 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{_cdggc *_eg .PdfParser ;_faafd _eg .PdfObject ;_debff *_eg .PdfIndirectObject ;_faacgc *_eg .PdfObjectDictionary ;_dfff []*_eg .PdfIndirectObject ;PageList []*PdfPage ;_abddb int ;_efdg *_eg .PdfObjectDictionary ;_ebgea *PdfOutlineTreeNode ; AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_gced *modelManager ;_bebe bool ;_gadge map[_eg .PdfObject ]struct{};_addac _de .ReadSeeker ;_ebcgb string ;};func _bfbaf (_dfeefc *_eg .PdfObjectDictionary )(*PdfShadingType2 ,error ){_cacdf :=PdfShadingType2 {}; _acebb :=_dfeefc .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _acebb ==nil {_dbg .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 ;};_gbccg ,_feecb :=_acebb .(*_eg .PdfObjectArray );if !_feecb {_dbg .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",_acebb ); return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _gbccg .Len ()!=4{_dbg .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",_gbccg .Len ()); return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_cacdf .Coords =_gbccg ;if _feaea :=_dfeefc .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_feaea !=nil {_feaea =_eg .TraceToDirectObject (_feaea ); _dgfg ,_faedd :=_feaea .(*_eg .PdfObjectArray );if !_faedd {_dbg .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",_feaea );return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072"); };_cacdf .Domain =_dgfg ;};_acebb =_dfeefc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _acebb ==nil {_dbg .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 ;};_cacdf .Function =[]PdfFunction {};if _fgaa ,_gbfgdc :=_acebb .(*_eg .PdfObjectArray );_gbfgdc {for _ ,_daegg :=range _fgaa .Elements (){_fdffb ,_geadd :=_dgbga (_daegg );if _geadd !=nil {_dbg .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",_geadd ); return nil ,_geadd ;};_cacdf .Function =append (_cacdf .Function ,_fdffb );};}else {_gdagf ,_aadb :=_dgbga (_acebb );if _aadb !=nil {_dbg .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",_aadb ); return nil ,_aadb ;};_cacdf .Function =append (_cacdf .Function ,_gdagf );};if _ecead :=_dfeefc .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_ecead !=nil {_ecead =_eg .TraceToDirectObject (_ecead );_egdgf ,_bffa :=_ecead .(*_eg .PdfObjectArray );if !_bffa {_dbg .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",_ecead ); return nil ,_eg .ErrTypeError ;};if _egdgf .Len ()!=2{_dbg .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",_egdgf .Len ());return nil ,ErrInvalidAttribute ; };_cacdf .Extend =_egdgf ;};return &_cacdf ,nil ;}; // SetPdfCreator sets the Creator attribute of the output PDF. func SetPdfCreator (creator string ){_egbeg .Lock ();defer _egbeg .Unlock ();_ebgfe =creator }; // ToPdfObject returns the PDF representation of the function. func (_fecce *PdfFunctionType4 )ToPdfObject ()_eg .PdfObject {_caeae :=_fecce ._egdfb ;if _caeae ==nil {_fecce ._egdfb =&_eg .PdfObjectStream {};_caeae =_fecce ._egdfb ;};_bebgb :=_eg .MakeDict ();_bebgb .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eg .MakeInteger (4)); _bbgg :=&_eg .PdfObjectArray {};for _ ,_ddaea :=range _fecce .Domain {_bbgg .Append (_eg .MakeFloat (_ddaea ));};_bebgb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bbgg );_gafg :=&_eg .PdfObjectArray {};for _ ,_acba :=range _fecce .Range {_gafg .Append (_eg .MakeFloat (_acba )); };_bebgb .Set ("\u0052\u0061\u006eg\u0065",_gafg );if _fecce ._efgdd ==nil &&_fecce .Program !=nil {_fecce ._efgdd =[]byte (_fecce .Program .String ());};_bebgb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_fecce ._efgdd )))); _caeae .Stream =_fecce ._efgdd ;_caeae .PdfObjectDictionary =_bebgb ;return _caeae ;}; // GetOptimizer returns current PDF optimizer. func (_afccb *PdfWriter )GetOptimizer ()Optimizer {return _afccb ._efdcf }; // NewPdfPageResources returns a new PdfPageResources object. func NewPdfPageResources ()*PdfPageResources {_fbdfg :=&PdfPageResources {};_fbdfg ._fbcbc =_eg .MakeDict ();return _fbdfg ;}; // 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 ;_ffae *_eg .PdfIndirectObject ; // Type: Sig/DocTimeStamp Type *_eg .PdfObjectName ;Filter *_eg .PdfObjectName ;SubFilter *_eg .PdfObjectName ;Contents *_eg .PdfObjectString ;Cert _eg .PdfObject ;ByteRange *_eg .PdfObjectArray ;Reference *_eg .PdfObjectArray ;Changes *_eg .PdfObjectArray ;Name *_eg .PdfObjectString ; M *_eg .PdfObjectString ;Location *_eg .PdfObjectString ;Reason *_eg .PdfObjectString ;ContactInfo *_eg .PdfObjectString ;R *_eg .PdfObjectInteger ;V *_eg .PdfObjectInteger ;PropBuild *_eg .PdfObjectDictionary ;PropAuthTime *_eg .PdfObjectInteger ;PropAuthType *_eg .PdfObjectName ; };func (_fcfc *pdfFontSimple )updateStandard14Font (){_ggfd ,_bfga :=_fcfc .Encoder ().(_cec .SimpleEncoder );if !_bfga {_dbg .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",_fcfc .Encoder (),_fcfc ); return ;};_gdfgf :=_ggfd .Charcodes ();_fcfc ._baga =make (map[_cec .CharCode ]float64 ,len (_gdfgf ));for _ ,_fbgg :=range _gdfgf {_dedb ,_ :=_ggfd .CharcodeToRune (_fbgg );_cbfca ,_ :=_fcfc ._edgae .Read (_dedb );_fcfc ._baga [_fbgg ]=_cbfca .Wx ;};}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 1 for a CalGray device. func (_bgdg *PdfColorspaceCalGray )GetNumComponents ()int {return 1}; // ToPdfObject implements interface PdfModel. func (_gea *PdfAnnotationPopup )ToPdfObject ()_eg .PdfObject {_gea .PdfAnnotation .ToPdfObject ();_ffggf :=_gea ._gag ;_edb :=_ffggf .PdfObject .(*_eg .PdfObjectDictionary );_edb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0050\u006f\u0070u\u0070")); _edb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_gea .Parent );_edb .SetIfNotNil ("\u004f\u0070\u0065\u006e",_gea .Open );return _ffggf ;}; // GetMediaBox gets the inheritable media box value, either from the page // or a higher up page/pages struct. func (_ddeeg *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _ddeeg .MediaBox !=nil {return _ddeeg .MediaBox ,nil ;};_ebdf :=_ddeeg .Parent ;for _ebdf !=nil {_aafced ,_dfdcb :=_eg .GetDict (_ebdf );if !_dfdcb {return nil ,_bbd .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 _acfbc :=_aafced .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_acfbc !=nil {_egaad ,_acae :=_eg .GetArray (_acfbc );if !_acae {return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078"); };_dfgg ,_bdgec :=NewPdfRectangle (*_egaad );if _bdgec !=nil {return nil ,_bdgec ;};return _dfgg ,nil ;};_ebdf =_aafced .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_bbd .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064"); }; // 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 ,_cec .SimpleEncoder ,error ){_gdecb ,_cdfdd :=_aefad (basefont );if _cdfdd !=nil {return nil ,nil ,_cdfdd ;};_fggdd ,_ebdd :=_gdecb .Encoder ().(_cec .SimpleEncoder ); if !_ebdd {return nil ,nil ,_e .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",_gdecb .Encoder ()); };_dfef :=make (map[rune ]_cec .GlyphName );for _bgegd :=range alphabet {if _ ,_deafd :=_fggdd .RuneToCharcode (_bgegd );!_deafd {_ ,_gbca :=_gdecb ._edgae .Read (_bgegd );if !_gbca {_dbg .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",_bgegd ,_bgegd ); continue ;};_bcfd ,_gbca :=_cec .RuneToGlyph (_bgegd );if !_gbca {_dbg .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_bgegd ,_bgegd );continue ;};if len (_dfef )>=255{return nil ,nil ,_bbd .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"); };_dfef [_bgegd ]=_bcfd ;};};var (_dccg []_cec .CharCode ;_dgacc []_cec .CharCode ;);for _efbc :=_cec .CharCode (1);_efbc <=0xff;_efbc ++{_fdegb ,_debga :=_fggdd .CharcodeToRune (_efbc );if !_debga {_dccg =append (_dccg ,_efbc );continue ;};if _ ,_debga =alphabet [_fdegb ]; !_debga {_dgacc =append (_dgacc ,_efbc );};};_fabef :=append (_dccg ,_dgacc ...);if len (_fabef )< len (_dfef ){return nil ,nil ,_e .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 (_dfef ),len (_fabef )); };_deea :=make ([]rune ,0,len (_dfef ));for _afbff :=range _dfef {_deea =append (_deea ,_afbff );};_ae .Slice (_deea ,func (_gfec ,_gcdc int )bool {return _deea [_gfec ]< _deea [_gcdc ]});_eabb :=make (map[_cec .CharCode ]_cec .GlyphName ,len (_deea )); for _ ,_fdedd :=range _deea {_gagfb :=_fabef [0];_fabef =_fabef [1:];_eabb [_gagfb ]=_dfef [_fdedd ];};_fggdd =_cec .ApplyDifferences (_fggdd ,_eabb );_gdecb .SetEncoder (_fggdd );return &PdfFont {_gdcab :&_gdecb },_fggdd ,nil ;}; // 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"`;}; // ToInteger convert to an integer format. func (_bfed *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_fbdg :=_bc .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_fbdg *_bfed .R ()),uint32 (_fbdg *_bfed .G ()),uint32 (_fbdg *_bfed .B ())};}; // GetContainingPdfObject returns the container of the pattern object (indirect object). func (_eebc *PdfPattern )GetContainingPdfObject ()_eg .PdfObject {return _eebc ._cfaag };func (_ggabc *PdfReader )loadAnnotations (_aegf _eg .PdfObject )([]*PdfAnnotation ,error ){_cbfcd ,_gfee :=_eg .GetArray (_aegf );if !_gfee {return nil ,_e .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079"); };var _deeac []*PdfAnnotation ;for _ ,_afgcg :=range _cbfcd .Elements (){_afgcg =_eg .ResolveReference (_afgcg );if _ ,_eedde :=_afgcg .(*_eg .PdfObjectNull );_eedde {continue ;};_gdba ,_baed :=_afgcg .(*_eg .PdfObjectDictionary );_ggef ,_addcc :=_afgcg .(*_eg .PdfIndirectObject ); if _baed {_ggef =&_eg .PdfIndirectObject {};_ggef .PdfObject =_gdba ;}else {if !_addcc {return nil ,_e .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"); };};_fedbf ,_efaed :=_ggabc .newPdfAnnotationFromIndirectObject (_ggef );if _efaed !=nil {return nil ,_efaed ;};switch _debfg :=_fedbf .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_cabf :=range _ggabc .AcroForm .AllFields (){if _cabf ._afbe ==_debfg .Parent {_debfg ._cdda =_cabf ; break ;};};};if _fedbf !=nil {_deeac =append (_deeac ,_fedbf );};};return _deeac ,nil ;};func (_fee *PdfReader )newPdfActionNamedFromDict (_egfb *_eg .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_egfb .Get ("\u004e")},nil ; }; // NewPdfAnnotationHighlight returns a new text highlight annotation. func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_dbd :=NewPdfAnnotation ();_dee :=&PdfAnnotationHighlight {};_dee .PdfAnnotation =_dbd ;_dee .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dbd .SetContext (_dee );return _dee ;}; // IsPush returns true if the button field represents a push button, false otherwise. func (_geff *PdfFieldButton )IsPush ()bool {return _geff .GetType ()==ButtonTypePush }; // 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 (_bec PdfColor )(PdfColor ,error ); // GetNumComponents returns the number of components in the PdfColorspace. GetNumComponents ()int ; // ToPdfObject returns a PdfObject representation of the PdfColorspace. ToPdfObject ()_eg .PdfObject ; // ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each // PdfObject represents a numeric value. ColorFromPdfObjects (_ddef []_eg .PdfObject )(PdfColor ,error ); // ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace. ColorFromFloats (_cebg []float64 )(PdfColor ,error ); // DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component. DecodeArray ()[]float64 ;}; // GetNumComponents returns the number of color components. func (_fcfg *PdfColorspaceICCBased )GetNumComponents ()int {return _fcfg .N };func (_fcea *PdfWriter )hasObject (_cfdgc _eg .PdfObject )bool {_ ,_dcbbg :=_fcea ._bccbf [_cfdgc ];return _dcbbg ;};func _cfafcb (_caacd _eg .PdfObject )(*PdfPageResourcesColorspaces ,error ){_bdfeb :=&PdfPageResourcesColorspaces {}; if _aggaa ,_agcgb :=_caacd .(*_eg .PdfIndirectObject );_agcgb {_bdfeb ._abbc =_aggaa ;_caacd =_aggaa .PdfObject ;};_ggdc ,_bfaee :=_eg .GetDict (_caacd );if !_bfaee {return nil ,_bbd .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };_bdfeb .Names =[]string {};_bdfeb .Colorspaces =map[string ]PdfColorspace {};for _ ,_dcfeb :=range _ggdc .Keys (){_gabfg :=_ggdc .Get (_dcfeb );_bdfeb .Names =append (_bdfeb .Names ,string (_dcfeb ));_bfdg ,_ecefc :=NewPdfColorspaceFromPdfObject (_gabfg ); if _ecefc !=nil {return nil ,_ecefc ;};_bdfeb .Colorspaces [string (_dcfeb )]=_bfdg ;};return _bdfeb ,nil ;}; // ImageToRGB converts Lab colorspace image to RGB and returns the result. func (_daffe *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_dabgc :=func (_dcda float64 )float64 {if _dcda >=6.0/29{return _dcda *_dcda *_dcda ;};return 108.0/841*(_dcda -4/29);};_aaae :=img ._aaeac ;if len (_aaae )!=6{_dbg .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"); _aaae =_daffe .DecodeArray ();};_acacd :=_ccg .NewReader (img .getBase ());_edg :=_ff .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._fcec ,img ._aaeac );_gceg :=_ccg .NewWriter (_edg );_beeb :=_bc .Pow (2,float64 (img .BitsPerComponent ))-1; _gccdg :=make ([]uint32 ,3);var (_abdg error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_ccee ,_aee ,_bcbeb float64 ;);for {_abdg =_acacd .ReadSamples (_gccdg );if _abdg ==_de .EOF {break ;}else if _abdg !=nil {return img ,_abdg ;};Ls =float64 (_gccdg [0])/_beeb ; As =float64 (_gccdg [1])/_beeb ;Bs =float64 (_gccdg [2])/_beeb ;Ls =_ff .LinearInterpolate (Ls ,0.0,1.0,_aaae [0],_aaae [1]);As =_ff .LinearInterpolate (As ,0.0,1.0,_aaae [2],_aaae [3]);Bs =_ff .LinearInterpolate (Bs ,0.0,1.0,_aaae [4],_aaae [5]);L =(Ls +16)/116+As /500; M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_daffe .WhitePoint [0]*_dabgc (L );Y =_daffe .WhitePoint [1]*_dabgc (M );Z =_daffe .WhitePoint [2]*_dabgc (N );_ccee =3.240479*X +-1.537150*Y +-0.498535*Z ;_aee =-0.969256*X +1.875992*Y +0.041556*Z ;_bcbeb =0.055648*X +-0.204043*Y +1.057311*Z ; _ccee =_bc .Min (_bc .Max (_ccee ,0),1.0);_aee =_bc .Min (_bc .Max (_aee ,0),1.0);_bcbeb =_bc .Min (_bc .Max (_bcbeb ,0),1.0);_gccdg [0]=uint32 (_ccee *_beeb );_gccdg [1]=uint32 (_aee *_beeb );_gccdg [2]=uint32 (_bcbeb *_beeb );if _abdg =_gceg .WriteSamples (_gccdg ); _abdg !=nil {return img ,_abdg ;};};return _egbde (&_edg ),nil ;}; // PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF. type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_eg .PdfObjectBool ;SigFlags *_eg .PdfObjectInteger ;CO *_eg .PdfObjectArray ;DR *PdfPageResources ;DA *_eg .PdfObjectString ;Q *_eg .PdfObjectInteger ;XFA _eg .PdfObject ;_edeaf *_eg .PdfIndirectObject ; };var _dfgac =false ; // PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30). type PdfPage struct{Parent _eg .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _eg .PdfObject ;Contents _eg .PdfObject ; Rotate *int64 ;Group _eg .PdfObject ;Thumb _eg .PdfObject ;B _eg .PdfObject ;Dur _eg .PdfObject ;Trans _eg .PdfObject ;AA _eg .PdfObject ;Metadata _eg .PdfObject ;PieceInfo _eg .PdfObject ;StructParents _eg .PdfObject ;ID _eg .PdfObject ;PZ _eg .PdfObject ; SeparationInfo _eg .PdfObject ;Tabs _eg .PdfObject ;TemplateInstantiated _eg .PdfObject ;PresSteps _eg .PdfObject ;UserUnit _eg .PdfObject ;VP _eg .PdfObject ;Annots _eg .PdfObject ;_egge []*PdfAnnotation ;_ecbba *_eg .PdfObjectDictionary ;_caaef *_eg .PdfIndirectObject ; _fdfdec *PdfReader ;}; // Encoder returns the font's text encoder. func (_cabe pdfFontType0 )Encoder ()_cec .TextEncoder {return _cabe ._eceba }; // 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 ;_gfddd *_eg .PdfIndirectObject ;}; // String returns a string that describes `base`. func (_fceb fontCommon )String ()string {return _e .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_fceb .coreString ());}; // ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should // be numeric. func (_adaff *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=_adaff .GetNumComponents (){return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ggcca ,_adff :=_eg .GetNumbersAsFloat (objects ); if _adff !=nil {return nil ,_adff ;};return _adaff .ColorFromFloats (_ggcca );}; // NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is // a failure in loading. func NewPdfColorspaceFromPdfObject (obj _eg .PdfObject )(PdfColorspace ,error ){var _aacfe *_eg .PdfIndirectObject ;var _cdee *_eg .PdfObjectName ;var _dgcgb *_eg .PdfObjectArray ;if _acfge ,_ebfa :=obj .(*_eg .PdfIndirectObject );_ebfa {_aacfe =_acfge ; };obj =_eg .TraceToDirectObject (obj );switch _fcag :=obj .(type ){case *_eg .PdfObjectArray :_dgcgb =_fcag ;case *_eg .PdfObjectName :_cdee =_fcag ;};if _cdee !=nil {switch *_cdee {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:_dbg .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",*_cdee );return nil ,_fgega ;};};if _dgcgb !=nil &&_dgcgb .Len ()> 0{var _egae _eg .PdfObject =_aacfe ; if _aacfe ==nil {_egae =_dgcgb ;};if _ceff ,_dfbb :=_eg .GetName (_dgcgb .Get (0));_dfbb {switch _ceff .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _dgcgb .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _dgcgb .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ; };case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _dgcgb .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _becf (_egae );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _fgca (_egae ); case "\u004c\u0061\u0062":return _degbd (_egae );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _fbgdc (_egae );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _adbbg (_egae );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _acde (_egae ); case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _feaee (_egae );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _cafa (_egae );default:_dbg .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",*_ceff ); };};};_dbg .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 ;}; // NewPdfColorspaceCalGray returns a new CalGray colorspace object. func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_cagf :=&PdfColorspaceCalGray {};_cagf .BlackPoint =[]float64 {0.0,0.0,0.0};_cagf .Gamma =1;return _cagf ;}; // SetPdfCreationDate sets the CreationDate attribute of the output PDF. func SetPdfCreationDate (creationDate _ee .Time ){_egbeg .Lock ();defer _egbeg .Unlock ();_gbbee =creationDate ;}; // GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder func (_ceedb *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_eg .StreamEncoder ,error ){_eddg ,_dgba :=_ceedb ._cfaag .(*_eg .PdfObjectStream );if !_dgba {_dbg .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",_ceedb ._cfaag ); return nil ,nil ,_eg .ErrTypeError ;};_ccfeb ,_befa :=_eg .DecodeStream (_eddg );if _befa !=nil {_dbg .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",_befa ); return nil ,nil ,_befa ;};_cbed ,_befa :=_eg .NewEncoderFromStream (_eddg );if _befa !=nil {_dbg .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",_befa ); return nil ,nil ,_befa ;};return _ccfeb ,_cbed ,nil ;}; // 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 (_feca *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {return _feca .fill (provider ,appGen );}; // SetXObjectByName adds the XObject from the passed in stream to the page resources. // The added XObject is identified by the specified name. func (_fgcbd *PdfPageResources )SetXObjectByName (keyName _eg .PdfObjectName ,stream *_eg .PdfObjectStream )error {if _fgcbd .XObject ==nil {_fgcbd .XObject =_eg .MakeDict ();};_daceb :=_eg .TraceToDirectObject (_fgcbd .XObject );_geac ,_gdaga :=_daceb .(*_eg .PdfObjectDictionary ); if !_gdaga {_dbg .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",_fgcbd .XObject ,_daceb );return _bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072"); };_geac .Set (keyName ,stream );return nil ;}; // ColorToRGB converts a Lab color to an RGB color. func (_gdfc *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_bbbf :=func (_gbe float64 )float64 {if _gbe >=6.0/29{return _gbe *_gbe *_gbe ;};return 108.0/841*(_gbe -4/29);};_debb ,_bdbg :=color .(*PdfColorLab );if !_bdbg {_dbg .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062"); return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_debb .L ();AStar :=_debb .A ();BStar :=_debb .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200; X :=_gdfc .WhitePoint [0]*_bbbf (L );Y :=_gdfc .WhitePoint [1]*_bbbf (M );Z :=_gdfc .WhitePoint [2]*_bbbf (N );_fddb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_bggb :=-0.969256*X +1.875992*Y +0.041556*Z ;_agfba :=0.055648*X +-0.204043*Y +1.057311*Z ;_fddb =_bc .Min (_bc .Max (_fddb ,0),1.0); _bggb =_bc .Min (_bc .Max (_bggb ,0),1.0);_agfba =_bc .Min (_bc .Max (_agfba ,0),1.0);return NewPdfColorDeviceRGB (_fddb ,_bggb ,_agfba ),nil ;}; // GetContainingPdfObject returns the container of the outline item (indirect object). func (_eaaeg *PdfOutlineItem )GetContainingPdfObject ()_eg .PdfObject {return _eaaeg ._bfega }; // PdfActionHide represents a hide action. type PdfActionHide struct{*PdfAction ;T _eg .PdfObject ;H _eg .PdfObject ;}; // ToPdfObject converts the font to a PDF representation. func (_dfaad *pdfFontType0 )ToPdfObject ()_eg .PdfObject {if _dfaad ._becfa ==nil {_dfaad ._becfa =&_eg .PdfIndirectObject {};};_bbcee :=_dfaad .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_dfaad ._becfa .PdfObject =_bbcee ;if _dfaad .Encoding !=nil {_bbcee .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dfaad .Encoding ); }else if _dfaad ._eceba !=nil {_bbcee .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dfaad ._eceba .ToPdfObject ());};if _dfaad .DescendantFont !=nil {_bbcee .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_eg .MakeArray (_dfaad .DescendantFont .ToPdfObject ())); };return _dfaad ._becfa ;}; // Write writes out the PDF. func (_cdfab *PdfWriter )Write (writer _de .Writer )error {_dbg .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_bcfbf :=_dd .GetLicenseKey ();if (_bcfbf ==nil ||!_bcfbf .IsLicensed ())&&!_dfgac {_e .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"); _e .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 _bbd .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");};if _cdfab ._ebeg !=nil {_dbg .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_cdfab ._ebeg ); _fffbe :=_cdfab ._ebeg .ToPdfObject ();_dbg .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_fffbe ,_fffbe ,_fffbe );_cdfab ._ebaaa .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_fffbe ); _cgcgb :=_cdfab .addObjects (_fffbe );if _cgcgb !=nil {return _cgcgb ;};};if _cdfab ._adcgf !=nil {_dbg .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_cdgd :=_cdfab ._adcgf .ToPdfObject ();_dbg .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_cdgd ); _cdfab ._ebaaa .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_cdgd );_dfgeg :=_cdfab .addObjects (_cdgd );if _dfgeg !=nil {return _dfgeg ;};};for _afbbb ,_eafed :=range _cdfab ._cfadb {if !_cdfab .hasObject (_afbbb ){_dbg .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",_afbbb ,_afbbb ,_afbbb ); for _ ,_fddee :=range _eafed {for _ ,_edfac :=range _fddee .Keys (){_fbggc :=_fddee .Get (_edfac );if _fbggc ==_afbbb {_dbg .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"); _fddee .Set (_edfac ,_eg .MakeNull ());break ;};};};};};_cdfab ._ebaaa .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_eg .MakeName (_e .Sprintf ("\u0025\u0064\u002e%\u0064",_cdfab ._dacab ,_cdfab ._ecae )));_cdfab .copyObjects ();if _cdfab ._efdcf !=nil {var _eaaed error ; _cdfab ._aecabb ,_eaaed =_cdfab ._efdcf .Optimize (_cdfab ._aecabb );if _eaaed !=nil {return _eaaed ;};_bgeded :=make (map[_eg .PdfObject ]struct{},len (_cdfab ._aecabb ));for _ ,_ggaee :=range _cdfab ._aecabb {_bgeded [_ggaee ]=struct{}{};};_cdfab ._bccbf =_bgeded ; };_cdfab ._agecc =_cdfab ._dfgff ;_cdfab ._fggeg =_g .NewWriter (writer );_dgfcg :=_cdfab ._dacab > 1||(_cdfab ._dacab ==1&&_cdfab ._ecae > 4);if _cdfab ._fdgeg !=nil {_dgfcg =*_cdfab ._fdgeg ;};_eace :=make (map[_eg .PdfObject ]bool );for _ ,_abfef :=range _cdfab ._aecabb {if _cegce ,_eeddg :=_abfef .(*_eg .PdfObjectStreams ); _eeddg {_dgfcg =true ;for _ ,_bcgf :=range _cegce .Elements (){_eace [_bcgf ]=true ;if _dadfa ,_effca :=_bcgf .(*_eg .PdfIndirectObject );_effca {_eace [_dadfa .PdfObject ]=true ;};};};};if _dgfcg &&_cdfab ._dacab ==1&&_cdfab ._ecae < 5{_cdfab ._ecae =5; };if _cdfab ._aaedc {_cdfab .writeString ("\u000a");}else {_cdfab .writeString (_e .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_cdfab ._dacab ,_cdfab ._ecae ));_cdfab .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a"); };_cdfab .updateObjectNumbers ();_dbg .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_cdfab ._aecabb ));_cdfab ._fadgbb =make (map[int ]crossReference );_cdfab ._fadgbb [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF}; if _cdfab ._adcdd .ObjectMap !=nil {for _eadfff ,_afgg :=range _cdfab ._adcdd .ObjectMap {if _eadfff ==0{continue ;};if _afgg .XType ==_eg .XrefTypeObjectStream {_abee :=crossReference {Type :2,ObjectNumber :_afgg .OsObjNumber ,Index :_afgg .OsObjIndex }; _cdfab ._fadgbb [_eadfff ]=_abee ;};if _afgg .XType ==_eg .XrefTypeTableEntry {_dgbec :=crossReference {Type :1,ObjectNumber :_afgg .ObjectNumber ,Offset :_afgg .Offset };_cdfab ._fadgbb [_eadfff ]=_dgbec ;};};};for _ ,_dbcde :=range _cdfab ._aecabb {if _efgf :=_eace [_dbcde ]; _efgf {continue ;};_ddgdeg :=int64 (0);switch _caga :=_dbcde .(type ){case *_eg .PdfIndirectObject :_ddgdeg =_caga .ObjectNumber ;case *_eg .PdfObjectStream :_ddgdeg =_caga .ObjectNumber ;case *_eg .PdfObjectStreams :_ddgdeg =_caga .ObjectNumber ;default:_dbg .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",_dbcde ); return ErrTypeCheck ;};if _cdfab ._ccag !=nil &&_dbcde !=_cdfab ._fbbfd {_ebcagg :=_cdfab ._ccag .Encrypt (_dbcde ,_ddgdeg ,0);if _ebcagg !=nil {_dbg .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",_ebcagg ); return _ebcagg ;};};_cdfab .writeObject (int (_ddgdeg ),_dbcde );};_dcfgf :=_cdfab ._agecc ;var _dafbac int ;for _fdcc :=range _cdfab ._fadgbb {if _fdcc > _dafbac {_dafbac =_fdcc ;};};if _dgfcg {_fged :=_dafbac +1;_cdfab ._fadgbb [_fged ]=crossReference {Type :1,ObjectNumber :_fged ,Offset :_dcfgf }; _acbac :=_cbd .NewBuffer (nil );_egdbe :=_eg .MakeArray ();for _dagfd :=0;_dagfd <=_dafbac ;{for ;_dagfd <=_dafbac ;_dagfd ++{_bebb ,_eadfe :=_cdfab ._fadgbb [_dagfd ];if _eadfe &&(!_cdfab ._aaedc ||_cdfab ._aaedc &&(_bebb .Type ==1&&_bebb .Offset >=_cdfab ._cdedc ||_bebb .Type ==0)){break ; };};var _ebcgea int ;for _ebcgea =_dagfd +1;_ebcgea <=_dafbac ;_ebcgea ++{_caba ,_aafceda :=_cdfab ._fadgbb [_ebcgea ];if _aafceda &&(!_cdfab ._aaedc ||_cdfab ._aaedc &&(_caba .Type ==1&&_caba .Offset > _cdfab ._cdedc )){continue ;};break ;};_egdbe .Append (_eg .MakeInteger (int64 (_dagfd )),_eg .MakeInteger (int64 (_ebcgea -_dagfd ))); for _cgfg :=_dagfd ;_cgfg < _ebcgea ;_cgfg ++{_fgaac :=_cdfab ._fadgbb [_cgfg ];switch _fgaac .Type {case 0:_gg .Write (_acbac ,_gg .BigEndian ,byte (0));_gg .Write (_acbac ,_gg .BigEndian ,uint32 (0));_gg .Write (_acbac ,_gg .BigEndian ,uint16 (0xFFFF)); case 1:_gg .Write (_acbac ,_gg .BigEndian ,byte (1));_gg .Write (_acbac ,_gg .BigEndian ,uint32 (_fgaac .Offset ));_gg .Write (_acbac ,_gg .BigEndian ,uint16 (_fgaac .Generation ));case 2:_gg .Write (_acbac ,_gg .BigEndian ,byte (2));_gg .Write (_acbac ,_gg .BigEndian ,uint32 (_fgaac .ObjectNumber )); _gg .Write (_acbac ,_gg .BigEndian ,uint16 (_fgaac .Index ));};};_dagfd =_ebcgea +1;};_ebgbaa ,_bbab :=_eg .MakeStream (_acbac .Bytes (),_eg .NewFlateEncoder ());if _bbab !=nil {return _bbab ;};_ebgbaa .ObjectNumber =int64 (_fged );_ebgbaa .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0058\u0052\u0065\u0066")); _ebgbaa .PdfObjectDictionary .Set ("\u0057",_eg .MakeArray (_eg .MakeInteger (1),_eg .MakeInteger (4),_eg .MakeInteger (2)));_ebgbaa .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_egdbe );_ebgbaa .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_eg .MakeInteger (int64 (_fged +1))); _ebgbaa .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_cdfab ._ggca );_ebgbaa .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_cdfab ._eeeg );if _cdfab ._aaedc &&_cdfab ._fcebcb > 0{_ebgbaa .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_eg .MakeInteger (_cdfab ._fcebcb )); };if _cdfab ._ccag !=nil {_ebgbaa .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_cdfab ._fbbfd );_ebgbaa .Set ("\u0049\u0044",_cdfab ._ecadc );_dbg .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_cdfab ._ecadc );};_cdfab .writeObject (int (_ebgbaa .ObjectNumber ),_ebgbaa ); }else {_cdfab .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _dbdef :=0;_dbdef <=_dafbac ;{for ;_dbdef <=_dafbac ;_dbdef ++{_gdbca ,_bdcad :=_cdfab ._fadgbb [_dbdef ];if _bdcad &&(!_cdfab ._aaedc ||_cdfab ._aaedc &&(_gdbca .Type ==1&&_gdbca .Offset >=_cdfab ._cdedc ||_gdbca .Type ==0)){break ; };};var _geccdc int ;for _geccdc =_dbdef +1;_geccdc <=_dafbac ;_geccdc ++{_dadabf ,_effcf :=_cdfab ._fadgbb [_geccdc ];if _effcf &&(!_cdfab ._aaedc ||_cdfab ._aaedc &&(_dadabf .Type ==1&&_dadabf .Offset > _cdfab ._cdedc )){continue ;};break ;};_gcgc :=_e .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_dbdef ,_geccdc -_dbdef ); _cdfab .writeString (_gcgc );for _bbcab :=_dbdef ;_bbcab < _geccdc ;_bbcab ++{_decde :=_cdfab ._fadgbb [_bbcab ];switch _decde .Type {case 0:_gcgc =_e .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535); _cdfab .writeString (_gcgc );case 1:_gcgc =_e .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_decde .Offset ,0);_cdfab .writeString (_gcgc );};};_dbdef =_geccdc +1;};_fdafe :=_eg .MakeDict ();_fdafe .Set ("\u0049\u006e\u0066\u006f",_cdfab ._ggca ); _fdafe .Set ("\u0052\u006f\u006f\u0074",_cdfab ._eeeg );_fdafe .Set ("\u0053\u0069\u007a\u0065",_eg .MakeInteger (int64 (_dafbac +1)));if _cdfab ._aaedc &&_cdfab ._fcebcb > 0{_fdafe .Set ("\u0050\u0072\u0065\u0076",_eg .MakeInteger (_cdfab ._fcebcb )); };if _cdfab ._ccag !=nil {_fdafe .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_cdfab ._fbbfd );_fdafe .Set ("\u0049\u0044",_cdfab ._ecadc );_dbg .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_cdfab ._ecadc );};_cdfab .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a"); _cdfab .writeString (_fdafe .WriteString ());_cdfab .writeString ("\u000a");};_dabf :=_e .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_dcfgf );_cdfab .writeString (_dabf );_cdfab .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a"); if _cdfab ._cfgdd ==nil {_cdfab ._cfgdd =_cdfab ._fggeg .Flush ();};return _cdfab ._cfgdd ;}; // ImageToRGB converts an image in CMYK32 colorspace to an RGB image. func (_eecgc *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_dbg .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_dbg .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 ); _dbg .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_dbg .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width ); _efad ,_eeef :=_ff .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fcec ,img ._aaeac );if _eeef !=nil {return Image {},_eeef ;};_effb ,_eeef :=_ff .NRGBAConverter .Convert (_efad );if _eeef !=nil {return Image {},_eeef ; };return _egbde (_effb .Base ()),nil ;}; // 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 *_cbf .CertClient ; // OCSPClient is the client used to retrieve OCSP validation information. OCSPClient *_cbf .OCSPClient ; // CRLClient is the client used to retrieve CRL validation information. CRLClient *_cbf .CRLClient ; // SkipExisting specifies whether existing signature validations // should be skipped. SkipExisting bool ;_caadf *PdfAppender ;_fgada *DSS ;};func _edff (_efece *_eg .PdfObjectDictionary )(*PdfFieldButton ,error ){_eefc :=&PdfFieldButton {};_eefc .Opt ,_ =_eg .GetArray (_efece .Get ("\u004f\u0070\u0074"));return _eefc ,nil ;}; // NewPdfAnnotationRichMedia returns a new rich media annotation. func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_fcfe :=NewPdfAnnotation ();_efc :=&PdfAnnotationRichMedia {};_efc .PdfAnnotation =_fcfe ;_fcfe .SetContext (_efc );return _efc ;}; // ToPdfObject converts rectangle to a PDF object. func (_gebea *PdfRectangle )ToPdfObject ()_eg .PdfObject {return _eg .MakeArray (_eg .MakeFloat (_gebea .Llx ),_eg .MakeFloat (_gebea .Lly ),_eg .MakeFloat (_gebea .Urx ),_eg .MakeFloat (_gebea .Ury ));}; // Encoder returns the font's text encoder. func (_aebff *pdfFontSimple )Encoder ()_cec .TextEncoder {if _aebff ._gccbc !=nil {return _aebff ._gccbc ;};if _aebff ._fcgd !=nil {return _aebff ._fcgd ;};_gfgcba ,_ :=_cec .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil ); return _gfgcba ;}; // AddPage adds a page to the PDF file. The new page should be an indirect object. func (_gaefgc *PdfWriter )AddPage (page *PdfPage )error {const _cfgg ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_faadf (page );_cdacc :=page .ToPdfObject ();_dbg .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"); _dbg .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_cdacc );_dfea ,_ecfdf :=_eg .GetIndirect (_cdacc );if !_ecfdf {return _bbd .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"); };_dbg .Log .Trace ("\u0025\u0073",_dfea );_dbg .Log .Trace ("\u0025\u0073",_dfea .PdfObject );_effbc ,_ecfdf :=_eg .GetDict (_dfea .PdfObject );if !_ecfdf {return _bbd .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"); };_beedc ,_ecfdf :=_eg .GetName (_effbc .Get ("\u0054\u0079\u0070\u0065"));if !_ecfdf {return _e .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",_effbc .Get ("\u0054\u0079\u0070\u0065")); };if _beedc .String ()!="\u0050\u0061\u0067\u0065"{return _bbd .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");};_bgcbg :=[]_eg .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"}; _fdfce ,_afcbb :=_eg .GetIndirect (_effbc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_dbg .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_effbc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_afcbb ); for _afcbb {_dbg .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fdfce );_gggc ,_dgfda :=_eg .GetDict (_fdfce .PdfObject );if !_dgfda {return _bbd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074"); };for _ ,_gdgbfg :=range _bgcbg {_dbg .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gdgbfg );if _effbc .Get (_gdgbfg )!=nil {_dbg .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079"); continue ;};if _cfbad :=_gggc .Get (_gdgbfg );_cfbad !=nil {_dbg .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gdgbfg );_effbc .Set (_gdgbfg ,_cfbad );};};_fdfce ,_afcbb =_eg .GetIndirect (_gggc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074")); _dbg .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gggc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_dbg .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065"); _effbc .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gaefgc ._afbga );_dfea .PdfObject =_effbc ;_cadd ,_ecfdf :=_eg .GetDict (_gaefgc ._afbga .PdfObject );if !_ecfdf {return _bbd .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"); };_dbaef ,_ecfdf :=_eg .GetArray (_cadd .Get ("\u004b\u0069\u0064\u0073"));if !_ecfdf {return _bbd .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"); };_dbaef .Append (_dfea );_gaefgc ._eacbf [_effbc ]=struct{}{};_abbf ,_ecfdf :=_eg .GetInt (_cadd .Get ("\u0043\u006f\u0075n\u0074"));if !_ecfdf {return _bbd .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"); };*_abbf =*_abbf +1;if page ._fdfdec ==nil {_fedag :=_dd .Track (_gaefgc ._fggebg ,_cfgg );if _fedag !=nil {return _fedag ;};}else {_deaaf :=_dd .Track (page ._fdfdec ._ebcgb ,_cfgg );if _deaaf !=nil {return _deaaf ;};};_gaefgc .addObject (_dfea );_ceee :=_gaefgc .addObjects (_effbc ); if _ceee !=nil {return _ceee ;};return nil ;};func _ddaab (_bcae string )(map[_cec .CharCode ]_cec .GlyphName ,error ){_cgdgg :=_dc .Split (_bcae ,"\u000a");_cdfe :=make (map[_cec .CharCode ]_cec .GlyphName );for _ ,_fcggc :=range _cgdgg {_fada :=_dcadg .FindStringSubmatch (_fcggc ); if _fada ==nil {continue ;};_acgcge ,_dggbf :=_fada [1],_fada [2];_afeb ,_abgaa :=_db .Atoi (_acgcge );if _abgaa !=nil {_dbg .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",_fcggc ); return nil ,_eg .ErrTypeError ;};_cdfe [_cec .CharCode (_afeb )]=_cec .GlyphName (_dggbf );};_dbg .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",_cdfe ); return _cdfe ,nil ;}; // NewPdfActionResetForm returns a new "reset form" action. func NewPdfActionResetForm ()*PdfActionResetForm {_dcb :=NewPdfAction ();_afc :=&PdfActionResetForm {};_afc .PdfAction =_dcb ;_dcb .SetContext (_afc );return _afc ;}; // SetDocInfo set document info. // This will overwrite any globally declared document info. func (_cfga *PdfWriter )SetDocInfo (info *PdfInfo ){if _cfga .hasObject (_cfga ._ggca ){delete (_cfga ._bccbf ,_cfga ._ggca );delete (_cfga ._aeceg ,_cfga ._ggca );for _bbcd ,_ddedc :=range _cfga ._aecabb {if _ddedc ==_cfga ._ggca {copy (_cfga ._aecabb [_bbcd :],_cfga ._aecabb [_bbcd +1:]); _cfga ._aecabb [len (_cfga ._aecabb )-1]=nil ;_cfga ._aecabb =_cfga ._aecabb [:len (_cfga ._aecabb )-1];break ;};};};_cgfae :=_eg .PdfIndirectObject {};_cgfae .PdfObject =info .ToPdfObject ();_cfga ._ggca =&_cgfae ;_cfga .addObject (&_cgfae );}; // ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup] func (_dbdd *PdfColorspaceSpecialIndexed )ToPdfObject ()_eg .PdfObject {_gcfa :=_eg .MakeArray (_eg .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_gcfa .Append (_dbdd .Base .ToPdfObject ());_gcfa .Append (_eg .MakeInteger (int64 (_dbdd .HiVal ))); _gcfa .Append (_dbdd .Lookup );if _dbdd ._cbdga !=nil {_dbdd ._cbdga .PdfObject =_gcfa ;return _dbdd ._cbdga ;};return _gcfa ;};func _dbaea (_cccf *_eg .PdfObjectDictionary ,_fgggg *fontCommon )(*pdfFontType3 ,error ){_caedg :=_efeb (_fgggg );_aeaa :=_cccf .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"); if _aeaa ==nil {_aeaa =_eg .MakeInteger (0);};_caedg .FirstChar =_aeaa ;_dfeef ,_ffcce :=_eg .GetIntVal (_aeaa );if !_ffcce {_dbg .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",_aeaa ); return nil ,_eg .ErrTypeError ;};_geeeg :=_cec .CharCode (_dfeef );_aeaa =_cccf .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _aeaa ==nil {_aeaa =_eg .MakeInteger (255);};_caedg .LastChar =_aeaa ;_dfeef ,_ffcce =_eg .GetIntVal (_aeaa );if !_ffcce {_dbg .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",_aeaa ); return nil ,_eg .ErrTypeError ;};_gdfbb :=_cec .CharCode (_dfeef );_aeaa =_cccf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _aeaa !=nil {_caedg .Resources =_aeaa ;};_aeaa =_cccf .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _aeaa ==nil {_dbg .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",_aeaa ); return nil ,_eg .ErrNotSupported ;};_caedg .CharProcs =_aeaa ;_aeaa =_cccf .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _aeaa ==nil {_dbg .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",_aeaa ); return nil ,_eg .ErrNotSupported ;};_caedg .FontMatrix =_aeaa ;_caedg ._cgcec =make (map[_cec .CharCode ]float64 );_aeaa =_cccf .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _aeaa !=nil {_caedg .Widths =_aeaa ;_dgbef ,_egbdf :=_eg .GetArray (_aeaa ); if !_egbdf {_dbg .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",_aeaa );return nil ,_eg .ErrTypeError ; };_aafce ,_fcca :=_dgbef .ToFloat64Array ();if _fcca !=nil {_dbg .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 ,_fcca ;};if len (_aafce )!=int (_gdfbb -_geeeg +1){_dbg .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",_gdfbb -_geeeg +1,len (_aafce )); return nil ,_eg .ErrRangeError ;};_cagc ,_egbdf :=_eg .GetArray (_caedg .FontMatrix );if !_egbdf {_dbg .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",_cagc ); return nil ,_fcca ;};_bfbec ,_fcca :=_cagc .ToFloat64Array ();if _fcca !=nil {_dbg .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 ,_fcca ;};_ceefa :=_cc .NewMatrix (_bfbec [0],_bfbec [1],_bfbec [2],_bfbec [3],_bfbec [4],_bfbec [5]);for _beebd ,_bddcb :=range _aafce {_bgdd ,_ :=_ceefa .Transform (_bddcb ,_bddcb );_caedg ._cgcec [_geeeg +_cec .CharCode (_beebd )]=_bgdd ; };};_caedg .Encoding =_eg .TraceToDirectObject (_cccf .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));_dgde :=_cccf .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _dgde !=nil {_caedg ._fgegd =_eg .TraceToDirectObject (_dgde );_dfecd ,_dccad :=_eagd (_caedg ._fgegd ,&_caedg .fontCommon ); if _dccad !=nil {return nil ,_dccad ;};_caedg ._fffc =_dfecd ;};if _fedaa :=_caedg ._fffc ;_fedaa !=nil {_caedg ._daeg =_cec .NewCMapEncoder ("",nil ,_fedaa );}else {_caedg ._daeg =_cec .NewPdfDocEncoder ();};return _caedg ,nil ;}; // NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values. func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_dgedg :=PdfColorDeviceRGB {r ,g ,b };return &_dgedg ;}; // ToPdfObject implements interface PdfModel. func (_ggea *PdfAnnotationPolyLine )ToPdfObject ()_eg .PdfObject {_ggea .PdfAnnotation .ToPdfObject ();_gece :=_ggea ._gag ;_aba :=_gece .PdfObject .(*_eg .PdfObjectDictionary );_ggea .PdfAnnotationMarkup .appendToPdfDictionary (_aba );_aba .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065")); _aba .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_ggea .Vertices );_aba .SetIfNotNil ("\u004c\u0045",_ggea .LE );_aba .SetIfNotNil ("\u0042\u0053",_ggea .BS );_aba .SetIfNotNil ("\u0049\u0043",_ggea .IC );_aba .SetIfNotNil ("\u0042\u0045",_ggea .BE ); _aba .SetIfNotNil ("\u0049\u0054",_ggea .IT );_aba .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_ggea .Measure );return _gece ;}; // SetFilter sets compression filter. Decodes with current filter sets and // encodes the data with the new filter. func (_bdgaf *XObjectImage )SetFilter (encoder _eg .StreamEncoder )error {_eeada :=_bdgaf .Stream ;_dgeb ,_babb :=_bdgaf .Filter .DecodeBytes (_eeada );if _babb !=nil {return _babb ;};_bdgaf .Filter =encoder ;encoder .UpdateParams (_bdgaf .getParamsDict ()); _eeada ,_babb =encoder .EncodeBytes (_dgeb );if _babb !=nil {return _babb ;};_bdgaf .Stream =_eeada ;return nil ;}; // NewPdfAnnotationWatermark returns a new watermark annotation. func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_gdee :=NewPdfAnnotation ();_bfge :=&PdfAnnotationWatermark {};_bfge .PdfAnnotation =_gdee ;_gdee .SetContext (_bfge );return _bfge ;};var _ pdfFont =(*pdfFontType0 )(nil ); // Set sets the colorspace corresponding to key. Add to Names if not set. func (_bdce *PdfPageResourcesColorspaces )Set (key _eg .PdfObjectName ,val PdfColorspace ){if _ ,_fgfe :=_bdce .Colorspaces [string (key )];!_fgfe {_bdce .Names =append (_bdce .Names ,string (key ));};_bdce .Colorspaces [string (key )]=val ;};var (ErrRequiredAttributeMissing =_bbd .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 =_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_fgega =_bbd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072"); ErrEncrypted =_bbd .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 =_bbd .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064"); ErrFontNotSupported =_ead .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_eg .ErrNotSupported );ErrType1CFontNotSupported =_ead .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",_eg .ErrNotSupported ); ErrType3FontNotSupported =_ead .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",_eg .ErrNotSupported ); ErrTTCmapNotSupported =_ead .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",_eg .ErrNotSupported ); ErrSignNotEnoughSpace =_ead .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 =_ead .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");); // NewPdfActionMovie returns a new "movie" action. func NewPdfActionMovie ()*PdfActionMovie {_bbg :=NewPdfAction ();_ad :=&PdfActionMovie {};_ad .PdfAction =_bbg ;_bbg .SetContext (_ad );return _ad ;}; // SetNamedDestinations sets the Names entry in the PDF catalog. // See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008). func (_bagcf *PdfWriter )SetNamedDestinations (names _eg .PdfObject )error {if names ==nil {return nil ;};_dbg .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e"); _bagcf ._ebaaa .Set ("\u004e\u0061\u006de\u0073",names );return _bagcf .addObjects (names );}; // GetContainingPdfObject returns the container of the resources object (indirect object). func (_efbdg *PdfPageResources )GetContainingPdfObject ()_eg .PdfObject {return _efbdg ._fbcbc }; // GetContainingPdfObject returns the XObject Form's containing object (indirect object). func (_cbaad *XObjectForm )GetContainingPdfObject ()_eg .PdfObject {return _cbaad ._cdcaf }; // NewPdfPage returns a new PDF page. func NewPdfPage ()*PdfPage {_cebae :=PdfPage {};_cebae ._ecbba =_eg .MakeDict ();_cebae .Resources =NewPdfPageResources ();_edfdg :=_eg .PdfIndirectObject {};_edfdg .PdfObject =_cebae ._ecbba ;_cebae ._caaef =&_edfdg ;return &_cebae ;}; // 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 (_gadef *PdfColorspaceLab )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fbgd ,_bbcgf :=_eg .GetNumbersAsFloat (objects ); if _bbcgf !=nil {return nil ,_bbcgf ;};return _gadef .ColorFromFloats (_fbgd );}; // HasFontByName checks if has font resource by name. func (_bfgg *PdfPage )HasFontByName (name _eg .PdfObjectName )bool {_bdacb ,_dbgfeg :=_bfgg .Resources .Font .(*_eg .PdfObjectDictionary );if !_dbgfeg {return false ;};if _gdafg :=_bdacb .Get (name );_gdafg !=nil {return true ;};return false ;}; // NewPdfAnnotationCircle returns a new circle annotation. func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_ceaee :=NewPdfAnnotation ();_gac :=&PdfAnnotationCircle {};_gac .PdfAnnotation =_ceaee ;_gac .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ceaee .SetContext (_gac );return _gac ;};func (_fgfae *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _fgfae ._eecfe ==nil &&_fgfae .DescendantFont !=nil {return _fgfae .DescendantFont .FontDescriptor (); };return _fgfae ._eecfe ;};func _fccc (_bfbbc *XObjectImage )error {if _bfbbc .SMask ==nil {return nil ;};_afea ,_ccge :=_bfbbc .SMask .(*_eg .PdfObjectStream );if !_ccge {_dbg .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 _eg .ErrTypeError ;};_gfcce :=_afea .PdfObjectDictionary ;_bfeae :=_gfcce .Get ("\u004d\u0061\u0074t\u0065");if _bfeae ==nil {return nil ;};_efgb ,_eacd :=_gbdcf (_bfeae .(*_eg .PdfObjectArray ));if _eacd !=nil {return _eacd ;};_fdagf :=_eg .MakeArrayFromFloats ([]float64 {_efgb }); _gfcce .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_fdagf );return nil ;};func (_ecfc *PdfReader )newPdfFieldFromIndirectObject (_eceb *_eg .PdfIndirectObject ,_bccc *PdfField )(*PdfField ,error ){if _cbdf ,_eaga :=_ecfc ._gced .GetModelFromPrimitive (_eceb ).(*PdfField ); _eaga {return _cbdf ,nil ;};_decg ,_fcda :=_eg .GetDict (_eceb );if !_fcda {return nil ,_e .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"); };_debde :=NewPdfField ();_debde ._afbe =_eceb ;_debde ._afbe .PdfObject =_decg ;if _aabg ,_dgcge :=_eg .GetName (_decg .Get ("\u0046\u0054"));_dgcge {_debde .FT =_aabg ;};if _bccc !=nil {_debde .Parent =_bccc ;};_debde .T ,_ =_decg .Get ("\u0054").(*_eg .PdfObjectString ); _debde .TU ,_ =_decg .Get ("\u0054\u0055").(*_eg .PdfObjectString );_debde .TM ,_ =_decg .Get ("\u0054\u004d").(*_eg .PdfObjectString );_debde .Ff ,_ =_decg .Get ("\u0046\u0066").(*_eg .PdfObjectInteger );_debde .V =_decg .Get ("\u0056");_debde .DV =_decg .Get ("\u0044\u0056"); _debde .AA =_decg .Get ("\u0041\u0041");_ceagb :=_debde .FT ;if _ceagb ==nil &&_bccc !=nil {_ceagb =_bccc .FT ;};if _ceagb !=nil {switch *_ceagb {case "\u0054\u0078":_bcfe ,_fdacd :=_fafc (_decg );if _fdacd !=nil {return nil ,_fdacd ;};_bcfe .PdfField =_debde ; _debde ._ceag =_bcfe ;case "\u0043\u0068":_dagf ,_gcbba :=_fgfa (_decg );if _gcbba !=nil {return nil ,_gcbba ;};_dagf .PdfField =_debde ;_debde ._ceag =_dagf ;case "\u0042\u0074\u006e":_efg ,_bafc :=_edff (_decg );if _bafc !=nil {return nil ,_bafc ;};_efg .PdfField =_debde ; _debde ._ceag =_efg ;case "\u0053\u0069\u0067":_effde ,_bfabg :=_ecfc .newPdfFieldSignatureFromDict (_decg );if _bfabg !=nil {return nil ,_bfabg ;};_effde .PdfField =_debde ;_debde ._ceag =_effde ;default:_dbg .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",*_debde .FT ); return nil ,_bbd .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");};};if _bfcb ,_edfeg :=_eg .GetName (_decg .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_edfeg {if *_bfcb =="\u0057\u0069\u0064\u0067\u0065\u0074"{_dbdb ,_agffg :=_ecfc .newPdfAnnotationFromIndirectObject (_eceb ); if _agffg !=nil {return nil ,_agffg ;};_cgcef ,_ffbg :=_dbdb .GetContext ().(*PdfAnnotationWidget );if !_ffbg {return nil ,_bbd .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn"); };_cgcef ._cdda =_debde ;_cgcef .Parent =_debde ._afbe ;_debde .Annotations =append (_debde .Annotations ,_cgcef );return _debde ,nil ;};};_begfb :=true ;if _dbgc ,_cdgg :=_eg .GetArray (_decg .Get ("\u004b\u0069\u0064\u0073"));_cdgg {_dcgga :=make ([]*_eg .PdfIndirectObject ,0,_dbgc .Len ()); for _ ,_fcde :=range _dbgc .Elements (){_ffcg ,_cfbdd :=_eg .GetIndirect (_fcde );if !_cfbdd {_ccdd ,_dgbg :=_eg .GetStream (_fcde );if _dgbg &&_ccdd .PdfObjectDictionary !=nil {_gcfg ,_fgab :=_eg .GetNameVal (_ccdd .Get ("\u0054\u0079\u0070\u0065"));if _fgab &&_gcfg =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_dbg .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 ,_bbd .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");};_egaca ,_dgfcf :=_eg .GetDict (_ffcg ); if !_dgfcf {return nil ,ErrTypeCheck ;};if _begfb {_begfb =!_dgace (_egaca );};_dcgga =append (_dcgga ,_ffcg );};for _ ,_edbg :=range _dcgga {if _begfb {_cggb ,_dgef :=_ecfc .newPdfAnnotationFromIndirectObject (_edbg );if _dgef !=nil {_dbg .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",_dgef ); return nil ,_dgef ;};_gcbc ,_bdea :=_cggb ._ffbe .(*PdfAnnotationWidget );if !_bdea {return nil ,ErrTypeCheck ;};_gcbc ._cdda =_debde ;_debde .Annotations =append (_debde .Annotations ,_gcbc );}else {_dgcf ,_gdgg :=_ecfc .newPdfFieldFromIndirectObject (_edbg ,_debde ); if _gdgg !=nil {_dbg .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",_gdgg );return nil ,_gdgg ;};_debde .Kids =append (_debde .Kids ,_dgcf ); };};};return _debde ,nil ;};func (_acg *PdfReader )newPdfAnnotationTrapNetFromDict (_eebgc *_eg .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_fffe :=PdfAnnotationTrapNet {};return &_fffe ,nil ;}; // IsCheckbox returns true if the button field represents a checkbox, false otherwise. func (_ecdbe *PdfFieldButton )IsCheckbox ()bool {return _ecdbe .GetType ()==ButtonTypeCheckbox };func (_dgacg *PdfFunctionType0 )processSamples ()error {_befd :=_ccg .ResampleBytes (_dgacg ._ebad ,_dgacg .BitsPerSample );_dgacg ._dgfa =_befd ;return nil ; }; // 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 (_ebd *PdfAnnotationWidget )Field ()*PdfField {return _ebd ._cdda };func _feaee (_ggfac _eg .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_gddf :=NewPdfColorspaceSpecialSeparation ();if _cdcf ,_acdee :=_ggfac .(*_eg .PdfIndirectObject );_acdee {_gddf ._cegff =_cdcf ; };_ggfac =_eg .TraceToDirectObject (_ggfac );_gdfcc ,_feaed :=_ggfac .(*_eg .PdfObjectArray );if !_feaed {return nil ,_e .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 _gdfcc .Len ()!=4{return nil ,_e .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");};_ggfac =_gdfcc .Get (0); _fbfd ,_feaed :=_ggfac .(*_eg .PdfObjectName );if !_feaed {return nil ,_e .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 *_fbfd !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_e .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"); };_ggfac =_gdfcc .Get (1);_fbfd ,_feaed =_ggfac .(*_eg .PdfObjectName );if !_feaed {return nil ,_e .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"); };_gddf .ColorantName =_fbfd ;_ggfac =_gdfcc .Get (2);_cfefb ,_edgf :=NewPdfColorspaceFromPdfObject (_ggfac );if _edgf !=nil {return nil ,_edgf ;};_gddf .AlternateSpace =_cfefb ;_afff ,_edgf :=_dgbga (_gdfcc .Get (3));if _edgf !=nil {return nil ,_edgf ; };_gddf .TintTransform =_afff ;return _gddf ,nil ;}; // ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z). func (_bfafe *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_ffgf :=_ccg .NewReader (img .getBase ());_addg :=_ff .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_dbaa :=_ccg .NewWriter (_addg ); _dded :=_bc .Pow (2,float64 (img .BitsPerComponent ))-1;_ceeca :=make ([]uint32 ,3);var (_caed uint32 ;ANorm ,X ,Y ,Z ,_bedfa ,_ffgd ,_faff float64 ;_ffdb error ;);for {_caed ,_ffdb =_ffgf .ReadSample ();if _ffdb ==_de .EOF {break ;}else if _ffdb !=nil {return img ,_ffdb ; };ANorm =float64 (_caed )/_dded ;X =_bfafe .WhitePoint [0]*_bc .Pow (ANorm ,_bfafe .Gamma );Y =_bfafe .WhitePoint [1]*_bc .Pow (ANorm ,_bfafe .Gamma );Z =_bfafe .WhitePoint [2]*_bc .Pow (ANorm ,_bfafe .Gamma );_bedfa =3.240479*X +-1.537150*Y +-0.498535*Z ; _ffgd =-0.969256*X +1.875992*Y +0.041556*Z ;_faff =0.055648*X +-0.204043*Y +1.057311*Z ;_bedfa =_bc .Min (_bc .Max (_bedfa ,0),1.0);_ffgd =_bc .Min (_bc .Max (_ffgd ,0),1.0);_faff =_bc .Min (_bc .Max (_faff ,0),1.0);_ceeca [0]=uint32 (_bedfa *_dded );_ceeca [1]=uint32 (_ffgd *_dded ); _ceeca [2]=uint32 (_faff *_dded );if _ffdb =_dbaa .WriteSamples (_ceeca );_ffdb !=nil {return img ,_ffdb ;};};return _egbde (&_addg ),nil ;}; // NewDSS returns a new DSS dictionary. func NewDSS ()*DSS {return &DSS {_gded :_eg .MakeIndirectObject (_eg .MakeDict ()),VRI :map[string ]*VRI {}};};func (_edfff *PdfSignature )extractChainFromCert ()([]*_ce .Certificate ,error ){var _addcb *_eg .PdfObjectArray ;switch _faedb :=_edfff .Cert .(type ){case *_eg .PdfObjectString :_addcb =_eg .MakeArray (_faedb ); case *_eg .PdfObjectArray :_addcb =_faedb ;default:return nil ,_e .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",_faedb ); };var _fddgb _cbd .Buffer ;for _ ,_bgbfeg :=range _addcb .Elements (){_aeabb ,_gegf :=_eg .GetString (_bgbfeg );if !_gegf {return nil ,_e .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",_bgbfeg ); };if _ ,_adfag :=_fddgb .Write (_aeabb .Bytes ());_adfag !=nil {return nil ,_adfag ;};};return _ce .ParseCertificates (_fddgb .Bytes ());}; // 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 (_gcfe DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};func _gagda ()_ee .Time {_egbeg .Lock ();defer _egbeg .Unlock ();return _cced };func (_aggd *PdfReader )newPdfAnnotationCaretFromDict (_ggf *_eg .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_adcg :=PdfAnnotationCaret {}; _dbga ,_bfe :=_aggd .newPdfAnnotationMarkupFromDict (_ggf );if _bfe !=nil {return nil ,_bfe ;};_adcg .PdfAnnotationMarkup =_dbga ;_adcg .RD =_ggf .Get ("\u0052\u0044");_adcg .Sy =_ggf .Get ("\u0053\u0079");return &_adcg ,nil ;}; // BorderStyle defines border type, typically used for annotations. type BorderStyle int ; // SetContext sets the sub annotation (context). func (_ebcd *PdfAnnotation )SetContext (ctx PdfModel ){_ebcd ._ffbe =ctx };func (_fbbgg *PdfReader )traverseObjectData (_eadga _eg .PdfObject )error {return _eg .ResolveReferencesDeep (_eadga ,_fbbgg ._gadge );}; // PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes. type PdfFieldChoice struct{*PdfField ;Opt *_eg .PdfObjectArray ;TI *_eg .PdfObjectInteger ;I *_eg .PdfObjectArray ;};func (_gef *PdfReader )newPdfAnnotationSquigglyFromDict (_eebg *_eg .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_aggg :=PdfAnnotationSquiggly {}; _fgfd ,_ddea :=_gef .newPdfAnnotationMarkupFromDict (_eebg );if _ddea !=nil {return nil ,_ddea ;};_aggg .PdfAnnotationMarkup =_fgfd ;_aggg .QuadPoints =_eebg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_aggg ,nil ;};func (_gdfeb SignatureValidationResult )String ()string {var _agbde _cbd .Buffer ; _agbde .WriteString (_e .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_gdfeb .Name ));if _gdfeb .Date ._cggcf > 0{_agbde .WriteString (_e .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_gdfeb .Date .ToGoTime ().String ()));}else {_agbde .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a"); };if len (_gdfeb .Reason )> 0{_agbde .WriteString (_e .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_gdfeb .Reason ));}else {_agbde .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a"); };if len (_gdfeb .Location )> 0{_agbde .WriteString (_e .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_gdfeb .Location ));}else {_agbde .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a"); };if len (_gdfeb .ContactInfo )> 0{_agbde .WriteString (_e .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_gdfeb .ContactInfo ));}else {_agbde .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a"); };_agbde .WriteString (_e .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_gdfeb .Fields )));if _gdfeb .IsSigned {_agbde .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 {_agbde .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");};if _gdfeb .IsVerified {_agbde .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 {_agbde .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 _gdfeb .IsTrusted {_agbde .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 {_agbde .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 !_gdfeb .GeneralizedTime .IsZero (){_agbde .WriteString (_e .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_gdfeb .GeneralizedTime .String ())); };return _agbde .String ();}; // PdfColorspaceSpecialPattern is a Pattern colorspace. // Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs]. type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_ecbb *_eg .PdfIndirectObject ;}; // DecodeArray returns the range of color component values in the Lab colorspace. func (_abcb *PdfColorspaceLab )DecodeArray ()[]float64 {_acfe :=[]float64 {0,100};if _abcb .Range !=nil &&len (_abcb .Range )==4{_acfe =append (_acfe ,_abcb .Range ...);}else {_acfe =append (_acfe ,-100,100,-100,100);};return _acfe ;}; // PdfShadingType3 is a Radial shading. type PdfShadingType3 struct{*PdfShading ;Coords *_eg .PdfObjectArray ;Domain *_eg .PdfObjectArray ;Function []PdfFunction ;Extend *_eg .PdfObjectArray ;};func (_adec *PdfReader )flattenFieldsWithOpts (_dbbg bool ,_bbgb FieldAppearanceGenerator ,_efaeb *FieldFlattenOpts )error {if _efaeb ==nil {_efaeb =&FieldFlattenOpts {}; };var _aafd bool ;_cgga :=map[*PdfAnnotation ]bool {};{var _bafdc []*PdfField ;_gabab :=_adec .AcroForm ;if _gabab !=nil {if _efaeb .FilterFunc !=nil {_bafdc =_gabab .filteredFields (_efaeb .FilterFunc ,true );_aafd =_gabab .Fields !=nil &&len (*_gabab .Fields )> 0; }else {_bafdc =_gabab .AllFields ();};};for _ ,_fbfe :=range _bafdc {for _ ,_dfab :=range _fbfe .Annotations {_cgga [_dfab .PdfAnnotation ]=_fbfe .V !=nil ;if _bbgb !=nil {_dceb ,_agdf :=_bbgb .GenerateAppearanceDict (_gabab ,_fbfe ,_dfab );if _agdf !=nil {return _agdf ; };_dfab .AP =_dceb ;};};};};if _dbbg {for _ ,_fcabc :=range _adec .PageList {_badc ,_cbbe :=_fcabc .GetAnnotations ();if _cbbe !=nil {return _cbbe ;};for _ ,_deeef :=range _badc {_cgga [_deeef ]=true ;};};};for _ ,_gfae :=range _adec .PageList {var _dbded []*PdfAnnotation ; if _bbgb !=nil {if _egda :=_bbgb .WrapContentStream (_gfae );_egda !=nil {return _egda ;};};_ffgde ,_eadg :=_gfae .GetAnnotations ();if _eadg !=nil {return _eadg ;};for _ ,_gcad :=range _ffgde {_efdf ,_efdfd :=_cgga [_gcad ];if !_efdfd &&_efaeb .AnnotFilterFunc !=nil {if _ ,_ecdaa :=_gcad .GetContext ().(*PdfAnnotationWidget ); !_ecdaa {_efdfd =_efaeb .AnnotFilterFunc (_gcad );};};if !_efdfd {_dbded =append (_dbded ,_gcad );continue ;};switch _gcad .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ; };_gbge ,_ddeee ,_dfec :=_ebbgf (_gcad );if _dfec !=nil {if !_efdf {_dbg .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 ;};_dbg .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",_dfec ); continue ;};if _gbge ==nil {continue ;};_bfdb :=_gfae .Resources .GenerateXObjectName ();_gfae .Resources .SetXObjectFormByName (_bfdb ,_gbge );_bbeb :=_bc .Min (_ddeee .Llx ,_ddeee .Urx );_cgcfa :=_bc .Min (_ddeee .Lly ,_ddeee .Ury );var _debg []string ; _debg =append (_debg ,"\u0071");_debg =append (_debg ,_e .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,_bbeb ,_cgcfa )); _debg =append (_debg ,_e .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_bfdb .String ()));_debg =append (_debg ,"\u0051");_ebcff :=_dc .Join (_debg ,"\u000a");_dfec =_gfae .AppendContentStream (_ebcff );if _dfec !=nil {return _dfec ;};if _gbge .Resources !=nil {_dcgea ,_cega :=_eg .GetDict (_gbge .Resources .Font ); if _cega {for _ ,_agcd :=range _dcgea .Keys (){if !_gfae .Resources .HasFontByName (_agcd ){_gfae .Resources .SetFontByName (_agcd ,_dcgea .Get (_agcd ));};};};};};if len (_dbded )> 0{_gfae ._egge =_dbded ;}else {_gfae ._egge =[]*PdfAnnotation {};};};if !_aafd {_adec .AcroForm =nil ; };return nil ;}; // GetCharMetrics returns the char metrics for character code `code`. func (_daffb pdfCIDFontType2 )GetCharMetrics (code _cec .CharCode )(_ab .CharMetrics ,bool ){if _ebcg ,_ebga :=_daffb ._egdc [code ];_ebga {return _ab .CharMetrics {Wx :_ebcg },true ;};_bacdb :=rune (code );_ebcce ,_afef :=_daffb ._dgefb [_bacdb ];if !_afef {_ebcce =int (_daffb ._cbgd ); };return _ab .CharMetrics {Wx :float64 (_ebcce )},true ;}; // 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 (_dagg *PdfReader )GetObjectNums ()[]int {return _dagg ._cdggc .GetObjectNums ()}; // GetContentStream returns the XObject Form's content stream. func (_fdgag *XObjectForm )GetContentStream ()([]byte ,error ){_gfded ,_bbfbd :=_eg .DecodeStream (_fdgag ._cdcaf );if _bbfbd !=nil {return nil ,_bbfbd ;};return _gfded ,nil ;}; // 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 _eg .StreamEncoder ;Intent _eg .PdfObject ;ImageMask _eg .PdfObject ;Mask _eg .PdfObject ;Matte _eg .PdfObject ;Decode _eg .PdfObject ;Interpolate _eg .PdfObject ;Alternatives _eg .PdfObject ; SMask _eg .PdfObject ;SMaskInData _eg .PdfObject ;Name _eg .PdfObject ;StructParent _eg .PdfObject ;ID _eg .PdfObject ;OPI _eg .PdfObject ;Metadata _eg .PdfObject ;OC _eg .PdfObject ;Stream []byte ;_dcdb *_eg .PdfObjectStream ;}; // NewPdfActionGoToE returns a new "go to embedded" action. func NewPdfActionGoToE ()*PdfActionGoToE {_dgd :=NewPdfAction ();_gfg :=&PdfActionGoToE {};_gfg .PdfAction =_dgd ;_dgd .SetContext (_gfg );return _gfg ;}; // PdfActionSubmitForm represents a submitForm action. type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _eg .PdfObject ;Flags _eg .PdfObject ;}; // PdfAnnotationStamp represents Stamp annotations. // (Section 12.5.6.12). type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _eg .PdfObject ;};func _abegg (_fbagb *_eg .PdfObjectDictionary )(*PdfShadingType1 ,error ){_adaed :=PdfShadingType1 {};if _ebbce :=_fbagb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e"); _ebbce !=nil {_ebbce =_eg .TraceToDirectObject (_ebbce );_eecdd ,_aagaa :=_ebbce .(*_eg .PdfObjectArray );if !_aagaa {_dbg .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",_ebbce ); return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_adaed .Domain =_eecdd ;};if _ebbd :=_fbagb .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_ebbd !=nil {_ebbd =_eg .TraceToDirectObject (_ebbd ); _abacg ,_fbef :=_ebbd .(*_eg .PdfObjectArray );if !_fbef {_dbg .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",_ebbd );return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072"); };_adaed .Matrix =_abacg ;};_edae :=_fbagb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _edae ==nil {_dbg .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 ;};_adaed .Function =[]PdfFunction {};if _bfebe ,_gfge :=_edae .(*_eg .PdfObjectArray );_gfge {for _ ,_dbebdc :=range _bfebe .Elements (){_aead ,_fgfcb :=_dgbga (_dbebdc );if _fgfcb !=nil {_dbg .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",_fgfcb ); return nil ,_fgfcb ;};_adaed .Function =append (_adaed .Function ,_aead );};}else {_dcfcb ,_gedge :=_dgbga (_edae );if _gedge !=nil {_dbg .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",_gedge ); return nil ,_gedge ;};_adaed .Function =append (_adaed .Function ,_dcfcb );};return &_adaed ,nil ;}; // ToPdfObject returns a stream object. func (_caafb *XObjectForm )ToPdfObject ()_eg .PdfObject {_cfgba :=_caafb ._cdcaf ;_fgedg :=_cfgba .PdfObjectDictionary ;if _caafb .Filter !=nil {_fgedg =_caafb .Filter .MakeStreamDict ();_cfgba .PdfObjectDictionary =_fgedg ;};_fgedg .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074")); _fgedg .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0046\u006f\u0072\u006d"));_fgedg .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_caafb .FormType );_fgedg .SetIfNotNil ("\u0042\u0042\u006f\u0078",_caafb .BBox );_fgedg .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_caafb .Matrix ); if _caafb .Resources !=nil {_fgedg .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_caafb .Resources .ToPdfObject ());};_fgedg .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_caafb .Group );_fgedg .SetIfNotNil ("\u0052\u0065\u0066",_caafb .Ref ); _fgedg .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_caafb .MetaData );_fgedg .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_caafb .PieceInfo );_fgedg .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_caafb .LastModified ); _fgedg .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_caafb .StructParent );_fgedg .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_caafb .StructParents );_fgedg .SetIfNotNil ("\u004f\u0050\u0049",_caafb .OPI ); _fgedg .SetIfNotNil ("\u004f\u0043",_caafb .OC );_fgedg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_caafb .Name );_fgedg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_caafb .Stream ))));_cfgba .Stream =_caafb .Stream ;return _cfgba ; };var _ pdfFont =(*pdfFontSimple )(nil ); // 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 *_eg .PdfObjectName ;Colorants _eg .PdfObject ;Process _eg .PdfObject ;MixingHints _eg .PdfObject ;_bcca *_eg .PdfIndirectObject ;}; // ToPdfObject implements interface PdfModel. func (_cbcb *PdfActionSubmitForm )ToPdfObject ()_eg .PdfObject {_cbcb .PdfAction .ToPdfObject ();_adb :=_cbcb ._ege ;_ffb :=_adb .PdfObject .(*_eg .PdfObjectDictionary );_ffb .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeSubmitForm )));if _cbcb .F !=nil {_ffb .Set ("\u0046",_cbcb .F .ToPdfObject ()); };_ffb .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_cbcb .Fields );_ffb .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_cbcb .Flags );return _adb ;}; // AddPages adds pages to be appended to the end of the source PDF. func (_ggab *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_bade :=range pages {_bade =_bade .Duplicate ();_faadf (_bade );_ggab ._bfce =append (_ggab ._bfce ,_bade );};}; // NewPdfSignature creates a new PdfSignature object. func NewPdfSignature (handler SignatureHandler )*PdfSignature {_gfgbb :=&PdfSignature {Type :_eg .MakeName ("\u0053\u0069\u0067"),Handler :handler };_dgcca :=&pdfSignDictionary {PdfObjectDictionary :_eg .MakeDict (),_fbfb :&handler ,_bcacg :_gfgbb };_gfgbb ._ffae =_eg .MakeIndirectObject (_dgcca ); return _gfgbb ;};func (_cfddc *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _ffgbb []*PdfFieldSignature ;for _ ,_fdba :=range _cfddc .AllFields (){switch _dgbgb :=_fdba .GetContext ().(type ){case *PdfFieldSignature :_bffcg :=_dgbgb ;_ffgbb =append (_ffgbb ,_bffcg ); };};return _ffgbb ;};func (_fbae fontCommon )coreString ()string {_aeebe :="";if _fbae ._eecfe !=nil {_aeebe =_fbae ._eecfe .String ();};return _e .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",_fbae ._fgbbb ,_fbae ._cfab ,_fbae ._dfgf ,_fbae ._aaaf ,_fbae ._fgegd !=nil ,_fbae .fontFlags (),_aeebe ); }; // String implements interface PdfObject. func (_ef *PdfAction )String ()string {_cgd ,_dg :=_ef .ToPdfObject ().(*_eg .PdfIndirectObject );if _dg {return _e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_ef ._cea ,_cgd .PdfObject .String ());};return "";}; // ToPdfObject return the CalGray colorspace as a PDF object (name dictionary). func (_abf *PdfColorspaceCalGray )ToPdfObject ()_eg .PdfObject {_gbcg :=&_eg .PdfObjectArray {};_gbcg .Append (_eg .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_gfgdd :=_eg .MakeDict ();if _abf .WhitePoint !=nil {_gfgdd .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_eg .MakeArray (_eg .MakeFloat (_abf .WhitePoint [0]),_eg .MakeFloat (_abf .WhitePoint [1]),_eg .MakeFloat (_abf .WhitePoint [2]))); }else {_dbg .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 _abf .BlackPoint !=nil {_gfgdd .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_eg .MakeArray (_eg .MakeFloat (_abf .BlackPoint [0]),_eg .MakeFloat (_abf .BlackPoint [1]),_eg .MakeFloat (_abf .BlackPoint [2]))); };_gfgdd .Set ("\u0047\u0061\u006dm\u0061",_eg .MakeFloat (_abf .Gamma ));_gbcg .Append (_gfgdd );if _abf ._gccdc !=nil {_abf ._gccdc .PdfObject =_gbcg ;return _abf ._gccdc ;};return _gbcg ;}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 4 for a CMYK32 device. func (_fgbb *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};func (_ffbc *PdfReader )newPdfActionThreadFromDict (_ggc *_eg .PdfObjectDictionary )(*PdfActionThread ,error ){_cdd ,_acd :=_gbbe (_ggc .Get ("\u0046"));if _acd !=nil {return nil ,_acd ; };return &PdfActionThread {D :_ggc .Get ("\u0044"),B :_ggc .Get ("\u0042"),F :_cdd },nil ;};func (_abga *DSS )generateHashMap (_eaea []*_eg .PdfObjectStream )(map[string ]*_eg .PdfObjectStream ,error ){_fgfb :=map[string ]*_eg .PdfObjectStream {};for _ ,_egac :=range _eaea {_edge ,_cgbg :=_eg .DecodeStream (_egac ); if _cgbg !=nil {return nil ,_cgbg ;};_gdfbcc ,_cgbg :=_cafd (_edge );if _cgbg !=nil {return nil ,_cgbg ;};_fgfb [string (_gdfbcc )]=_egac ;};return _fgfb ,nil ;}; // NewPdfColorspaceDeviceRGB returns a new RGB colorspace object. func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};func (_bgee *PdfReader )newPdfAnnotationFreeTextFromDict (_cfa *_eg .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_bege :=PdfAnnotationFreeText {};_dfa ,_gadc :=_bgee .newPdfAnnotationMarkupFromDict (_cfa ); if _gadc !=nil {return nil ,_gadc ;};_bege .PdfAnnotationMarkup =_dfa ;_bege .DA =_cfa .Get ("\u0044\u0041");_bege .Q =_cfa .Get ("\u0051");_bege .RC =_cfa .Get ("\u0052\u0043");_bege .DS =_cfa .Get ("\u0044\u0053");_bege .CL =_cfa .Get ("\u0043\u004c"); _bege .IT =_cfa .Get ("\u0049\u0054");_bege .BE =_cfa .Get ("\u0042\u0045");_bege .RD =_cfa .Get ("\u0052\u0044");_bege .BS =_cfa .Get ("\u0042\u0053");_bege .LE =_cfa .Get ("\u004c\u0045");return &_bege ,nil ;}; // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // components. The slice should contain a single PdfObjectFloat element. func (_ffbd *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_debfc ,_eefdd :=_eg .GetNumbersAsFloat (objects ); if _eefdd !=nil {return nil ,_eefdd ;};return _ffbd .ColorFromFloats (_debfc );}; // ToPdfObject implements interface PdfModel. func (_decd *PdfFilespec )ToPdfObject ()_eg .PdfObject {_ebbg :=_decd .getDict ();_ebbg .Clear ();_ebbg .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_ebbg .SetIfNotNil ("\u0046\u0053",_decd .FS ); _ebbg .SetIfNotNil ("\u0046",_decd .F );_ebbg .SetIfNotNil ("\u0055\u0046",_decd .UF );_ebbg .SetIfNotNil ("\u0044\u004f\u0053",_decd .DOS );_ebbg .SetIfNotNil ("\u004d\u0061\u0063",_decd .Mac );_ebbg .SetIfNotNil ("\u0055\u006e\u0069\u0078",_decd .Unix ); _ebbg .SetIfNotNil ("\u0049\u0044",_decd .ID );_ebbg .SetIfNotNil ("\u0056",_decd .V );_ebbg .SetIfNotNil ("\u0045\u0046",_decd .EF );_ebbg .SetIfNotNil ("\u0052\u0046",_decd .RF );_ebbg .SetIfNotNil ("\u0044\u0065\u0073\u0063",_decd .Desc );_ebbg .SetIfNotNil ("\u0043\u0049",_decd .CI ); return _decd ._fceg ;}; // NewPdfColorspaceSpecialSeparation returns a new separation color. func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_dgccd :=&PdfColorspaceSpecialSeparation {};return _dgccd ;};func _gbdcb (_gedffc *_eg .PdfObjectDictionary )(*PdfTilingPattern ,error ){_bggg :=&PdfTilingPattern {};_aagda :=_gedffc .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e"); if _aagda ==nil {_dbg .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_cgffc ,_geafg :=_aagda .(*_eg .PdfObjectInteger );if !_geafg {_dbg .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",_aagda ); return nil ,_eg .ErrTypeError ;};_bggg .PaintType =_cgffc ;_aagda =_gedffc .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _aagda ==nil {_dbg .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067"); return nil ,ErrRequiredAttributeMissing ;};_feabff ,_geafg :=_aagda .(*_eg .PdfObjectInteger );if !_geafg {_dbg .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",_aagda ); return nil ,_eg .ErrTypeError ;};_bggg .TilingType =_feabff ;_aagda =_gedffc .Get ("\u0042\u0042\u006f\u0078");if _aagda ==nil {_dbg .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ; };_aagda =_eg .TraceToDirectObject (_aagda );_ggede ,_geafg :=_aagda .(*_eg .PdfObjectArray );if !_geafg {_dbg .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",_aagda ); return nil ,_eg .ErrTypeError ;};_bcdce ,_afadc :=NewPdfRectangle (*_ggede );if _afadc !=nil {_dbg .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_afadc );return nil ,_afadc ;};_bggg .BBox =_bcdce ;_aagda =_gedffc .Get ("\u0058\u0053\u0074e\u0070"); if _aagda ==nil {_dbg .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_abfgd ,_afadc :=_eg .GetNumberAsFloat (_aagda );if _afadc !=nil {_dbg .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",_abfgd ); return nil ,_afadc ;};_bggg .XStep =_eg .MakeFloat (_abfgd );_aagda =_gedffc .Get ("\u0059\u0053\u0074e\u0070");if _aagda ==nil {_dbg .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ; };_agcaf ,_afadc :=_eg .GetNumberAsFloat (_aagda );if _afadc !=nil {_dbg .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",_agcaf ); return nil ,_afadc ;};_bggg .YStep =_eg .MakeFloat (_agcaf );_aagda =_gedffc .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _aagda ==nil {_dbg .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067"); return nil ,ErrRequiredAttributeMissing ;};_gedffc ,_geafg =_eg .TraceToDirectObject (_aagda ).(*_eg .PdfObjectDictionary );if !_geafg {return nil ,_e .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",_aagda ); };_aecag ,_afadc :=NewPdfPageResourcesFromDict (_gedffc );if _afadc !=nil {return nil ,_afadc ;};_bggg .Resources =_aecag ;if _fgdcd :=_gedffc .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_fgdcd !=nil {_fdgd ,_gfaba :=_fgdcd .(*_eg .PdfObjectArray );if !_gfaba {_dbg .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",_fgdcd ); return nil ,_eg .ErrTypeError ;};_bggg .Matrix =_fdgd ;};return _bggg ,nil ;}; // NewPdfAppender creates a new Pdf appender from a Pdf reader. func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_dcge :=&PdfAppender {_gcbb :reader ._addac ,Reader :reader ,_fbdd :reader ._cdggc ,_baeg :reader ._gadge };_geab ,_fdeg :=_dcge ._gcbb .Seek (0,_de .SeekEnd );if _fdeg !=nil {return nil ,_fdeg ; };_dcge ._ade =_geab ;if _ ,_fdeg =_dcge ._gcbb .Seek (0,_de .SeekStart );_fdeg !=nil {return nil ,_fdeg ;};_dcge ._acdg ,_fdeg =NewPdfReader (_dcge ._gcbb );if _fdeg !=nil {return nil ,_fdeg ;};for _ ,_baec :=range _dcge .Reader .GetObjectNums (){if _dcge ._dace < _baec {_dcge ._dace =_baec ; };};_dcge ._cdga =_dcge ._fbdd .GetXrefTable ();_dcge ._cfaf =_dcge ._fbdd .GetXrefOffset ();_dcge ._bfce =append (_dcge ._bfce ,_dcge ._acdg .PageList ...);_dcge ._adge =make (map[_eg .PdfObject ]struct{});_dcge ._bddd =make (map[_eg .PdfObject ]int64 ); _dcge ._agaa =make (map[_eg .PdfObject ]struct{});_dcge ._ggcc =_dcge ._acdg .AcroForm ;_dcge ._aegd =_dcge ._acdg .DSS ;return _dcge ,nil ;}; // IsTiling specifies if the pattern is a tiling pattern. func (_gcccb *PdfPattern )IsTiling ()bool {return _gcccb .PatternType ==1}; // HasXObjectByName checks if an XObject with a specified keyName is defined. func (_dcfgab *PdfPageResources )HasXObjectByName (keyName _eg .PdfObjectName )bool {_dcdac ,_ :=_dcfgab .GetXObjectByName (keyName );return _dcdac !=nil ;}; // Subtype returns the font's "Subtype" field. func (_gefe *PdfFont )Subtype ()string {_dfdf :=_gefe .baseFields ()._fgbbb ;if _feebf ,_feddd :=_gefe ._gdcab .(*pdfFontType0 );_feddd {_dfdf =_dfdf +"\u003a"+_feebf .DescendantFont .Subtype ();};return _dfdf ;}; // AddOutlineTree adds outlines to a PDF file. func (_abgdgg *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_abgdgg ._ebeg =outlineTree ;}; // GetPatternByName gets the pattern specified by keyName. Returns nil if not existing. // The bool flag indicated whether it was found or not. func (_cbdb *PdfPageResources )GetPatternByName (keyName _eg .PdfObjectName )(*PdfPattern ,bool ){if _cbdb .Pattern ==nil {return nil ,false ;};_eafc ,_bcfcc :=_eg .TraceToDirectObject (_cbdb .Pattern ).(*_eg .PdfObjectDictionary );if !_bcfcc {_dbg .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",_cbdb .Pattern ); return nil ,false ;};if _cbdeb :=_eafc .Get (keyName );_cbdeb !=nil {_acfda ,_cdca :=_ceggb (_cbdeb );if _cdca !=nil {_dbg .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",_cdca ); return nil ,false ;};return _acfda ,true ;};return nil ,false ;}; // SetContext set the sub annotation (context). func (_gdda *PdfShading )SetContext (ctx PdfModel ){_gdda ._ccdbe =ctx }; // Decrypt decrypts the PDF file with a specified password. Also tries to // decrypt with an empty password. Returns true if successful, // false otherwise. func (_bagb *PdfReader )Decrypt (password []byte )(bool ,error ){_cbaacg ,_febbfa :=_bagb ._cdggc .Decrypt (password );if _febbfa !=nil {return false ,_febbfa ;};if !_cbaacg {return false ,nil ;};_febbfa =_bagb .loadStructure ();if _febbfa !=nil {_dbg .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",_febbfa ); return false ,_febbfa ;};return true ,nil ;}; // B returns the value of the blue component of the color. func (_cgcde *PdfColorDeviceRGB )B ()float64 {return _cgcde [2]}; // FieldAppearanceGenerator generates appearance stream for a given field. type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_cegcb *PdfAcroForm ,_egcfc *PdfField ,_cfed *PdfAnnotationWidget )(*_eg .PdfObjectDictionary ,error );};func _fafc (_abac *_eg .PdfObjectDictionary )(*PdfFieldText ,error ){_cdab :=&PdfFieldText {}; _cdab .DA ,_ =_eg .GetString (_abac .Get ("\u0044\u0041"));_cdab .Q ,_ =_eg .GetInt (_abac .Get ("\u0051"));_cdab .DS ,_ =_eg .GetString (_abac .Get ("\u0044\u0053"));_cdab .RV =_abac .Get ("\u0052\u0056");_cdab .MaxLen ,_ =_eg .GetInt (_abac .Get ("\u004d\u0061\u0078\u004c\u0065\u006e")); return _cdab ,nil ;}; // 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 (_geecf *LTV )EnableAll (extraCerts []*_ce .Certificate )error {_ebbcaa :=_geecf ._caadf ._acdg .AcroForm ;for _ ,_dbeb :=range _ebbcaa .AllFields (){_adbdd ,_ :=_dbeb .GetContext ().(*PdfFieldSignature );if _adbdd ==nil {continue ;};_efagb :=_adbdd .V ; if _debbc :=_geecf .validateSig (_efagb );_debbc !=nil {_dbg .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",_debbc ); };if _cage :=_geecf .Enable (_efagb ,extraCerts );_cage !=nil {return _cage ;};};return 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 (_eefg *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dbgf :=vals [0];if _dbgf < 0.0||_dbgf > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };_dgec :=vals [1];if _dgec < 0.0||_dgec > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffee :=vals [2];if _ffee < 0.0||_ffee > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };_aefeg :=NewPdfColorCalRGB (_dbgf ,_dgec ,_ffee );return _aefeg ,nil ;};func (_fafg *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};func (_bedgf fontCommon )asPdfObjectDictionary (_bgff string )*_eg .PdfObjectDictionary {if _bgff !=""&&_bedgf ._fgbbb !=""&&_bgff !=_bedgf ._fgbbb {_dbg .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",_bgff ,_bedgf ); }else if _bgff ==""&&_bedgf ._fgbbb ==""{_dbg .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",_bedgf ); }else if _bedgf ._fgbbb ==""{_bedgf ._fgbbb =_bgff ;};_bega :=_eg .MakeDict ();_bega .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0046\u006f\u006e\u0074"));_bega .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_eg .MakeName (_bedgf ._cfab )); _bega .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName (_bedgf ._fgbbb ));if _bedgf ._eecfe !=nil {_bega .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_bedgf ._eecfe .ToPdfObject ());};if _bedgf ._fgegd !=nil {_bega .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_bedgf ._fgegd ); }else if _bedgf ._fffc !=nil {_dega ,_dacd :=_bedgf ._fffc .Stream ();if _dacd !=nil {_dbg .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",_dacd ); }else {_bega .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_dega );};};return _bega ;}; // GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters. func (_bcdgg *Image )GetParamsDict ()*_eg .PdfObjectDictionary {_ebcbdg :=_eg .MakeDict ();_ebcbdg .Set ("\u0057\u0069\u0064t\u0068",_eg .MakeInteger (_bcdgg .Width ));_ebcbdg .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_eg .MakeInteger (_bcdgg .Height )); _ebcbdg .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_eg .MakeInteger (int64 (_bcdgg .ColorComponents )));_ebcbdg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eg .MakeInteger (_bcdgg .BitsPerComponent )); return _ebcbdg ;}; // PdfActionThread represents a thread action. type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _eg .PdfObject ;B _eg .PdfObject ;};func _ffeb (_fbdf _eg .PdfObject )(*PdfFontDescriptor ,error ){_gebd :=&PdfFontDescriptor {};_fbdf =_eg .ResolveReference (_fbdf );if _bafe ,_bgbab :=_fbdf .(*_eg .PdfIndirectObject ); _bgbab {_gebd ._fcfbbf =_bafe ;_fbdf =_bafe .PdfObject ;};_caad ,_edce :=_eg .GetDict (_fbdf );if !_edce {_dbg .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",_fbdf ); return nil ,_eg .ErrTypeError ;};if _cecdd :=_caad .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_cecdd !=nil {_gebd .FontName =_cecdd ;}else {_dbg .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"); };_debcf ,_ :=_eg .GetName (_gebd .FontName );if _gdgdb :=_caad .Get ("\u0054\u0079\u0070\u0065");_gdgdb !=nil {_bbfe ,_ebead :=_gdgdb .(*_eg .PdfObjectName );if !_ebead ||string (*_bbfe )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_dbg .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",_gdgdb ,_debcf ,_gebd .FontName ); };}else {_dbg .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",_debcf ,_gebd .FontName ); };_gebd .FontFamily =_caad .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_gebd .FontStretch =_caad .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_gebd .FontWeight =_caad .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074"); _gebd .Flags =_caad .Get ("\u0046\u006c\u0061g\u0073");_gebd .FontBBox =_caad .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_gebd .ItalicAngle =_caad .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_gebd .Ascent =_caad .Get ("\u0041\u0073\u0063\u0065\u006e\u0074"); _gebd .Descent =_caad .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_gebd .Leading =_caad .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_gebd .CapHeight =_caad .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_gebd .XHeight =_caad .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074"); _gebd .StemV =_caad .Get ("\u0053\u0074\u0065m\u0056");_gebd .StemH =_caad .Get ("\u0053\u0074\u0065m\u0048");_gebd .AvgWidth =_caad .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_gebd .MaxWidth =_caad .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068"); _gebd .MissingWidth =_caad .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_gebd .FontFile =_caad .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_gebd .FontFile2 =_caad .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652"); _gebd .FontFile3 =_caad .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_gebd .CharSet =_caad .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_gebd .Style =_caad .Get ("\u0053\u0074\u0079l\u0065");_gebd .Lang =_caad .Get ("\u004c\u0061\u006e\u0067"); _gebd .FD =_caad .Get ("\u0046\u0044");_gebd .CIDSet =_caad .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _gebd .Flags !=nil {if _acbed ,_eecfg :=_eg .GetIntVal (_gebd .Flags );_eecfg {_gebd ._eaafa =_acbed ;};};if _gebd .MissingWidth !=nil {if _cgca ,_eaege :=_eg .GetNumberAsFloat (_gebd .MissingWidth ); _eaege ==nil {_gebd ._afce =_cgca ;};};if _gebd .FontFile !=nil {_gaga ,_agga :=_gbeab (_gebd .FontFile );if _agga !=nil {return _gebd ,_agga ;};_dbg .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_gaga );_gebd .fontFile =_gaga ; };if _gebd .FontFile2 !=nil {_fggeb ,_dcgfb :=_ab .NewFontFile2FromPdfObject (_gebd .FontFile2 );if _dcgfb !=nil {return _gebd ,_dcgfb ;};_dbg .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_fggeb .String ());_gebd ._bgcbd =&_fggeb ; };return _gebd ,nil ;};func (_dabg *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";}; // ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace. // Format: [/DeviceN names alternateSpace tintTransform] // or: [/DeviceN names alternateSpace tintTransform attributes] func (_edde *PdfColorspaceDeviceN )ToPdfObject ()_eg .PdfObject {_febcd :=_eg .MakeArray (_eg .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_febcd .Append (_edde .ColorantNames );_febcd .Append (_edde .AlternateSpace .ToPdfObject ());_febcd .Append (_edde .TintTransform .ToPdfObject ()); if _edde .Attributes !=nil {_febcd .Append (_edde .Attributes .ToPdfObject ());};if _edde ._cedg !=nil {_edde ._cedg .PdfObject =_febcd ;return _edde ._cedg ;};return _febcd ;}; // NewPdfAnnotationPopup returns a new popup annotation. func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_dcg :=NewPdfAnnotation ();_bbeg :=&PdfAnnotationPopup {};_bbeg .PdfAnnotation =_dcg ;_dcg .SetContext (_bbeg );return _bbeg ;}; // GetContainingPdfObject returns the container of the PdfAcroForm (indirect object). func (_fcafb *PdfAcroForm )GetContainingPdfObject ()_eg .PdfObject {return _fcafb ._edeaf };func _aabab (_bfad *_eg .PdfObjectDictionary )(*PdfShadingType3 ,error ){_eaed :=PdfShadingType3 {};_agafe :=_bfad .Get ("\u0043\u006f\u006f\u0072\u0064\u0073"); if _agafe ==nil {_dbg .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 ; };_agbfe ,_ebde :=_agafe .(*_eg .PdfObjectArray );if !_ebde {_dbg .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",_agafe );return nil ,_eg .ErrTypeError ; };if _agbfe .Len ()!=6{_dbg .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",_agbfe .Len ());return nil ,ErrInvalidAttribute ;};_eaed .Coords =_agbfe ; if _fddff :=_bfad .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_fddff !=nil {_fddff =_eg .TraceToDirectObject (_fddff );_babce ,_bedbd :=_fddff .(*_eg .PdfObjectArray );if !_bedbd {_dbg .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",_fddff ); return nil ,_eg .ErrTypeError ;};_eaed .Domain =_babce ;};_agafe =_bfad .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _agafe ==nil {_dbg .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 ;};_eaed .Function =[]PdfFunction {};if _gafd ,_cbee :=_agafe .(*_eg .PdfObjectArray );_cbee {for _ ,_cggcb :=range _gafd .Elements (){_cfgd ,_fagb :=_dgbga (_cggcb );if _fagb !=nil {_dbg .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",_fagb ); return nil ,_fagb ;};_eaed .Function =append (_eaed .Function ,_cfgd );};}else {_fabf ,_bcfba :=_dgbga (_agafe );if _bcfba !=nil {_dbg .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",_bcfba ); return nil ,_bcfba ;};_eaed .Function =append (_eaed .Function ,_fabf );};if _aabbc :=_bfad .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_aabbc !=nil {_aabbc =_eg .TraceToDirectObject (_aabbc );_eafea ,_ecfb :=_aabbc .(*_eg .PdfObjectArray );if !_ecfb {_dbg .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",_aabbc ); return nil ,_eg .ErrTypeError ;};if _eafea .Len ()!=2{_dbg .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",_eafea .Len ());return nil ,ErrInvalidAttribute ; };_eaed .Extend =_eafea ;};return &_eaed ,nil ;}; // CharMetrics represents width and height metrics of a glyph. type CharMetrics =_ab .CharMetrics ; // Register registers (caches) a model to primitive object relationship. func (_gead *modelManager )Register (primitive _eg .PdfObject ,model PdfModel ){_gead ._eegb [model ]=primitive ;_gead ._bfgf [primitive ]=model ;}; // GetRuneMetrics returns the character metrics for the specified rune. // A bool flag is returned to indicate whether or not the entry was found. func (_gbaaa pdfCIDFontType2 )GetRuneMetrics (r rune )(_ab .CharMetrics ,bool ){_fefe ,_eead :=_gbaaa ._dgefb [r ];if !_eead {_aaef ,_gfbc :=_eg .GetInt (_gbaaa .DW );if !_gfbc {return _ab .CharMetrics {},false ;};_fefe =int (*_aaef );};return _ab .CharMetrics {Wx :float64 (_fefe )},true ; };func _gaggb (_fcddb *_eg .PdfObjectDictionary )(*PdfShadingType5 ,error ){_eeag :=PdfShadingType5 {};_fgag :=_fcddb .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fgag ==nil {_dbg .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 ;};_eeeda ,_dcgcd :=_fgag .(*_eg .PdfObjectInteger );if !_dcgcd {_dbg .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",_fgag ); return nil ,_eg .ErrTypeError ;};_eeag .BitsPerCoordinate =_eeeda ;_fgag =_fcddb .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fgag ==nil {_dbg .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 ;};_eeeda ,_dcgcd =_fgag .(*_eg .PdfObjectInteger );if !_dcgcd {_dbg .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",_fgag ); return nil ,_eg .ErrTypeError ;};_eeag .BitsPerComponent =_eeeda ;_fgag =_fcddb .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _fgag ==nil {_dbg .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 ;};_eeeda ,_dcgcd =_fgag .(*_eg .PdfObjectInteger );if !_dcgcd {_dbg .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",_fgag ); return nil ,_eg .ErrTypeError ;};_eeag .VerticesPerRow =_eeeda ;_fgag =_fcddb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fgag ==nil {_dbg .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 ;};_cfff ,_dcgcd :=_fgag .(*_eg .PdfObjectArray );if !_dcgcd {_dbg .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",_fgag ); return nil ,_eg .ErrTypeError ;};_eeag .Decode =_cfff ;if _dagb :=_fcddb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_dagb !=nil {_eeag .Function =[]PdfFunction {};if _bddce ,_dfca :=_dagb .(*_eg .PdfObjectArray );_dfca {for _ ,_ecdaaa :=range _bddce .Elements (){_bbac ,_fbcag :=_dgbga (_ecdaaa ); if _fbcag !=nil {_dbg .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",_fbcag );return nil ,_fbcag ;};_eeag .Function =append (_eeag .Function ,_bbac ); };}else {_dfgcb ,_fgbdbc :=_dgbga (_dagb );if _fgbdbc !=nil {_dbg .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",_fgbdbc );return nil ,_fgbdbc ; };_eeag .Function =append (_eeag .Function ,_dfgcb );};};return &_eeag ,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 (_dcdgg *PdfOutlineTreeNode )GetContext ()PdfModel {if _ebaac ,_aecbd :=_dcdgg ._dbaeb .(*PdfOutline );_aecbd {return _ebaac ;};if _gcecf ,_fgacgd :=_dcdgg ._dbaeb .(*PdfOutlineItem );_fgacgd {return _gcecf ;};_dbg .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 ;}; // GetExtGState gets the ExtGState specified by keyName. Returns a bool // indicating whether it was found or not. func (_dbdbg *PdfPageResources )GetExtGState (keyName _eg .PdfObjectName )(_eg .PdfObject ,bool ){if _dbdbg .ExtGState ==nil {return nil ,false ;};_faefa ,_dbea :=_eg .TraceToDirectObject (_dbdbg .ExtGState ).(*_eg .PdfObjectDictionary );if !_dbea {_dbg .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",_dbdbg .ExtGState ); return nil ,false ;};if _cead :=_faefa .Get (keyName );_cead !=nil {return _cead ,true ;};return nil ,false ;};func _feed (_aedf _eg .PdfObject )[]*_eg .PdfObjectStream {if _aedf ==nil {return nil ;};_fbbee ,_edgea :=_eg .GetArray (_aedf );if !_edgea ||_fbbee .Len ()==0{return nil ; };_dgfba :=make ([]*_eg .PdfObjectStream ,0,_fbbee .Len ());for _ ,_dafbaba :=range _fbbee .Elements (){if _gfccc ,_cgfab :=_eg .GetStream (_dafbaba );_cgfab {_dgfba =append (_dgfba ,_gfccc );};};return _dgfba ;};func _cdac (_efff _eg .PdfObject ,_acdc bool )(*PdfFont ,error ){_daea ,_fedab ,_acfed :=_cbeab (_efff ); if _acfed !=nil {if _acfed ==ErrType1CFontNotSupported {_gbaf ,_baace :=_debbd (_daea ,_fedab ,nil );if _baace !=nil {_dbg .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",_fedab ,_baace ); return nil ,_acfed ;};return &PdfFont {_gdcab :_gbaf },_acfed ;};return nil ,_acfed ;};_fdgcc :=&PdfFont {};switch _fedab ._fgbbb {case "\u0054\u0079\u0070e\u0030":if !_acdc {_dbg .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",_fedab ); return nil ,_bbd .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_abde ,_fgefb :=_faae (_daea ,_fedab );if _fgefb !=nil {_dbg .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",_fedab ,_fgefb ); return nil ,_fgefb ;};_fdgcc ._gdcab =_abde ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _gbaa *pdfFontSimple ;_gdfe ,_dcfc :=_ab .NewStdFontByName (_ab .StdFontName (_fedab ._cfab )); if _dcfc {_ebbca :=_gecc (_gdfe );_fdgcc ._gdcab =&_ebbca ;_gfgg :=_eg .TraceToDirectObject (_ebbca .ToPdfObject ());_ffab ,_bcgcd ,_daeac :=_cbeab (_gfgg );if _daeac !=nil {_dbg .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",_fedab ,_ebbca ); return nil ,_daeac ;};for _ ,_agagc :=range _daea .Keys (){_ffab .Set (_agagc ,_daea .Get (_agagc ));};_gbaa ,_daeac =_debbd (_ffab ,_bcgcd ,_ebbca ._fcgd );if _daeac !=nil {_dbg .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",_fedab ,_ebbca ); return nil ,_daeac ;};_gbaa ._baga =_ebbca ._baga ;_gbaa ._edgae =_ebbca ._edgae ;}else {_gbaa ,_acfed =_debbd (_daea ,_fedab ,nil );if _acfed !=nil {_dbg .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",_fedab ,_acfed ); return nil ,_acfed ;};};_acfed =_gbaa .addEncoding ();if _acfed !=nil {return nil ,_acfed ;};if _dcfc {_gbaa .updateStandard14Font ();};if _dcfc &&_gbaa ._gccbc ==nil &&_gbaa ._fcgd ==nil {_dbg .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_gbaa ); _dbg .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_gdfe );};if len (_gbaa ._baga )==0{_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_gbaa );};_fdgcc ._gdcab =_gbaa ; case "\u0054\u0079\u0070e\u0033":_ccadf ,_bgdaa :=_dbaea (_daea ,_fedab );if _bgdaa !=nil {_dbg .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",_bgdaa ); return nil ,_bgdaa ;};_fdgcc ._gdcab =_ccadf ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_fcffb ,_gedd :=_adged (_daea ,_fedab );if _gedd !=nil {_dbg .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",_gedd ); return nil ,_gedd ;};_fdgcc ._gdcab =_fcffb ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_dfcb ,_gbea :=_fegb (_daea ,_fedab );if _gbea !=nil {_dbg .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",_fedab ,_gbea ); return nil ,_gbea ;};_fdgcc ._gdcab =_dfcb ;default:_dbg .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",_fedab ); return nil ,_e .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",_fedab );};return _fdgcc ,nil ;}; // GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7. func (_abgdg *PdfShading )GetContext ()PdfModel {return _abgdg ._ccdbe };func (_edbe *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";}; // ToPdfOutline returns a low level PdfOutline object, based on the current // instance. func (_bbegc *Outline )ToPdfOutline ()*PdfOutline {_eafec :=NewPdfOutline ();var _gfbfcc []*PdfOutlineItem ;var _gadca int64 ;var _dfdge *PdfOutlineItem ;for _ ,_abadc :=range _bbegc .Entries {_afae ,_dfeff :=_abadc .ToPdfOutlineItem ();_afae .Parent =&_eafec .PdfOutlineTreeNode ; if _dfdge !=nil {_dfdge .Next =&_afae .PdfOutlineTreeNode ;_afae .Prev =&_dfdge .PdfOutlineTreeNode ;};_gfbfcc =append (_gfbfcc ,_afae );_gadca +=_dfeff ;_dfdge =_afae ;};_ecaa :=int64 (len (_gfbfcc ));_gadca +=_ecaa ;if _ecaa > 0{_eafec .First =&_gfbfcc [0].PdfOutlineTreeNode ; _eafec .Last =&_gfbfcc [_ecaa -1].PdfOutlineTreeNode ;_eafec .Count =&_gadca ;};return _eafec ;};func (_adbda *pdfFontType0 )baseFields ()*fontCommon {return &_adbda .fontCommon };func (_cceg *PdfWriter )updateObjectNumbers (){_fdcgg :=_cceg .ObjNumOffset ; _cffdf :=0;for _ ,_bbada :=range _cceg ._aecabb {_aadf :=int64 (_cffdf +1+_fdcgg );_ccdfg :=true ;if _cceg ._aaedc {if _gffdd ,_deggd :=_cceg ._cacc [_bbada ];_deggd {_aadf =_gffdd ;_ccdfg =false ;};};switch _daebd :=_bbada .(type ){case *_eg .PdfIndirectObject :_daebd .ObjectNumber =_aadf ; _daebd .GenerationNumber =0;case *_eg .PdfObjectStream :_daebd .ObjectNumber =_aadf ;_daebd .GenerationNumber =0;case *_eg .PdfObjectStreams :_daebd .ObjectNumber =_aadf ;_daebd .GenerationNumber =0;default:_dbg .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",_daebd ); continue ;};if _ccdfg {_cffdf ++;};};_cebe :=func (_baeeg _eg .PdfObject )int64 {switch _daagg :=_baeeg .(type ){case *_eg .PdfIndirectObject :return _daagg .ObjectNumber ;case *_eg .PdfObjectStream :return _daagg .ObjectNumber ;case *_eg .PdfObjectStreams :return _daagg .ObjectNumber ; };return 0;};_ae .SliceStable (_cceg ._aecabb ,func (_ddcgg ,_gdcg int )bool {return _cebe (_cceg ._aecabb [_ddcgg ])< _cebe (_cceg ._aecabb [_gdcg ])});}; // PdfAnnotationUnderline represents Underline annotations. // (Section 12.5.6.10). type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eg .PdfObject ;};func (_cgc *PdfReader )newPdfActionRenditionFromDict (_fedb *_eg .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_fedb .Get ("\u0052"),AN :_fedb .Get ("\u0041\u004e"),OP :_fedb .Get ("\u004f\u0050"),JS :_fedb .Get ("\u004a\u0053")},nil ; }; // DecodeArray returns the component range values for the DeviceN colorspace. // [0 1.0 0 1.0 ...] for each color component. func (_eacc *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _febbf []float64 ;for _fgacg :=0;_fgacg < _eacc .GetNumComponents ();_fgacg ++{_febbf =append (_febbf ,0.0,1.0);};return _febbf ;};func _gcbdb (_aedbe *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_aedbe }}; // SetPdfModifiedDate sets the ModDate attribute of the output PDF. func SetPdfModifiedDate (modifiedDate _ee .Time ){_egbeg .Lock ();defer _egbeg .Unlock ();_cced =modifiedDate ;}; // PdfColorspaceDeviceCMYK represents a CMYK32 colorspace. type PdfColorspaceDeviceCMYK struct{}; // NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object. func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_ddgde :=&PdfPageResourcesColorspaces {};_ddgde .Names =[]string {};_ddgde .Colorspaces =map[string ]PdfColorspace {};_ddgde ._abbc =&_eg .PdfIndirectObject {};return _ddgde ;}; // 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{_ceag PdfModel ;_afbe *_eg .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_eg .PdfObjectName ;T *_eg .PdfObjectString ;TU *_eg .PdfObjectString ;TM *_eg .PdfObjectString ;Ff *_eg .PdfObjectInteger ; V _eg .PdfObject ;DV _eg .PdfObject ;AA _eg .PdfObject ;}; // HasExtGState checks whether a font is defined by the specified keyName. func (_dfafd *PdfPageResources )HasExtGState (keyName _eg .PdfObjectName )bool {_ ,_befdg :=_dfafd .GetFontByName (keyName );return _befdg ;};