// // 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 (_ba "bufio";_ca "bytes";_dd "crypto/md5";_gd "crypto/rand";_bd "crypto/sha1";_g "crypto/x509";_cb "encoding/binary";_d "encoding/hex";_gf "errors";_bg "fmt";_gb "github.com/unidoc/pkcs7";_eg "github.com/unidoc/unipdf/v3/common";_ebb "github.com/unidoc/unipdf/v3/core"; _fe "github.com/unidoc/unipdf/v3/core/security";_fa "github.com/unidoc/unipdf/v3/core/security/crypt";_ebe "github.com/unidoc/unipdf/v3/internal/cmap";_dg "github.com/unidoc/unipdf/v3/internal/imageutil";_ce "github.com/unidoc/unipdf/v3/internal/license"; _abg "github.com/unidoc/unipdf/v3/internal/sampling";_da "github.com/unidoc/unipdf/v3/internal/textencoding";_fd "github.com/unidoc/unipdf/v3/internal/timeutils";_fef "github.com/unidoc/unipdf/v3/internal/transform";_bda "github.com/unidoc/unipdf/v3/model/internal/docutil"; _bad "github.com/unidoc/unipdf/v3/model/internal/fonts";_ac "github.com/unidoc/unipdf/v3/model/mdp";_cg "github.com/unidoc/unipdf/v3/model/sigutil";_bc "github.com/unidoc/unipdf/v3/ps";_gbg "github.com/unidoc/unitype";_bfc "golang.org/x/xerrors";_c "hash"; _gdc "image";_e "image/color";_ "image/gif";_ "image/png";_ab "io";_ef "io/ioutil";_cbg "math";_ff "math/rand";_ed "os";_a "regexp";_ae "sort";_aa "strconv";_ee "strings";_bf "sync";_f "time";_cc "unicode";_de "unicode/utf8";); // DefaultImageHandler is the default implementation of the ImageHandler using the standard go library. type DefaultImageHandler struct{};func (_fdfbe *PdfWriter )writeString (_ggfbf string ){if _fdfbe ._bgef !=nil {return ;};_fbdbg ,_cbaba :=_fdfbe ._cbabb .WriteString (_ggfbf );_fdfbe ._afedd +=int64 (_fbdbg );_fdfbe ._bgef =_cbaba ;}; // NewPdfAnnotationCircle returns a new circle annotation. func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_cfg :=NewPdfAnnotation ();_geb :=&PdfAnnotationCircle {};_geb .PdfAnnotation =_cfg ;_geb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cfg .SetContext (_geb );return _geb ;};func (_febag *Image )samplesTrimPadding (_efgc []uint32 )[]uint32 {_fdfge :=_febag .ColorComponents *int (_febag .Width )*int (_febag .Height ); if len (_efgc )==_fdfge {return _efgc ;};_bdbbd :=make ([]uint32 ,_fdfge );_daeae :=int (_febag .Width )*_febag .ColorComponents ;var _aebae ,_bege ,_agabg ,_ggcb int ;_bcefb :=_dg .BytesPerLine (int (_febag .Width ),int (_febag .BitsPerComponent ),_febag .ColorComponents ); for _aebae =0;_aebae < int (_febag .Height );_aebae ++{_bege =_aebae *int (_febag .Width );_agabg =_aebae *_bcefb ;for _ggcb =0;_ggcb < _daeae ;_ggcb ++{_bdbbd [_bege +_ggcb ]=_efgc [_agabg +_ggcb ];};};return _bdbbd ;};func (_agaf *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _agaf ._fbbd }; // NewPdfAnnotationMovie returns a new movie annotation. func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_cdcd :=NewPdfAnnotation ();_ffee :=&PdfAnnotationMovie {};_ffee .PdfAnnotation =_cdcd ;_cdcd .SetContext (_ffee );return _ffee ;};func (_bbgg *PdfReader )newPdfAnnotationProjectionFromDict (_ebbe *_ebb .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_cbgb :=&PdfAnnotationProjection {}; _gcfe ,_aafc :=_bbgg .newPdfAnnotationMarkupFromDict (_ebbe );if _aafc !=nil {return nil ,_aafc ;};_cbgb .PdfAnnotationMarkup =_gcfe ;return _cbgb ,nil ;}; // ToPdfObject implements interface PdfModel. func (_bae *PdfActionGoToE )ToPdfObject ()_ebb .PdfObject {_bae .PdfAction .ToPdfObject ();_gg :=_bae ._abe ;_ea :=_gg .PdfObject .(*_ebb .PdfObjectDictionary );_ea .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeGoToE )));if _bae .F !=nil {_ea .Set ("\u0046",_bae .F .ToPdfObject ()); };_ea .SetIfNotNil ("\u0044",_bae .D );_ea .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_bae .NewWindow );_ea .SetIfNotNil ("\u0054",_bae .T );return _gg ;};func _abba (_ddfbd _ebb .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_eg .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",_ddfbd .String (),_ddfbd ); _cdag :=NewPdfColorspaceSpecialPattern ();if _gggfc ,_eceb :=_ddfbd .(*_ebb .PdfIndirectObject );_eceb {_cdag ._adegb =_gggfc ;};_ddfbd =_ebb .TraceToDirectObject (_ddfbd );if _bfgf ,_gfaf :=_ddfbd .(*_ebb .PdfObjectName );_gfaf {if *_bfgf !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_bg .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065"); };return _cdag ,nil ;};_dced ,_cddc :=_ddfbd .(*_ebb .PdfObjectArray );if !_cddc {_eg .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",_ddfbd ); return nil ,_bg .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _dced .Len ()!=1&&_dced .Len ()!=2{_eg .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",_dced ); return nil ,_bg .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_ddfbd =_dced .Get (0);if _egfcf ,_cfdd :=_ddfbd .(*_ebb .PdfObjectName );_cfdd {if *_egfcf !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_eg .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",_egfcf ); return nil ,_bg .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _dced .Len ()> 1{_ddfbd =_dced .Get (1);_ddfbd =_ebb .TraceToDirectObject (_ddfbd );_bece ,_cdec :=NewPdfColorspaceFromPdfObject (_ddfbd );if _cdec !=nil {return nil ,_cdec ; };_cdag .UnderlyingCS =_bece ;};_eg .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",_cdag .UnderlyingCS ); return _cdag ,nil ;};func _eacbd ()_f .Time {_daddc .Lock ();defer _daddc .Unlock ();return _ccdff }; // NewPdfFilespecFromObj creates and returns a new PdfFilespec object. func NewPdfFilespecFromObj (obj _ebb .PdfObject )(*PdfFilespec ,error ){_edge :=&PdfFilespec {};var _fada *_ebb .PdfObjectDictionary ;if _bfdgg ,_gfdd :=_ebb .GetIndirect (obj );_gfdd {_edge ._gcge =_bfdgg ;_cdcc ,_ffff :=_ebb .GetDict (_bfdgg .PdfObject ); if !_ffff {_eg .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 ,_ebb .ErrTypeError ;};_fada =_cdcc ;}else if _ggefg ,_dbdcd :=_ebb .GetDict (obj ); _dbdcd {_edge ._gcge =_ggefg ;_fada =_ggefg ;}else {_eg .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 ,_ebb .ErrTypeError ;};if _fada ==nil {_eg .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067"); return nil ,_gf .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _cfcf :=_fada .Get ("\u0054\u0079\u0070\u0065");_cfcf !=nil {_fgadf ,_dcccf :=_cfcf .(*_ebb .PdfObjectName );if !_dcccf {_eg .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",_cfcf ); }else {if *_fgadf !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_eg .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",*_fgadf ); };};};if _eedda :=_fada .Get ("\u0046\u0053");_eedda !=nil {_edge .FS =_eedda ;};if _gebaa :=_fada .Get ("\u0046");_gebaa !=nil {_edge .F =_gebaa ;};if _dbga :=_fada .Get ("\u0055\u0046");_dbga !=nil {_edge .UF =_dbga ;};if _bgdag :=_fada .Get ("\u0044\u004f\u0053"); _bgdag !=nil {_edge .DOS =_bgdag ;};if _agcea :=_fada .Get ("\u004d\u0061\u0063");_agcea !=nil {_edge .Mac =_agcea ;};if _deed :=_fada .Get ("\u0055\u006e\u0069\u0078");_deed !=nil {_edge .Unix =_deed ;};if _bbba :=_fada .Get ("\u0049\u0044");_bbba !=nil {_edge .ID =_bbba ; };if _gdcf :=_fada .Get ("\u0056");_gdcf !=nil {_edge .V =_gdcf ;};if _egfe :=_fada .Get ("\u0045\u0046");_egfe !=nil {_edge .EF =_egfe ;};if _eadc :=_fada .Get ("\u0052\u0046");_eadc !=nil {_edge .RF =_eadc ;};if _gcgbb :=_fada .Get ("\u0044\u0065\u0073\u0063"); _gcgbb !=nil {_edge .Desc =_gcgbb ;};if _bbae :=_fada .Get ("\u0043\u0049");_bbae !=nil {_edge .CI =_bbae ;};return _edge ,nil ;}; // NewPdfAnnotationSquiggly returns a new text squiggly annotation. func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_bef :=NewPdfAnnotation ();_bcg :=&PdfAnnotationSquiggly {};_bcg .PdfAnnotation =_bef ;_bcg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bef .SetContext (_bcg );return _bcg ;}; // ToPdfObject implements interface PdfModel. func (_fgd *PdfActionGoToR )ToPdfObject ()_ebb .PdfObject {_fgd .PdfAction .ToPdfObject ();_gbeb :=_fgd ._abe ;_ebdd :=_gbeb .PdfObject .(*_ebb .PdfObjectDictionary );_ebdd .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeGoToR )));if _fgd .F !=nil {_ebdd .Set ("\u0046",_fgd .F .ToPdfObject ()); };_ebdd .SetIfNotNil ("\u0044",_fgd .D );_ebdd .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_fgd .NewWindow );return _gbeb ;}; // FieldImageProvider provides fields images for specified fields. type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );}; // SetOptimizer sets the optimizer to optimize PDF before writing. func (_dcfeg *PdfWriter )SetOptimizer (optimizer Optimizer ){_dcfeg ._aadcd =optimizer }; // PdfActionThread represents a thread action. type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _ebb .PdfObject ;B _ebb .PdfObject ;};func _feaae ()string {_daddc .Lock ();defer _daddc .Unlock ();if len (_afedf )> 0{return _afedf ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o"; };func (_dadec *PdfReader )newPdfOutlineItemFromIndirectObject (_ccgee *_ebb .PdfIndirectObject )(*PdfOutlineItem ,error ){_agffa ,_ebed :=_ccgee .PdfObject .(*_ebb .PdfObjectDictionary );if !_ebed {return nil ,_bg .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"); };_gcdc :=NewPdfOutlineItem ();_fbdc :=_agffa .Get ("\u0054\u0069\u0074l\u0065");if _fbdc ==nil {return nil ,_bg .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"); };_ffebg ,_ddbb :=_ebb .GetString (_fbdc );if !_ddbb {return nil ,_bg .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_fbdc );};_gcdc .Title =_ffebg ;if _cfeec :=_agffa .Get ("\u0043\u006f\u0075n\u0074"); _cfeec !=nil {_cbcfb ,_febb :=_cfeec .(*_ebb .PdfObjectInteger );if !_febb {return nil ,_bg .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_cfeec );};_ccacf :=int64 (*_cbcfb ); _gcdc .Count =&_ccacf ;};if _dcebd :=_agffa .Get ("\u0044\u0065\u0073\u0074");_dcebd !=nil {_gcdc .Dest =_ebb .ResolveReference (_dcebd );if !_dadec ._ceefa {_bcegf :=_dadec .traverseObjectData (_gcdc .Dest );if _bcegf !=nil {return nil ,_bcegf ;};};}; if _dfegb :=_agffa .Get ("\u0041");_dfegb !=nil {_gcdc .A =_ebb .ResolveReference (_dfegb );if !_dadec ._ceefa {_gdgeg :=_dadec .traverseObjectData (_gcdc .A );if _gdgeg !=nil {return nil ,_gdgeg ;};};};if _ddbcc :=_agffa .Get ("\u0053\u0045");_ddbcc !=nil {_gcdc .SE =nil ; };if _dafga :=_agffa .Get ("\u0043");_dafga !=nil {_gcdc .C =_ebb .ResolveReference (_dafga );};if _bggc :=_agffa .Get ("\u0046");_bggc !=nil {_gcdc .F =_ebb .ResolveReference (_bggc );};return _gcdc ,nil ;}; // 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 ;_acac *_ebb .PdfIndirectObject ;};func (_eacaf *LTV )generateVRIKey (_eceff *PdfSignature )(string ,error ){_ffaed ,_fefgg :=_eaef (_eceff .Contents .Bytes ()); if _fefgg !=nil {return "",_fefgg ;};return _ee .ToUpper (_d .EncodeToString (_ffaed )),nil ;}; // 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{_cada PdfModel ;_cdfd *_ebb .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_ebb .PdfObjectName ;T *_ebb .PdfObjectString ;TU *_ebb .PdfObjectString ;TM *_ebb .PdfObjectString ;Ff *_ebb .PdfObjectInteger ; V _ebb .PdfObject ;DV _ebb .PdfObject ;AA _ebb .PdfObject ;VariableText *VariableText ;};func (_baae *PdfReader )newPdfActionJavaScriptFromDict (_edefc *_ebb .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_edefc .Get ("\u004a\u0053")},nil ; };func _afdc (_ggafa *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_ggafa }}; // IsEncrypted returns true if the PDF file is encrypted. func (_badbc *PdfReader )IsEncrypted ()(bool ,error ){return _badbc ._cafdf .IsEncrypted ()}; // GetContentStreams returns the content stream as an array of strings. func (_eaac *PdfPage )GetContentStreams ()([]string ,error ){_cadgf :=_eaac .GetContentStreamObjs ();var _aacf []string ;for _ ,_debg :=range _cadgf {_eeafa ,_ggcbg :=_bfebg (_debg );if _ggcbg !=nil {return nil ,_ggcbg ;};_aacf =append (_aacf ,_eeafa ); };return _aacf ,nil ;}; // GetContainingPdfObject implements interface PdfModel. func (_fea *PdfAction )GetContainingPdfObject ()_ebb .PdfObject {return _fea ._abe };func (_dcga *PdfWriter )writeXRefStreams (_bfabe int ,_bcfe int64 )error {_bdcea :=_bfabe +1;_dcga ._bedfc [_bdcea ]=crossReference {Type :1,ObjectNumber :_bdcea ,Offset :_bcfe }; _gccdc :=_ca .NewBuffer (nil );_daege :=_ebb .MakeArray ();for _aggfc :=0;_aggfc <=_bfabe ;{for ;_aggfc <=_bfabe ;_aggfc ++{_efcea ,_egda :=_dcga ._bedfc [_aggfc ];if _egda &&(!_dcga ._abffb ||_dcga ._abffb &&(_efcea .Type ==1&&_efcea .Offset >=_dcga ._ggbfg ||_efcea .Type ==0)){break ; };};var _aggbde int ;for _aggbde =_aggfc +1;_aggbde <=_bfabe ;_aggbde ++{_gaaed ,_eccag :=_dcga ._bedfc [_aggbde ];if _eccag &&(!_dcga ._abffb ||_dcga ._abffb &&(_gaaed .Type ==1&&_gaaed .Offset > _dcga ._ggbfg )){continue ;};break ;};_daege .Append (_ebb .MakeInteger (int64 (_aggfc )),_ebb .MakeInteger (int64 (_aggbde -_aggfc ))); for _geeaf :=_aggfc ;_geeaf < _aggbde ;_geeaf ++{_cbcea :=_dcga ._bedfc [_geeaf ];switch _cbcea .Type {case 0:_cb .Write (_gccdc ,_cb .BigEndian ,byte (0));_cb .Write (_gccdc ,_cb .BigEndian ,uint32 (0));_cb .Write (_gccdc ,_cb .BigEndian ,uint16 (0xFFFF)); case 1:_cb .Write (_gccdc ,_cb .BigEndian ,byte (1));_cb .Write (_gccdc ,_cb .BigEndian ,uint32 (_cbcea .Offset ));_cb .Write (_gccdc ,_cb .BigEndian ,uint16 (_cbcea .Generation ));case 2:_cb .Write (_gccdc ,_cb .BigEndian ,byte (2));_cb .Write (_gccdc ,_cb .BigEndian ,uint32 (_cbcea .ObjectNumber )); _cb .Write (_gccdc ,_cb .BigEndian ,uint16 (_cbcea .Index ));};};_aggfc =_aggbde +1;};_bdgee ,_abgec :=_ebb .MakeStream (_gccdc .Bytes (),_ebb .NewFlateEncoder ());if _abgec !=nil {return _abgec ;};_bdgee .ObjectNumber =int64 (_bdcea );_bdgee .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0058\u0052\u0065\u0066")); _bdgee .PdfObjectDictionary .Set ("\u0057",_ebb .MakeArray (_ebb .MakeInteger (1),_ebb .MakeInteger (4),_ebb .MakeInteger (2)));_bdgee .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_daege );_bdgee .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_ebb .MakeInteger (int64 (_bdcea +1))); _bdgee .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_dcga ._eadfd );_bdgee .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_dcga ._gegba );if _dcga ._abffb &&_dcga ._bcage > 0{_bdgee .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_ebb .MakeInteger (_dcga ._bcage )); };if _dcga ._cgfde !=nil {_bdgee .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_dcga ._cbcaa );};if _dcga ._eecfe ==nil &&_dcga ._gfdea !=""&&_dcga ._gffb !=""{_dcga ._eecfe =_ebb .MakeArray (_ebb .MakeHexString (_dcga ._gfdea ),_ebb .MakeHexString (_dcga ._gffb )); };if _dcga ._eecfe !=nil {_eg .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_dcga ._eecfe );_bdgee .Set ("\u0049\u0044",_dcga ._eecfe );};_dcga .writeObject (int (_bdgee .ObjectNumber ),_bdgee );return nil ;}; // NewPdfActionGoTo3DView returns a new "goTo3DView" action. func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_fbb :=NewPdfAction ();_ebd :=&PdfActionGoTo3DView {};_ebd .PdfAction =_fbb ;_fbb .SetContext (_ebd );return _ebd ;}; // SetDocInfo sets the document /Info metadata. // This will overwrite any globally declared document info. func (_ebdf *PdfAppender )SetDocInfo (info *PdfInfo ){_ebdf ._eeee =info }; // SetDate sets the `M` field of the signature. func (_fbagd *PdfSignature )SetDate (date _f .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";};_fbagd .M =_ebb .MakeString (date .Format (format )); }; // 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 _ebb .PdfObject )(_ebb .PdfObjectName ,error ){var _cdbg *_ebb .PdfObjectName ;var _ggeb *_ebb .PdfObjectArray ;if _cfccf ,_bcbbf :=obj .(*_ebb .PdfIndirectObject );_bcbbf {if _ddfc ,_dabe :=_cfccf .PdfObject .(*_ebb .PdfObjectArray ); _dabe {_ggeb =_ddfc ;}else if _bfbgf ,_faba :=_cfccf .PdfObject .(*_ebb .PdfObjectName );_faba {_cdbg =_bfbgf ;};}else if _gdcdg ,_eeca :=obj .(*_ebb .PdfObjectArray );_eeca {_ggeb =_gdcdg ;}else if _fabe ,_fdde :=obj .(*_ebb .PdfObjectName );_fdde {_cdbg =_fabe ; };if _cdbg !=nil {switch *_cdbg {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 *_cdbg ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_cdbg ,nil ; };};if _ggeb !=nil &&_ggeb .Len ()> 0{if _gbacc ,_edcec :=_ggeb .Get (0).(*_ebb .PdfObjectName );_edcec {switch *_gbacc {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 _ggeb .Len ()==1{return *_gbacc ,nil ; };case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_gbacc ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_gbacc ,nil ; case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_gbacc ,nil ;};};};return "",nil ;}; // ToOutlineTree returns a low level PdfOutlineTreeNode object, based on // the current instance. func (_cgaea *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_cgaea .ToPdfOutline ().PdfOutlineTreeNode ;};func _afag (_aebfb *_ebb .PdfIndirectObject ,_ggdddb *_ebb .PdfObjectDictionary )(*DSS ,error ){if _aebfb ==nil {_aebfb =_ebb .MakeIndirectObject (nil ); };_aebfb .PdfObject =_ebb .MakeDict ();_bbdfe :=map[string ]*VRI {};if _ebfgg ,_dace :=_ebb .GetDict (_ggdddb .Get ("\u0056\u0052\u0049"));_dace {for _ ,_dacg :=range _ebfgg .Keys (){if _adege ,_ageec :=_ebb .GetDict (_ebfgg .Get (_dacg ));_ageec {_bbdfe [_ee .ToUpper (_dacg .String ())]=_bcbe (_adege ); };};};return &DSS {Certs :_ffaa (_ggdddb .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_ffaa (_ggdddb .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_ffaa (_ggdddb .Get ("\u0043\u0052\u004c\u0073")),VRI :_bbdfe ,_fcgb :_aebfb },nil ;}; // Set applies flag fl to the flag's bitmask and returns the combined flag. func (_gbcf FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_gbcf .Mask ()|fl .Mask ())}; // NewPdfColorspaceDeviceGray returns a new grayscale colorspace. func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};func (_dbfee *PdfWriter )optimize ()error {if _dbfee ._aadcd ==nil {return nil ;};var _fgdf error ;_dbfee ._ebdgg ,_fgdf =_dbfee ._aadcd .Optimize (_dbfee ._ebdgg ); if _fgdf !=nil {return _fgdf ;};_accgc :=make (map[_ebb .PdfObject ]struct{},len (_dbfee ._ebdgg ));for _ ,_gaeff :=range _dbfee ._ebdgg {_accgc [_gaeff ]=struct{}{};};_dbfee ._ffffd =_accgc ;return nil ;}; // PdfActionSetOCGState represents a SetOCGState action. type PdfActionSetOCGState struct{*PdfAction ;State _ebb .PdfObject ;PreserveRB _ebb .PdfObject ;}; // NewPdfAnnotationSound returns a new sound annotation. func NewPdfAnnotationSound ()*PdfAnnotationSound {_eac :=NewPdfAnnotation ();_feae :=&PdfAnnotationSound {};_feae .PdfAnnotation =_eac ;_feae .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eac .SetContext (_feae );return _feae ;}; // PdfActionMovie represents a movie action. type PdfActionMovie struct{*PdfAction ;Annotation _ebb .PdfObject ;T _ebb .PdfObject ;Operation _ebb .PdfObject ;}; // GetShadingByName gets the shading specified by keyName. Returns nil if not existing. // The bool flag indicated whether it was found or not. func (_dcgb *PdfPageResources )GetShadingByName (keyName _ebb .PdfObjectName )(*PdfShading ,bool ){if _dcgb .Shading ==nil {return nil ,false ;};_egfcg ,_cbbb :=_ebb .TraceToDirectObject (_dcgb .Shading ).(*_ebb .PdfObjectDictionary );if !_cbbb {_eg .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",_dcgb .Shading ); return nil ,false ;};if _gccd :=_egfcg .Get (keyName );_gccd !=nil {_fgcgf ,_fdceb :=_ggdfc (_gccd );if _fdceb !=nil {_eg .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",_fdceb ); return nil ,false ;};return _fgcgf ,true ;};return nil ,false ;}; // NewPdfColorspaceICCBased returns a new ICCBased colorspace object. func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_bebbf :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_bg .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029"); };_bebbf .N =N ;return _bebbf ,nil ;}; // GetContainingPdfObject returns the XObject Form's containing object (indirect object). func (_cgadf *XObjectForm )GetContainingPdfObject ()_ebb .PdfObject {return _cgadf ._gebcd };func _ccef (_agdbd _ebb .PdfObject )(*PdfPattern ,error ){_gafde :=&PdfPattern {};var _ceaa *_ebb .PdfObjectDictionary ;if _eaaec ,_decb :=_ebb .GetIndirect (_agdbd ); _decb {_gafde ._dcddc =_eaaec ;_afgge ,_fbag :=_eaaec .PdfObject .(*_ebb .PdfObjectDictionary );if !_fbag {_eg .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",_eaaec .PdfObject ); return nil ,_ebb .ErrTypeError ;};_ceaa =_afgge ;}else if _cegcb ,_gfcae :=_ebb .GetStream (_agdbd );_gfcae {_gafde ._dcddc =_cegcb ;_ceaa =_cegcb .PdfObjectDictionary ;}else {_eg .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",_agdbd ); return nil ,_ebb .ErrTypeError ;};_adcaa :=_ceaa .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _adcaa ==nil {_eg .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 ;};_eefed ,_ecaac :=_adcaa .(*_ebb .PdfObjectInteger );if !_ecaac {_eg .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",_adcaa ); return nil ,_ebb .ErrTypeError ;};if *_eefed !=1&&*_eefed !=2{_eg .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",*_eefed );return nil ,_ebb .ErrRangeError ; };_gafde .PatternType =int64 (*_eefed );switch *_eefed {case 1:_gfcgf ,_gdeec :=_ggbd (_ceaa );if _gdeec !=nil {return nil ,_gdeec ;};_gfcgf .PdfPattern =_gafde ;_gafde ._ffagg =_gfcgf ;return _gafde ,nil ;case 2:_abeg ,_bdcf :=_cdbaf (_ceaa );if _bdcf !=nil {return nil ,_bdcf ; };_abeg .PdfPattern =_gafde ;_gafde ._ffagg =_abeg ;return _gafde ,nil ;};return nil ,_gf .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 3 for a Lab device. func (_bebe *PdfColorspaceLab )GetNumComponents ()int {return 3}; // GetDocMDPPermission returns the DocMDP level of the restrictions func (_cdbcc *PdfSignature )GetDocMDPPermission ()(_ac .DocMDPPermission ,bool ){for _ ,_egaba :=range _cdbcc .Reference .Elements (){if _baebf ,_gdcag :=_ebb .GetDict (_egaba );_gdcag {if _edcdd ,_dcgc :=_ebb .GetNameVal (_baebf .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064")); _dcgc &&_edcdd =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _bfegg ,_dfbgbd :=_ebb .GetDict (_baebf .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_dfbgbd {if P ,_dbdgf :=_ebb .GetIntVal (_bfegg .Get ("\u0050")); _dbdgf {return _ac .DocMDPPermission (P ),true ;};};};};};return 0,false ;};func _ccgda (_adaea *_ebb .PdfObjectDictionary )(*PdfShadingType4 ,error ){_eggcb :=PdfShadingType4 {};_bffcd :=_adaea .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065"); if _bffcd ==nil {_eg .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 ;};_aegff ,_ceed :=_bffcd .(*_ebb .PdfObjectInteger );if !_ceed {_eg .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",_bffcd ); return nil ,_ebb .ErrTypeError ;};_eggcb .BitsPerCoordinate =_aegff ;_bffcd =_adaea .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _bffcd ==nil {_eg .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 ;};_aegff ,_ceed =_bffcd .(*_ebb .PdfObjectInteger );if !_ceed {_eg .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",_bffcd ); return nil ,_ebb .ErrTypeError ;};_eggcb .BitsPerComponent =_aegff ;_bffcd =_adaea .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _bffcd ==nil {_eg .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 ;};_aegff ,_ceed =_bffcd .(*_ebb .PdfObjectInteger );if !_ceed {_eg .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",_bffcd ); return nil ,_ebb .ErrTypeError ;};_eggcb .BitsPerComponent =_aegff ;_bffcd =_adaea .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _bffcd ==nil {_eg .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 ;};_ddefb ,_ceed :=_bffcd .(*_ebb .PdfObjectArray );if !_ceed {_eg .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",_bffcd ); return nil ,_ebb .ErrTypeError ;};_eggcb .Decode =_ddefb ;_bffcd =_adaea .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _bffcd ==nil {_eg .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 ;};_eggcb .Function =[]PdfFunction {};if _aeaee ,_ebbga :=_bffcd .(*_ebb .PdfObjectArray );_ebbga {for _ ,_gceg :=range _aeaee .Elements (){_adef ,_cdbgb :=_aagg (_gceg );if _cdbgb !=nil {_eg .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",_cdbgb ); return nil ,_cdbgb ;};_eggcb .Function =append (_eggcb .Function ,_adef );};}else {_gdda ,_bfeed :=_aagg (_bffcd );if _bfeed !=nil {_eg .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",_bfeed ); return nil ,_bfeed ;};_eggcb .Function =append (_eggcb .Function ,_gdda );};return &_eggcb ,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 []*_ebb .PdfObjectStream ;OCSP []*_ebb .PdfObjectStream ;CRL []*_ebb .PdfObjectStream ;TU *_ebb .PdfObjectString ;TS *_ebb .PdfObjectString ;};var _cbcfg =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"}; func _gfed (_cfdc ,_ceccd string )string {if _ee .Contains (_cfdc ,"\u002b"){_ccfag :=_ee .Split (_cfdc ,"\u002b");if len (_ccfag )==2{_cfdc =_ccfag [1];};};return _ceccd +"\u002b"+_cfdc ;}; // NewPdfActionResetForm returns a new "reset form" action. func NewPdfActionResetForm ()*PdfActionResetForm {_dac :=NewPdfAction ();_abb :=&PdfActionResetForm {};_abb .PdfAction =_dac ;_dac .SetContext (_abb );return _abb ;};func (_egeg *DSS )addOCSPs (_bdbaa [][]byte )([]*_ebb .PdfObjectStream ,error ){return _egeg .add (&_egeg .OCSPs ,_egeg ._cadd ,_bdbaa ); }; // SetXObjectFormByName adds the provided XObjectForm to the page resources. // The added XObjectForm is identified by the specified name. func (_dffa *PdfPageResources )SetXObjectFormByName (keyName _ebb .PdfObjectName ,xform *XObjectForm )error {_fegb :=xform .ToPdfObject ().(*_ebb .PdfObjectStream );_fbdb :=_dffa .SetXObjectByName (keyName ,_fegb );return _fbdb ;};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);); // ToPdfObject implements interface PdfModel. func (_agee *PdfAnnotationRichMedia )ToPdfObject ()_ebb .PdfObject {_agee .PdfAnnotation .ToPdfObject ();_dbadg :=_agee ._bdcd ;_cag :=_dbadg .PdfObject .(*_ebb .PdfObjectDictionary );_cag .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a")); _cag .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_agee .RichMediaSettings );_cag .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_agee .RichMediaContent ); return _dbadg ;};func (_dafe *DSS )generateHashMap (_fbed []*_ebb .PdfObjectStream )(map[string ]*_ebb .PdfObjectStream ,error ){_cbdd :=map[string ]*_ebb .PdfObjectStream {};for _ ,_bdab :=range _fbed {_acaf ,_gfga :=_ebb .DecodeStream (_bdab );if _gfga !=nil {return nil ,_gfga ; };_geddd ,_gfga :=_eaef (_acaf );if _gfga !=nil {return nil ,_gfga ;};_cbdd [string (_geddd )]=_bdab ;};return _cbdd ,nil ;};func (_faed *PdfReader )newPdfAnnotation3DFromDict (_efcc *_ebb .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_fdfc :=PdfAnnotation3D {}; _fdfc .T3DD =_efcc .Get ("\u0033\u0044\u0044");_fdfc .T3DV =_efcc .Get ("\u0033\u0044\u0056");_fdfc .T3DA =_efcc .Get ("\u0033\u0044\u0041");_fdfc .T3DI =_efcc .Get ("\u0033\u0044\u0049");_fdfc .T3DB =_efcc .Get ("\u0033\u0044\u0042");return &_fdfc ,nil ; }; // PdfAppender appends new PDF content to an existing PDF document via incremental updates. type PdfAppender struct{_ecce _ab .ReadSeeker ;_gege *_ebb .PdfParser ;_acfe *PdfReader ;Reader *PdfReader ;_dfbg []*PdfPage ;_bfef *PdfAcroForm ;_eged *DSS ;_eaaa *Permissions ;_acfd _ebb .XrefTable ;_cfag int64 ;_gbddb int ;_bfeg []_ebb .PdfObject ;_ddfg map[_ebb .PdfObject ]struct{}; _gbfa map[_ebb .PdfObject ]int64 ;_eebc map[_ebb .PdfObject ]struct{};_agb map[_ebb .PdfObject ]struct{};_bee int64 ;_adca bool ;_accg string ;_gfba *EncryptOptions ;_eeee *PdfInfo ;}; // PdfAnnotationUnderline represents Underline annotations. // (Section 12.5.6.10). type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ebb .PdfObject ;}; // GetStandardApplier gets currently used StandardApplier.. func (_aaaac *PdfWriter )GetStandardApplier ()StandardApplier {return _aaaac ._cafac }; // Duplicate creates a duplicate page based on the current one and returns it. func (_cced *PdfPage )Duplicate ()*PdfPage {_fcggf :=*_cced ;_fcggf ._cdbfde =_ebb .MakeDict ();_fcggf ._defbb =_ebb .MakeIndirectObject (_fcggf ._cdbfde );return &_fcggf ;};func (_fgagc *PdfWriter )writeTrailer (_dcfae int ){_fgagc .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a"); for _cbcaaa :=0;_cbcaaa <=_dcfae ;{for ;_cbcaaa <=_dcfae ;_cbcaaa ++{_abadab ,_baedg :=_fgagc ._bedfc [_cbcaaa ];if _baedg &&(!_fgagc ._abffb ||_fgagc ._abffb &&(_abadab .Type ==1&&_abadab .Offset >=_fgagc ._ggbfg ||_abadab .Type ==0)){break ;};};var _edefdg int ; for _edefdg =_cbcaaa +1;_edefdg <=_dcfae ;_edefdg ++{_geabd ,_gdfa :=_fgagc ._bedfc [_edefdg ];if _gdfa &&(!_fgagc ._abffb ||_fgagc ._abffb &&(_geabd .Type ==1&&_geabd .Offset > _fgagc ._ggbfg )){continue ;};break ;};_bbda :=_bg .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_cbcaaa ,_edefdg -_cbcaaa ); _fgagc .writeString (_bbda );for _egege :=_cbcaaa ;_egege < _edefdg ;_egege ++{_fcgec :=_fgagc ._bedfc [_egege ];switch _fcgec .Type {case 0:_bbda =_bg .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535); _fgagc .writeString (_bbda );case 1:_bbda =_bg .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_fcgec .Offset ,0);_fgagc .writeString (_bbda );};};_cbcaaa =_edefdg +1;};_bgcce :=_ebb .MakeDict ();_bgcce .Set ("\u0049\u006e\u0066\u006f",_fgagc ._eadfd ); _bgcce .Set ("\u0052\u006f\u006f\u0074",_fgagc ._gegba );_bgcce .Set ("\u0053\u0069\u007a\u0065",_ebb .MakeInteger (int64 (_dcfae +1)));if _fgagc ._abffb &&_fgagc ._bcage > 0{_bgcce .Set ("\u0050\u0072\u0065\u0076",_ebb .MakeInteger (_fgagc ._bcage )); };if _fgagc ._cgfde !=nil {_bgcce .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_fgagc ._cbcaa );};if _fgagc ._eecfe ==nil &&_fgagc ._gfdea !=""&&_fgagc ._gffb !=""{_fgagc ._eecfe =_ebb .MakeArray (_ebb .MakeHexString (_fgagc ._gfdea ),_ebb .MakeHexString (_fgagc ._gffb )); };if _fgagc ._eecfe !=nil {_bgcce .Set ("\u0049\u0044",_fgagc ._eecfe );_eg .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_fgagc ._eecfe );};_fgagc .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_fgagc .writeString (_bgcce .WriteString ()); _fgagc .writeString ("\u000a");}; // ToPdfObject implements interface PdfModel. func (_ddgcc *PdfAnnotationTrapNet )ToPdfObject ()_ebb .PdfObject {_ddgcc .PdfAnnotation .ToPdfObject ();_abee :=_ddgcc ._bdcd ;_cfgc :=_abee .PdfObject .(*_ebb .PdfObjectDictionary );_cfgc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074")); return _abee ;}; // BytesToCharcodes converts the bytes in a PDF string to character codes. func (_deaaf *PdfFont )BytesToCharcodes (data []byte )[]_da .CharCode {_eg .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 _fcffa ,_dfe :=_deaaf ._ebcad .(*pdfFontType0 );_dfe &&_fcffa ._efeb !=nil {if _bacg ,_egcfd :=_fcffa .bytesToCharcodes (data );_egcfd {return _bacg ;};};var (_cfaad =make ([]_da .CharCode ,0,len (data )+len (data )%2);_cadg =_deaaf .baseFields ();); if _cadg ._dcdd !=nil {if _fgcce ,_bfgc :=_cadg ._dcdd .BytesToCharcodes (data );_bfgc {for _ ,_fafda :=range _fgcce {_cfaad =append (_cfaad ,_da .CharCode (_fafda ));};return _cfaad ;};};if _cadg .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]}; };if len (data )%2!=0{_eg .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 _cefgd :=0;_cefgd < len (data );_cefgd +=2{_ffde :=uint16 (data [_cefgd ])<<8|uint16 (data [_cefgd +1]);_cfaad =append (_cfaad ,_da .CharCode (_ffde ));};}else {for _ ,_dgaag :=range data {_cfaad =append (_cfaad ,_da .CharCode (_dgaag )); };};return _cfaad ;};func (_badda *PdfReader )newPdfAnnotationLineFromDict (_gdf *_ebb .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_dfc :=PdfAnnotationLine {};_age ,_bbaa :=_badda .newPdfAnnotationMarkupFromDict (_gdf );if _bbaa !=nil {return nil ,_bbaa ; };_dfc .PdfAnnotationMarkup =_age ;_dfc .L =_gdf .Get ("\u004c");_dfc .BS =_gdf .Get ("\u0042\u0053");_dfc .LE =_gdf .Get ("\u004c\u0045");_dfc .IC =_gdf .Get ("\u0049\u0043");_dfc .LL =_gdf .Get ("\u004c\u004c");_dfc .LLE =_gdf .Get ("\u004c\u004c\u0045"); _dfc .Cap =_gdf .Get ("\u0043\u0061\u0070");_dfc .IT =_gdf .Get ("\u0049\u0054");_dfc .LLO =_gdf .Get ("\u004c\u004c\u004f");_dfc .CP =_gdf .Get ("\u0043\u0050");_dfc .Measure =_gdf .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");_dfc .CO =_gdf .Get ("\u0043\u004f"); return &_dfc ,nil ;}; // K returns the value of the key component of the color. func (_abdgd *PdfColorDeviceCMYK )K ()float64 {return _abdgd [3]}; // ToPdfObject implements interface PdfModel. func (_ebge *PdfAnnotationInk )ToPdfObject ()_ebb .PdfObject {_ebge .PdfAnnotation .ToPdfObject ();_aebf :=_ebge ._bdcd ;_bbbg :=_aebf .PdfObject .(*_ebb .PdfObjectDictionary );_ebge .PdfAnnotationMarkup .appendToPdfDictionary (_bbbg );_bbbg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0049\u006e\u006b")); _bbbg .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_ebge .InkList );_bbbg .SetIfNotNil ("\u0042\u0053",_ebge .BS );return _aebf ;}; // 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 (_ggc PdfColor )(PdfColor ,error ); // GetNumComponents returns the number of components in the PdfColorspace. GetNumComponents ()int ; // ToPdfObject returns a PdfObject representation of the PdfColorspace. ToPdfObject ()_ebb .PdfObject ; // ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each // PdfObject represents a numeric value. ColorFromPdfObjects (_deeb []_ebb .PdfObject )(PdfColor ,error ); // ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace. ColorFromFloats (_ecee []float64 )(PdfColor ,error ); // DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component. DecodeArray ()[]float64 ;}; // NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN. func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_bagc :=&PdfColorspaceDeviceN {};return _bagc };func _agcbd (_eefg _ebb .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_bcda :=NewPdfColorspaceSpecialSeparation ();if _cggg ,_gedd :=_eefg .(*_ebb .PdfIndirectObject ); _gedd {_bcda ._cded =_cggg ;};_eefg =_ebb .TraceToDirectObject (_eefg );_cfccb ,_eecef :=_eefg .(*_ebb .PdfObjectArray );if !_eecef {return nil ,_bg .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 _cfccb .Len ()!=4{return nil ,_bg .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");};_eefg =_cfccb .Get (0); _agfc ,_eecef :=_eefg .(*_ebb .PdfObjectName );if !_eecef {return nil ,_bg .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 *_agfc !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_bg .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"); };_eefg =_cfccb .Get (1);_agfc ,_eecef =_eefg .(*_ebb .PdfObjectName );if !_eecef {return nil ,_bg .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"); };_bcda .ColorantName =_agfc ;_eefg =_cfccb .Get (2);_gfbg ,_aedga :=NewPdfColorspaceFromPdfObject (_eefg );if _aedga !=nil {return nil ,_aedga ;};_bcda .AlternateSpace =_gfbg ;_gcfc ,_aedga :=_aagg (_cfccb .Get (3));if _aedga !=nil {return nil ,_aedga ; };_bcda .TintTransform =_gcfc ;return _bcda ,nil ;};func _abeb (_fegc *PdfField ,_ggff _ebb .PdfObject )error {switch _fegc .GetContext ().(type ){case *PdfFieldText :switch _cbbf :=_ggff .(type ){case *_ebb .PdfObjectName :_afcc :=_cbbf ;_eg .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",_afcc .String ()); _fegc .V =_ebb .MakeEncodedString (_cbbf .String (),true );case *_ebb .PdfObjectString :_fegc .V =_ebb .MakeEncodedString (_cbbf .String (),true );default:_eg .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",_cbbf ,_cbbf ); };case *PdfFieldButton :switch _ggff .(type ){case *_ebb .PdfObjectName :if len (_ggff .String ())> 0{_fegc .V =_ggff ;_bgfag (_fegc ,_ggff );};case *_ebb .PdfObjectString :if len (_ggff .String ())> 0{_fegc .V =_ebb .MakeName (_ggff .String ());_bgfag (_fegc ,_fegc .V ); };default:_eg .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",_fegc .PartialName (),_ggff );_fegc .V =_ggff ;};case *PdfFieldChoice :switch _ggff .(type ){case *_ebb .PdfObjectName :if len (_ggff .String ())> 0{_fegc .V =_ebb .MakeString (_ggff .String ()); _bgfag (_fegc ,_ggff );};case *_ebb .PdfObjectString :if len (_ggff .String ())> 0{_fegc .V =_ggff ;_bgfag (_fegc ,_ebb .MakeName (_ggff .String ()));};default:_eg .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",_fegc .PartialName (),_ggff ); _fegc .V =_ggff ;};case *PdfFieldSignature :_eg .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",_fegc .PartialName (),_ggff ); };return nil ;}; // NewCustomPdfOutputIntent creates a new custom PdfOutputIntent. func NewCustomPdfOutputIntent (outputCondition ,outputConditionIdentifier ,info string ,destOutputProfile []byte ,colorComponents int )*PdfOutputIntent {return &PdfOutputIntent {Type :"\u004f\u0075\u0074p\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074",OutputCondition :outputCondition ,OutputConditionIdentifier :outputConditionIdentifier ,Info :info ,DestOutputProfile :destOutputProfile ,_faeb :_ebb .MakeDict (),ColorComponents :colorComponents }; }; // GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number. func (_bfeeb *PdfReader )GetIndirectObjectByNumber (number int )(_ebb .PdfObject ,error ){_bbcfe ,_aefbg :=_bfeeb ._cafdf .LookupByNumber (number );return _bbcfe ,_aefbg ;};type pdfCIDFontType2 struct{fontCommon ;_ddea *_ebb .PdfIndirectObject ;_aacb _da .TextEncoder ; // Table 117 – Entries in a CIDFont dictionary (page 269) // Dictionary that defines the character collection of the CIDFont (required). // See Table 116. CIDSystemInfo *_ebb .PdfObjectDictionary ; // Glyph metrics fields (optional). DW _ebb .PdfObject ;W _ebb .PdfObject ;DW2 _ebb .PdfObject ;W2 _ebb .PdfObject ; // CIDs to glyph indices mapping (optional). CIDToGIDMap _ebb .PdfObject ;_dgbc map[_da .CharCode ]float64 ;_bagcb float64 ;_dceb map[rune ]int ;}; // Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly. func (_fabab *PdfRectangle )Normalize (){if _fabab .Llx > _fabab .Urx {_fabab .Llx ,_fabab .Urx =_fabab .Urx ,_fabab .Llx ;};if _fabab .Lly > _fabab .Ury {_fabab .Lly ,_fabab .Ury =_fabab .Ury ,_fabab .Lly ;};}; // NewPdfActionNamed returns a new "named" action. func NewPdfActionNamed ()*PdfActionNamed {_edb :=NewPdfAction ();_eea :=&PdfActionNamed {};_eea .PdfAction =_edb ;_edb .SetContext (_eea );return _eea ;}; // GetPdfInfo returns the PDF info dictionary. func (_bgaec *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_fbaee ,_bcad :=_bgaec .GetTrailer ();if _bcad !=nil {return nil ,_bcad ;};var _eecgb *_ebb .PdfObjectDictionary ;_fdeab :=_fbaee .Get ("\u0049\u006e\u0066\u006f");switch _adaf :=_fdeab .(type ){case *_ebb .PdfObjectReference :_ffgac :=_adaf ; _fdeab ,_bcad =_bgaec .GetIndirectObjectByNumber (int (_ffgac .ObjectNumber ));_fdeab =_ebb .TraceToDirectObject (_fdeab );if _bcad !=nil {return nil ,_bcad ;};_eecgb ,_ =_fdeab .(*_ebb .PdfObjectDictionary );case *_ebb .PdfObjectDictionary :_eecgb =_adaf ; };if _eecgb ==nil {return nil ,_gf .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_afgec ,_bcad :=NewPdfInfoFromObject (_eecgb );if _bcad !=nil {return nil ,_bcad ; };return _afgec ,nil ;};type pdfFontSimple struct{fontCommon ;_fafaf *_ebb .PdfIndirectObject ;_cdff map[_da .CharCode ]float64 ;_ebcb _da .TextEncoder ;_dacee _da .TextEncoder ;_adbd *PdfFontDescriptor ; // Encoding is subject to limitations that are described in 9.6.6, "Character Encoding". // BaseFont is derived differently. FirstChar _ebb .PdfObject ;LastChar _ebb .PdfObject ;Widths _ebb .PdfObject ;Encoding _ebb .PdfObject ;_ddgd *_bad .RuneCharSafeMap ;};var (_aabec =_a .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n"); _afgea =_a .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");_bdddd =_a .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"); _aeecf ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_ccdgc ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_cfgg ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063"; ); // GetBorderWidth returns the border style's width. func (_fbbg *PdfBorderStyle )GetBorderWidth ()float64 {if _fbbg .W ==nil {return 1;};return *_fbbg .W ;};func (_eca *PdfReader )newPdfAnnotationScreenFromDict (_aace *_ebb .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_eded :=PdfAnnotationScreen {}; _eded .T =_aace .Get ("\u0054");_eded .MK =_aace .Get ("\u004d\u004b");_eded .A =_aace .Get ("\u0041");_eded .AA =_aace .Get ("\u0041\u0041");return &_eded ,nil ;};func (_cdd *PdfReader )newPdfAnnotationStampFromDict (_bca *_ebb .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_eacc :=PdfAnnotationStamp {}; _ccd ,_geg :=_cdd .newPdfAnnotationMarkupFromDict (_bca );if _geg !=nil {return nil ,_geg ;};_eacc .PdfAnnotationMarkup =_ccd ;_eacc .Name =_bca .Get ("\u004e\u0061\u006d\u0065");return &_eacc ,nil ;};func (_afec *PdfReader )loadPerms ()(*Permissions ,error ){if _bcggb :=_afec ._fdgda .Get ("\u0050\u0065\u0072m\u0073"); _bcggb !=nil {if _ddcbf ,_eggfd :=_ebb .GetDict (_bcggb );_eggfd {_cbgaa :=_ddcbf .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");if _cbgaa ==nil {return nil ,nil ;};if _edfdd ,_geecf :=_ebb .GetIndirect (_cbgaa );_geecf {_gcbeb ,_cecee :=_afec .newPdfSignatureFromIndirect (_edfdd ); if _cecee !=nil {return nil ,_cecee ;};return NewPermissions (_gcbeb ),nil ;};return nil ,_bg .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");};return nil ,_bg .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079"); };return nil ,nil ;}; // GetCatalogMarkInfo gets catalog MarkInfo object. func (_cdcgb *PdfReader )GetCatalogMarkInfo ()(_ebb .PdfObject ,bool ){if _cdcgb ._fdgda ==nil {return nil ,false ;};_fdgb :=_cdcgb ._fdgda .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _fdgb ,_fdgb !=nil ;}; // 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 (_dcbgd DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};func _ggddd (_bbea _ebb .PdfObject )(*PdfBorderStyle ,error ){_bfaa :=&PdfBorderStyle {};_bfaa ._dgaa =_bbea ;var _egbb *_ebb .PdfObjectDictionary ; _bbea =_ebb .TraceToDirectObject (_bbea );_egbb ,_ecdf :=_bbea .(*_ebb .PdfObjectDictionary );if !_ecdf {return nil ,_gf .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _efccb :=_egbb .Get ("\u0054\u0079\u0070\u0065");_efccb !=nil {_accc ,_bdgc :=_efccb .(*_ebb .PdfObjectName ); if !_bdgc {_eg .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",_efccb ); }else {if *_accc !="\u0042\u006f\u0072\u0064\u0065\u0072"{_eg .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",*_accc );};};};if _fee :=_egbb .Get ("\u0057"); _fee !=nil {_gfg ,_dfbe :=_ebb .GetNumberAsFloat (_fee );if _dfbe !=nil {_eg .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_dfbe );return nil ,_dfbe ;};_bfaa .W =&_gfg ; };if _fab :=_egbb .Get ("\u0053");_fab !=nil {_egcc ,_dbae :=_fab .(*_ebb .PdfObjectName );if !_dbae {return nil ,_gf .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 _gcgb BorderStyle ;switch *_egcc {case "\u0053":_gcgb =BorderStyleSolid ;case "\u0044":_gcgb =BorderStyleDashed ;case "\u0042":_gcgb =BorderStyleBeveled ;case "\u0049":_gcgb =BorderStyleInset ;case "\u0055":_gcgb =BorderStyleUnderline ;default:_eg .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_egcc ); return nil ,_gf .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_bfaa .S =&_gcgb ;};if _ccfd :=_egbb .Get ("\u0044");_ccfd !=nil {_agcd ,_eaeb :=_ccfd .(*_ebb .PdfObjectArray ); if !_eaeb {_eg .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",_ccfd );return nil ,_gf .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr"); };_dcbe ,_deec :=_agcd .ToIntegerArray ();if _deec !=nil {_eg .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",_deec ); return nil ,_deec ;};_bfaa .D =&_dcbe ;};return _bfaa ,nil ;};func (_ccafe *PdfWriter )setDocumentIDs (_geaeb ,_dbgdd string ){_ccafe ._eecfe =_ebb .MakeArray (_ebb .MakeHexString (_geaeb ),_ebb .MakeHexString (_dbgdd ));}; // GetCharMetrics returns the char metrics for character code `code`. func (_efdf pdfCIDFontType0 )GetCharMetrics (code _da .CharCode )(_bad .CharMetrics ,bool ){_defe :=_efdf ._gbdb ;if _gbfe ,_bbce :=_efdf ._afcac [code ];_bbce {_defe =_gbfe ;};return _bad .CharMetrics {Wx :_defe },true ;}; // NewPdfActionGoToE returns a new "go to embedded" action. func NewPdfActionGoToE ()*PdfActionGoToE {_cf :=NewPdfAction ();_dga :=&PdfActionGoToE {};_dga .PdfAction =_cf ;_cf .SetContext (_dga );return _dga ;}; // ImageToRGB converts an Image in a given PdfColorspace to an RGB image. func (_gabcf *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_fagf :=_abg .NewReader (img .getBase ());_cfebf :=_dg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._dagcb ,img ._dgcea ); _eeefc :=_abg .NewWriter (_cfebf );_gebdg :=_cbg .Pow (2,float64 (img .BitsPerComponent ))-1;_feg :=_gabcf .GetNumComponents ();_ceaca :=make ([]uint32 ,_feg );_aege :=make ([]float64 ,_feg );for {_cgcea :=_fagf .ReadSamples (_ceaca );if _cgcea ==_ab .EOF {break ; }else if _cgcea !=nil {return img ,_cgcea ;};for _bgdf :=0;_bgdf < _feg ;_bgdf ++{_agdc :=float64 (_ceaca [_bgdf ])/_gebdg ;_aege [_bgdf ]=_agdc ;};_ebgee ,_cgcea :=_gabcf .TintTransform .Evaluate (_aege );if _cgcea !=nil {return img ,_cgcea ;};for _ ,_fbfda :=range _ebgee {_fbfda =_cbg .Min (_cbg .Max (0,_fbfda ),1.0); if _cgcea =_eeefc .WriteSample (uint32 (_fbfda *_gebdg ));_cgcea !=nil {return img ,_cgcea ;};};};return _gabcf .AlternateSpace .ImageToRGB (_afacb (&_cfebf ));}; // NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing. func NewReaderForText (txt string )*PdfReader {return &PdfReader {_dfadc :map[_ebb .PdfObject ]struct{}{},_abbaca :_fadcd (),_cafdf :_ebb .NewParserFromString (txt )};}; // GetContainingPdfObject implements interface PdfModel. func (_gdgag *PdfAnnotation )GetContainingPdfObject ()_ebb .PdfObject {return _gdgag ._bdcd };func _bafec (_gegdg string )(string ,error ){var _gacbg _ca .Buffer ;_gacbg .WriteString (_gegdg );_cabeb :=make ([]byte ,8+16);_cfdced :=_f .Now ().UTC ().UnixNano (); _cb .BigEndian .PutUint64 (_cabeb ,uint64 (_cfdced ));_ ,_efbgg :=_gd .Read (_cabeb [8:]);if _efbgg !=nil {return "",_efbgg ;};_gacbg .WriteString (_d .EncodeToString (_cabeb ));return _gacbg .String (),nil ;}; // Val returns the color value. func (_ecef *PdfColorDeviceGray )Val ()float64 {return float64 (*_ecef )}; // BaseFont returns the font's "BaseFont" field. func (_ecbad *PdfFont )BaseFont ()string {return _ecbad .baseFields ()._fdacg }; // ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the // AcroForm dictionary. func (_bbbed *PdfAcroForm )ToPdfObject ()_ebb .PdfObject {_agdgc :=_bbbed ._adcg ;_cacfb :=_agdgc .PdfObject .(*_ebb .PdfObjectDictionary );if _bbbed .Fields !=nil {_egge :=_ebb .PdfObjectArray {};for _ ,_bcacbc :=range *_bbbed .Fields {_fefg :=_bcacbc .GetContext (); if _fefg !=nil {_egge .Append (_fefg .ToPdfObject ());}else {_egge .Append (_bcacbc .ToPdfObject ());};};_cacfb .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_egge );};if _bbbed .NeedAppearances !=nil {_cacfb .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_bbbed .NeedAppearances ); };if _bbbed .SigFlags !=nil {_cacfb .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_bbbed .SigFlags );};if _bbbed .CO !=nil {_cacfb .Set ("\u0043\u004f",_bbbed .CO );};if _bbbed .DR !=nil {_cacfb .Set ("\u0044\u0052",_bbbed .DR .ToPdfObject ()); };if _bbbed .DA !=nil {_cacfb .Set ("\u0044\u0041",_bbbed .DA );};if _bbbed .Q !=nil {_cacfb .Set ("\u0051",_bbbed .Q );};if _bbbed .XFA !=nil {_cacfb .Set ("\u0058\u0046\u0041",_bbbed .XFA );};return _agdgc ;}; // NewPdfActionImportData returns a new "import data" action. func NewPdfActionImportData ()*PdfActionImportData {_adc :=NewPdfAction ();_eeaa :=&PdfActionImportData {};_eeaa .PdfAction =_adc ;_adc .SetContext (_eeaa );return _eeaa ;}; // GetTrailer returns the PDF's trailer dictionary. func (_dcgg *PdfReader )GetTrailer ()(*_ebb .PdfObjectDictionary ,error ){_dagbe :=_dcgg ._cafdf .GetTrailer ();if _dagbe ==nil {return nil ,_gf .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _dagbe ,nil ; }; // 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 ;_ffbgc *_ebb .PdfIndirectObject ; // Type: Sig/DocTimeStamp Type *_ebb .PdfObjectName ;Filter *_ebb .PdfObjectName ;SubFilter *_ebb .PdfObjectName ;Contents *_ebb .PdfObjectString ;Cert _ebb .PdfObject ;ByteRange *_ebb .PdfObjectArray ;Reference *_ebb .PdfObjectArray ;Changes *_ebb .PdfObjectArray ;Name *_ebb .PdfObjectString ; M *_ebb .PdfObjectString ;Location *_ebb .PdfObjectString ;Reason *_ebb .PdfObjectString ;ContactInfo *_ebb .PdfObjectString ;R *_ebb .PdfObjectInteger ;V *_ebb .PdfObjectInteger ;PropBuild *_ebb .PdfObjectDictionary ;PropAuthTime *_ebb .PdfObjectInteger ; PropAuthType *_ebb .PdfObjectName ;}; // SetForms sets the Acroform for a PDF file. func (_efbd *PdfWriter )SetForms (form *PdfAcroForm )error {_efbd ._dbea =form ;return nil }; // A returns the value of the A component of the color. func (_gad *PdfColorLab )A ()float64 {return _gad [1]}; // ImageToRGB converts ICCBased colorspace image to RGB and returns the result. func (_fbdd *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _fbdd .Alternate ==nil {_eg .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 _fbdd .N ==1{_eg .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"); _dbffc :=NewPdfColorspaceDeviceGray ();return _dbffc .ImageToRGB (img );}else if _fbdd .N ==3{_eg .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 _fbdd .N ==4{_eg .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"); _dfdf :=NewPdfColorspaceDeviceCMYK ();return _dfdf .ImageToRGB (img );}else {return img ,_gf .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"); };};_eg .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",_fbdd ); _eggd ,_bdfb :=_fbdd .Alternate .ImageToRGB (img );_eg .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_eg .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_eggd ); return _eggd ,_bdfb ;}; // GetAlphabet returns a map of the runes in `text` and their frequencies. func GetAlphabet (text string )map[rune ]int {_aegef :=map[rune ]int {};for _ ,_aafa :=range text {_aegef [_aafa ]++;};return _aegef ;}; // PdfColorspaceLab is a L*, a*, b* 3 component colorspace. type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_bdga *_ebb .PdfIndirectObject ;}; // PdfInfo holds document information that will overwrite // document information global variables defined above. type PdfInfo struct{Title *_ebb .PdfObjectString ;Author *_ebb .PdfObjectString ;Subject *_ebb .PdfObjectString ;Keywords *_ebb .PdfObjectString ;Creator *_ebb .PdfObjectString ;Producer *_ebb .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ; Trapped *_ebb .PdfObjectName ;_gcgf *_ebb .PdfObjectDictionary ;}; // PdfColorspaceDeviceCMYK represents a CMYK32 colorspace. type PdfColorspaceDeviceCMYK struct{}; // PdfAnnotationTrapNet represents TrapNet annotations. // (Section 12.5.6.21). type PdfAnnotationTrapNet struct{*PdfAnnotation }; // NewXObjectImage returns a new XObjectImage. func NewXObjectImage ()*XObjectImage {_daag :=&XObjectImage {};_cdagc :=&_ebb .PdfObjectStream {};_cdagc .PdfObjectDictionary =_ebb .MakeDict ();_daag ._fbeec =_cdagc ;return _daag ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_aaea *PdfShadingType3 )ToPdfObject ()_ebb .PdfObject {_aaea .PdfShading .ToPdfObject ();_caebg ,_fbbfe :=_aaea .getShadingDict ();if _fbbfe !=nil {_eg .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 _aaea .Coords !=nil {_caebg .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_aaea .Coords );};if _aaea .Domain !=nil {_caebg .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_aaea .Domain );};if _aaea .Function !=nil {if len (_aaea .Function )==1{_caebg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aaea .Function [0].ToPdfObject ()); }else {_egfcb :=_ebb .MakeArray ();for _ ,_eaaag :=range _aaea .Function {_egfcb .Append (_eaaag .ToPdfObject ());};_caebg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_egfcb );};};if _aaea .Extend !=nil {_caebg .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_aaea .Extend ); };return _aaea ._fbfae ;}; // GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject. func (_aeffa *PdfPage )GetPageAsIndirectObject ()*_ebb .PdfIndirectObject {return _aeffa ._defbb }; // AddExtension adds the specified extension to the Extensions dictionary. // See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008). func (_ececd *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_babed ,_fbeff :=_ebb .GetDict (_ececd ._dffegd .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_fbeff {_babed =_ebb .MakeDict ();_ececd ._dffegd .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_babed ); };_dgdbb ,_fbeff :=_ebb .GetDict (_babed .Get (_ebb .PdfObjectName (extName )));if !_fbeff {_dgdbb =_ebb .MakeDict ();_babed .Set (_ebb .PdfObjectName (extName ),_dgdbb );};if _gebaf ,_ :=_ebb .GetNameVal (_dgdbb .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e")); _gebaf !=baseVersion {_dgdbb .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_ebb .MakeName (baseVersion ));};if _dgage ,_ :=_ebb .GetIntVal (_dgdbb .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c")); _dgage !=extLevel {_dgdbb .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_ebb .MakeInteger (int64 (extLevel )));};}; // ToPdfObject implements interface PdfModel. func (_cgacb *PdfAnnotationSquare )ToPdfObject ()_ebb .PdfObject {_cgacb .PdfAnnotation .ToPdfObject ();_ebaa :=_cgacb ._bdcd ;_bdca :=_ebaa .PdfObject .(*_ebb .PdfObjectDictionary );if _cgacb .PdfAnnotationMarkup !=nil {_cgacb .PdfAnnotationMarkup .appendToPdfDictionary (_bdca ); };_bdca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_bdca .SetIfNotNil ("\u0042\u0053",_cgacb .BS );_bdca .SetIfNotNil ("\u0049\u0043",_cgacb .IC );_bdca .SetIfNotNil ("\u0042\u0045",_cgacb .BE ); _bdca .SetIfNotNil ("\u0052\u0044",_cgacb .RD );return _ebaa ;}; // PdfAnnotationPopup represents Popup annotations. // (Section 12.5.6.14). type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _ebb .PdfObject ;Open _ebb .PdfObject ;}; // PdfColorDeviceRGB represents a color in DeviceRGB colorspace with R, G, B components, where component is // defined in the range 0.0 - 1.0 where 1.0 is the primary intensity. type PdfColorDeviceRGB [3]float64 ;func (_bcbfg *Image )samplesAddPadding (_gcga []uint32 )[]uint32 {_bcead :=_dg .BytesPerLine (int (_bcbfg .Width ),int (_bcbfg .BitsPerComponent ),_bcbfg .ColorComponents )*(8/int (_bcbfg .BitsPerComponent ));_geda :=_bcead *int (_bcbfg .Height ); if len (_gcga )==_geda {return _gcga ;};_bcgae :=make ([]uint32 ,_geda );_adabg :=int (_bcbfg .Width )*_bcbfg .ColorComponents ;for _cfegc :=0;_cfegc < int (_bcbfg .Height );_cfegc ++{_efbga :=_cfegc *int (_bcbfg .Width );_edff :=_cfegc *_bcead ;for _affb :=0; _affb < _adabg ;_affb ++{_bcgae [_edff +_affb ]=_gcga [_efbga +_affb ];};};return _bcgae ;};func (_addg *PdfReader )newPdfAnnotationStrikeOut (_feb *_ebb .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_eda :=PdfAnnotationStrikeOut {};_bcea ,_daga :=_addg .newPdfAnnotationMarkupFromDict (_feb ); if _daga !=nil {return nil ,_daga ;};_eda .PdfAnnotationMarkup =_bcea ;_eda .QuadPoints =_feb .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_eda ,nil ;};func _egaaa (_gggfe _ebb .PdfObject )(*PdfColorspaceDeviceN ,error ){_aae :=NewPdfColorspaceDeviceN (); if _acdb ,_cacc :=_gggfe .(*_ebb .PdfIndirectObject );_cacc {_aae ._gebb =_acdb ;};_gggfe =_ebb .TraceToDirectObject (_gggfe );_eeagg ,_caeeg :=_gggfe .(*_ebb .PdfObjectArray );if !_caeeg {return nil ,_bg .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 _eeagg .Len ()!=4&&_eeagg .Len ()!=5{return nil ,_bg .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");};_gggfe =_eeagg .Get (0); _efce ,_caeeg :=_gggfe .(*_ebb .PdfObjectName );if !_caeeg {return nil ,_bg .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 *_efce !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_bg .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");};_gggfe =_eeagg .Get (1); _gggfe =_ebb .TraceToDirectObject (_gggfe );_faeg ,_caeeg :=_gggfe .(*_ebb .PdfObjectArray );if !_caeeg {return nil ,_bg .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"); };_aae .ColorantNames =_faeg ;_gggfe =_eeagg .Get (2);_bcged ,_becc :=NewPdfColorspaceFromPdfObject (_gggfe );if _becc !=nil {return nil ,_becc ;};_aae .AlternateSpace =_bcged ;_cgdaa ,_becc :=_aagg (_eeagg .Get (3));if _becc !=nil {return nil ,_becc ; };_aae .TintTransform =_cgdaa ;if _eeagg .Len ()==5{_aeabg ,_fdfcg :=_gbgb (_eeagg .Get (4));if _fdfcg !=nil {return nil ,_fdfcg ;};_aae .Attributes =_aeabg ;};return _aae ,nil ;};func _fcgc (_gaea _ebb .PdfObject )(*PdfColorspaceCalRGB ,error ){_ccae :=NewPdfColorspaceCalRGB (); if _fabc ,_gbb :=_gaea .(*_ebb .PdfIndirectObject );_gbb {_ccae ._aeac =_fabc ;};_gaea =_ebb .TraceToDirectObject (_gaea );_cedg ,_gbacgg :=_gaea .(*_ebb .PdfObjectArray );if !_gbacgg {return nil ,_bg .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };if _cedg .Len ()!=2{return nil ,_bg .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");};_gaea =_ebb .TraceToDirectObject (_cedg .Get (0));_eaced ,_gbacgg :=_gaea .(*_ebb .PdfObjectName ); if !_gbacgg {return nil ,_bg .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 *_eaced !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_bg .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065"); };_gaea =_ebb .TraceToDirectObject (_cedg .Get (1));_egbe ,_gbacgg :=_gaea .(*_ebb .PdfObjectDictionary );if !_gbacgg {return nil ,_bg .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"); };_gaea =_egbe .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_gaea =_ebb .TraceToDirectObject (_gaea );_fgbe ,_gbacgg :=_gaea .(*_ebb .PdfObjectArray );if !_gbacgg {return nil ,_bg .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 _fgbe .Len ()!=3{return nil ,_bg .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");};_ebbf ,_cgba :=_fgbe .GetAsFloat64Slice (); if _cgba !=nil {return nil ,_cgba ;};_ccae .WhitePoint =_ebbf ;_gaea =_egbe .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _gaea !=nil {_gaea =_ebb .TraceToDirectObject (_gaea );_ccaee ,_gaad :=_gaea .(*_ebb .PdfObjectArray ); if !_gaad {return nil ,_bg .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 _ccaee .Len ()!=3{return nil ,_bg .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"); };_fccgf ,_gafg :=_ccaee .GetAsFloat64Slice ();if _gafg !=nil {return nil ,_gafg ;};_ccae .BlackPoint =_fccgf ;};_gaea =_egbe .Get ("\u0047\u0061\u006dm\u0061");if _gaea !=nil {_gaea =_ebb .TraceToDirectObject (_gaea );_gaag ,_fcfc :=_gaea .(*_ebb .PdfObjectArray ); if !_fcfc {return nil ,_bg .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _gaag .Len ()!=3{return nil ,_bg .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079"); };_bgfd ,_acgd :=_gaag .GetAsFloat64Slice ();if _acgd !=nil {return nil ,_acgd ;};_ccae .Gamma =_bgfd ;};_gaea =_egbe .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _gaea !=nil {_gaea =_ebb .TraceToDirectObject (_gaea );_gag ,_dbdf :=_gaea .(*_ebb .PdfObjectArray ); if !_dbdf {return nil ,_bg .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _gag .Len ()!=9{_eg .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_gag .String ()); return nil ,_bg .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");};_ebba ,_fcfbg :=_gag .GetAsFloat64Slice ();if _fcfbg !=nil {return nil ,_fcfbg ; };_ccae .Matrix =_ebba ;};return _ccae ,nil ;}; // GetPdfName returns the PDF name used to indicate the border style. // (Table 166 p. 395). func (_acfcc *BorderStyle )GetPdfName ()string {switch *_acfcc {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055"; };return "";}; // GetFontDescriptor returns the font descriptor for `font`. func (_ffdff PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _ffdff ._ebcad .getFontDescriptor (),nil ;}; // 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 (_aeeg *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _aeeg .flattenFieldsWithOpts (allannots ,appgen ,nil );};func (_dbac *PdfReader )newPdfAnnotationRedactFromDict (_dfb *_ebb .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_gecd :=PdfAnnotationRedact {}; _bdag ,_fagg :=_dbac .newPdfAnnotationMarkupFromDict (_dfb );if _fagg !=nil {return nil ,_fagg ;};_gecd .PdfAnnotationMarkup =_bdag ;_gecd .QuadPoints =_dfb .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_gecd .IC =_dfb .Get ("\u0049\u0043"); _gecd .RO =_dfb .Get ("\u0052\u004f");_gecd .OverlayText =_dfb .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_gecd .Repeat =_dfb .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_gecd .DA =_dfb .Get ("\u0044\u0041");_gecd .Q =_dfb .Get ("\u0051"); return &_gecd ,nil ;}; // IsShading specifies if the pattern is a shading pattern. func (_fbcgc *PdfPattern )IsShading ()bool {return _fbcgc .PatternType ==2}; // HasXObjectByName checks if an XObject with a specified keyName is defined. func (_deaaa *PdfPageResources )HasXObjectByName (keyName _ebb .PdfObjectName )bool {_bbgge ,_ :=_deaaa .GetXObjectByName (keyName );return _bbgge !=nil ;}; // PdfActionJavaScript represents a javaScript action. type PdfActionJavaScript struct{*PdfAction ;JS _ebb .PdfObject ;};func _ggbd (_cgggf *_ebb .PdfObjectDictionary )(*PdfTilingPattern ,error ){_aefdc :=&PdfTilingPattern {};_afdag :=_cgggf .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");if _afdag ==nil {_eg .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067"); return nil ,ErrRequiredAttributeMissing ;};_bfed ,_ffgcf :=_afdag .(*_ebb .PdfObjectInteger );if !_ffgcf {_eg .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",_afdag ); return nil ,_ebb .ErrTypeError ;};_aefdc .PaintType =_bfed ;_afdag =_cgggf .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _afdag ==nil {_eg .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067"); return nil ,ErrRequiredAttributeMissing ;};_eadcc ,_ffgcf :=_afdag .(*_ebb .PdfObjectInteger );if !_ffgcf {_eg .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",_afdag ); return nil ,_ebb .ErrTypeError ;};_aefdc .TilingType =_eadcc ;_afdag =_cgggf .Get ("\u0042\u0042\u006f\u0078");if _afdag ==nil {_eg .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ; };_afdag =_ebb .TraceToDirectObject (_afdag );_cgcd ,_ffgcf :=_afdag .(*_ebb .PdfObjectArray );if !_ffgcf {_eg .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",_afdag ); return nil ,_ebb .ErrTypeError ;};_fggbf ,_dfcae :=NewPdfRectangle (*_cgcd );if _dfcae !=nil {_eg .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_dfcae );return nil ,_dfcae ;};_aefdc .BBox =_fggbf ;_afdag =_cgggf .Get ("\u0058\u0053\u0074e\u0070"); if _afdag ==nil {_eg .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_fcce ,_dfcae :=_ebb .GetNumberAsFloat (_afdag );if _dfcae !=nil {_eg .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",_fcce ); return nil ,_dfcae ;};_aefdc .XStep =_ebb .MakeFloat (_fcce );_afdag =_cgggf .Get ("\u0059\u0053\u0074e\u0070");if _afdag ==nil {_eg .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ; };_aeagd ,_dfcae :=_ebb .GetNumberAsFloat (_afdag );if _dfcae !=nil {_eg .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",_aeagd ); return nil ,_dfcae ;};_aefdc .YStep =_ebb .MakeFloat (_aeagd );_afdag =_cgggf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _afdag ==nil {_eg .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067"); return nil ,ErrRequiredAttributeMissing ;};_cgggf ,_ffgcf =_ebb .TraceToDirectObject (_afdag ).(*_ebb .PdfObjectDictionary );if !_ffgcf {return nil ,_bg .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",_afdag ); };_abegb ,_dfcae :=NewPdfPageResourcesFromDict (_cgggf );if _dfcae !=nil {return nil ,_dfcae ;};_aefdc .Resources =_abegb ;if _cgdef :=_cgggf .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_cgdef !=nil {_gdefg ,_bdacc :=_cgdef .(*_ebb .PdfObjectArray ); if !_bdacc {_eg .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",_cgdef );return nil ,_ebb .ErrTypeError ;};_aefdc .Matrix =_gdefg ;};return _aefdc ,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 ;const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";); // 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 (_fcga *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_agcf :=vals [0];if _agcf < 0.0||_agcf > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_agcf ); return nil ,ErrColorOutOfRange ;};_cgaf :=vals [1];if _cgaf < 0.0||_cgaf > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cgaf );return nil ,ErrColorOutOfRange ; };_fbdab :=vals [2];if _fbdab < 0.0||_fbdab > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fbdab );return nil ,ErrColorOutOfRange ;};_cbda :=vals [3]; if _cbda < 0.0||_cbda > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cbda );return nil ,ErrColorOutOfRange ;};_ddec :=NewPdfColorDeviceCMYK (_agcf ,_cgaf ,_fbdab ,_cbda ); return _ddec ,nil ;}; // ToPdfObject returns the PDF representation of the pattern. func (_fdbg *PdfPattern )ToPdfObject ()_ebb .PdfObject {_aeef :=_fdbg .getDict ();_aeef .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_aeef .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_ebb .MakeInteger (_fdbg .PatternType )); return _fdbg ._dcddc ;};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);func (_dade *PdfReader )newPdfAnnotationCircleFromDict (_aef *_ebb .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_bfde :=PdfAnnotationCircle {}; _bbac ,_bed :=_dade .newPdfAnnotationMarkupFromDict (_aef );if _bed !=nil {return nil ,_bed ;};_bfde .PdfAnnotationMarkup =_bbac ;_bfde .BS =_aef .Get ("\u0042\u0053");_bfde .IC =_aef .Get ("\u0049\u0043");_bfde .BE =_aef .Get ("\u0042\u0045");_bfde .RD =_aef .Get ("\u0052\u0044"); return &_bfde ,nil ;}; // FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other // flags are specific. type FieldFlag uint32 ;func (_ggcgg *PdfWriter )writeObjects (){_eg .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_ggcgg ._ebdgg ));_ggcgg ._bedfc =make (map[int ]crossReference );_ggcgg ._bedfc [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF}; if _ggcgg ._efdega .ObjectMap !=nil {for _acdgg ,_bcee :=range _ggcgg ._efdega .ObjectMap {if _acdgg ==0{continue ;};if _bcee .XType ==_ebb .XrefTypeObjectStream {_cddb :=crossReference {Type :2,ObjectNumber :_bcee .OsObjNumber ,Index :_bcee .OsObjIndex }; _ggcgg ._bedfc [_acdgg ]=_cddb ;};if _bcee .XType ==_ebb .XrefTypeTableEntry {_bcfef :=crossReference {Type :1,ObjectNumber :_bcee .ObjectNumber ,Offset :_bcee .Offset };_ggcgg ._bedfc [_acdgg ]=_bcfef ;};};};}; // NewPdfAnnotationProjection returns a new projection annotation. func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_acgg :=NewPdfAnnotation ();_gcc :=&PdfAnnotationProjection {};_gcc .PdfAnnotation =_acgg ;_gcc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_acgg .SetContext (_gcc );return _gcc ;}; // GetContainingPdfObject returns the container of the outline (indirect object). func (_eaadg *PdfOutline )GetContainingPdfObject ()_ebb .PdfObject {return _eaadg ._egee }; // A returns the value of the A component of the color. func (_dccf *PdfColorCalRGB )A ()float64 {return _dccf [0]}; // PdfFunction interface represents the common methods of a function in PDF. type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_ebb .PdfObject ;};func (_fgdb *pdfFontSimple )getFontEncoding ()(_agece string ,_afbd map[_da .CharCode ]_da .GlyphName ,_dcfa error ){_agece ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"; if _gffdc ,_gbec :=_cbcfg [_fgdb ._fdacg ];_gbec {_agece =_gffdc ;}else if _fgdb .fontFlags ()&_dffee !=0{for _cegf ,_fefeb :=range _cbcfg {if _ee .Contains (_fgdb ._fdacg ,_cegf ){_agece =_fefeb ;break ;};};};if _fgdb .Encoding ==nil {return _agece ,nil ,nil ; };switch _egedae :=_fgdb .Encoding .(type ){case *_ebb .PdfObjectName :return string (*_egedae ),nil ,nil ;case *_ebb .PdfObjectDictionary :_cdaee ,_acfeg :=_ebb .GetName (_egedae .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067")); if _acfeg {_agece =_cdaee .String ();};if _gebea :=_egedae .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_gebea !=nil {_eeefg ,_bebg :=_ebb .GetArray (_gebea );if !_bebg {_eg .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",_egedae ,_egedae .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073")); return "",nil ,_ebb .ErrTypeError ;};_afbd ,_dcfa =_da .FromFontDifferences (_eeefg );};return _agece ,_afbd ,_dcfa ;default:_eg .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",_fgdb .Encoding ,_fgdb .Encoding ); return "",nil ,_ebb .ErrTypeError ;};}; // ToPdfObject implements interface PdfModel. func (_bgcb *PdfFilespec )ToPdfObject ()_ebb .PdfObject {_edfd :=_bgcb .getDict ();_edfd .Clear ();_edfd .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_edfd .SetIfNotNil ("\u0046\u0053",_bgcb .FS ); _edfd .SetIfNotNil ("\u0046",_bgcb .F );_edfd .SetIfNotNil ("\u0055\u0046",_bgcb .UF );_edfd .SetIfNotNil ("\u0044\u004f\u0053",_bgcb .DOS );_edfd .SetIfNotNil ("\u004d\u0061\u0063",_bgcb .Mac );_edfd .SetIfNotNil ("\u0055\u006e\u0069\u0078",_bgcb .Unix ); _edfd .SetIfNotNil ("\u0049\u0044",_bgcb .ID );_edfd .SetIfNotNil ("\u0056",_bgcb .V );_edfd .SetIfNotNil ("\u0045\u0046",_bgcb .EF );_edfd .SetIfNotNil ("\u0052\u0046",_bgcb .RF );_edfd .SetIfNotNil ("\u0044\u0065\u0073\u0063",_bgcb .Desc );_edfd .SetIfNotNil ("\u0043\u0049",_bgcb .CI ); return _bgcb ._gcge ;}; // ColorToRGB converts a ICCBased color to an RGB color. func (_agf *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _agf .Alternate ==nil {_eg .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 _agf .N ==1{_eg .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"); _aca :=NewPdfColorspaceDeviceGray ();return _aca .ColorToRGB (color );}else if _agf .N ==3{_eg .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 _agf .N ==4{_eg .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"); _bedd :=NewPdfColorspaceDeviceCMYK ();return _bedd .ColorToRGB (color );}else {return nil ,_gf .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"); };};_eg .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",_agf ); return _agf .Alternate .ColorToRGB (color );};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);func (_cgec *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"}; // GetRotate gets the inheritable rotate value, either from the page // or a higher up page/pages struct. func (_eagc *PdfPage )GetRotate ()(int64 ,error ){if _eagc .Rotate !=nil {return *_eagc .Rotate ,nil ;};_cgbg :=_eagc .Parent ;for _cgbg !=nil {_dfded ,_aefg :=_ebb .GetDict (_cgbg );if !_aefg {return 0,_gf .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 _abagc :=_dfded .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_abagc !=nil {_cdbed ,_dgec :=_ebb .GetInt (_abagc );if !_dgec {return 0,_gf .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065");};if _cdbed !=nil {return int64 (*_cdbed ),nil ; };return 0,_gf .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_cgbg =_dfded .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_gf .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064"); }; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. func (_bfac *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _bfac .UnderlyingCS ==nil {return nil ,_gf .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 _bfac .UnderlyingCS .ColorFromFloats (vals );}; // Add appends a top level outline item to the outline. func (_aaafc *Outline )Add (item *OutlineItem ){_aaafc .Entries =append (_aaafc .Entries ,item )}; // DecodeArray returns an empty slice as there are no components associated with pattern colorspace. func (_gbefd *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}}; // 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 _ebb .PdfObject ;FontFamily _ebb .PdfObject ;FontStretch _ebb .PdfObject ;FontWeight _ebb .PdfObject ;Flags _ebb .PdfObject ;FontBBox _ebb .PdfObject ;ItalicAngle _ebb .PdfObject ;Ascent _ebb .PdfObject ;Descent _ebb .PdfObject ; Leading _ebb .PdfObject ;CapHeight _ebb .PdfObject ;XHeight _ebb .PdfObject ;StemV _ebb .PdfObject ;StemH _ebb .PdfObject ;AvgWidth _ebb .PdfObject ;MaxWidth _ebb .PdfObject ;MissingWidth _ebb .PdfObject ;FontFile _ebb .PdfObject ;FontFile2 _ebb .PdfObject ; FontFile3 _ebb .PdfObject ;CharSet _ebb .PdfObject ;_gfbge int ;_gbfgb float64 ;*fontFile ;_aeeb *_bad .TtfType ; // Additional entries for CIDFonts Style _ebb .PdfObject ;Lang _ebb .PdfObject ;FD _ebb .PdfObject ;CIDSet _ebb .PdfObject ;_ccfcg *_ebb .PdfIndirectObject ;}; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. func (_ddcb *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _ddcb .Alternate ==nil {if _ddcb .N ==1{_fgeb :=NewPdfColorspaceDeviceGray ();return _fgeb .ColorFromFloats (vals );}else if _ddcb .N ==3{_gged :=NewPdfColorspaceDeviceRGB (); return _gged .ColorFromFloats (vals );}else if _ddcb .N ==4{_cbed :=NewPdfColorspaceDeviceCMYK ();return _cbed .ColorFromFloats (vals );}else {return nil ,_gf .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 _ddcb .Alternate .ColorFromFloats (vals );}; // CustomKeys returns all custom info keys as list. func (_badba *PdfInfo )CustomKeys ()[]string {if _badba ._gcgf ==nil {return nil ;};_agfcc :=make ([]string ,len (_badba ._gcgf .Keys ()));for _ ,_dfaf :=range _badba ._gcgf .Keys (){_agfcc =append (_agfcc ,_dfaf .String ());};return _agfcc ;}; // PdfAnnotationStrikeOut represents StrikeOut annotations. // (Section 12.5.6.10). type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ebb .PdfObject ;}; // B returns the value of the B component of the color. func (_bbd *PdfColorCalRGB )B ()float64 {return _bbd [1]}; // ToPdfObject returns the PDF representation of the colorspace. func (_cdfge *PdfPageResourcesColorspaces )ToPdfObject ()_ebb .PdfObject {_dcebg :=_ebb .MakeDict ();for _ ,_eeac :=range _cdfge .Names {_dcebg .Set (_ebb .PdfObjectName (_eeac ),_cdfge .Colorspaces [_eeac ].ToPdfObject ());};if _cdfge ._ddffd !=nil {_cdfge ._ddffd .PdfObject =_dcebg ; return _cdfge ._ddffd ;};return _dcebg ;}; // PdfOutputIntent provides a means for matching the color characteristics of a PDF document with // those of a target output device. // Multiple PdfOutputIntents allows the production process to be customized to the expected workflow and the specific // tools available. type PdfOutputIntent struct{ // Type is an optional PDF object that this dictionary describes. // If present, must be OutputIntent for an output intent dictionary. Type string ; // S defines the OutputIntent subtype which should match the standard used in given document i.e: // for PDF/X use PdfOutputIntentTypeX. S PdfOutputIntentType ; // OutputCondition is an optional field that is identifying the intended output device or production condition in // human-readable form. This is preferred method of defining such a string for presentation to the user. OutputCondition string ; // OutputConditionIdentifier is a required field identifying the intended output device or production condition in // human or machine-readable form. If human-readable, this string may be used // in lieu of an OutputCondition for presentation to the user. // A typical value for this entry would be the name of a production condition maintained // in an industry-standard registry such as the ICC Characterization Data Registry // If the intended production condition is not a recognized standard, the value Custom is recommended for this entry. // the DestOutputProfile entry defines the ICC profile, and the Info entry is used for further // human-readable identification. OutputConditionIdentifier string ; // RegistryName is an optional string field (conventionally URI) identifying the registry in which the condition // designated by OutputConditionIdentifier is defined. RegistryName string ; // Info is a required field if OutputConditionIdentifier does not specify a standard production condition. // A human-readable text string containing additional information or comments about intended // target device or production condition. Info string ; // DestOutputProfile is required if OutputConditionIdentifier does not specify a standard production condition. // It is an ICC profile stream defining the transformation from the PDF document's source colors to output device colorants. DestOutputProfile []byte ; // ColorComponents is the number of color components supported by given output profile. ColorComponents int ;_faeb *_ebb .PdfObjectDictionary ;}; // GetNumComponents returns the number of color components of the underlying // colorspace device. func (_daac *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _daac .UnderlyingCS .GetNumComponents ();}; // PdfActionRendition represents a Rendition action. type PdfActionRendition struct{*PdfAction ;R _ebb .PdfObject ;AN _ebb .PdfObject ;OP _ebb .PdfObject ;JS _ebb .PdfObject ;}; // G returns the value of the green component of the color. func (_eabd *PdfColorDeviceRGB )G ()float64 {return _eabd [1]}; // ToPdfObject implements interface PdfModel. func (_egd *PdfActionRendition )ToPdfObject ()_ebb .PdfObject {_egd .PdfAction .ToPdfObject ();_cgdf :=_egd ._abe ;_ddef :=_cgdf .PdfObject .(*_ebb .PdfObjectDictionary );_ddef .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeRendition )));_ddef .SetIfNotNil ("\u0052",_egd .R ); _ddef .SetIfNotNil ("\u0041\u004e",_egd .AN );_ddef .SetIfNotNil ("\u004f\u0050",_egd .OP );_ddef .SetIfNotNil ("\u004a\u0053",_egd .JS );return _cgdf ;}; // NewPdfAnnotationPolygon returns a new polygon annotation. func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_cegg :=NewPdfAnnotation ();_dfg :=&PdfAnnotationPolygon {};_dfg .PdfAnnotation =_cegg ;_dfg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cegg .SetContext (_dfg );return _dfg ;};const (_gfega =0x00001; _adfbd =0x00002;_dffee =0x00004;_dgfgd =0x00008;_cbfd =0x00020;_ccgbe =0x00040;_fece =0x10000;_ddge =0x20000;_decd =0x40000;); // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // component PDF objects. func (_dgae *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if _dgae .Alternate ==nil {if _dgae .N ==1{_dfag :=NewPdfColorspaceDeviceGray ();return _dfag .ColorFromPdfObjects (objects );}else if _dgae .N ==3{_bbbe :=NewPdfColorspaceDeviceRGB (); return _bbbe .ColorFromPdfObjects (objects );}else if _dgae .N ==4{_fbae :=NewPdfColorspaceDeviceCMYK ();return _fbae .ColorFromPdfObjects (objects );}else {return nil ,_gf .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 _dgae .Alternate .ColorFromPdfObjects (objects );};func (_gccfa Image )getBase ()_dg .ImageBase {return _dg .NewImageBase (int (_gccfa .Width ),int (_gccfa .Height ),int (_gccfa .BitsPerComponent ),_gccfa .ColorComponents ,_gccfa .Data ,_gccfa ._dagcb ,_gccfa ._dgcea ); }; // GetCustomInfo returns a custom info value for the specified name. func (_deff *PdfInfo )GetCustomInfo (name string )*_ebb .PdfObjectString {var _cfaac *_ebb .PdfObjectString ;if _deff ._gcgf ==nil {return _cfaac ;};if _dfffg ,_gafc :=_deff ._gcgf .Get (*_ebb .MakeName (name )).(*_ebb .PdfObjectString );_gafc {_cfaac =_dfffg ; };return _cfaac ;}; // PdfActionType represents an action type in PDF (section 12.6.4 p. 417). type PdfActionType string ;func _fadcd ()*modelManager {_gbed :=modelManager {};_gbed ._bgfdb =map[PdfModel ]_ebb .PdfObject {};_gbed ._aabcbdd =map[_ebb .PdfObject ]PdfModel {};return &_gbed ;}; // ToPdfObject implements interface PdfModel. func (_eec *PdfActionLaunch )ToPdfObject ()_ebb .PdfObject {_eec .PdfAction .ToPdfObject ();_eeag :=_eec ._abe ;_fbd :=_eeag .PdfObject .(*_ebb .PdfObjectDictionary );_fbd .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeLaunch )));if _eec .F !=nil {_fbd .Set ("\u0046",_eec .F .ToPdfObject ()); };_fbd .SetIfNotNil ("\u0057\u0069\u006e",_eec .Win );_fbd .SetIfNotNil ("\u004d\u0061\u0063",_eec .Mac );_fbd .SetIfNotNil ("\u0055\u006e\u0069\u0078",_eec .Unix );_fbd .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_eec .NewWindow );return _eeag ; };func (_eefd *PdfWriter )getPdfVersion ()string {return _bg .Sprintf ("\u0025\u0064\u002e%\u0064",_eefd ._efcge .Major ,_eefd ._efcge .Minor );};func _adcga (_bbegd *_ebb .PdfObjectDictionary )(*PdfShadingType2 ,error ){_fffe :=PdfShadingType2 {};_feeca :=_bbegd .Get ("\u0043\u006f\u006f\u0072\u0064\u0073"); if _feeca ==nil {_eg .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 ; };_daaca ,_ecbcg :=_feeca .(*_ebb .PdfObjectArray );if !_ecbcg {_eg .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",_feeca );return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072"); };if _daaca .Len ()!=4{_eg .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",_daaca .Len ());return nil ,_gf .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065"); };_fffe .Coords =_daaca ;if _dbaefe :=_bbegd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_dbaefe !=nil {_dbaefe =_ebb .TraceToDirectObject (_dbaefe );_ecdge ,_bffed :=_dbaefe .(*_ebb .PdfObjectArray );if !_bffed {_eg .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",_dbaefe ); return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fffe .Domain =_ecdge ;};_feeca =_bbegd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _feeca ==nil {_eg .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 ;};_fffe .Function =[]PdfFunction {};if _afagg ,_eebcbf :=_feeca .(*_ebb .PdfObjectArray );_eebcbf {for _ ,_bgcbg :=range _afagg .Elements (){_bddce ,_ceaee :=_aagg (_bgcbg );if _ceaee !=nil {_eg .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",_ceaee ); return nil ,_ceaee ;};_fffe .Function =append (_fffe .Function ,_bddce );};}else {_ebdfb ,_ffbd :=_aagg (_feeca );if _ffbd !=nil {_eg .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",_ffbd ); return nil ,_ffbd ;};_fffe .Function =append (_fffe .Function ,_ebdfb );};if _gceef :=_bbegd .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_gceef !=nil {_gceef =_ebb .TraceToDirectObject (_gceef );_adafb ,_egddg :=_gceef .(*_ebb .PdfObjectArray );if !_egddg {_eg .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",_gceef ); return nil ,_ebb .ErrTypeError ;};if _adafb .Len ()!=2{_eg .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",_adafb .Len ());return nil ,ErrInvalidAttribute ; };_fffe .Extend =_adafb ;};return &_fffe ,nil ;}; // ToPdfObject implements model.PdfModel interface. func (_bfcfe *PdfOutputIntent )ToPdfObject ()_ebb .PdfObject {if _bfcfe ._faeb ==nil {_bfcfe ._faeb =_ebb .MakeDict ();};_fgfb :=_bfcfe ._faeb ;if _bfcfe .Type !=""{_fgfb .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName (_bfcfe .Type ));};_fgfb .Set ("\u0053",_ebb .MakeName (_bfcfe .S .String ())); if _bfcfe .OutputCondition !=""{_fgfb .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_ebb .MakeString (_bfcfe .OutputCondition ));};_fgfb .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_ebb .MakeString (_bfcfe .OutputConditionIdentifier )); _fgfb .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_ebb .MakeString (_bfcfe .RegistryName ));if _bfcfe .Info !=""{_fgfb .Set ("\u0049\u006e\u0066\u006f",_ebb .MakeString (_bfcfe .Info ));};if len (_bfcfe .DestOutputProfile )!=0{_bacag ,_fdcdc :=_ebb .MakeStream (_bfcfe .DestOutputProfile ,_ebb .NewFlateEncoder ()); if _fdcdc !=nil {_eg .Log .Error ("\u004d\u0061\u006b\u0065\u0053\u0074\u0072\u0065\u0061\u006d\u0020\u0044\u0065s\u0074\u004f\u0075\u0074\u0070\u0075t\u0050\u0072\u006f\u0066\u0069\u006c\u0065\u0020\u0066\u0061\u0069\u006c\u0065d\u003a\u0020\u0025\u0076",_fdcdc ); };_bacag .PdfObjectDictionary .Set ("\u004e",_ebb .MakeInteger (int64 (_bfcfe .ColorComponents )));_eabdg :=make ([]float64 ,_bfcfe .ColorComponents *2);for _bgdaa :=0;_bgdaa < _bfcfe .ColorComponents *2;_bgdaa ++{_ggfcb :=0.0;if _bgdaa %2!=0{_ggfcb =1.0; };_eabdg [_bgdaa ]=_ggfcb ;};_bacag .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_ebb .MakeArrayFromFloats (_eabdg ));_fgfb .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_bacag );};return _fgfb ; }; // HasFontByName checks if has font resource by name. func (_cdgf *PdfPage )HasFontByName (name _ebb .PdfObjectName )bool {_dgge ,_daecb :=_cdgf .Resources .Font .(*_ebb .PdfObjectDictionary );if !_daecb {return false ;};if _eeeec :=_dgge .Get (name );_eeeec !=nil {return true ;};return false ;}; // PdfAnnotation represents an annotation in PDF (section 12.5 p. 389). type PdfAnnotation struct{_efd PdfModel ;Rect _ebb .PdfObject ;Contents _ebb .PdfObject ;P _ebb .PdfObject ;NM _ebb .PdfObject ;M _ebb .PdfObject ;F _ebb .PdfObject ;AP _ebb .PdfObject ;AS _ebb .PdfObject ;Border _ebb .PdfObject ;C _ebb .PdfObject ;StructParent _ebb .PdfObject ; OC _ebb .PdfObject ;_bdcd *_ebb .PdfIndirectObject ;};func (_cggf *PdfAppender )updateObjectsDeep (_ged _ebb .PdfObject ,_badbe map[_ebb .PdfObject ]struct{}){if _badbe ==nil {_badbe =map[_ebb .PdfObject ]struct{}{};};if _ ,_gfdb :=_badbe [_ged ];_gfdb ||_ged ==nil {return ; };_badbe [_ged ]=struct{}{};_adcag :=_ebb .ResolveReferencesDeep (_ged ,_cggf ._agb );if _adcag !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adcag );};switch _dfcf :=_ged .(type ){case *_ebb .PdfIndirectObject :switch {case _dfcf .GetParser ()==_cggf ._acfe ._cafdf :return ; case _dfcf .GetParser ()==_cggf .Reader ._cafdf :_gbgg ,_ :=_cggf ._acfe .GetIndirectObjectByNumber (int (_dfcf .ObjectNumber ));_adfc ,_feec :=_gbgg .(*_ebb .PdfIndirectObject );if _feec &&_adfc !=nil {if _adfc .PdfObject !=_dfcf .PdfObject &&_adfc .PdfObject .WriteString ()!=_dfcf .PdfObject .WriteString (){_cggf .addNewObject (_ged ); _cggf ._gbfa [_ged ]=_dfcf .ObjectNumber ;};};default:_cggf .addNewObject (_ged );};_cggf .updateObjectsDeep (_dfcf .PdfObject ,_badbe );case *_ebb .PdfObjectArray :for _ ,_eedb :=range _dfcf .Elements (){_cggf .updateObjectsDeep (_eedb ,_badbe );};case *_ebb .PdfObjectDictionary :for _ ,_gffe :=range _dfcf .Keys (){_cggf .updateObjectsDeep (_dfcf .Get (_gffe ),_badbe ); };case *_ebb .PdfObjectStreams :if _dfcf .GetParser ()!=_cggf ._acfe ._cafdf {for _ ,_cdcf :=range _dfcf .Elements (){_cggf .updateObjectsDeep (_cdcf ,_badbe );};};case *_ebb .PdfObjectStream :switch {case _dfcf .GetParser ()==_cggf ._acfe ._cafdf :return ; case _dfcf .GetParser ()==_cggf .Reader ._cafdf :if _cfagc ,_cbd :=_cggf ._acfe ._cafdf .LookupByReference (_dfcf .PdfObjectReference );_cbd ==nil {var _gef bool ;if _geged ,_gac :=_ebb .GetStream (_cfagc );_gac &&_ca .Equal (_geged .Stream ,_dfcf .Stream ){_gef =true ; };if _bbbgg ,_feag :=_ebb .GetDict (_cfagc );_gef &&_feag {_gef =_bbbgg .WriteString ()==_dfcf .PdfObjectDictionary .WriteString ();};if _gef {return ;};};if _dfcf .ObjectNumber !=0{_cggf ._gbfa [_ged ]=_dfcf .ObjectNumber ;};default:if _ ,_fbgg :=_cggf ._ddfg [_ged ]; !_fbgg {_cggf .addNewObject (_ged );};};_cggf .updateObjectsDeep (_dfcf .PdfObjectDictionary ,_badbe );};}; // GetOptimizer returns current PDF optimizer. func (_dccaa *PdfWriter )GetOptimizer ()Optimizer {return _dccaa ._aadcd }; // SetVersion sets the PDF version of the output file. func (_febac *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_febac ._efcge .Major =majorVersion ;_febac ._efcge .Minor =minorVersion ;}; // 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 (_fbfc *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _fbfc .baseFields ()._fbbd !=nil {return _fbfc .baseFields ()._fbbd ;};if _dfggb :=_fbfc ._ebcad .getFontDescriptor ();_dfggb !=nil {return _dfggb ;};_eg .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",_fbfc ); return nil ;};func (_baef *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";}; // 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 (_bbgeb *PdfOutlineTreeNode )GetContext ()PdfModel {if _adebf ,_ebgba :=_bbgeb ._geeee .(*PdfOutline );_ebgba {return _adebf ;};if _dfgcb ,_gdbe :=_bbgeb ._geeee .(*PdfOutlineItem );_gdbe {return _dfgcb ;};_eg .Log .Debug ("\u0045\u0052RO\u0052\u0020\u0049n\u0076\u0061\u006c\u0069d o\u0075tl\u0069\u006e\u0065\u0020\u0074\u0072\u0065e \u006e\u006f\u0064\u0065\u0020\u0069\u0074e\u006d"); return nil ;};func _afacb (_eaad *_dg .ImageBase )(_edacc Image ){_edacc .Width =int64 (_eaad .Width );_edacc .Height =int64 (_eaad .Height );_edacc .BitsPerComponent =int64 (_eaad .BitsPerComponent );_edacc .ColorComponents =_eaad .ColorComponents ;_edacc .Data =_eaad .Data ; _edacc ._dgcea =_eaad .Decode ;_edacc ._dagcb =_eaad .Alpha ;return _edacc ;}; // DecodeArray returns the component range values for the DeviceN colorspace. // [0 1.0 0 1.0 ...] for each color component. func (_affe *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _bgfad []float64 ;for _gdbc :=0;_gdbc < _affe .GetNumComponents ();_gdbc ++{_bgfad =append (_bgfad ,0.0,1.0);};return _bgfad ;}; // ToPdfObject implements interface PdfModel. func (_edab *PdfAnnotationCaret )ToPdfObject ()_ebb .PdfObject {_edab .PdfAnnotation .ToPdfObject ();_befg :=_edab ._bdcd ;_gbee :=_befg .PdfObject .(*_ebb .PdfObjectDictionary );_edab .PdfAnnotationMarkup .appendToPdfDictionary (_gbee );_gbee .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0043\u0061\u0072e\u0074")); _gbee .SetIfNotNil ("\u0052\u0044",_edab .RD );_gbee .SetIfNotNil ("\u0053\u0079",_edab .Sy );return _befg ;}; // PageFromIndirectObject returns the PdfPage and page number for a given indirect object. func (_eacbb *PdfReader )PageFromIndirectObject (ind *_ebb .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_eacbb .PageList )!=len (_eacbb ._faebb ){return nil ,0,_gf .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064"); };for _bged ,_fbaef :=range _eacbb ._faebb {if _fbaef ==ind {return _eacbb .PageList [_bged ],_bged +1,nil ;};};return nil ,0,_gf .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");}; // ToPdfObject implements interface PdfModel. func (_fff *PdfAnnotationCircle )ToPdfObject ()_ebb .PdfObject {_fff .PdfAnnotation .ToPdfObject ();_bdcb :=_fff ._bdcd ;_bcec :=_bdcb .PdfObject .(*_ebb .PdfObjectDictionary );_fff .PdfAnnotationMarkup .appendToPdfDictionary (_bcec );_bcec .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065")); _bcec .SetIfNotNil ("\u0042\u0053",_fff .BS );_bcec .SetIfNotNil ("\u0049\u0043",_fff .IC );_bcec .SetIfNotNil ("\u0042\u0045",_fff .BE );_bcec .SetIfNotNil ("\u0052\u0044",_fff .RD );return _bdcb ;}; // AddExtGState add External Graphics State (GState). The gsDict can be specified // either directly as a dictionary or an indirect object containing a dictionary. func (_beca *PdfPageResources )AddExtGState (gsName _ebb .PdfObjectName ,gsDict _ebb .PdfObject )error {if _beca .ExtGState ==nil {_beca .ExtGState =_ebb .MakeDict ();};_egfad :=_beca .ExtGState ;_abbce ,_baabb :=_ebb .TraceToDirectObject (_egfad ).(*_ebb .PdfObjectDictionary ); if !_baabb {_eg .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",_egfad ,_ebb .TraceToDirectObject (_egfad )); return _ebb .ErrTypeError ;};_abbce .Set (gsName ,gsDict );return nil ;}; // ColorToRGB converts a color in Separation colorspace to RGB colorspace. func (_eegce *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _eegce .AlternateSpace ==nil {return nil ,_gf .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 _eegce .AlternateSpace .ColorToRGB (color );};func _cgcga (_ggcdf *[]*PdfField ,_ggebg FieldFilterFunc ,_cacca bool )[]*PdfField {if _ggcdf ==nil {return nil ;};_dbdff :=*_ggcdf ;if len (*_ggcdf )==0{return nil ;};_ffdfb :=_dbdff [:0];if _ggebg ==nil {_ggebg =func (*PdfField )bool {return true }; };var _eedfc []*PdfField ;for _ ,_bagg :=range _dbdff {_ggedc :=_ggebg (_bagg );if _ggedc {_eedfc =append (_eedfc ,_bagg );if len (_bagg .Kids )> 0{_eedfc =append (_eedfc ,_cgcga (&_bagg .Kids ,_ggebg ,_cacca )...);};};if !_cacca ||!_ggedc ||len (_bagg .Kids )> 0{_ffdfb =append (_ffdfb ,_bagg ); };};*_ggcdf =_ffdfb ;return _eedfc ;}; // XObjectType represents the type of an XObject. type XObjectType int ; // NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an // error is returned. func NewPdfFontFromPdfObject (fontObj _ebb .PdfObject )(*PdfFont ,error ){return _ddacd (fontObj ,true )}; // 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 (_bdafb *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_acdab :=_bdafb .actualFont ();if _acdab ==nil {_eg .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",_bdafb ._ebcad ); return _bad .CharMetrics {},false ;};if _ccfcc ,_eaca :=_acdab .GetRuneMetrics (r );_eaca {return _ccfcc ,true ;};if _dbacdg ,_bccc :=_bdafb .GetFontDescriptor ();_bccc ==nil &&_dbacdg !=nil {return _bad .CharMetrics {Wx :_dbacdg ._gbfgb },true ;};_eg .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",_bdafb ); return _bad .CharMetrics {},false ;}; // PdfOutputIntentType is the subtype of the given PdfOutputIntent. type PdfOutputIntentType int ;func (_dfdg *PdfReader )newPdfAnnotationPrinterMarkFromDict (_dbcd *_ebb .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_bbag :=PdfAnnotationPrinterMark {};_bbag .MN =_dbcd .Get ("\u004d\u004e");return &_bbag ,nil ; }; // FullName returns the full name of the field as in rootname.parentname.partialname. func (_bfdfg *PdfField )FullName ()(string ,error ){var _dceg _ca .Buffer ;_cafga :=[]string {};if _bfdfg .T !=nil {_cafga =append (_cafga ,_bfdfg .T .Decoded ());};_dbacd :=map[*PdfField ]bool {};_dbacd [_bfdfg ]=true ;_gefg :=_bfdfg .Parent ;for _gefg !=nil {if _ ,_ccfbg :=_dbacd [_gefg ]; _ccfbg {return _dceg .String (),_gf .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _gefg .T ==nil {return _dceg .String (),_gf .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"); };_cafga =append (_cafga ,_gefg .T .Decoded ());_dbacd [_gefg ]=true ;_gefg =_gefg .Parent ;};for _abdb :=len (_cafga )-1;_abdb >=0;_abdb --{_dceg .WriteString (_cafga [_abdb ]);if _abdb > 0{_dceg .WriteString ("\u002e");};};return _dceg .String (),nil ; }; // Register registers (caches) a model to primitive object relationship. func (_ecbd *modelManager )Register (primitive _ebb .PdfObject ,model PdfModel ){_ecbd ._bgfdb [model ]=primitive ;_ecbd ._aabcbdd [primitive ]=model ;}; // GetVersion gets the document version. func (_efcaaa *PdfWriter )GetVersion ()_ebb .Version {return _efcaaa ._efcge };func (_afbcd *PdfReader )lookupPageByObject (_ecac _ebb .PdfObject )(*PdfPage ,error ){return nil ,_gf .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064"); };func _gbab (_dgfeg *_ebb .PdfObjectStream )(*PdfFunctionType4 ,error ){_bacf :=&PdfFunctionType4 {};_bacf ._gbgd =_dgfeg ;_cdef :=_dgfeg .PdfObjectDictionary ;_bcaf ,_adaa :=_ebb .TraceToDirectObject (_cdef .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ebb .PdfObjectArray ); if !_adaa {_eg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gf .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 _bcaf .Len ()%2!=0{_eg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gf .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_gefc ,_cbce :=_bcaf .ToFloat64Array (); if _cbce !=nil {return nil ,_cbce ;};_bacf .Domain =_gefc ;_bcaf ,_adaa =_ebb .TraceToDirectObject (_cdef .Get ("\u0052\u0061\u006eg\u0065")).(*_ebb .PdfObjectArray );if _adaa {if _bcaf .Len ()< 0||_bcaf .Len ()%2!=0{return nil ,_gf .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065"); };_dabd ,_ggaeb :=_bcaf .ToFloat64Array ();if _ggaeb !=nil {return nil ,_ggaeb ;};_bacf .Range =_dabd ;};_ddgde ,_cbce :=_ebb .DecodeStream (_dgfeg );if _cbce !=nil {return nil ,_cbce ;};_bacf ._abbbb =_ddgde ;_dbgaa :=_bc .NewPSParser (_ddgde );_adcef ,_cbce :=_dbgaa .Parse (); if _cbce !=nil {return nil ,_cbce ;};_bacf .Program =_adcef ;return _bacf ,nil ;}; // 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 (_bfgfb *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _cefgf []*PdfField ;_gadd :=map[*_ebb .PdfIndirectObject ]struct{}{};for _ ,_cbcfc :=range _bfgfb .PageList {_efgfd ,_ceebd :=_cbcfc .GetAnnotations ();if _ceebd !=nil {return _ceebd ; };for _ ,_gdbbf :=range _efgfd {var _gacfbf *PdfField ;switch _gaccd :=_gdbbf .GetContext ().(type ){case *PdfAnnotationWidget :if _gaccd ._gce !=nil {_gacfbf =_gaccd ._gce ;break ;};if _cedf ,_cbebe :=_ebb .GetIndirect (_gaccd .Parent );_cbebe {_gacfbf ,_ceebd =_bfgfb .newPdfFieldFromIndirectObject (_cedf ,nil ); if _ceebd ==nil {break ;};_eg .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",_cedf ,_ceebd ); };if _gaccd ._bdcd !=nil {_gacfbf ,_ceebd =_bfgfb .newPdfFieldFromIndirectObject (_gaccd ._bdcd ,nil );if _ceebd ==nil {break ;};_eg .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",_gaccd ._bdcd ,_ceebd ); };};if _gacfbf ==nil {continue ;};if _ ,_efdeg :=_gadd [_gacfbf ._cdfd ];_efdeg {continue ;};_gadd [_gacfbf ._cdfd ]=struct{}{};_cefgf =append (_cefgf ,_gacfbf );};};if len (_cefgf )==0{return nil ;};if _bfgfb .AcroForm ==nil {_bfgfb .AcroForm =NewPdfAcroForm (); };_bfgfb .AcroForm .Fields =&_cefgf ;return nil ;}; // SetPdfCreator sets the Creator attribute of the output PDF. func SetPdfCreator (creator string ){_daddc .Lock ();defer _daddc .Unlock ();_afedf =creator }; // Permissions specify a permissions dictionary (PDF 1.5). // (Section 12.8.4, Table 258 - Entries in a permissions dictionary p. 477 in PDF32000_2008). type Permissions struct{DocMDP *PdfSignature ;_bdgdgf *_ebb .PdfObjectDictionary ;}; // PdfActionGoTo3DView represents a GoTo3DView action. type PdfActionGoTo3DView struct{*PdfAction ;TA _ebb .PdfObject ;V _ebb .PdfObject ;};func (_dcaac *LTV )enable (_acfb ,_ecfcf []*_g .Certificate ,_beegg string )error {_edfg ,_adbag ,_facbfe :=_dcaac .buildCertChain (_acfb ,_ecfcf );if _facbfe !=nil {return _facbfe ; };_efgd ,_facbfe :=_dcaac .getCerts (_edfg );if _facbfe !=nil {return _facbfe ;};_fefeg ,_facbfe :=_dcaac .getOCSPs (_edfg ,_adbag );if _facbfe !=nil {return _facbfe ;};_cdbc ,_facbfe :=_dcaac .getCRLs (_edfg );if _facbfe !=nil {return _facbfe ;};_dagdg :=_dcaac ._dfdgf ; _acggb ,_facbfe :=_dagdg .addCerts (_efgd );if _facbfe !=nil {return _facbfe ;};_fafac ,_facbfe :=_dagdg .addOCSPs (_fefeg );if _facbfe !=nil {return _facbfe ;};_eaddg ,_facbfe :=_dagdg .addCRLs (_cdbc );if _facbfe !=nil {return _facbfe ;};if _beegg !=""{_dagdg .VRI [_beegg ]=&VRI {Cert :_acggb ,OCSP :_fafac ,CRL :_eaddg }; };_dcaac ._ggdbg .SetDSS (_dagdg );return nil ;}; // NewPdfOutlineTree returns an initialized PdfOutline tree. func NewPdfOutlineTree ()*PdfOutline {_ddgg :=NewPdfOutline ();_ddgg ._geeee =&_ddgg ;return _ddgg };func _fggcd ()string {_daddc .Lock ();defer _daddc .Unlock ();return _fceef }; // ToPdfObject implements interface PdfModel. func (_ccgc *PdfBorderStyle )ToPdfObject ()_ebb .PdfObject {_aaad :=_ebb .MakeDict ();if _ccgc ._dgaa !=nil {if _fbcg ,_afed :=_ccgc ._dgaa .(*_ebb .PdfIndirectObject );_afed {_fbcg .PdfObject =_aaad ;};};_aaad .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072")); if _ccgc .W !=nil {_aaad .Set ("\u0057",_ebb .MakeFloat (*_ccgc .W ));};if _ccgc .S !=nil {_aaad .Set ("\u0053",_ebb .MakeName (_ccgc .S .GetPdfName ()));};if _ccgc .D !=nil {_aaad .Set ("\u0044",_ebb .MakeArrayFromIntegers (*_ccgc .D ));};if _ccgc ._dgaa !=nil {return _ccgc ._dgaa ; };return _aaad ;}; // ToPdfObject implements interface PdfModel. func (_aabc *PdfActionSubmitForm )ToPdfObject ()_ebb .PdfObject {_aabc .PdfAction .ToPdfObject ();_deg :=_aabc ._abe ;_dbe :=_deg .PdfObject .(*_ebb .PdfObjectDictionary );_dbe .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeSubmitForm )));if _aabc .F !=nil {_dbe .Set ("\u0046",_aabc .F .ToPdfObject ()); };_dbe .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_aabc .Fields );_dbe .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_aabc .Flags );return _deg ;}; // PdfPageResources is a Page resources model. // Implements PdfModel. type PdfPageResources struct{ExtGState _ebb .PdfObject ;ColorSpace _ebb .PdfObject ;Pattern _ebb .PdfObject ;Shading _ebb .PdfObject ;XObject _ebb .PdfObject ;Font _ebb .PdfObject ;ProcSet _ebb .PdfObject ;Properties _ebb .PdfObject ;_efbed *_ebb .PdfObjectDictionary ; _aaee *PdfPageResourcesColorspaces ;}; // SignatureHandler interface defines the common functionality for PDF signature handlers, which // need to be capable of validating digital signatures and signing PDF documents. type SignatureHandler interface{ // IsApplicable checks if a given signature dictionary `sig` is applicable for the signature handler. // For example a signature of type `adbe.pkcs7.detached` might not fit for a rsa.sha1 handler. IsApplicable (_cfgae *PdfSignature )bool ; // Validate validates a PDF signature against a given digest (hash) such as that determined // for an input file. Returns validation results. Validate (_eeed *PdfSignature ,_gdaba Hasher )(SignatureValidationResult ,error ); // InitSignature prepares the signature dictionary for signing. This involves setting all // necessary fields, and also allocating sufficient space to the Contents so that the // finalized signature can be inserted once the hash is calculated. InitSignature (_adfcf *PdfSignature )error ; // NewDigest creates a new digest/hasher based on the signature dictionary and handler. NewDigest (_abdae *PdfSignature )(Hasher ,error ); // Sign receives the hash `digest` (for example hash of an input file), and signs based // on the signature dictionary `sig` and applies the signature data to the signature // dictionary Contents field. Sign (_caafc *PdfSignature ,_cabe Hasher )error ;}; // SetPdfSubject sets the Subject attribute of the output PDF. func SetPdfSubject (subject string ){_daddc .Lock ();defer _daddc .Unlock ();_feaca =subject }; // SetFlag sets the flag for the field. func (_bggb *PdfField )SetFlag (flag FieldFlag ){_bggb .Ff =_ebb .MakeInteger (int64 (flag ))}; // NewPdfField returns an initialized PdfField. func NewPdfField ()*PdfField {return &PdfField {_cdfd :_ebb .MakeIndirectObject (_ebb .MakeDict ())}}; // GetNumComponents returns the number of color components (1 for grayscale). func (_ddbg *PdfColorDeviceGray )GetNumComponents ()int {return 1}; // SetFilter sets compression filter. Decodes with current filter sets and // encodes the data with the new filter. func (_gddag *XObjectImage )SetFilter (encoder _ebb .StreamEncoder )error {_dcfdb :=_gddag .Stream ;_cefb ,_geebd :=_gddag .Filter .DecodeBytes (_dcfdb );if _geebd !=nil {return _geebd ;};_gddag .Filter =encoder ;encoder .UpdateParams (_gddag .getParamsDict ()); _dcfdb ,_geebd =encoder .EncodeBytes (_cefb );if _geebd !=nil {return _geebd ;};_gddag .Stream =_dcfdb ;return nil ;}; // DecodeArray returns the range of color component values in CalRGB colorspace. func (_feeg *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};}; // ToPdfObject returns a PDF object representation of the outline destination. func (_fbef OutlineDest )ToPdfObject ()_ebb .PdfObject {if (_fbef .PageObj ==nil &&_fbef .Page < 0)||_fbef .Mode ==""{return _ebb .MakeNull ();};_caedb :=_ebb .MakeArray ();if _fbef .PageObj !=nil {_caedb .Append (_fbef .PageObj );}else {_caedb .Append (_ebb .MakeInteger (_fbef .Page )); };_caedb .Append (_ebb .MakeName (_fbef .Mode ));switch _fbef .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_caedb .Append (_ebb .MakeFloat (_fbef .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_caedb .Append (_ebb .MakeFloat (_fbef .X )); case "\u0058\u0059\u005a":_caedb .Append (_ebb .MakeFloat (_fbef .X ));_caedb .Append (_ebb .MakeFloat (_fbef .Y ));_caedb .Append (_ebb .MakeFloat (_fbef .Zoom ));default:_caedb .Set (1,_ebb .MakeName ("\u0046\u0069\u0074"));};return _caedb ;}; // MergePageWith appends page content to source Pdf file page content. func (_dcaf *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_dcea :=pageNum -1;var _ggge *PdfPage ;for _bfbe ,_gcea :=range _dcaf ._dfbg {if _bfbe ==_dcea {_ggge =_gcea ;};};if _ggge ==nil {return _bg .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 _ggge ._defbb !=nil &&_ggge ._defbb .GetParser ()==_dcaf ._acfe ._cafdf {_ggge =_ggge .Duplicate ();_dcaf ._dfbg [_dcea ]=_ggge ;};page =page .Duplicate ();_bfegc (page );_caec :=_adg (_ggge );_abccac :=_adg (page );_aegd :=make (map[_ebb .PdfObjectName ]_ebb .PdfObjectName ); for _dcc :=range _abccac {if _ ,_cfbfb :=_caec [_dcc ];_cfbfb {for _ebfc :=1;true ;_ebfc ++{_gedc :=_ebb .PdfObjectName (string (_dcc )+_aa .Itoa (_ebfc ));if _ ,_edc :=_caec [_gedc ];!_edc {_aegd [_dcc ]=_gedc ;break ;};};};};_fdge ,_edgfb :=page .GetContentStreams (); if _edgfb !=nil {return _edgfb ;};_fbfe ,_edgfb :=_ggge .GetContentStreams ();if _edgfb !=nil {return _edgfb ;};for _bac ,_aeba :=range _fdge {for _cfadc ,_agdfd :=range _aegd {_aeba =_ee .Replace (_aeba ,"\u002f"+string (_cfadc ),"\u002f"+string (_agdfd ),-1); };_fdge [_bac ]=_aeba ;};_fbfe =append (_fbfe ,_fdge ...);if _fcfe :=_ggge .SetContentStreams (_fbfe ,_ebb .NewFlateEncoder ());_fcfe !=nil {return _fcfe ;};_ggge ._bbfed =append (_ggge ._bbfed ,page ._bbfed ...);if _ggge .Resources ==nil {_ggge .Resources =NewPdfPageResources (); };if page .Resources !=nil {_ggge .Resources .Font =_dcaf .mergeResources (_ggge .Resources .Font ,page .Resources .Font ,_aegd );_ggge .Resources .XObject =_dcaf .mergeResources (_ggge .Resources .XObject ,page .Resources .XObject ,_aegd );_ggge .Resources .Properties =_dcaf .mergeResources (_ggge .Resources .Properties ,page .Resources .Properties ,_aegd ); if _ggge .Resources .ProcSet ==nil {_ggge .Resources .ProcSet =page .Resources .ProcSet ;};_ggge .Resources .Shading =_dcaf .mergeResources (_ggge .Resources .Shading ,page .Resources .Shading ,_aegd );_ggge .Resources .ExtGState =_dcaf .mergeResources (_ggge .Resources .ExtGState ,page .Resources .ExtGState ,_aegd ); };_cgdfe ,_edgfb :=_ggge .GetMediaBox ();if _edgfb !=nil {return _edgfb ;};_fggg ,_edgfb :=page .GetMediaBox ();if _edgfb !=nil {return _edgfb ;};var _egfc bool ;if _cgdfe .Llx > _fggg .Llx {_cgdfe .Llx =_fggg .Llx ;_egfc =true ;};if _cgdfe .Lly > _fggg .Lly {_cgdfe .Lly =_fggg .Lly ; _egfc =true ;};if _cgdfe .Urx < _fggg .Urx {_cgdfe .Urx =_fggg .Urx ;_egfc =true ;};if _cgdfe .Ury < _fggg .Ury {_cgdfe .Ury =_fggg .Ury ;_egfc =true ;};if _egfc {_ggge .MediaBox =_cgdfe ;};return nil ;};func _febaee (_aaaa *_ebb .PdfObjectDictionary ,_gacdg *fontCommon )(*pdfFontType3 ,error ){_fcba :=_eega (_gacdg ); _ffdd :=_aaaa .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _ffdd ==nil {_ffdd =_ebb .MakeInteger (0);};_fcba .FirstChar =_ffdd ;_fdcfb ,_cbef :=_ebb .GetIntVal (_ffdd );if !_cbef {_eg .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",_ffdd ); return nil ,_ebb .ErrTypeError ;};_aegf :=_da .CharCode (_fdcfb );_ffdd =_aaaa .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _ffdd ==nil {_ffdd =_ebb .MakeInteger (255);};_fcba .LastChar =_ffdd ;_fdcfb ,_cbef =_ebb .GetIntVal (_ffdd );if !_cbef {_eg .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",_ffdd ); return nil ,_ebb .ErrTypeError ;};_dacbd :=_da .CharCode (_fdcfb );_ffdd =_aaaa .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _ffdd !=nil {_fcba .Resources =_ffdd ;};_ffdd =_aaaa .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _ffdd ==nil {_eg .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",_ffdd ); return nil ,_ebb .ErrNotSupported ;};_fcba .CharProcs =_ffdd ;_ffdd =_aaaa .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _ffdd ==nil {_eg .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",_ffdd ); return nil ,_ebb .ErrNotSupported ;};_fcba .FontMatrix =_ffdd ;_fcba ._aggbb =make (map[_da .CharCode ]float64 );_ffdd =_aaaa .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _ffdd !=nil {_fcba .Widths =_ffdd ;_agad ,_cgfgc :=_ebb .GetArray (_ffdd );if !_cgfgc {_eg .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",_ffdd ); return nil ,_ebb .ErrTypeError ;};_badae ,_cgfce :=_agad .ToFloat64Array ();if _cgfce !=nil {_eg .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 ,_cgfce ;};if len (_badae )!=int (_dacbd -_aegf +1){_eg .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",_dacbd -_aegf +1,len (_badae )); return nil ,_ebb .ErrRangeError ;};_ccac ,_cgfgc :=_ebb .GetArray (_fcba .FontMatrix );if !_cgfgc {_eg .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",_ccac ); return nil ,_cgfce ;};_feegb ,_cgfce :=_ccac .ToFloat64Array ();if _cgfce !=nil {_eg .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 ,_cgfce ;};_ebdbgg :=_fef .NewMatrix (_feegb [0],_feegb [1],_feegb [2],_feegb [3],_feegb [4],_feegb [5]);for _efdg ,_gfcec :=range _badae {_egccd ,_ :=_ebdbgg .Transform (_gfcec ,_gfcec );_fcba ._aggbb [_aegf +_da .CharCode (_efdg )]=_egccd ; };};_fcba .Encoding =_ebb .TraceToDirectObject (_aaaa .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));_cbcdg :=_aaaa .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _cbcdg !=nil {_fcba ._baag =_ebb .TraceToDirectObject (_cbcdg );_ccdd ,_gbfeb :=_feef (_fcba ._baag ,&_fcba .fontCommon ); if _gbfeb !=nil {return nil ,_gbfeb ;};_fcba ._dcdd =_ccdd ;};if _gacg :=_fcba ._dcdd ;_gacg !=nil {_fcba ._abcba =_da .NewCMapEncoder ("",nil ,_gacg );}else {_fcba ._abcba =_da .NewPdfDocEncoder ();};return _fcba ,nil ;}; // ToPdfObject returns the PDF representation of the outline tree node. func (_ddfea *PdfOutlineTreeNode )ToPdfObject ()_ebb .PdfObject {return _ddfea .GetContext ().ToPdfObject ();};func _dddgd (_ffbb string )(map[_da .CharCode ]_da .GlyphName ,error ){_ccacb :=_ee .Split (_ffbb ,"\u000a");_agfa :=make (map[_da .CharCode ]_da .GlyphName ); for _ ,_ddfcd :=range _ccacb {_bedgg :=_bdddd .FindStringSubmatch (_ddfcd );if _bedgg ==nil {continue ;};_abace ,_eaegc :=_bedgg [1],_bedgg [2];_cgffce ,_ggede :=_aa .Atoi (_abace );if _ggede !=nil {_eg .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",_ddfcd ); return nil ,_ebb .ErrTypeError ;};_agfa [_da .CharCode (_cgffce )]=_da .GlyphName (_eaegc );};_eg .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",_agfa ); return _agfa ,nil ;}; // GetPreviousRevision returns the previous revision of PdfReader for the Pdf document func (_dgga *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _dgga ._cafdf .GetRevisionNumber ()==0{return nil ,_gf .New ("\u0070\u0072e\u0076\u0069\u006f\u0075\u0073\u0020\u0076\u0065\u0072\u0073\u0069\u006f\u006e\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0065xi\u0073\u0074"); };if _befbd ,_gdgfd :=_dgga ._cacfc [_dgga ];_gdgfd {return _befbd ,nil ;};_eggdb ,_bdaga :=_dgga ._cafdf .GetPreviousRevisionReadSeeker ();if _bdaga !=nil {return nil ,_bdaga ;};_bgfg ,_bdaga :=_dcbd (_eggdb ,_dgga ._edcbc ,_dgga ._abadec ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn"); if _bdaga !=nil {return nil ,_bdaga ;};_dgga ._face [_dgga ._cafdf .GetRevisionNumber ()-1]=_bgfg ;_dgga ._cacfc [_dgga ]=_bgfg ;_bgfg ._cacfc =_dgga ._cacfc ;return _bgfg ,nil ;};func _bdec ()string {_ggfd :="\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 _abdaa _ca .Buffer ;for _dgdg :=0;_dgdg < 6;_dgdg ++{_abdaa .WriteRune (rune (_ggfd [_ff .Intn (len (_ggfd ))]));};return _abdaa .String ();}; // String returns a string that describes `base`. func (_afcga fontCommon )String ()string {return _bg .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_afcga .coreString ());}; // ToPdfObject converts the pdfCIDFontType0 to a PDF representation. func (_gacfbd *pdfCIDFontType0 )ToPdfObject ()_ebb .PdfObject {return _ebb .MakeNull ()};func (_dgad *PdfReader )newPdfAnnotationMarkupFromDict (_edgf *_ebb .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_cdae :=&PdfAnnotationMarkup {};if _ecg :=_edgf .Get ("\u0054"); _ecg !=nil {_cdae .T =_ecg ;};if _ggd :=_edgf .Get ("\u0050\u006f\u0070u\u0070");_ggd !=nil {_ccaa ,_bddd :=_ggd .(*_ebb .PdfIndirectObject );if !_bddd {if _ ,_ebag :=_ggd .(*_ebb .PdfObjectNull );!_ebag {return nil ,_gf .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 {_bde ,_ddga :=_dgad .newPdfAnnotationFromIndirectObject (_ccaa );if _ddga !=nil {return nil ,_ddga ;};if _bde !=nil {_dcb ,_gfca :=_bde ._efd .(*PdfAnnotationPopup );if !_gfca {return nil ,_gf .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"); };_cdae .Popup =_dcb ;};};};if _eede :=_edgf .Get ("\u0043\u0041");_eede !=nil {_cdae .CA =_eede ;};if _cga :=_edgf .Get ("\u0052\u0043");_cga !=nil {_cdae .RC =_cga ;};if _dbc :=_edgf .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"); _dbc !=nil {_cdae .CreationDate =_dbc ;};if _fec :=_edgf .Get ("\u0049\u0052\u0054");_fec !=nil {_cdae .IRT =_fec ;};if _dbagd :=_edgf .Get ("\u0053\u0075\u0062\u006a");_dbagd !=nil {_cdae .Subj =_dbagd ;};if _fccbf :=_edgf .Get ("\u0052\u0054");_fccbf !=nil {_cdae .RT =_fccbf ; };if _cffa :=_edgf .Get ("\u0049\u0054");_cffa !=nil {_cdae .IT =_cffa ;};if _dcbg :=_edgf .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_dcbg !=nil {_cdae .ExData =_dcbg ;};return _cdae ,nil ;};func (_ffdge SignatureValidationResult )String ()string {var _cecdb _ca .Buffer ; _cecdb .WriteString (_bg .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_ffdge .Name ));if _ffdge .Date ._dacdd > 0{_cecdb .WriteString (_bg .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_ffdge .Date .ToGoTime ().String ()));}else {_cecdb .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a"); };if len (_ffdge .Reason )> 0{_cecdb .WriteString (_bg .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_ffdge .Reason ));}else {_cecdb .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a"); };if len (_ffdge .Location )> 0{_cecdb .WriteString (_bg .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_ffdge .Location ));}else {_cecdb .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a"); };if len (_ffdge .ContactInfo )> 0{_cecdb .WriteString (_bg .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_ffdge .ContactInfo ));}else {_cecdb .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a"); };_cecdb .WriteString (_bg .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_ffdge .Fields )));if _ffdge .IsSigned {_cecdb .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 {_cecdb .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");};if _ffdge .IsVerified {_cecdb .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 {_cecdb .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 _ffdge .IsTrusted {_cecdb .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 {_cecdb .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 !_ffdge .GeneralizedTime .IsZero (){_cecdb .WriteString (_bg .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_ffdge .GeneralizedTime .String ())); };if _ffdge .DiffResults !=nil {_cecdb .WriteString (_bg .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_ffdge .DiffResults .IsPermitted ()));if len (_ffdge .DiffResults .Warnings )> 0{_cecdb .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a"); for _ ,_dgbfeb :=range _ffdge .DiffResults .Warnings {_cecdb .WriteString (_bg .Sprintf ("\u0009\u0025\u0073\u000a",_dgbfeb ));};};if len (_ffdge .DiffResults .Errors )> 0{_cecdb .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a"); for _ ,_eeaac :=range _ffdge .DiffResults .Errors {_cecdb .WriteString (_bg .Sprintf ("\u0009\u0025\u0073\u000a",_eeaac ));};};};return _cecdb .String ();}; // ToPdfObject returns a stream object. func (_bdbcd *XObjectForm )ToPdfObject ()_ebb .PdfObject {_bgecb :=_bdbcd ._gebcd ;_bcbcf :=_bgecb .PdfObjectDictionary ;if _bdbcd .Filter !=nil {_bcbcf =_bdbcd .Filter .MakeStreamDict ();_bgecb .PdfObjectDictionary =_bcbcf ;};_bcbcf .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074")); _bcbcf .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0046\u006f\u0072\u006d"));_bcbcf .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_bdbcd .FormType );_bcbcf .SetIfNotNil ("\u0042\u0042\u006f\u0078",_bdbcd .BBox ); _bcbcf .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_bdbcd .Matrix );if _bdbcd .Resources !=nil {_bcbcf .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_bdbcd .Resources .ToPdfObject ());};_bcbcf .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_bdbcd .Group ); _bcbcf .SetIfNotNil ("\u0052\u0065\u0066",_bdbcd .Ref );_bcbcf .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_bdbcd .MetaData );_bcbcf .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_bdbcd .PieceInfo );_bcbcf .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_bdbcd .LastModified ); _bcbcf .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_bdbcd .StructParent );_bcbcf .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_bdbcd .StructParents );_bcbcf .SetIfNotNil ("\u004f\u0050\u0049",_bdbcd .OPI ); _bcbcf .SetIfNotNil ("\u004f\u0043",_bdbcd .OC );_bcbcf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bdbcd .Name );_bcbcf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ebb .MakeInteger (int64 (len (_bdbcd .Stream ))));_bgecb .Stream =_bdbcd .Stream ;return _bgecb ; };func (_bdddf *LTV )getCerts (_eecfbg []*_g .Certificate )([][]byte ,error ){_debf :=make ([][]byte ,0,len (_eecfbg ));for _ ,_bcbg :=range _eecfbg {_debf =append (_debf ,_bcbg .Raw );};return _debf ,nil ;}; // PdfColor interface represents a generic color in PDF. type PdfColor interface{}; // ToPdfObject implements interface PdfModel. func (_cadc *PdfActionNamed )ToPdfObject ()_ebb .PdfObject {_cadc .PdfAction .ToPdfObject ();_dbdc :=_cadc ._abe ;_fcg :=_dbdc .PdfObject .(*_ebb .PdfObjectDictionary );_fcg .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeNamed )));_fcg .SetIfNotNil ("\u004e",_cadc .N ); return _dbdc ;}; // ToPdfObject returns the PDF representation of the colorspace. func (_affd *PdfColorspaceDeviceRGB )ToPdfObject ()_ebb .PdfObject {return _ebb .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");}; // 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 (_gaegd byte )byte ; // ToPdfObject returns the PDF representation of the function. func (_afbcg *PdfFunctionType0 )ToPdfObject ()_ebb .PdfObject {if _afbcg ._afgcc ==nil {_afbcg ._afgcc =&_ebb .PdfObjectStream {};};_fcae :=_ebb .MakeDict ();_fcae .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ebb .MakeInteger (0)); _ebafa :=&_ebb .PdfObjectArray {};for _ ,_eedab :=range _afbcg .Domain {_ebafa .Append (_ebb .MakeFloat (_eedab ));};_fcae .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_ebafa );_fdfcb :=&_ebb .PdfObjectArray {};for _ ,_fdfab :=range _afbcg .Range {_fdfcb .Append (_ebb .MakeFloat (_fdfab )); };_fcae .Set ("\u0052\u0061\u006eg\u0065",_fdfcb );_agde :=&_ebb .PdfObjectArray {};for _ ,_gegde :=range _afbcg .Size {_agde .Append (_ebb .MakeInteger (int64 (_gegde )));};_fcae .Set ("\u0053\u0069\u007a\u0065",_agde );_fcae .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_ebb .MakeInteger (int64 (_afbcg .BitsPerSample ))); if _afbcg .Order !=1{_fcae .Set ("\u004f\u0072\u0064e\u0072",_ebb .MakeInteger (int64 (_afbcg .Order )));};_fcae .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ebb .MakeInteger (int64 (len (_afbcg ._aeecg ))));_afbcg ._afgcc .Stream =_afbcg ._aeecg ;_afbcg ._afgcc .PdfObjectDictionary =_fcae ; return _afbcg ._afgcc ;}; // SetImageHandler sets the image handler used by the package. func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling }; // B returns the value of the blue component of the color. func (_eecge *PdfColorDeviceRGB )B ()float64 {return _eecge [2]}; // ImageToGray returns a new grayscale image based on the passed in RGB image. func (_ddeb *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_gf .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"); };_beeg ,_cdad :=_dg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._dagcb ,img ._dgcea );if _cdad !=nil {return img ,_cdad ;};_bdaf ,_cdad :=_dg .GrayConverter .Convert (_beeg );if _cdad !=nil {return img ,_cdad ; };return _afacb (_bdaf .Base ()),nil ;}; // SetLocation sets the `Location` field of the signature. func (_ebbgadb *PdfSignature )SetLocation (location string ){_ebbgadb .Location =_ebb .MakeString (location );}; // GetNumComponents returns the number of color components (3 for CalRGB). func (_cabd *PdfColorCalRGB )GetNumComponents ()int {return 3}; // PdfSignatureReference represents a PDF signature reference dictionary and is used for signing via form signature fields. // (Section 12.8.1, Table 253 - Entries in a signature reference dictionary p. 469 in PDF32000_2008). type PdfSignatureReference struct{_afacea *_ebb .PdfObjectDictionary ;Type *_ebb .PdfObjectName ;TransformMethod *_ebb .PdfObjectName ;TransformParams _ebb .PdfObject ;Data _ebb .PdfObject ;DigestMethod *_ebb .PdfObjectName ;};const (RC4_128bit =EncryptionAlgorithm (iota ); AES_128bit ;AES_256bit ;); // 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 ;}; // SetContext sets the sub annotation (context). func (_cfcc *PdfAnnotation )SetContext (ctx PdfModel ){_cfcc ._efd =ctx }; // ToPdfObject implements interface PdfModel. func (_abbd *PdfAnnotation3D )ToPdfObject ()_ebb .PdfObject {_abbd .PdfAnnotation .ToPdfObject ();_gfeb :=_abbd ._bdcd ;_afaa :=_gfeb .PdfObject .(*_ebb .PdfObjectDictionary );_afaa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0033\u0044")); _afaa .SetIfNotNil ("\u0033\u0044\u0044",_abbd .T3DD );_afaa .SetIfNotNil ("\u0033\u0044\u0056",_abbd .T3DV );_afaa .SetIfNotNil ("\u0033\u0044\u0041",_abbd .T3DA );_afaa .SetIfNotNil ("\u0033\u0044\u0049",_abbd .T3DI );_afaa .SetIfNotNil ("\u0033\u0044\u0042",_abbd .T3DB ); return _gfeb ;}; // SetContext sets the sub action (context). func (_acc *PdfAction )SetContext (ctx PdfModel ){_acc ._ad =ctx }; // SetPdfCreationDate sets the CreationDate attribute of the output PDF. func SetPdfCreationDate (creationDate _f .Time ){_daddc .Lock ();defer _daddc .Unlock ();_gecg =creationDate ;}; // AddFont adds a font dictionary to the Font resources. func (_acbb *PdfPage )AddFont (name _ebb .PdfObjectName ,font _ebb .PdfObject )error {if _acbb .Resources ==nil {_acbb .Resources =NewPdfPageResources ();};if _acbb .Resources .Font ==nil {_acbb .Resources .Font =_ebb .MakeDict ();};_beef ,_deab :=_ebb .TraceToDirectObject (_acbb .Resources .Font ).(*_ebb .PdfObjectDictionary ); if !_deab {_eg .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",_ebb .TraceToDirectObject (_acbb .Resources .Font )); return _gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_beef .Set (name ,font );return nil ;}; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. The slice should contain a single element. func (_aefd *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_aefd .Base .GetNumComponents ();_ffbg :=int (vals [0])*N ; if _ffbg < 0||(_ffbg +N -1)>=len (_aefd ._eabg ){_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ffbg );return nil ,ErrColorOutOfRange ;};_caeff :=_aefd ._eabg [_ffbg :_ffbg +N ]; var _aeab []float64 ;for _ ,_fede :=range _caeff {_aeab =append (_aeab ,float64 (_fede )/255.0);};_gbff ,_dfgf :=_aefd .Base .ColorFromFloats (_aeab );if _dfgf !=nil {return nil ,_dfgf ;};return _gbff ,nil ;}; // 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 (_cgffg *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_afae :=vals [0];if _afae < 0.0||_afae > 100.0{_eg .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",_afae ); return nil ,ErrColorOutOfRange ;};_cagea :=vals [1];_cfeb :=float64 (-100);_eafa :=float64 (100);if len (_cgffg .Range )> 1{_cfeb =_cgffg .Range [0];_eafa =_cgffg .Range [1];};if _cagea < _cfeb ||_cagea > _eafa {_eg .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",_cagea ,_cfeb ,_eafa ); return nil ,ErrColorOutOfRange ;};_edgd :=vals [2];_egbed :=float64 (-100);_ebgag :=float64 (100);if len (_cgffg .Range )> 3{_egbed =_cgffg .Range [2];_ebgag =_cgffg .Range [3];};if _edgd < _egbed ||_edgd > _ebgag {_eg .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",_edgd ,_egbed ,_ebgag ); return nil ,ErrColorOutOfRange ;};_cgfe :=NewPdfColorLab (_afae ,_cagea ,_edgd );return _cgfe ,nil ;}; // ColorToRGB converts gray -> rgb for a single color component. func (_fgcd *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_bbga ,_acbe :=color .(*PdfColorDeviceGray );if !_acbe {_eg .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 ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_bbga ),float64 (*_bbga ),float64 (*_bbga )),nil ;}; // ColorAt returns the color of the image pixel specified by the x and y coordinates. func (_aaaff *Image )ColorAt (x ,y int )(_e .Color ,error ){_dbdce :=_dg .BytesPerLine (int (_aaaff .Width ),int (_aaaff .BitsPerComponent ),_aaaff .ColorComponents );switch _aaaff .ColorComponents {case 1:return _dg .ColorAtGrayscale (x ,y ,int (_aaaff .BitsPerComponent ),_dbdce ,_aaaff .Data ,_aaaff ._dgcea ); case 3:return _dg .ColorAtNRGBA (x ,y ,int (_aaaff .Width ),_dbdce ,int (_aaaff .BitsPerComponent ),_aaaff .Data ,_aaaff ._dagcb ,_aaaff ._dgcea );case 4:return _dg .ColorAtCMYK (x ,y ,int (_aaaff .Width ),_aaaff .Data ,_aaaff ._dgcea );};_eg .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",_aaaff .ColorComponents ,_aaaff .BitsPerComponent ); return nil ,_gf .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");}; // 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 *_ebb .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_ebb .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_ebb .PdfObjectBool ;_edgag PdfModel ;_fbfae _ebb .PdfObject ;}; // GetSamples converts the raw byte slice into samples which are stored in a uint32 bit array. // Each sample is represented by BitsPerComponent consecutive bits in the raw data. // NOTE: The method resamples the image byte data before returning the result and // this could lead to high memory usage, especially on large images. It should // be avoided, when possible. It is recommended to access the Data field of the // image directly or use the ColorAt method to extract individual pixels. func (_bdcc *Image )GetSamples ()[]uint32 {_bgcc :=_abg .ResampleBytes (_bdcc .Data ,int (_bdcc .BitsPerComponent ));if _bdcc .BitsPerComponent < 8{_bgcc =_bdcc .samplesTrimPadding (_bgcc );};_gdgaga :=int (_bdcc .Width )*int (_bdcc .Height )*_bdcc .ColorComponents ; if len (_bgcc )< _gdgaga {_eg .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 (_bgcc ),_gdgaga ); return _bgcc ;}else if len (_bgcc )> _gdgaga {_eg .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 (_bgcc ),_gdgaga ); _bgcc =_bgcc [:_gdgaga ];};return _bgcc ;}; // ToPdfObject implements interface PdfModel. func (_aed *PdfActionGoTo )ToPdfObject ()_ebb .PdfObject {_aed .PdfAction .ToPdfObject ();_be :=_aed ._abe ;_faa :=_be .PdfObject .(*_ebb .PdfObjectDictionary );_faa .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeGoTo )));_faa .SetIfNotNil ("\u0044",_aed .D ); return _be ;}; // SetAlpha sets the alpha layer for the image. func (_ddfde *Image )SetAlpha (alpha []byte ){_ddfde ._dagcb =alpha }; // B returns the value of the B component of the color. func (_ffead *PdfColorLab )B ()float64 {return _ffead [2]}; // NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object. func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};func (_fdcd *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";}; // GetCapHeight returns the CapHeight of the font `descriptor`. func (_fgggd *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _ebb .GetNumberAsFloat (_fgggd .CapHeight );}; // GetNumComponents returns the number of color components. func (_cecf *PdfColorspaceICCBased )GetNumComponents ()int {return _cecf .N };func (_ge *PdfReader )newPdfActionGotoFromDict (_cef *_ebb .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_cef .Get ("\u0044")},nil ;}; // PdfWriter handles outputing PDF content. type PdfWriter struct{_gegba *_ebb .PdfIndirectObject ;_dggbf *_ebb .PdfIndirectObject ;_afbdd map[_ebb .PdfObject ]struct{};_ebdgg []_ebb .PdfObject ;_ffffd map[_ebb .PdfObject ]struct{};_addge []*_ebb .PdfIndirectObject ;_bcbee *PdfOutlineTreeNode ;_dffegd *_ebb .PdfObjectDictionary ; _cgced []_ebb .PdfObject ;_eadfd *_ebb .PdfIndirectObject ;_cbabb *_ba .Writer ;_afedd int64 ;_bgef error ;_cgfde *_ebb .PdfCrypt ;_gaccf *_ebb .PdfObjectDictionary ;_cbcaa *_ebb .PdfIndirectObject ;_eecfe *_ebb .PdfObjectArray ;_efcge _ebb .Version ;_adeff *bool ; _eefeb map[_ebb .PdfObject ][]*_ebb .PdfObjectDictionary ;_dbea *PdfAcroForm ;_aadcd Optimizer ;_cafac StandardApplier ;_bedfc map[int ]crossReference ;_fgdce int64 ;ObjNumOffset int ;_abffb bool ;_efdega _ebb .XrefTable ;_bcage int64 ;_ggbfg int64 ;_cdgd map[_ebb .PdfObject ]int64 ; _dcfg map[_ebb .PdfObject ]struct{};_cfecg string ;_geced []*PdfOutputIntent ;_abgcg bool ;_gfdea ,_gffb string ;};var _ pdfFont =(*pdfFontType3 )(nil );func (_gegbc *PdfWriter )adjustXRefAffectedVersion (_dfcad bool ){if _dfcad &&_gegbc ._efcge .Major ==1&&_gegbc ._efcge .Minor < 5{_gegbc ._efcge .Minor =5; };};func (_gaf *PdfAnnotationMarkup )appendToPdfDictionary (_bbed *_ebb .PdfObjectDictionary ){_bbed .SetIfNotNil ("\u0054",_gaf .T );if _gaf .Popup !=nil {_bbed .Set ("\u0050\u006f\u0070u\u0070",_gaf .Popup .ToPdfObject ());};_bbed .SetIfNotNil ("\u0043\u0041",_gaf .CA ); _bbed .SetIfNotNil ("\u0052\u0043",_gaf .RC );_bbed .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_gaf .CreationDate );_bbed .SetIfNotNil ("\u0049\u0052\u0054",_gaf .IRT );_bbed .SetIfNotNil ("\u0053\u0075\u0062\u006a",_gaf .Subj ); _bbed .SetIfNotNil ("\u0052\u0054",_gaf .RT );_bbed .SetIfNotNil ("\u0049\u0054",_gaf .IT );_bbed .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_gaf .ExData );}; // 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 ;_dagcb []byte ;_dgcea []float64 ;}; // NewPdfColorspaceSpecialSeparation returns a new separation color. func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_bcfa :=&PdfColorspaceSpecialSeparation {};return _bcfa ;}; // PdfAnnotationSquare represents Square annotations. // (Section 12.5.6.8). type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ebb .PdfObject ;IC _ebb .PdfObject ;BE _ebb .PdfObject ;RD _ebb .PdfObject ;}; // 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 *_cg .CertClient ; // OCSPClient is the client used to retrieve OCSP validation information. OCSPClient *_cg .OCSPClient ; // CRLClient is the client used to retrieve CRL validation information. CRLClient *_cg .CRLClient ; // SkipExisting specifies whether existing signature validations // should be skipped. SkipExisting bool ;_ggdbg *PdfAppender ;_dfdgf *DSS ;};const (_ PdfOutputIntentType =iota ;PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ;); // IsRadio returns true if the button field represents a radio button, false otherwise. func (_eedg *PdfFieldButton )IsRadio ()bool {return _eedg .GetType ()==ButtonTypeRadio }; // SignatureHandlerDocMDP extends SignatureHandler with the ValidateWithOpts method for checking the DocMDP policy. type SignatureHandlerDocMDP interface{SignatureHandler ; // ValidateWithOpts validates a PDF signature by checking PdfReader or PdfParser // ValidateWithOpts shall contain Validate call ValidateWithOpts (_dabaf *PdfSignature ,_gaaef Hasher ,_fgcfd SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );}; // Add appends an outline item as a child of the current outline item. func (_cacg *OutlineItem )Add (item *OutlineItem ){_cacg .Entries =append (_cacg .Entries ,item )}; // L returns the value of the L component of the color. func (_fgggb *PdfColorLab )L ()float64 {return _fgggb [0]};func (_bcgc *PdfReader )newPdfPageFromDict (_fbdca *_ebb .PdfObjectDictionary )(*PdfPage ,error ){_ggbac :=NewPdfPage ();_ggbac ._cdbfde =_fbdca ;_dbbf :=*_fbdca ;_gdeg ,_beaba :=_dbbf .Get ("\u0054\u0079\u0070\u0065").(*_ebb .PdfObjectName ); if !_beaba {return nil ,_gf .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 *_gdeg !="\u0050\u0061\u0067\u0065"{return nil ,_gf .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 _cfea :=_dbbf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_cfea !=nil {_ggbac .Parent =_cfea ;};if _ceae :=_dbbf .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_ceae !=nil {_cbeg ,_gadff :=_ebb .GetString (_ceae );if !_gadff {return nil ,_gf .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"); };_fgbee ,_fgcg :=NewPdfDate (_cbeg .Str ());if _fgcg !=nil {return nil ,_fgcg ;};_ggbac .LastModified =&_fgbee ;};if _gdabd :=_dbbf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_gdabd !=nil &&!_ebb .IsNullObject (_gdabd ){_bgbec ,_fdcgg :=_ebb .GetDict (_gdabd ); if !_fdcgg {return nil ,_bg .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",_gdabd );};var _bfcab error ;_ggbac .Resources ,_bfcab =NewPdfPageResourcesFromDict (_bgbec ); if _bfcab !=nil {return nil ,_bfcab ;};}else {_agcbb ,_aaafe :=_ggbac .getParentResources ();if _aaafe !=nil {return nil ,_aaafe ;};if _agcbb ==nil {_agcbb =NewPdfPageResources ();};_ggbac .Resources =_agcbb ;};if _ebbc :=_dbbf .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078"); _ebbc !=nil {_gdbbe ,_bgccb :=_ebb .GetArray (_ebbc );if !_bgccb {return nil ,_gf .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 _edfge error ; _ggbac .MediaBox ,_edfge =NewPdfRectangle (*_gdbbe );if _edfge !=nil {return nil ,_edfge ;};};if _fcfeac :=_dbbf .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_fcfeac !=nil {_fbadb ,_gced :=_ebb .GetArray (_fcfeac );if !_gced {return nil ,_gf .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y"); };var _gcgaf error ;_ggbac .CropBox ,_gcgaf =NewPdfRectangle (*_fbadb );if _gcgaf !=nil {return nil ,_gcgaf ;};};if _dddbb :=_dbbf .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_dddbb !=nil {_fedefa ,_dadee :=_ebb .GetArray (_dddbb );if !_dadee {return nil ,_gf .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 _ecadc error ;_ggbac .BleedBox ,_ecadc =NewPdfRectangle (*_fedefa );if _ecadc !=nil {return nil ,_ecadc ;};};if _cebb :=_dbbf .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_cebb !=nil {_dgdea ,_dgbb :=_ebb .GetArray (_cebb );if !_dgbb {return nil ,_gf .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y"); };var _fabb error ;_ggbac .TrimBox ,_fabb =NewPdfRectangle (*_dgdea );if _fabb !=nil {return nil ,_fabb ;};};if _aaagg :=_dbbf .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_aaagg !=nil {_afdfe ,_cgabb :=_ebb .GetArray (_aaagg );if !_cgabb {return nil ,_gf .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079"); };var _fbgef error ;_ggbac .ArtBox ,_fbgef =NewPdfRectangle (*_afdfe );if _fbgef !=nil {return nil ,_fbgef ;};};if _dggcd :=_dbbf .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_dggcd !=nil {_ggbac .BoxColorInfo =_dggcd ;}; if _edaf :=_dbbf .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_edaf !=nil {_ggbac .Contents =_edaf ;};if _dbffag :=_dbbf .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_dbffag !=nil {_cgace ,_bggfd :=_ebb .GetNumberAsInt64 (_dbffag );if _bggfd !=nil {return nil ,_gf .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"); };_ggbac .Rotate =&_cgace ;};if _gfdfb :=_dbbf .Get ("\u0047\u0072\u006fu\u0070");_gfdfb !=nil {_ggbac .Group =_gfdfb ;};if _baafd :=_dbbf .Get ("\u0054\u0068\u0075m\u0062");_baafd !=nil {_ggbac .Thumb =_baafd ;};if _afbf :=_dbbf .Get ("\u0042");_afbf !=nil {_ggbac .B =_afbf ; };if _befeg :=_dbbf .Get ("\u0044\u0075\u0072");_befeg !=nil {_ggbac .Dur =_befeg ;};if _dfgcbb :=_dbbf .Get ("\u0054\u0072\u0061n\u0073");_dfgcbb !=nil {_ggbac .Trans =_dfgcbb ;};if _cceee :=_dbbf .Get ("\u0041\u0041");_cceee !=nil {_ggbac .AA =_cceee ; };if _cgabd :=_dbbf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_cgabd !=nil {_ggbac .Metadata =_cgabd ;};if _ddgaa :=_dbbf .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_ddgaa !=nil {_ggbac .PieceInfo =_ddgaa ;};if _fgcgg :=_dbbf .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073"); _fgcgg !=nil {_ggbac .StructParents =_fgcgg ;};if _bfebc :=_dbbf .Get ("\u0049\u0044");_bfebc !=nil {_ggbac .ID =_bfebc ;};if _ddaba :=_dbbf .Get ("\u0050\u005a");_ddaba !=nil {_ggbac .PZ =_ddaba ;};if _eecag :=_dbbf .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f"); _eecag !=nil {_ggbac .SeparationInfo =_eecag ;};if _acab :=_dbbf .Get ("\u0054\u0061\u0062\u0073");_acab !=nil {_ggbac .Tabs =_acab ;};if _bcbbfa :=_dbbf .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064"); _bcbbfa !=nil {_ggbac .TemplateInstantiated =_bcbbfa ;};if _aeagf :=_dbbf .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_aeagf !=nil {_ggbac .PresSteps =_aeagf ;};if _fbdf :=_dbbf .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_fbdf !=nil {_ggbac .UserUnit =_fbdf ; };if _gbbac :=_dbbf .Get ("\u0056\u0050");_gbbac !=nil {_ggbac .VP =_gbbac ;};if _bfcaa :=_dbbf .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_bfcaa !=nil {_ggbac .Annots =_bfcaa ;};_ggbac ._ddab =_bcgc ;return _ggbac ,nil ;}; // String returns a human readable description of `fontfile`. func (_bfgbe *fontFile )String ()string {_dafgc :="\u005b\u004e\u006f\u006e\u0065\u005d";if _bfgbe ._gega !=nil {_dafgc =_bfgbe ._gega .String ();};return _bg .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_bfgbe ._bgbcg ,_dafgc ); }; // GetRuneMetrics returns the character metrics for the specified rune. // A bool flag is returned to indicate whether or not the entry was found. func (_bgce pdfCIDFontType0 )GetRuneMetrics (r rune )(_bad .CharMetrics ,bool ){return _bad .CharMetrics {Wx :_bgce ._gbdb },true ;};func _gebgc (_dacfb string )map[string ]string {_ebbeg :=_dbagf .Split (_dacfb ,-1);_ffge :=map[string ]string {};for _ ,_gadf :=range _ebbeg {_bfbee :=_afgea .FindStringSubmatch (_gadf ); if _bfbee ==nil {continue ;};_eaagc ,_geggg :=_bfbee [1],_bfbee [2];_ffge [_eaagc ]=_geggg ;};return _ffge ;}; // ImageToRGB convert an indexed image to RGB. func (_acddf *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_acddf .Base .GetNumComponents ();if N < 1{return Image {},_bg .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 ); };_caab :=_dg .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._dagcb ,img ._dgcea );_dggb :=_abg .NewReader (img .getBase ());_efee :=_abg .NewWriter (_caab );var (_ceac uint32 ;_caedd int ;_fabae error ;);for {_ceac ,_fabae =_dggb .ReadSample (); if _fabae ==_ab .EOF {break ;}else if _fabae !=nil {return img ,_fabae ;};_caedd =int (_ceac );_eg .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",_caedd ,N ,len (_acddf ._eabg )); if (_caedd +1)*N > len (_acddf ._eabg ){_caedd =len (_acddf ._eabg )/N -1;_eg .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_caedd );if _caedd < 0{_eg .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 _ffdb :=_caedd *N ;_ffdb < (_caedd +1)*N ;_ffdb ++{if _fabae =_efee .WriteSample (uint32 (_acddf ._eabg [_ffdb ]));_fabae !=nil {return img ,_fabae ;};};};return _acddf .Base .ImageToRGB (_afacb (&_caab ));}; // ToPdfObject implements interface PdfModel. func (_fdfd *PdfAnnotationPopup )ToPdfObject ()_ebb .PdfObject {_fdfd .PdfAnnotation .ToPdfObject ();_adagb :=_fdfd ._bdcd ;_aedf :=_adagb .PdfObject .(*_ebb .PdfObjectDictionary );_aedf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0050\u006f\u0070u\u0070")); _aedf .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_fdfd .Parent );_aedf .SetIfNotNil ("\u004f\u0070\u0065\u006e",_fdfd .Open );return _adagb ;}; // GetContentStream returns the pattern cell's content stream func (_dcccb *PdfTilingPattern )GetContentStream ()([]byte ,error ){_bbfcg ,_ ,_fbfgd :=_dcccb .GetContentStreamWithEncoder ();return _bbfcg ,_fbfgd ;}; // 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 (_afff *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _afff .flattenFieldsWithOpts (false ,appgen ,opts );}; // StdFontName represents name of a standard font. type StdFontName =_bad .StdFontName ; // PdfAnnotationMovie represents Movie annotations. // (Section 12.5.6.17). type PdfAnnotationMovie struct{*PdfAnnotation ;T _ebb .PdfObject ;Movie _ebb .PdfObject ;A _ebb .PdfObject ;};func (_fgea *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";}; // NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image. func (_fdbaa DefaultImageHandler )NewGrayImageFromGoImage (goimg _gdc .Image )(*Image ,error ){_agfcb :=goimg .Bounds ();_eacag :=&Image {Width :int64 (_agfcb .Dx ()),Height :int64 (_agfcb .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _ffddc :=goimg .(type ){case *_gdc .Gray :if len (_ffddc .Pix )!=_agfcb .Dx ()*_agfcb .Dy (){_cgdcb ,_ecec :=_dg .GrayConverter .Convert (goimg ); if _ecec !=nil {return nil ,_ecec ;};_eacag .Data =_cgdcb .Pix ();}else {_eacag .Data =_ffddc .Pix ;};case *_gdc .Gray16 :_eacag .BitsPerComponent =16;if len (_ffddc .Pix )!=_agfcb .Dx ()*_agfcb .Dy ()*2{_faea ,_eadg :=_dg .Gray16Converter .Convert (goimg ); if _eadg !=nil {return nil ,_eadg ;};_eacag .Data =_faea .Pix ();}else {_eacag .Data =_ffddc .Pix ;};case _dg .Image :_dggbb :=_ffddc .Base ();if _dggbb .ColorComponents ==1{_eacag .BitsPerComponent =int64 (_dggbb .BitsPerComponent );_eacag .Data =_dggbb .Data ; return _eacag ,nil ;};_fdaba ,_facg :=_dg .GrayConverter .Convert (goimg );if _facg !=nil {return nil ,_facg ;};_eacag .Data =_fdaba .Pix ();default:_adbg ,_cdbeg :=_dg .GrayConverter .Convert (goimg );if _cdbeg !=nil {return nil ,_cdbeg ;};_eacag .Data =_adbg .Pix (); };return _eacag ,nil ;}; // ToPdfObject implements interface PdfModel. func (_bdad *PdfActionHide )ToPdfObject ()_ebb .PdfObject {_bdad .PdfAction .ToPdfObject ();_dde :=_bdad ._abe ;_fge :=_dde .PdfObject .(*_ebb .PdfObjectDictionary );_fge .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeHide )));_fge .SetIfNotNil ("\u0054",_bdad .T ); _fge .SetIfNotNil ("\u0048",_bdad .H );return _dde ;}; // GetRevision returns the specific version of the PdfReader for the current Pdf document func (_fdgeg *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_gfdcb :=_fdgeg ._cafdf .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _gfdcb {return nil ,_gf .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072"); };if revisionNumber ==_gfdcb {return _fdgeg ,nil ;};if _fdgeg ._face [revisionNumber ]!=nil {return _fdgeg ._face [revisionNumber ],nil ;};_bfeee :=_fdgeg ;for _beccd :=_gfdcb -1;_beccd >=revisionNumber ;_beccd --{_eddae ,_ceba :=_bfeee .GetPreviousRevision (); if _ceba !=nil {return nil ,_ceba ;};_fdgeg ._face [_beccd ]=_eddae ;_bfeee =_eddae ;};return _bfeee ,nil ;}; // DecodeArray returns the range of color component values in CalGray colorspace. func (_gdd *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}}; // ToPdfObject implements interface PdfModel. func (_fbbe *PdfAnnotationFileAttachment )ToPdfObject ()_ebb .PdfObject {_fbbe .PdfAnnotation .ToPdfObject ();_bbfg :=_fbbe ._bdcd ;_cdda :=_bbfg .PdfObject .(*_ebb .PdfObjectDictionary );_fbbe .PdfAnnotationMarkup .appendToPdfDictionary (_cdda );_cdda .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074")); _cdda .SetIfNotNil ("\u0046\u0053",_fbbe .FS );_cdda .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fbbe .Name );return _bbfg ;}; // SetColorSpace sets `r` colorspace object to `colorspace`. func (_dbgf *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_dbgf ._aaee =colorspace ;};func (_gabc *PdfReader )newPdfAnnotationMovieFromDict (_ffgb *_ebb .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_fdab :=PdfAnnotationMovie {}; _fdab .T =_ffgb .Get ("\u0054");_fdab .Movie =_ffgb .Get ("\u004d\u006f\u0076i\u0065");_fdab .A =_ffgb .Get ("\u0041");return &_fdab ,nil ;}; // NewPdfReaderFromFile creates a new PdfReader from the speficied PDF file. // If ReaderOpts is nil it will be set to default value from NewReaderOpts. func NewPdfReaderFromFile (pdfFile string ,opts *ReaderOpts )(*PdfReader ,*_ed .File ,error ){const _acffb ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065"; _gggba ,_cdead :=_ed .Open (pdfFile );if _cdead !=nil {return nil ,nil ,_cdead ;};_gffff ,_cdead :=_dcbd (_gggba ,opts ,true ,_acffb );if _cdead !=nil {_gggba .Close ();return nil ,nil ,_cdead ;};return _gffff ,_gggba ,nil ;};func (_dfeg *fontFile )parseASCIIPart (_febd []byte )error {if len (_febd )< 2||string (_febd [:2])!="\u0025\u0021"{return _gf .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"); };_ffcef ,_daeeb ,_addbbd :=_gefgb (_febd );if _addbbd !=nil {return _addbbd ;};_abag :=_gebgc (_ffcef );_dfeg ._bgbcg =_abag ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _dfeg ._bgbcg ==""{_eg .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 _daeeb !=""{_edaef ,_fddbe :=_dddgd (_daeeb );if _fddbe !=nil {return _fddbe ;};_egfef ,_fddbe :=_da .NewCustomSimpleTextEncoder (_edaef ,nil );if _fddbe !=nil {_eg .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",_fddbe ); return nil ;};_dfeg ._gega =_egfef ;};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 ;_aeecg []byte ;_egdg []uint32 ;_afgcc *_ebb .PdfObjectStream ;}; // SetPdfKeywords sets the Keywords attribute of the output PDF. func SetPdfKeywords (keywords string ){_daddc .Lock ();defer _daddc .Unlock ();_fceef =keywords };type pdfFontType0 struct{fontCommon ;_dfffc *_ebb .PdfIndirectObject ;_bfdgc _da .TextEncoder ;Encoding _ebb .PdfObject ;DescendantFont *PdfFont ;_efeb *_ebe .CMap ; };func (_bcfdg *PdfAppender )addNewObject (_eaba _ebb .PdfObject ){if _ ,_ebgeb :=_bcfdg ._ddfg [_eaba ];!_ebgeb {_bcfdg ._bfeg =append (_bcfdg ._bfeg ,_eaba );_bcfdg ._ddfg [_eaba ]=struct{}{};};}; // GetContainingPdfObject returns the container of the DSS (indirect object). func (_egfd *DSS )GetContainingPdfObject ()_ebb .PdfObject {return _egfd ._fcgb }; // ColorToRGB converts an Indexed color to an RGB color. func (_dgfe *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _dgfe .Base ==nil {return nil ,_gf .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 _dgfe .Base .ColorToRGB (color );};func (_addcb *PdfReader )loadStructure ()error {if _addcb ._cafdf .GetCrypter ()!=nil &&!_addcb ._cafdf .IsAuthenticated (){return _bg .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"); };_dcafa :=_addcb ._cafdf .GetTrailer ();if _dcafa ==nil {return _bg .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_ggacb ,_aede :=_dcafa .Get ("\u0052\u006f\u006f\u0074").(*_ebb .PdfObjectReference );if !_aede {return _bg .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",_dcafa ); };_bebeb ,_fdbgb :=_addcb ._cafdf .LookupByReference (*_ggacb );if _fdbgb !=nil {_eg .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",_fdbgb ); return _fdbgb ;};_eddde ,_aede :=_bebeb .(*_ebb .PdfIndirectObject );if !_aede {_eg .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",_bebeb ,*_dcafa ); return _gf .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_edcbb ,_aede :=(*_eddde ).PdfObject .(*_ebb .PdfObjectDictionary );if !_aede {_eg .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",_eddde .PdfObject ); return _gf .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_eg .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_edcbb );_dgged ,_aede :=_edcbb .Get ("\u0050\u0061\u0067e\u0073").(*_ebb .PdfObjectReference ); if !_aede {return _gf .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");};_gcbce ,_fdbgb :=_addcb ._cafdf .LookupByReference (*_dgged ); if _fdbgb !=nil {_eg .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 _fdbgb ;};_cadaf ,_aede :=_gcbce .(*_ebb .PdfIndirectObject );if !_aede {_eg .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"); _eg .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_cadaf );return _gf .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_bgcfb ,_aede :=_cadaf .PdfObject .(*_ebb .PdfObjectDictionary );if !_aede {_eg .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",_cadaf ); return _gf .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_agcef ,_aede :=_ebb .GetInt (_bgcfb .Get ("\u0043\u006f\u0075n\u0074"));if !_aede {_eg .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 _gf .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_aede =_ebb .GetName (_bgcfb .Get ("\u0054\u0079\u0070\u0065"));!_aede {_eg .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"); _bgcfb .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0050\u0061\u0067e\u0073"));};if _afgac ,_ebaega :=_ebb .GetInt (_bgcfb .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_ebaega {_fcdage :=int64 (*_afgac );_addcb .Rotate =&_fcdage ;};_addcb ._agbbe =_ggacb ; _addcb ._fdgda =_edcbb ;_addcb ._egea =_bgcfb ;_addcb ._eedbb =_cadaf ;_addcb ._aadcb =int (*_agcef );_addcb ._faebb =[]*_ebb .PdfIndirectObject {};_ccabe :=map[_ebb .PdfObject ]struct{}{};_fdbgb =_addcb .buildPageList (_cadaf ,nil ,_ccabe );if _fdbgb !=nil {return _fdbgb ; };_eg .Log .Trace ("\u002d\u002d\u002d");_eg .Log .Trace ("\u0054\u004f\u0043");_eg .Log .Trace ("\u0050\u0061\u0067e\u0073");_eg .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_addcb ._faebb ),_addcb ._faebb );_addcb ._fgbcg ,_fdbgb =_addcb .loadOutlines (); if _fdbgb !=nil {_eg .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",_fdbgb ); return _fdbgb ;};_addcb .AcroForm ,_fdbgb =_addcb .loadForms ();if _fdbgb !=nil {return _fdbgb ;};_addcb .DSS ,_fdbgb =_addcb .loadDSS ();if _fdbgb !=nil {return _fdbgb ;};_addcb ._fdca ,_fdbgb =_addcb .loadPerms ();if _fdbgb !=nil {return _fdbgb ;};return nil ; };func (_ffcb *PdfWriter )updateObjectNumbers (){_eeegdb :=_ffcb .ObjNumOffset ;_gddfd :=0;for _ ,_abdde :=range _ffcb ._ebdgg {_gcgbf :=int64 (_gddfd +1+_eeegdb );_dedff :=true ;if _ffcb ._abffb {if _bbcdb ,_cafdc :=_ffcb ._cdgd [_abdde ];_cafdc {_gcgbf =_bbcdb ; _dedff =false ;};};switch _geeda :=_abdde .(type ){case *_ebb .PdfIndirectObject :_geeda .ObjectNumber =_gcgbf ;_geeda .GenerationNumber =0;case *_ebb .PdfObjectStream :_geeda .ObjectNumber =_gcgbf ;_geeda .GenerationNumber =0;case *_ebb .PdfObjectStreams :_geeda .ObjectNumber =_gcgbf ; _geeda .GenerationNumber =0;default:_eg .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",_geeda );continue ; };if _dedff {_gddfd ++;};};_bbffb :=func (_efccdb _ebb .PdfObject )int64 {switch _gdaae :=_efccdb .(type ){case *_ebb .PdfIndirectObject :return _gdaae .ObjectNumber ;case *_ebb .PdfObjectStream :return _gdaae .ObjectNumber ;case *_ebb .PdfObjectStreams :return _gdaae .ObjectNumber ; };return 0;};_ae .SliceStable (_ffcb ._ebdgg ,func (_cebbg ,_ddfab int )bool {return _bbffb (_ffcb ._ebdgg [_cebbg ])< _bbffb (_ffcb ._ebdgg [_ddfab ])});}; // NewPdfOutline returns an initialized PdfOutline. func NewPdfOutline ()*PdfOutline {_dbefg :=&PdfOutline {_egee :_ebb .MakeIndirectObject (_ebb .MakeDict ())};_dbefg ._geeee =_dbefg ;return _dbefg ;}; // SetPdfProducer sets the Producer attribute of the output PDF. func SetPdfProducer (producer string ){_daddc .Lock ();defer _daddc .Unlock ();_aaaae =producer }; // ParserMetadata gets the parser metadata. func (_aadg *CompliancePdfReader )ParserMetadata ()_ebb .ParserMetadata {if _aadg ._ecbbg ==(_ebb .ParserMetadata {}){_aadg ._ecbbg ,_ =_aadg ._cafdf .ParserMetadata ();};return _aadg ._ecbbg ;};func (_bgfdf *pdfFontType0 )bytesToCharcodes (_bgfde []byte )([]_da .CharCode ,bool ){if _bgfdf ._efeb ==nil {return nil ,false ; };_cgcca ,_fcdf :=_bgfdf ._efeb .BytesToCharcodes (_bgfde );if !_fcdf {return nil ,false ;};_cbfb :=make ([]_da .CharCode ,len (_cgcca ));for _cadaa ,_daea :=range _cgcca {_cbfb [_cadaa ]=_da .CharCode (_daea );};return _cbfb ,true ;}; // GetNumComponents returns the number of color components (4 for CMYK32). func (_bdgg *PdfColorDeviceCMYK )GetNumComponents ()int {return 4}; // PdfShadingType2 is an Axial shading. type PdfShadingType2 struct{*PdfShading ;Coords *_ebb .PdfObjectArray ;Domain *_ebb .PdfObjectArray ;Function []PdfFunction ;Extend *_ebb .PdfObjectArray ;}; // ColorToRGB converts a CalGray color to an RGB color. func (_ddff *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_cdea ,_afab :=color .(*PdfColorCalGray );if !_afab {_eg .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 ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_cdea .Val ();X :=_ddff .WhitePoint [0]*_cbg .Pow (ANorm ,_ddff .Gamma );Y :=_ddff .WhitePoint [1]*_cbg .Pow (ANorm ,_ddff .Gamma ); Z :=_ddff .WhitePoint [2]*_cbg .Pow (ANorm ,_ddff .Gamma );_fdce :=3.240479*X +-1.537150*Y +-0.498535*Z ;_bfff :=-0.969256*X +1.875992*Y +0.041556*Z ;_abggf :=0.055648*X +-0.204043*Y +1.057311*Z ;_fdce =_cbg .Min (_cbg .Max (_fdce ,0),1.0);_bfff =_cbg .Min (_cbg .Max (_bfff ,0),1.0); _abggf =_cbg .Min (_cbg .Max (_abggf ,0),1.0);return NewPdfColorDeviceRGB (_fdce ,_bfff ,_abggf ),nil ;};func (_dfbgb *PdfReader )buildNameNodes (_aegbb *_ebb .PdfIndirectObject ,_cgfcd map[_ebb .PdfObject ]struct{})error {if _aegbb ==nil {return nil ; };if _ ,_ddfbb :=_cgfcd [_aegbb ];_ddfbb {_eg .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",_aegbb .ObjectNumber ); return nil ;};_cgfcd [_aegbb ]=struct{}{};_dbbe ,_dafae :=_aegbb .PdfObject .(*_ebb .PdfObjectDictionary );if !_dafae {return _gf .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _cecg ,_gbfb :=_ebb .GetDict (_dbbe .Get ("\u0044\u0065\u0073t\u0073")); _gbfb {_beff ,_deadg :=_ebb .GetArray (_cecg .Get ("\u004b\u0069\u0064\u0073"));if !_deadg {return _gf .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_eg .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_beff ); for _bedaf ,_bacff :=range _beff .Elements (){_adadg ,_bfgda :=_ebb .GetIndirect (_bacff );if !_bfgda {_eg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u0068\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006e\u0064i\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u002d \u0028\u0025\u0073\u0029",_adadg ); return _gf .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_beff .Set (_bedaf ,_adadg );_cfed :=_dfbgb .buildNameNodes (_adadg ,_cgfcd );if _cfed !=nil {return _cfed ;}; };};if _fcab ,_eacae :=_ebb .GetDict (_dbbe );_eacae {if !_ebb .IsNullObject (_fcab .Get ("\u004b\u0069\u0064\u0073")){if _ebedb ,_cdgfd :=_ebb .GetArray (_fcab .Get ("\u004b\u0069\u0064\u0073"));_cdgfd {for _fbgb ,_bgbf :=range _ebedb .Elements (){if _dfbdc ,_abca :=_ebb .GetIndirect (_bgbf ); _abca {_ebedb .Set (_fbgb ,_dfbdc );_gfedgg :=_dfbgb .buildNameNodes (_dfbdc ,_cgfcd );if _gfedgg !=nil {return _gfedgg ;};};};};};};return nil ;}; // SetOCProperties sets the optional content properties. func (_afbae *PdfWriter )SetOCProperties (ocProperties _ebb .PdfObject )error {_gbag :=_afbae ._dffegd ;if ocProperties !=nil {_eg .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e"); _gbag .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _afbae .addObjects (ocProperties );};return nil ;};func _dffb (_agcda _ebb .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_gaecb :=NewPdfColorspaceSpecialIndexed (); if _gade ,_ecge :=_agcda .(*_ebb .PdfIndirectObject );_ecge {_gaecb ._gdaef =_gade ;};_agcda =_ebb .TraceToDirectObject (_agcda );_facbf ,_eeeb :=_agcda .(*_ebb .PdfObjectArray );if !_eeeb {return nil ,_bg .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };if _facbf .Len ()!=4{return nil ,_bg .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");};_agcda =_facbf .Get (0); _geaa ,_eeeb :=_agcda .(*_ebb .PdfObjectName );if !_eeeb {return nil ,_bg .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_geaa !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_bg .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065"); };_agcda =_facbf .Get (1);_fggge ,_bbeg :=DetermineColorspaceNameFromPdfObject (_agcda );if _bbeg !=nil {return nil ,_bbeg ;};if _fggge =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_fggge =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_eg .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",_fggge ); return nil ,_fddb ;};_cdfc ,_bbeg :=NewPdfColorspaceFromPdfObject (_agcda );if _bbeg !=nil {return nil ,_bbeg ;};_gaecb .Base =_cdfc ;_agcda =_facbf .Get (2);_ggcc ,_bbeg :=_ebb .GetNumberAsInt64 (_agcda );if _bbeg !=nil {return nil ,_bbeg ;};if _ggcc > 255{return nil ,_bg .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l"); };_gaecb .HiVal =int (_ggcc );_agcda =_facbf .Get (3);_gaecb .Lookup =_agcda ;_agcda =_ebb .TraceToDirectObject (_agcda );var _ebca []byte ;if _cafa ,_cggb :=_agcda .(*_ebb .PdfObjectString );_cggb {_ebca =_cafa .Bytes ();_eg .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",_ebca ); }else if _eaae ,_gfbda :=_agcda .(*_ebb .PdfObjectStream );_gfbda {_eg .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_agcda .String ());_eg .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_eaae .Stream ),_eaae .Stream ); _dcfb ,_fggd :=_ebb .DecodeStream (_eaae );if _fggd !=nil {return nil ,_fggd ;};_eg .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_dcfb ),_dcfb );_ebca =_dcfb ;}else {_eg .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_agcda ); return nil ,_bg .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 (_ebca )< _gaecb .Base .GetNumComponents ()*(_gaecb .HiVal +1){_eg .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"); _eg .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 (_ebca ),_gaecb .Base .GetNumComponents (),_gaecb .HiVal ); }else {_ebca =_ebca [:_gaecb .Base .GetNumComponents ()*(_gaecb .HiVal +1)];};_gaecb ._eabg =_ebca ;return _gaecb ,nil ;}; // NewPdfColorspaceLab returns a new Lab colorspace object. func NewPdfColorspaceLab ()*PdfColorspaceLab {_agcb :=&PdfColorspaceLab {};_agcb .BlackPoint =[]float64 {0.0,0.0,0.0};_agcb .Range =[]float64 {-100,100,-100,100};return _agcb ;};func (_fdcee *PdfReader )loadDSS ()(*DSS ,error ){if _fdcee ._cafdf .GetCrypter ()!=nil &&!_fdcee ._cafdf .IsAuthenticated (){return nil ,_bg .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"); };_egcgb :=_fdcee ._fdgda .Get ("\u0044\u0053\u0053");if _egcgb ==nil {return nil ,nil ;};_cbecc ,_ :=_ebb .GetIndirect (_egcgb );_egcgb =_ebb .TraceToDirectObject (_egcgb );switch _ebffg :=_egcgb .(type ){case *_ebb .PdfObjectNull :return nil ,nil ;case *_ebb .PdfObjectDictionary :return _afag (_cbecc ,_ebffg ); };return nil ,_bg .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_egcgb );}; // DecodeArray returns the range of color component values in the ICCBased colorspace. func (_cfcce *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _cfcce .Range }; // ImageToRGB converts an image in CMYK32 colorspace to an RGB image. func (_edea *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_eg .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_eg .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 ); _eg .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_eg .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width ); _feee ,_abbgg :=_dg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._dagcb ,img ._dgcea );if _abbgg !=nil {return Image {},_abbgg ;};_bbagg ,_abbgg :=_dg .NRGBAConverter .Convert (_feee ); if _abbgg !=nil {return Image {},_abbgg ;};return _afacb (_bbagg .Base ()),nil ;}; // ToPdfObject implements interface PdfModel. func (_eee *PdfAnnotationSquiggly )ToPdfObject ()_ebb .PdfObject {_eee .PdfAnnotation .ToPdfObject ();_bbcd :=_eee ._bdcd ;_ecgc :=_bbcd .PdfObject .(*_ebb .PdfObjectDictionary );_eee .PdfAnnotationMarkup .appendToPdfDictionary (_ecgc );_ecgc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079")); _ecgc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_eee .QuadPoints );return _bbcd ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_gddbg *PdfShadingType6 )ToPdfObject ()_ebb .PdfObject {_gddbg .PdfShading .ToPdfObject ();_egged ,_dfdaba :=_gddbg .getShadingDict ();if _dfdaba !=nil {_eg .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 _gddbg .BitsPerCoordinate !=nil {_egged .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_gddbg .BitsPerCoordinate );};if _gddbg .BitsPerComponent !=nil {_egged .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_gddbg .BitsPerComponent ); };if _gddbg .BitsPerFlag !=nil {_egged .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_gddbg .BitsPerFlag );};if _gddbg .Decode !=nil {_egged .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_gddbg .Decode );};if _gddbg .Function !=nil {if len (_gddbg .Function )==1{_egged .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gddbg .Function [0].ToPdfObject ()); }else {_ggecg :=_ebb .MakeArray ();for _ ,_ebbgad :=range _gddbg .Function {_ggecg .Append (_ebbgad .ToPdfObject ());};_egged .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ggecg );};};return _gddbg ._fbfae ;}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 1 for a CalGray device. func (_dgaaf *PdfColorspaceCalGray )GetNumComponents ()int {return 1}; // HasExtGState checks whether a font is defined by the specified keyName. func (_gebbd *PdfPageResources )HasExtGState (keyName _ebb .PdfObjectName )bool {_ ,_gdcge :=_gebbd .GetFontByName (keyName );return _gdcge ;}; // NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1]. func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_eaeef :=PdfColorDeviceGray (grayVal );return &_eaeef ;}; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. The slice should contain a single element. func (_beeb *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bafdd :=vals [0];_eecfbd :=[]float64 {_bafdd }; _gcfgb ,_egced :=_beeb .TintTransform .Evaluate (_eecfbd );if _egced !=nil {_eg .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",_egced ); _eg .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_beeb .TintTransform );return nil ,_egced ;};_eg .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",_gcfgb ,_beeb .AlternateSpace ); _gddb ,_egced :=_beeb .AlternateSpace .ColorFromFloats (_gcfgb );if _egced !=nil {_eg .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",_egced ); return nil ,_egced ;};return _gddb ,nil ;}; // SetCatalogMetadata sets the catalog metadata (XMP) stream object. func (_feegg *PdfWriter )SetCatalogMetadata (meta _ebb .PdfObject )error {if meta ==nil {_feegg ._dffegd .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_abbee ,_aegfe :=_ebb .GetStream (meta );if !_aegfe {return _gf .New ("\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u006d\u0065\u0074\u0061\u0064a\u0074\u0061\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0061\u0020\u0076\u0061\u006c\u0069\u0064\u0020\u0073t\u0072\u0065\u0061\u006d"); };_feegg .addObject (_abbee );_feegg ._dffegd .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_abbee );return nil ;};func (_cafeg *PdfPattern )getDict ()*_ebb .PdfObjectDictionary {if _fdfaeb ,_gfbbdd :=_cafeg ._dcddc .(*_ebb .PdfIndirectObject ); _gfbbdd {_ccdc ,_acebd :=_fdfaeb .PdfObject .(*_ebb .PdfObjectDictionary );if !_acebd {return nil ;};return _ccdc ;}else if _dbbbd ,_fbcfe :=_cafeg ._dcddc .(*_ebb .PdfObjectStream );_fbcfe {return _dbbbd .PdfObjectDictionary ;}else {_eg .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",_cafeg ._dcddc ); return nil ;};}; // GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this. func (_dede *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _dede ._ffagg .(*PdfShadingPattern );}; // NewPdfAnnotation3D returns a new 3d annotation. func NewPdfAnnotation3D ()*PdfAnnotation3D {_bec :=NewPdfAnnotation ();_fgad :=&PdfAnnotation3D {};_fgad .PdfAnnotation =_bec ;_bec .SetContext (_fgad );return _fgad ;}; // ToInteger convert to an integer format. func (_eadf *PdfColorDeviceGray )ToInteger (bits int )uint32 {_eeeff :=_cbg .Pow (2,float64 (bits ))-1;return uint32 (_eeeff *_eadf .Val ());}; // 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 ;_ddffd *_ebb .PdfIndirectObject ;}; // PdfAnnotationMarkup represents additional fields for mark-up annotations. // (Section 12.5.6.2 p. 399). type PdfAnnotationMarkup struct{T _ebb .PdfObject ;Popup *PdfAnnotationPopup ;CA _ebb .PdfObject ;RC _ebb .PdfObject ;CreationDate _ebb .PdfObject ;IRT _ebb .PdfObject ;Subj _ebb .PdfObject ;RT _ebb .PdfObject ;IT _ebb .PdfObject ;ExData _ebb .PdfObject ; }; // UpdatePage updates the `page` in the new revision if it has changed. func (_cecb *PdfAppender )UpdatePage (page *PdfPage ){_cecb .updateObjectsDeep (page .ToPdfObject (),nil )};func _edfcb ()_f .Time {_daddc .Lock ();defer _daddc .Unlock ();return _gecg };func _abgfe (_gagf *_ebb .PdfObjectDictionary )bool {for _ ,_eefc :=range _gagf .Keys (){if _ ,_ccee :=_gdcdfg [_eefc .String ()]; _ccee {return true ;};};return false ;};func (_eafg *PdfAcroForm )filteredFields (_dfgb FieldFilterFunc ,_fbbeg bool )[]*PdfField {if _eafg ==nil {return nil ;};return _cgcga (_eafg .Fields ,_dfgb ,_fbbeg );}; // ToPdfObject implements interface PdfModel. func (_ebfg *PdfAnnotationLink )ToPdfObject ()_ebb .PdfObject {_ebfg .PdfAnnotation .ToPdfObject ();_ebad :=_ebfg ._bdcd ;_bedc :=_ebad .PdfObject .(*_ebb .PdfObjectDictionary );_bedc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u004c\u0069\u006e\u006b")); if _ebfg ._ffea !=nil &&_ebfg ._ffea ._ad !=nil {_bedc .Set ("\u0041",_ebfg ._ffea ._ad .ToPdfObject ());}else if _ebfg .A !=nil {_bedc .Set ("\u0041",_ebfg .A );};_bedc .SetIfNotNil ("\u0044\u0065\u0073\u0074",_ebfg .Dest );_bedc .SetIfNotNil ("\u0048",_ebfg .H ); _bedc .SetIfNotNil ("\u0050\u0041",_ebfg .PA );_bedc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_ebfg .QuadPoints );_bedc .SetIfNotNil ("\u0042\u0053",_ebfg .BS );return _ebad ;}; // GetAllContentStreams gets all the content streams for a page as one string. func (_feefa *PdfPage )GetAllContentStreams ()(string ,error ){_aedcf ,_eaaea :=_feefa .GetContentStreams ();if _eaaea !=nil {return "",_eaaea ;};return _ee .Join (_aedcf ,"\u0020"),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 *_ebb .PdfObjectName ;Colorants _ebb .PdfObject ;Process _ebb .PdfObject ;MixingHints _ebb .PdfObject ;_afca *_ebb .PdfIndirectObject ;}; // ToPdfObject implements interface PdfModel. // Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information. func (_gggd *PdfAnnotation )ToPdfObject ()_ebb .PdfObject {_bdcda :=_gggd ._bdcd ;_eegcd :=_bdcda .PdfObject .(*_ebb .PdfObjectDictionary );_eegcd .Clear ();_eegcd .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0041\u006e\u006eo\u0074"));_eegcd .SetIfNotNil ("\u0052\u0065\u0063\u0074",_gggd .Rect ); _eegcd .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_gggd .Contents );_eegcd .SetIfNotNil ("\u0050",_gggd .P );_eegcd .SetIfNotNil ("\u004e\u004d",_gggd .NM );_eegcd .SetIfNotNil ("\u004d",_gggd .M );_eegcd .SetIfNotNil ("\u0046",_gggd .F ); _eegcd .SetIfNotNil ("\u0041\u0050",_gggd .AP );_eegcd .SetIfNotNil ("\u0041\u0053",_gggd .AS );_eegcd .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_gggd .Border );_eegcd .SetIfNotNil ("\u0043",_gggd .C );_eegcd .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_gggd .StructParent ); _eegcd .SetIfNotNil ("\u004f\u0043",_gggd .OC );return _bdcda ;};func _gggf (_bba _ebb .PdfObject )(*PdfFilespec ,error ){if _bba ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_bba );}; // PdfActionImportData represents a importData action. type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};func (_ebff *PdfReader )newPdfAnnotationRichMediaFromDict (_bbcf *_ebb .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_cgda :=&PdfAnnotationRichMedia {};_cgda .RichMediaSettings =_bbcf .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073"); _cgda .RichMediaContent =_bbcf .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");return _cgda ,nil ;}; // Evaluate runs the function. Input is [x1 x2 x3]. func (_cegd *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _cegd ._bdbae ==nil {_cegd ._bdbae =_bc .NewPSExecutor (_cegd .Program );};var _bcce []_bc .PSObject ;for _ ,_fageaf :=range xVec {_bcce =append (_bcce ,_bc .MakeReal (_fageaf )); };_dfced ,_bgcge :=_cegd ._bdbae .Execute (_bcce );if _bgcge !=nil {return nil ,_bgcge ;};_bccbg ,_bgcge :=_bc .PSObjectArrayToFloat64Array (_dfced );if _bgcge !=nil {return nil ,_bgcge ;};return _bccbg ,nil ;}; // GetNumComponents returns the number of input color components, i.e. that are input to the tint transform. func (_addf *PdfColorspaceDeviceN )GetNumComponents ()int {return _addf .ColorantNames .Len ()}; // 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 (_efgdb *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _cabb []*PdfField ;if _efgdb .AcroForm !=nil {_cabb =_efgdb .AcroForm .AllFields ();};_bgag :=make (map[*PdfField ]struct{},len (_cabb ));for _ ,_aggfa :=range _cabb {_bgag [_aggfa ]=struct{}{}; };for _ ,_deagg :=range _efgdb .PageList {_abgdc ,_bccf :=_deagg .GetAnnotations ();if _bccf !=nil {return false ,_bccf ;};for _ ,_dcabe :=range _abgdc {_egeb ,_gedac :=_dcabe .GetContext ().(*PdfAnnotationWidget );if !_gedac {continue ;};_bgdgg :=_egeb .Field (); if _bgdgg ==nil {return true ,nil ;};if _ ,_fbgc :=_bgag [_bgdgg ];!_fbgc {return true ,nil ;};};};return false ,nil ;}; // PdfColorCalRGB represents a color in the Colorimetric CIE RGB colorspace. // A, B, C components // Each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity. type PdfColorCalRGB [3]float64 ; // NewPdfWriter initializes a new PdfWriter. func NewPdfWriter ()PdfWriter {_deaafa :=PdfWriter {};_deaafa ._ffffd =map[_ebb .PdfObject ]struct{}{};_deaafa ._ebdgg =[]_ebb .PdfObject {};_deaafa ._eefeb =map[_ebb .PdfObject ][]*_ebb .PdfObjectDictionary {};_deaafa ._dcfg =map[_ebb .PdfObject ]struct{}{}; _deaafa ._efcge .Major =1;_deaafa ._efcge .Minor =3;_afebb :=_ebb .MakeDict ();_gdec :=[]struct{_ddffa _ebb .PdfObjectName ;_ecedfa string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_gagfgf ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_feaae ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_dccgg ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_bdfea ()},{"\u0054\u0069\u0074l\u0065",_bggeg ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_fggcd ()}}; for _ ,_dggbbf :=range _gdec {if _dggbbf ._ecedfa !=""{_afebb .Set (_dggbbf ._ddffa ,_ebb .MakeString (_dggbbf ._ecedfa ));};};if _afccd :=_edfcb ();!_afccd .IsZero (){if _cbgab ,_eafac :=NewPdfDateFromTime (_afccd );_eafac ==nil {_afebb .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_cbgab .ToPdfObject ()); };};if _abeeg :=_eacbd ();!_abeeg .IsZero (){if _gdbed ,_abagg :=NewPdfDateFromTime (_abeeg );_abagg ==nil {_afebb .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_gdbed .ToPdfObject ());};};_abde :=_ebb .PdfIndirectObject {};_abde .PdfObject =_afebb ;_deaafa ._eadfd =&_abde ; _deaafa .addObject (&_abde );_bdecc :=_ebb .PdfIndirectObject {};_eafgf :=_ebb .MakeDict ();_eafgf .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_bdecc .PdfObject =_eafgf ;_deaafa ._gegba =&_bdecc ;_deaafa .addObject (_deaafa ._gegba ); _edcbca ,_cbcb :=_bafec ("\u0077");if _cbcb !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cbcb );};_deaafa ._cfecg =_edcbca ;_bcgaeb :=_ebb .PdfIndirectObject {};_bcbcbb :=_ebb .MakeDict ();_bcbcbb .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0050\u0061\u0067e\u0073")); _fbfac :=_ebb .PdfObjectArray {};_bcbcbb .Set ("\u004b\u0069\u0064\u0073",&_fbfac );_bcbcbb .Set ("\u0043\u006f\u0075n\u0074",_ebb .MakeInteger (0));_bcgaeb .PdfObject =_bcbcbb ;_deaafa ._dggbf =&_bcgaeb ;_deaafa ._afbdd =map[_ebb .PdfObject ]struct{}{}; _deaafa .addObject (_deaafa ._dggbf );_eafgf .Set ("\u0050\u0061\u0067e\u0073",&_bcgaeb );_deaafa ._dffegd =_eafgf ;_eg .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_bdecc );return _deaafa ;};func (_efg *PdfReader )newPdfActionFromIndirectObject (_fga *_ebb .PdfIndirectObject )(*PdfAction ,error ){_bbe ,_bccb :=_fga .PdfObject .(*_ebb .PdfObjectDictionary ); if !_bccb {return nil ,_bg .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 :=_efg ._abbaca .GetModelFromPrimitive (_bbe );model !=nil {_feac ,_fbc :=model .(*PdfAction );if !_fbc {return nil ,_bg .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 _feac ,nil ;};_dgf :=&PdfAction {};_dgf ._abe =_fga ;_efg ._abbaca .Register (_bbe ,_dgf );if _cfd :=_bbe .Get ("\u0054\u0079\u0070\u0065");_cfd !=nil {_gbd ,_bade :=_cfd .(*_ebb .PdfObjectName );if !_bade {_eg .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",_cfd ); }else {if *_gbd !="\u0041\u0063\u0074\u0069\u006f\u006e"{_eg .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",*_gbd ); };_dgf .Type =_gbd ;};};if _fgbd :=_bbe .Get ("\u004e\u0065\u0078\u0074");_fgbd !=nil {_dgf .Next =_fgbd ;};if _faad :=_bbe .Get ("\u0053");_faad !=nil {_dgf .S =_faad ;};_edef ,_gfb :=_dgf .S .(*_ebb .PdfObjectName );if !_gfb {_eg .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",_dgf .S ); return nil ,_bg .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",_dgf .S );};_fbda :=PdfActionType (_edef .String ()); switch _fbda {case ActionTypeGoTo :_gba ,_fde :=_efg .newPdfActionGotoFromDict (_bbe );if _fde !=nil {return nil ,_fde ;};_gba .PdfAction =_dgf ;_dgf ._ad =_gba ;return _dgf ,nil ;case ActionTypeGoToR :_dbg ,_gga :=_efg .newPdfActionGotoRFromDict (_bbe ); if _gga !=nil {return nil ,_gga ;};_dbg .PdfAction =_dgf ;_dgf ._ad =_dbg ;return _dgf ,nil ;case ActionTypeGoToE :_gdcd ,_eed :=_efg .newPdfActionGotoEFromDict (_bbe );if _eed !=nil {return nil ,_eed ;};_gdcd .PdfAction =_dgf ;_dgf ._ad =_gdcd ;return _dgf ,nil ; case ActionTypeLaunch :_dgg ,_bce :=_efg .newPdfActionLaunchFromDict (_bbe );if _bce !=nil {return nil ,_bce ;};_dgg .PdfAction =_dgf ;_dgf ._ad =_dgg ;return _dgf ,nil ;case ActionTypeThread :_bag ,_fdf :=_efg .newPdfActionThreadFromDict (_bbe );if _fdf !=nil {return nil ,_fdf ; };_bag .PdfAction =_dgf ;_dgf ._ad =_bag ;return _dgf ,nil ;case ActionTypeURI :_dbed ,_eecf :=_efg .newPdfActionURIFromDict (_bbe );if _eecf !=nil {return nil ,_eecf ;};_dbed .PdfAction =_dgf ;_dgf ._ad =_dbed ;return _dgf ,nil ;case ActionTypeSound :_fgbg ,_bgb :=_efg .newPdfActionSoundFromDict (_bbe ); if _bgb !=nil {return nil ,_bgb ;};_fgbg .PdfAction =_dgf ;_dgf ._ad =_fgbg ;return _dgf ,nil ;case ActionTypeMovie :_ggg ,_gfcf :=_efg .newPdfActionMovieFromDict (_bbe );if _gfcf !=nil {return nil ,_gfcf ;};_ggg .PdfAction =_dgf ;_dgf ._ad =_ggg ;return _dgf ,nil ; case ActionTypeHide :_eba ,_ggac :=_efg .newPdfActionHideFromDict (_bbe );if _ggac !=nil {return nil ,_ggac ;};_eba .PdfAction =_dgf ;_dgf ._ad =_eba ;return _dgf ,nil ;case ActionTypeNamed :_cdc ,_gbea :=_efg .newPdfActionNamedFromDict (_bbe );if _gbea !=nil {return nil ,_gbea ; };_cdc .PdfAction =_dgf ;_dgf ._ad =_cdc ;return _dgf ,nil ;case ActionTypeSubmitForm :_bbg ,_cccb :=_efg .newPdfActionSubmitFormFromDict (_bbe );if _cccb !=nil {return nil ,_cccb ;};_bbg .PdfAction =_dgf ;_dgf ._ad =_bbg ;return _dgf ,nil ;case ActionTypeResetForm :_caf ,_ggb :=_efg .newPdfActionResetFormFromDict (_bbe ); if _ggb !=nil {return nil ,_ggb ;};_caf .PdfAction =_dgf ;_dgf ._ad =_caf ;return _dgf ,nil ;case ActionTypeImportData :_efa ,_bdd :=_efg .newPdfActionImportDataFromDict (_bbe );if _bdd !=nil {return nil ,_bdd ;};_efa .PdfAction =_dgf ;_dgf ._ad =_efa ; return _dgf ,nil ;case ActionTypeSetOCGState :_dedg ,_edg :=_efg .newPdfActionSetOCGStateFromDict (_bbe );if _edg !=nil {return nil ,_edg ;};_dedg .PdfAction =_dgf ;_dgf ._ad =_dedg ;return _dgf ,nil ;case ActionTypeRendition :_fgde ,_ag :=_efg .newPdfActionRenditionFromDict (_bbe ); if _ag !=nil {return nil ,_ag ;};_fgde .PdfAction =_dgf ;_dgf ._ad =_fgde ;return _dgf ,nil ;case ActionTypeTrans :_egb ,_ebg :=_efg .newPdfActionTransFromDict (_bbe );if _ebg !=nil {return nil ,_ebg ;};_egb .PdfAction =_dgf ;_dgf ._ad =_egb ;return _dgf ,nil ; case ActionTypeGoTo3DView :_ddd ,_cde :=_efg .newPdfActionGoTo3DViewFromDict (_bbe );if _cde !=nil {return nil ,_cde ;};_ddd .PdfAction =_dgf ;_dgf ._ad =_ddd ;return _dgf ,nil ;case ActionTypeJavaScript :_cec ,_fac :=_efg .newPdfActionJavaScriptFromDict (_bbe ); if _fac !=nil {return nil ,_fac ;};_cec .PdfAction =_dgf ;_dgf ._ad =_cec ;return _dgf ,nil ;};_eg .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",_fbda ); return nil ,nil ;}; // SetType sets the field button's type. Can be one of: // - PdfFieldButtonPush for push button fields // - PdfFieldButtonCheckbox for checkbox fields // - PdfFieldButtonRadio for radio button fields // This sets the field's flag appropriately. func (_bafdbb *PdfFieldButton )SetType (btype ButtonType ){_gdbf :=uint32 (0);if _bafdbb .Ff !=nil {_gdbf =uint32 (*_bafdbb .Ff );};switch btype {case ButtonTypePush :_gdbf |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_gdbf |=FieldFlagRadio .Mask (); };_bafdbb .Ff =_ebb .MakeInteger (int64 (_gdbf ));};func (_cgcab *fontFile )loadFromSegments (_ffac ,_edbga []byte )error {_eg .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_ffac ),len (_edbga )); _bgba :=_cgcab .parseASCIIPart (_ffac );if _bgba !=nil {return _bgba ;};_eg .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_cgcab );if len (_edbga )==0{return nil ;};_eg .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_cgcab ); return nil ;};func (_gfff *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_beggf *PdfShadingType2 )ToPdfObject ()_ebb .PdfObject {_beggf .PdfShading .ToPdfObject ();_dabg ,_aface :=_beggf .getShadingDict ();if _aface !=nil {_eg .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 _dabg ==nil {_eg .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _beggf .Coords !=nil {_dabg .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_beggf .Coords ); };if _beggf .Domain !=nil {_dabg .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_beggf .Domain );};if _beggf .Function !=nil {if len (_beggf .Function )==1{_dabg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_beggf .Function [0].ToPdfObject ()); }else {_cdcab :=_ebb .MakeArray ();for _ ,_gdgb :=range _beggf .Function {_cdcab .Append (_gdgb .ToPdfObject ());};_dabg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cdcab );};};if _beggf .Extend !=nil {_dabg .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_beggf .Extend ); };return _beggf ._fbfae ;};func (_edbd *PdfAnnotation )String ()string {_aac :="";_ggbg ,_fdg :=_edbd .ToPdfObject ().(*_ebb .PdfIndirectObject );if _fdg {_aac =_bg .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_edbd ._efd ,_ggbg .PdfObject .String ()); };return _aac ;}; // StandardImplementer is an interface that defines specified PDF standards like PDF/A-1A (pdfa.Profile1A) // NOTE: This implementation is in experimental development state. // Keep in mind that it might change in the subsequent minor versions. type StandardImplementer interface{StandardValidator ;StandardApplier ; // StandardName gets the human-readable name of the standard. StandardName ()string ;}; // ToPdfObject returns the choice field dictionary within an indirect object (container). func (_cdbdg *PdfFieldChoice )ToPdfObject ()_ebb .PdfObject {_cdbdg .PdfField .ToPdfObject ();_ffeg :=_cdbdg ._cdfd ;_gbacb :=_ffeg .PdfObject .(*_ebb .PdfObjectDictionary );_gbacb .Set ("\u0046\u0054",_ebb .MakeName ("\u0043\u0068"));if _cdbdg .Opt !=nil {_gbacb .Set ("\u004f\u0070\u0074",_cdbdg .Opt ); };if _cdbdg .TI !=nil {_gbacb .Set ("\u0054\u0049",_cdbdg .TI );};if _cdbdg .I !=nil {_gbacb .Set ("\u0049",_cdbdg .I );};return _ffeg ;}; // Has checks if flag fl is set in flag and returns true if so, false otherwise. func (_cagg FieldFlag )Has (fl FieldFlag )bool {return (_cagg .Mask ()&fl .Mask ())> 0}; // PdfAnnotationRichMedia represents Rich Media annotations. type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _ebb .PdfObject ;RichMediaContent _ebb .PdfObject ;}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 3 for an RGB device. func (_gea *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3}; // StandardApplier is the interface that performs optimization of the whole PDF document. // As a result an input document is being changed by the optimizer. // The writer than takes back all it's parts and overwrites it. // NOTE: This implementation is in experimental development state. // Keep in mind that it might change in the subsequent minor versions. type StandardApplier interface{ApplyStandard (_gegab *_bda .Document )error ;}; // ImageToRGB returns an error since an image cannot be defined in a pattern colorspace. func (_ddbc *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_eg .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 ,_gf .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");}; // Evaluate runs the function on the passed in slice and returns the results. func (_ecbf *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_ecbf .NumInputs {_eg .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 ,_gf .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _ecbf ._egdg ==nil {_gcda :=_ecbf .processSamples ();if _gcda !=nil {return nil ,_gcda ;};};_edaa :=_ecbf .Encode ;if _edaa ==nil {_edaa =[]float64 {}; for _eadbf :=0;_eadbf < len (_ecbf .Size );_eadbf ++{_edaa =append (_edaa ,0);_edaa =append (_edaa ,float64 (_ecbf .Size [_eadbf ]-1));};};_gafe :=_ecbf .Decode ;if _gafe ==nil {_gafe =_ecbf .Range ;};_bcbec :=make ([]int ,len (x ));for _dcde :=0;_dcde < len (x ); _dcde ++{_dccd :=x [_dcde ];_ffgec :=_cbg .Min (_cbg .Max (_dccd ,_ecbf .Domain [2*_dcde ]),_ecbf .Domain [2*_dcde +1]);_bgegd :=_dg .LinearInterpolate (_ffgec ,_ecbf .Domain [2*_dcde ],_ecbf .Domain [2*_dcde +1],_edaa [2*_dcde ],_edaa [2*_dcde +1]);_gbdcd :=_cbg .Min (_cbg .Max (_bgegd ,0),float64 (_ecbf .Size [_dcde ]-1)); _dcec :=int (_cbg .Floor (_gbdcd +0.5));if _dcec < 0{_dcec =0;}else if _dcec > _ecbf .Size [_dcde ]{_dcec =_ecbf .Size [_dcde ]-1;};_bcbec [_dcde ]=_dcec ;};_gccad :=_bcbec [0];for _dbef :=1;_dbef < _ecbf .NumInputs ;_dbef ++{_eeddc :=_bcbec [_dbef ];for _bbefe :=0; _bbefe < _dbef ;_bbefe ++{_eeddc *=_ecbf .Size [_bbefe ];};_gccad +=_eeddc ;};_gccad *=_ecbf .NumOutputs ;var _cfeg []float64 ;for _ggdde :=0;_ggdde < _ecbf .NumOutputs ;_ggdde ++{_fbgfe :=_gccad +_ggdde ;if _fbgfe >=len (_ecbf ._egdg ){_eg .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 ;};_gaaga :=_ecbf ._egdg [_fbgfe ];_baed :=_dg .LinearInterpolate (float64 (_gaaga ),0,_cbg .Pow (2,float64 (_ecbf .BitsPerSample )),_gafe [2*_ggdde ],_gafe [2*_ggdde +1]);_ebadg :=_cbg .Min (_cbg .Max (_baed ,_ecbf .Range [2*_ggdde ]),_ecbf .Range [2*_ggdde +1]); _cfeg =append (_cfeg ,_ebadg );};return _cfeg ,nil ;}; // String implements interface PdfObject. func (_bdg *PdfAction )String ()string {_cd ,_badd :=_bdg .ToPdfObject ().(*_ebb .PdfIndirectObject );if _badd {return _bg .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_bdg ._ad ,_cd .PdfObject .String ());};return "";}; // 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 (_gdac *LTV )EnableAll (extraCerts []*_g .Certificate )error {_aeff :=_gdac ._ggdbg ._acfe .AcroForm ;for _ ,_gebc :=range _aeff .AllFields (){_fgbcea ,_ :=_gebc .GetContext ().(*PdfFieldSignature );if _fgbcea ==nil {continue ;};_gcdgb :=_fgbcea .V ; if _bgbcc :=_gdac .validateSig (_gcdgb );_bgbcc !=nil {_eg .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",_bgbcc ); };if _eecb :=_gdac .Enable (_gcdgb ,extraCerts );_eecb !=nil {return _eecb ;};};return nil ;};func (_acf *PdfReader )newPdfActionSubmitFormFromDict (_fad *_ebb .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_aba ,_ebc :=_gggf (_fad .Get ("\u0046")); if _ebc !=nil {return nil ,_ebc ;};return &PdfActionSubmitForm {F :_aba ,Fields :_fad .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_fad .Get ("\u0046\u006c\u0061g\u0073")},nil ;}; // 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{_fcgb *_ebb .PdfIndirectObject ;Certs []*_ebb .PdfObjectStream ;OCSPs []*_ebb .PdfObjectStream ;CRLs []*_ebb .PdfObjectStream ;VRI map[string ]*VRI ;_aeag map[string ]*_ebb .PdfObjectStream ;_cadd map[string ]*_ebb .PdfObjectStream ;_fafgb map[string ]*_ebb .PdfObjectStream ; }; // 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 (_aaefe int ,_babd *PdfPage )error ; // ToPdfObject implements interface PdfModel. func (_ddb *PdfAnnotationFreeText )ToPdfObject ()_ebb .PdfObject {_ddb .PdfAnnotation .ToPdfObject ();_ccf :=_ddb ._bdcd ;_gbacg :=_ccf .PdfObject .(*_ebb .PdfObjectDictionary );_ddb .PdfAnnotationMarkup .appendToPdfDictionary (_gbacg );_gbacg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074")); _gbacg .SetIfNotNil ("\u0044\u0041",_ddb .DA );_gbacg .SetIfNotNil ("\u0051",_ddb .Q );_gbacg .SetIfNotNil ("\u0052\u0043",_ddb .RC );_gbacg .SetIfNotNil ("\u0044\u0053",_ddb .DS );_gbacg .SetIfNotNil ("\u0043\u004c",_ddb .CL );_gbacg .SetIfNotNil ("\u0049\u0054",_ddb .IT ); _gbacg .SetIfNotNil ("\u0042\u0045",_ddb .BE );_gbacg .SetIfNotNil ("\u0052\u0044",_ddb .RD );_gbacg .SetIfNotNil ("\u0042\u0053",_ddb .BS );_gbacg .SetIfNotNil ("\u004c\u0045",_ddb .LE );return _ccf ;}; // ToPdfObject returns the button field dictionary within an indirect object. func (_ccgcc *PdfFieldButton )ToPdfObject ()_ebb .PdfObject {_ccgcc .PdfField .ToPdfObject ();_bdfcc :=_ccgcc ._cdfd ;_ccceg :=_bdfcc .PdfObject .(*_ebb .PdfObjectDictionary );_ccceg .Set ("\u0046\u0054",_ebb .MakeName ("\u0042\u0074\u006e"));if _ccgcc .Opt !=nil {_ccceg .Set ("\u004f\u0070\u0074",_ccgcc .Opt ); };return _bdfcc ;}; // Decrypt decrypts the PDF file with a specified password. Also tries to // decrypt with an empty password. Returns true if successful, // false otherwise. func (_bbbf *PdfReader )Decrypt (password []byte )(bool ,error ){_ccggb ,_aeee :=_bbbf ._cafdf .Decrypt (password );if _aeee !=nil {return false ,_aeee ;};if !_ccggb {return false ,nil ;};_aeee =_bbbf .loadStructure ();if _aeee !=nil {_eg .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",_aeee ); return false ,_aeee ;};return true ,nil ;}; // Insert adds an outline item as a child of the current outline item, // at the specified index. func (_cggfb *OutlineItem )Insert (index uint ,item *OutlineItem ){_dfgcc :=uint (len (_cggfb .Entries ));if index > _dfgcc {index =_dfgcc ;};_cggfb .Entries =append (_cggfb .Entries [:index ],append ([]*OutlineItem {item },_cggfb .Entries [index :]...)...); }; // GetPageDict converts the Page to a PDF object dictionary. func (_ddbbd *PdfPage )GetPageDict ()*_ebb .PdfObjectDictionary {_fabgc :=_ddbbd ._cdbfde ;_fabgc .Clear ();_fabgc .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0050\u0061\u0067\u0065"));_fabgc .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ddbbd .Parent ); if _ddbbd .LastModified !=nil {_fabgc .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_ddbbd .LastModified .ToPdfObject ());};if _ddbbd .Resources !=nil {_fabgc .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_ddbbd .Resources .ToPdfObject ()); };if _ddbbd .CropBox !=nil {_fabgc .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_ddbbd .CropBox .ToPdfObject ());};if _ddbbd .MediaBox !=nil {_fabgc .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_ddbbd .MediaBox .ToPdfObject ());};if _ddbbd .BleedBox !=nil {_fabgc .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_ddbbd .BleedBox .ToPdfObject ()); };if _ddbbd .TrimBox !=nil {_fabgc .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_ddbbd .TrimBox .ToPdfObject ());};if _ddbbd .ArtBox !=nil {_fabgc .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_ddbbd .ArtBox .ToPdfObject ());};_fabgc .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_ddbbd .BoxColorInfo ); _fabgc .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_ddbbd .Contents );if _ddbbd .Rotate !=nil {_fabgc .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ebb .MakeInteger (*_ddbbd .Rotate ));};_fabgc .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_ddbbd .Group ); _fabgc .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_ddbbd .Thumb );_fabgc .SetIfNotNil ("\u0042",_ddbbd .B );_fabgc .SetIfNotNil ("\u0044\u0075\u0072",_ddbbd .Dur );_fabgc .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_ddbbd .Trans );_fabgc .SetIfNotNil ("\u0041\u0041",_ddbbd .AA ); _fabgc .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_ddbbd .Metadata );_fabgc .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_ddbbd .PieceInfo );_fabgc .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_ddbbd .StructParents ); _fabgc .SetIfNotNil ("\u0049\u0044",_ddbbd .ID );_fabgc .SetIfNotNil ("\u0050\u005a",_ddbbd .PZ );_fabgc .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_ddbbd .SeparationInfo );_fabgc .SetIfNotNil ("\u0054\u0061\u0062\u0073",_ddbbd .Tabs ); _fabgc .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_ddbbd .TemplateInstantiated );_fabgc .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_ddbbd .PresSteps );_fabgc .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_ddbbd .UserUnit ); _fabgc .SetIfNotNil ("\u0056\u0050",_ddbbd .VP );if _ddbbd ._bbfed !=nil {_deecf :=_ebb .MakeArray ();for _ ,_cfcfg :=range _ddbbd ._bbfed {if _dcfdca :=_cfcfg .GetContext ();_dcfdca !=nil {_deecf .Append (_dcfdca .ToPdfObject ());}else {_deecf .Append (_cfcfg .ToPdfObject ()); };};if _deecf .Len ()> 0{_fabgc .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_deecf );};}else if _ddbbd .Annots !=nil {_fabgc .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_ddbbd .Annots );};return _fabgc ;};func _gbgb (_gffdd _ebb .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_dgcca :=&PdfColorspaceDeviceNAttributes {}; var _gece *_ebb .PdfObjectDictionary ;switch _ccgb :=_gffdd .(type ){case *_ebb .PdfIndirectObject :_dgcca ._afca =_ccgb ;var _dcbca bool ;_gece ,_dcbca =_ccgb .PdfObject .(*_ebb .PdfObjectDictionary );if !_dcbca {_eg .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 ,_gf .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};case *_ebb .PdfObjectDictionary :_gece =_ccgb ;case *_ebb .PdfObjectReference :_accgb :=_ccgb .Resolve ();return _gbgb (_accgb );default:_eg .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 ,_gf .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gfcb :=_gece .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_gfcb !=nil {_fcee ,_bage :=_ebb .TraceToDirectObject (_gfcb ).(*_ebb .PdfObjectName );if !_bage {_eg .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 ,_gf .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_dgcca .Subtype =_fcee ;};if _abfb :=_gece .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_abfb !=nil {_dgcca .Colorants =_abfb ;};if _cedgb :=_gece .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073"); _cedgb !=nil {_dgcca .Process =_cedgb ;};if _afeb :=_gece .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_afeb !=nil {_dgcca .MixingHints =_afeb ;};return _dgcca ,nil ;}; // 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 ){_aabcf ,_ccgg :=_ed .Open (filePath );if _ccgg !=nil {_eg .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_ccgg ); return nil ,_ccgg ;};defer _aabcf .Close ();return NewCompositePdfFontFromTTF (_aabcf );}; // NewDSS returns a new DSS dictionary. func NewDSS ()*DSS {return &DSS {_fcgb :_ebb .MakeIndirectObject (_ebb .MakeDict ()),VRI :map[string ]*VRI {}};}; // String returns a string representation of what flags are set. func (_cafgf FieldFlag )String ()string {_edda :="";if _cafgf ==FieldFlagClear {_edda ="\u0043\u006c\u0065a\u0072";return _edda ;};if _cafgf &FieldFlagReadOnly > 0{_edda +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _cafgf &FieldFlagRequired > 0{_edda +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy"; };if _cafgf &FieldFlagNoExport > 0{_edda +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _cafgf &FieldFlagNoToggleToOff > 0{_edda +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _cafgf &FieldFlagRadio > 0{_edda +="\u007c\u0052\u0061\u0064\u0069\u006f"; };if _cafgf &FieldFlagPushbutton > 0{_edda +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _cafgf &FieldFlagRadiosInUnision > 0{_edda +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _cafgf &FieldFlagMultiline > 0{_edda +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065"; };if _cafgf &FieldFlagPassword > 0{_edda +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _cafgf &FieldFlagFileSelect > 0{_edda +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _cafgf &FieldFlagDoNotScroll > 0{_edda +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c"; };if _cafgf &FieldFlagComb > 0{_edda +="\u007c\u0043\u006fm\u0062";};if _cafgf &FieldFlagRichText > 0{_edda +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _cafgf &FieldFlagDoNotSpellCheck > 0{_edda +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b"; };if _cafgf &FieldFlagCombo > 0{_edda +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _cafgf &FieldFlagEdit > 0{_edda +="\u007c\u0045\u0064i\u0074";};if _cafgf &FieldFlagSort > 0{_edda +="\u007c\u0053\u006fr\u0074";};if _cafgf &FieldFlagMultiSelect > 0{_edda +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074"; };if _cafgf &FieldFlagCommitOnSelChange > 0{_edda +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _ee .Trim (_edda ,"\u007c");};func (_gbada *pdfFontType0 )baseFields ()*fontCommon {return &_gbada .fontCommon }; type modelManager struct{_bgfdb map[PdfModel ]_ebb .PdfObject ;_aabcbdd map[_ebb .PdfObject ]PdfModel ;};var _ pdfFont =(*pdfFontType0 )(nil ); // 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 (_cccfg *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_cdfff :=_cccfg .GetContentStreamObjs ();wrapContents =wrapContents &&len (_cdfff )> 0;_aecde :=_ebb .NewFlateEncoder ();_cdfcd :=_ebb .MakeArray ();if wrapContents {_dagae ,_fdegd :=_ebb .MakeStream ([]byte ("\u0071\u000a"),_aecde ); if _fdegd !=nil {return _fdegd ;};_cdfcd .Append (_dagae );};_cdfcd .Append (_cdfff ...);if wrapContents {_afdca ,_cccgf :=_ebb .MakeStream ([]byte ("\u000a\u0051\u000a"),_aecde );if _cccgf !=nil {return _cccgf ;};_cdfcd .Append (_afdca );};_cfge ,_dfdcd :=_ebb .MakeStream (cs ,_aecde ); if _dfdcd !=nil {return _dfdcd ;};_cdfcd .Append (_cfge );_cccfg .Contents =_cdfcd ;return nil ;}; // GetRuneMetrics returns the character metrics for the rune. // A bool flag is returned to indicate whether or not the entry was found. func (_babc pdfFontSimple )GetRuneMetrics (r rune )(_bad .CharMetrics ,bool ){if _babc ._ddgd !=nil {_edbc ,_edgee :=_babc ._ddgd .Read (r );if _edgee {return _edbc ,true ;};};_fdbe :=_babc .Encoder ();if _fdbe ==nil {_eg .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_babc ); return _bad .CharMetrics {},false ;};_dcac ,_cdfga :=_fdbe .RuneToCharcode (r );if !_cdfga {if r !=' '{_eg .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 ,_babc ); };return _bad .CharMetrics {},false ;};_ffaga ,_eacb :=_babc .GetCharMetrics (_dcac );return _ffaga ,_eacb ;}; // NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page. func NewOutlineBookmark (title string ,page *_ebb .PdfIndirectObject )*PdfOutlineItem {_ddcg :=PdfOutlineItem {};_ddcg ._geeee =&_ddcg ;_ddcg .Title =_ebb .MakeString (title );_cfbgg :=_ebb .MakeArray ();_cfbgg .Append (page );_cfbgg .Append (_ebb .MakeName ("\u0046\u0069\u0074")); _ddcg .Dest =_cfbgg ;return &_ddcg ;}; // ToPdfOutlineItem returns a low level PdfOutlineItem object, // based on the current instance. func (_bcbfa *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_cbec :=NewPdfOutlineItem ();_cbec .Title =_ebb .MakeEncodedString (_bcbfa .Title ,true );_cbec .Dest =_bcbfa .Dest .ToPdfObject ();var _ffcf []*PdfOutlineItem ;var _gbcgg int64 ;var _ecceb *PdfOutlineItem ; for _ ,_bcbcd :=range _bcbfa .Entries {_bbcef ,_dggcb :=_bcbcd .ToPdfOutlineItem ();_bbcef .Parent =&_cbec .PdfOutlineTreeNode ;if _ecceb !=nil {_ecceb .Next =&_bbcef .PdfOutlineTreeNode ;_bbcef .Prev =&_ecceb .PdfOutlineTreeNode ;};_ffcf =append (_ffcf ,_bbcef ); _gbcgg +=_dggcb ;_ecceb =_bbcef ;};_agbd :=len (_ffcf );_gbcgg +=int64 (_agbd );if _agbd > 0{_cbec .First =&_ffcf [0].PdfOutlineTreeNode ;_cbec .Last =&_ffcf [_agbd -1].PdfOutlineTreeNode ;_cbec .Count =&_gbcgg ;};return _cbec ,_gbcgg ;};type pdfFont interface{_bad .Font ; // ToPdfObject returns a PDF representation of the font and implements interface Model. ToPdfObject ()_ebb .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;}; // ToPdfObject implements interface PdfModel. func (_bgc *PdfAnnotationScreen )ToPdfObject ()_ebb .PdfObject {_bgc .PdfAnnotation .ToPdfObject ();_ceee :=_bgc ._bdcd ;_fdgg :=_ceee .PdfObject .(*_ebb .PdfObjectDictionary );_fdgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e")); _fdgg .SetIfNotNil ("\u0054",_bgc .T );_fdgg .SetIfNotNil ("\u004d\u004b",_bgc .MK );_fdgg .SetIfNotNil ("\u0041",_bgc .A );_fdgg .SetIfNotNil ("\u0041\u0041",_bgc .AA );return _ceee ;};func (_fgadb *DSS )add (_gbaca *[]*_ebb .PdfObjectStream ,_cgbe map[string ]*_ebb .PdfObjectStream ,_edad [][]byte )([]*_ebb .PdfObjectStream ,error ){_gaaec :=make ([]*_ebb .PdfObjectStream ,0,len (_edad )); for _ ,_gfeba :=range _edad {_ggec ,_bbbb :=_eaef (_gfeba );if _bbbb !=nil {return nil ,_bbbb ;};_cgbb ,_dacc :=_cgbe [string (_ggec )];if !_dacc {_cgbb ,_bbbb =_ebb .MakeStream (_gfeba ,_ebb .NewRawEncoder ());if _bbbb !=nil {return nil ,_bbbb ;};_cgbe [string (_ggec )]=_cgbb ; *_gbaca =append (*_gbaca ,_cgbb );};_gaaec =append (_gaaec ,_cgbb );};return _gaaec ,nil ;}; // String returns a string representation of the field. func (_fgcfa *PdfField )String ()string {if _aaag ,_ffdf :=_fgcfa .ToPdfObject ().(*_ebb .PdfIndirectObject );_ffdf {return _bg .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_fgcfa ._cada ,_aaag .PdfObject .String ());};return "";}; // Subtype returns the font's "Subtype" field. func (_dacdcd *PdfFont )Subtype ()string {_cdeg :=_dacdcd .baseFields ()._dfbf ;if _bddc ,_cdgc :=_dacdcd ._ebcad .(*pdfFontType0 );_cdgc {_cdeg =_cdeg +"\u003a"+_bddc .DescendantFont .Subtype ();};return _cdeg ;};func (_bceaf *pdfCIDFontType0 )baseFields ()*fontCommon {return &_bceaf .fontCommon }; func (_fddg *PdfWriter )flushWriter ()error {if _fddg ._bgef ==nil {_fddg ._bgef =_fddg ._cbabb .Flush ();};return _fddg ._bgef ;}; // GetNumComponents returns the number of color components (3 for RGB). func (_ddbe *PdfColorDeviceRGB )GetNumComponents ()int {return 3}; // NewPdfAnnotationLink returns a new link annotation. func NewPdfAnnotationLink ()*PdfAnnotationLink {_cadf :=NewPdfAnnotation ();_daf :=&PdfAnnotationLink {};_daf .PdfAnnotation =_cadf ;_cadf .SetContext (_daf );return _daf ;}; // GetContainingPdfObject implements interface PdfModel. func (_dbdfg *PdfFilespec )GetContainingPdfObject ()_ebb .PdfObject {return _dbdfg ._gcge }; // ToPdfObject implements interface PdfModel. func (_dadg *PdfAnnotationPolygon )ToPdfObject ()_ebb .PdfObject {_dadg .PdfAnnotation .ToPdfObject ();_cdeb :=_dadg ._bdcd ;_aadc :=_cdeb .PdfObject .(*_ebb .PdfObjectDictionary );_dadg .PdfAnnotationMarkup .appendToPdfDictionary (_aadc );_aadc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e")); _aadc .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_dadg .Vertices );_aadc .SetIfNotNil ("\u004c\u0045",_dadg .LE );_aadc .SetIfNotNil ("\u0042\u0053",_dadg .BS );_aadc .SetIfNotNil ("\u0049\u0043",_dadg .IC );_aadc .SetIfNotNil ("\u0042\u0045",_dadg .BE ); _aadc .SetIfNotNil ("\u0049\u0054",_dadg .IT );_aadc .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_dadg .Measure );return _cdeb ;};func _feef (_efdd _ebb .PdfObject ,_ebef *fontCommon )(*_ebe .CMap ,error ){_gefb ,_ggfc :=_ebb .GetStream (_efdd ); if !_ggfc {_eg .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",_efdd ); return nil ,_ebb .ErrTypeError ;};_aeaga ,_cdfeb :=_ebb .DecodeStream (_gefb );if _cdfeb !=nil {return nil ,_cdfeb ;};_deeda ,_cdfeb :=_ebe .LoadCmapFromData (_aeaga ,!_ebef .isCIDFont ());if _cdfeb !=nil {_eg .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",_gefb .ObjectNumber ,_cdfeb ); };return _deeda ,_cdfeb ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;);func (_dfd *PdfReader )newPdfActionLaunchFromDict (_bfg *_ebb .PdfObjectDictionary )(*PdfActionLaunch ,error ){_egaa ,_bgf :=_gggf (_bfg .Get ("\u0046")); if _bgf !=nil {return nil ,_bgf ;};return &PdfActionLaunch {Win :_bfg .Get ("\u0057\u0069\u006e"),Mac :_bfg .Get ("\u004d\u0061\u0063"),Unix :_bfg .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_bfg .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_egaa },nil ; }; // NewPdfColorCalRGB returns a new CalRBG color. func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_dadc :=PdfColorCalRGB {a ,b ,c };return &_dadc ;};func (_dcaead *PdfWriter )checkLicense ()error {_eaaae :=_ce .GetLicenseKey ();if (_eaaae ==nil ||!_eaaae .IsLicensed ())&&!_eacf {_bg .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"); _bg .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 _gf .New ("\u0075\u006e\u0069\u0070d\u0066\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020c\u006fd\u0065\u0020\u0072\u0065\u0071\u0075\u0069r\u0065\u0064");};return nil ;}; // 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 (_egeed int ,_cgggc *PdfPage ); // ColorToRGB converts a CalRGB color to an RGB color. func (_dcge *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_gded ,_fecb :=color .(*PdfColorCalRGB );if !_fecb {_eg .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 ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cfcg :=_gded .A ();_gdea :=_gded .B ();_fffga :=_gded .C ();X :=_dcge .Matrix [0]*_cbg .Pow (_cfcg ,_dcge .Gamma [0])+_dcge .Matrix [3]*_cbg .Pow (_gdea ,_dcge .Gamma [1])+_dcge .Matrix [6]*_cbg .Pow (_fffga ,_dcge .Gamma [2]); Y :=_dcge .Matrix [1]*_cbg .Pow (_cfcg ,_dcge .Gamma [0])+_dcge .Matrix [4]*_cbg .Pow (_gdea ,_dcge .Gamma [1])+_dcge .Matrix [7]*_cbg .Pow (_fffga ,_dcge .Gamma [2]);Z :=_dcge .Matrix [2]*_cbg .Pow (_cfcg ,_dcge .Gamma [0])+_dcge .Matrix [5]*_cbg .Pow (_gdea ,_dcge .Gamma [1])+_dcge .Matrix [8]*_cbg .Pow (_fffga ,_dcge .Gamma [2]); _ddfba :=3.240479*X +-1.537150*Y +-0.498535*Z ;_edba :=-0.969256*X +1.875992*Y +0.041556*Z ;_adbc :=0.055648*X +-0.204043*Y +1.057311*Z ;_ddfba =_cbg .Min (_cbg .Max (_ddfba ,0),1.0);_edba =_cbg .Min (_cbg .Max (_edba ,0),1.0);_adbc =_cbg .Min (_cbg .Max (_adbc ,0),1.0); return NewPdfColorDeviceRGB (_ddfba ,_edba ,_adbc ),nil ;}; // SetShadingByName sets a shading resource specified by keyName. func (_agfeb *PdfPageResources )SetShadingByName (keyName _ebb .PdfObjectName ,shadingObj _ebb .PdfObject )error {if _agfeb .Shading ==nil {_agfeb .Shading =_ebb .MakeDict ();};_gbdff ,_ebedbf :=_agfeb .Shading .(*_ebb .PdfObjectDictionary );if !_ebedbf {return _ebb .ErrTypeError ; };_gbdff .Set (keyName ,shadingObj );return nil ;}; // PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh. type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_ebb .PdfObjectInteger ;BitsPerComponent *_ebb .PdfObjectInteger ;BitsPerFlag *_ebb .PdfObjectInteger ;Decode *_ebb .PdfObjectArray ;Function []PdfFunction ;}; // WatermarkImageOptions contains options for configuring the watermark process. type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;}; // NewPdfAnnotation returns an initialized generic PDF annotation model. func NewPdfAnnotation ()*PdfAnnotation {_gbdd :=&PdfAnnotation {};_gbdd ._bdcd =_ebb .MakeIndirectObject (_ebb .MakeDict ());return _gbdd ;}; // C returns the value of the cyan component of the color. func (_bbacg *PdfColorDeviceCMYK )C ()float64 {return _bbacg [0]}; // NewPdfAnnotationScreen returns a new screen annotation. func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_bab :=NewPdfAnnotation ();_cffb :=&PdfAnnotationScreen {};_cffb .PdfAnnotation =_bab ;_bab .SetContext (_cffb );return _cffb ;}; // GetCharMetrics returns the char metrics for character code `code`. func (_ggedf pdfCIDFontType2 )GetCharMetrics (code _da .CharCode )(_bad .CharMetrics ,bool ){if _afea ,_gcdf :=_ggedf ._dgbc [code ];_gcdf {return _bad .CharMetrics {Wx :_afea },true ;};_adbbe :=rune (code );_cdfcc ,_fcfg :=_ggedf ._dceb [_adbbe ];if !_fcfg {_cdfcc =int (_ggedf ._bagcb ); };return _bad .CharMetrics {Wx :float64 (_cdfcc )},true ;}; // ColorToRGB verifies that the input color is an RGB color. Method exists in // order to satisfy the PdfColorspace interface. func (_efaab *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_gcffa ,_ebfe :=color .(*PdfColorDeviceRGB );if !_ebfe {_eg .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 ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _gcffa ,nil ;}; // ParsePdfObject parses input pdf object into given output intent. func (_eefce *PdfOutputIntent )ParsePdfObject (object _ebb .PdfObject )error {_fgfda ,_afccb :=_ebb .GetDict (object );if !_afccb {_eg .Log .Error ("\u0055\u006e\u006bno\u0077\u006e\u0020\u0074\u0079\u0070\u0065\u003a\u0020%\u0054 \u0066o\u0072 \u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0069\u006e\u0074\u0065\u006e\u0074",object ); return _gf .New ("\u0075\u006e\u006b\u006e\u006fw\u006e\u0020\u0070\u0064\u0066\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020t\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0069\u006e\u0074\u0065\u006e\u0074"); };_eefce ._faeb =_fgfda ;_eefce .Type ,_ =_fgfda .GetString ("\u0054\u0079\u0070\u0065");_agefe ,_afccb :=_fgfda .GetString ("\u0053");if _afccb {switch _agefe {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_eefce .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_eefce .S =PdfOutputIntentTypeA2 ; case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_eefce .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_eefce .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_eefce .S =PdfOutputIntentTypeX ; };};_eefce .OutputCondition ,_ =_fgfda .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_eefce .OutputConditionIdentifier ,_ =_fgfda .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r"); _eefce .RegistryName ,_ =_fgfda .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_eefce .Info ,_ =_fgfda .GetString ("\u0049\u006e\u0066\u006f");if _gabgbb ,_edeg :=_ebb .GetStream (_fgfda .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065")); _edeg {_eefce .ColorComponents ,_ =_ebb .GetIntVal (_gabgbb .Get ("\u004e"));_aefbf ,_fgadd :=_ebb .DecodeStream (_gabgbb );if _fgadd !=nil {return _fgadd ;};_eefce .DestOutputProfile =_aefbf ;};return nil ;}; // EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document. type EncryptionAlgorithm int ;func _egbeb (_aaaec _ebb .PdfObject )(map[_da .CharCode ]float64 ,error ){if _aaaec ==nil {return nil ,nil ;};_gbbg ,_cgeef :=_ebb .GetArray (_aaaec );if !_cgeef {return nil ,nil ;};_egceg :=map[_da .CharCode ]float64 {};_eccg :=_gbbg .Len (); for _cggc :=0;_cggc < _eccg -1;_cggc ++{_abead :=_ebb .TraceToDirectObject (_gbbg .Get (_cggc ));_ggce ,_dafd :=_ebb .GetIntVal (_abead );if !_dafd {return nil ,_bg .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_cggc ,_abead ); };_cggc ++;if _cggc > _eccg -1{return nil ,_bg .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",_gbbg );};_cccg :=_ebb .TraceToDirectObject (_gbbg .Get (_cggc )); switch _cccg .(type ){case *_ebb .PdfObjectArray :_gdca ,_ :=_ebb .GetArray (_cccg );if _fecfc ,_edfde :=_gdca .ToFloat64Array ();_edfde ==nil {for _ceea :=0;_ceea < len (_fecfc );_ceea ++{_egceg [_da .CharCode (_ggce +_ceea )]=_fecfc [_ceea ];};}else {return nil ,_bg .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",_cggc ,_cccg ); };case *_ebb .PdfObjectInteger :_ecgg ,_bdge :=_ebb .GetIntVal (_cccg );if !_bdge {return nil ,_bg .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",_cggc ,_cccg ); };_cggc ++;if _cggc > _eccg -1{return nil ,_bg .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",_gbbg );};_eeage :=_gbbg .Get (_cggc );_dcabf ,_fafcd :=_ebb .GetNumberAsFloat (_eeage ); if _fafcd !=nil {return nil ,_bg .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",_cggc ,_eeage );};for _efbaa :=_ggce ;_efbaa <=_ecgg ; _efbaa ++{_egceg [_da .CharCode (_efbaa )]=_dcabf ;};default:return nil ,_bg .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",_cggc ,_cccg ); };};return _egceg ,nil ;};type fontFile struct{_bgbcg string ;_badbf string ;_gega _da .SimpleEncoder ;}; // SetNameDictionary sets the Names entry in the PDF catalog. // See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008). func (_dbebf *PdfWriter )SetNameDictionary (names _ebb .PdfObject )error {if names ==nil {return nil ;};_eg .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e"); _dbebf ._dffegd .Set ("\u004e\u0061\u006de\u0073",names );return _dbebf .addObjects (names );}; // ToPdfObject implements interface PdfModel. func (_ceg *PdfActionThread )ToPdfObject ()_ebb .PdfObject {_ceg .PdfAction .ToPdfObject ();_cfab :=_ceg ._abe ;_fc :=_cfab .PdfObject .(*_ebb .PdfObjectDictionary );_fc .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeThread )));if _ceg .F !=nil {_fc .Set ("\u0046",_ceg .F .ToPdfObject ()); };_fc .SetIfNotNil ("\u0044",_ceg .D );_fc .SetIfNotNil ("\u0042",_ceg .B );return _cfab ;};func _aedce (_fbee _ebb .PdfObject )(*PdfColorspaceICCBased ,error ){_ccfc :=&PdfColorspaceICCBased {};if _bga ,_cbccb :=_fbee .(*_ebb .PdfIndirectObject );_cbccb {_ccfc ._dagdd =_bga ; };_fbee =_ebb .TraceToDirectObject (_fbee );_dadb ,_gcdb :=_fbee .(*_ebb .PdfObjectArray );if !_gcdb {return nil ,_bg .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dadb .Len ()!=2{return nil ,_bg .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065"); };_fbee =_ebb .TraceToDirectObject (_dadb .Get (0));_eeec ,_gcdb :=_fbee .(*_ebb .PdfObjectName );if !_gcdb {return nil ,_bg .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 *_eeec !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_bg .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");};_fbee =_dadb .Get (1); _dcd ,_gcdb :=_ebb .GetStream (_fbee );if !_gcdb {_eg .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",_fbee ); return nil ,_bg .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_fcbg :=_dcd .PdfObjectDictionary ;_ecaec ,_gcdb :=_fcbg .Get ("\u004e").(*_ebb .PdfObjectInteger ); if !_gcdb {return nil ,_bg .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 *_ecaec !=1&&*_ecaec !=3&&*_ecaec !=4{return nil ,_bg .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"); };_ccfc .N =int (*_ecaec );if _gbbb :=_fcbg .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_gbbb !=nil {_aaae ,_gebec :=NewPdfColorspaceFromPdfObject (_gbbb );if _gebec !=nil {return nil ,_gebec ;};_ccfc .Alternate =_aaae ;};if _adbcc :=_fcbg .Get ("\u0052\u0061\u006eg\u0065"); _adbcc !=nil {_adbcc =_ebb .TraceToDirectObject (_adbcc );_edgg ,_bbgc :=_adbcc .(*_ebb .PdfObjectArray );if !_bbgc {return nil ,_bg .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 _edgg .Len ()!=2*_ccfc .N {return nil ,_bg .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"); };_fdeaf ,_bdbfc :=_edgg .GetAsFloat64Slice ();if _bdbfc !=nil {return nil ,_bdbfc ;};_ccfc .Range =_fdeaf ;}else {_ccfc .Range =make ([]float64 ,2*_ccfc .N );for _faggf :=0;_faggf < _ccfc .N ;_faggf ++{_ccfc .Range [2*_faggf ]=0.0;_ccfc .Range [2*_faggf +1]=1.0; };};if _agce :=_fcbg .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_agce !=nil {_fbcgb ,_eacea :=_agce .(*_ebb .PdfObjectStream );if !_eacea {return nil ,_bg .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"); };_ccfc .Metadata =_fbcgb ;};_fgda ,_ggga :=_ebb .DecodeStream (_dcd );if _ggga !=nil {return nil ,_ggga ;};_ccfc .Data =_fgda ;_ccfc ._dfff =_dcd ;return _ccfc ,nil ;};func (_eeea *PdfFilespec )getDict ()*_ebb .PdfObjectDictionary {if _fgbc ,_bedf :=_eeea ._gcge .(*_ebb .PdfIndirectObject ); _bedf {_dbffa ,_ddaa :=_fgbc .PdfObject .(*_ebb .PdfObjectDictionary );if !_ddaa {return nil ;};return _dbffa ;}else if _fabec ,_faae :=_eeea ._gcge .(*_ebb .PdfObjectDictionary );_faae {return _fabec ;}else {_eg .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",_eeea ._gcge ); return nil ;};}; // PdfAnnotationScreen represents Screen annotations. // (Section 12.5.6.18). type PdfAnnotationScreen struct{*PdfAnnotation ;T _ebb .PdfObject ;MK _ebb .PdfObject ;A _ebb .PdfObject ;AA _ebb .PdfObject ;}; // PdfAnnotationFileAttachment represents FileAttachment annotations. // (Section 12.5.6.15). type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _ebb .PdfObject ;Name _ebb .PdfObject ;};func (_cgag *PdfReader )newPdfAnnotationTrapNetFromDict (_cfgd *_ebb .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_fefe :=PdfAnnotationTrapNet {}; return &_fefe ,nil ;}; // ToPdfObject implements interface PdfModel. func (_bebgd *PdfSignatureReference )ToPdfObject ()_ebb .PdfObject {_gbdg :=_ebb .MakeDict ();_gbdg .SetIfNotNil ("\u0054\u0079\u0070\u0065",_bebgd .Type );_gbdg .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_bebgd .TransformMethod ); _gbdg .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_bebgd .TransformParams );_gbdg .SetIfNotNil ("\u0044\u0061\u0074\u0061",_bebgd .Data );_gbdg .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_bebgd .DigestMethod ); return _gbdg ;}; // C returns the value of the C component of the color. func (_cffc *PdfColorCalRGB )C ()float64 {return _cffc [2]}; // GetPerms returns the Permissions dictionary func (_dcfcc *PdfReader )GetPerms ()*Permissions {return _dcfcc ._fdca }; // 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 *_ebb .PdfObjectStream ;Data []byte ;_dagdd *_ebb .PdfIndirectObject ;_dfff *_ebb .PdfObjectStream ;};func (_cegga *PdfReader )newPdfAnnotationPolygonFromDict (_bdfc *_ebb .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_cbeb :=PdfAnnotationPolygon {}; _fgf ,_fafg :=_cegga .newPdfAnnotationMarkupFromDict (_bdfc );if _fafg !=nil {return nil ,_fafg ;};_cbeb .PdfAnnotationMarkup =_fgf ;_cbeb .Vertices =_bdfc .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_cbeb .LE =_bdfc .Get ("\u004c\u0045"); _cbeb .BS =_bdfc .Get ("\u0042\u0053");_cbeb .IC =_bdfc .Get ("\u0049\u0043");_cbeb .BE =_bdfc .Get ("\u0042\u0045");_cbeb .IT =_bdfc .Get ("\u0049\u0054");_cbeb .Measure =_bdfc .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_cbeb ,nil ;};func _dccgg ()string {_daddc .Lock (); defer _daddc .Unlock ();return _ecgdd };func (_eedd *PdfReader )newPdfActionHideFromDict (_cda *_ebb .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_cda .Get ("\u0054"),H :_cda .Get ("\u0048")},nil ;}; // PdfOutline represents a PDF outline dictionary (Table 152 - p. 376). type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_egee *_ebb .PdfIndirectObject ;}; // HasExtGState checks if ExtGState name is available. func (_beeebc *PdfPage )HasExtGState (name _ebb .PdfObjectName )bool {if _beeebc .Resources ==nil {return false ;};if _beeebc .Resources .ExtGState ==nil {return false ;};_gbaef ,_ccfcf :=_ebb .TraceToDirectObject (_beeebc .Resources .ExtGState ).(*_ebb .PdfObjectDictionary ); if !_ccfcf {_eg .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",_ebb .TraceToDirectObject (_beeebc .Resources .ExtGState )); return false ;};_fabbb :=_gbaef .Get (name );_bbgab :=_fabbb !=nil ;return _bbgab ;}; // 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 (_ace *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_gf .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"); };_gbeec :=&PdfColorPattern {};_ccbd ,_bdbb :=objects [len (objects )-1].(*_ebb .PdfObjectName );if !_bdbb {_eg .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 ;};_gbeec .PatternName =*_ccbd ;if len (objects )> 1{_ecbc :=objects [0:len (objects )-1];if _ace .UnderlyingCS ==nil {_eg .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 ,_gf .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_abbdf ,_cgecd :=_ace .UnderlyingCS .ColorFromPdfObjects (_ecbc );if _cgecd !=nil {_eg .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",_cgecd ); return nil ,_cgecd ;};_gbeec .Color =_abbdf ;};return _gbeec ,nil ;};func (_geeb *PdfWriter )setWriter (_aaadc _ab .Writer ){_geeb ._afedd =_geeb ._fgdce ;_geeb ._cbabb =_ba .NewWriter (_aaadc );};func (_ecaa *pdfFontType3 )baseFields ()*fontCommon {return &_ecaa .fontCommon }; // 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 (_fdda *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dbff ,_fecg :=_ebb .GetNumbersAsFloat (objects ); if _fecg !=nil {return nil ,_fecg ;};return _fdda .ColorFromFloats (_dbff );}; // GetOCProperties returns the optional content properties PdfObject. func (_bbadf *PdfReader )GetOCProperties ()(_ebb .PdfObject ,error ){_fcagb :=_bbadf ._fdgda ;_ebfba :=_fcagb .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_ebfba =_ebb .ResolveReference (_ebfba );if !_bbadf ._ceefa {_acbd :=_bbadf .traverseObjectData (_ebfba ); if _acbd !=nil {return nil ,_acbd ;};};return _ebfba ,nil ;};func (_abdgag *PdfWriter )checkCrossReferenceStream ()bool {_ffcgc :=_abdgag ._efcge .Major > 1||(_abdgag ._efcge .Major ==1&&_abdgag ._efcge .Minor > 4);if _abdgag ._adeff !=nil {_ffcgc =*_abdgag ._adeff ; };return _ffcgc ;}; // GetXObjectByName returns the XObject with the specified keyName and the object type. func (_efgg *PdfPageResources )GetXObjectByName (keyName _ebb .PdfObjectName )(*_ebb .PdfObjectStream ,XObjectType ){if _efgg .XObject ==nil {return nil ,XObjectTypeUndefined ;};_cdaaf ,_eccef :=_ebb .TraceToDirectObject (_efgg .XObject ).(*_ebb .PdfObjectDictionary ); if !_eccef {_eg .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",_ebb .TraceToDirectObject (_efgg .XObject )); return nil ,XObjectTypeUndefined ;};if _beegc :=_cdaaf .Get (keyName );_beegc !=nil {_bdgdg ,_ddegc :=_ebb .GetStream (_beegc );if !_ddegc {_eg .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",_beegc ); return nil ,XObjectTypeUndefined ;};_aeabd :=_bdgdg .PdfObjectDictionary ;_dgaeg ,_ddegc :=_ebb .TraceToDirectObject (_aeabd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_ebb .PdfObjectName );if !_ddegc {_eg .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",_aeabd .String ()); return nil ,XObjectTypeUndefined ;};if *_dgaeg =="\u0049\u006d\u0061g\u0065"{return _bdgdg ,XObjectTypeImage ;}else if *_dgaeg =="\u0046\u006f\u0072\u006d"{return _bdgdg ,XObjectTypeForm ;}else if *_dgaeg =="\u0050\u0053"{return _bdgdg ,XObjectTypePS ; }else {_eg .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",*_dgaeg );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ; };}; // SetName sets the `Name` field of the signature. func (_egbga *PdfSignature )SetName (name string ){_egbga .Name =_ebb .MakeString (name )}; // 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 ;func (_fafb *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _fafb ._fbbd };func (_cgbbg fontCommon )fontFlags ()int {if _cgbbg ._fbbd ==nil {return 0;};return _cgbbg ._fbbd ._gfbge ;}; // 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 };}; // GetMediaBox gets the inheritable media box value, either from the page // or a higher up page/pages struct. func (_bdafbc *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _bdafbc .MediaBox !=nil {return _bdafbc .MediaBox ,nil ;};_eeddca :=_bdafbc .Parent ;for _eeddca !=nil {_fabgb ,_edde :=_ebb .GetDict (_eeddca );if !_edde {return nil ,_gf .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 _dfcfg :=_fabgb .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_dfcfg !=nil {_feffe ,_cgfgcg :=_ebb .GetArray (_dfcfg );if !_cgfgcg {return nil ,_gf .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078"); };_cgade ,_dfafe :=NewPdfRectangle (*_feffe );if _dfafe !=nil {return nil ,_dfafe ;};return _cgade ,nil ;};_eeddca =_fabgb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_gf .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064"); };func (_dgaafe *XObjectImage )getParamsDict ()*_ebb .PdfObjectDictionary {_gffed :=_ebb .MakeDict ();_gffed .Set ("\u0057\u0069\u0064t\u0068",_ebb .MakeInteger (*_dgaafe .Width ));_gffed .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ebb .MakeInteger (*_dgaafe .Height )); _gffed .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ebb .MakeInteger (int64 (_dgaafe .ColorSpace .GetNumComponents ())));_gffed .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ebb .MakeInteger (*_dgaafe .BitsPerComponent )); return _gffed ;}; // SetFontByName sets the font specified by keyName to the given object. func (_fcfff *PdfPageResources )SetFontByName (keyName _ebb .PdfObjectName ,obj _ebb .PdfObject )error {if _fcfff .Font ==nil {_fcfff .Font =_ebb .MakeDict ();};_ffaeg ,_ddcbff :=_ebb .TraceToDirectObject (_fcfff .Font ).(*_ebb .PdfObjectDictionary );if !_ddcbff {_eg .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",_ebb .TraceToDirectObject (_fcfff .Font )); return _ebb .ErrTypeError ;};_ffaeg .Set (keyName ,obj );return nil ;};type crossReference struct{Type int ; // Type 1 Offset int64 ;Generation int64 ; // Type 2 ObjectNumber int ;Index int ;};type pdfCIDFontType0 struct{fontCommon ;_cgebd *_ebb .PdfIndirectObject ;_gefge _da .TextEncoder ; // Table 117 – Entries in a CIDFont dictionary (page 269) // (Required) Dictionary that defines the character collection of the CIDFont. // See Table 116. CIDSystemInfo *_ebb .PdfObjectDictionary ; // Glyph metrics fields (optional). DW _ebb .PdfObject ;W _ebb .PdfObject ;DW2 _ebb .PdfObject ;W2 _ebb .PdfObject ;_afcac map[_da .CharCode ]float64 ;_gbdb float64 ;}; // GetExtGState gets the ExtGState specified by keyName. Returns a bool // indicating whether it was found or not. func (_bagga *PdfPageResources )GetExtGState (keyName _ebb .PdfObjectName )(_ebb .PdfObject ,bool ){if _bagga .ExtGState ==nil {return nil ,false ;};_eegbc ,_edged :=_ebb .TraceToDirectObject (_bagga .ExtGState ).(*_ebb .PdfObjectDictionary );if !_edged {_eg .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",_bagga .ExtGState ); return nil ,false ;};if _bgbcab :=_eegbc .Get (keyName );_bgbcab !=nil {return _bgbcab ,true ;};return nil ,false ;};func _fgdad (_fddcb *_ebb .PdfObjectDictionary ,_cdbe *fontCommon )(*pdfCIDFontType2 ,error ){if _cdbe ._dfbf !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_eg .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",_cdbe ); return nil ,_ebb .ErrRangeError ;};_aggcd :=_gfdbb (_cdbe );_acba ,_gaeae :=_ebb .GetDict (_fddcb .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_gaeae {_eg .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",_cdbe ); return nil ,ErrRequiredAttributeMissing ;};_aggcd .CIDSystemInfo =_acba ;_aggcd .DW =_fddcb .Get ("\u0044\u0057");_aggcd .W =_fddcb .Get ("\u0057");_aggcd .DW2 =_fddcb .Get ("\u0044\u0057\u0032");_aggcd .W2 =_fddcb .Get ("\u0057\u0032");_aggcd .CIDToGIDMap =_fddcb .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070"); _aggcd ._bagcb =1000.0;if _fbeba ,_fedad :=_ebb .GetNumberAsFloat (_aggcd .DW );_fedad ==nil {_aggcd ._bagcb =_fbeba ;};_ccaf ,_fcfbb :=_egbeb (_aggcd .W );if _fcfbb !=nil {return nil ,_fcfbb ;};if _ccaf ==nil {_ccaf =map[_da .CharCode ]float64 {};};_aggcd ._dgbc =_ccaf ; return _aggcd ,nil ;};func (_eebda *PdfWriter )addObjects (_fgaebc _ebb .PdfObject )error {_eg .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");if _fedfg ,_aadb :=_fgaebc .(*_ebb .PdfIndirectObject );_aadb {_eg .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074"); _eg .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_fgaebc ,_fedfg );_eg .Log .Trace ("\u002d\u0020\u0025\u0073",_fedfg .PdfObject );if _eebda .addObject (_fedfg ){_bcede :=_eebda .addObjects (_fedfg .PdfObject );if _bcede !=nil {return _bcede ; };};return nil ;};if _fdgad ,_ccdb :=_fgaebc .(*_ebb .PdfObjectStream );_ccdb {_eg .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_eg .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_fgaebc ,_fgaebc );if _eebda .addObject (_fdgad ){_edcg :=_eebda .addObjects (_fdgad .PdfObjectDictionary ); if _edcg !=nil {return _edcg ;};};return nil ;};if _bffg ,_aecfc :=_fgaebc .(*_ebb .PdfObjectDictionary );_aecfc {_eg .Log .Trace ("\u0044\u0069\u0063\u0074");_eg .Log .Trace ("\u002d\u0020\u0025\u0073",_fgaebc );for _ ,_dfgfc :=range _bffg .Keys (){_dggde :=_bffg .Get (_dfgfc ); if _ggaag ,_ddbce :=_dggde .(*_ebb .PdfObjectReference );_ddbce {_dggde =_ggaag .Resolve ();_bffg .Set (_dfgfc ,_dggde );};if _dfgfc !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _befgeg :=_eebda .addObjects (_dggde );_befgeg !=nil {return _befgeg ;};}else {if _ ,_adgdf :=_dggde .(*_ebb .PdfObjectNull ); _adgdf {continue ;};if _ebdbgf :=_eebda .hasObject (_dggde );!_ebdbgf {_eg .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",_dggde ,_dggde ,_dggde ); _eebda ._eefeb [_dggde ]=append (_eebda ._eefeb [_dggde ],_bffg );};};};return nil ;};if _agcg ,_fccff :=_fgaebc .(*_ebb .PdfObjectArray );_fccff {_eg .Log .Trace ("\u0041\u0072\u0072a\u0079");_eg .Log .Trace ("\u002d\u0020\u0025\u0073",_fgaebc );if _agcg ==nil {return _gf .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c"); };for _bedag ,_aefdb :=range _agcg .Elements (){if _caadd ,_bfcfb :=_aefdb .(*_ebb .PdfObjectReference );_bfcfb {_aefdb =_caadd .Resolve ();_agcg .Set (_bedag ,_aefdb );};if _bfdfb :=_eebda .addObjects (_aefdb );_bfdfb !=nil {return _bfdfb ;};};return nil ; };if _ ,_feagb :=_fgaebc .(*_ebb .PdfObjectReference );_feagb {_eg .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",_fgaebc ); return _gf .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};func (_gebd *PdfReader )newPdfAnnotationLinkFromDict (_fgce *_ebb .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_abf :=PdfAnnotationLink {}; _abf .A =_fgce .Get ("\u0041");_abf .Dest =_fgce .Get ("\u0044\u0065\u0073\u0074");_abf .H =_fgce .Get ("\u0048");_abf .PA =_fgce .Get ("\u0050\u0041");_abf .QuadPoints =_fgce .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_abf .BS =_fgce .Get ("\u0042\u0053"); return &_abf ,nil ;}; // NewPdfAnnotationPolyLine returns a new polyline annotation. func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_ccg :=NewPdfAnnotation ();_aabe :=&PdfAnnotationPolyLine {};_aabe .PdfAnnotation =_ccg ;_aabe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ccg .SetContext (_aabe );return _aabe ;}; // ToPdfObject implements interface PdfModel. func (_df *PdfActionImportData )ToPdfObject ()_ebb .PdfObject {_df .PdfAction .ToPdfObject ();_ffe :=_df ._abe ;_gbef :=_ffe .PdfObject .(*_ebb .PdfObjectDictionary );_gbef .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeImportData )));if _df .F !=nil {_gbef .Set ("\u0046",_df .F .ToPdfObject ()); };return _ffe ;}; // PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF. type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_ebb .PdfObjectBool ;SigFlags *_ebb .PdfObjectInteger ;CO *_ebb .PdfObjectArray ;DR *PdfPageResources ;DA *_ebb .PdfObjectString ;Q *_ebb .PdfObjectInteger ;XFA _ebb .PdfObject ;_adcg *_ebb .PdfIndirectObject ; }; // NewPdfSignature creates a new PdfSignature object. func NewPdfSignature (handler SignatureHandler )*PdfSignature {_faefg :=&PdfSignature {Type :_ebb .MakeName ("\u0053\u0069\u0067"),Handler :handler };_agacb :=&pdfSignDictionary {PdfObjectDictionary :_ebb .MakeDict (),_dcfab :&handler ,_bead :_faefg }; _faefg ._ffbgc =_ebb .MakeIndirectObject (_agacb );return _faefg ;};func _adg (_bcgg *PdfPage )map[_ebb .PdfObjectName ]_ebb .PdfObject {_abfc :=make (map[_ebb .PdfObjectName ]_ebb .PdfObject );if _bcgg .Resources ==nil {return _abfc ;};if _bcgg .Resources .Font !=nil {if _ddc ,_bada :=_ebb .GetDict (_bcgg .Resources .Font ); _bada {for _ ,_cgad :=range _ddc .Keys (){_abfc [_cgad ]=_ddc .Get (_cgad );};};};if _bcgg .Resources .ExtGState !=nil {if _abbg ,_bfb :=_ebb .GetDict (_bcgg .Resources .ExtGState );_bfb {for _ ,_fffg :=range _abbg .Keys (){_abfc [_fffg ]=_abbg .Get (_fffg ); };};};if _bcgg .Resources .XObject !=nil {if _dedd ,_dec :=_ebb .GetDict (_bcgg .Resources .XObject );_dec {for _ ,_eeaf :=range _dedd .Keys (){_abfc [_eeaf ]=_dedd .Get (_eeaf );};};};if _bcgg .Resources .Pattern !=nil {if _cfaa ,_geba :=_ebb .GetDict (_bcgg .Resources .Pattern ); _geba {for _ ,_ecgb :=range _cfaa .Keys (){_abfc [_ecgb ]=_cfaa .Get (_ecgb );};};};if _bcgg .Resources .Shading !=nil {if _ddee ,_bcac :=_ebb .GetDict (_bcgg .Resources .Shading );_bcac {for _ ,_dfa :=range _ddee .Keys (){_abfc [_dfa ]=_ddee .Get (_dfa ); };};};if _bcgg .Resources .ProcSet !=nil {if _dbba ,_fccg :=_ebb .GetDict (_bcgg .Resources .ProcSet );_fccg {for _ ,_gdae :=range _dbba .Keys (){_abfc [_gdae ]=_dbba .Get (_gdae );};};};if _bcgg .Resources .Properties !=nil {if _badb ,_agdf :=_ebb .GetDict (_bcgg .Resources .Properties ); _agdf {for _ ,_dgdc :=range _badb .Keys (){_abfc [_dgdc ]=_badb .Get (_dgdc );};};};return _abfc ;}; // ImageToRGB convert 1-component grayscale data to 3-component RGB. func (_bfda *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_gf .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"); };_dbgc ,_beed :=_dg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._dagcb ,img ._dgcea );if _beed !=nil {return img ,_beed ;};_ccead ,_beed :=_dg .NRGBAConverter .Convert (_dbgc );if _beed !=nil {return img ,_beed ; };_adgd :=_afacb (_ccead .Base ());_eg .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_eg .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_eg .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_adgd .Data ); _eg .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_adgd );return _adgd ,nil ;}; // ToPdfObject implements interface PdfModel. func (_adce *PdfAnnotationMovie )ToPdfObject ()_ebb .PdfObject {_adce .PdfAnnotation .ToPdfObject ();_ffeaf :=_adce ._bdcd ;_gaae :=_ffeaf .PdfObject .(*_ebb .PdfObjectDictionary );_gaae .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u004d\u006f\u0076i\u0065")); _gaae .SetIfNotNil ("\u0054",_adce .T );_gaae .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_adce .Movie );_gaae .SetIfNotNil ("\u0041",_adce .A );return _ffeaf ;}; // GetRuneMetrics returns the character metrics for the specified rune. // A bool flag is returned to indicate whether or not the entry was found. func (_dded pdfFontType3 )GetRuneMetrics (r rune )(_bad .CharMetrics ,bool ){_fgbea :=_dded .Encoder ();if _fgbea ==nil {_eg .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_dded ); return _bad .CharMetrics {},false ;};_cgbegf ,_aecfg :=_fgbea .RuneToCharcode (r );if !_aecfg {if r !=' '{_eg .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 ,_dded ); };return _bad .CharMetrics {},false ;};_dcege ,_gffa :=_dded .GetCharMetrics (_cgbegf );return _dcege ,_gffa ;}; // ToPdfObject converts the font to a PDF representation. func (_begb *pdfFontType0 )ToPdfObject ()_ebb .PdfObject {if _begb ._dfffc ==nil {_begb ._dfffc =&_ebb .PdfIndirectObject {};};_acdgf :=_begb .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_begb ._dfffc .PdfObject =_acdgf ;if _begb .Encoding !=nil {_acdgf .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_begb .Encoding ); }else if _begb ._bfdgc !=nil {_acdgf .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_begb ._bfdgc .ToPdfObject ());};if _begb .DescendantFont !=nil {_acdgf .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_ebb .MakeArray (_begb .DescendantFont .ToPdfObject ())); };return _begb ._dfffc ;}; // PdfActionSubmitForm represents a submitForm action. type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _ebb .PdfObject ;Flags _ebb .PdfObject ;}; // PdfAnnotationPolyLine represents PolyLine annotations. // (Section 12.5.6.9). type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ebb .PdfObject ;LE _ebb .PdfObject ;BS _ebb .PdfObject ;IC _ebb .PdfObject ;BE _ebb .PdfObject ;IT _ebb .PdfObject ;Measure _ebb .PdfObject ;}; // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // components. The slice should contain a single PdfObjectFloat element. func (_dggdfb *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_adcff ,_decc :=_ebb .GetNumbersAsFloat (objects ); if _decc !=nil {return nil ,_decc ;};return _dggdfb .ColorFromFloats (_adcff );};func _ecaeg (_aaac []byte )[]byte {const _ebbfd =52845;const _acga =22719;_ecbba :=55665;for _ ,_acbad :=range _aaac [:4]{_ecbba =(int (_acbad )+_ecbba )*_ebbfd +_acga ;}; _acde :=make ([]byte ,len (_aaac )-4);for _badbfd ,_cgbcb :=range _aaac [4:]{_acde [_badbfd ]=byte (int (_cgbcb )^_ecbba >>8);_ecbba =(int (_cgbcb )+_ecbba )*_ebbfd +_acga ;};return _acde ;}; // NewPdfAnnotationFileAttachment returns a new file attachment annotation. func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_cegc :=NewPdfAnnotation ();_ced :=&PdfAnnotationFileAttachment {};_ced .PdfAnnotation =_cegc ;_ced .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cegc .SetContext (_ced );return _ced ; }; // IsColored specifies if the pattern is colored. func (_faacc *PdfTilingPattern )IsColored ()bool {if _faacc .PaintType !=nil &&*_faacc .PaintType ==1{return true ;};return false ;}; // PdfAnnotationPolygon represents Polygon annotations. // (Section 12.5.6.9). type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ebb .PdfObject ;LE _ebb .PdfObject ;BS _ebb .PdfObject ;IC _ebb .PdfObject ;BE _ebb .PdfObject ;IT _ebb .PdfObject ;Measure _ebb .PdfObject ;}; // NewPdfAnnotationHighlight returns a new text highlight annotation. func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_cae :=NewPdfAnnotation ();_fbcf :=&PdfAnnotationHighlight {};_fbcf .PdfAnnotation =_cae ;_fbcf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cae .SetContext (_fbcf );return _fbcf ;}; // Encoder returns the font's text encoder. func (_dcfe *pdfFontSimple )Encoder ()_da .TextEncoder {if _dcfe ._ebcb !=nil {return _dcfe ._ebcb ;};if _dcfe ._dacee !=nil {return _dcfe ._dacee ;};_efae ,_ :=_da .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil ); return _efae ;}; // AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc. func (_afgf *Image )AlphaMap (mapFunc AlphaMapFunc ){for _fabg ,_ebaeg :=range _afgf ._dagcb {_afgf ._dagcb [_fabg ]=mapFunc (_ebaeg );};}; // NewPdfAnnotationCaret returns a new caret annotation. func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_cce :=NewPdfAnnotation ();_ffad :=&PdfAnnotationCaret {};_ffad .PdfAnnotation =_cce ;_ffad .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cce .SetContext (_ffad );return _ffad ;};func (_dacfe *pdfFontSimple )updateStandard14Font (){_gabe ,_aceb :=_dacfe .Encoder ().(_da .SimpleEncoder ); if !_aceb {_eg .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",_dacfe .Encoder (),_dacfe );return ;};_cdgg :=_gabe .Charcodes (); _dacfe ._cdff =make (map[_da .CharCode ]float64 ,len (_cdgg ));for _ ,_eaeg :=range _cdgg {_bgeafe ,_ :=_gabe .CharcodeToRune (_eaeg );_affg ,_ :=_dacfe ._ddgd .Read (_bgeafe );_dacfe ._cdff [_eaeg ]=_affg .Wx ;};}; // ValidateSignatures validates digital signatures in the document. func (_egaag *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _egaag .AcroForm ==nil {return nil ,nil ;};if _egaag .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_daecec *PdfSignature ; _aaada *PdfField ;_gccc SignatureHandler ;};var _adcfda []*sigFieldPair ;for _ ,_aegc :=range _egaag .AcroForm .AllFields (){if _aegc .V ==nil {continue ;};if _dadbg ,_ffege :=_ebb .GetDict (_aegc .V );_ffege {if _daecbg ,_bfddc :=_ebb .GetNameVal (_dadbg .Get ("\u0054\u0079\u0070\u0065")); _bfddc &&_daecbg =="\u0053\u0069\u0067"{_edcecc ,_ffgg :=_ebb .GetIndirect (_aegc .V );if !_ffgg {_eg .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 ;};_cacb ,_bega :=_egaag .newPdfSignatureFromIndirect (_edcecc );if _bega !=nil {return nil ,_bega ;};var _cfdg SignatureHandler ;for _ ,_fgbeec :=range handlers {if _fgbeec .IsApplicable (_cacb ){_cfdg =_fgbeec ;break ;};};_adcfda =append (_adcfda ,&sigFieldPair {_daecec :_cacb ,_aaada :_aegc ,_gccc :_cfdg }); };};};var _bffedb []SignatureValidationResult ;for _ ,_bcbeb :=range _adcfda {_ccdfe :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_bcbeb ._aaada }};if _bcbeb ._gccc ==nil {_ccdfe .Errors =append (_ccdfe .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074"); _bffedb =append (_bffedb ,_ccdfe );continue ;};_fcfaf ,_bfcfd :=_bcbeb ._gccc .NewDigest (_bcbeb ._daecec );if _bfcfd !=nil {_ccdfe .Errors =append (_ccdfe .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_bfcfd .Error ()); _bffedb =append (_bffedb ,_ccdfe );continue ;};_caabf :=_bcbeb ._daecec .ByteRange ;if _caabf ==nil {_ccdfe .Errors =append (_ccdfe .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_bffedb =append (_bffedb ,_ccdfe ); continue ;};for _bbcb :=0;_bbcb < _caabf .Len ();_bbcb =_bbcb +2{_fcgeb ,_ :=_ebb .GetNumberAsInt64 (_caabf .Get (_bbcb ));_dfcag ,_ :=_ebb .GetIntVal (_caabf .Get (_bbcb +1));if _ ,_aabge :=_egaag ._ggdg .Seek (_fcgeb ,_ab .SeekStart );_aabge !=nil {return nil ,_aabge ; };_begeg :=make ([]byte ,_dfcag );if _ ,_ggcdb :=_egaag ._ggdg .Read (_begeg );_ggcdb !=nil {return nil ,_ggcdb ;};_fcfaf .Write (_begeg );};var _bcceg SignatureValidationResult ;if _fegec ,_cdagd :=_bcbeb ._gccc .(SignatureHandlerDocMDP );_cdagd {_bcceg ,_bfcfd =_fegec .ValidateWithOpts (_bcbeb ._daecec ,_fcfaf ,SignatureHandlerDocMDPParams {Parser :_egaag ._cafdf }); }else {_bcceg ,_bfcfd =_bcbeb ._gccc .Validate (_bcbeb ._daecec ,_fcfaf );};if _bfcfd !=nil {_eg .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_bfcfd ,_bcbeb ._gccc );_bcceg .Errors =append (_bcceg .Errors ,_bfcfd .Error ()); };_bcceg .Name =_bcbeb ._daecec .Name .Decoded ();_bcceg .Reason =_bcbeb ._daecec .Reason .Decoded ();if _bcbeb ._daecec .M !=nil {_efbgb ,_beaag :=NewPdfDate (_bcbeb ._daecec .M .String ());if _beaag !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_beaag ); _bcceg .Errors =append (_bcceg .Errors ,_beaag .Error ());continue ;};_bcceg .Date =_efbgb ;};_bcceg .ContactInfo =_bcbeb ._daecec .ContactInfo .Decoded ();_bcceg .Location =_bcbeb ._daecec .Location .Decoded ();_bcceg .Fields =_ccdfe .Fields ;_bffedb =append (_bffedb ,_bcceg ); };return _bffedb ,nil ;}; // GetOutlines returns a high-level Outline object, based on the outline tree // of the reader. func (_gcfbc *PdfReader )GetOutlines ()(*Outline ,error ){if _gcfbc ==nil {return nil ,_gf .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"); };_afcb :=_gcfbc .GetOutlineTree ();if _afcb ==nil {return nil ,_gf .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 _ebega func (_efeeb *PdfOutlineTreeNode ,_bgadd *[]*OutlineItem );_ebega =func (_gabbb *PdfOutlineTreeNode ,_cbgbg *[]*OutlineItem ){if _gabbb ==nil {return ;};if _gabbb ._geeee ==nil {_eg .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 _afbea *OutlineItem ;if _ccba ,_cacecb :=_gabbb ._geeee .(*PdfOutlineItem );_cacecb {_aefc :=_ccba .Dest ;if (_aefc ==nil ||_ebb .IsNullObject (_aefc ))&&_ccba .A !=nil {if _gcab ,_degf :=_ebb .GetDict (_ccba .A );_degf {if _cgggb ,_facaa :=_ebb .GetArray (_gcab .Get ("\u0044")); _facaa {_aefc =_cgggb ;}else {_aecfe ,_abacg :=_ebb .GetString (_gcab .Get ("\u0044"));if !_abacg {return ;};_eaeca ,_abacg :=_gcfbc ._fdgda .Get ("\u004e\u0061\u006de\u0073").(*_ebb .PdfObjectReference );if !_abacg {return ;};_egfdd ,_cbgg :=_gcfbc ._cafdf .LookupByReference (*_eaeca ); if _cbgg !=nil {_eg .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0072\u0065\u0061\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0072\u0065\u0066\u0065\u0072e\u006e\u0063\u0065\u0020\u0028\u0025\u0073\u0029",_cbgg .Error ()); return ;};_dccab ,_abacg :=_egfdd .(*_ebb .PdfIndirectObject );if !_abacg {return ;};_fgfc :=map[_ebb .PdfObject ]struct{}{};_cbgg =_gcfbc .buildNameNodes (_dccab ,_fgfc );if _cbgg !=nil {_eg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0062\u0075\u0069\u006c\u0064\u0020\u006ea\u006d\u0065\u0020\u006e\u006fd\u0065\u0073 \u0028\u0025\u0073\u0029",_cbgg .Error ()); return ;};for _gcbed :=range _fgfc {_geaf ,_agbe :=_ebb .GetDict (_gcbed );if !_agbe {continue ;};_bebbd ,_agbe :=_ebb .GetArray (_geaf .Get ("\u004e\u0061\u006de\u0073"));if !_agbe {continue ;};for _dead ,_eacagc :=range _bebbd .Elements (){switch _eacagc .(type ){case *_ebb .PdfObjectString :if _eacagc .String ()==_aecfe .String (){if _gcbeg :=_bebbd .Get (_dead +1); _gcbeg !=nil {if _bdefe ,_gdfg :=_ebb .GetDict (_gcbeg );_gdfg {_aefc =_bdefe .Get ("\u0044");break ;};};};};};};};};};var _dcdfgg OutlineDest ;if _aefc !=nil &&!_ebb .IsNullObject (_aefc ){if _fdee ,_ffdee :=_fbga (_aefc ,_gcfbc );_ffdee ==nil {_dcdfgg =*_fdee ; }else {_eg .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",_aefc ,_ffdee ); };};_afbea =NewOutlineItem (_ccba .Title .Decoded (),_dcdfgg );*_cbgbg =append (*_cbgbg ,_afbea );if _ccba .Next !=nil {_ebega (_ccba .Next ,_cbgbg );};};if _gabbb .First !=nil {if _afbea !=nil {_cbgbg =&_afbea .Entries ;};_ebega (_gabbb .First ,_cbgbg ); };};_fdfac :=NewOutline ();_ebega (_afcb ,&_fdfac .Entries );return _fdfac ,nil ;}; // SetSubtype sets the Subtype S for given PdfOutputIntent. func (_gdbeg *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _gf .New ("\u0070\u0072o\u0076\u0069\u0064\u0065d\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u004f\u0075t\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0020\u0053\u0075b\u0054\u0079\u0070\u0065"); };_gdbeg .S =subtype ;return nil ;}; // SetFillImage attach a model.Image to push button. func (_ddgba *PdfFieldButton )SetFillImage (image *Image ){if _ddgba .IsPush (){_ddgba ._cdbf =image ;};}; // GetFillImage get attached model.Image in push button. func (_gbfg *PdfFieldButton )GetFillImage ()*Image {if _gbfg .IsPush (){return _gbfg ._cdbf ;};return nil ;}; // NewPdfFilespec returns an initialized generic PDF filespec model. func NewPdfFilespec ()*PdfFilespec {_ffdg :=&PdfFilespec {};_ffdg ._gcge =_ebb .MakeIndirectObject (_ebb .MakeDict ());return _ffdg ;}; // NewCompliancePdfReader creates a PdfReader or an input io.ReadSeeker that during reading will scan the files for the // metadata details. It could be used for the PDF standard implementations like PDF/A or PDF/X. // NOTE: This implementation is in experimental development state. // Keep in mind that it might change in the subsequent minor versions. func NewCompliancePdfReader (rs _ab .ReadSeeker )(*CompliancePdfReader ,error ){const _ggaf ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_ffcg ,_gabg :=_dcbd (rs ,&ReaderOpts {ComplianceMode :true },false ,_ggaf ); if _gabg !=nil {return nil ,_gabg ;};return &CompliancePdfReader {PdfReader :_ffcg },nil ;};func (_gdde *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _gdde ._fbbd ==nil &&_gdde .DescendantFont !=nil {return _gdde .DescendantFont .FontDescriptor (); };return _gdde ._fbbd ;};func (_gecf fontCommon )asPdfObjectDictionary (_aecf string )*_ebb .PdfObjectDictionary {if _aecf !=""&&_gecf ._dfbf !=""&&_aecf !=_gecf ._dfbf {_eg .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",_aecf ,_gecf ); }else if _aecf ==""&&_gecf ._dfbf ==""{_eg .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",_gecf ); }else if _gecf ._dfbf ==""{_gecf ._dfbf =_aecf ;};_dcbad :=_ebb .MakeDict ();_dcbad .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0046\u006f\u006e\u0074"));_dcbad .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_ebb .MakeName (_gecf ._fdacg )); _dcbad .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName (_gecf ._dfbf ));if _gecf ._fbbd !=nil {_dcbad .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_gecf ._fbbd .ToPdfObject ());};if _gecf ._baag !=nil {_dcbad .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_gecf ._baag ); }else if _gecf ._dcdd !=nil {_cgfda ,_ggadd :=_gecf ._dcdd .Stream ();if _ggadd !=nil {_eg .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",_ggadd ); }else {_dcbad .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_cgfda );};};return _dcbad ;};func (_cfc *PdfReader )newPdfActionImportDataFromDict (_agg *_ebb .PdfObjectDictionary )(*PdfActionImportData ,error ){_eef ,_gfe :=_gggf (_agg .Get ("\u0046")); if _gfe !=nil {return nil ,_gfe ;};return &PdfActionImportData {F :_eef },nil ;};var _dbagf =_a .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b"); // NewPdfOutlineItem returns an initialized PdfOutlineItem. func NewPdfOutlineItem ()*PdfOutlineItem {_efaf :=&PdfOutlineItem {_cacdf :_ebb .MakeIndirectObject (_ebb .MakeDict ())};_efaf ._geeee =_efaf ;return _efaf ;}; // PdfActionHide represents a hide action. type PdfActionHide struct{*PdfAction ;T _ebb .PdfObject ;H _ebb .PdfObject ;}; // NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is // a failure in loading. func NewPdfColorspaceFromPdfObject (obj _ebb .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _bcag *_ebb .PdfIndirectObject ;var _daec *_ebb .PdfObjectName ;var _fecd *_ebb .PdfObjectArray ;if _eedf ,_ebgd :=obj .(*_ebb .PdfIndirectObject ); _ebgd {_bcag =_eedf ;};obj =_ebb .TraceToDirectObject (obj );switch _fcbf :=obj .(type ){case *_ebb .PdfObjectArray :_fecd =_fcbf ;case *_ebb .PdfObjectName :_daec =_fcbf ;};if _daec !=nil {switch *_daec {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:_eg .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",*_daec );return nil ,_fddb ;};};if _fecd !=nil &&_fecd .Len ()> 0{var _eaag _ebb .PdfObject =_bcag ; if _bcag ==nil {_eaag =_fecd ;};if _ebga ,_cacd :=_ebb .GetName (_fecd .Get (0));_cacd {switch _ebga .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _fecd .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _fecd .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ; };case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _fecd .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _ageed (_eaag );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _fcgc (_eaag ); case "\u004c\u0061\u0062":return _efad (_eaag );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _aedce (_eaag );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _abba (_eaag );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _dffb (_eaag ); case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _agcbd (_eaag );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _egaaa (_eaag );default:_eg .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",*_ebga ); };};};_eg .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 ;}; // NewPdfActionSound returns a new "sound" action. func NewPdfActionSound ()*PdfActionSound {_ec :=NewPdfAction ();_gc :=&PdfActionSound {};_gc .PdfAction =_ec ;_ec .SetContext (_gc );return _gc ;};func (_dge *PdfReader )newPdfAnnotationHighlightFromDict (_bbbd *_ebb .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_bebf :=PdfAnnotationHighlight {}; _begf ,_bbf :=_dge .newPdfAnnotationMarkupFromDict (_bbbd );if _bbf !=nil {return nil ,_bbf ;};_bebf .PdfAnnotationMarkup =_begf ;_bebf .QuadPoints =_bbbd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_bebf ,nil ;}; // SubsetRegistered subsets the font to only the glyphs that have been registered by the encoder. // NOTE: This only works on fonts that support subsetting. For unsupported fonts this is a no-op, although a debug // message is emitted. Currently supported fonts are embedded Truetype CID fonts (type 0). // NOTE: Make sure to call this soon before writing (once all needed runes have been registered). // If using package creator, use its EnableFontSubsetting method instead. func (_gddbb *PdfFont )SubsetRegistered ()error {switch _fabag :=_gddbb ._ebcad .(type ){case *pdfFontType0 :_ebfec :=_fabag .subsetRegistered ();if _ebfec !=nil {_eg .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_ebfec ); return _ebfec ;};if _fabag ._dfffc !=nil {if _fabag ._bfdgc !=nil {_fabag ._bfdgc .ToPdfObject ();};_fabag .ToPdfObject ();};default:_eg .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",_fabag ); };return nil ;}; // Encoder returns the font's text encoder. func (_fbgff pdfCIDFontType0 )Encoder ()_da .TextEncoder {return _fbgff ._gefge };var _ pdfFont =(*pdfFontSimple )(nil ); // Encoder returns the font's text encoder. func (_dffc pdfFontType0 )Encoder ()_da .TextEncoder {return _dffc ._bfdgc }; // R returns the value of the red component of the color. func (_aade *PdfColorDeviceRGB )R ()float64 {return _aade [0]};func _gfdbb (_aacab *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_aacab }}; // 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 ; // 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"`;};func (_cccbf *PdfFunctionType0 )processSamples ()error {_eddb :=_abg .ResampleBytes (_cccbf ._aeecg ,_cccbf .BitsPerSample ); _cccbf ._egdg =_eddb ;return nil ;}; // PdfFilespec represents a file specification which can either refer to an external or embedded file. type PdfFilespec struct{Type _ebb .PdfObject ;FS _ebb .PdfObject ;F _ebb .PdfObject ;UF _ebb .PdfObject ;DOS _ebb .PdfObject ;Mac _ebb .PdfObject ;Unix _ebb .PdfObject ;ID _ebb .PdfObject ;V _ebb .PdfObject ;EF _ebb .PdfObject ;RF _ebb .PdfObject ;Desc _ebb .PdfObject ; CI _ebb .PdfObject ;_gcge _ebb .PdfObject ;};func (_bcgga *PdfWriter )setHashIDs (_bcdcc _c .Hash )error {_dfgbe :=_bcdcc .Sum (nil );if _bcgga ._gfdea ==""{_bcgga ._gfdea =_d .EncodeToString (_dfgbe [:8]);};_bcgga .setDocumentIDs (_bcgga ._gfdea ,_d .EncodeToString (_dfgbe [8:])); return nil ;}; // String returns a string that describes `font`. func (_eeda *PdfFont )String ()string {_ggf :="";if _eeda ._ebcad .Encoder ()!=nil {_ggf =_eeda ._ebcad .Encoder ().String ();};return _bg .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_eeda ._ebcad ,_eeda .baseFields ().coreString (),_ggf ); };func (_gdgf *PdfReader )newPdfFieldFromIndirectObject (_ddfd *_ebb .PdfIndirectObject ,_cege *PdfField )(*PdfField ,error ){if _aaed ,_cfga :=_gdgf ._abbaca .GetModelFromPrimitive (_ddfd ).(*PdfField );_cfga {return _aaed ,nil ;};_bgbb ,_fefec :=_ebb .GetDict (_ddfd ); if !_fefec {return nil ,_bg .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"); };_acgf :=NewPdfField ();_acgf ._cdfd =_ddfd ;_acgf ._cdfd .PdfObject =_bgbb ;if _dcgd ,_ecdd :=_ebb .GetName (_bgbb .Get ("\u0046\u0054"));_ecdd {_acgf .FT =_dcgd ;};if _cege !=nil {_acgf .Parent =_cege ;};_acgf .T ,_ =_bgbb .Get ("\u0054").(*_ebb .PdfObjectString ); _acgf .TU ,_ =_bgbb .Get ("\u0054\u0055").(*_ebb .PdfObjectString );_acgf .TM ,_ =_bgbb .Get ("\u0054\u004d").(*_ebb .PdfObjectString );_acgf .Ff ,_ =_bgbb .Get ("\u0046\u0066").(*_ebb .PdfObjectInteger );_acgf .V =_bgbb .Get ("\u0056");_acgf .DV =_bgbb .Get ("\u0044\u0056"); _acgf .AA =_bgbb .Get ("\u0041\u0041");if DA :=_bgbb .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_ebb .GetString (DA );_acgf .VariableText =&VariableText {DA :DA };Q ,_ :=_bgbb .Get ("\u0051").(*_ebb .PdfObjectInteger );DS ,_ :=_bgbb .Get ("\u0044\u0053").(*_ebb .PdfObjectString ); RV :=_bgbb .Get ("\u0052\u0056");_acgf .VariableText .Q =Q ;_acgf .VariableText .DS =DS ;_acgf .VariableText .RV =RV ;};_gbgbc :=_acgf .FT ;if _gbgbc ==nil &&_cege !=nil {_gbgbc =_cege .FT ;};if _gbgbc !=nil {switch *_gbgbc {case "\u0054\u0078":_gace ,_aadd :=_cfgdf (_bgbb ); if _aadd !=nil {return nil ,_aadd ;};_gace .PdfField =_acgf ;_acgf ._cada =_gace ;case "\u0043\u0068":_caae ,_bcecc :=_egcdd (_bgbb );if _bcecc !=nil {return nil ,_bcecc ;};_caae .PdfField =_acgf ;_acgf ._cada =_caae ;case "\u0042\u0074\u006e":_gggff ,_edeae :=_gccbf (_bgbb ); if _edeae !=nil {return nil ,_edeae ;};_gggff .PdfField =_acgf ;_acgf ._cada =_gggff ;case "\u0053\u0069\u0067":_cgcc ,_fgccc :=_gdgf .newPdfFieldSignatureFromDict (_bgbb );if _fgccc !=nil {return nil ,_fgccc ;};_cgcc .PdfField =_acgf ;_acgf ._cada =_cgcc ; default:_eg .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",*_acgf .FT );return nil ,_gf .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065"); };};if _fadc ,_deef :=_ebb .GetName (_bgbb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_deef {if *_fadc =="\u0057\u0069\u0064\u0067\u0065\u0074"{_abbe ,_egabg :=_gdgf .newPdfAnnotationFromIndirectObject (_ddfd );if _egabg !=nil {return nil ,_egabg ; };_adda ,_bdfd :=_abbe .GetContext ().(*PdfAnnotationWidget );if !_bdfd {return nil ,_gf .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_adda ._gce =_acgf ;_adda .Parent =_acgf ._cdfd ; _acgf .Annotations =append (_acgf .Annotations ,_adda );return _acgf ,nil ;};};_aebg :=true ;if _dcee ,_dfagfg :=_ebb .GetArray (_bgbb .Get ("\u004b\u0069\u0064\u0073"));_dfagfg {_fcfea :=make ([]*_ebb .PdfIndirectObject ,0,_dcee .Len ());for _ ,_gaaf :=range _dcee .Elements (){_fgeg ,_afba :=_ebb .GetIndirect (_gaaf ); if !_afba {_cffbc ,_cgdfg :=_ebb .GetStream (_gaaf );if _cgdfg &&_cffbc .PdfObjectDictionary !=nil {_efeee ,_feda :=_ebb .GetNameVal (_cffbc .Get ("\u0054\u0079\u0070\u0065"));if _feda &&_efeee =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_eg .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 ,_gf .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");};_dgdee ,_agdca :=_ebb .GetDict (_fgeg ); if !_agdca {return nil ,ErrTypeCheck ;};if _aebg {_aebg =!_abgfe (_dgdee );};_fcfea =append (_fcfea ,_fgeg );};for _ ,_ceab :=range _fcfea {if _aebg {_begd ,_eedfa :=_gdgf .newPdfAnnotationFromIndirectObject (_ceab );if _eedfa !=nil {_eg .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",_eedfa ); return nil ,_eedfa ;};_bbfc ,_gaeca :=_begd ._efd .(*PdfAnnotationWidget );if !_gaeca {return nil ,ErrTypeCheck ;};_bbfc ._gce =_acgf ;_acgf .Annotations =append (_acgf .Annotations ,_bbfc );}else {_eedff ,_adfgg :=_gdgf .newPdfFieldFromIndirectObject (_ceab ,_acgf ); if _adfgg !=nil {_eg .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",_adfgg );return nil ,_adfgg ;};_acgf .Kids =append (_acgf .Kids ,_eedff ); };};};return _acgf ,nil ;};func _bcbe (_dbca *_ebb .PdfObjectDictionary )*VRI {_fbde ,_ :=_ebb .GetString (_dbca .Get ("\u0054\u0055"));_cccba ,_ :=_ebb .GetString (_dbca .Get ("\u0054\u0053"));return &VRI {Cert :_ffaa (_dbca .Get ("\u0043\u0065\u0072\u0074")),OCSP :_ffaa (_dbca .Get ("\u004f\u0043\u0053\u0050")),CRL :_ffaa (_dbca .Get ("\u0043\u0052\u004c")),TU :_fbde ,TS :_cccba }; }; // 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 _ebb .PdfObjectArray )(*PdfRectangle ,error ){_efabe :=PdfRectangle {};if arr .Len ()!=4{return nil ,_gf .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 _bacc error ;_efabe .Llx ,_bacc =_ebb .GetNumberAsFloat (arr .Get (0));if _bacc !=nil {return nil ,_bacc ;};_efabe .Lly ,_bacc =_ebb .GetNumberAsFloat (arr .Get (1));if _bacc !=nil {return nil ,_bacc ;};_efabe .Urx ,_bacc =_ebb .GetNumberAsFloat (arr .Get (2)); if _bacc !=nil {return nil ,_bacc ;};_efabe .Ury ,_bacc =_ebb .GetNumberAsFloat (arr .Get (3));if _bacc !=nil {return nil ,_bacc ;};return &_efabe ,nil ;}; // PdfAnnotationFreeText represents FreeText annotations. // (Section 12.5.6.6). type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _ebb .PdfObject ;Q _ebb .PdfObject ;RC _ebb .PdfObject ;DS _ebb .PdfObject ;CL _ebb .PdfObject ;IT _ebb .PdfObject ;BE _ebb .PdfObject ;RD _ebb .PdfObject ;BS _ebb .PdfObject ;LE _ebb .PdfObject ; }; // ToPdfObject returns the PDF representation of the shading dictionary. func (_aacag *PdfShadingType4 )ToPdfObject ()_ebb .PdfObject {_aacag .PdfShading .ToPdfObject ();_gbacbc ,_fcbe :=_aacag .getShadingDict ();if _fcbe !=nil {_eg .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 _aacag .BitsPerCoordinate !=nil {_gbacbc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_aacag .BitsPerCoordinate );};if _aacag .BitsPerComponent !=nil {_gbacbc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_aacag .BitsPerComponent ); };if _aacag .BitsPerFlag !=nil {_gbacbc .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_aacag .BitsPerFlag );};if _aacag .Decode !=nil {_gbacbc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_aacag .Decode );};if _aacag .Function !=nil {if len (_aacag .Function )==1{_gbacbc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aacag .Function [0].ToPdfObject ()); }else {_fedec :=_ebb .MakeArray ();for _ ,_ebac :=range _aacag .Function {_fedec .Append (_ebac .ToPdfObject ());};_gbacbc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fedec );};};return _aacag ._fbfae ;}; // 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 _ebb .StreamEncoder ;Intent _ebb .PdfObject ;ImageMask _ebb .PdfObject ;Mask _ebb .PdfObject ;Matte _ebb .PdfObject ;Decode _ebb .PdfObject ;Interpolate _ebb .PdfObject ; Alternatives _ebb .PdfObject ;SMask _ebb .PdfObject ;SMaskInData _ebb .PdfObject ;Name _ebb .PdfObject ;StructParent _ebb .PdfObject ;ID _ebb .PdfObject ;OPI _ebb .PdfObject ;Metadata _ebb .PdfObject ;OC _ebb .PdfObject ;Stream []byte ;_fbeec *_ebb .PdfObjectStream ; }; // NewPdfAnnotationRedact returns a new redact annotation. func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_fcb :=NewPdfAnnotation ();_egc :=&PdfAnnotationRedact {};_egc .PdfAnnotation =_fcb ;_egc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fcb .SetContext (_egc );return _egc ;}; // PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh. type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_ebb .PdfObjectInteger ;BitsPerComponent *_ebb .PdfObjectInteger ;VerticesPerRow *_ebb .PdfObjectInteger ;Decode *_ebb .PdfObjectArray ;Function []PdfFunction ;}; // Insert adds a top level outline item in the outline, // at the specified index. func (_ebdcg *Outline )Insert (index uint ,item *OutlineItem ){_bffc :=uint (len (_ebdcg .Entries ));if index > _bffc {index =_bffc ;};_ebdcg .Entries =append (_ebdcg .Entries [:index ],append ([]*OutlineItem {item },_ebdcg .Entries [index :]...)...);}; // NewPdfAnnotationUnderline returns a new text underline annotation. func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_gec :=NewPdfAnnotation ();_fdea :=&PdfAnnotationUnderline {};_fdea .PdfAnnotation =_gec ;_fdea .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gec .SetContext (_fdea );return _fdea ;}; // SetPdfTitle sets the Title attribute of the output PDF. func SetPdfTitle (title string ){_daddc .Lock ();defer _daddc .Unlock ();_fead =title }; // 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 (_edead []_ebb .PdfObject )([]_ebb .PdfObject ,error );}; // ToInteger convert to an integer format. func (_gdcdc *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_fgfea :=_cbg .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_fgfea *_gdcdc .A ()),uint32 (_fgfea *_gdcdc .B ()),uint32 (_fgfea *_gdcdc .C ())};};func (_gabgb *LTV )buildCertChain (_egdf ,_bceafa []*_g .Certificate )([]*_g .Certificate ,map[string ]*_g .Certificate ,error ){_gdbcg :=map[string ]*_g .Certificate {}; for _ ,_faege :=range _egdf {_gdbcg [_faege .Subject .CommonName ]=_faege ;};_bbbee :=_egdf ;for _ ,_gfbgee :=range _bceafa {_ggbf :=_gfbgee .Subject .CommonName ;if _ ,_fbec :=_gdbcg [_ggbf ];_fbec {continue ;};_gdbcg [_ggbf ]=_gfbgee ;_bbbee =append (_bbbee ,_gfbgee ); };if len (_bbbee )==0{return nil ,nil ,ErrSignNoCertificates ;};var _afga error ;for _gbafd :=_bbbee [0];_gbafd !=nil &&!_gabgb .CertClient .IsCA (_gbafd );{_cggbe ,_ccacd :=_gdbcg [_gbafd .Issuer .CommonName ];if !_ccacd {if _cggbe ,_afga =_gabgb .CertClient .GetIssuer (_gbafd ); _afga !=nil {_eg .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",_afga ); break ;};_gdbcg [_gbafd .Issuer .CommonName ]=_cggbe ;_bbbee =append (_bbbee ,_cggbe );};_gbafd =_cggbe ;};return _bbbee ,_gdbcg ,nil ;}; // StandardValidator is the interface that is used for the PDF StandardImplementer validation for the PDF document. // It is using a CompliancePdfReader which is expected to give more Metadata during reading process. // NOTE: This implementation is in experimental development state. // Keep in mind that it might change in the subsequent minor versions. type StandardValidator interface{ // ValidateStandard checks if the input reader ValidateStandard (_feebc *CompliancePdfReader )error ;};func (_bbfce *PdfPage )getParentResources ()(*PdfPageResources ,error ){_dafef :=_bbfce .Parent ;for _dafef !=nil {_dgff ,_fggdd :=_ebb .GetDict (_dafef );if !_fggdd {_eg .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 ,_gf .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};if _cagbg :=_dgff .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_cagbg !=nil {_bafdbbg ,_gbebe :=_ebb .GetDict (_cagbg ); if !_gbebe {return nil ,_gf .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");};_addba ,_eecgd :=NewPdfPageResourcesFromDict (_bafdbbg );if _eecgd !=nil {return nil ,_eecgd ;};return _addba ,nil ; };_dafef =_dgff .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};func _aagg (_ddafe _ebb .PdfObject )(PdfFunction ,error ){_ddafe =_ebb .ResolveReference (_ddafe );if _caeb ,_gaca :=_ddafe .(*_ebb .PdfObjectStream );_gaca {_gcfaf :=_caeb .PdfObjectDictionary ; _fgbdbe ,_dceaf :=_gcfaf .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ebb .PdfObjectInteger );if !_dceaf {_eg .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 ,_gf .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 *_fgbdbe ==0{return _gfcg (_caeb );}else if *_fgbdbe ==4{return _gbab (_caeb ); }else {return nil ,_gf .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _eaeea ,_cfecb :=_ddafe .(*_ebb .PdfIndirectObject );_cfecb {_geea ,_acag :=_eaeea .PdfObject .(*_ebb .PdfObjectDictionary ); if !_acag {_eg .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 ,_gf .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");};_efff ,_acag :=_geea .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ebb .PdfObjectInteger ); if !_acag {_eg .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 ,_gf .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 *_efff ==2{return _fafaa (_eaeea );}else if *_efff ==3{return _ggbgd (_eaeea );}else {return nil ,_gf .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _baeb ,_eccb :=_ddafe .(*_ebb .PdfObjectDictionary ); _eccb {_fgbce ,_cdbef :=_baeb .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ebb .PdfObjectInteger );if !_cdbef {_eg .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 ,_gf .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 *_fgbce ==2{return _fafaa (_baeb );}else if *_fgbce ==3{return _ggbgd (_baeb ); }else {return nil ,_gf .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_eg .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_ddafe ); return nil ,_gf .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};}; // 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 (_fdefe *LTV )EnableByName (name string ,extraCerts []*_g .Certificate )error {_dbcbf :=_fdefe ._ggdbg ._acfe .AcroForm ;for _ ,_adeb :=range _dbcbf .AllFields (){_ffca ,_ :=_adeb .GetContext ().(*PdfFieldSignature );if _ffca ==nil {continue ;};if _aaedg :=_ffca .PartialName (); _aaedg !=name {continue ;};return _fdefe .Enable (_ffca .V ,extraCerts );};return nil ;};func _gegg (_effe *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_effe }}; // PdfShadingType1 is a Function-based shading. type PdfShadingType1 struct{*PdfShading ;Domain *_ebb .PdfObjectArray ;Matrix *_ebb .PdfObjectArray ;Function []PdfFunction ;};func (_ggba *PdfReader )loadAction (_eeb _ebb .PdfObject )(*PdfAction ,error ){if _geed ,_eegg :=_ebb .GetIndirect (_eeb );_eegg {_bff ,_efe :=_ggba .newPdfActionFromIndirectObject (_geed ); if _efe !=nil {return nil ,_efe ;};return _bff ,nil ;}else if !_ebb .IsNullObject (_eeb ){return nil ,_gf .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 ;}; // IsSimple returns true if `font` is a simple font. func (_abdd *PdfFont )IsSimple ()bool {_ ,_gbba :=_abdd ._ebcad .(*pdfFontSimple );return _gbba };var _gdcdfg =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":{}}; // GetAction returns the PDF action for the annotation link. func (_fdd *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _fdd ._ffea !=nil {return _fdd ._ffea ,nil ;};if _fdd .A ==nil {return nil ,nil ;};if _fdd ._cfbg ==nil {return nil ,nil ;};_beb ,_dagf :=_fdd ._cfbg .loadAction (_fdd .A );if _dagf !=nil {return nil ,_dagf ; };_fdd ._ffea =_beb ;return _fdd ._ffea ,nil ;}; // NewPdfActionSubmitForm returns a new "submit form" action. func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_bdc :=NewPdfAction ();_ccb :=&PdfActionSubmitForm {};_ccb .PdfAction =_bdc ;_bdc .SetContext (_ccb );return _ccb ;}; // IsCID returns true if the underlying font is CID. func (_egeda *PdfFont )IsCID ()bool {return _egeda .baseFields ().isCIDFont ()}; // 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 (_fgfd *Image )Resample (targetBitsPerComponent int64 ){if _fgfd .BitsPerComponent ==targetBitsPerComponent {return ;};_dfbdb :=_fgfd .GetSamples ();if targetBitsPerComponent < _fgfd .BitsPerComponent {_faec :=_fgfd .BitsPerComponent -targetBitsPerComponent ; for _bcccb :=range _dfbdb {_dfbdb [_bcccb ]>>=uint (_faec );};}else if targetBitsPerComponent > _fgfd .BitsPerComponent {_efdcg :=targetBitsPerComponent -_fgfd .BitsPerComponent ;for _cbebb :=range _dfbdb {_dfbdb [_cbebb ]<<=uint (_efdcg );};};_fgfd .BitsPerComponent =targetBitsPerComponent ; if _fgfd .BitsPerComponent < 8{_fgfd .resampleLowBits (_dfbdb );return ;};_cedcc :=_dg .BytesPerLine (int (_fgfd .Width ),int (_fgfd .BitsPerComponent ),_fgfd .ColorComponents );_eecac :=make ([]byte ,_cedcc *int (_fgfd .Height ));var (_eeeag ,_gcee ,_deecg ,_cafebf int ; _cfbce uint32 ;);for _deecg =0;_deecg < int (_fgfd .Height );_deecg ++{_eeeag =_deecg *_cedcc ;_gcee =(_deecg +1)*_cedcc -1;_dbcad :=_abg .ResampleUint32 (_dfbdb [_eeeag :_gcee ],int (targetBitsPerComponent ),8);for _cafebf ,_cfbce =range _dbcad {_eecac [_cafebf +_eeeag ]=byte (_cfbce ); };};_fgfd .Data =_eecac ;}; // 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 (_eagdc *XObjectForm )SetContentStream (content []byte ,encoder _ebb .StreamEncoder )error {_adefa :=content ;if encoder ==nil {if _eagdc .Filter !=nil {encoder =_eagdc .Filter ;}else {encoder =_ebb .NewRawEncoder ();};};_affbcb ,_degcfg :=encoder .EncodeBytes (_adefa ); if _degcfg !=nil {return _degcfg ;};_adefa =_affbcb ;_eagdc .Stream =_adefa ;_eagdc .Filter =encoder ;return nil ;}; // XObjectForm (Table 95 in 8.10.2). type XObjectForm struct{Filter _ebb .StreamEncoder ;FormType _ebb .PdfObject ;BBox _ebb .PdfObject ;Matrix _ebb .PdfObject ;Resources *PdfPageResources ;Group _ebb .PdfObject ;Ref _ebb .PdfObject ;MetaData _ebb .PdfObject ;PieceInfo _ebb .PdfObject ;LastModified _ebb .PdfObject ; StructParent _ebb .PdfObject ;StructParents _ebb .PdfObject ;OPI _ebb .PdfObject ;OC _ebb .PdfObject ;Name _ebb .PdfObject ; // Stream data. Stream []byte ;_gebcd *_ebb .PdfObjectStream ;}; // PdfDate represents a date, which is a PDF string of the form: // (D:YYYYMMDDHHmmSSOHH'mm) type PdfDate struct{_dacdd int64 ;_agaba int64 ;_edcfe int64 ;_aedbe int64 ;_cfaba int64 ;_cgbcd int64 ;_degeb byte ;_gcccb int64 ;_fddcbg int64 ;}; // Encrypt encrypts the output file with a specified user/owner password. func (_aagad *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_fcbaf :=RC4_128bit ;if options !=nil {_fcbaf =options .Algorithm ;};_aaebb :=_fe .PermOwner ;if options !=nil {_aaebb =options .Permissions ;};var _egad _fa .Filter ; switch _fcbaf {case RC4_128bit :_egad =_fa .NewFilterV2 (16);case AES_128bit :_egad =_fa .NewFilterAESV2 ();case AES_256bit :_egad =_fa .NewFilterAESV3 ();default:return _bg .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm ); };_gbgba ,_cfffd ,_dbfba :=_ebb .PdfCryptNewEncrypt (_egad ,userPass ,ownerPass ,_aaebb );if _dbfba !=nil {return _dbfba ;};_aagad ._cgfde =_gbgba ;if _cfffd .Major !=0{_aagad .SetVersion (_cfffd .Major ,_cfffd .Minor );};_aagad ._gaccf =_cfffd .Encrypt ; _aagad ._gfdea ,_aagad ._gffb =_cfffd .ID0 ,_cfffd .ID1 ;_bbecb :=_ebb .MakeIndirectObject (_cfffd .Encrypt );_aagad ._cbcaa =_bbecb ;_aagad .addObject (_bbecb );return nil ;}; // HasXObjectByName checks if has XObject resource by name. func (_eafd *PdfPage )HasXObjectByName (name _ebb .PdfObjectName )bool {_ebece ,_dffcb :=_eafd .Resources .XObject .(*_ebb .PdfObjectDictionary );if !_dffcb {return false ;};if _eegb :=_ebece .Get (name );_eegb !=nil {return true ;};return false ;};func (_dbdg *PdfReader )newPdfActionNamedFromDict (_fdef *_ebb .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_fdef .Get ("\u004e")},nil ; };func _eega (_ebeg *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_ebeg }}; // Fill populates `form` with values provided by `provider`. func (_dfgge *PdfAcroForm )Fill (provider FieldValueProvider )error {return _dfgge .fill (provider ,nil )};func _ggdfc (_agcdd _ebb .PdfObject )(*PdfShading ,error ){_cfgad :=&PdfShading {};var _caaad *_ebb .PdfObjectDictionary ;if _aced ,_dbddf :=_ebb .GetIndirect (_agcdd ); _dbddf {_cfgad ._fbfae =_aced ;_eabfb ,_gbdfe :=_aced .PdfObject .(*_ebb .PdfObjectDictionary );if !_gbdfe {_eg .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 ,_ebb .ErrTypeError ;};_caaad =_eabfb ;}else if _cffdc ,_ebeaf :=_ebb .GetStream (_agcdd );_ebeaf {_cfgad ._fbfae =_cffdc ;_caaad =_cffdc .PdfObjectDictionary ;}else if _befef ,_cfabb :=_ebb .GetDict (_agcdd );_cfabb {_cfgad ._fbfae =_befef ; _caaad =_befef ;}else {_eg .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",_agcdd );return nil ,_ebb .ErrTypeError ;};if _caaad ==nil {_eg .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067"); return nil ,_gf .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_agcdd =_caaad .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _agcdd ==nil {_eg .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 ;};_agcdd =_ebb .TraceToDirectObject (_agcdd );_dafea ,_efcf :=_agcdd .(*_ebb .PdfObjectInteger );if !_efcf {_eg .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",_agcdd ); return nil ,_ebb .ErrTypeError ;};if *_dafea < 1||*_dafea > 7{_eg .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",*_dafea ); return nil ,_ebb .ErrTypeError ;};_cfgad .ShadingType =_dafea ;_agcdd =_caaad .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _agcdd ==nil {_eg .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 ;};_abeef ,_ecdcf :=NewPdfColorspaceFromPdfObject (_agcdd );if _ecdcf !=nil {_eg .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",_ecdcf ); return nil ,_ecdcf ;};_cfgad .ColorSpace =_abeef ;_agcdd =_caaad .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _agcdd !=nil {_agcdd =_ebb .TraceToDirectObject (_agcdd );_decab ,_gegeea :=_agcdd .(*_ebb .PdfObjectArray );if !_gegeea {_eg .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)",_agcdd ); return nil ,_ebb .ErrTypeError ;};_cfgad .Background =_decab ;};_agcdd =_caaad .Get ("\u0042\u0042\u006f\u0078");if _agcdd !=nil {_agcdd =_ebb .TraceToDirectObject (_agcdd );_fggc ,_abffc :=_agcdd .(*_ebb .PdfObjectArray );if !_abffc {_eg .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)",_agcdd ); return nil ,_ebb .ErrTypeError ;};_bgbad ,_agacf :=NewPdfRectangle (*_fggc );if _agacf !=nil {_eg .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_agacf );return nil ,_agacf ;};_cfgad .BBox =_bgbad ;};_agcdd =_caaad .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s"); if _agcdd !=nil {_agcdd =_ebb .TraceToDirectObject (_agcdd );_baada ,_ddggg :=_agcdd .(*_ebb .PdfObjectBool );if !_ddggg {_eg .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",_agcdd ); return nil ,_ebb .ErrTypeError ;};_cfgad .AntiAlias =_baada ;};switch *_dafea {case 1:_ddgcf ,_cdcb :=_adaaf (_caaad );if _cdcb !=nil {return nil ,_cdcb ;};_ddgcf .PdfShading =_cfgad ;_cfgad ._edgag =_ddgcf ;return _cfgad ,nil ;case 2:_fdcbg ,_bbdda :=_adcga (_caaad ); if _bbdda !=nil {return nil ,_bbdda ;};_fdcbg .PdfShading =_cfgad ;_cfgad ._edgag =_fdcbg ;return _cfgad ,nil ;case 3:_eadbac ,_cgabg :=_bcafa (_caaad );if _cgabg !=nil {return nil ,_cgabg ;};_eadbac .PdfShading =_cfgad ;_cfgad ._edgag =_eadbac ;return _cfgad ,nil ; case 4:_fcbc ,_befag :=_ccgda (_caaad );if _befag !=nil {return nil ,_befag ;};_fcbc .PdfShading =_cfgad ;_cfgad ._edgag =_fcbc ;return _cfgad ,nil ;case 5:_fdabbf ,_gggdd :=_ebcfc (_caaad );if _gggdd !=nil {return nil ,_gggdd ;};_fdabbf .PdfShading =_cfgad ; _cfgad ._edgag =_fdabbf ;return _cfgad ,nil ;case 6:_afbed ,_gaga :=_gcabc (_caaad );if _gaga !=nil {return nil ,_gaga ;};_afbed .PdfShading =_cfgad ;_cfgad ._edgag =_afbed ;return _cfgad ,nil ;case 7:_ddagg ,_bbccc :=_gaab (_caaad );if _bbccc !=nil {return nil ,_bbccc ; };_ddagg .PdfShading =_cfgad ;_cfgad ._edgag =_ddagg ;return _cfgad ,nil ;};return nil ,_gf .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");}; // GetContainingPdfObject implements interface PdfModel. func (_ddegcb *PdfSignatureReference )GetContainingPdfObject ()_ebb .PdfObject {return _ddegcb ._afacea }; // WriteString outputs the object as it is to be written to file. func (_ebcde *PdfTransformParamsDocMDP )WriteString ()string {return _ebcde .ToPdfObject ().WriteString ();};func (_facce *PdfReader )newPdfAcroFormFromDict (_aaddd *_ebb .PdfIndirectObject ,_fddd *_ebb .PdfObjectDictionary )(*PdfAcroForm ,error ){_dddd :=NewPdfAcroForm (); if _aaddd !=nil {_dddd ._adcg =_aaddd ;_aaddd .PdfObject =_ebb .MakeDict ();};if _bfcc :=_fddd .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_bfcc !=nil &&!_ebb .IsNullObject (_bfcc ){_gcca ,_cdaa :=_ebb .GetArray (_bfcc );if !_cdaa {return nil ,_bg .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_bfcc ); };var _ebdca []*PdfField ;for _ ,_aefaa :=range _gcca .Elements (){_aagcc ,_ffaf :=_ebb .GetIndirect (_aefaa );if !_ffaf {if _ ,_bffd :=_aefaa .(*_ebb .PdfObjectNull );_bffd {_eg .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 ;};_eg .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",_aefaa ); return nil ,_bg .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");};_aeagg ,_bdabd :=_facce .newPdfFieldFromIndirectObject (_aagcc ,nil ); if _bdabd !=nil {return nil ,_bdabd ;};_eg .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_aeagg );_ebdca =append (_ebdca ,_aeagg );};_dddd .Fields =&_ebdca ;};if _abggd :=_fddd .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073"); _abggd !=nil {_bgegg ,_gaebc :=_ebb .GetBool (_abggd );if _gaebc {_dddd .NeedAppearances =_bgegg ;}else {_eg .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",_abggd ); };};if _eggdf :=_fddd .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_eggdf !=nil {_ffgea ,_bfca :=_ebb .GetInt (_eggdf );if _bfca {_dddd .SigFlags =_ffgea ;}else {_eg .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",_eggdf ); };};if _dfdag :=_fddd .Get ("\u0043\u004f");_dfdag !=nil {_feaa ,_beaaf :=_ebb .GetArray (_dfdag );if _beaaf {_dddd .CO =_feaa ;}else {_eg .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",_dfdag ); };};if _fccgg :=_fddd .Get ("\u0044\u0052");_fccgg !=nil {if _cdffc ,_gccgb :=_ebb .GetDict (_fccgg );_gccgb {_caedda ,_cgcgb :=NewPdfPageResourcesFromDict (_cdffc );if _cgcgb !=nil {_eg .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_cgcgb ); return nil ,_cgcgb ;};_dddd .DR =_caedda ;}else {_eg .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",_fccgg );};};if _egfec :=_fddd .Get ("\u0044\u0041"); _egfec !=nil {_cacf ,_ggcg :=_ebb .GetString (_egfec );if _ggcg {_dddd .DA =_cacf ;}else {_eg .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",_egfec ); };};if _afdbd :=_fddd .Get ("\u0051");_afdbd !=nil {_dafda ,_gcffc :=_ebb .GetInt (_afdbd );if _gcffc {_dddd .Q =_dafda ;}else {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_afdbd ); };};if _dcdfg :=_fddd .Get ("\u0058\u0046\u0041");_dcdfg !=nil {_dddd .XFA =_dcdfg ;};_dddd .ToPdfObject ();return _dddd ,nil ;}; // ToPdfObject returns the PDF representation of the function. func (_fcfee *PdfFunctionType2 )ToPdfObject ()_ebb .PdfObject {_bdgb :=_ebb .MakeDict ();_bdgb .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ebb .MakeInteger (2));_bgadf :=&_ebb .PdfObjectArray {};for _ ,_aggbd :=range _fcfee .Domain {_bgadf .Append (_ebb .MakeFloat (_aggbd )); };_bdgb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bgadf );if _fcfee .Range !=nil {_befge :=&_ebb .PdfObjectArray {};for _ ,_egcgc :=range _fcfee .Range {_befge .Append (_ebb .MakeFloat (_egcgc ));};_bdgb .Set ("\u0052\u0061\u006eg\u0065",_befge );}; if _fcfee .C0 !=nil {_gcbb :=&_ebb .PdfObjectArray {};for _ ,_ebab :=range _fcfee .C0 {_gcbb .Append (_ebb .MakeFloat (_ebab ));};_bdgb .Set ("\u0043\u0030",_gcbb );};if _fcfee .C1 !=nil {_bfdge :=&_ebb .PdfObjectArray {};for _ ,_gfebc :=range _fcfee .C1 {_bfdge .Append (_ebb .MakeFloat (_gfebc )); };_bdgb .Set ("\u0043\u0031",_bfdge );};_bdgb .Set ("\u004e",_ebb .MakeFloat (_fcfee .N ));if _fcfee ._bcbfd !=nil {_fcfee ._bcbfd .PdfObject =_bdgb ;return _fcfee ._bcbfd ;};return _bdgb ;};func _fgag (_cafgd map[_bad .GID ]int ,_ggfb uint16 )*_ebb .PdfObjectArray {_ddbd :=&_ebb .PdfObjectArray {}; _aeae :=_bad .GID (_ggfb );for _gbdc :=_bad .GID (0);_gbdc < _aeae ;{_cceg ,_gdcb :=_cafgd [_gbdc ];if !_gdcb {_gbdc ++;continue ;};_afbb :=_gbdc ;for _cbdda :=_afbb +1;_cbdda < _aeae ;_cbdda ++{if _aefe ,_begfa :=_cafgd [_cbdda ];!_begfa ||_cceg !=_aefe {break ; };_afbb =_cbdda ;};_ddbd .Append (_ebb .MakeInteger (int64 (_gbdc )));_ddbd .Append (_ebb .MakeInteger (int64 (_afbb )));_ddbd .Append (_ebb .MakeInteger (int64 (_cceg )));_gbdc =_afbb +1;};return _ddbd ;}; // 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 *_ebb .PdfObjectArray ;ExtGState _ebb .PdfObject ;}; // RemovePage removes a page by number. func (_faca *PdfAppender )RemovePage (pageNum int ){_bcdg :=pageNum -1;_faca ._dfbg =append (_faca ._dfbg [0:_bcdg ],_faca ._dfbg [pageNum :]...);};func (_ggbfd *PdfWriter )writeObject (_abegg int ,_abbf _ebb .PdfObject ){_eg .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_abegg ); if _ebacf ,_gabad :=_abbf .(*_ebb .PdfIndirectObject );_gabad {_ggbfd ._bedfc [_abegg ]=crossReference {Type :1,Offset :_ggbfd ._afedd ,Generation :_ebacf .GenerationNumber };_ggbdb :=_bg .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_abegg ); if _eaaagg ,_dffga :=_ebacf .PdfObject .(*pdfSignDictionary );_dffga {_eaaagg ._cbfg =_ggbfd ._afedd +int64 (len (_ggbdb ));};if _ebacf .PdfObject ==nil {_eg .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"); _ebacf .PdfObject =_ebb .MakeNull ();};_ggbdb +=_ebacf .PdfObject .WriteString ();_ggbdb +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_ggbfd .writeString (_ggbdb );return ;};if _fbegb ,_ageead :=_abbf .(*_ebb .PdfObjectStream );_ageead {_ggbfd ._bedfc [_abegg ]=crossReference {Type :1,Offset :_ggbfd ._afedd ,Generation :_fbegb .GenerationNumber }; _afagc :=_bg .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_abegg );_afagc +=_fbegb .PdfObjectDictionary .WriteString ();_afagc +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_ggbfd .writeString (_afagc );_ggbfd .writeBytes (_fbegb .Stream ); _ggbfd .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _feaef ,_caeac :=_abbf .(*_ebb .PdfObjectStreams );_caeac {_ggbfd ._bedfc [_abegg ]=crossReference {Type :1,Offset :_ggbfd ._afedd ,Generation :_feaef .GenerationNumber }; _fcdfg :=_bg .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_abegg );var _fgcge []string ;var _gbbgf string ;var _fgddda int64 ;for _fcaee ,_dadcc :=range _feaef .Elements (){_fbfb ,_deebe :=_dadcc .(*_ebb .PdfIndirectObject );if !_deebe {_eg .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",_abegg ,_dadcc ); continue ;};_bcgdb :=_fbfb .PdfObject .WriteString ()+"\u0020";_gbbgf =_gbbgf +_bcgdb ;_fgcge =append (_fgcge ,_bg .Sprintf ("\u0025\u0064\u0020%\u0064",_fbfb .ObjectNumber ,_fgddda ));_ggbfd ._bedfc [int (_fbfb .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_abegg ,Index :_fcaee }; _fgddda =_fgddda +int64 (len ([]byte (_bcgdb )));};_eccf :=_ee .Join (_fgcge ,"\u0020")+"\u0020";_dbaab :=_ebb .NewFlateEncoder ();_bdbac :=_dbaab .MakeStreamDict ();_bdbac .Set (_ebb .PdfObjectName ("\u0054\u0079\u0070\u0065"),_ebb .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d")); _bgeae :=int64 (_feaef .Len ());_bdbac .Set (_ebb .PdfObjectName ("\u004e"),_ebb .MakeInteger (_bgeae ));_bfgece :=int64 (len (_eccf ));_bdbac .Set (_ebb .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_ebb .MakeInteger (_bfgece ));_gcafe ,_ :=_dbaab .EncodeBytes ([]byte (_eccf +_gbbgf )); _adcd :=int64 (len (_gcafe ));_bdbac .Set (_ebb .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_ebb .MakeInteger (_adcd ));_fcdfg +=_bdbac .WriteString ();_fcdfg +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_ggbfd .writeString (_fcdfg ); _ggbfd .writeBytes (_gcafe );_ggbfd .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_ggbfd .writeString (_abbf .WriteString ());};func (_dafc fontCommon )coreString ()string {_bfgb :=""; if _dafc ._fbbd !=nil {_bfgb =_dafc ._fbbd .String ();};return _bg .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",_dafc ._dfbf ,_dafc ._fdacg ,_dafc ._efge ,_dafc ._efbg ,_dafc ._baag !=nil ,_dafc .fontFlags (),_bfgb ); }; // NewPdfAnnotationStrikeOut returns a new text strikeout annotation. func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_acg :=NewPdfAnnotation ();_cgb :=&PdfAnnotationStrikeOut {};_cgb .PdfAnnotation =_acg ;_cgb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_acg .SetContext (_cgb );return _cgb ;};var _ pdfFont =(*pdfCIDFontType0 )(nil ); // PdfShadingType3 is a Radial shading. type PdfShadingType3 struct{*PdfShading ;Coords *_ebb .PdfObjectArray ;Domain *_ebb .PdfObjectArray ;Function []PdfFunction ;Extend *_ebb .PdfObjectArray ;}; // ToPdfObject implements interface PdfModel. func (_gda *PdfAction )ToPdfObject ()_ebb .PdfObject {_fb :=_gda ._abe ;_baa :=_fb .PdfObject .(*_ebb .PdfObjectDictionary );_baa .Clear ();_baa .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_baa .SetIfNotNil ("\u0053",_gda .S ); _baa .SetIfNotNil ("\u004e\u0065\u0078\u0074",_gda .Next );return _fb ;}; // ToPdfObject returns the PDF representation of the colorspace. func (_defd *PdfColorspaceDeviceCMYK )ToPdfObject ()_ebb .PdfObject {return _ebb .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");}; // GetNumComponents returns the number of color components (1 for Indexed). func (_ccag *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1}; // ToPdfObject converts the PdfFont object to its PDF representation. func (_addb *PdfFont )ToPdfObject ()_ebb .PdfObject {if _addb ._ebcad ==nil {_eg .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 _ebb .MakeNull (); };return _addb ._ebcad .ToPdfObject ();}; // CompliancePdfReader is a wrapper over PdfReader that is used for verifying if the input Pdf document matches the // compliance rules of standards like PDF/A. // NOTE: This implementation is in experimental development state. // Keep in mind that it might change in the subsequent minor versions. type CompliancePdfReader struct{*PdfReader ;_ecbbg _ebb .ParserMetadata ;};func (_fggde *PdfField )inherit (_gfcac func (*PdfField )bool )(bool ,error ){_eaeba :=map[*PdfField ]bool {};_affea :=false ;_becf :=_fggde ;for _becf !=nil {if _ ,_acfcd :=_eaeba [_becf ]; _acfcd {return false ,_gf .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_eebcb :=_gfcac (_becf );if _eebcb {_affea =true ;break ;};_eaeba [_becf ]=true ;_becf =_becf .Parent ;};return _affea ,nil ; }; // GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the // annotations, otherwise returns the loaded list. func (_eefa *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _eefa ._bbfed !=nil {return _eefa ._bbfed ,nil ;};if _eefa .Annots ==nil {_eefa ._bbfed =[]*PdfAnnotation {};return nil ,nil ;};if _eefa ._ddab ==nil {_eefa ._bbfed =[]*PdfAnnotation {}; return nil ,nil ;};_bdee ,_agbgb :=_eefa ._ddab .loadAnnotations (_eefa .Annots );if _agbgb !=nil {return nil ,_agbgb ;};if _bdee ==nil {_eefa ._bbfed =[]*PdfAnnotation {};};_eefa ._bbfed =_bdee ;return _eefa ._bbfed ,nil ;};func _eeafg (_adgga _ebb .PdfObject )(*PdfPageResourcesColorspaces ,error ){_dgffa :=&PdfPageResourcesColorspaces {}; if _fbeed ,_fdffd :=_adgga .(*_ebb .PdfIndirectObject );_fdffd {_dgffa ._ddffd =_fbeed ;_adgga =_fbeed .PdfObject ;};_cccgg ,_degb :=_ebb .GetDict (_adgga );if !_degb {return nil ,_gf .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };_dgffa .Names =[]string {};_dgffa .Colorspaces =map[string ]PdfColorspace {};for _ ,_bgdg :=range _cccgg .Keys (){_efgf :=_cccgg .Get (_bgdg );_dgffa .Names =append (_dgffa .Names ,string (_bgdg ));_aabd ,_fcgda :=NewPdfColorspaceFromPdfObject (_efgf ); if _fcgda !=nil {return nil ,_fcgda ;};_dgffa .Colorspaces [string (_bgdg )]=_aabd ;};return _dgffa ,nil ;}; // GetXObjectByName gets XObject by name. func (_eeggg *PdfPage )GetXObjectByName (name _ebb .PdfObjectName )(_ebb .PdfObject ,bool ){_gfgcd ,_ffcfe :=_eeggg .Resources .XObject .(*_ebb .PdfObjectDictionary );if !_ffcfe {return nil ,false ;};if _gbacbb :=_gfgcd .Get (name );_gbacbb !=nil {return _gbacbb ,true ; };return nil ,false ;}; // GetNumComponents returns the number of color components (3 for Lab). func (_abfac *PdfColorLab )GetNumComponents ()int {return 3};func (_egcedc *pdfFontSimple )addEncoding ()error {var (_abaf string ;_aadef map[_da .CharCode ]_da .GlyphName ;_cfgab _da .SimpleEncoder ;);if _egcedc .Encoder ()!=nil {_bcgfcc ,_gfaec :=_egcedc .Encoder ().(_da .SimpleEncoder ); if _gfaec &&_bcgfcc !=nil {_abaf =_bcgfcc .BaseName ();};};if _egcedc .Encoding !=nil {_bafff ,_affa ,_aefa :=_egcedc .getFontEncoding ();if _aefa !=nil {_eg .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",_egcedc ._fdacg ,_egcedc ._dfbf ,_egcedc .Encoding ,_egcedc .Encoding ,_aefa ); return _aefa ;};if _bafff !=""{_abaf =_bafff ;};_aadef =_affa ;_cfgab ,_aefa =_da .NewSimpleTextEncoder (_abaf ,_aadef );if _aefa !=nil {return _aefa ;};};if _cfgab ==nil {_ecdbf :=_egcedc ._fbbd ;if _ecdbf !=nil {switch _egcedc ._dfbf {case "\u0054\u0079\u0070e\u0031":if _ecdbf .fontFile !=nil &&_ecdbf .fontFile ._gega !=nil {_eg .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065"); _cfgab =_ecdbf .fontFile ._gega ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _ecdbf ._aeeb !=nil {_eg .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_fffgb ,_cfgag :=_ecdbf ._aeeb .MakeEncoder (); if _cfgag ==nil {_cfgab =_fffgb ;};};};};};if _cfgab !=nil {if _aadef !=nil {_eg .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_aadef ,_egcedc .baseFields ()); _cfgab =_da .ApplyDifferences (_cfgab ,_aadef );};_egcedc .SetEncoder (_cfgab );};return nil ;}; // ToPdfObject converts date to a PDF string object. func (_agag *PdfDate )ToPdfObject ()_ebb .PdfObject {_gafdf :=_bg .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",_agag ._dacdd ,_agag ._agaba ,_agag ._edcfe ,_agag ._aedbe ,_agag ._cfaba ,_agag ._cgbcd ,_agag ._degeb ,_agag ._gcccb ,_agag ._fddcbg ); return _ebb .MakeString (_gafdf );}; // BorderStyle defines border type, typically used for annotations. type BorderStyle int ; // ToPdfObject implements interface PdfModel. func (_baeeb *PdfAnnotationPrinterMark )ToPdfObject ()_ebb .PdfObject {_baeeb .PdfAnnotation .ToPdfObject ();_ecga :=_baeeb ._bdcd ;_ecd :=_ecga .PdfObject .(*_ebb .PdfObjectDictionary );_ecd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b")); _ecd .SetIfNotNil ("\u004d\u004e",_baeeb .MN );return _ecga ;};func (_aaga *PdfReader )loadAnnotations (_abade _ebb .PdfObject )([]*PdfAnnotation ,error ){_eddd ,_bgcf :=_ebb .GetArray (_abade );if !_bgcf {return nil ,_bg .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079"); };var _efffg []*PdfAnnotation ;for _ ,_dbagdc :=range _eddd .Elements (){_dbagdc =_ebb .ResolveReference (_dbagdc );if _ ,_dfeb :=_dbagdc .(*_ebb .PdfObjectNull );_dfeb {continue ;};_befbc ,_beebg :=_dbagdc .(*_ebb .PdfObjectDictionary );_aabca ,_aacaa :=_dbagdc .(*_ebb .PdfIndirectObject ); if _beebg {_aabca =&_ebb .PdfIndirectObject {};_aabca .PdfObject =_befbc ;}else {if !_aacaa {return nil ,_bg .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"); };};_cbedb ,_gdeff :=_aaga .newPdfAnnotationFromIndirectObject (_aabca );if _gdeff !=nil {return nil ,_gdeff ;};switch _bfefa :=_cbedb .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_dffca :=range _aaga .AcroForm .AllFields (){if _dffca ._cdfd ==_bfefa .Parent {_bfefa ._gce =_dffca ; break ;};};};if _cbedb !=nil {_efffg =append (_efffg ,_cbedb );};};return _efffg ,nil ;};func (_caef *PdfReader )newPdfAnnotationTextFromDict (_gcg *_ebb .PdfObjectDictionary )(*PdfAnnotationText ,error ){_acd :=PdfAnnotationText {};_aebd ,_dcf :=_caef .newPdfAnnotationMarkupFromDict (_gcg ); if _dcf !=nil {return nil ,_dcf ;};_acd .PdfAnnotationMarkup =_aebd ;_acd .Open =_gcg .Get ("\u004f\u0070\u0065\u006e");_acd .Name =_gcg .Get ("\u004e\u0061\u006d\u0065");_acd .State =_gcg .Get ("\u0053\u0074\u0061t\u0065");_acd .StateModel =_gcg .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c"); return &_acd ,nil ;}; // AddExtGState adds a graphics state to the XObject resources. func (_baedc *PdfPage )AddExtGState (name _ebb .PdfObjectName ,egs *_ebb .PdfObjectDictionary )error {if _baedc .Resources ==nil {_baedc .Resources =NewPdfPageResources ();};if _baedc .Resources .ExtGState ==nil {_baedc .Resources .ExtGState =_ebb .MakeDict (); };_aaeb ,_beaef :=_ebb .TraceToDirectObject (_baedc .Resources .ExtGState ).(*_ebb .PdfObjectDictionary );if !_beaef {_eg .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",_ebb .TraceToDirectObject (_baedc .Resources .ExtGState )); return _gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_aaeb .Set (name ,egs );return nil ;};func (_fggdb *PdfWriter )setDocInfo (_bddaa _ebb .PdfObject ){if _fggdb .hasObject (_fggdb ._eadfd ){delete (_fggdb ._ffffd ,_fggdb ._eadfd ); delete (_fggdb ._dcfg ,_fggdb ._eadfd );for _aafgb ,_fcfcb :=range _fggdb ._ebdgg {if _fcfcb ==_fggdb ._eadfd {copy (_fggdb ._ebdgg [_aafgb :],_fggdb ._ebdgg [_aafgb +1:]);_fggdb ._ebdgg [len (_fggdb ._ebdgg )-1]=nil ;_fggdb ._ebdgg =_fggdb ._ebdgg [:len (_fggdb ._ebdgg )-1]; break ;};};};_aafb :=_ebb .PdfIndirectObject {};_aafb .PdfObject =_bddaa ;_fggdb ._eadfd =&_aafb ;_fggdb .addObject (&_aafb );}; // ImageToRGB returns the passed in image. Method exists in order to satisfy // the PdfColorspace interface. func (_ebcd *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil }; // PdfAnnotationProjection represents Projection annotations. type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;}; // 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 (_adcbb *PdfReader )GetObjectNums ()[]int {return _adcbb ._cafdf .GetObjectNums ()}; // GetColorspaceByName returns the colorspace with the specified name from the page resources. func (_cdfgd *PdfPageResources )GetColorspaceByName (keyName _ebb .PdfObjectName )(PdfColorspace ,bool ){_aeccb ,_deedg :=_cdfgd .GetColorspaces ();if _deedg !=nil {_eg .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",_deedg ); return nil ,false ;};if _aeccb ==nil {return nil ,false ;};_efgfa ,_dgedd :=_aeccb .Colorspaces [string (keyName )];if !_dgedd {return nil ,false ;};return _efgfa ,true ;}; // 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 ()_ebb .PdfObject ;GetContainingPdfObject ()_ebb .PdfObject ;};func (_aega *PdfWriter )seekByName (_fabbc _ebb .PdfObject ,_defad []string ,_cddcd string )([]_ebb .PdfObject ,error ){_eg .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_fabbc ); var _cgfcdd []_ebb .PdfObject ;if _ddde ,_fdcggc :=_fabbc .(*_ebb .PdfIndirectObject );_fdcggc {return _aega .seekByName (_ddde .PdfObject ,_defad ,_cddcd );};if _abfcc ,_dgcbe :=_fabbc .(*_ebb .PdfObjectStream );_dgcbe {return _aega .seekByName (_abfcc .PdfObjectDictionary ,_defad ,_cddcd ); };if _gfgef ,_fdgbf :=_fabbc .(*_ebb .PdfObjectDictionary );_fdgbf {_eg .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_eegcef :=range _gfgef .Keys (){_bccff :=_gfgef .Get (_eegcef );if string (_eegcef )==_cddcd {_cgfcdd =append (_cgfcdd ,_bccff );};for _ ,_adff :=range _defad {if string (_eegcef )==_adff {_eg .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_adff ); _bbedg ,_cgbd :=_aega .seekByName (_bccff ,_defad ,_cddcd );if _cgbd !=nil {return _cgfcdd ,_cgbd ;};_cgfcdd =append (_cgfcdd ,_bbedg ...);break ;};};};return _cgfcdd ,nil ;};return _cgfcdd ,nil ;}; // ToPdfObject converts rectangle to a PDF object. func (_bedcc *PdfRectangle )ToPdfObject ()_ebb .PdfObject {return _ebb .MakeArray (_ebb .MakeFloat (_bedcc .Llx ),_ebb .MakeFloat (_bedcc .Lly ),_ebb .MakeFloat (_bedcc .Urx ),_ebb .MakeFloat (_bedcc .Ury ));}; // GetCatalogMetadata gets the catalog defined XMP Metadata. func (_gbcc *PdfReader )GetCatalogMetadata ()(_ebb .PdfObject ,bool ){if _gbcc ._fdgda ==nil {return nil ,false ;};_aafce :=_gbcc ._fdgda .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _aafce ,_aafce !=nil ;}; // ToPdfObject returns the PDF representation of the function. func (_ggafb *PdfFunctionType3 )ToPdfObject ()_ebb .PdfObject {_bbadc :=_ebb .MakeDict ();_bbadc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ebb .MakeInteger (3));_fddba :=&_ebb .PdfObjectArray {};for _ ,_gcgfa :=range _ggafb .Domain {_fddba .Append (_ebb .MakeFloat (_gcgfa )); };_bbadc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_fddba );if _ggafb .Range !=nil {_ccgd :=&_ebb .PdfObjectArray {};for _ ,_fbab :=range _ggafb .Range {_ccgd .Append (_ebb .MakeFloat (_fbab ));};_bbadc .Set ("\u0052\u0061\u006eg\u0065",_ccgd );};if _ggafb .Functions !=nil {_ggecc :=&_ebb .PdfObjectArray {}; for _ ,_gffc :=range _ggafb .Functions {_ggecc .Append (_gffc .ToPdfObject ());};_bbadc .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_ggecc );};if _ggafb .Bounds !=nil {_ebcc :=&_ebb .PdfObjectArray {};for _ ,_abeaf :=range _ggafb .Bounds {_ebcc .Append (_ebb .MakeFloat (_abeaf )); };_bbadc .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_ebcc );};if _ggafb .Encode !=nil {_ddeda :=&_ebb .PdfObjectArray {};for _ ,_gebga :=range _ggafb .Encode {_ddeda .Append (_ebb .MakeFloat (_gebga ));};_bbadc .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_ddeda ); };if _ggafb ._acac !=nil {_ggafb ._acac .PdfObject =_bbadc ;return _ggafb ._acac ;};return _bbadc ;};var ImageHandling ImageHandler =DefaultImageHandler {}; // GetPatternByName gets the pattern specified by keyName. Returns nil if not existing. // The bool flag indicated whether it was found or not. func (_cdgb *PdfPageResources )GetPatternByName (keyName _ebb .PdfObjectName )(*PdfPattern ,bool ){if _cdgb .Pattern ==nil {return nil ,false ;};_cbgcg ,_bacgg :=_ebb .TraceToDirectObject (_cdgb .Pattern ).(*_ebb .PdfObjectDictionary );if !_bacgg {_eg .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",_cdgb .Pattern ); return nil ,false ;};if _cdde :=_cbgcg .Get (keyName );_cdde !=nil {_ddcd ,_gbce :=_ccef (_cdde );if _gbce !=nil {_eg .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",_gbce ); return nil ,false ;};return _ddcd ,true ;};return nil ,false ;};func (_dfbca *PdfWriter )hasObject (_adcad _ebb .PdfObject )bool {_ ,_ecdgeg :=_dfbca ._ffffd [_adcad ];return _ecdgeg ;};func (_cccfb *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _cccfb ._cafdf .GetCrypter ()!=nil &&!_cccfb ._cafdf .IsAuthenticated (){return nil ,_bg .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"); };_fegfd :=_cccfb ._fdgda ;_ggfdg :=_fegfd .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _ggfdg ==nil {return nil ,nil ;};_dccdd ,_ :=_ebb .GetIndirect (_ggfdg );_ggfdg =_ebb .TraceToDirectObject (_ggfdg );if _ebb .IsNullObject (_ggfdg ){_eg .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 ;};_gfcd ,_bceb :=_ebb .GetDict (_ggfdg );if !_bceb {_eg .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_ggfdg );_eg .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073"); return nil ,_bg .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_ggfdg );};_eg .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073"); _eg .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 !_cccfb ._ceefa {_beedb :=_cccfb .traverseObjectData (_gfcd ); if _beedb !=nil {_eg .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",_beedb ); return nil ,_beedb ;};};_cbfbfb ,_cdagg :=_cccfb .newPdfAcroFormFromDict (_dccdd ,_gfcd );if _cdagg !=nil {return nil ,_cdagg ;};return _cbfbfb ,nil ;}; // SetImage updates XObject Image with new image data. func (_aagdg *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_aagdg .Filter .UpdateParams (img .GetParamsDict ());_dbeg ,_gbdce :=_aagdg .Filter .EncodeBytes (img .Data );if _gbdce !=nil {return _gbdce ;};_aagdg .Stream =_dbeg ;_egddcd :=img .Width ; _aagdg .Width =&_egddcd ;_bcbafa :=img .Height ;_aagdg .Height =&_bcbafa ;_dbdgff :=img .BitsPerComponent ;_aagdg .BitsPerComponent =&_dbdgff ;if cs ==nil {if img .ColorComponents ==1{_aagdg .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_aagdg .ColorSpace =NewPdfColorspaceDeviceRGB (); }else if img .ColorComponents ==4{_aagdg .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _gf .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_aagdg .ColorSpace =cs ;};return nil ; };func (_defbf *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";};var (ErrRequiredAttributeMissing =_gf .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 =_gf .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_gf .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_fddb =_gf .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072"); ErrEncrypted =_gf .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 =_gf .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064"); ErrFontNotSupported =_bfc .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_ebb .ErrNotSupported );ErrType1CFontNotSupported =_bfc .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",_ebb .ErrNotSupported ); ErrType3FontNotSupported =_bfc .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",_ebb .ErrNotSupported ); ErrTTCmapNotSupported =_bfc .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",_ebb .ErrNotSupported ); ErrSignNotEnoughSpace =_bfc .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 =_bfc .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");); // PdfAnnotationSound represents Sound annotations. // (Section 12.5.6.16). type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _ebb .PdfObject ;Name _ebb .PdfObject ;};func _bdgae (_cbac *_ebb .PdfObjectDictionary ){_fadfb ,_ccfdc :=_ebb .GetArray (_cbac .Get ("\u0057\u0069\u0064\u0074\u0068\u0073"));_caea ,_fecf :=_ebb .GetIntVal (_cbac .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r")); _gebbg ,_gacbe :=_ebb .GetIntVal (_cbac .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));if _ccfdc &&_fecf &&_gacbe {_daee :=_fadfb .Len ();if _daee !=_gebbg -_caea +1{_eg .Log .Debug ("\u0055\u006e\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0057\u0069\u0064\u0074\u0068\u0073\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u003a\u0020\u0025\u0076\u002c\u0020\u004c\u0061\u0073t\u0043\u0068\u0061\u0072\u003a\u0020\u0025\u0076",_daee ,_gebbg ); _dgdd :=_ebb .PdfObjectInteger (_caea +_daee -1);_cbac .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_dgdd );};};}; // ToPdfObject implements interface PdfModel. func (_afg *PdfAnnotationRedact )ToPdfObject ()_ebb .PdfObject {_afg .PdfAnnotation .ToPdfObject ();_cfbd :=_afg ._bdcd ;_fcfb :=_cfbd .PdfObject .(*_ebb .PdfObjectDictionary );_afg .PdfAnnotationMarkup .appendToPdfDictionary (_fcfb );_fcfb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074")); _fcfb .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_afg .QuadPoints );_fcfb .SetIfNotNil ("\u0049\u0043",_afg .IC );_fcfb .SetIfNotNil ("\u0052\u004f",_afg .RO );_fcfb .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_afg .OverlayText ); _fcfb .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_afg .Repeat );_fcfb .SetIfNotNil ("\u0044\u0041",_afg .DA );_fcfb .SetIfNotNil ("\u0051",_afg .Q );return _cfbd ;};var _eacf =false ; // NewPdfAction returns an initialized generic PDF action model. func NewPdfAction ()*PdfAction {_af :=&PdfAction {};_af ._abe =_ebb .MakeIndirectObject (_ebb .MakeDict ());return _af ;}; // PdfAnnotationHighlight represents Highlight annotations. // (Section 12.5.6.10). type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ebb .PdfObject ;}; // NewStandardPdfOutputIntent creates a new standard PdfOutputIntent. func NewStandardPdfOutputIntent (outputCondition ,outputConditionIdentifier ,registryName string ,destOutputProfile []byte ,colorComponents int )*PdfOutputIntent {return &PdfOutputIntent {Type :"\u004f\u0075\u0074p\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074",OutputCondition :outputCondition ,OutputConditionIdentifier :outputConditionIdentifier ,RegistryName :registryName ,DestOutputProfile :destOutputProfile ,ColorComponents :colorComponents ,_faeb :_ebb .MakeDict ()}; };func (_debd *pdfFontType0 )subsetRegistered ()error {_bcccg ,_fecbc :=_debd .DescendantFont ._ebcad .(*pdfCIDFontType2 );if !_fecbc {_eg .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",_debd .DescendantFont ); return nil ;};if _bcccg ==nil {return nil ;};if _bcccg ._fbbd ==nil {_eg .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 _debd ._bfdgc ==nil {_eg .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 ;};_gddfb ,_fecbc :=_ebb .GetStream (_bcccg ._fbbd .FontFile2 );if !_fecbc {_eg .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 _gf .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_bcbaf ,_gcffb :=_ebb .DecodeStream (_gddfb );if _gcffb !=nil {_eg .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_gcffb ); return _gcffb ;};_adge ,_gcffb :=_gbg .Parse (_ca .NewReader (_bcbaf ));if _gcffb !=nil {_eg .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 (_gddfb .Stream )); return _gcffb ;};var _cccbd []rune ;var _begg *_gbg .Font ;switch _fcgbb :=_debd ._bfdgc .(type ){case *_da .TrueTypeFontEncoder :_cccbd =_fcgbb .RegisteredRunes ();_begg ,_gcffb =_adge .SubsetKeepRunes (_cccbd );if _gcffb !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcffb ); return _gcffb ;};_fcgbb .SubsetRegistered ();case *_da .IdentityEncoder :_cccbd =_fcgbb .RegisteredRunes ();_baff :=make ([]_gbg .GlyphIndex ,len (_cccbd ));for _dfffcf ,_cafeb :=range _cccbd {_baff [_dfffcf ]=_gbg .GlyphIndex (_cafeb );};_begg ,_gcffb =_adge .SubsetKeepIndices (_baff ); if _gcffb !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcffb );return _gcffb ;};case _da .SimpleEncoder :_dcab :=_fcgbb .Charcodes ();for _ ,_caeffc :=range _dcab {_cdadd ,_bgbe :=_fcgbb .CharcodeToRune (_caeffc );if !_bgbe {_eg .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",_caeffc ); continue ;};_cccbd =append (_cccbd ,_cdadd );};default:return _bg .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",_debd ._bfdgc ); };var _efedd _ca .Buffer ;_gcffb =_begg .Write (&_efedd );if _gcffb !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcffb );return _gcffb ;};if _debd ._dcdd !=nil {_gegd :=make (map[_ebe .CharCode ]rune ,len (_cccbd ));for _ ,_edefd :=range _cccbd {_dgeab ,_gbae :=_debd ._bfdgc .RuneToCharcode (_edefd ); if !_gbae {continue ;};_gegd [_ebe .CharCode (_dgeab )]=_edefd ;};_debd ._dcdd =_ebe .NewToUnicodeCMap (_gegd );};_gddfb ,_gcffb =_ebb .MakeStream (_efedd .Bytes (),_ebb .NewFlateEncoder ());if _gcffb !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcffb ); return _gcffb ;};_gddfb .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ebb .MakeInteger (int64 (_efedd .Len ())));if _aage ,_ffce :=_ebb .GetStream (_bcccg ._fbbd .FontFile2 );_ffce {*_aage =*_gddfb ;}else {_bcccg ._fbbd .FontFile2 =_gddfb ;};_adgg :=_bdec (); if len (_debd ._fdacg )> 0{_debd ._fdacg =_gfed (_debd ._fdacg ,_adgg );};if len (_bcccg ._fdacg )> 0{_bcccg ._fdacg =_gfed (_bcccg ._fdacg ,_adgg );};if len (_debd ._efge )> 0{_debd ._efge =_gfed (_debd ._efge ,_adgg );};if _bcccg ._fbbd !=nil {_dggba ,_aaaed :=_ebb .GetName (_bcccg ._fbbd .FontName ); if _aaaed &&len (_dggba .String ())> 0{_edced :=_gfed (_dggba .String (),_adgg );_bcccg ._fbbd .FontName =_ebb .MakeName (_edced );};};return nil ;}; // GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject. func (_ecaf *PdfPage )GetContainingPdfObject ()_ebb .PdfObject {return _ecaf ._defbb }; // PdfActionSound represents a sound action. type PdfActionSound struct{*PdfAction ;Sound _ebb .PdfObject ;Volume _ebb .PdfObject ;Synchronous _ebb .PdfObject ;Repeat _ebb .PdfObject ;Mix _ebb .PdfObject ;};func (_gfge *PdfPage )setContainer (_gcbef *_ebb .PdfIndirectObject ){_gcbef .PdfObject =_gfge ._cdbfde ; _gfge ._defbb =_gcbef ;}; // NewPdfAnnotationTrapNet returns a new trapnet annotation. func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_gae :=NewPdfAnnotation ();_aaf :=&PdfAnnotationTrapNet {};_aaf .PdfAnnotation =_gae ;_gae .SetContext (_aaf );return _aaf ;}; // ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks. type ContentStreamWrapper interface{WrapContentStream (_dgdba *PdfPage )error ;}; // 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 (_dffef *PdfFont )CharcodesToUnicodeWithStats (charcodes []_da .CharCode )(_bdef []rune ,_cgggg ,_gfda int ){_cgdb ,_cgggg ,_gfda :=_dffef .CharcodesToStrings (charcodes );return []rune (_ee .Join (_cgdb ,"")),_cgggg ,_gfda ;}; // NewPdfAnnotationLine returns a new line annotation. func NewPdfAnnotationLine ()*PdfAnnotationLine {_ddg :=NewPdfAnnotation ();_fgbf :=&PdfAnnotationLine {};_fgbf .PdfAnnotation =_ddg ;_fgbf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ddg .SetContext (_fgbf );return _fgbf ;}; // NewOutline returns a new outline instance. func NewOutline ()*Outline {return &Outline {}}; // Encoder returns the font's text encoder. func (_bbdc pdfCIDFontType2 )Encoder ()_da .TextEncoder {return _bbdc ._aacb }; // GetContainingPdfObject returns the container of the image object (indirect object). func (_egba *XObjectImage )GetContainingPdfObject ()_ebb .PdfObject {return _egba ._fbeec }; // NewPdfActionTrans returns a new "trans" action. func NewPdfActionTrans ()*PdfActionTrans {_fg :=NewPdfAction ();_cad :=&PdfActionTrans {};_cad .PdfAction =_fg ;_fg .SetContext (_cad );return _cad ;}; // DecodeArray returns the range of color component values in DeviceCMYK colorspace. func (_bcca *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};func _adaaf (_gfcdd *_ebb .PdfObjectDictionary )(*PdfShadingType1 ,error ){_bbddf :=PdfShadingType1 {};if _cffaf :=_gfcdd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e"); _cffaf !=nil {_cffaf =_ebb .TraceToDirectObject (_cffaf );_cecff ,_gfgfd :=_cffaf .(*_ebb .PdfObjectArray );if !_gfgfd {_eg .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",_cffaf ); return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bbddf .Domain =_cecff ;};if _gceea :=_gfcdd .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_gceea !=nil {_gceea =_ebb .TraceToDirectObject (_gceea ); _gecb ,_ggfca :=_gceea .(*_ebb .PdfObjectArray );if !_ggfca {_eg .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",_gceea );return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072"); };_bbddf .Matrix =_gecb ;};_gfad :=_gfcdd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _gfad ==nil {_eg .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 ;};_bbddf .Function =[]PdfFunction {};if _cebfa ,_decf :=_gfad .(*_ebb .PdfObjectArray );_decf {for _ ,_bafgc :=range _cebfa .Elements (){_bagf ,_afbfg :=_aagg (_bafgc );if _afbfg !=nil {_eg .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",_afbfg ); return nil ,_afbfg ;};_bbddf .Function =append (_bbddf .Function ,_bagf );};}else {_ecgge ,_affeaf :=_aagg (_gfad );if _affeaf !=nil {_eg .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",_affeaf ); return nil ,_affeaf ;};_bbddf .Function =append (_bbddf .Function ,_ecgge );};return &_bbddf ,nil ;};func _bfegc (_bbccg *PdfPage ){_bgggg :=_ce .GetLicenseKey ();if _bgggg !=nil &&_bgggg .IsLicensed (){return ;};_abcag :=_ebb .PdfObjectName ("\u0055\u0046\u0031"); if !_bbccg .Resources .HasFontByName (_abcag ){_bbccg .Resources .SetFontByName (_abcag ,DefaultFont ().ToPdfObject ());};var _bgcfg []string ;_bgcfg =append (_bgcfg ,"\u0071");_bgcfg =append (_bgcfg ,"\u0042\u0054");_bgcfg =append (_bgcfg ,_bg .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_abcag .String ())); _bgcfg =append (_bgcfg ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");_bgcfg =append (_bgcfg ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_agae :="\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"; _bgcfg =append (_bgcfg ,_bg .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_agae ));_bgcfg =append (_bgcfg ,"\u0045\u0054");_bgcfg =append (_bgcfg ,"\u0051");_bedbe :=_ee .Join (_bgcfg ,"\u000a");_bbccg .AddContentStreamByString (_bedbe );_bbccg .ToPdfObject (); };func _efad (_cdfg _ebb .PdfObject )(*PdfColorspaceLab ,error ){_aabga :=NewPdfColorspaceLab ();if _acdcc ,_afgd :=_cdfg .(*_ebb .PdfIndirectObject );_afgd {_aabga ._bdga =_acdcc ;};_cdfg =_ebb .TraceToDirectObject (_cdfg );_fcdb ,_acff :=_cdfg .(*_ebb .PdfObjectArray ); if !_acff {return nil ,_bg .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fcdb .Len ()!=2{return nil ,_bg .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e"); };_cdfg =_ebb .TraceToDirectObject (_fcdb .Get (0));_badab ,_acff :=_cdfg .(*_ebb .PdfObjectName );if !_acff {return nil ,_bg .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 *_badab !="\u004c\u0061\u0062"{return nil ,_bg .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_cdfg =_ebb .TraceToDirectObject (_fcdb .Get (1));_gacfb ,_acff :=_cdfg .(*_ebb .PdfObjectDictionary ); if !_acff {return nil ,_bg .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");}; _cdfg =_gacfb .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_cdfg =_ebb .TraceToDirectObject (_cdfg );_gcef ,_acff :=_cdfg .(*_ebb .PdfObjectArray );if !_acff {return nil ,_bg .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074"); };if _gcef .Len ()!=3{return nil ,_bg .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");};_edbg ,_agbg :=_gcef .GetAsFloat64Slice (); if _agbg !=nil {return nil ,_agbg ;};_aabga .WhitePoint =_edbg ;_cdfg =_gacfb .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _cdfg !=nil {_cdfg =_ebb .TraceToDirectObject (_cdfg );_dfcd ,_ggcd :=_cdfg .(*_ebb .PdfObjectArray ); if !_ggcd {return nil ,_bg .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");};if _dfcd .Len ()!=3{return nil ,_bg .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"); };_bfga ,_gdag :=_dfcd .GetAsFloat64Slice ();if _gdag !=nil {return nil ,_gdag ;};_aabga .BlackPoint =_bfga ;};_cdfg =_gacfb .Get ("\u0052\u0061\u006eg\u0065");if _cdfg !=nil {_cdfg =_ebb .TraceToDirectObject (_cdfg );_agaa ,_bgeb :=_cdfg .(*_ebb .PdfObjectArray ); if !_bgeb {_eg .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");return nil ,_bg .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _agaa .Len ()!=4{_eg .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072"); return nil ,_bg .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_ggcf ,_faadc :=_agaa .GetAsFloat64Slice ();if _faadc !=nil {return nil ,_faadc ;};_aabga .Range =_ggcf ;};return _aabga ,nil ;}; // NewXObjectFormFromStream builds the Form XObject from a stream object. // TODO: Should this be exposed? Consider different access points. func NewXObjectFormFromStream (stream *_ebb .PdfObjectStream )(*XObjectForm ,error ){_ceggb :=&XObjectForm {};_ceggb ._gebcd =stream ;_cdbcb :=*(stream .PdfObjectDictionary );_bfcgc ,_acggg :=_ebb .NewEncoderFromStream (stream );if _acggg !=nil {return nil ,_acggg ; };_ceggb .Filter =_bfcgc ;if _eeeaad :=_cdbcb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_eeeaad !=nil {_dagcd ,_daddd :=_eeeaad .(*_ebb .PdfObjectName );if !_daddd {return nil ,_gf .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };if *_dagcd !="\u0046\u006f\u0072\u006d"{_eg .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_gf .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065"); };};if _dddf :=_cdbcb .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_dddf !=nil {_ceggb .FormType =_dddf ;};if _fgecg :=_cdbcb .Get ("\u0042\u0042\u006f\u0078");_fgecg !=nil {_ceggb .BBox =_fgecg ;};if _ccfcff :=_cdbcb .Get ("\u004d\u0061\u0074\u0072\u0069\u0078"); _ccfcff !=nil {_ceggb .Matrix =_ccfcff ;};if _fdcff :=_cdbcb .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_fdcff !=nil {_fdcff =_ebb .TraceToDirectObject (_fdcff );_cafee ,_gbbfb :=_fdcff .(*_ebb .PdfObjectDictionary );if !_gbbfb {_eg .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 ,_ebb .ErrTypeError ;};_babec ,_fbdff :=NewPdfPageResourcesFromDict (_cafee );if _fbdff !=nil {_eg .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 ,_fbdff ;};_ceggb .Resources =_babec ;_eg .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_ceggb .Resources );};_ceggb .Group =_cdbcb .Get ("\u0047\u0072\u006fu\u0070"); _ceggb .Ref =_cdbcb .Get ("\u0052\u0065\u0066");_ceggb .MetaData =_cdbcb .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_ceggb .PieceInfo =_cdbcb .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_ceggb .LastModified =_cdbcb .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064"); _ceggb .StructParent =_cdbcb .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_ceggb .StructParents =_cdbcb .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_ceggb .OPI =_cdbcb .Get ("\u004f\u0050\u0049"); _ceggb .OC =_cdbcb .Get ("\u004f\u0043");_ceggb .Name =_cdbcb .Get ("\u004e\u0061\u006d\u0065");_ceggb .Stream =stream .Stream ;return _ceggb ,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 (_eadbg *LTV )EnableChain (chain []*_g .Certificate )error {return _eadbg .enable (nil ,chain ,"")}; // ToPdfObject returns colorspace in a PDF object format [name stream] func (_cdg *PdfColorspaceICCBased )ToPdfObject ()_ebb .PdfObject {_eabf :=&_ebb .PdfObjectArray {};_eabf .Append (_ebb .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _dacdc *_ebb .PdfObjectStream ;if _cdg ._dfff !=nil {_dacdc =_cdg ._dfff ; }else {_dacdc =&_ebb .PdfObjectStream {};};_fbfeb :=_ebb .MakeDict ();_fbfeb .Set ("\u004e",_ebb .MakeInteger (int64 (_cdg .N )));if _cdg .Alternate !=nil {_fbfeb .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_cdg .Alternate .ToPdfObject ());};if _cdg .Metadata !=nil {_fbfeb .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_cdg .Metadata ); };if _cdg .Range !=nil {var _fbfa []_ebb .PdfObject ;for _ ,_efadc :=range _cdg .Range {_fbfa =append (_fbfa ,_ebb .MakeFloat (_efadc ));};_fbfeb .Set ("\u0052\u0061\u006eg\u0065",_ebb .MakeArray (_fbfa ...));};_fbfeb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ebb .MakeInteger (int64 (len (_cdg .Data )))); _dacdc .Stream =_cdg .Data ;_dacdc .PdfObjectDictionary =_fbfeb ;_eabf .Append (_dacdc );if _cdg ._dagdd !=nil {_cdg ._dagdd .PdfObject =_eabf ;return _cdg ._dagdd ;};return _eabf ;}; // ToPdfObject returns a PDF object representation of the outline. func (_acccd *Outline )ToPdfObject ()_ebb .PdfObject {return _acccd .ToPdfOutline ().ToPdfObject ()}; // ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z). func (_cdfb *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_febae :=_abg .NewReader (img .getBase ());_gaegf :=_dg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_caecf :=_abg .NewWriter (_gaegf ); _faag :=_cbg .Pow (2,float64 (img .BitsPerComponent ))-1;_aea :=make ([]uint32 ,3);var (_dagd uint32 ;ANorm ,X ,Y ,Z ,_faga ,_aedb ,_gdgd float64 ;_dggdf error ;);for {_dagd ,_dggdf =_febae .ReadSample ();if _dggdf ==_ab .EOF {break ;}else if _dggdf !=nil {return img ,_dggdf ; };ANorm =float64 (_dagd )/_faag ;X =_cdfb .WhitePoint [0]*_cbg .Pow (ANorm ,_cdfb .Gamma );Y =_cdfb .WhitePoint [1]*_cbg .Pow (ANorm ,_cdfb .Gamma );Z =_cdfb .WhitePoint [2]*_cbg .Pow (ANorm ,_cdfb .Gamma );_faga =3.240479*X +-1.537150*Y +-0.498535*Z ; _aedb =-0.969256*X +1.875992*Y +0.041556*Z ;_gdgd =0.055648*X +-0.204043*Y +1.057311*Z ;_faga =_cbg .Min (_cbg .Max (_faga ,0),1.0);_aedb =_cbg .Min (_cbg .Max (_aedb ,0),1.0);_gdgd =_cbg .Min (_cbg .Max (_gdgd ,0),1.0);_aea [0]=uint32 (_faga *_faag ); _aea [1]=uint32 (_aedb *_faag );_aea [2]=uint32 (_gdgd *_faag );if _dggdf =_caecf .WriteSamples (_aea );_dggdf !=nil {return img ,_dggdf ;};};return _afacb (&_gaegf ),nil ;}; // FieldAppearanceGenerator generates appearance stream for a given field. type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_dagg *PdfAcroForm ,_accde *PdfField ,_cbga *PdfAnnotationWidget )(*_ebb .PdfObjectDictionary ,error );}; // PdfColorspaceCalGray represents CalGray color space. type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_bebfd *_ebb .PdfIndirectObject ;}; // 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 (_bggg *PdfFont )CharcodesToUnicode (charcodes []_da .CharCode )[]rune {_cbff ,_ ,_ :=_bggg .CharcodesToUnicodeWithStats (charcodes );return _cbff ;}; // SetContentStream sets the pattern cell's content stream. func (_ecabf *PdfTilingPattern )SetContentStream (content []byte ,encoder _ebb .StreamEncoder )error {_abfe ,_bffa :=_ecabf ._dcddc .(*_ebb .PdfObjectStream );if !_bffa {_eg .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",_ecabf ._dcddc ); return _ebb .ErrTypeError ;};if encoder ==nil {encoder =_ebb .NewRawEncoder ();};_bgegc :=_abfe .PdfObjectDictionary ;_gcfbd :=encoder .MakeStreamDict ();_bgegc .Merge (_gcfbd );_cddcf ,_agggg :=encoder .EncodeBytes (content );if _agggg !=nil {return _agggg ; };_bgegc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ebb .MakeInteger (int64 (len (_cddcf ))));_abfe .Stream =_cddcf ;return nil ;}; // ToPdfObject implements interface PdfModel. func (_cfb *PdfActionMovie )ToPdfObject ()_ebb .PdfObject {_cfb .PdfAction .ToPdfObject ();_fgc :=_cfb ._abe ;_gfc :=_fgc .PdfObject .(*_ebb .PdfObjectDictionary );_gfc .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeMovie )));_gfc .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_cfb .Annotation ); _gfc .SetIfNotNil ("\u0054",_cfb .T );_gfc .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_cfb .Operation );return _fgc ;}; // GetNumPages returns the number of pages in the document. func (_cggdf *PdfReader )GetNumPages ()(int ,error ){if _cggdf ._cafdf .GetCrypter ()!=nil &&!_cggdf ._cafdf .IsAuthenticated (){return 0,_bg .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 (_cggdf ._faebb ),nil ;}; // IsTerminal returns true for terminal fields, false otherwise. // Terminal fields are fields whose descendants are only widget annotations. func (_bccac *PdfField )IsTerminal ()bool {return len (_bccac .Kids )==0}; // ToGray returns a PdfColorDeviceGray color based on the current RGB color. func (_daeg *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_efca :=0.3*_daeg .R ()+0.59*_daeg .G ()+0.11*_daeg .B ();_efca =_cbg .Min (_cbg .Max (_efca ,0.0),1.0);return NewPdfColorDeviceGray (_efca );}; // NewReaderOpts generates a default `ReaderOpts` instance. func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }}; // 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 (_dfba *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_adcfg ,_dcca :=_ebb .GetNumbersAsFloat (objects ); if _dcca !=nil {return nil ,_dcca ;};return _dfba .ColorFromFloats (_adcfg );};func (_agea *PdfWriter )mapObjectStreams (_eagf bool )(map[_ebb .PdfObject ]bool ,bool ){_cfgec :=make (map[_ebb .PdfObject ]bool );for _ ,_fbcgg :=range _agea ._ebdgg {if _ebfacf ,_efece :=_fbcgg .(*_ebb .PdfObjectStreams ); _efece {_eagf =true ;for _ ,_eeab :=range _ebfacf .Elements (){_cfgec [_eeab ]=true ;if _adgaf ,_geeed :=_eeab .(*_ebb .PdfIndirectObject );_geeed {_cfgec [_adgaf .PdfObject ]=true ;};};};};return _cfgec ,_eagf ;}; // NewPdfActionGoTo returns a new "go to" action. func NewPdfActionGoTo ()*PdfActionGoTo {_bb :=NewPdfAction ();_acb :=&PdfActionGoTo {};_acb .PdfAction =_bb ;_bb .SetContext (_acb );return _acb ;}; // 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 _ab .ReadSeeker )(*PdfFont ,error ){const _fdbc =_da .CharCode (32);const _dcad =_da .CharCode (255);_gcfb ,_fcfed :=_ef .ReadAll (r );if _fcfed !=nil {_eg .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",_fcfed ); return nil ,_fcfed ;};_cfbdd ,_fcfed :=_bad .TtfParse (_ca .NewReader (_gcfb ));if _fcfed !=nil {_eg .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",_fcfed ); return nil ,_fcfed ;};_fcfgg :=&pdfFontSimple {_cdff :make (map[_da .CharCode ]float64 ),fontCommon :fontCommon {_dfbf :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_fcfgg ._ebcb =_da .NewWinAnsiEncoder ();_fcfgg ._fdacg =_cfbdd .PostScriptName ; _fcfgg .FirstChar =_ebb .MakeInteger (int64 (_fdbc ));_fcfgg .LastChar =_ebb .MakeInteger (int64 (_dcad ));_daaad :=1000.0/float64 (_cfbdd .UnitsPerEm );if len (_cfbdd .Widths )<=0{return nil ,_gf .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"); };_aaef :=_daaad *float64 (_cfbdd .Widths [0]);_dgfb :=make ([]float64 ,0,_dcad -_fdbc +1);for _gcbc :=_fdbc ;_gcbc <=_dcad ;_gcbc ++{_dcfed ,_gacea :=_fcfgg .Encoder ().CharcodeToRune (_gcbc );if !_gacea {_eg .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_gcbc ); _dgfb =append (_dgfb ,_aaef );continue ;};_cfbc ,_ggcfc :=_cfbdd .Chars [_dcfed ];if !_ggcfc {_eg .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_dgfb =append (_dgfb ,_aaef );continue ; };_adaed :=_daaad *float64 (_cfbdd .Widths [_cfbc ]);_dgfb =append (_dgfb ,_adaed );};_fcfgg .Widths =_ebb .MakeIndirectObject (_ebb .MakeArrayFromFloats (_dgfb ));if len (_dgfb )< int (_dcad -_fdbc +1){_eg .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 (_dgfb ),255-32+1); return nil ,_ebb .ErrRangeError ;};for _ffef :=_fdbc ;_ffef <=_dcad ;_ffef ++{_fcfgg ._cdff [_ffef ]=_dgfb [_ffef -_fdbc ];};_fcfgg .Encoding =_ebb .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_efcdg :=&PdfFontDescriptor {}; _efcdg .FontName =_ebb .MakeName (_cfbdd .PostScriptName );_efcdg .Ascent =_ebb .MakeFloat (_daaad *float64 (_cfbdd .TypoAscender ));_efcdg .Descent =_ebb .MakeFloat (_daaad *float64 (_cfbdd .TypoDescender ));_efcdg .CapHeight =_ebb .MakeFloat (_daaad *float64 (_cfbdd .CapHeight )); _efcdg .FontBBox =_ebb .MakeArrayFromFloats ([]float64 {_daaad *float64 (_cfbdd .Xmin ),_daaad *float64 (_cfbdd .Ymin ),_daaad *float64 (_cfbdd .Xmax ),_daaad *float64 (_cfbdd .Ymax )});_efcdg .ItalicAngle =_ebb .MakeFloat (_cfbdd .ItalicAngle );_efcdg .MissingWidth =_ebb .MakeFloat (_daaad *float64 (_cfbdd .Widths [0])); _egbg ,_fcfed :=_ebb .MakeStream (_gcfb ,_ebb .NewFlateEncoder ());if _fcfed !=nil {_eg .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",_fcfed ); return nil ,_fcfed ;};_egbg .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ebb .MakeInteger (int64 (len (_gcfb ))));_efcdg .FontFile2 =_egbg ;if _cfbdd .Bold {_efcdg .StemV =_ebb .MakeInteger (120);}else {_efcdg .StemV =_ebb .MakeInteger (70); };_bdde :=_cbfd ;if _cfbdd .IsFixedPitch {_bdde |=_gfega ;};if _cfbdd .ItalicAngle !=0{_bdde |=_ccgbe ;};_efcdg .Flags =_ebb .MakeInteger (int64 (_bdde ));_fcfgg ._fbbd =_efcdg ;_gfde :=&PdfFont {_ebcad :_fcfgg };return _gfde ,nil ;}; // NewOutlineItem returns a new outline item instance. func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };}; // SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern. func (_eabe *PdfPattern )SetContext (ctx PdfModel ){_eabe ._ffagg =ctx }; // ToPdfObject returns the PDF representation of the colorspace. func (_beac *PdfColorspaceSpecialSeparation )ToPdfObject ()_ebb .PdfObject {_fcda :=_ebb .MakeArray (_ebb .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_fcda .Append (_beac .ColorantName );_fcda .Append (_beac .AlternateSpace .ToPdfObject ()); _fcda .Append (_beac .TintTransform .ToPdfObject ());if _beac ._cded !=nil {_beac ._cded .PdfObject =_fcda ;return _beac ._cded ;};return _fcda ;}; // GetEncryptionMethod returns a descriptive information string about the encryption method used. func (_ccgdc *PdfReader )GetEncryptionMethod ()string {_cgcac :=_ccgdc ._cafdf .GetCrypter ();return _cgcac .String ();};func (_cfebb *PdfSignature )extractChainFromPKCS7 ()([]*_g .Certificate ,error ){_ggebd ,_cfca :=_gb .Parse (_cfebb .Contents .Bytes ()); if _cfca !=nil {return nil ,_cfca ;};return _ggebd .Certificates ,nil ;}; // 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 (_aabcbd *PdfFont )GetCharMetrics (code _da .CharCode )(CharMetrics ,bool ){var _baaedf _bad .CharMetrics ;switch _egcca :=_aabcbd ._ebcad .(type ){case *pdfFontSimple :if _cgaca ,_eafc :=_egcca .GetCharMetrics (code );_eafc {return _cgaca ,_eafc ; };case *pdfFontType0 :if _gbfc ,_edcb :=_egcca .GetCharMetrics (code );_edcb {return _gbfc ,_edcb ;};case *pdfCIDFontType0 :if _abgda ,_dafa :=_egcca .GetCharMetrics (code );_dafa {return _abgda ,_dafa ;};case *pdfCIDFontType2 :if _addbb ,_ebdg :=_egcca .GetCharMetrics (code ); _ebdg {return _addbb ,_ebdg ;};case *pdfFontType3 :if _agceaf ,_aaeg :=_egcca .GetCharMetrics (code );_aaeg {return _agceaf ,_aaeg ;};default:_eg .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",_aabcbd ._ebcad ); return _baaedf ,false ;};if _cedc ,_ccda :=_aabcbd .GetFontDescriptor ();_ccda ==nil &&_cedc !=nil {return _bad .CharMetrics {Wx :_cedc ._gbfgb },true ;};_eg .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",_aabcbd ); return _baaedf ,false ;};func (_dgc *PdfReader )newPdfActionRenditionFromDict (_dgb *_ebb .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_dgb .Get ("\u0052"),AN :_dgb .Get ("\u0041\u004e"),OP :_dgb .Get ("\u004f\u0050"),JS :_dgb .Get ("\u004a\u0053")},nil ; }; // GetContainingPdfObject implements interface PdfModel. func (_deefa *PdfSignature )GetContainingPdfObject ()_ebb .PdfObject {return _deefa ._ffbgc }; // SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field. func (_bfdfa *PdfField )SetContext (ctx PdfModel ){_bfdfa ._cada =ctx }; // ToPdfObject returns the PDF representation of the shading dictionary. func (_cbca *PdfShading )ToPdfObject ()_ebb .PdfObject {_gegb :=_cbca ._fbfae ;_afgba ,_baded :=_cbca .getShadingDict ();if _baded !=nil {_eg .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 _cbca .ShadingType !=nil {_afgba .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_cbca .ShadingType );};if _cbca .ColorSpace !=nil {_afgba .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_cbca .ColorSpace .ToPdfObject ()); };if _cbca .Background !=nil {_afgba .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_cbca .Background );};if _cbca .BBox !=nil {_afgba .Set ("\u0042\u0042\u006f\u0078",_cbca .BBox .ToPdfObject ());};if _cbca .AntiAlias !=nil {_afgba .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_cbca .AntiAlias ); };return _gegb ;};func _ddacd (_cefgb _ebb .PdfObject ,_bddde bool )(*PdfFont ,error ){_gbcb ,_bdabe ,_dbdb :=_efec (_cefgb );if _gbcb !=nil {_bdgae (_gbcb );};if _dbdb !=nil {if _dbdb ==ErrType1CFontNotSupported {_eefe ,_fbeg :=_bcdgc (_gbcb ,_bdabe ,nil ); if _fbeg !=nil {_eg .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",_bdabe ,_fbeg ); return nil ,_dbdb ;};return &PdfFont {_ebcad :_eefe },_dbdb ;};return nil ,_dbdb ;};_gccg :=&PdfFont {};switch _bdabe ._dfbf {case "\u0054\u0079\u0070e\u0030":if !_bddde {_eg .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",_bdabe ); return nil ,_gf .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_eage ,_dbfc :=_aggb (_gbcb ,_bdabe );if _dbfc !=nil {_eg .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",_bdabe ,_dbfc ); return nil ,_dbfc ;};_gccg ._ebcad =_eage ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _ceffc *pdfFontSimple ;_cgaeb ,_cgeb :=_bad .NewStdFontByName (_bad .StdFontName (_bdabe ._fdacg )); if _cgeb {_bbdd :=_fcgbc (_cgaeb );_gccg ._ebcad =&_bbdd ;_bebee :=_ebb .TraceToDirectObject (_bbdd .ToPdfObject ());_faaf ,_defag ,_bbdg :=_efec (_bebee );if _bbdg !=nil {_eg .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",_bdabe ,_bbdd ); return nil ,_bbdg ;};for _ ,_dfca :=range _gbcb .Keys (){_faaf .Set (_dfca ,_gbcb .Get (_dfca ));};_ceffc ,_bbdg =_bcdgc (_faaf ,_defag ,_bbdd ._dacee );if _bbdg !=nil {_eg .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",_bdabe ,_bbdd ); return nil ,_bbdg ;};_ceffc ._cdff =_bbdd ._cdff ;_ceffc ._ddgd =_bbdd ._ddgd ;if _ceffc ._adbd ==nil {_ceffc ._adbd =_bbdd ._adbd ;};}else {_ceffc ,_dbdb =_bcdgc (_gbcb ,_bdabe ,nil );if _dbdb !=nil {_eg .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",_bdabe ,_dbdb ); return nil ,_dbdb ;};};_dbdb =_ceffc .addEncoding ();if _dbdb !=nil {return nil ,_dbdb ;};if _cgeb {_ceffc .updateStandard14Font ();};if _cgeb &&_ceffc ._ebcb ==nil &&_ceffc ._dacee ==nil {_eg .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_ceffc ); _eg .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_cgaeb );};if len (_ceffc ._cdff )==0{_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_ceffc );};_gccg ._ebcad =_ceffc ; case "\u0054\u0079\u0070e\u0033":_bgfb ,_dbdba :=_febaee (_gbcb ,_bdabe );if _dbdba !=nil {_eg .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",_dbdba ); return nil ,_dbdba ;};_gccg ._ebcad =_bgfb ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_agcbe ,_afgg :=_fagea (_gbcb ,_bdabe );if _afgg !=nil {_eg .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",_afgg ); return nil ,_afgg ;};_gccg ._ebcad =_agcbe ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_eabc ,_bbeag :=_fgdad (_gbcb ,_bdabe );if _bbeag !=nil {_eg .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",_bdabe ,_bbeag ); return nil ,_bbeag ;};_gccg ._ebcad =_eabc ;default:_eg .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",_bdabe ); return nil ,_bg .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",_bdabe );};return _gccg ,nil ;}; // PdfShadingType6 is a Coons patch mesh. type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_ebb .PdfObjectInteger ;BitsPerComponent *_ebb .PdfObjectInteger ;BitsPerFlag *_ebb .PdfObjectInteger ;Decode *_ebb .PdfObjectArray ;Function []PdfFunction ;};func (_feeae *PdfWriter )writeAcroFormFields ()error {if _feeae ._dbea ==nil {return nil ; };_eg .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_cbece :=_feeae ._dbea .ToPdfObject ();_eg .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_cbece ); _feeae ._dffegd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_cbece );_bbgeg :=_feeae .addObjects (_cbece );if _bbgeg !=nil {return _bbgeg ;};return nil ;};func _bfebg (_dgba _ebb .PdfObject )(string ,error ){_dgba =_ebb .TraceToDirectObject (_dgba ); switch _gdeab :=_dgba .(type ){case *_ebb .PdfObjectString :return _gdeab .Str (),nil ;case *_ebb .PdfObjectStream :_cbegf ,_eggde :=_ebb .DecodeStream (_gdeab );if _eggde !=nil {return "",_eggde ;};return string (_cbegf ),nil ;};return "",_bg .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",_dgba ); }; // AddImageResource adds an image to the XObject resources. func (_dbgb *PdfPage )AddImageResource (name _ebb .PdfObjectName ,ximg *XObjectImage )error {var _fdfae *_ebb .PdfObjectDictionary ;if _dbgb .Resources .XObject ==nil {_fdfae =_ebb .MakeDict ();_dbgb .Resources .XObject =_fdfae ;}else {var _dcdffe bool ; _fdfae ,_dcdffe =(_dbgb .Resources .XObject ).(*_ebb .PdfObjectDictionary );if !_dcdffe {return _gf .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_fdfae .Set (name ,ximg .ToPdfObject ()); return nil ;}; // PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes. type PdfFieldChoice struct{*PdfField ;Opt *_ebb .PdfObjectArray ;TI *_ebb .PdfObjectInteger ;I *_ebb .PdfObjectArray ;};func _aafe (_ebafg _ebb .PdfObject )(*fontFile ,error ){_eg .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",_ebafg ); _cged :=&fontFile {};_ebafg =_ebb .TraceToDirectObject (_ebafg );_bdaaa ,_aeabc :=_ebafg .(*_ebb .PdfObjectStream );if !_aeabc {_eg .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",_ebafg ); return nil ,_ebb .ErrTypeError ;};_edcfg :=_bdaaa .PdfObjectDictionary ;_gcded ,_fcdfb :=_ebb .DecodeStream (_bdaaa );if _fcdfb !=nil {return nil ,_fcdfb ;};_bfcf ,_aeabc :=_ebb .GetNameVal (_edcfg .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_aeabc {_cged ._badbf =_bfcf ; if _bfcf =="\u0054\u0079\u0070\u0065\u0031\u0043"{_eg .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 ;};};_acgfc ,_ :=_ebb .GetIntVal (_edcfg .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_accf ,_ :=_ebb .GetIntVal (_edcfg .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _acgfc > len (_gcded ){_acgfc =len (_gcded ); };if _acgfc +_accf > len (_gcded ){_accf =len (_gcded )-_acgfc ;};_aggcb :=_gcded [:_acgfc ];var _bebff []byte ;if _accf > 0{_bebff =_gcded [_acgfc :_acgfc +_accf ];};if _acgfc > 0&&_accf > 0{_efgac :=_cged .loadFromSegments (_aggcb ,_bebff );if _efgac !=nil {return nil ,_efgac ; };};return _cged ,nil ;};func (_fcgbf PdfFont )actualFont ()pdfFont {if _fcgbf ._ebcad ==nil {_eg .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",_fcgbf ); };return _fcgbf ._ebcad ;}; // PdfAnnotationWidget represents Widget annotations. // Note: Widget annotations are used to display form fields. // (Section 12.5.6.19). type PdfAnnotationWidget struct{*PdfAnnotation ;H _ebb .PdfObject ;MK _ebb .PdfObject ;A _ebb .PdfObject ;AA _ebb .PdfObject ;BS _ebb .PdfObject ;Parent _ebb .PdfObject ;_gce *PdfField ;_gdga bool ;}; // GetXObjectFormByName returns the XObjectForm with the specified name from the // page resources, if it exists. func (_eefb *PdfPageResources )GetXObjectFormByName (keyName _ebb .PdfObjectName )(*XObjectForm ,error ){_egfae ,_fcbbe :=_eefb .GetXObjectByName (keyName );if _egfae ==nil {return nil ,nil ;};if _fcbbe !=XObjectTypeForm {return nil ,_gf .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d"); };_bdbab ,_cadaag :=NewXObjectFormFromStream (_egfae );if _cadaag !=nil {return nil ,_cadaag ;};return _bdbab ,nil ;};func _egcdd (_ccfa *_ebb .PdfObjectDictionary )(*PdfFieldChoice ,error ){_defae :=&PdfFieldChoice {};_defae .Opt ,_ =_ebb .GetArray (_ccfa .Get ("\u004f\u0070\u0074")); _defae .TI ,_ =_ebb .GetInt (_ccfa .Get ("\u0054\u0049"));_defae .I ,_ =_ebb .GetArray (_ccfa .Get ("\u0049"));return _defae ,nil ;}; // ToPdfObject returns colorspace in a PDF object format [name dictionary] func (_cagf *PdfColorspaceCalRGB )ToPdfObject ()_ebb .PdfObject {_ecabb :=&_ebb .PdfObjectArray {};_ecabb .Append (_ebb .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_cgce :=_ebb .MakeDict ();if _cagf .WhitePoint !=nil {_ebfd :=_ebb .MakeArray (_ebb .MakeFloat (_cagf .WhitePoint [0]),_ebb .MakeFloat (_cagf .WhitePoint [1]),_ebb .MakeFloat (_cagf .WhitePoint [2])); _cgce .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_ebfd );}else {_eg .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 _cagf .BlackPoint !=nil {_ggadf :=_ebb .MakeArray (_ebb .MakeFloat (_cagf .BlackPoint [0]),_ebb .MakeFloat (_cagf .BlackPoint [1]),_ebb .MakeFloat (_cagf .BlackPoint [2]));_cgce .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ggadf ); };if _cagf .Gamma !=nil {_fafd :=_ebb .MakeArray (_ebb .MakeFloat (_cagf .Gamma [0]),_ebb .MakeFloat (_cagf .Gamma [1]),_ebb .MakeFloat (_cagf .Gamma [2]));_cgce .Set ("\u0047\u0061\u006dm\u0061",_fafd );};if _cagf .Matrix !=nil {_bedgb :=_ebb .MakeArray (_ebb .MakeFloat (_cagf .Matrix [0]),_ebb .MakeFloat (_cagf .Matrix [1]),_ebb .MakeFloat (_cagf .Matrix [2]),_ebb .MakeFloat (_cagf .Matrix [3]),_ebb .MakeFloat (_cagf .Matrix [4]),_ebb .MakeFloat (_cagf .Matrix [5]),_ebb .MakeFloat (_cagf .Matrix [6]),_ebb .MakeFloat (_cagf .Matrix [7]),_ebb .MakeFloat (_cagf .Matrix [8])); _cgce .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_bedgb );};_ecabb .Append (_cgce );if _cagf ._aeac !=nil {_cagf ._aeac .PdfObject =_ecabb ;return _cagf ._aeac ;};return _ecabb ;}; // ToPdfObject returns a stream object. func (_fafdfe *XObjectImage )ToPdfObject ()_ebb .PdfObject {_ggca :=_fafdfe ._fbeec ;_agbed :=_ggca .PdfObjectDictionary ;if _fafdfe .Filter !=nil {_agbed =_fafdfe .Filter .MakeStreamDict ();_ggca .PdfObjectDictionary =_agbed ;};_agbed .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074")); _agbed .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0049\u006d\u0061g\u0065"));_agbed .Set ("\u0057\u0069\u0064t\u0068",_ebb .MakeInteger (*(_fafdfe .Width )));_agbed .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ebb .MakeInteger (*(_fafdfe .Height ))); if _fafdfe .BitsPerComponent !=nil {_agbed .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ebb .MakeInteger (*(_fafdfe .BitsPerComponent )));};if _fafdfe .ColorSpace !=nil {_agbed .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_fafdfe .ColorSpace .ToPdfObject ()); };_agbed .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_fafdfe .Intent );_agbed .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_fafdfe .ImageMask );_agbed .SetIfNotNil ("\u004d\u0061\u0073\u006b",_fafdfe .Mask );_adcge :=_agbed .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ; if _fafdfe .Decode ==nil &&_adcge {_agbed .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _fafdfe .Decode !=nil {_agbed .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_fafdfe .Decode );};_agbed .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_fafdfe .Interpolate ); _agbed .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_fafdfe .Alternatives );_agbed .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_fafdfe .SMask );_agbed .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_fafdfe .SMaskInData ); _agbed .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_fafdfe .Matte );_agbed .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fafdfe .Name );_agbed .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_fafdfe .StructParent );_agbed .SetIfNotNil ("\u0049\u0044",_fafdfe .ID ); _agbed .SetIfNotNil ("\u004f\u0050\u0049",_fafdfe .OPI );_agbed .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_fafdfe .Metadata );_agbed .SetIfNotNil ("\u004f\u0043",_fafdfe .OC );_agbed .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ebb .MakeInteger (int64 (len (_fafdfe .Stream )))); _ggca .Stream =_fafdfe .Stream ;return _ggca ;}; // ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace. // Format: [/DeviceN names alternateSpace tintTransform] // or: [/DeviceN names alternateSpace tintTransform attributes] func (_ffga *PdfColorspaceDeviceN )ToPdfObject ()_ebb .PdfObject {_adbb :=_ebb .MakeArray (_ebb .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_adbb .Append (_ffga .ColorantNames );_adbb .Append (_ffga .AlternateSpace .ToPdfObject ());_adbb .Append (_ffga .TintTransform .ToPdfObject ()); if _ffga .Attributes !=nil {_adbb .Append (_ffga .Attributes .ToPdfObject ());};if _ffga ._gebb !=nil {_ffga ._gebb .PdfObject =_adbb ;return _ffga ._gebb ;};return _adbb ;}; // 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 (_egccc *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_fccbcc :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_eccee ,_dccgb :=_egccc .GetNumPages ();if _dccgb !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dccgb ); return nil ,_dccgb ;};for _efdaf :=1;_efdaf <=_eccee ;_efdaf ++{_ffab ,_abff :=_egccc .GetPage (_efdaf );if _abff !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_abff );return nil ,_abff ;};if opts .PageProcessCallback !=nil {_abff =opts .PageProcessCallback (_efdaf ,_ffab ); if _abff !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_abff );return nil ,_abff ;};}else if opts .PageCallback !=nil {opts .PageCallback (_efdaf ,_ffab );};_abff =_fccbcc .AddPage (_ffab );if _abff !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_abff ); return nil ,_abff ;};};_fccbcc ._efcge =_egccc .PdfVersion ();if !opts .SkipInfo {_agafg ,_bebcg :=_egccc .GetPdfInfo ();if _bebcg !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bebcg );}else {_fccbcc ._eadfd .PdfObject =_agafg .ToPdfObject (); };};if !opts .SkipMetadata {if _bbec :=_egccc ._fdgda .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_bbec !=nil {if _bebd :=_fccbcc .SetCatalogMetadata (_bbec );_bebd !=nil {return nil ,_bebd ;};};};if !opts .SkipAcroForm {_ceagd :=_fccbcc .SetForms (_egccc .AcroForm ); if _ceagd !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ceagd );return nil ,_ceagd ;};};if !opts .SkipOutlines {_fccbcc .AddOutlineTree (_egccc .GetOutlineTree ());};if !opts .SkipOCProperties {_gafgd ,_fdaac :=_egccc .GetOCProperties (); if _fdaac !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fdaac );}else {_fdaac =_fccbcc .SetOCProperties (_gafgd );if _fdaac !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fdaac );};};};if !opts .SkipPageLabels {_fgdc ,_cdaeeg :=_egccc .GetPageLabels (); if _cdaeeg !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cdaeeg );}else {_cdaeeg =_fccbcc .SetPageLabels (_fgdc );if _cdaeeg !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cdaeeg );};};};if !opts .SkipNamedDests {_dafed ,_eadba :=_egccc .GetNamedDestinations (); if _eadba !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eadba );}else {_eadba =_fccbcc .SetNamedDestinations (_dafed );if _eadba !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eadba );};};};if !opts .SkipNameDictionary {_fbdaa ,_cccc :=_egccc .GetNameDictionary (); if _cccc !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cccc );}else {_cccc =_fccbcc .SetNameDictionary (_fbdaa );if _cccc !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cccc );};};};if !opts .SkipRotation &&_egccc .Rotate !=nil {if _beeea :=_fccbcc .SetRotation (*_egccc .Rotate ); _beeea !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_beeea );};};return &_fccbcc ,nil ;}; // ButtonType represents the subtype of a button field, can be one of: // - Checkbox (ButtonTypeCheckbox) // - PushButton (ButtonTypePushButton) // - RadioButton (ButtonTypeRadioButton) type ButtonType int ;var _eefgb =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":{}}; var (_daddc _bf .Mutex ;_ecgdd ="";_gecg _f .Time ;_afedf ="";_fceef ="";_ccdff _f .Time ;_aaaae ="";_feaca ="";_fead ="";); // ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should // be numeric. func (_bgeaa *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=_bgeaa .GetNumComponents (){return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eaff ,_gca :=_ebb .GetNumbersAsFloat (objects ); if _gca !=nil {return nil ,_gca ;};return _bgeaa .ColorFromFloats (_eaff );}; // IsTiling specifies if the pattern is a tiling pattern. func (_cgdcg *PdfPattern )IsTiling ()bool {return _cgdcg .PatternType ==1}; // PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394). type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_dgaa _ebb .PdfObject ;}; // AddPage adds a page to the PDF file. The new page should be an indirect object. func (_acabe *PdfWriter )AddPage (page *PdfPage )error {const _efbcf ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_bfegc (page );_bebdg :=page .ToPdfObject ();_eg .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"); _eg .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_bebdg );_eafbf ,_eddcf :=_ebb .GetIndirect (_bebdg );if !_eddcf {return _gf .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"); };_eg .Log .Trace ("\u0025\u0073",_eafbf );_eg .Log .Trace ("\u0025\u0073",_eafbf .PdfObject );_fbefd ,_eddcf :=_ebb .GetDict (_eafbf .PdfObject );if !_eddcf {return _gf .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"); };_cgdd ,_eddcf :=_ebb .GetName (_fbefd .Get ("\u0054\u0079\u0070\u0065"));if !_eddcf {return _bg .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",_fbefd .Get ("\u0054\u0079\u0070\u0065")); };if _cgdd .String ()!="\u0050\u0061\u0067\u0065"{return _gf .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");};_degfe :=[]_ebb .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"}; _gebca ,_afffg :=_ebb .GetIndirect (_fbefd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_eg .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_fbefd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_afffg ); for _afffg {_eg .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gebca );_fcdfe ,_deea :=_ebb .GetDict (_gebca .PdfObject );if !_deea {return _gf .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074"); };for _ ,_accdb :=range _degfe {_eg .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_accdb );if _fbefd .Get (_accdb )!=nil {_eg .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ; };if _acccf :=_fcdfe .Get (_accdb );_acccf !=nil {_eg .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_accdb );_fbefd .Set (_accdb ,_acccf );};};_gebca ,_afffg =_ebb .GetIndirect (_fcdfe .Get ("\u0050\u0061\u0072\u0065\u006e\u0074")); _eg .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fcdfe .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_eg .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065"); _fbefd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_acabe ._dggbf );_eafbf .PdfObject =_fbefd ;_dgbbd ,_eddcf :=_ebb .GetDict (_acabe ._dggbf .PdfObject );if !_eddcf {return _gf .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"); };_cgdgd ,_eddcf :=_ebb .GetArray (_dgbbd .Get ("\u004b\u0069\u0064\u0073"));if !_eddcf {return _gf .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"); };_cgdgd .Append (_eafbf );_acabe ._afbdd [_fbefd ]=struct{}{};_cgaee ,_eddcf :=_ebb .GetInt (_dgbbd .Get ("\u0043\u006f\u0075n\u0074"));if !_eddcf {return _gf .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"); };*_cgaee =*_cgaee +1;if page ._ddab ==nil {_gadc :=_ce .Track (_acabe ._cfecg ,_efbcf );if _gadc !=nil {return _gadc ;};}else {_aadacd :=_ce .Track (page ._ddab ._decdd ,_efbcf );if _aadacd !=nil {return _aadacd ;};};_acabe .addObject (_eafbf );_bddab :=_acabe .addObjects (_fbefd ); if _bddab !=nil {return _bddab ;};return nil ;}; // ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object. func (_gadad *PdfFontDescriptor )ToPdfObject ()_ebb .PdfObject {_ddbeg :=_ebb .MakeDict ();if _gadad ._ccfcg ==nil {_gadad ._ccfcg =&_ebb .PdfIndirectObject {};};_gadad ._ccfcg .PdfObject =_ddbeg ;_ddbeg .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072")); if _gadad .FontName !=nil {_ddbeg .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_gadad .FontName );};if _gadad .FontFamily !=nil {_ddbeg .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_gadad .FontFamily );};if _gadad .FontStretch !=nil {_ddbeg .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_gadad .FontStretch ); };if _gadad .FontWeight !=nil {_ddbeg .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_gadad .FontWeight );};if _gadad .Flags !=nil {_ddbeg .Set ("\u0046\u006c\u0061g\u0073",_gadad .Flags );};if _gadad .FontBBox !=nil {_ddbeg .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_gadad .FontBBox ); };if _gadad .ItalicAngle !=nil {_ddbeg .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_gadad .ItalicAngle );};if _gadad .Ascent !=nil {_ddbeg .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_gadad .Ascent );};if _gadad .Descent !=nil {_ddbeg .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_gadad .Descent ); };if _gadad .Leading !=nil {_ddbeg .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_gadad .Leading );};if _gadad .CapHeight !=nil {_ddbeg .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_gadad .CapHeight );};if _gadad .XHeight !=nil {_ddbeg .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_gadad .XHeight ); };if _gadad .StemV !=nil {_ddbeg .Set ("\u0053\u0074\u0065m\u0056",_gadad .StemV );};if _gadad .StemH !=nil {_ddbeg .Set ("\u0053\u0074\u0065m\u0048",_gadad .StemH );};if _gadad .AvgWidth !=nil {_ddbeg .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_gadad .AvgWidth ); };if _gadad .MaxWidth !=nil {_ddbeg .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_gadad .MaxWidth );};if _gadad .MissingWidth !=nil {_ddbeg .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_gadad .MissingWidth );}; if _gadad .FontFile !=nil {_ddbeg .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_gadad .FontFile );};if _gadad .FontFile2 !=nil {_ddbeg .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_gadad .FontFile2 );};if _gadad .FontFile3 !=nil {_ddbeg .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_gadad .FontFile3 ); };if _gadad .CharSet !=nil {_ddbeg .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_gadad .CharSet );};if _gadad .Style !=nil {_ddbeg .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_gadad .FontName );};if _gadad .Lang !=nil {_ddbeg .Set ("\u004c\u0061\u006e\u0067",_gadad .Lang ); };if _gadad .FD !=nil {_ddbeg .Set ("\u0046\u0044",_gadad .FD );};if _gadad .CIDSet !=nil {_ddbeg .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_gadad .CIDSet );};return _gadad ._ccfcg ;}; // PdfAnnotationText represents Text annotations. // (Section 12.5.6.4 p. 402). type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _ebb .PdfObject ;Name _ebb .PdfObject ;State _ebb .PdfObject ;StateModel _ebb .PdfObject ;}; // ToPdfObject implements interface PdfModel. func (_ccaaf *PdfAnnotationText )ToPdfObject ()_ebb .PdfObject {_ccaaf .PdfAnnotation .ToPdfObject ();_afe :=_ccaaf ._bdcd ;_adba :=_afe .PdfObject .(*_ebb .PdfObjectDictionary );if _ccaaf .PdfAnnotationMarkup !=nil {_ccaaf .PdfAnnotationMarkup .appendToPdfDictionary (_adba ); };_adba .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0054\u0065\u0078\u0074"));_adba .SetIfNotNil ("\u004f\u0070\u0065\u006e",_ccaaf .Open );_adba .SetIfNotNil ("\u004e\u0061\u006d\u0065",_ccaaf .Name );_adba .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_ccaaf .State ); _adba .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_ccaaf .StateModel );return _afe ;}; // PdfFieldText represents a text field where user can enter text. type PdfFieldText struct{*PdfField ;DA *_ebb .PdfObjectString ;Q *_ebb .PdfObjectInteger ;DS *_ebb .PdfObjectString ;RV _ebb .PdfObject ;MaxLen *_ebb .PdfObjectInteger ;};func (_faadd *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b"; }; // SignatureHandlerDocMDPParams describe the specific parameters for the SignatureHandlerEx // These parameters describe how to check the difference between revisions. // Revisions of the document get from the PdfParser. type SignatureHandlerDocMDPParams struct{Parser *_ebb .PdfParser ;DiffPolicy _ac .DiffPolicy ;}; // GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder func (_ceeff *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_ebb .StreamEncoder ,error ){_befa ,_fdfe :=_ceeff ._dcddc .(*_ebb .PdfObjectStream );if !_fdfe {_eg .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",_ceeff ._dcddc ); return nil ,nil ,_ebb .ErrTypeError ;};_abcf ,_gdeed :=_ebb .DecodeStream (_befa );if _gdeed !=nil {_eg .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",_gdeed ); return nil ,nil ,_gdeed ;};_cgcgd ,_gdeed :=_ebb .NewEncoderFromStream (_befa );if _gdeed !=nil {_eg .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",_gdeed ); return nil ,nil ,_gdeed ;};return _abcf ,_cgcgd ,nil ;}; // Items returns all children outline items. func (_dbbb *OutlineItem )Items ()[]*OutlineItem {return _dbbb .Entries }; // ToPdfObject returns the PDF representation of the tiling pattern. func (_ccefa *PdfTilingPattern )ToPdfObject ()_ebb .PdfObject {_ccefa .PdfPattern .ToPdfObject ();_abbac :=_ccefa .getDict ();if _ccefa .PaintType !=nil {_abbac .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_ccefa .PaintType );};if _ccefa .TilingType !=nil {_abbac .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_ccefa .TilingType ); };if _ccefa .BBox !=nil {_abbac .Set ("\u0042\u0042\u006f\u0078",_ccefa .BBox .ToPdfObject ());};if _ccefa .XStep !=nil {_abbac .Set ("\u0058\u0053\u0074e\u0070",_ccefa .XStep );};if _ccefa .YStep !=nil {_abbac .Set ("\u0059\u0053\u0074e\u0070",_ccefa .YStep ); };if _ccefa .Resources !=nil {_abbac .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_ccefa .Resources .ToPdfObject ());};if _ccefa .Matrix !=nil {_abbac .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_ccefa .Matrix );};return _ccefa ._dcddc ;}; // ReaderToWriterOpts options used to generate a PdfWriter. type ReaderToWriterOpts struct{SkipAcroForm bool ;SkipInfo bool ;SkipNameDictionary bool ;SkipNamedDests bool ;SkipOCProperties bool ;SkipOutlines bool ;SkipPageLabels bool ;SkipRotation bool ;SkipMetadata bool ;PageProcessCallback PageProcessCallback ; // Deprecated: will be removed in v4. Use PageProcessCallback instead. PageCallback PageCallback ;};func (_cbee *PdfReader )newPdfAnnotationFromIndirectObject (_cca *_ebb .PdfIndirectObject )(*PdfAnnotation ,error ){_fcc ,_dad :=_cca .PdfObject .(*_ebb .PdfObjectDictionary );if !_dad {return nil ,_bg .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 :=_cbee ._abbaca .GetModelFromPrimitive (_fcc );model !=nil {_gdbd ,_bebb :=model .(*PdfAnnotation );if !_bebb {return nil ,_bg .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 _gdbd ,nil ;};_bgea :=&PdfAnnotation {};_bgea ._bdcd =_cca ;_cbee ._abbaca .Register (_fcc ,_bgea );if _cgf :=_fcc .Get ("\u0054\u0079\u0070\u0065");_cgf !=nil {_abc ,_dba :=_cgf .(*_ebb .PdfObjectName );if !_dba {_eg .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",_cgf ); }else {if *_abc !="\u0041\u006e\u006eo\u0074"{_eg .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",*_abc );};};};if _dgd :=_fcc .Get ("\u0052\u0065\u0063\u0074"); _dgd !=nil {_bgea .Rect =_dgd ;};if _fefa :=_fcc .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_fefa !=nil {_bgea .Contents =_fefa ;};if _dgbf :=_fcc .Get ("\u0050");_dgbf !=nil {_bgea .P =_dgbf ;};if _ddac :=_fcc .Get ("\u004e\u004d");_ddac !=nil {_bgea .NM =_ddac ; };if _gaa :=_fcc .Get ("\u004d");_gaa !=nil {_bgea .M =_gaa ;};if _beg :=_fcc .Get ("\u0046");_beg !=nil {_bgea .F =_beg ;};if _fgae :=_fcc .Get ("\u0041\u0050");_fgae !=nil {_bgea .AP =_fgae ;};if _fcf :=_fcc .Get ("\u0041\u0053");_fcf !=nil {_bgea .AS =_fcf ; };if _daa :=_fcc .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_daa !=nil {_bgea .Border =_daa ;};if _fcfd :=_fcc .Get ("\u0043");_fcfd !=nil {_bgea .C =_fcfd ;};if _agd :=_fcc .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074"); _agd !=nil {_bgea .StructParent =_agd ;};if _dea :=_fcc .Get ("\u004f\u0043");_dea !=nil {_bgea .OC =_dea ;};_fccb :=_fcc .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _fccb ==nil {_eg .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"); _bgea ._efd =nil ;return _bgea ,nil ;};_gbeg ,_aedg :=_fccb .(*_ebb .PdfObjectName );if !_aedg {_eg .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",_fccb ); return nil ,_bg .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",_fccb );};switch *_gbeg {case "\u0054\u0065\u0078\u0074":_ddgb ,_dgcc :=_cbee .newPdfAnnotationTextFromDict (_fcc ); if _dgcc !=nil {return nil ,_dgcc ;};_ddgb .PdfAnnotation =_bgea ;_bgea ._efd =_ddgb ;return _bgea ,nil ;case "\u004c\u0069\u006e\u006b":_adf ,_bdf :=_cbee .newPdfAnnotationLinkFromDict (_fcc );if _bdf !=nil {return nil ,_bdf ;};_adf .PdfAnnotation =_bgea ; _bgea ._efd =_adf ;return _bgea ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_abcc ,_dggd :=_cbee .newPdfAnnotationFreeTextFromDict (_fcc );if _dggd !=nil {return nil ,_dggd ;};_abcc .PdfAnnotation =_bgea ;_bgea ._efd =_abcc ;return _bgea ,nil ; case "\u004c\u0069\u006e\u0065":_fdefc ,_edf :=_cbee .newPdfAnnotationLineFromDict (_fcc );if _edf !=nil {return nil ,_edf ;};_fdefc .PdfAnnotation =_bgea ;_bgea ._efd =_fdefc ;_eg .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",_bgea ,_bgea ); _eg .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",_fdefc ,_fdefc );_eg .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",_fdefc .PdfAnnotationMarkup ,_fdefc .PdfAnnotationMarkup ); return _bgea ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_dbb ,_cbaa :=_cbee .newPdfAnnotationSquareFromDict (_fcc );if _cbaa !=nil {return nil ,_cbaa ;};_dbb .PdfAnnotation =_bgea ;_bgea ._efd =_dbb ;return _bgea ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_dadd ,_ccea :=_cbee .newPdfAnnotationCircleFromDict (_fcc ); if _ccea !=nil {return nil ,_ccea ;};_dadd .PdfAnnotation =_bgea ;_bgea ._efd =_dadd ;return _bgea ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_gdcdf ,_dff :=_cbee .newPdfAnnotationPolygonFromDict (_fcc );if _dff !=nil {return nil ,_dff ;};_gdcdf .PdfAnnotation =_bgea ; _bgea ._efd =_gdcdf ;return _bgea ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_gab ,_bcd :=_cbee .newPdfAnnotationPolyLineFromDict (_fcc );if _bcd !=nil {return nil ,_bcd ;};_gab .PdfAnnotation =_bgea ;_bgea ._efd =_gab ;return _bgea ,nil ; case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_bgd ,_fae :=_cbee .newPdfAnnotationHighlightFromDict (_fcc );if _fae !=nil {return nil ,_fae ;};_bgd .PdfAnnotation =_bgea ;_bgea ._efd =_bgd ;return _bgea ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_ddfa ,_abea :=_cbee .newPdfAnnotationUnderlineFromDict (_fcc ); if _abea !=nil {return nil ,_abea ;};_ddfa .PdfAnnotation =_bgea ;_bgea ._efd =_ddfa ;return _bgea ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_bdb ,_cfad :=_cbee .newPdfAnnotationSquigglyFromDict (_fcc );if _cfad !=nil {return nil ,_cfad ; };_bdb .PdfAnnotation =_bgea ;_bgea ._efd =_bdb ;return _bgea ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_afb ,_cfe :=_cbee .newPdfAnnotationStrikeOut (_fcc );if _cfe !=nil {return nil ,_cfe ;};_afb .PdfAnnotation =_bgea ;_bgea ._efd =_afb ; return _bgea ,nil ;case "\u0043\u0061\u0072e\u0074":_abgf ,_ceff :=_cbee .newPdfAnnotationCaretFromDict (_fcc );if _ceff !=nil {return nil ,_ceff ;};_abgf .PdfAnnotation =_bgea ;_bgea ._efd =_abgf ;return _bgea ,nil ;case "\u0053\u0074\u0061m\u0070":_dbad ,_ada :=_cbee .newPdfAnnotationStampFromDict (_fcc ); if _ada !=nil {return nil ,_ada ;};_dbad .PdfAnnotation =_bgea ;_bgea ._efd =_dbad ;return _bgea ,nil ;case "\u0049\u006e\u006b":_fba ,_gcf :=_cbee .newPdfAnnotationInkFromDict (_fcc );if _gcf !=nil {return nil ,_gcf ;};_fba .PdfAnnotation =_bgea ;_bgea ._efd =_fba ; return _bgea ,nil ;case "\u0050\u006f\u0070u\u0070":_aga ,_cbcc :=_cbee .newPdfAnnotationPopupFromDict (_fcc );if _cbcc !=nil {return nil ,_cbcc ;};_aga .PdfAnnotation =_bgea ;_bgea ._efd =_aga ;return _bgea ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_fag ,_abcg :=_cbee .newPdfAnnotationFileAttachmentFromDict (_fcc ); if _abcg !=nil {return nil ,_abcg ;};_fag .PdfAnnotation =_bgea ;_bgea ._efd =_fag ;return _bgea ,nil ;case "\u0053\u006f\u0075n\u0064":_ddgc ,_dbag :=_cbee .newPdfAnnotationSoundFromDict (_fcc );if _dbag !=nil {return nil ,_dbag ;};_ddgc .PdfAnnotation =_bgea ; _bgea ._efd =_ddgc ;return _bgea ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_ffg ,_dabc :=_cbee .newPdfAnnotationRichMediaFromDict (_fcc );if _dabc !=nil {return nil ,_dabc ;};_ffg .PdfAnnotation =_bgea ;_bgea ._efd =_ffg ;return _bgea ,nil ; case "\u004d\u006f\u0076i\u0065":_adb ,_afbe :=_cbee .newPdfAnnotationMovieFromDict (_fcc );if _afbe !=nil {return nil ,_afbe ;};_adb .PdfAnnotation =_bgea ;_bgea ._efd =_adb ;return _bgea ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_cece ,_cab :=_cbee .newPdfAnnotationScreenFromDict (_fcc ); if _cab !=nil {return nil ,_cab ;};_cece .PdfAnnotation =_bgea ;_bgea ._efd =_cece ;return _bgea ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_cafg ,_dbeb :=_cbee .newPdfAnnotationWidgetFromDict (_fcc );if _dbeb !=nil {return nil ,_dbeb ;};_cafg .PdfAnnotation =_bgea ; _bgea ._efd =_cafg ;return _bgea ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_eaee ,_faee :=_cbee .newPdfAnnotationPrinterMarkFromDict (_fcc );if _faee !=nil {return nil ,_faee ;};_eaee .PdfAnnotation =_bgea ;_bgea ._efd =_eaee ; return _bgea ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_gfac ,_bgg :=_cbee .newPdfAnnotationTrapNetFromDict (_fcc );if _bgg !=nil {return nil ,_bgg ;};_gfac .PdfAnnotation =_bgea ;_bgea ._efd =_gfac ;return _bgea ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_fdb ,_ccce :=_cbee .newPdfAnnotationWatermarkFromDict (_fcc ); if _ccce !=nil {return nil ,_ccce ;};_fdb .PdfAnnotation =_bgea ;_bgea ._efd =_fdb ;return _bgea ,nil ;case "\u0033\u0044":_fbfd ,_eaa :=_cbee .newPdfAnnotation3DFromDict (_fcc );if _eaa !=nil {return nil ,_eaa ;};_fbfd .PdfAnnotation =_bgea ;_bgea ._efd =_fbfd ; return _bgea ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_adag ,_gbaf :=_cbee .newPdfAnnotationProjectionFromDict (_fcc );if _gbaf !=nil {return nil ,_gbaf ;};_adag .PdfAnnotation =_bgea ;_bgea ._efd =_adag ;return _bgea ,nil ; case "\u0052\u0065\u0064\u0061\u0063\u0074":_abeac ,_cdbd :=_cbee .newPdfAnnotationRedactFromDict (_fcc );if _cdbd !=nil {return nil ,_cdbd ;};_abeac .PdfAnnotation =_bgea ;_bgea ._efd =_abeac ;return _bgea ,nil ;};_eg .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",*_gbeg ); return nil ,nil ;}; // DecodeArray returns the component range values for the Separation colorspace. func (_aeaf *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}}; // ToPdfObject returns the PDF representation of the VRI dictionary. func (_edcf *VRI )ToPdfObject ()*_ebb .PdfObjectDictionary {_dbcg :=_ebb .MakeDict ();_dbcg .SetIfNotNil (_ebb .PdfObjectName ("\u0043\u0065\u0072\u0074"),_agdbf (_edcf .Cert ));_dbcg .SetIfNotNil (_ebb .PdfObjectName ("\u004f\u0043\u0053\u0050"),_agdbf (_edcf .OCSP )); _dbcg .SetIfNotNil (_ebb .PdfObjectName ("\u0043\u0052\u004c"),_agdbf (_edcf .CRL ));_dbcg .SetIfNotNil ("\u0054\u0055",_edcf .TU );_dbcg .SetIfNotNil ("\u0054\u0053",_edcf .TS );return _dbcg ;};func (_bcef *PdfReader )newPdfAnnotationWidgetFromDict (_bgfc *_ebb .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_deac :=PdfAnnotationWidget {}; _deac .H =_bgfc .Get ("\u0048");_deac .MK =_bgfc .Get ("\u004d\u004b");_deac .A =_bgfc .Get ("\u0041");_deac .AA =_bgfc .Get ("\u0041\u0041");_deac .BS =_bgfc .Get ("\u0042\u0053");_deac .Parent =_bgfc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_deac ,nil ; }; // PdfAnnotationCaret represents Caret annotations. // (Section 12.5.6.11). type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _ebb .PdfObject ;Sy _ebb .PdfObject ;};func (_ggbef *PdfShading )getShadingDict ()(*_ebb .PdfObjectDictionary ,error ){_dddcg :=_ggbef ._fbfae ;if _cegfc ,_bedb :=_dddcg .(*_ebb .PdfIndirectObject ); _bedb {_gfdcf ,_cecd :=_cegfc .PdfObject .(*_ebb .PdfObjectDictionary );if !_cecd {return nil ,_ebb .ErrTypeError ;};return _gfdcf ,nil ;}else if _ggee ,_defee :=_dddcg .(*_ebb .PdfObjectStream );_defee {return _ggee .PdfObjectDictionary ,nil ;}else if _dcbcad ,_fefd :=_dddcg .(*_ebb .PdfObjectDictionary ); _fefd {return _dcbcad ,nil ;}else {_eg .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 ,_ebb .ErrTypeError ; };}; // String returns a string representation of PdfTransformParamsDocMDP. func (_egecf *PdfTransformParamsDocMDP )String ()string {return _bg .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_egecf .Type ,_egecf .P ,_egecf .V );}; // ReaderOpts defines options for creating PdfReader instances. type ReaderOpts struct{ // Password password of the PDF file encryption. // Default: empty (""). Password string ; // LazyLoad set if the PDF file would be loaded using lazy-loading mode. // Default: true. LazyLoad bool ; // ComplianceMode set if parsed PDF file should contain meta information for the verifiers of the compliance standards like PDF/A. ComplianceMode bool ;};func _gfcg (_abafc *_ebb .PdfObjectStream )(*PdfFunctionType0 ,error ){_cbebf :=&PdfFunctionType0 {};_cbebf ._afgcc =_abafc ;_gdaga :=_abafc .PdfObjectDictionary ;_geca ,_fdbbb :=_ebb .TraceToDirectObject (_gdaga .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ebb .PdfObjectArray ); if !_fdbbb {_eg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gf .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 _geca .Len ()< 0||_geca .Len ()%2!=0{_eg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gf .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065"); };_cbebf .NumInputs =_geca .Len ()/2;_bfacf ,_cgcbc :=_geca .ToFloat64Array ();if _cgcbc !=nil {return nil ,_cgcbc ;};_cbebf .Domain =_bfacf ;_geca ,_fdbbb =_ebb .TraceToDirectObject (_gdaga .Get ("\u0052\u0061\u006eg\u0065")).(*_ebb .PdfObjectArray ); if !_fdbbb {_eg .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");return nil ,_gf .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 _geca .Len ()< 0||_geca .Len ()%2!=0{return nil ,_gf .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_cbebf .NumOutputs =_geca .Len ()/2;_abada ,_cgcbc :=_geca .ToFloat64Array ();if _cgcbc !=nil {return nil ,_cgcbc ; };_cbebf .Range =_abada ;_geca ,_fdbbb =_ebb .TraceToDirectObject (_gdaga .Get ("\u0053\u0069\u007a\u0065")).(*_ebb .PdfObjectArray );if !_fdbbb {_eg .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064"); return nil ,_gf .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");};_dcae ,_cgcbc :=_geca .ToIntegerArray (); if _cgcbc !=nil {return nil ,_cgcbc ;};if len (_dcae )!=_cbebf .NumInputs {_eg .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 ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cbebf .Size =_dcae ;_efdbe ,_fdbbb :=_ebb .TraceToDirectObject (_gdaga .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_ebb .PdfObjectInteger ); if !_fdbbb {_eg .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 ,_gf .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 *_efdbe !=1&&*_efdbe !=2&&*_efdbe !=4&&*_efdbe !=8&&*_efdbe !=12&&*_efdbe !=16&&*_efdbe !=24&&*_efdbe !=32{_eg .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",*_efdbe ); return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cbebf .BitsPerSample =int (*_efdbe );_cbebf .Order =1;_bcgb ,_fdbbb :=_ebb .TraceToDirectObject (_gdaga .Get ("\u004f\u0072\u0064e\u0072")).(*_ebb .PdfObjectInteger ); if _fdbbb {if *_bcgb !=1&&*_bcgb !=3{_eg .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_bcgb );return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cbebf .Order =int (*_bcgb ); };_geca ,_fdbbb =_ebb .TraceToDirectObject (_gdaga .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ebb .PdfObjectArray );if _fdbbb {_aebb ,_bdac :=_geca .ToFloat64Array ();if _bdac !=nil {return nil ,_bdac ;};_cbebf .Encode =_aebb ;};_geca ,_fdbbb =_ebb .TraceToDirectObject (_gdaga .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_ebb .PdfObjectArray ); if _fdbbb {_cfcgaf ,_aaegc :=_geca .ToFloat64Array ();if _aaegc !=nil {return nil ,_aaegc ;};_cbebf .Decode =_cfcgaf ;};_fegad ,_cgcbc :=_ebb .DecodeStream (_abafc );if _cgcbc !=nil {return nil ,_cgcbc ;};_cbebf ._aeecg =_fegad ;return _cbebf ,nil ;}; // PdfColorCalGray represents a CalGray colorspace. type PdfColorCalGray float64 ;func (_gcfcd *PdfReader )newPdfSignatureFromIndirect (_bddba *_ebb .PdfIndirectObject )(*PdfSignature ,error ){_ecacg ,_cbgce :=_bddba .PdfObject .(*_ebb .PdfObjectDictionary );if !_cbgce {_eg .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 _acdgb ,_debff :=_gcfcd ._abbaca .GetModelFromPrimitive (_bddba ).(*PdfSignature );_debff {return _acdgb ,nil ;};_eggcbg :=&PdfSignature {};_eggcbg ._ffbgc =_bddba ;_eggcbg .Type ,_ =_ebb .GetName (_ecacg .Get ("\u0054\u0079\u0070\u0065")); _eggcbg .Filter ,_cbgce =_ebb .GetName (_ecacg .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_cbgce {_eg .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 ;};_eggcbg .SubFilter ,_ =_ebb .GetName (_ecacg .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_eggcbg .Contents ,_cbgce =_ebb .GetString (_ecacg .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_cbgce {_eg .Log .Error ("\u0045\u0052\u0052\u004f\u0052\u003a \u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006et\u0065\u006e\u0074\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067"); return nil ,ErrInvalidAttribute ;};if _cbdbb ,_cadgd :=_ebb .GetArray (_ecacg .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_cadgd {_eggcbg .Reference =_ebb .MakeArray ();for _ ,_egacg :=range _cbdbb .Elements (){_geead ,_eddc :=_ebb .GetDict (_egacg ); if !_eddc {_eg .Log .Error ("\u0045\u0052R\u004f\u0052\u003a\u0020R\u0065\u0066e\u0072\u0065\u006e\u0063\u0065\u0020\u0063\u006fn\u0074\u0065\u006e\u0074\u0073\u0020\u0069\u006e\u0076\u0061\u006c\u0069d\u0061\u0074\u0065\u0064");return nil ,ErrInvalidAttribute ; };_ffgd ,_bcfb :=_gcfcd .newPdfSignatureReferenceFromDict (_geead );if _bcfb !=nil {return nil ,_bcfb ;};_eggcbg .Reference .Append (_ffgd .ToPdfObject ());};};_eggcbg .Cert =_ecacg .Get ("\u0043\u0065\u0072\u0074");_eggcbg .ByteRange ,_ =_ebb .GetArray (_ecacg .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e")); _eggcbg .Changes ,_ =_ebb .GetArray (_ecacg .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_eggcbg .Name ,_ =_ebb .GetString (_ecacg .Get ("\u004e\u0061\u006d\u0065"));_eggcbg .M ,_ =_ebb .GetString (_ecacg .Get ("\u004d"));_eggcbg .Location ,_ =_ebb .GetString (_ecacg .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e")); _eggcbg .Reason ,_ =_ebb .GetString (_ecacg .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_eggcbg .ContactInfo ,_ =_ebb .GetString (_ecacg .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_eggcbg .R ,_ =_ebb .GetInt (_ecacg .Get ("\u0052")); _eggcbg .V ,_ =_ebb .GetInt (_ecacg .Get ("\u0056"));_eggcbg .PropBuild ,_ =_ebb .GetDict (_ecacg .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_eggcbg .PropAuthTime ,_ =_ebb .GetInt (_ecacg .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065")); _eggcbg .PropAuthType ,_ =_ebb .GetName (_ecacg .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_gcfcd ._abbaca .Register (_bddba ,_eggcbg );return _eggcbg ,nil ;};func (_gfaeb *DSS )addCerts (_aafcg [][]byte )([]*_ebb .PdfObjectStream ,error ){return _gfaeb .add (&_gfaeb .Certs ,_gfaeb ._aeag ,_aafcg ); }; // 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 (_ddgcd *PdfPageResources )GetFontByName (keyName _ebb .PdfObjectName )(_ebb .PdfObject ,bool ){if _ddgcd .Font ==nil {return nil ,false ;};_aebge ,_gefca :=_ebb .TraceToDirectObject (_ddgcd .Font ).(*_ebb .PdfObjectDictionary );if !_gefca {_eg .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",_ebb .TraceToDirectObject (_ddgcd .Font )); return nil ,false ;};if _gdgcb :=_aebge .Get (keyName );_gdgcb !=nil {return _gdgcb ,true ;};return nil ,false ;}; // NewPdfAnnotationPrinterMark returns a new printermark annotation. func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_dda :=NewPdfAnnotation ();_edd :=&PdfAnnotationPrinterMark {};_edd .PdfAnnotation =_dda ;_dda .SetContext (_edd );return _edd ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_daabe *PdfShadingType1 )ToPdfObject ()_ebb .PdfObject {_daabe .PdfShading .ToPdfObject ();_dgfbd ,_dcdea :=_daabe .getShadingDict ();if _dcdea !=nil {_eg .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 _daabe .Domain !=nil {_dgfbd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_daabe .Domain );};if _daabe .Matrix !=nil {_dgfbd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_daabe .Matrix );};if _daabe .Function !=nil {if len (_daabe .Function )==1{_dgfbd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_daabe .Function [0].ToPdfObject ()); }else {_acfa :=_ebb .MakeArray ();for _ ,_agffe :=range _daabe .Function {_acfa .Append (_agffe .ToPdfObject ());};_dgfbd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_acfa );};};return _daabe ._fbfae ;}; // NewBorderStyle returns an initialized PdfBorderStyle. func NewBorderStyle ()*PdfBorderStyle {_ccbe :=&PdfBorderStyle {};return _ccbe }; // 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 *_ebb .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_gebb *_ebb .PdfIndirectObject ;}; // AddWatermarkImage adds a watermark to the page. func (_dffcag *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_ddag ,_bfebe :=_dffcag .GetMediaBox ();if _bfebe !=nil {return _bfebe ;};_ebdcaa :=_ddag .Urx -_ddag .Llx ;_gbggg :=_ddag .Ury -_ddag .Lly ;_bbeaeb :=float64 (*ximg .Width ); _ebaef :=(_ebdcaa -_bbeaeb )/2;if opt .FitToWidth {_bbeaeb =_ebdcaa ;_ebaef =0;};_cagbc :=_gbggg ;_gddbaa :=float64 (0);if opt .PreserveAspectRatio {_cagbc =_bbeaeb *float64 (*ximg .Height )/float64 (*ximg .Width );_gddbaa =(_gbggg -_cagbc )/2;};if _dffcag .Resources ==nil {_dffcag .Resources =NewPdfPageResources (); };_bcab :=0;_aadce :=_ebb .PdfObjectName (_bg .Sprintf ("\u0049\u006d\u0077%\u0064",_bcab ));for _dffcag .Resources .HasXObjectByName (_aadce ){_bcab ++;_aadce =_ebb .PdfObjectName (_bg .Sprintf ("\u0049\u006d\u0077%\u0064",_bcab ));};_bfebe =_dffcag .AddImageResource (_aadce ,ximg ); if _bfebe !=nil {return _bfebe ;};_bcab =0;_gfbde :=_ebb .PdfObjectName (_bg .Sprintf ("\u0047\u0053\u0025\u0064",_bcab ));for _dffcag .HasExtGState (_gfbde ){_bcab ++;_gfbde =_ebb .PdfObjectName (_bg .Sprintf ("\u0047\u0053\u0025\u0064",_bcab ));};_bbcg :=_ebb .MakeDict (); _bbcg .Set ("\u0042\u004d",_ebb .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_bbcg .Set ("\u0043\u0041",_ebb .MakeFloat (opt .Alpha ));_bbcg .Set ("\u0063\u0061",_ebb .MakeFloat (opt .Alpha ));_bfebe =_dffcag .AddExtGState (_gfbde ,_bbcg );if _bfebe !=nil {return _bfebe ; };_baggg :=_bg .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",_gfbde ,_bbeaeb ,_cagbc ,_ebaef ,_gddbaa ,_aadce ); _dffcag .AddContentStreamByString (_baggg );return nil ;}; // PdfAnnotationPrinterMark represents PrinterMark annotations. // (Section 12.5.6.20). type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _ebb .PdfObject ;};func (_agba *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"}; // ToPdfObject converts the PdfPage to a dictionary within an indirect object container. func (_bgbd *PdfPage )ToPdfObject ()_ebb .PdfObject {_adgfa :=_bgbd ._defbb ;_bgbd .GetPageDict ();return _adgfa ;}; // GetContext returns the annotation context which contains the specific type-dependent context. // The context represents the subannotation. func (_bfdb *PdfAnnotation )GetContext ()PdfModel {if _bfdb ==nil {return nil ;};return _bfdb ._efd ;};func _efec (_ggdb _ebb .PdfObject )(*_ebb .PdfObjectDictionary ,*fontCommon ,error ){_dcdf :=&fontCommon {};if _ebeef ,_cgfb :=_ggdb .(*_ebb .PdfIndirectObject ); _cgfb {_dcdf ._efbg =_ebeef .ObjectNumber ;};_ccdg ,_gebgf :=_ebb .GetDict (_ggdb );if !_gebgf {_eg .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",_ggdb ); return nil ,nil ,ErrFontNotSupported ;};_cacec ,_gebgf :=_ebb .GetNameVal (_ccdg .Get ("\u0054\u0079\u0070\u0065"));if !_gebgf {_eg .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 _cacec !="\u0046\u006f\u006e\u0074"{_eg .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.",_cacec ,"\u0046\u006f\u006e\u0074"); return nil ,nil ,_ebb .ErrTypeError ;};_dbbg ,_gebgf :=_ebb .GetNameVal (_ccdg .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_gebgf {_eg .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 ;};_dcdf ._dfbf =_dbbg ;_cfbe ,_gebgf :=_ebb .GetNameVal (_ccdg .Get ("\u004e\u0061\u006d\u0065"));if _gebgf {_dcdf ._efge =_cfbe ;};_fgbdb :=_ccdg .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _fgbdb !=nil {_dcdf ._baag =_ebb .TraceToDirectObject (_fgbdb ); _bgdc ,_dbgg :=_feef (_dcdf ._baag ,_dcdf );if _dbgg !=nil {return _ccdg ,_dcdf ,_dbgg ;};_dcdf ._dcdd =_bgdc ;}else if _dbbg =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_dbbg =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_bbgac ,_ffed :=_ebe .NewCIDSystemInfo (_ccdg .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f")); if _ffed !=nil {return _ccdg ,_dcdf ,_ffed ;};_acfcad :=_bg .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_bbgac .Registry ,_bbgac .Ordering );if _ebe .IsPredefinedCMap (_acfcad ){_dcdf ._dcdd ,_ffed =_ebe .LoadPredefinedCMap (_acfcad ); if _ffed !=nil {_eg .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",_acfcad ,_ffed ); };};};_beaed :=_ccdg .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _beaed !=nil {_feacg ,_caaf :=_acdf (_beaed );if _caaf !=nil {_eg .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",_caaf ); return _ccdg ,_dcdf ,_caaf ;};_dcdf ._fbbd =_feacg ;};if _dbbg !="\u0054\u0079\u0070e\u0033"{_dbdbf ,_acccb :=_ebb .GetNameVal (_ccdg .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_acccb {_eg .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 _ccdg ,_dcdf ,ErrRequiredAttributeMissing ;};_dcdf ._fdacg =_dbdbf ;};return _ccdg ,_dcdf ,nil ;}; // PdfAnnotationInk represents Ink annotations. // (Section 12.5.6.13). type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _ebb .PdfObject ;BS _ebb .PdfObject ;}; // ToPdfObject converts the pdfFontSimple to its PDF representation for outputting. func (_gdcbd *pdfFontSimple )ToPdfObject ()_ebb .PdfObject {if _gdcbd ._fafaf ==nil {_gdcbd ._fafaf =&_ebb .PdfIndirectObject {};};_fbbb :=_gdcbd .baseFields ().asPdfObjectDictionary ("");_gdcbd ._fafaf .PdfObject =_fbbb ;if _gdcbd .FirstChar !=nil {_fbbb .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_gdcbd .FirstChar ); };if _gdcbd .LastChar !=nil {_fbbb .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_gdcbd .LastChar );};if _gdcbd .Widths !=nil {_fbbb .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_gdcbd .Widths );};if _gdcbd .Encoding !=nil {_fbbb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_gdcbd .Encoding ); }else if _gdcbd ._ebcb !=nil {_dbced :=_gdcbd ._ebcb .ToPdfObject ();if _dbced !=nil {_fbbb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dbced );};};return _gdcbd ._fafaf ;}; // ToJBIG2Image converts current image to the core.JBIG2Image. func (_bagb *Image )ToJBIG2Image ()(*_ebb .JBIG2Image ,error ){_fafdf ,_cffg :=_bagb .ToGoImage ();if _cffg !=nil {return nil ,_cffg ;};return _ebb .GoImageToJBIG2 (_fafdf ,_ebb .JB2ImageAutoThreshold );}; // GetNumComponents returns the number of color components (1 for Separation). func (_dagfb *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1}; // ToPdfObject returns the PDF representation of the page resources. func (_aaedd *PdfPageResources )ToPdfObject ()_ebb .PdfObject {_ggcea :=_aaedd ._efbed ;_ggcea .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_aaedd .ExtGState );if _aaedd ._aaee !=nil {_aaedd .ColorSpace =_aaedd ._aaee .ToPdfObject ();}; _ggcea .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_aaedd .ColorSpace );_ggcea .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_aaedd .Pattern );_ggcea .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_aaedd .Shading ); _ggcea .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_aaedd .XObject );_ggcea .SetIfNotNil ("\u0046\u006f\u006e\u0074",_aaedd .Font );_ggcea .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_aaedd .ProcSet );_ggcea .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_aaedd .Properties ); return _ggcea ;}; // NewPdfColorspaceDeviceRGB returns a new RGB colorspace object. func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}}; // NewPdfActionJavaScript returns a new "javaScript" action. func NewPdfActionJavaScript ()*PdfActionJavaScript {_aab :=NewPdfAction ();_efc :=&PdfActionJavaScript {};_efc .PdfAction =_aab ;_aab .SetContext (_efc );return _efc ;}; // SetNamedDestinations sets the Dests entry in the PDF catalog. // See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008). func (_dbaac *PdfWriter )SetNamedDestinations (dests _ebb .PdfObject )error {if dests ==nil {return nil ;};_eg .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e"); _dbaac ._dffegd .Set ("\u0044\u0065\u0073t\u0073",dests );return _dbaac .addObjects (dests );}; // ReplacePage replaces the original page to a new page. func (_aegbg *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_ecca :=pageNum -1;for _fefag :=range _aegbg ._dfbg {if _fefag ==_ecca {_bacd :=page .Duplicate ();_bfegc (_bacd );_aegbg ._dfbg [_fefag ]=_bacd ;};};}; // GetContext returns the action context which contains the specific type-dependent context. // The context represents the subaction. func (_ega *PdfAction )GetContext ()PdfModel {if _ega ==nil {return nil ;};return _ega ._ad ;}; // 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 *_ebb .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_cded *_ebb .PdfIndirectObject ;};func (_gedcb *pdfCIDFontType2 )baseFields ()*fontCommon {return &_gedcb .fontCommon }; // ToPdfObject convert PdfInfo to pdf object. func (_geab *PdfInfo )ToPdfObject ()_ebb .PdfObject {_dfgc :=_ebb .MakeDict ();_dfgc .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_geab .Title );_dfgc .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_geab .Author );_dfgc .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_geab .Subject ); _dfgc .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_geab .Keywords );_dfgc .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_geab .Creator );_dfgc .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_geab .Producer ); _dfgc .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_geab .Trapped );if _geab .CreationDate !=nil {_dfgc .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_geab .CreationDate .ToPdfObject ());};if _geab .ModifiedDate !=nil {_dfgc .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_geab .ModifiedDate .ToPdfObject ()); };for _ ,_abef :=range _geab ._gcgf .Keys (){_dfgc .SetIfNotNil (_abef ,_geab ._gcgf .Get (_abef ));};return _dfgc ;}; // 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 ; // 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 (_cffcf *Image )ConvertToBinary ()error {if _cffcf .ColorComponents ==1&&_cffcf .BitsPerComponent ==1{return nil ;};_gdfc ,_cfgabd :=_cffcf .ToGoImage ();if _cfgabd !=nil {return _cfgabd ;};_edbcd ,_cfgabd :=_dg .MonochromeConverter .Convert (_gdfc ); if _cfgabd !=nil {return _cfgabd ;};_cffcf .Data =_edbcd .Base ().Data ;_cffcf ._dagcb ,_cfgabd =_dg .ScaleAlphaToMonochrome (_cffcf ._dagcb ,int (_cffcf .Width ),int (_cffcf .Height ));if _cfgabd !=nil {return _cfgabd ;};_cffcf .BitsPerComponent =1;_cffcf .ColorComponents =1; _cffcf ._dgcea =nil ;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 (_efde *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bddg :=vals [0];if _bddg < 0.0||_bddg > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bddg ); return nil ,ErrColorOutOfRange ;};_fgadaf :=vals [1];if _fgadaf < 0.0||_fgadaf > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fgadaf );return nil ,ErrColorOutOfRange ; };_eebb :=vals [2];if _eebb < 0.0||_eebb > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_eebb );return nil ,ErrColorOutOfRange ;};_edaec :=NewPdfColorCalRGB (_bddg ,_fgadaf ,_eebb ); return _edaec ,nil ;};func _ebcfc (_bdce *_ebb .PdfObjectDictionary )(*PdfShadingType5 ,error ){_bgeea :=PdfShadingType5 {};_ecfe :=_bdce .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _ecfe ==nil {_eg .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 ;};_afdad ,_dbcc :=_ecfe .(*_ebb .PdfObjectInteger );if !_dbcc {_eg .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",_ecfe ); return nil ,_ebb .ErrTypeError ;};_bgeea .BitsPerCoordinate =_afdad ;_ecfe =_bdce .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _ecfe ==nil {_eg .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 ;};_afdad ,_dbcc =_ecfe .(*_ebb .PdfObjectInteger );if !_dbcc {_eg .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",_ecfe ); return nil ,_ebb .ErrTypeError ;};_bgeea .BitsPerComponent =_afdad ;_ecfe =_bdce .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _ecfe ==nil {_eg .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 ;};_afdad ,_dbcc =_ecfe .(*_ebb .PdfObjectInteger );if !_dbcc {_eg .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",_ecfe ); return nil ,_ebb .ErrTypeError ;};_bgeea .VerticesPerRow =_afdad ;_ecfe =_bdce .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _ecfe ==nil {_eg .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 ;};_bgdagc ,_dbcc :=_ecfe .(*_ebb .PdfObjectArray );if !_dbcc {_eg .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",_ecfe ); return nil ,_ebb .ErrTypeError ;};_bgeea .Decode =_bgdagc ;if _bebgg :=_bdce .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_bebgg !=nil {_bgeea .Function =[]PdfFunction {};if _aecg ,_eccbg :=_bebgg .(*_ebb .PdfObjectArray );_eccbg {for _ ,_fgcda :=range _aecg .Elements (){_gcce ,_bdgaf :=_aagg (_fgcda ); if _bdgaf !=nil {_eg .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",_bdgaf );return nil ,_bdgaf ;};_bgeea .Function =append (_bgeea .Function ,_gcce ); };}else {_bfbgfd ,_agefg :=_aagg (_bebgg );if _agefg !=nil {_eg .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",_agefg );return nil ,_agefg ; };_bgeea .Function =append (_bgeea .Function ,_bfbgfd );};};return &_bgeea ,nil ;}; // 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 (_ecfc *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdaa :=vals [0];if _gdaa < 0.0||_gdaa > 1.0{_eg .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 _gdaa < 0.0{_gdaa =0.0;}else if _gdaa > 1.0{_gdaa =1.0;};return NewPdfColorDeviceGray (_gdaa ),nil ;}; // NewPdfActionURI returns a new "Uri" action. func NewPdfActionURI ()*PdfActionURI {_ccc :=NewPdfAction ();_cac :=&PdfActionURI {};_cac .PdfAction =_ccc ;_ccc .SetContext (_cac );return _cac ;}; // Items returns all children outline items. func (_agfd *Outline )Items ()[]*OutlineItem {return _agfd .Entries }; // NewLTV returns a new LTV client. func NewLTV (appender *PdfAppender )(*LTV ,error ){_dfcda :=appender .Reader .DSS ;if _dfcda ==nil {_dfcda =NewDSS ();};if _bdage :=_dfcda .generateHashMaps ();_bdage !=nil {return nil ,_bdage ;};return <V {CertClient :_cg .NewCertClient (),OCSPClient :_cg .NewOCSPClient (),CRLClient :_cg .NewCRLClient (),SkipExisting :true ,_ggdbg :appender ,_dfdgf :_dfcda },nil ; }; // NewPdfColorDeviceCMYK returns a new CMYK32 color. func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_gacf :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_gacf ;}; // GetRevisionNumber returns the version of the current Pdf document func (_gafgdc *PdfReader )GetRevisionNumber ()int {return _gafgdc ._cafdf .GetRevisionNumber ()}; // PdfActionGoToE represents a GoToE action. type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _ebb .PdfObject ;NewWindow _ebb .PdfObject ;T _ebb .PdfObject ;}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 1 for a grayscale device. func (_ffb *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1}; // SetAnnotations sets the annotations list. func (_bbcff *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_bbcff ._bbfed =annotations };func _ebafc ()string {return _eg .Version }; // EncryptOptions represents encryption options for an output PDF. type EncryptOptions struct{Permissions _fe .Permissions ;Algorithm EncryptionAlgorithm ;}; // NewPdfColorspaceCalGray returns a new CalGray colorspace object. func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_ecdg :=&PdfColorspaceCalGray {};_ecdg .BlackPoint =[]float64 {0.0,0.0,0.0};_ecdg .Gamma =1;return _ecdg ;};func (_gbace *LTV )getCRLs (_gfbbd []*_g .Certificate )([][]byte ,error ){_dbcgb :=make ([][]byte ,0,len (_gfbbd )); for _ ,_fbaag :=range _gfbbd {for _ ,_gggffg :=range _fbaag .CRLDistributionPoints {if _gbace .CertClient .IsCA (_fbaag ){continue ;};_gfgf ,_fgab :=_gbace .CRLClient .MakeRequest (_gggffg ,_fbaag );if _fgab !=nil {_eg .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",_fgab ); continue ;};_dbcgb =append (_dbcgb ,_gfgf );};};return _dbcgb ,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 _ab .ReadSeeker )(*PdfReader ,error ){const _baaedfc ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _dcbd (rs ,&ReaderOpts {},false ,_baaedfc );}; // SetDocInfo set document info. // This will overwrite any globally declared document info. func (_deggb *PdfWriter )SetDocInfo (info *PdfInfo ){_deggb .setDocInfo (info .ToPdfObject ())}; // ToPdfObject return the CalGray colorspace as a PDF object (name dictionary). func (_agec *PdfColorspaceCalGray )ToPdfObject ()_ebb .PdfObject {_adfca :=&_ebb .PdfObjectArray {};_adfca .Append (_ebb .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_fgcc :=_ebb .MakeDict ();if _agec .WhitePoint !=nil {_fgcc .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_ebb .MakeArray (_ebb .MakeFloat (_agec .WhitePoint [0]),_ebb .MakeFloat (_agec .WhitePoint [1]),_ebb .MakeFloat (_agec .WhitePoint [2]))); }else {_eg .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 _agec .BlackPoint !=nil {_fgcc .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ebb .MakeArray (_ebb .MakeFloat (_agec .BlackPoint [0]),_ebb .MakeFloat (_agec .BlackPoint [1]),_ebb .MakeFloat (_agec .BlackPoint [2]))); };_fgcc .Set ("\u0047\u0061\u006dm\u0061",_ebb .MakeFloat (_agec .Gamma ));_adfca .Append (_fgcc );if _agec ._bebfd !=nil {_agec ._bebfd .PdfObject =_adfca ;return _agec ._bebfd ;};return _adfca ;};func (_fadge *PdfWriter )writeObjectsInStreams (_gfaa map[_ebb .PdfObject ]bool )error {for _ ,_ebegab :=range _fadge ._ebdgg {if _ggfcc :=_gfaa [_ebegab ]; _ggfcc {continue ;};_faaea :=int64 (0);switch _fgddb :=_ebegab .(type ){case *_ebb .PdfIndirectObject :_faaea =_fgddb .ObjectNumber ;case *_ebb .PdfObjectStream :_faaea =_fgddb .ObjectNumber ;case *_ebb .PdfObjectStreams :_faaea =_fgddb .ObjectNumber ; default:_eg .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",_ebegab ); return ErrTypeCheck ;};if _fadge ._cgfde !=nil &&_ebegab !=_fadge ._cbcaa {_fegab :=_fadge ._cgfde .Encrypt (_ebegab ,_faaea ,0);if _fegab !=nil {_eg .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",_fegab ); return _fegab ;};};_fadge .writeObject (int (_faaea ),_ebegab );};return nil ;}; // 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{_cafdf *_ebb .PdfParser ;_agbbe _ebb .PdfObject ;_eedbb *_ebb .PdfIndirectObject ;_egea *_ebb .PdfObjectDictionary ;_faebb []*_ebb .PdfIndirectObject ;PageList []*PdfPage ;_aadcb int ;_fdgda *_ebb .PdfObjectDictionary ;_fgbcg *PdfOutlineTreeNode ; AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_fdca *Permissions ;_cacfc map[*PdfReader ]*PdfReader ;_face []*PdfReader ;_abbaca *modelManager ;_ceefa bool ;_dfadc map[_ebb .PdfObject ]struct{};_ggdg _ab .ReadSeeker ;_decdd string ;_cfbgga bool ;_edcbc *ReaderOpts ; _abadec bool ;}; // ToPdfObject implements interface PdfModel. func (_bgbg *PdfAnnotationStamp )ToPdfObject ()_ebb .PdfObject {_bgbg .PdfAnnotation .ToPdfObject ();_fbad :=_bgbg ._bdcd ;_adcf :=_fbad .PdfObject .(*_ebb .PdfObjectDictionary );_bgbg .PdfAnnotationMarkup .appendToPdfDictionary (_adcf );_adcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0053\u0074\u0061m\u0070")); _adcf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bgbg .Name );return _fbad ;}; // ToPdfObject returns the PDF representation of the DSS dictionary. func (_acdae *DSS )ToPdfObject ()_ebb .PdfObject {_ffgaf :=_acdae ._fcgb .PdfObject .(*_ebb .PdfObjectDictionary );_ffgaf .Clear ();_adae :=_ebb .MakeDict ();for _cdee ,_ecfb :=range _acdae .VRI {_adae .Set (*_ebb .MakeName (_cdee ),_ecfb .ToPdfObject ()); };_ffgaf .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_agdbf (_acdae .Certs ));_ffgaf .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_agdbf (_acdae .OCSPs ));_ffgaf .SetIfNotNil ("\u0043\u0052\u004c\u0073",_agdbf (_acdae .CRLs ));_ffgaf .Set ("\u0056\u0052\u0049",_adae ); return _acdae ._fcgb ;};func (_fcgfe *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _bggba :=_fcgfe ._fbbd ;_bggba !=nil {return _bggba ;};return _fcgfe ._adbd ;}; // NewPdfActionThread returns a new "thread" action. func NewPdfActionThread ()*PdfActionThread {_bcc :=NewPdfAction ();_cgd :=&PdfActionThread {};_cgd .PdfAction =_bcc ;_bcc .SetContext (_cgd );return _cgd ;};func _bgfag (_agdb *PdfField ,_ddfe _ebb .PdfObject ){for _ ,_bafdf :=range _agdb .Annotations {_bafdf .AS =_ddfe ; _bafdf .ToPdfObject ();};}; // String returns a string describing the font descriptor. func (_dagc *PdfFontDescriptor )String ()string {var _bfffd []string ;if _dagc .FontName !=nil {_bfffd =append (_bfffd ,_dagc .FontName .String ());};if _dagc .FontFamily !=nil {_bfffd =append (_bfffd ,_dagc .FontFamily .String ());};if _dagc .fontFile !=nil {_bfffd =append (_bfffd ,_dagc .fontFile .String ()); };if _dagc ._aeeb !=nil {_bfffd =append (_bfffd ,_dagc ._aeeb .String ());};_bfffd =append (_bfffd ,_bg .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_dagc .FontFile3 !=nil ));return _bg .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_ee .Join (_bfffd ,"\u002c\u0020")); }; // GetContainingPdfObject returns the container of the pattern object (indirect object). func (_bdafbb *PdfPattern )GetContainingPdfObject ()_ebb .PdfObject {return _bdafbb ._dcddc }; // ToImage converts an object to an Image which can be transformed or saved out. // The image data is decoded and the Image returned. func (_befed *XObjectImage )ToImage ()(*Image ,error ){_defagc :=&Image {};if _befed .Height ==nil {return nil ,_gf .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067"); };_defagc .Height =*_befed .Height ;if _befed .Width ==nil {return nil ,_gf .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_defagc .Width =*_befed .Width ;if _befed .BitsPerComponent ==nil {switch _befed .Filter .(type ){case *_ebb .CCITTFaxEncoder ,*_ebb .JBIG2Encoder :_defagc .BitsPerComponent =1; case *_ebb .LZWEncoder ,*_ebb .RunLengthEncoder :_defagc .BitsPerComponent =8;default:return nil ,_gf .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 {_defagc .BitsPerComponent =*_befed .BitsPerComponent ;};_defagc .ColorComponents =_befed .ColorSpace .GetNumComponents ();_befed ._fbeec .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ebb .MakeInteger (int64 (_defagc .ColorComponents ))); _fdedc ,_badffe :=_ebb .DecodeStream (_befed ._fbeec );if _badffe !=nil {return nil ,_badffe ;};_defagc .Data =_fdedc ;if _befed .Decode !=nil {_agbf ,_egbf :=_befed .Decode .(*_ebb .PdfObjectArray );if !_egbf {_eg .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074"); return nil ,_gf .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_cbedc ,_fdfdc :=_agbf .ToFloat64Array ();if _fdfdc !=nil {return nil ,_fdfdc ;};_defagc ._dgcea =_cbedc ;};return _defagc ,nil ;};func (_cabfg *PdfReader )resolveReference (_fdabb *_ebb .PdfObjectReference )(_ebb .PdfObject ,bool ,error ){_dged ,_bdda :=_cabfg ._cafdf .ObjCache [int (_fdabb .ObjectNumber )]; if !_bdda {_eg .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_fdabb );_aaafcb ,_ceceb :=_cabfg ._cafdf .LookupByReference (*_fdabb );if _ceceb !=nil {return nil ,false ,_ceceb ;};_cabfg ._cafdf .ObjCache [int (_fdabb .ObjectNumber )]=_aaafcb ; return _aaafcb ,false ,nil ;};return _dged ,true ,nil ;}; // Val returns the value of the color. func (_dcfdg *PdfColorCalGray )Val ()float64 {return float64 (*_dcfdg )};func _fagea (_ceeb *_ebb .PdfObjectDictionary ,_gggc *fontCommon )(*pdfCIDFontType0 ,error ){if _gggc ._dfbf !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_eg .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",_gggc ); return nil ,_ebb .ErrRangeError ;};_gebdb :=_afdc (_gggc );_afcgf ,_gaccg :=_ebb .GetDict (_ceeb .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_gaccg {_eg .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",_gggc ); return nil ,ErrRequiredAttributeMissing ;};_gebdb .CIDSystemInfo =_afcgf ;_gebdb .DW =_ceeb .Get ("\u0044\u0057");_gebdb .W =_ceeb .Get ("\u0057");_gebdb .DW2 =_ceeb .Get ("\u0044\u0057\u0032");_gebdb .W2 =_ceeb .Get ("\u0057\u0032");_gebdb ._gbdb =1000.0; if _ccecb ,_fedc :=_ebb .GetNumberAsFloat (_gebdb .DW );_fedc ==nil {_gebdb ._gbdb =_ccecb ;};_dffeg ,_fbdg :=_egbeb (_gebdb .W );if _fbdg !=nil {return nil ,_fbdg ;};if _dffeg ==nil {_dffeg =map[_da .CharCode ]float64 {};};_gebdb ._afcac =_dffeg ;return _gebdb ,nil ; };func (_fceg *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _fceg ._cafdf .GetCrypter ()!=nil &&!_fceg ._cafdf .IsAuthenticated (){return nil ,_bg .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"); };_daece :=_fceg ._fdgda ;_febec :=_daece .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _febec ==nil {return nil ,nil ;};_eg .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_edfc :=_ebb .ResolveReference (_febec ); _eg .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_edfc );if _dadf :=_ebb .IsNullObject (_edfc );_dadf {_eg .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 ;};_fedb ,_ecff :=_edfc .(*_ebb .PdfIndirectObject );if !_ecff {if _ ,_fadcb :=_ebb .GetDict (_edfc );!_fadcb {_eg .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 ;};_eg .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"); _fedb =_ebb .MakeIndirectObject (_edfc );};_eedc ,_ecff :=_fedb .PdfObject .(*_ebb .PdfObjectDictionary );if !_ecff {return nil ,_gf .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"); };_eg .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_eedc );_febc ,_ ,_gcfd :=_fceg .buildOutlineTree (_fedb ,nil ,nil ,nil );if _gcfd !=nil {return nil ,_gcfd ;};_eg .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",_febc ); return _febc ,nil ;}; // NewPdfAnnotationWidget returns an initialized annotation widget. func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_badg :=NewPdfAnnotation ();_ccec :=&PdfAnnotationWidget {};_ccec .PdfAnnotation =_badg ;_badg .SetContext (_ccec );return _ccec ;}; // PdfColorspaceSpecialPattern is a Pattern colorspace. // Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs]. type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_adegb *_ebb .PdfIndirectObject ;}; // AcroFormRepairOptions contains options for rebuilding the AcroForm. type AcroFormRepairOptions struct{}; // GetNamedDestinations returns the Dests entry in the PDF catalog. // See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008). func (_begda *PdfReader )GetNamedDestinations ()(_ebb .PdfObject ,error ){_fgaa :=_ebb .ResolveReference (_begda ._fdgda .Get ("\u0044\u0065\u0073t\u0073"));if _fgaa ==nil {return nil ,nil ;};if !_begda ._ceefa {_bbgdb :=_begda .traverseObjectData (_fgaa ); if _bbgdb !=nil {return nil ,_bbgdb ;};};return _fgaa ,nil ;}; // NewPdfAnnotationStamp returns a new stamp annotation. func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_ga :=NewPdfAnnotation ();_efaa :=&PdfAnnotationStamp {};_efaa .PdfAnnotation =_ga ;_efaa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ga .SetContext (_efaa );return _efaa ;}; // NewPdfAnnotationFreeText returns a new free text annotation. func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_fgec :=NewPdfAnnotation ();_caag :=&PdfAnnotationFreeText {};_caag .PdfAnnotation =_fgec ;_caag .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fgec .SetContext (_caag );return _caag ;}; // NewPdfPageResources returns a new PdfPageResources object. func NewPdfPageResources ()*PdfPageResources {_fdeea :=&PdfPageResources {};_fdeea ._efbed =_ebb .MakeDict ();return _fdeea ;};func (_deaf *PdfReader )newPdfFieldSignatureFromDict (_cgffc *_ebb .PdfObjectDictionary )(*PdfFieldSignature ,error ){_abda :=&PdfFieldSignature {}; _eefge ,_cafgg :=_ebb .GetIndirect (_cgffc .Get ("\u0056"));if _cafgg {var _egcddb error ;_abda .V ,_egcddb =_deaf .newPdfSignatureFromIndirect (_eefge );if _egcddb !=nil {return nil ,_egcddb ;};};_abda .Lock ,_ =_ebb .GetIndirect (_cgffc .Get ("\u004c\u006f\u0063\u006b")); _abda .SV ,_ =_ebb .GetIndirect (_cgffc .Get ("\u0053\u0056"));return _abda ,nil ;}; // Clear clears flag fl from the flag and returns the resulting flag. func (_efdb FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_efdb .Mask ()&^fl .Mask ())}; // GetContainingPdfObject returns the container of the outline tree node (indirect object). func (_ageg *PdfOutlineTreeNode )GetContainingPdfObject ()_ebb .PdfObject {return _ageg .GetContext ().GetContainingPdfObject ();}; // GetNumComponents returns the number of color components (1 for CalGray). func (_acda *PdfColorCalGray )GetNumComponents ()int {return 1}; // Encoder returns the font's text encoder. func (_ecgd pdfFontType3 )Encoder ()_da .TextEncoder {return _ecgd ._abcba }; // SetXObjectImageByName adds the provided XObjectImage to the page resources. // The added XObjectImage is identified by the specified name. func (_fgcff *PdfPageResources )SetXObjectImageByName (keyName _ebb .PdfObjectName ,ximg *XObjectImage )error {_eafef :=ximg .ToPdfObject ().(*_ebb .PdfObjectStream );_baefe :=_fgcff .SetXObjectByName (keyName ,_eafef );return _baefe ;}; // NewPdfColorCalGray returns a new CalGray color. func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_cffee :=PdfColorCalGray (grayVal );return &_cffee ;};func (_bbef *PdfReader )newPdfActionMovieFromDict (_cee *_ebb .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_cee .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_cee .Get ("\u0054"),Operation :_cee .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ; }; // SetContext set the sub annotation (context). func (_bcbcb *PdfShading )SetContext (ctx PdfModel ){_bcbcb ._edgag =ctx }; // String returns string value of output intent for given type // ISO_19005-2 6.2.3: GTS_PDFA1 value should be used for PDF/A-1, A-2 and A-3 at least func (_eeeef PdfOutputIntentType )String ()string {switch _eeeef {case PdfOutputIntentTypeA1 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";case PdfOutputIntentTypeA2 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";case PdfOutputIntentTypeA3 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411"; case PdfOutputIntentTypeA4 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";case PdfOutputIntentTypeX :return "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058";default:return "\u0055N\u0044\u0045\u0046\u0049\u004e\u0045D";};};func (_dcdb *DSS )addCRLs (_feffc [][]byte )([]*_ebb .PdfObjectStream ,error ){return _dcdb .add (&_dcdb .CRLs ,_dcdb ._fafgb ,_feffc ); }; // HasColorspaceByName checks if the colorspace with the specified name exists in the page resources. func (_gaffg *PdfPageResources )HasColorspaceByName (keyName _ebb .PdfObjectName )bool {_dfffb ,_ebgaf :=_gaffg .GetColorspaces ();if _ebgaf !=nil {_eg .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",_ebgaf ); return false ;};if _dfffb ==nil {return false ;};_ ,_ebfag :=_dfffb .Colorspaces [string (keyName )];return _ebfag ;}; // ToPdfObject implements interface PdfModel. func (_ddfb *PdfAnnotationPolyLine )ToPdfObject ()_ebb .PdfObject {_ddfb .PdfAnnotation .ToPdfObject ();_bbeb :=_ddfb ._bdcd ;_aff :=_bbeb .PdfObject .(*_ebb .PdfObjectDictionary );_ddfb .PdfAnnotationMarkup .appendToPdfDictionary (_aff );_aff .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065")); _aff .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_ddfb .Vertices );_aff .SetIfNotNil ("\u004c\u0045",_ddfb .LE );_aff .SetIfNotNil ("\u0042\u0053",_ddfb .BS );_aff .SetIfNotNil ("\u0049\u0043",_ddfb .IC );_aff .SetIfNotNil ("\u0042\u0045",_ddfb .BE ); _aff .SetIfNotNil ("\u0049\u0054",_ddfb .IT );_aff .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_ddfb .Measure );return _bbeb ;}; // 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 (_gcbca *LTV )Enable (sig *PdfSignature ,extraCerts []*_g .Certificate )error {if _cdedg :=_gcbca .validateSig (sig );_cdedg !=nil {return _cdedg ;};_cabc ,_defg :=_gcbca .generateVRIKey (sig );if _defg !=nil {return _defg ;};if _ ,_cadec :=_gcbca ._dfdgf .VRI [_cabc ]; _cadec &&_gcbca .SkipExisting {return nil ;};_cdab ,_defg :=sig .GetCerts ();if _defg !=nil {return _defg ;};return _gcbca .enable (_cdab ,extraCerts ,_cabc );}; // NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image. // If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead. func (_eadd DefaultImageHandler )NewImageFromGoImage (goimg _gdc .Image )(*Image ,error ){_ebdcf ,_cgbf :=_dg .FromGoImage (goimg );if _cgbf !=nil {return nil ,_cgbf ;};_gdaf :=_afacb (_ebdcf .Base ());return &_gdaf ,nil ;}; // ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't. func (_eafag *PdfFont )ToUnicode ()string {if _eafag .baseFields ()._dcdd ==nil {return "";};return _eafag .baseFields ()._dcdd .Name ();}; // PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons. type PdfFieldButton struct{*PdfField ;Opt *_ebb .PdfObjectArray ;_cdbf *Image ;}; // ToPdfOutline returns a low level PdfOutline object, based on the current // instance. func (_dcdfe *Outline )ToPdfOutline ()*PdfOutline {_ecgf :=NewPdfOutline ();var _dagga []*PdfOutlineItem ;var _eggge int64 ;var _dbdbc *PdfOutlineItem ;for _ ,_dbfed :=range _dcdfe .Entries {_gbfaf ,_baab :=_dbfed .ToPdfOutlineItem ();_gbfaf .Parent =&_ecgf .PdfOutlineTreeNode ; if _dbdbc !=nil {_dbdbc .Next =&_gbfaf .PdfOutlineTreeNode ;_gbfaf .Prev =&_dbdbc .PdfOutlineTreeNode ;};_dagga =append (_dagga ,_gbfaf );_eggge +=_baab ;_dbdbc =_gbfaf ;};_caff :=int64 (len (_dagga ));_eggge +=_caff ;if _caff > 0{_ecgf .First =&_dagga [0].PdfOutlineTreeNode ; _ecgf .Last =&_dagga [_caff -1].PdfOutlineTreeNode ;_ecgf .Count =&_eggge ;};return _ecgf ;}; // ColorToRGB converts a DeviceN color to an RGB color. func (_afdb *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _afdb .AlternateSpace ==nil {return nil ,_gf .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 _afdb .AlternateSpace .ColorToRGB (color );}; // ToPdfObject implements interface PdfModel. func (_ded *PdfActionJavaScript )ToPdfObject ()_ebb .PdfObject {_ded .PdfAction .ToPdfObject ();_accd :=_ded ._abe ;_fgb :=_accd .PdfObject .(*_ebb .PdfObjectDictionary );_fgb .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeJavaScript )));_fgb .SetIfNotNil ("\u004a\u0053",_ded .JS ); return _accd ;};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";); // Write writes out the PDF. func (_bdcab *PdfWriter )Write (writer _ab .Writer )error {_eg .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_fbcc :=_bdcab .checkLicense ();if _fbcc !=nil {return _fbcc ;};if _fbcc =_bdcab .writeOutlines ();_fbcc !=nil {return _fbcc ;};if _fbcc =_bdcab .writeAcroFormFields (); _fbcc !=nil {return _fbcc ;};_bdcab .checkPendingObjects ();if _fbcc =_bdcab .writeOutputIntents ();_fbcc !=nil {return _fbcc ;};_bdcab .setCatalogVersion ();_bdcab .copyObjects ();if _fbcc =_bdcab .optimize ();_fbcc !=nil {return _fbcc ;};if _fbcc =_bdcab .optimizeDocument (); _fbcc !=nil {return _fbcc ;};var _bbddfd _c .Hash ;if _bdcab ._abgcg {_bbddfd =_dd .New ();writer =_ab .MultiWriter (_bbddfd ,writer );};_bdcab .setWriter (writer );_edfb :=_bdcab .checkCrossReferenceStream ();_bcfdb ,_edfb :=_bdcab .mapObjectStreams (_edfb ); _bdcab .adjustXRefAffectedVersion (_edfb );_bdcab .writeDocumentVersion ();_bdcab .updateObjectNumbers ();_bdcab .writeObjects ();if _fbcc =_bdcab .writeObjectsInStreams (_bcfdb );_fbcc !=nil {return _fbcc ;};_fbdcg :=_bdcab ._afedd ;var _gabcd int ;for _dfaga :=range _bdcab ._bedfc {if _dfaga > _gabcd {_gabcd =_dfaga ; };};if _bdcab ._abgcg {if _fbcc =_bdcab .setHashIDs (_bbddfd );_fbcc !=nil {return _fbcc ;};};if _edfb {if _fbcc =_bdcab .writeXRefStreams (_gabcd ,_fbdcg );_fbcc !=nil {return _fbcc ;};}else {_bdcab .writeTrailer (_gabcd );};_bdcab .makeOffSetReference (_fbdcg ); if _fbcc =_bdcab .flushWriter ();_fbcc !=nil {return _fbcc ;};return nil ;}; // PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377). type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_ebb .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _ebb .PdfObject ;A _ebb .PdfObject ;SE _ebb .PdfObject ;C _ebb .PdfObject ;F _ebb .PdfObject ; _cacdf *_ebb .PdfIndirectObject ;}; // GetPrimitiveFromModel returns the primitive object corresponding to the input `model`. func (_bfgeg *modelManager )GetPrimitiveFromModel (model PdfModel )_ebb .PdfObject {_cbaaf ,_cgcfb :=_bfgeg ._bgfdb [model ];if !_cgcfb {return nil ;};return _cbaaf ;}; // PdfColorspaceCalRGB stores A, B, C components type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_cbcd *_ebb .PdfObjectDictionary ;_aeac *_ebb .PdfIndirectObject ;}; // ToPdfObject returns the PDF representation of the shading pattern. func (_abbbg *PdfShadingPattern )ToPdfObject ()_ebb .PdfObject {_abbbg .PdfPattern .ToPdfObject ();_gadg :=_abbbg .getDict ();if _abbbg .Shading !=nil {_gadg .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_abbbg .Shading .ToPdfObject ());};if _abbbg .Matrix !=nil {_gadg .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_abbbg .Matrix ); };if _abbbg .ExtGState !=nil {_gadg .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_abbbg .ExtGState );};return _abbbg ._dcddc ;}; // DecodeArray returns the range of color component values in DeviceRGB colorspace. func (_badc *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};}; // PdfInfoTrapped specifies pdf trapped information. type PdfInfoTrapped string ; // NewPdfColorspaceSpecialPattern returns a new pattern color. func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};}; // GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7. func (_ccfe *PdfShading )GetContext ()PdfModel {return _ccfe ._edgag }; // AddAnnotation appends `annot` to the list of page annotations. func (_fegf *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _fegf ._bbfed ==nil {_fegf .GetAnnotations ();};_fegf ._bbfed =append (_fegf ._bbfed ,annot );};func _fafaa (_ecdce _ebb .PdfObject )(*PdfFunctionType2 ,error ){_bfge :=&PdfFunctionType2 {}; var _cfee *_ebb .PdfObjectDictionary ;if _dcdg ,_gbaec :=_ecdce .(*_ebb .PdfIndirectObject );_gbaec {_fbff ,_dcede :=_dcdg .PdfObject .(*_ebb .PdfObjectDictionary );if !_dcede {return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072"); };_bfge ._bcbfd =_dcdg ;_cfee =_fbff ;}else if _fbeac ,_dcaa :=_ecdce .(*_ebb .PdfObjectDictionary );_dcaa {_cfee =_fbeac ;}else {return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_eg .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_cfee .String ()); _dafbd ,_gdfdb :=_ebb .TraceToDirectObject (_cfee .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ebb .PdfObjectArray );if !_gdfdb {_eg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gf .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 _dafbd .Len ()< 0||_dafbd .Len ()%2!=0{_eg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_gf .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065"); };_fecgg ,_aagccg :=_dafbd .ToFloat64Array ();if _aagccg !=nil {return nil ,_aagccg ;};_bfge .Domain =_fecgg ;_dafbd ,_gdfdb =_ebb .TraceToDirectObject (_cfee .Get ("\u0052\u0061\u006eg\u0065")).(*_ebb .PdfObjectArray );if _gdfdb {if _dafbd .Len ()< 0||_dafbd .Len ()%2!=0{return nil ,_gf .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065"); };_cgfeb ,_dffd :=_dafbd .ToFloat64Array ();if _dffd !=nil {return nil ,_dffd ;};_bfge .Range =_cgfeb ;};_dafbd ,_gdfdb =_ebb .TraceToDirectObject (_cfee .Get ("\u0043\u0030")).(*_ebb .PdfObjectArray );if _gdfdb {_daddb ,_cgcbcc :=_dafbd .ToFloat64Array (); if _cgcbcc !=nil {return nil ,_cgcbcc ;};_bfge .C0 =_daddb ;};_dafbd ,_gdfdb =_ebb .TraceToDirectObject (_cfee .Get ("\u0043\u0031")).(*_ebb .PdfObjectArray );if _gdfdb {_ccdf ,_eafcc :=_dafbd .ToFloat64Array ();if _eafcc !=nil {return nil ,_eafcc ;};_bfge .C1 =_ccdf ; };if len (_bfge .C0 )!=len (_bfge .C1 ){_eg .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_ebb .ErrRangeError ;};N ,_aagccg :=_ebb .GetNumberAsFloat (_ebb .TraceToDirectObject (_cfee .Get ("\u004e"))); if _aagccg !=nil {_eg .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",_cfee .String ());return nil ,_aagccg ;};_bfge .N =N ; return _bfge ,nil ;}; // GetPage returns the PdfPage model for the specified page number. func (_ddfdcd *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _ddfdcd ._cafdf .GetCrypter ()!=nil &&!_ddfdcd ._cafdf .IsAuthenticated (){return nil ,_bg .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 (_ddfdcd ._faebb )< pageNumber {return nil ,_gf .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"); };_bfacfb :=pageNumber -1;if _bfacfb < 0{return nil ,_bg .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");};_aebfc :=_ddfdcd .PageList [_bfacfb ]; return _aebfc ,nil ;}; // GenerateXObjectName generates an unused XObject name that can be used for // adding new XObjects. Uses format XObj1, XObj2, ... func (_aabgc *PdfPageResources )GenerateXObjectName ()_ebb .PdfObjectName {_dfbge :=1;for {_aeabb :=_ebb .MakeName (_bg .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_dfbge ));if !_aabgc .HasXObjectByName (*_aeabb ){return *_aeabb ;};_dfbge ++;};}; // GetCharMetrics returns the char metrics for character code `code`. func (_afad pdfFontType3 )GetCharMetrics (code _da .CharCode )(_bad .CharMetrics ,bool ){if _beda ,_bbege :=_afad ._aggbb [code ];_bbege {return _bad .CharMetrics {Wx :_beda },true ;};if _bad .IsStdFont (_bad .StdFontName (_afad ._fdacg )){return _bad .CharMetrics {Wx :250},true ; };return _bad .CharMetrics {},false ;};func (_eddfc *PdfAcroForm )fillImageWithAppearance (_bdfcg FieldImageProvider ,_fbaab FieldAppearanceGenerator )error {if _eddfc ==nil {return nil ;};_eebdf ,_gbeea :=_bdfcg .FieldImageValues ();if _gbeea !=nil {return _gbeea ; };for _ ,_fcfgd :=range _eddfc .AllFields (){_cbbcc :=_fcfgd .PartialName ();_bdfbc ,_dfdab :=_eebdf [_cbbcc ];if !_dfdab {if _gbcg ,_gacead :=_fcfgd .FullName ();_gacead ==nil {_bdfbc ,_dfdab =_eebdf [_gbcg ];};};if !_dfdab {_eg .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",_cbbcc ); continue ;};switch _gfdf :=_fcfgd .GetContext ().(type ){case *PdfFieldButton :if _gfdf .IsPush (){_gfdf .SetFillImage (_bdfbc );};};if _fbaab ==nil {continue ;};for _ ,_abdgae :=range _fcfgd .Annotations {_defc ,_dfee :=_fbaab .GenerateAppearanceDict (_eddfc ,_fcfgd ,_abdgae ); if _dfee !=nil {return _dfee ;};_abdgae .AP =_defc ;_abdgae .ToPdfObject ();};};return nil ;}; // RunesToCharcodeBytes maps the provided runes to charcode bytes and it // returns the resulting slice of bytes, along with the number of runes which // could not be converted. If the number of misses is 0, all runes were // successfully converted. func (_dcag *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _gcad []_da .TextEncoder ;var _degd _da .CMapEncoder ;if _cebf :=_dcag .baseFields ()._dcdd ;_cebf !=nil {_degd =_da .NewCMapEncoder ("",nil ,_cebf );};_cgfg :=_dcag .Encoder (); if _cgfg !=nil {switch _bfcg :=_cgfg .(type ){case _da .SimpleEncoder :_adgfe :=_bfcg .BaseName ();if _ ,_ecdc :=_efdc [_adgfe ];_ecdc {_gcad =append (_gcad ,_cgfg );};};};if len (_gcad )==0{if _dcag .baseFields ()._dcdd !=nil {_gcad =append (_gcad ,_degd ); };if _cgfg !=nil {_gcad =append (_gcad ,_cgfg );};};var _fddc _ca .Buffer ;var _bdcdg int ;for _ ,_dffg :=range data {var _ceabf bool ;for _ ,_edgfe :=range _gcad {if _fade :=_edgfe .Encode (string (_dffg ));len (_fade )> 0{_fddc .Write (_fade );_ceabf =true ; break ;};};if !_ceabf {_eg .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",_dffg ); _bdcdg ++;};};if _bdcdg !=0{_eg .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 ),_bdcdg ,_dcag ,_gcad ); };return _fddc .Bytes (),_bdcdg ;}; // 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 *_ebb .PdfObjectStream )(*XObjectImage ,error ){_dccdb :=&XObjectImage {};_dccdb ._fbeec =stream ;_fedeb :=*(stream .PdfObjectDictionary );_fcdd ,_cfdf :=_ebb .NewEncoderFromStream (stream );if _cfdf !=nil {return nil ,_cfdf ; };_dccdb .Filter =_fcdd ;if _fadfa :=_ebb .TraceToDirectObject (_fedeb .Get ("\u0057\u0069\u0064t\u0068"));_fadfa !=nil {_bdadd ,_adcgf :=_fadfa .(*_ebb .PdfObjectInteger );if !_adcgf {return nil ,_gf .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"); };_acffc :=int64 (*_bdadd );_dccdb .Width =&_acffc ;}else {return nil ,_gf .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _fdfgef :=_ebb .TraceToDirectObject (_fedeb .Get ("\u0048\u0065\u0069\u0067\u0068\u0074")); _fdfgef !=nil {_aedd ,_feegf :=_fdfgef .(*_ebb .PdfObjectInteger );if !_feegf {return nil ,_gf .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_dedaf :=int64 (*_aedd ); _dccdb .Height =&_dedaf ;}else {return nil ,_gf .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _effge :=_ebb .TraceToDirectObject (_fedeb .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065")); _effge !=nil {_ggfe ,_dggdd :=NewPdfColorspaceFromPdfObject (_effge );if _dggdd !=nil {return nil ,_dggdd ;};_dccdb .ColorSpace =_ggfe ;}else {_eg .Log .Debug ("\u0058O\u0062\u006a\u0065c\u0074\u0020\u0049m\u0061ge\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u002d\u0020\u0061\u0073\u0073\u0075\u006d\u0069\u006e\u0067 1\u0020c\u006f\u006c\u006f\u0072\u0020\u0063o\u006d\u0070\u006f\u006e\u0065n\u0074\u0020\u002d\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0047r\u0061\u0079"); _dccdb .ColorSpace =NewPdfColorspaceDeviceGray ();};if _agecg :=_ebb .TraceToDirectObject (_fedeb .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_agecg !=nil {_aebag ,_afffb :=_agecg .(*_ebb .PdfObjectInteger ); if !_afffb {return nil ,_gf .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_agdd :=int64 (*_aebag );_dccdb .BitsPerComponent =&_agdd ;};_dccdb .Intent =_fedeb .Get ("\u0049\u006e\u0074\u0065\u006e\u0074"); _dccdb .ImageMask =_fedeb .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_dccdb .Mask =_fedeb .Get ("\u004d\u0061\u0073\u006b");_dccdb .Decode =_fedeb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_dccdb .Interpolate =_fedeb .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065"); _dccdb .Alternatives =_fedeb .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_dccdb .SMask =_fedeb .Get ("\u0053\u004d\u0061s\u006b");_dccdb .SMaskInData =_fedeb .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061"); _dccdb .Matte =_fedeb .Get ("\u004d\u0061\u0074t\u0065");_dccdb .Name =_fedeb .Get ("\u004e\u0061\u006d\u0065");_dccdb .StructParent =_fedeb .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_dccdb .ID =_fedeb .Get ("\u0049\u0044"); _dccdb .OPI =_fedeb .Get ("\u004f\u0050\u0049");_dccdb .Metadata =_fedeb .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_dccdb .OC =_fedeb .Get ("\u004f\u0043");_dccdb .Stream =stream .Stream ;return _dccdb ,nil ;}; // AddPages adds pages to be appended to the end of the source PDF. func (_faddb *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_fdba :=range pages {_fdba =_fdba .Duplicate ();_bfegc (_fdba );_faddb ._dfbg =append (_faddb ._dfbg ,_fdba );};}; // Write writes the Appender output to io.Writer. // It can only be called once and further invocations will result in an error. func (_bcga *PdfAppender )Write (w _ab .Writer )error {if _bcga ._adca {return _gf .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"); };_edbe :=NewPdfWriter ();_dgag ,_fdbd :=_ebb .GetDict (_edbe ._dggbf );if !_fdbd {return _gf .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"); };_ecad ,_fdbd :=_dgag .Get ("\u004b\u0069\u0064\u0073").(*_ebb .PdfObjectArray );if !_fdbd {return _gf .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"); };_eace ,_fdbd :=_dgag .Get ("\u0043\u006f\u0075n\u0074").(*_ebb .PdfObjectInteger );if !_fdbd {return _gf .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"); };_eddff :=_bcga ._acfe ._cafdf ;_agga :=_eddff .GetTrailer ();if _agga ==nil {return _gf .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_dafg ,_fdbd :=_ebb .GetIndirect (_agga .Get ("\u0052\u006f\u006f\u0074")); if !_fdbd {return _gf .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_dfbc ,_fdbd :=_ebb .GetDict (_dafg );if !_fdbd {_eg .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",_dafg ,*_agga ); return _gf .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_bbaf :=range _dfbc .Keys (){if _edbe ._dffegd .Get (_bbaf )==nil {_dbacb :=_dfbc .Get (_bbaf );_edbe ._dffegd .Set (_bbaf ,_dbacb );};};if _bcga ._bfef !=nil {_edbe ._dffegd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_bcga ._bfef .ToPdfObject ()); _bcga .updateObjectsDeep (_bcga ._bfef .ToPdfObject (),nil );};if _bcga ._eged !=nil {_bcga .updateObjectsDeep (_bcga ._eged .ToPdfObject (),nil );_edbe ._dffegd .Set ("\u0044\u0053\u0053",_bcga ._eged .GetContainingPdfObject ());};if _bcga ._eaaa !=nil {_edbe ._dffegd .Set ("\u0050\u0065\u0072m\u0073",_bcga ._eaaa .ToPdfObject ()); _bcga .updateObjectsDeep (_bcga ._eaaa .ToPdfObject (),nil );};if _edbe ._efcge .Major < 2{_edbe .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);_edbe .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _cefa ,_caga :=_ebb .GetDict (_agga .Get ("\u0049\u006e\u0066\u006f")); _caga {if _gdfe ,_fgcf :=_ebb .GetDict (_edbe ._eadfd );_fgcf {for _ ,_cdfe :=range _cefa .Keys (){if _gdfe .Get (_cdfe )==nil {_gdfe .Set (_cdfe ,_cefa .Get (_cdfe ));};};};};if _bcga ._eeee !=nil {_edbe ._eadfd =_ebb .MakeIndirectObject (_bcga ._eeee .ToPdfObject ()); };_bcga .addNewObject (_edbe ._eadfd );_bcga .addNewObject (_edbe ._gegba );_dggdg :=false ;if len (_bcga ._acfe .PageList )!=len (_bcga ._dfbg ){_dggdg =true ;}else {for _fdaa :=range _bcga ._acfe .PageList {switch {case _bcga ._dfbg [_fdaa ]==_bcga ._acfe .PageList [_fdaa ]:case _bcga ._dfbg [_fdaa ]==_bcga .Reader .PageList [_fdaa ]:default:_dggdg =true ; };if _dggdg {break ;};};};if _dggdg {_bcga .updateObjectsDeep (_edbe ._dggbf ,nil );}else {_bcga ._eebc [_edbe ._dggbf ]=struct{}{};};_edbe ._dggbf .ObjectNumber =_bcga .Reader ._eedbb .ObjectNumber ;_bcga ._gbfa [_edbe ._dggbf ]=_bcga .Reader ._eedbb .ObjectNumber ; _bcgfc :=[]_ebb .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 _ ,_cefg :=range _bcga ._dfbg {_efga :=_cefg .ToPdfObject (); *_eace =*_eace +1;if _aacc ,_fgfe :=_efga .(*_ebb .PdfIndirectObject );_fgfe &&_aacc .GetParser ()==_bcga ._acfe ._cafdf {_ecad .Append (&_aacc .PdfObjectReference );continue ;};if _afac ,_fafa :=_ebb .GetDict (_efga );_fafa {_fdfa ,_cegbd :=_afac .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ebb .PdfIndirectObject ); for _cegbd {_eg .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fdfa );_ebaf ,_bcbc :=_fdfa .PdfObject .(*_ebb .PdfObjectDictionary );if !_bcbc {return _gf .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074"); };for _ ,_adfg :=range _bcgfc {_eg .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_adfg );if _afac .Get (_adfg )!=nil {_eg .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ; };if _ebee :=_ebaf .Get (_adfg );_ebee !=nil {_eg .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_adfg );_afac .Set (_adfg ,_ebee );};};_fdfa ,_cegbd =_ebaf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ebb .PdfIndirectObject ); _eg .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_ebaf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_afac .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_edbe ._dggbf );};_bcga .updateObjectsDeep (_efga ,nil ); _ecad .Append (_efga );};if _ ,_gdcg :=_bcga ._ecce .Seek (0,_ab .SeekStart );_gdcg !=nil {return _gdcg ;};_dbf :=make (map[SignatureHandler ]_ab .Writer );_bcde :=_ebb .MakeArray ();for _ ,_daaa :=range _bcga ._bfeg {if _cecec ,_feea :=_ebb .GetIndirect (_daaa ); _feea {if _gfce ,_bfaf :=_cecec .PdfObject .(*pdfSignDictionary );_bfaf {_deaa :=*_gfce ._dcfab ;var _adcfd error ;_dbf [_deaa ],_adcfd =_deaa .NewDigest (_gfce ._bead );if _adcfd !=nil {return _adcfd ;};_bcde .Append (_ebb .MakeInteger (0xfffff),_ebb .MakeInteger (0xfffff)); };};};if _bcde .Len ()> 0{_bcde .Append (_ebb .MakeInteger (0xfffff),_ebb .MakeInteger (0xfffff));};for _ ,_ecb :=range _bcga ._bfeg {if _bgda ,_cgdg :=_ebb .GetIndirect (_ecb );_cgdg {if _gfae ,_acccc :=_bgda .PdfObject .(*pdfSignDictionary );_acccc {_gfae .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_bcde ); };};};_gdfd :=len (_dbf )> 0;var _aec _ab .Reader =_bcga ._ecce ;if _gdfd {_dggf :=make ([]_ab .Writer ,0,len (_dbf ));for _ ,_cade :=range _dbf {_dggf =append (_dggf ,_cade );};_aec =_ab .TeeReader (_bcga ._ecce ,_ab .MultiWriter (_dggf ...));};_defa ,_aebe :=_ab .Copy (w ,_aec ); if _aebe !=nil {return _aebe ;};if len (_bcga ._bfeg )==0{return nil ;};_edbe ._fgdce =_defa ;_edbe .ObjNumOffset =_bcga ._gbddb ;_edbe ._abffb =true ;_edbe ._efdega =_bcga ._acfd ;_edbe ._bcage =_bcga ._cfag ;_edbe ._ggbfg =_bcga ._bee ;_edbe ._efcge =_bcga ._acfe .PdfVersion (); _edbe ._cdgd =_bcga ._gbfa ;_edbe ._cgfde =_bcga ._gege .GetCrypter ();_edbe ._cbcaa =_bcga ._gege .GetEncryptObj ();_eade :=_bcga ._gege .GetXrefType ();if _eade !=nil {_gaeg :=*_eade ==_ebb .XrefTypeObjectStream ;_edbe ._adeff =&_gaeg ;};_edbe ._ffffd =map[_ebb .PdfObject ]struct{}{}; _edbe ._ebdgg =[]_ebb .PdfObject {};for _ ,_bgbc :=range _bcga ._bfeg {if _ ,_bafd :=_bcga ._eebc [_bgbc ];_bafd {continue ;};_edbe .addObject (_bgbc );};_fgada :=w ;if _gdfd {_fgada =_ca .NewBuffer (nil );};if _bcga ._accg !=""&&_edbe ._cgfde ==nil {_edbe .Encrypt ([]byte (_bcga ._accg ),[]byte (_bcga ._accg ),_bcga ._gfba ); };if _eecd :=_agga .Get ("\u0049\u0044");_eecd !=nil {if _fadf ,_egab :=_ebb .GetArray (_eecd );_egab {_edbe ._eecfe =_fadf ;};};if _daab :=_edbe .Write (_fgada );_daab !=nil {return _daab ;};if _gdfd {_gfag :=_fgada .(*_ca .Buffer ).Bytes ();_agbb :=_ebb .MakeArray (); var _fdfca []*pdfSignDictionary ;var _adad int64 ;for _ ,_facb :=range _edbe ._ebdgg {if _gaecc ,_bfae :=_ebb .GetIndirect (_facb );_bfae {if _bdbf ,_bcfc :=_gaecc .PdfObject .(*pdfSignDictionary );_bcfc {_fdfca =append (_fdfca ,_bdbf );_aeca :=_bdbf ._cbfg +int64 (_bdbf ._eefbe ); _agbb .Append (_ebb .MakeInteger (_adad ),_ebb .MakeInteger (_aeca -_adad ));_adad =_bdbf ._cbfg +int64 (_bdbf ._adggf );};};};_agbb .Append (_ebb .MakeInteger (_adad ),_ebb .MakeInteger (_defa +int64 (len (_gfag ))-_adad ));_aeda :=[]byte (_agbb .WriteString ()); for _ ,_gde :=range _fdfca {_dgea :=int (_gde ._cbfg -_defa );for _eeef :=_gde ._decgd ;_eeef < _gde ._ddceg ;_eeef ++{_gfag [_dgea +_eeef ]=' ';};_ecab :=_gfag [_dgea +_gde ._decgd :_dgea +_gde ._ddceg ];copy (_ecab ,_aeda );};var _bafdb int ;for _ ,_abdc :=range _fdfca {_dbce :=int (_abdc ._cbfg -_defa ); _dacd :=_gfag [_bafdb :_dbce +_abdc ._eefbe ];_cdfef :=*_abdc ._dcfab ;_dbf [_cdfef ].Write (_dacd );_bafdb =_dbce +_abdc ._adggf ;};for _ ,_caed :=range _fdfca {_bfba :=_gfag [_bafdb :];_adga :=*_caed ._dcfab ;_dbf [_adga ].Write (_bfba );};for _ ,_gggea :=range _fdfca {_cggd :=int (_gggea ._cbfg -_defa ); _egef :=*_gggea ._dcfab ;_gcff :=_dbf [_egef ];if _dfda :=_egef .Sign (_gggea ._bead ,_gcff );_dfda !=nil {return _dfda ;};_gggea ._bead .ByteRange =_agbb ;_cfce :=[]byte (_gggea ._bead .Contents .WriteString ());for _dgfg :=_gggea ._decgd ;_dgfg < _gggea ._ddceg ; _dgfg ++{_gfag [_cggd +_dgfg ]=' ';};for _defb :=_gggea ._eefbe ;_defb < _gggea ._adggf ;_defb ++{_gfag [_cggd +_defb ]=' ';};_ffc :=_gfag [_cggd +_gggea ._decgd :_cggd +_gggea ._ddceg ];copy (_ffc ,_aeda );_ffc =_gfag [_cggd +_gggea ._eefbe :_cggd +_gggea ._adggf ]; copy (_ffc ,_cfce );};_gebg :=_ca .NewBuffer (_gfag );_ ,_aebe =_ab .Copy (w ,_gebg );if _aebe !=nil {return _aebe ;};};_bcga ._adca =true ;return nil ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_decaf *PdfShadingType7 )ToPdfObject ()_ebb .PdfObject {_decaf .PdfShading .ToPdfObject ();_dadgc ,_aaff :=_decaf .getShadingDict ();if _aaff !=nil {_eg .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 _decaf .BitsPerCoordinate !=nil {_dadgc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_decaf .BitsPerCoordinate );};if _decaf .BitsPerComponent !=nil {_dadgc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_decaf .BitsPerComponent ); };if _decaf .BitsPerFlag !=nil {_dadgc .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_decaf .BitsPerFlag );};if _decaf .Decode !=nil {_dadgc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_decaf .Decode );};if _decaf .Function !=nil {if len (_decaf .Function )==1{_dadgc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_decaf .Function [0].ToPdfObject ()); }else {_gbacge :=_ebb .MakeArray ();for _ ,_gcbg :=range _decaf .Function {_gbacge .Append (_gcbg .ToPdfObject ());};_dadgc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gbacge );};};return _decaf ._fbfae ;}; // NewPdfAnnotationSquare returns a new square annotation. func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_aaca :=NewPdfAnnotation ();_bge :=&PdfAnnotationSquare {};_bge .PdfAnnotation =_aaca ;_bge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aaca .SetContext (_bge );return _bge ;}; // 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 (_eaebe *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _eaebe ._aaee !=nil {return _eaebe ._aaee ,nil ;};if _eaebe .ColorSpace ==nil {return nil ,nil ;};_gfcda ,_dgaac :=_eeafg (_eaebe .ColorSpace );if _dgaac !=nil {return nil ,_dgaac ; };_eaebe ._aaee =_gfcda ;return _eaebe ._aaee ,nil ;}; // PdfFont represents an underlying font structure which can be of type: // - Type0 // - Type1 // - TrueType // etc. type PdfFont struct{_ebcad pdfFont };type pdfSignDictionary struct{*_ebb .PdfObjectDictionary ;_dcfab *SignatureHandler ;_bead *PdfSignature ;_cbfg int64 ;_eefbe int ;_adggf int ;_decgd int ;_ddceg int ;}; // 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 (_abgb *pdfFontSimple )SetEncoder (encoder _da .TextEncoder ){_abgb ._ebcb =encoder }; // Width returns the width of `rect`. func (_cfdb *PdfRectangle )Width ()float64 {return _cbg .Abs (_cfdb .Urx -_cfdb .Llx )};func _acdf (_feeb _ebb .PdfObject )(*PdfFontDescriptor ,error ){_efbab :=&PdfFontDescriptor {};_feeb =_ebb .ResolveReference (_feeb );if _fbac ,_agef :=_feeb .(*_ebb .PdfIndirectObject ); _agef {_efbab ._ccfcg =_fbac ;_feeb =_fbac .PdfObject ;};_addaa ,_dgfgf :=_ebb .GetDict (_feeb );if !_dgfgf {_eg .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",_feeb ); return nil ,_ebb .ErrTypeError ;};if _ffadg :=_addaa .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_ffadg !=nil {_efbab .FontName =_ffadg ;}else {_eg .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"); };_gbcfc ,_ :=_ebb .GetName (_efbab .FontName );if _dcdff :=_addaa .Get ("\u0054\u0079\u0070\u0065");_dcdff !=nil {_badff ,_gagfg :=_dcdff .(*_ebb .PdfObjectName );if !_gagfg ||string (*_badff )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_eg .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",_dcdff ,_gbcfc ,_efbab .FontName ); };}else {_eg .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",_gbcfc ,_efbab .FontName ); };_efbab .FontFamily =_addaa .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_efbab .FontStretch =_addaa .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_efbab .FontWeight =_addaa .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074"); _efbab .Flags =_addaa .Get ("\u0046\u006c\u0061g\u0073");_efbab .FontBBox =_addaa .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_efbab .ItalicAngle =_addaa .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_efbab .Ascent =_addaa .Get ("\u0041\u0073\u0063\u0065\u006e\u0074"); _efbab .Descent =_addaa .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_efbab .Leading =_addaa .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_efbab .CapHeight =_addaa .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_efbab .XHeight =_addaa .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074"); _efbab .StemV =_addaa .Get ("\u0053\u0074\u0065m\u0056");_efbab .StemH =_addaa .Get ("\u0053\u0074\u0065m\u0048");_efbab .AvgWidth =_addaa .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_efbab .MaxWidth =_addaa .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068"); _efbab .MissingWidth =_addaa .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_efbab .FontFile =_addaa .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_efbab .FontFile2 =_addaa .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652"); _efbab .FontFile3 =_addaa .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_efbab .CharSet =_addaa .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_efbab .Style =_addaa .Get ("\u0053\u0074\u0079l\u0065");_efbab .Lang =_addaa .Get ("\u004c\u0061\u006e\u0067"); _efbab .FD =_addaa .Get ("\u0046\u0044");_efbab .CIDSet =_addaa .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _efbab .Flags !=nil {if _efbb ,_fbgf :=_ebb .GetIntVal (_efbab .Flags );_fbgf {_efbab ._gfbge =_efbb ;};};if _efbab .MissingWidth !=nil {if _egcg ,_gfage :=_ebb .GetNumberAsFloat (_efbab .MissingWidth ); _gfage ==nil {_efbab ._gbfgb =_egcg ;};};if _efbab .FontFile !=nil {_dcbga ,_bdaa :=_aafe (_efbab .FontFile );if _bdaa !=nil {return _efbab ,_bdaa ;};_eg .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_dcbga );_efbab .fontFile =_dcbga ; };if _efbab .FontFile2 !=nil {_cgegf ,_edbb :=_bad .NewFontFile2FromPdfObject (_efbab .FontFile2 );if _edbb !=nil {return _efbab ,_edbb ;};_eg .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_cgegf .String ());_efbab ._aeeb =&_cgegf ; };return _efbab ,nil ;};func (_ecegg *PdfWriter )optimizeDocument ()error {if _ecegg ._cafac ==nil {return nil ;};_ebbac ,_faebg :=_ebb .GetDict (_ecegg ._eadfd );if !_faebg {return _gf .New ("\u0061\u006e\u0020in\u0066\u006f\u0020\u006f\u0062\u006a\u0065\u0063\u0074 \u0069s\u0020n\u006ft\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079"); };_beeab :=_bda .Document {ID :[2]string {_ecegg ._gfdea ,_ecegg ._gffb },Version :_ecegg ._efcge ,Objects :_ecegg ._ebdgg ,Info :_ebbac ,Crypt :_ecegg ._cgfde ,UseHashBasedID :_ecegg ._abgcg };if _fefeca :=_ecegg ._cafac .ApplyStandard (&_beeab );_fefeca !=nil {return _fefeca ; };_ecegg ._gfdea ,_ecegg ._gffb =_beeab .ID [0],_beeab .ID [1];_ecegg ._efcge =_beeab .Version ;_ecegg ._ebdgg =_beeab .Objects ;_ecegg ._eadfd .PdfObject =_beeab .Info ;_ecegg ._abgcg =_beeab .UseHashBasedID ;_ecegg ._cgfde =_beeab .Crypt ;_cggfc :=make (map[_ebb .PdfObject ]struct{},len (_ecegg ._ebdgg )); for _ ,_eegd :=range _ecegg ._ebdgg {_cggfc [_eegd ]=struct{}{};};_ecegg ._ffffd =_cggfc ;return nil ;}; // Flags returns the field flags for the field accounting for any inherited flags. func (_ageea *PdfField )Flags ()FieldFlag {var _dddb FieldFlag ;_bfdd ,_bcba :=_ageea .inherit (func (_fdac *PdfField )bool {if _fdac .Ff !=nil {_dddb =FieldFlag (*_fdac .Ff );return true ;};return false ;});if _bcba !=nil {_eg .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",_bcba ); };if !_bfdd {_eg .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 _dddb ;}; // PdfColorspaceDeviceRGB represents an RGB colorspace. type PdfColorspaceDeviceRGB struct{}; // AddContentStreamByString adds content stream by string. Puts the content // string into a stream object and points the content stream towards it. func (_bfgec *PdfPage )AddContentStreamByString (contentStr string )error {_ebabe ,_acad :=_ebb .MakeStream ([]byte (contentStr ),_ebb .NewFlateEncoder ());if _acad !=nil {return _acad ;};if _bfgec .Contents ==nil {_bfgec .Contents =_ebabe ;}else {_bgdfc :=_ebb .TraceToDirectObject (_bfgec .Contents ); _fbfg ,_agfcbf :=_bgdfc .(*_ebb .PdfObjectArray );if !_agfcbf {_fbfg =_ebb .MakeArray (_bgdfc );};_fbfg .Append (_ebabe );_bfgec .Contents =_fbfg ;};return nil ;}; // ToPdfObject implements interface PdfModel. func (_afa *PdfActionGoTo3DView )ToPdfObject ()_ebb .PdfObject {_afa .PdfAction .ToPdfObject ();_cge :=_afa ._abe ;_cba :=_cge .PdfObject .(*_ebb .PdfObjectDictionary );_cba .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeGoTo3DView )));_cba .SetIfNotNil ("\u0054\u0041",_afa .TA ); _cba .SetIfNotNil ("\u0056",_afa .V );return _cge ;}; // 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 (_gacc *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aaadd ,_cbab :=_ebb .GetNumbersAsFloat (objects ); if _cbab !=nil {return nil ,_cbab ;};return _gacc .ColorFromFloats (_aaadd );}; // 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 ;_bcbfd *_ebb .PdfIndirectObject ;}; // ToPdfObject implements interface PdfModel. func (_agc *PdfAnnotationProjection )ToPdfObject ()_ebb .PdfObject {_agc .PdfAnnotation .ToPdfObject ();_abga :=_agc ._bdcd ;_dafb :=_abga .PdfObject .(*_ebb .PdfObjectDictionary );_agc .PdfAnnotationMarkup .appendToPdfDictionary (_dafb );return _abga ; }; // GetCharMetrics returns the char metrics for character code `code`. func (_dggdc pdfFontType0 )GetCharMetrics (code _da .CharCode )(_bad .CharMetrics ,bool ){if _dggdc .DescendantFont ==nil {_eg .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",_dggdc ); return _bad .CharMetrics {},false ;};return _dggdc .DescendantFont .GetCharMetrics (code );};func _ffaba (_bbffd *_ebb .PdfObjectArray )(float64 ,error ){_dgffb ,_ddcdd :=_bbffd .ToFloat64Array ();if _ddcdd !=nil {_eg .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",_bbffd ,_ddcdd ); };switch len (_dgffb ){case 1:return _dgffb [0],nil ;case 3:_fbbgc :=PdfColorspaceDeviceRGB {};_cfcaf ,_bfgff :=_fbbgc .ColorFromFloats (_dgffb );if _bfgff !=nil {return 0.0,_bfgff ;};return _cfcaf .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_faddeb :=PdfColorspaceDeviceCMYK {}; _dcebf ,_dcacg :=_faddeb .ColorFromFloats (_dgffb );if _dcacg !=nil {return 0.0,_dcacg ;};_ebcdf ,_dcacg :=_faddeb .ColorToRGB (_dcebf .(*PdfColorDeviceCMYK ));if _dcacg !=nil {return 0.0,_dcacg ;};return _ebcdf .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ; };_ddcdd =_gf .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_eg .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_bbffd ,_ddcdd ); return 0.0,_ddcdd ;}; // GetPageLabels returns the PageLabels entry in the PDF catalog. // See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008). func (_degcf *PdfReader )GetPageLabels ()(_ebb .PdfObject ,error ){_cfebd :=_ebb .ResolveReference (_degcf ._fdgda .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _cfebd ==nil {return nil ,nil ;};if !_degcf ._ceefa {_afabg :=_degcf .traverseObjectData (_cfebd ); if _afabg !=nil {return nil ,_afabg ;};};return _cfebd ,nil ;}; // PdfActionURI represents an URI action. type PdfActionURI struct{*PdfAction ;URI _ebb .PdfObject ;IsMap _ebb .PdfObject ;};func (_ddgbg *PdfReader )buildOutlineTree (_eead _ebb .PdfObject ,_fabf *PdfOutlineTreeNode ,_cfgdbg *PdfOutlineTreeNode ,_cdbcf map[_ebb .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _cdbcf ==nil {_cdbcf =map[_ebb .PdfObject ]struct{}{}; };_cdbcf [_eead ]=struct{}{};_dfeeg ,_bdbaef :=_eead .(*_ebb .PdfIndirectObject );if !_bdbaef {return nil ,nil ,_bg .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",_eead ); };_fdggb ,_aeabca :=_dfeeg .PdfObject .(*_ebb .PdfObjectDictionary );if !_aeabca {return nil ,nil ,_gf .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_eg .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",_fdggb ,_dfeeg ,_dfeeg ); if _cgeea :=_fdggb .Get ("\u0054\u0069\u0074l\u0065");_cgeea !=nil {_fgfdb ,_bdggg :=_ddgbg .newPdfOutlineItemFromIndirectObject (_dfeeg );if _bdggg !=nil {return nil ,nil ,_bdggg ;};_fgfdb .Parent =_fabf ;_fgfdb .Prev =_cfgdbg ;_febde :=_ebb .ResolveReference (_fdggb .Get ("\u0046\u0069\u0072s\u0074")); if _ ,_fcgbbg :=_cdbcf [_febde ];_febde !=nil &&_febde !=_dfeeg &&!_fcgbbg {if !_ebb .IsNullObject (_febde ){_gcdga ,_ggdc ,_cfdce :=_ddgbg .buildOutlineTree (_febde ,&_fgfdb .PdfOutlineTreeNode ,nil ,_cdbcf );if _cfdce !=nil {_eg .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",_cfdce ); }else {_fgfdb .First =_gcdga ;_fgfdb .Last =_ggdc ;};};};_ggab :=_ebb .ResolveReference (_fdggb .Get ("\u004e\u0065\u0078\u0074"));if _ ,_fabd :=_cdbcf [_ggab ];_ggab !=nil &&_ggab !=_dfeeg &&!_fabd {if !_ebb .IsNullObject (_ggab ){_bfaef ,_daed ,_dcef :=_ddgbg .buildOutlineTree (_ggab ,_fabf ,&_fgfdb .PdfOutlineTreeNode ,_cdbcf ); if _dcef !=nil {_eg .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",_dcef ); }else {_fgfdb .Next =_bfaef ;return &_fgfdb .PdfOutlineTreeNode ,_daed ,nil ;};};};return &_fgfdb .PdfOutlineTreeNode ,&_fgfdb .PdfOutlineTreeNode ,nil ;};_cdbda ,_edfga :=_fgff (_dfeeg );if _edfga !=nil {return nil ,nil ,_edfga ;};_cdbda .Parent =_fabf ; if _cdfgea :=_fdggb .Get ("\u0046\u0069\u0072s\u0074");_cdfgea !=nil {_cdfgea =_ebb .ResolveReference (_cdfgea );if _ ,_gbegd :=_cdbcf [_cdfgea ];_cdfgea !=nil &&_cdfgea !=_dfeeg &&!_gbegd {_cbbfe :=_ebb .TraceToDirectObject (_cdfgea );if _ ,_gfcef :=_cbbfe .(*_ebb .PdfObjectNull ); !_gfcef &&_cbbfe !=nil {_eaddd ,_bcaga ,_bgae :=_ddgbg .buildOutlineTree (_cdfgea ,&_cdbda .PdfOutlineTreeNode ,nil ,_cdbcf );if _bgae !=nil {_eg .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",_bgae ); }else {_cdbda .First =_eaddd ;_cdbda .Last =_bcaga ;};};};};return &_cdbda .PdfOutlineTreeNode ,&_cdbda .PdfOutlineTreeNode ,nil ;}; // ToPdfObject implements interface PdfModel. func (_abgg *PdfAnnotationUnderline )ToPdfObject ()_ebb .PdfObject {_abgg .PdfAnnotation .ToPdfObject ();_afd :=_abgg ._bdcd ;_ebada :=_afd .PdfObject .(*_ebb .PdfObjectDictionary );_abgg .PdfAnnotationMarkup .appendToPdfDictionary (_ebada );_ebada .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee")); _ebada .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_abgg .QuadPoints );return _afd ;};func _ffaa (_eafcb _ebb .PdfObject )[]*_ebb .PdfObjectStream {if _eafcb ==nil {return nil ;};_acefg ,_dgbcc :=_ebb .GetArray (_eafcb ); if !_dgbcc ||_acefg .Len ()==0{return nil ;};_fddae :=make ([]*_ebb .PdfObjectStream ,0,_acefg .Len ());for _ ,_cgbge :=range _acefg .Elements (){if _bggd ,_fdgc :=_ebb .GetStream (_cgbge );_fdgc {_fddae =append (_fddae ,_bggd );};};return _fddae ;}; // 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 (_cfaag *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_afbc :=vals [0];if _afbc < 0.0||_afbc > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_afbc ); return nil ,ErrColorOutOfRange ;};_effd :=NewPdfColorCalGray (_afbc );return _effd ,nil ;};func (_gfbd *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"}; // BorderEffect represents a border effect (Table 167 p. 395). type BorderEffect int ;func (_aggg *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _ecedb []*PdfFieldSignature ;for _ ,_gafd :=range _aggg .AllFields (){switch _eeegd :=_gafd .GetContext ().(type ){case *PdfFieldSignature :_cafgdg :=_eeegd ;_ecedb =append (_ecedb ,_cafgdg ); };};return _ecedb ;}; // ToInteger convert to an integer format. func (_ccfb *PdfColorLab )ToInteger (bits int )[3]uint32 {_eaf :=_cbg .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_eaf *_ccfb .L ()),uint32 (_eaf *_ccfb .A ()),uint32 (_eaf *_ccfb .B ())};};func _cfacd (_bceda StdFontName )(pdfFontSimple ,error ){_bebc ,_bafa :=_bad .NewStdFontByName (_bceda ); if !_bafa {return pdfFontSimple {},ErrFontNotSupported ;};_begc :=_fcgbc (_bebc );return _begc ,nil ;}; // PartialName returns the partial name of the field. func (_adfed *PdfField )PartialName ()string {_fbbgb :="";if _adfed .T !=nil {_fbbgb =_adfed .T .Decoded ();}else {_eg .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 _fbbgb ;}; // GetAscent returns the Ascent of the font `descriptor`. func (_dddc *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _ebb .GetNumberAsFloat (_dddc .Ascent );};func _bfbb (_gfab []byte )bool {if len (_gfab )< 4{return true ;};for _afgc :=range _gfab [:4]{_gaaa :=rune (_afgc );if !_cc .Is (_cc .ASCII_Hex_Digit ,_gaaa )&&!_cc .IsSpace (_gaaa ){return true ; };};return false ;}; // ToGoTime returns the date in time.Time format. func (_ceecg PdfDate )ToGoTime ()_f .Time {_babde :=int (_ceecg ._gcccb *60*60+_ceecg ._fddcbg *60);switch _ceecg ._degeb {case '-':_babde =-_babde ;case 'Z':_babde =0;};_aagf :=_bg .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_ceecg ._degeb ,_ceecg ._gcccb ,_ceecg ._fddcbg ); _dgcg :=_f .FixedZone (_aagf ,_babde );return _f .Date (int (_ceecg ._dacdd ),_f .Month (_ceecg ._agaba ),int (_ceecg ._edcfe ),int (_ceecg ._aedbe ),int (_ceecg ._cfaba ),int (_ceecg ._cgbcd ),0,_dgcg );}; // PdfShadingType7 is a Tensor-product patch mesh. type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_ebb .PdfObjectInteger ;BitsPerComponent *_ebb .PdfObjectInteger ;BitsPerFlag *_ebb .PdfObjectInteger ;Decode *_ebb .PdfObjectArray ;Function []PdfFunction ;};func _bdfea ()string {_daddc .Lock (); defer _daddc .Unlock ();return _feaca }; // Hasher is the interface that wraps the basic Write method. type Hasher interface{Write (_cfeba []byte )(_debdd int ,_abeadc error );}; // SetAction sets the PDF action for the annotation link. func (_add *PdfAnnotationLink )SetAction (action *PdfAction ){_add ._ffea =action ;if action ==nil {_add .A =nil ;};}; // 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 _ab .ReadSeeker )(*PdfReader ,error ){const _acbg ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _dcbd (rs ,&ReaderOpts {LazyLoad :true },false ,_acbg ); }; // PdfActionLaunch represents a launch action. type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _ebb .PdfObject ;Mac _ebb .PdfObject ;Unix _ebb .PdfObject ;NewWindow _ebb .PdfObject ;}; // SetPdfAuthor sets the Author attribute of the output PDF. func SetPdfAuthor (author string ){_daddc .Lock ();defer _daddc .Unlock ();_ecgdd =author }; // 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 (_bgge *Image )SetSamples (samples []uint32 ){if _bgge .BitsPerComponent < 8{samples =_bgge .samplesAddPadding (samples );};_beea :=_abg .ResampleUint32 (samples ,int (_bgge .BitsPerComponent ),8);_acgbf :=make ([]byte ,len (_beea ));for _ccbg ,_fcgbg :=range _beea {_acgbf [_ccbg ]=byte (_fcgbg ); };_bgge .Data =_acgbf ;}; // PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30). type PdfPage struct{Parent _ebb .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _ebb .PdfObject ;Contents _ebb .PdfObject ; Rotate *int64 ;Group _ebb .PdfObject ;Thumb _ebb .PdfObject ;B _ebb .PdfObject ;Dur _ebb .PdfObject ;Trans _ebb .PdfObject ;AA _ebb .PdfObject ;Metadata _ebb .PdfObject ;PieceInfo _ebb .PdfObject ;StructParents _ebb .PdfObject ;ID _ebb .PdfObject ;PZ _ebb .PdfObject ; SeparationInfo _ebb .PdfObject ;Tabs _ebb .PdfObject ;TemplateInstantiated _ebb .PdfObject ;PresSteps _ebb .PdfObject ;UserUnit _ebb .PdfObject ;VP _ebb .PdfObject ;Annots _ebb .PdfObject ;_bbfed []*PdfAnnotation ;_cdbfde *_ebb .PdfObjectDictionary ;_defbb *_ebb .PdfIndirectObject ; _ddab *PdfReader ;}; // 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 (_edbdg *PdfReader )Inspect ()(map[string ]int ,error ){return _edbdg ._cafdf .Inspect ()};func (_aabcbe *LTV )getOCSPs (_ccab []*_g .Certificate ,_cgecc map[string ]*_g .Certificate )([][]byte ,error ){_aecd :=make ([][]byte ,0,len (_ccab ));for _ ,_acgc :=range _ccab {for _ ,_cbad :=range _acgc .OCSPServer {if _aabcbe .CertClient .IsCA (_acgc ){continue ; };_ggfg ,_degg :=_cgecc [_acgc .Issuer .CommonName ];if !_degg {_eg .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 ;};_ ,_bacae ,_bbcc :=_aabcbe .OCSPClient .MakeRequest (_cbad ,_acgc ,_ggfg );if _bbcc !=nil {_eg .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",_bbcc ); continue ;};_aecd =append (_aecd ,_bacae );};};return _aecd ,nil ;}; // SetColorspaceByName adds the provided colorspace to the page resources. func (_eegea *PdfPageResources )SetColorspaceByName (keyName _ebb .PdfObjectName ,cs PdfColorspace )error {_bbbc ,_fcffb :=_eegea .GetColorspaces ();if _fcffb !=nil {_eg .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",_fcffb ); return _fcffb ;};if _bbbc ==nil {_bbbc =NewPdfPageResourcesColorspaces ();_eegea .SetColorSpace (_bbbc );};_bbbc .Set (keyName ,cs );return nil ;}; // ToGoImage converts the unidoc Image to a golang Image structure. func (_adab *Image )ToGoImage ()(_gdc .Image ,error ){_eg .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_agebf ,_ffbgb :=_dg .NewImage (int (_adab .Width ),int (_adab .Height ),int (_adab .BitsPerComponent ),_adab .ColorComponents ,_adab .Data ,_adab ._dagcb ,_adab ._dgcea ); if _ffbgb !=nil {return nil ,_ffbgb ;};return _agebf ,nil ;}; // NewPdfAnnotationPopup returns a new popup annotation. func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_dgcf :=NewPdfAnnotation ();_ebf :=&PdfAnnotationPopup {};_ebf .PdfAnnotation =_dgcf ;_dgcf .SetContext (_ebf );return _ebf ;}; // ToPdfObject implements interface PdfModel. func (_abgc *Permissions )ToPdfObject ()_ebb .PdfObject {return _abgc ._bdgdgf };func (_bdfe *pdfFontSimple )baseFields ()*fontCommon {return &_bdfe .fontCommon }; // PdfAnnotationLink represents Link annotations. // (Section 12.5.6.5 p. 403). type PdfAnnotationLink struct{*PdfAnnotation ;A _ebb .PdfObject ;Dest _ebb .PdfObject ;H _ebb .PdfObject ;PA _ebb .PdfObject ;QuadPoints _ebb .PdfObject ;BS _ebb .PdfObject ;_ffea *PdfAction ;_cfbg *PdfReader ;}; // GetContainingPdfObject implements interface PdfModel. func (_edabf *Permissions )GetContainingPdfObject ()_ebb .PdfObject {return _edabf ._bdgdgf }; // GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern. func (_abec *PdfPattern )GetContext ()PdfModel {return _abec ._ffagg };func _fcgbc (_adgfb _bad .StdFont )pdfFontSimple {_eaabd :=_adgfb .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_dfbf :"\u0054\u0079\u0070e\u0031",_fdacg :_adgfb .Name ()},_ddgd :_adgfb .GetMetricsTable (),_adbd :&PdfFontDescriptor {FontName :_ebb .MakeName (string (_eaabd .Name )),FontFamily :_ebb .MakeName (_eaabd .Family ),FontWeight :_ebb .MakeFloat (float64 (_eaabd .Weight )),Flags :_ebb .MakeInteger (int64 (_eaabd .Flags )),FontBBox :_ebb .MakeArrayFromFloats (_eaabd .BBox [:]),ItalicAngle :_ebb .MakeFloat (_eaabd .ItalicAngle ),Ascent :_ebb .MakeFloat (_eaabd .Ascent ),Descent :_ebb .MakeFloat (_eaabd .Descent ),CapHeight :_ebb .MakeFloat (_eaabd .CapHeight ),XHeight :_ebb .MakeFloat (_eaabd .XHeight ),StemV :_ebb .MakeFloat (_eaabd .StemV ),StemH :_ebb .MakeFloat (_eaabd .StemH )},_dacee :_adgfb .Encoder ()}; }; // NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive. func NewXObjectForm ()*XObjectForm {_abfcg :=&XObjectForm {};_acggfa :=&_ebb .PdfObjectStream {};_acggfa .PdfObjectDictionary =_ebb .MakeDict ();_abfcg ._gebcd =_acggfa ;return _abfcg ;};var (CourierName =_bad .CourierName ;CourierBoldName =_bad .CourierBoldName ; CourierObliqueName =_bad .CourierObliqueName ;CourierBoldObliqueName =_bad .CourierBoldObliqueName ;HelveticaName =_bad .HelveticaName ;HelveticaBoldName =_bad .HelveticaBoldName ;HelveticaObliqueName =_bad .HelveticaObliqueName ;HelveticaBoldObliqueName =_bad .HelveticaBoldObliqueName ; SymbolName =_bad .SymbolName ;ZapfDingbatsName =_bad .ZapfDingbatsName ;TimesRomanName =_bad .TimesRomanName ;TimesBoldName =_bad .TimesBoldName ;TimesItalicName =_bad .TimesItalicName ;TimesBoldItalicName =_bad .TimesBoldItalicName ;); // Set sets the colorspace corresponding to key. Add to Names if not set. func (_ggbae *PdfPageResourcesColorspaces )Set (key _ebb .PdfObjectName ,val PdfColorspace ){if _ ,_gefgf :=_ggbae .Colorspaces [string (key )];!_gefgf {_ggbae .Names =append (_ggbae .Names ,string (key ));};_ggbae .Colorspaces [string (key )]=val ;}; // GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton // for a button field. func (_bbgd *PdfField )GetContext ()PdfModel {return _bbgd ._cada }; // NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions. func NewPdfTransformParamsDocMDP (permission _ac .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_ebb .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_ebb .MakeInteger (int64 (permission )),V :_ebb .MakeName ("\u0031\u002e\u0032")}; }; // NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject. func NewPdfInfoFromObject (obj _ebb .PdfObject )(*PdfInfo ,error ){var _dfbgf PdfInfo ;_dddg ,_abaa :=obj .(*_ebb .PdfObjectDictionary );if !_abaa {return nil ,_bg .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0070\u0064\u0066\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079p\u0065:\u0020\u0025\u0054",obj ); };for _ ,_ggea :=range _dddg .Keys (){switch _ggea {case "\u0054\u0069\u0074l\u0065":_dfbgf .Title ,_ =_ebb .GetString (_dddg .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_dfbgf .Author ,_ =_ebb .GetString (_dddg .Get ("\u0041\u0075\u0074\u0068\u006f\u0072")); case "\u0053u\u0062\u006a\u0065\u0063\u0074":_dfbgf .Subject ,_ =_ebb .GetString (_dddg .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_dfbgf .Keywords ,_ =_ebb .GetString (_dddg .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073")); case "\u0043r\u0065\u0061\u0074\u006f\u0072":_dfbgf .Creator ,_ =_ebb .GetString (_dddg .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_dfbgf .Producer ,_ =_ebb .GetString (_dddg .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072")); case "\u0054r\u0061\u0070\u0070\u0065\u0064":_dfbgf .Trapped ,_ =_ebb .GetName (_dddg .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _gddf ,_gddba :=_ebb .GetString (_dddg .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065")); _gddba &&_gddf .String ()!=""{_agbge ,_dedc :=NewPdfDate (_gddf .String ());if _dedc !=nil {return nil ,_bg .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0072e\u0061\u0074\u0069\u006f\u006e\u0044\u0061t\u0065\u0020\u0066\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0077",_dedc ); };_dfbgf .CreationDate =&_agbge ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _afee ,_fdbf :=_ebb .GetString (_dddg .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_fdbf &&_afee .String ()!=""{_gcec ,_cgaed :=NewPdfDate (_afee .String ());if _cgaed !=nil {return nil ,_bg .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_cgaed ); };_dfbgf .ModifiedDate =&_gcec ;};default:_egdb ,_ :=_ebb .GetString (_dddg .Get (_ggea ));if _dfbgf ._gcgf ==nil {_dfbgf ._gcgf =_ebb .MakeDict ();};_dfbgf ._gcgf .Set (_ggea ,_egdb );};};return &_dfbgf ,nil ;}; // Evaluate runs the function on the passed in slice and returns the results. func (_cegee *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_eg .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };return nil ,_gf .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};func (_dcg *PdfReader )newPdfActionSetOCGStateFromDict (_dag *_ebb .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_dag .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_dag .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ; }; // NewPdfPage returns a new PDF page. func NewPdfPage ()*PdfPage {_cbfdf :=PdfPage {};_cbfdf ._cdbfde =_ebb .MakeDict ();_cbfdf .Resources =NewPdfPageResources ();_ccgf :=_ebb .PdfIndirectObject {};_ccgf .PdfObject =_cbfdf ._cdbfde ;_cbfdf ._defbb =&_ccgf ;return &_cbfdf ;}; // Y returns the value of the yellow component of the color. func (_caeea *PdfColorDeviceCMYK )Y ()float64 {return _caeea [2]}; // GetContainingPdfObject gets the primitive used to parse the color space. func (_bccd *PdfColorspaceICCBased )GetContainingPdfObject ()_ebb .PdfObject {return _bccd ._dfff }; // DecodeArray returns the component range values for the Indexed colorspace. func (_gaegg *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_gaegg .HiVal )};};func _gccbf (_cbcdc *_ebb .PdfObjectDictionary )(*PdfFieldButton ,error ){_effg :=&PdfFieldButton {};_effg .PdfField =NewPdfField ();_effg .PdfField .SetContext (_effg ); _effg .Opt ,_ =_ebb .GetArray (_cbcdc .Get ("\u004f\u0070\u0074"));_gbefa :=NewPdfAnnotationWidget ();_gbefa .A ,_ =_ebb .GetDict (_cbcdc .Get ("\u0041"));_gbefa .AP ,_ =_ebb .GetDict (_cbcdc .Get ("\u0041\u0050"));_gbefa .SetContext (_effg );_effg .PdfField .Annotations =append (_effg .PdfField .Annotations ,_gbefa ); return _effg ,nil ;}; // GetCatalogStructTreeRoot gets the catalog StructTreeRoot object. func (_dgcdg *PdfReader )GetCatalogStructTreeRoot ()(_ebb .PdfObject ,bool ){if _dgcdg ._fdgda ==nil {return nil ,false ;};_cggcf :=_dgcdg ._fdgda .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return _cggcf ,_cggcf !=nil ; }; // AddCustomInfo adds a custom info into document info dictionary. func (_gead *PdfInfo )AddCustomInfo (name string ,value string )error {if _gead ._gcgf ==nil {_gead ._gcgf =_ebb .MakeDict ();};if _ ,_afcg :=_eefgb [name ];_afcg {return _bg .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 ); };_gead ._gcgf .SetIfNotNil (*_ebb .MakeName (name ),_ebb .MakeString (value ));return nil ;}; // DecodeArray returns the range of color component values in DeviceGray colorspace. func (_aggf *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}}; // 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 *_ebb .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;}; // 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 (_ebddf *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_gfeg ,_ ,_ggae :=_ebddf .CharcodesToUnicodeWithStats (_ebddf .BytesToCharcodes (data ));_agff :=_da .ExpandLigatures (_gfeg );return _agff ,_de .RuneCountInString (_agff ),_ggae ; };func (_fed *PdfReader )newPdfAnnotationSquareFromDict (_bbab *_ebb .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_gbad :=PdfAnnotationSquare {};_gfbc ,_egf :=_fed .newPdfAnnotationMarkupFromDict (_bbab );if _egf !=nil {return nil ,_egf ;};_gbad .PdfAnnotationMarkup =_gfbc ; _gbad .BS =_bbab .Get ("\u0042\u0053");_gbad .IC =_bbab .Get ("\u0049\u0043");_gbad .BE =_bbab .Get ("\u0042\u0045");_gbad .RD =_bbab .Get ("\u0052\u0044");return &_gbad ,nil ;}; // PdfTransformParamsDocMDP represents a transform parameters dictionary for the DocMDP method and is used to detect // modifications relative to a signature field that is signed by the author of a document. // (Section 12.8.2.2, Table 254 - Entries in the DocMDP transform parameters dictionary p. 471 in PDF32000_2008). type PdfTransformParamsDocMDP struct{Type *_ebb .PdfObjectName ;P *_ebb .PdfObjectInteger ;V *_ebb .PdfObjectName ;};func (_bdabeb *PdfWriter )writeDocumentVersion (){if _bdabeb ._abffb {_bdabeb .writeString ("\u000a");}else {_bdabeb .writeString (_bg .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_bdabeb ._efcge .Major ,_bdabeb ._efcge .Minor )); _bdabeb .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};}; // ToPdfObject returns the text field dictionary within an indirect object (container). func (_cgab *PdfFieldText )ToPdfObject ()_ebb .PdfObject {_cgab .PdfField .ToPdfObject ();_ffcc :=_cgab ._cdfd ;_fdcf :=_ffcc .PdfObject .(*_ebb .PdfObjectDictionary );_fdcf .Set ("\u0046\u0054",_ebb .MakeName ("\u0054\u0078"));if _cgab .DA !=nil {_fdcf .Set ("\u0044\u0041",_cgab .DA ); };if _cgab .Q !=nil {_fdcf .Set ("\u0051",_cgab .Q );};if _cgab .DS !=nil {_fdcf .Set ("\u0044\u0053",_cgab .DS );};if _cgab .RV !=nil {_fdcf .Set ("\u0052\u0056",_cgab .RV );};if _cgab .MaxLen !=nil {_fdcf .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_cgab .MaxLen ); };return _ffcc ;}; // SetPatternByName sets a pattern resource specified by keyName. func (_geae *PdfPageResources )SetPatternByName (keyName _ebb .PdfObjectName ,pattern _ebb .PdfObject )error {if _geae .Pattern ==nil {_geae .Pattern =_ebb .MakeDict ();};_geedg ,_cfgcd :=_geae .Pattern .(*_ebb .PdfObjectDictionary );if !_cfgcd {return _ebb .ErrTypeError ; };_geedg .Set (keyName ,pattern );return nil ;}; // PdfAction represents an action in PDF (section 12.6 p. 412). type PdfAction struct{_ad PdfModel ;Type _ebb .PdfObject ;S _ebb .PdfObject ;Next _ebb .PdfObject ;_abe *_ebb .PdfIndirectObject ;}; // ToPdfObject converts the pdfCIDFontType2 to a PDF representation. func (_cfcga *pdfCIDFontType2 )ToPdfObject ()_ebb .PdfObject {if _cfcga ._ddea ==nil {_cfcga ._ddea =&_ebb .PdfIndirectObject {};};_dggc :=_cfcga .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"); _cfcga ._ddea .PdfObject =_dggc ;if _cfcga .CIDSystemInfo !=nil {_dggc .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_cfcga .CIDSystemInfo );};if _cfcga .DW !=nil {_dggc .Set ("\u0044\u0057",_cfcga .DW );};if _cfcga .DW2 !=nil {_dggc .Set ("\u0044\u0057\u0032",_cfcga .DW2 ); };if _cfcga .W !=nil {_dggc .Set ("\u0057",_cfcga .W );};if _cfcga .W2 !=nil {_dggc .Set ("\u0057\u0032",_cfcga .W2 );};if _cfcga .CIDToGIDMap !=nil {_dggc .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_cfcga .CIDToGIDMap );};return _cfcga ._ddea ; }; // GetContainingPdfObject returns the container of the resources object (indirect object). func (_agfg *PdfPageResources )GetContainingPdfObject ()_ebb .PdfObject {return _agfg ._efbed };func _ggbgd (_faac _ebb .PdfObject )(*PdfFunctionType3 ,error ){_aegfb :=&PdfFunctionType3 {};var _cffec *_ebb .PdfObjectDictionary ;if _fcffd ,_fcea :=_faac .(*_ebb .PdfIndirectObject ); _fcea {_ebfecc ,_egac :=_fcffd .PdfObject .(*_ebb .PdfObjectDictionary );if !_egac {return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_aegfb ._acac =_fcffd ;_cffec =_ebfecc ;}else if _gcaf ,_fcaa :=_faac .(*_ebb .PdfObjectDictionary ); _fcaa {_cffec =_gcaf ;}else {return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gfdba ,_gagb :=_ebb .TraceToDirectObject (_cffec .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ebb .PdfObjectArray ); if !_gagb {_eg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gf .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 _gfdba .Len ()!=2{_eg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gf .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_gdaeg ,_dfdb :=_gfdba .ToFloat64Array (); if _dfdb !=nil {return nil ,_dfdb ;};_aegfb .Domain =_gdaeg ;_gfdba ,_gagb =_ebb .TraceToDirectObject (_cffec .Get ("\u0052\u0061\u006eg\u0065")).(*_ebb .PdfObjectArray );if _gagb {if _gfdba .Len ()< 0||_gfdba .Len ()%2!=0{return nil ,_gf .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065"); };_dfbee ,_afcfc :=_gfdba .ToFloat64Array ();if _afcfc !=nil {return nil ,_afcfc ;};_aegfb .Range =_dfbee ;};_gfdba ,_gagb =_ebb .TraceToDirectObject (_cffec .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_ebb .PdfObjectArray );if !_gagb {_eg .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 ,_gf .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");};_aegfb .Functions =[]PdfFunction {}; for _ ,_fffc :=range _gfdba .Elements (){_gbdf ,_edcef :=_aagg (_fffc );if _edcef !=nil {return nil ,_edcef ;};_aegfb .Functions =append (_aegfb .Functions ,_gbdf );};_gfdba ,_gagb =_ebb .TraceToDirectObject (_cffec .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_ebb .PdfObjectArray ); if !_gagb {_eg .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gf .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"); };_ebfbg ,_dfdb :=_gfdba .ToFloat64Array ();if _dfdb !=nil {return nil ,_dfdb ;};_aegfb .Bounds =_ebfbg ;if len (_aegfb .Bounds )!=len (_aegfb .Functions )-1{_eg .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 (_aegfb .Bounds ),len (_aegfb .Functions )); return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gfdba ,_gagb =_ebb .TraceToDirectObject (_cffec .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ebb .PdfObjectArray );if !_gagb {_eg .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064"); return nil ,_gf .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");};_dffgg ,_dfdb :=_gfdba .ToFloat64Array (); if _dfdb !=nil {return nil ,_dfdb ;};_aegfb .Encode =_dffgg ;if len (_aegfb .Encode )!=2*len (_aegfb .Functions ){_eg .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 (_aegfb .Encode ),len (_aegfb .Functions )); return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _aegfb ,nil ;}; // ToPdfObject implements interface PdfModel. func (_eab *PdfAnnotationSound )ToPdfObject ()_ebb .PdfObject {_eab .PdfAnnotation .ToPdfObject ();_eddf :=_eab ._bdcd ;_bfe :=_eddf .PdfObject .(*_ebb .PdfObjectDictionary );_eab .PdfAnnotationMarkup .appendToPdfDictionary (_bfe );_bfe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0053\u006f\u0075n\u0064")); _bfe .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_eab .Sound );_bfe .SetIfNotNil ("\u004e\u0061\u006d\u0065",_eab .Name );return _eddf ;}; // 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 {_dgggc ,_gagd :=NewStandard14Font (basefont );if _gagd !=nil {panic (_bg .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 _dgggc ;}; // PdfOutlineTreeNode contains common fields used by the outline and outline // item objects. type PdfOutlineTreeNode struct{_geeee interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};func _fbgbf (_dcabfc _ebb .PdfObject ){_eg .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_dcabfc ,_dcabfc .String ()); if _dgccf ,_dffce :=_dcabfc .(*_ebb .PdfObjectStream );_dffce {_adafc ,_addfe :=_ebb .DecodeStream (_dgccf );if _addfe !=nil {_eg .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_addfe );return ;};_eg .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_adafc ); }else if _gcbf ,_eegee :=_dcabfc .(*_ebb .PdfIndirectObject );_eegee {_eg .Log .Debug ("\u0025\u0054\u0020%\u0076",_gcbf .PdfObject ,_gcbf .PdfObject );_eg .Log .Debug ("\u0025\u0073",_gcbf .PdfObject .String ());};}; // GetNameDictionary returns the Names entry in the PDF catalog. // See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008). func (_afegb *PdfReader )GetNameDictionary ()(_ebb .PdfObject ,error ){_ebefa :=_ebb .ResolveReference (_afegb ._fdgda .Get ("\u004e\u0061\u006de\u0073"));if _ebefa ==nil {return nil ,nil ;};if !_afegb ._ceefa {_accdd :=_afegb .traverseObjectData (_ebefa ); if _accdd !=nil {return nil ,_accdd ;};};return _ebefa ,nil ;}; // 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 (_abbc *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _abbc .RunesToCharcodeBytes ([]rune (str ));}; // 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"`;}; // 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 (_fdgd _ab .Reader )(*Image ,error ); // NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure. NewImageFromGoImage (_cccf _gdc .Image )(*Image ,error ); // NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure. NewGrayImageFromGoImage (_dedde _gdc .Image )(*Image ,error ); // Compress an image. Compress (_dbcb *Image ,_cdfae int64 )(*Image ,error );}; // ToPdfObject returns a PDF object representation of the outline item. func (_cgagd *OutlineItem )ToPdfObject ()_ebb .PdfObject {_edaaf ,_ :=_cgagd .ToPdfOutlineItem ();return _edaaf .ToPdfObject ();}; // ToPdfObject converts the font to a PDF representation. func (_abbgd *pdfFontType3 )ToPdfObject ()_ebb .PdfObject {if _abbgd ._adec ==nil {_abbgd ._adec =&_ebb .PdfIndirectObject {};};_beebd :=_abbgd .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_abbgd ._adec .PdfObject =_beebd ;if _abbgd .FirstChar !=nil {_beebd .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_abbgd .FirstChar ); };if _abbgd .LastChar !=nil {_beebd .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_abbgd .LastChar );};if _abbgd .Widths !=nil {_beebd .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_abbgd .Widths );};if _abbgd .Encoding !=nil {_beebd .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_abbgd .Encoding ); }else if _abbgd ._abcba !=nil {_efag :=_abbgd ._abcba .ToPdfObject ();if _efag !=nil {_beebd .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_efag );};};if _abbgd .FontBBox !=nil {_beebd .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_abbgd .FontBBox ); };if _abbgd .FontMatrix !=nil {_beebd .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_abbgd .FontMatrix );};if _abbgd .CharProcs !=nil {_beebd .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_abbgd .CharProcs );};if _abbgd .Resources !=nil {_beebd .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_abbgd .Resources ); };return _abbgd ._adec ;};func (_afcf *PdfReader )flattenFieldsWithOpts (_gada bool ,_gfbb FieldAppearanceGenerator ,_dbfe *FieldFlattenOpts )error {if _dbfe ==nil {_dbfe =&FieldFlattenOpts {};};var _badf bool ;_affeb :=map[*PdfAnnotation ]bool {};{var _febed []*PdfField ; _cagb :=_afcf .AcroForm ;if _cagb !=nil {if _dbfe .FilterFunc !=nil {_febed =_cagb .filteredFields (_dbfe .FilterFunc ,true );_badf =_cagb .Fields !=nil &&len (*_cagb .Fields )> 0;}else {_febed =_cagb .AllFields ();};};for _ ,_eggbe :=range _febed {for _ ,_ceabg :=range _eggbe .Annotations {_affeb [_ceabg .PdfAnnotation ]=_eggbe .V !=nil ; if _gfbb !=nil {_gfbcg ,_aedab :=_gfbb .GenerateAppearanceDict (_cagb ,_eggbe ,_ceabg );if _aedab !=nil {return _aedab ;};_ceabg .AP =_gfbcg ;};};};};if _gada {for _ ,_fcbb :=range _afcf .PageList {_gdagg ,_ebec :=_fcbb .GetAnnotations ();if _ebec !=nil {return _ebec ; };for _ ,_dcfc :=range _gdagg {_affeb [_dcfc ]=true ;};};};for _ ,_egag :=range _afcf .PageList {var _dcfbb []*PdfAnnotation ;if _gfbb !=nil {if _fage :=_gfbb .WrapContentStream (_egag );_fage !=nil {return _fage ;};};_ecfd ,_adfedf :=_egag .GetAnnotations (); if _adfedf !=nil {return _adfedf ;};for _ ,_cbgf :=range _ecfd {_ceb ,_dfbd :=_affeb [_cbgf ];if !_dfbd &&_dbfe .AnnotFilterFunc !=nil {if _ ,_fadg :=_cbgf .GetContext ().(*PdfAnnotationWidget );!_fadg {_dfbd =_dbfe .AnnotFilterFunc (_cbgf );};};if !_dfbd {_dcfbb =append (_dcfbb ,_cbgf ); continue ;};switch _cbgf .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;};_deebg ,_gdbg ,_eccaa :=_bdgcb (_cbgf );if _eccaa !=nil {if !_ceb {_eg .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 ;};_eg .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",_eccaa ); continue ;};if _deebg ==nil {continue ;};_dfce :=_egag .Resources .GenerateXObjectName ();_egag .Resources .SetXObjectFormByName (_dfce ,_deebg );_gfgc :=_cbg .Min (_gdbg .Llx ,_gdbg .Urx );_ecfbb :=_cbg .Min (_gdbg .Lly ,_gdbg .Ury );var _bdgab []string ; _bdgab =append (_bdgab ,"\u0071");_bdgab =append (_bdgab ,_bg .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,_gfgc ,_ecfbb )); _bdgab =append (_bdgab ,_bg .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_dfce .String ()));_bdgab =append (_bdgab ,"\u0051");_fdefd :=_ee .Join (_bdgab ,"\u000a");_eccaa =_egag .AppendContentStream (_fdefd );if _eccaa !=nil {return _eccaa ;};if _deebg .Resources !=nil {_ffecg ,_addc :=_ebb .GetDict (_deebg .Resources .Font ); if _addc {for _ ,_daegg :=range _ffecg .Keys (){if !_egag .Resources .HasFontByName (_daegg ){_egag .Resources .SetFontByName (_daegg ,_ffecg .Get (_daegg ));};};};};};if len (_dcfbb )> 0{_egag ._bbfed =_dcfbb ;}else {_egag ._bbfed =[]*PdfAnnotation {}; };};if !_badf {_afcf .AcroForm =nil ;};return nil ;}; // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // components. The slice should contain a single PdfObjectFloat element. func (_fadb *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ecbb ,_fdcb :=_ebb .GetNumbersAsFloat (objects ); if _fdcb !=nil {return nil ,_fdcb ;};return _fadb .ColorFromFloats (_ecbb );}; // ToInteger convert to an integer format. func (_aefb *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_efccd :=_cbg .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_efccd *_aefb .R ()),uint32 (_efccd *_aefb .G ()),uint32 (_efccd *_aefb .B ())};}; // NewPdfFieldSignature returns an initialized signature field. func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_cgcf :=&PdfFieldSignature {};_cgcf .PdfField =NewPdfField ();_cgcf .PdfField .SetContext (_cgcf );_cgcf .PdfAnnotationWidget =NewPdfAnnotationWidget ();_cgcf .PdfAnnotationWidget .SetContext (_cgcf ); _cgcf .PdfAnnotationWidget ._bdcd =_cgcf .PdfField ._cdfd ;_cgcf .T =_ebb .MakeString ("");_cgcf .F =_ebb .MakeInteger (132);_cgcf .V =signature ;return _cgcf ;};func (_gdg *PdfReader )newPdfActionSoundFromDict (_fbg *_ebb .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_fbg .Get ("\u0053\u006f\u0075n\u0064"),Volume :_fbg .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_fbg .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_fbg .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_fbg .Get ("\u004d\u0069\u0078")},nil ; }; // GetContainingPdfObject returns the container of the shading object (indirect object). func (_ebead *PdfShading )GetContainingPdfObject ()_ebb .PdfObject {return _ebead ._fbfae }; // Mask returns the uin32 bitmask for the specific flag. func (_dfagf FieldFlag )Mask ()uint32 {return uint32 (_dfagf )}; // NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams. func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_ebb .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_ebb .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()}; }; // GetXObjectImageByName returns the XObjectImage with the specified name from the // page resources, if it exists. func (_bdbe *PdfPageResources )GetXObjectImageByName (keyName _ebb .PdfObjectName )(*XObjectImage ,error ){_bcfca ,_dbdd :=_bdbe .GetXObjectByName (keyName );if _bcfca ==nil {return nil ,nil ;};if _dbdd !=XObjectTypeImage {return nil ,_gf .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065"); };_baea ,_bbece :=NewXObjectImageFromStream (_bcfca );if _bbece !=nil {return nil ,_bbece ;};return _baea ,nil ;}; // GetContainingPdfObject implements model.PdfModel interface. func (_bbebf *PdfOutputIntent )GetContainingPdfObject ()_ebb .PdfObject {return _bbebf ._faeb }; // 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 ;_ffagg PdfModel ;_dcddc _ebb .PdfObject ;}; // HasFontByName checks whether a font is defined by the specified keyName. func (_egccf *PdfPageResources )HasFontByName (keyName _ebb .PdfObjectName )bool {_ ,_cfeee :=_egccf .GetFontByName (keyName );return _cfeee ;}; // 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 (_agdg *PdfFieldButton )GetType ()ButtonType {_ebea :=ButtonTypeCheckbox ;if _agdg .Ff !=nil {if (uint32 (*_agdg .Ff )&FieldFlagPushbutton .Mask ())> 0{_ebea =ButtonTypePush ;}else if (uint32 (*_agdg .Ff )&FieldFlagRadio .Mask ())> 0{_ebea =ButtonTypeRadio ; };};return _ebea ;};func _aggb (_gbga *_ebb .PdfObjectDictionary ,_eaec *fontCommon )(*pdfFontType0 ,error ){_bebfdb ,_gbddg :=_ebb .GetArray (_gbga .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));if !_gbddg {_eg .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",_eaec ); return nil ,_ebb .ErrRangeError ;};if _bebfdb .Len ()!=1{_eg .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",_bebfdb .Len ()); return nil ,_ebb .ErrRangeError ;};_baeg ,_bbgaa :=_ddacd (_bebfdb .Get (0),false );if _bbgaa !=nil {_eg .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",_bbgaa ,_eaec ); return nil ,_bbgaa ;};_cbbc :=_gegg (_eaec );_cbbc .DescendantFont =_baeg ;_ebbee ,_gbddg :=_ebb .GetNameVal (_gbga .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _gbddg {if _ebbee =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_ebbee =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_cbbc ._bfdgc =_da .NewIdentityTextEncoder (_ebbee ); }else if _ebe .IsPredefinedCMap (_ebbee ){_cbbc ._efeb ,_bbgaa =_ebe .LoadPredefinedCMap (_ebbee );if _bbgaa !=nil {_eg .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",_ebbee ,_bbgaa ); };}else {_eg .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_ebbee );};};if _gaef :=_baeg .baseFields ()._dcdd ;_gaef !=nil {if _bcbaa :=_gaef .Name ();_bcbaa =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_bcbaa =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_bcbaa =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_bcbaa =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_cbbc ._bfdgc =_da .NewCMapEncoder (_ebbee ,_cbbc ._efeb ,_gaef ); };};return _cbbc ,nil ;}; // Read reads an image and loads into a new Image object with an RGB // colormap and 8 bits per component. func (_affac DefaultImageHandler )Read (reader _ab .Reader )(*Image ,error ){_daef ,_ ,_bdfg :=_gdc .Decode (reader );if _bdfg !=nil {_eg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_bdfg ); return nil ,_bdfg ;};return _affac .NewImageFromGoImage (_daef );}; // ToPdfObject implements interface PdfModel. func (_abfa *PdfAnnotationWatermark )ToPdfObject ()_ebb .PdfObject {_abfa .PdfAnnotation .ToPdfObject ();_ebdc :=_abfa ._bdcd ;_gaec :=_ebdc .PdfObject .(*_ebb .PdfObjectDictionary );_gaec .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k")); _gaec .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_abfa .FixedPrint );return _ebdc ;};func (_degdc fontCommon )isCIDFont ()bool {if _degdc ._dfbf ==""{_eg .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",_degdc ); };_gbbd :=false ;switch _degdc ._dfbf {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":_gbbd =true ;};_eg .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",_gbbd ,_degdc ); return _gbbd ;}; // 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 ; // ToInteger convert to an integer format. func (_ggbb *PdfColorCalGray )ToInteger (bits int )uint32 {_cddg :=_cbg .Pow (2,float64 (bits ))-1;return uint32 (_cddg *_ggbb .Val ());}; // SetXObjectByName adds the XObject from the passed in stream to the page resources. // The added XObject is identified by the specified name. func (_bafg *PdfPageResources )SetXObjectByName (keyName _ebb .PdfObjectName ,stream *_ebb .PdfObjectStream )error {if _bafg .XObject ==nil {_bafg .XObject =_ebb .MakeDict ();};_eedge :=_ebb .TraceToDirectObject (_bafg .XObject );_abgge ,_bfaefg :=_eedge .(*_ebb .PdfObjectDictionary ); if !_bfaefg {_eg .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",_bafg .XObject ,_eedge );return _gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072"); };_abgge .Set (keyName ,stream );return nil ;};func (_dege *PdfAppender )replaceObject (_efcg ,_fdad _ebb .PdfObject ){switch _fgeee :=_efcg .(type ){case *_ebb .PdfIndirectObject :_dege ._gbfa [_fdad ]=_fgeee .ObjectNumber ;case *_ebb .PdfObjectStream :_dege ._gbfa [_fdad ]=_fgeee .ObjectNumber ; };}; // NewPdfAnnotationRichMedia returns a new rich media annotation. func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_dab :=NewPdfAnnotation ();_afc :=&PdfAnnotationRichMedia {};_afc .PdfAnnotation =_dab ;_dab .SetContext (_afc );return _afc ;};func (_fgg *PdfReader )newPdfActionGotoRFromDict (_eae *_ebb .PdfObjectDictionary )(*PdfActionGoToR ,error ){_cfbf ,_gdab :=_gggf (_eae .Get ("\u0046")); if _gdab !=nil {return nil ,_gdab ;};return &PdfActionGoToR {D :_eae .Get ("\u0044"),NewWindow :_eae .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_cfbf },nil ;};func (_fgggde *PdfWriter )writeBytes (_abdbb []byte ){if _fgggde ._bgef !=nil {return ; };_acdbg ,_fegg :=_fgggde ._cbabb .Write (_abdbb );_fgggde ._afedd +=int64 (_acdbg );_fgggde ._bgef =_fegg ;};func (_cgcg *PdfAppender )mergeResources (_cegb ,_cage _ebb .PdfObject ,_gge map[_ebb .PdfObjectName ]_ebb .PdfObjectName )_ebb .PdfObject {if _cage ==nil &&_cegb ==nil {return nil ; };if _cage ==nil {return _cegb ;};_geff ,_acdd :=_ebb .GetDict (_cage );if !_acdd {return _cegb ;};if _cegb ==nil {_dgde :=_ebb .MakeDict ();_dgde .Merge (_geff );return _cage ;};_dgdb ,_acdd :=_ebb .GetDict (_cegb );if !_acdd {_eg .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"); _dgdb =_ebb .MakeDict ();};for _ ,_fbeb :=range _geff .Keys (){if _deb ,_dgcb :=_gge [_fbeb ];_dgcb {_dgdb .Set (_deb ,_geff .Get (_fbeb ));}else {_dgdb .Set (_fbeb ,_geff .Get (_fbeb ));};};return _dgdb ;}; // NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object. func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_acbc :=&PdfPageResourcesColorspaces {};_acbc .Names =[]string {};_acbc .Colorspaces =map[string ]PdfColorspace {};_acbc ._ddffd =&_ebb .PdfIndirectObject {};return _acbc ;}; // GetCerts returns the signature certificate chain. func (_fadac *PdfSignature )GetCerts ()([]*_g .Certificate ,error ){var _dabcd []func ()([]*_g .Certificate ,error );switch _cbfc ,_ :=_ebb .GetNameVal (_fadac .SubFilter );_cbfc {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":_dabcd =append (_dabcd ,_fadac .extractChainFromPKCS7 ,_fadac .extractChainFromCert ); case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_dabcd =append (_dabcd ,_fadac .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_dabcd =append (_dabcd ,_fadac .extractChainFromPKCS7 ); default:return nil ,_bg .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_cbfc );};for _ ,_eadcd :=range _dabcd {_dbaad ,_aadf :=_eadcd ();if _aadf !=nil {return nil ,_aadf ; };if len (_dbaad )> 0{return _dbaad ,nil ;};};return nil ,ErrSignNoCertificates ;};func (_bedg *PdfReader )newPdfAnnotationInkFromDict (_abac *_ebb .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_eece :=PdfAnnotationInk {};_aedc ,_aad :=_bedg .newPdfAnnotationMarkupFromDict (_abac ); if _aad !=nil {return nil ,_aad ;};_eece .PdfAnnotationMarkup =_aedc ;_eece .InkList =_abac .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_eece .BS =_abac .Get ("\u0042\u0053");return &_eece ,nil ;}; // SetPdfModifiedDate sets the ModDate attribute of the output PDF. func SetPdfModifiedDate (modifiedDate _f .Time ){_daddc .Lock ();defer _daddc .Unlock ();_ccdff =modifiedDate ;}; // ToPdfObject implements interface PdfModel. func (_fgee *PdfAnnotationLine )ToPdfObject ()_ebb .PdfObject {_fgee .PdfAnnotation .ToPdfObject ();_cabf :=_fgee ._bdcd ;_cea :=_cabf .PdfObject .(*_ebb .PdfObjectDictionary );_fgee .PdfAnnotationMarkup .appendToPdfDictionary (_cea );_cea .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u004c\u0069\u006e\u0065")); _cea .SetIfNotNil ("\u004c",_fgee .L );_cea .SetIfNotNil ("\u0042\u0053",_fgee .BS );_cea .SetIfNotNil ("\u004c\u0045",_fgee .LE );_cea .SetIfNotNil ("\u0049\u0043",_fgee .IC );_cea .SetIfNotNil ("\u004c\u004c",_fgee .LL );_cea .SetIfNotNil ("\u004c\u004c\u0045",_fgee .LLE ); _cea .SetIfNotNil ("\u0043\u0061\u0070",_fgee .Cap );_cea .SetIfNotNil ("\u0049\u0054",_fgee .IT );_cea .SetIfNotNil ("\u004c\u004c\u004f",_fgee .LLO );_cea .SetIfNotNil ("\u0043\u0050",_fgee .CP );_cea .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_fgee .Measure ); _cea .SetIfNotNil ("\u0043\u004f",_fgee .CO );return _cabf ;};var _ pdfFont =(*pdfCIDFontType2 )(nil ); // ApplyStandard is used to apply changes required on the document to match the rules required by the input standard. // The writer's content would be changed after all the document parts are already established during the Write method. // A good example of the StandardApplier could be a PDF/A Profile (i.e.: pdfa.Profile1A). In such a case PdfWriter would // set up all rules required by that Profile. func (_bgdaae *PdfWriter )ApplyStandard (optimizer StandardApplier ){_bgdaae ._cafac =optimizer }; // ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which // replaces the original AcroForm. func (_afcd *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_afcd .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_afcd ._bfef =acroForm ;}; // 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 (_dbcf *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fcgf :=vals [0];if _fcgf < 0.0||_fcgf > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fcgf ); return nil ,ErrColorOutOfRange ;};_dfgg :=vals [1];if _dfgg < 0.0||_dfgg > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fcgf );return nil ,ErrColorOutOfRange ; };_bfad :=vals [2];if _bfad < 0.0||_bfad > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fcgf );return nil ,ErrColorOutOfRange ;};_aecb :=NewPdfColorDeviceRGB (_fcgf ,_dfgg ,_bfad ); return _aecb ,nil ;}; // ColorFromFloats returns a new PdfColor based on input color components. func (_afef *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_afef .GetNumComponents (){return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_becea ,_efcaa :=_afef .TintTransform .Evaluate (vals ); if _efcaa !=nil {return nil ,_efcaa ;};_dfad ,_efcaa :=_afef .AlternateSpace .ColorFromFloats (_becea );if _efcaa !=nil {return nil ,_efcaa ;};return _dfad ,nil ;}; // PdfFunctionType4 is a Postscript calculator functions. type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_bc .PSProgram ;_bdbae *_bc .PSExecutor ;_abbbb []byte ;_gbgd *_ebb .PdfObjectStream ;}; // PdfActionGoToR represents a GoToR action. type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _ebb .PdfObject ;NewWindow _ebb .PdfObject ;};func (_gdgc *PdfReader )newPdfAnnotationSquigglyFromDict (_eegc *_ebb .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_fcfdd :=PdfAnnotationSquiggly {}; _abdg ,_eecg :=_gdgc .newPdfAnnotationMarkupFromDict (_eegc );if _eecg !=nil {return nil ,_eecg ;};_fcfdd .PdfAnnotationMarkup =_abdg ;_fcfdd .QuadPoints =_eegc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_fcfdd ,nil ; }; // Evaluate runs the function on the passed in slice and returns the results. func (_fgef *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_eg .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };_dfffa :=[]float64 {0.0};if _fgef .C0 !=nil {_dfffa =_fgef .C0 ;};_gbeef :=[]float64 {1.0};if _fgef .C1 !=nil {_gbeef =_fgef .C1 ;};var _abfab []float64 ;for _ffgce :=0;_ffgce < len (_dfffa );_ffgce ++{_fcgg :=_dfffa [_ffgce ]+_cbg .Pow (x [0],_fgef .N )*(_gbeef [_ffgce ]-_dfffa [_ffgce ]); _abfab =append (_abfab ,_fcgg );};return _abfab ,nil ;};func (_cagfb *PdfAcroForm )fill (_ccbfd FieldValueProvider ,_bdddeb FieldAppearanceGenerator )error {if _cagfb ==nil {return nil ;};_ecgbe ,_fbaad :=_ccbfd .FieldValues ();if _fbaad !=nil {return _fbaad ; };for _ ,_bbfe :=range _cagfb .AllFields (){_gfabe :=_bbfe .PartialName ();_dfada ,_ggdbb :=_ecgbe [_gfabe ];if !_ggdbb {if _dfde ,_aafee :=_bbfe .FullName ();_aafee ==nil {_dfada ,_ggdbb =_ecgbe [_dfde ];};};if !_ggdbb {_eg .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",_gfabe ); continue ;};if _agbbd :=_abeb (_bbfe ,_dfada );_agbbd !=nil {return _agbbd ;};if _bdddeb ==nil {continue ;};for _ ,_bbaba :=range _bbfe .Annotations {_cbdf ,_fggb :=_bdddeb .GenerateAppearanceDict (_cagfb ,_bbfe ,_bbaba );if _fggb !=nil {return _fggb ; };_bbaba .AP =_cbdf ;_bbaba .ToPdfObject ();};};return nil ;}; // NewPdfActionLaunch returns a new "launch" action. func NewPdfActionLaunch ()*PdfActionLaunch {_gbe :=NewPdfAction ();_cbf :=&PdfActionLaunch {};_cbf .PdfAction =_gbe ;_gbe .SetContext (_cbf );return _cbf ;};func (_febaa *PdfWriter )writeOutlines ()error {if _febaa ._bcbee ==nil {return nil ;};_eg .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_febaa ._bcbee ); _efbgd :=_febaa ._bcbee .ToPdfObject ();_eg .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_efbgd ,_efbgd ,_efbgd );_febaa ._dffegd .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_efbgd ); _dcfbf :=_febaa .addObjects (_efbgd );if _dcfbf !=nil {return _dcfbf ;};return nil ;};func (_afebc *PdfReader )newPdfSignatureReferenceFromDict (_bebed *_ebb .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _acfae ,_gdce :=_afebc ._abbaca .GetModelFromPrimitive (_bebed ).(*PdfSignatureReference ); _gdce {return _acfae ,nil ;};_faff :=&PdfSignatureReference {_afacea :_bebed ,Data :_bebed .Get ("\u0044\u0061\u0074\u0061")};var _adbf bool ;_faff .Type ,_ =_ebb .GetName (_bebed .Get ("\u0054\u0079\u0070\u0065"));_faff .TransformMethod ,_adbf =_ebb .GetName (_bebed .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064")); if !_adbf {_eg .Log .Error ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0053\u0069g\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0052\u0065\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0020\u0054\u0072\u0061\u006e\u0073\u0066o\u0072\u006dM\u0065\u0074h\u006f\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020in\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0072\u0020m\u0069\u0073\u0073\u0069\u006e\u0067"); return nil ,ErrInvalidAttribute ;};_faff .TransformParams ,_ =_ebb .GetDict (_bebed .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_faff .DigestMethod ,_ =_ebb .GetName (_bebed .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064")); return _faff ,nil ;};func (_gdfb *PdfWriter )setCatalogVersion (){_gdfb ._dffegd .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_ebb .MakeName (_bg .Sprintf ("\u0025\u0064\u002e%\u0064",_gdfb ._efcge .Major ,_gdfb ._efcge .Minor )));}; // 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 (_cfebe pdfFontSimple )GetCharMetrics (code _da .CharCode )(_bad .CharMetrics ,bool ){if _ggdf ,_ebddc :=_cfebe ._cdff [code ];_ebddc {return _bad .CharMetrics {Wx :_ggdf },true ;};if _bad .IsStdFont (_bad .StdFontName (_cfebe ._fdacg )){return _bad .CharMetrics {Wx :250},true ; };return _bad .CharMetrics {},false ;};func (_dage *PdfReader )newPdfAnnotationPopupFromDict (_ege *_ebb .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_def :=PdfAnnotationPopup {};_def .Parent =_ege .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_def .Open =_ege .Get ("\u004f\u0070\u0065\u006e"); return &_def ,nil ;}; // ToPdfObject implements interface PdfModel. func (_faab *PdfActionSound )ToPdfObject ()_ebb .PdfObject {_faab .PdfAction .ToPdfObject ();_ffa :=_faab ._abe ;_eeg :=_ffa .PdfObject .(*_ebb .PdfObjectDictionary );_eeg .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeSound )));_eeg .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_faab .Sound ); _eeg .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_faab .Volume );_eeg .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_faab .Synchronous );_eeg .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_faab .Repeat ); _eeg .SetIfNotNil ("\u004d\u0069\u0078",_faab .Mix );return _ffa ;}; // SetPageLabels sets the PageLabels entry in the PDF catalog. // See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008). func (_acbfd *PdfWriter )SetPageLabels (pageLabels _ebb .PdfObject )error {if pageLabels ==nil {return nil ;};_eg .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"); _acbfd ._dffegd .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _acbfd .addObjects (pageLabels );};func _cdbaf (_ccaea *_ebb .PdfObjectDictionary )(*PdfShadingPattern ,error ){_cabac :=&PdfShadingPattern {};_cfaf :=_ccaea .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067"); if _cfaf ==nil {_eg .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_beabd ,_cffgf :=_ggdfc (_cfaf );if _cffgf !=nil {_eg .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_cffgf ); return nil ,_cffgf ;};_cabac .Shading =_beabd ;if _egdfe :=_ccaea .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_egdfe !=nil {_geadb ,_acafe :=_egdfe .(*_ebb .PdfObjectArray );if !_acafe {_eg .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",_egdfe ); return nil ,_ebb .ErrTypeError ;};_cabac .Matrix =_geadb ;};if _cgfca :=_ccaea .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_cgfca !=nil {_cabac .ExtGState =_cgfca ;};return _cabac ,nil ;};func (_fbf *PdfReader )newPdfActionResetFormFromDict (_dee *_ebb .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_dee .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_dee .Get ("\u0046\u006c\u0061g\u0073")},nil ; };func (_cdbfd *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _cdbfd ._fbbd }; // ToPdfObject returns the PDF representation of the colorspace. func (_egce *PdfColorspaceSpecialPattern )ToPdfObject ()_ebb .PdfObject {if _egce .UnderlyingCS ==nil {return _ebb .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_gafb :=_ebb .MakeArray (_ebb .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e")); _gafb .Append (_egce .UnderlyingCS .ToPdfObject ());if _egce ._adegb !=nil {_egce ._adegb .PdfObject =_gafb ;return _egce ._adegb ;};return _gafb ;}; // NewPdfActionHide returns a new "hide" action. func NewPdfActionHide ()*PdfActionHide {_bfd :=NewPdfAction ();_db :=&PdfActionHide {};_db .PdfAction =_bfd ;_bfd .SetContext (_db );return _db ;};func (_acea *PdfWriter )copyObjects (){_abgga :=make (map[_ebb .PdfObject ]_ebb .PdfObject );_fbacc :=make ([]_ebb .PdfObject ,0,len (_acea ._ebdgg )); _efedf :=make (map[_ebb .PdfObject ]struct{},len (_acea ._ebdgg ));_badbff :=make (map[_ebb .PdfObject ]struct{});for _ ,_cfaae :=range _acea ._ebdgg {_cefecg :=_acea .copyObject (_cfaae ,_abgga ,_badbff ,false );if _ ,_efdba :=_badbff [_cfaae ];_efdba {continue ; };_fbacc =append (_fbacc ,_cefecg );_efedf [_cefecg ]=struct{}{};};_acea ._ebdgg =_fbacc ;_acea ._ffffd =_efedf ;_acea ._eadfd =_acea .copyObject (_acea ._eadfd ,_abgga ,nil ,false ).(*_ebb .PdfIndirectObject );_acea ._gegba =_acea .copyObject (_acea ._gegba ,_abgga ,nil ,false ).(*_ebb .PdfIndirectObject ); if _acea ._cbcaa !=nil {_acea ._cbcaa =_acea .copyObject (_acea ._cbcaa ,_abgga ,nil ,false ).(*_ebb .PdfIndirectObject );};if _acea ._abffb {_bdddc :=make (map[_ebb .PdfObject ]int64 );for _gdcbe ,_cbdba :=range _acea ._cdgd {if _gggg ,_fadbed :=_abgga [_gdcbe ]; _fadbed {_bdddc [_gggg ]=_cbdba ;}else {_eg .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"); };};_acea ._cdgd =_bdddc ;};}; // WriteToFile writes the output PDF to file. func (_efdcb *PdfWriter )WriteToFile (outputFilePath string )error {_effc ,_cbcaf :=_ed .Create (outputFilePath );if _cbcaf !=nil {return _cbcaf ;};defer _effc .Close ();return _efdcb .Write (_effc );};func _bggeg ()string {_daddc .Lock ();defer _daddc .Unlock (); return _fead }; // ToPdfObject sets the common field elements. // Note: Call the more field context's ToPdfObject to set both the generic and // non-generic information. func (_cgca *PdfField )ToPdfObject ()_ebb .PdfObject {_cgee :=_cgca ._cdfd ;_badcb :=_cgee .PdfObject .(*_ebb .PdfObjectDictionary );_fgdd :=_ebb .MakeArray ();for _ ,_dacf :=range _cgca .Kids {_fgdd .Append (_dacf .ToPdfObject ());};for _ ,_abgd :=range _cgca .Annotations {if _abgd ._bdcd !=_cgca ._cdfd {_fgdd .Append (_abgd .GetContext ().ToPdfObject ()); };};if _cgca .Parent !=nil {_badcb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_cgca .Parent .GetContainingPdfObject ());};if _fgdd .Len ()> 0{_badcb .Set ("\u004b\u0069\u0064\u0073",_fgdd );};_badcb .SetIfNotNil ("\u0046\u0054",_cgca .FT );_badcb .SetIfNotNil ("\u0054",_cgca .T ); _badcb .SetIfNotNil ("\u0054\u0055",_cgca .TU );_badcb .SetIfNotNil ("\u0054\u004d",_cgca .TM );_badcb .SetIfNotNil ("\u0046\u0066",_cgca .Ff );_badcb .SetIfNotNil ("\u0056",_cgca .V );_badcb .SetIfNotNil ("\u0044\u0056",_cgca .DV );_badcb .SetIfNotNil ("\u0041\u0041",_cgca .AA ); if _cgca .VariableText !=nil {_badcb .SetIfNotNil ("\u0044\u0041",_cgca .VariableText .DA );_badcb .SetIfNotNil ("\u0051",_cgca .VariableText .Q );_badcb .SetIfNotNil ("\u0044\u0053",_cgca .VariableText .DS );_badcb .SetIfNotNil ("\u0052\u0056",_cgca .VariableText .RV ); };return _cgee ;}; // SetBorderWidth sets the style's border width. func (_daba *PdfBorderStyle )SetBorderWidth (width float64 ){_daba .W =&width }; // 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 (_aebac *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_bggab :=_aebac .fill (provider ,appGen );if _bggab !=nil {return _bggab ;};if _ ,_bdafc :=provider .(FieldImageProvider );_bdafc {_bggab =_aebac .fillImageWithAppearance (provider .(FieldImageProvider ),appGen ); };return _bggab ;}; // PdfActionTrans represents a trans action. type PdfActionTrans struct{*PdfAction ;Trans _ebb .PdfObject ;}; // ToPdfObject recursively builds the Outline tree PDF object. func (_afgdb *PdfOutline )ToPdfObject ()_ebb .PdfObject {_ceeac :=_afgdb ._egee ;_beede :=_ceeac .PdfObject .(*_ebb .PdfObjectDictionary );_beede .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _afgdb .First !=nil {_beede .Set ("\u0046\u0069\u0072s\u0074",_afgdb .First .ToPdfObject ()); };if _afgdb .Last !=nil {_beede .Set ("\u004c\u0061\u0073\u0074",_afgdb .Last .GetContext ().GetContainingPdfObject ());};if _afgdb .Parent !=nil {_beede .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_afgdb .Parent .GetContext ().GetContainingPdfObject ()); };if _afgdb .Count !=nil {_beede .Set ("\u0043\u006f\u0075n\u0074",_ebb .MakeInteger (*_afgdb .Count ));};return _ceeac ;}; // NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject. func NewPdfOutputIntentFromPdfObject (object _ebb .PdfObject )(*PdfOutputIntent ,error ){_befc :=&PdfOutputIntent {};if _beeeb :=_befc .ParsePdfObject (object );_beeeb !=nil {return nil ,_beeeb ;};return _befc ,nil ;}; // GetSubFilter returns SubFilter value or empty string. func (_fgaeg *pdfSignDictionary )GetSubFilter ()string {_eebbf :=_fgaeg .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _eebbf ==nil {return "";};if _fcgcg ,_adgfc :=_ebb .GetNameVal (_eebbf );_adgfc {return _fcgcg ;};return "";}; // FieldValueProvider provides field values from a data source such as FDF, JSON or any other. type FieldValueProvider interface{FieldValues ()(map[string ]_ebb .PdfObject ,error );};func (_cff *PdfReader )newPdfActionGotoEFromDict (_fce *_ebb .PdfObjectDictionary )(*PdfActionGoToE ,error ){_gee ,_fda :=_gggf (_fce .Get ("\u0046"));if _fda !=nil {return nil ,_fda ; };return &PdfActionGoToE {D :_fce .Get ("\u0044"),NewWindow :_fce .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_fce .Get ("\u0054"),F :_gee },nil ;};func (_dega *PdfReader )newPdfAnnotationCaretFromDict (_cgc *_ebb .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_cffe :=PdfAnnotationCaret {}; _aabg ,_bcfd :=_dega .newPdfAnnotationMarkupFromDict (_cgc );if _bcfd !=nil {return nil ,_bcfd ;};_cffe .PdfAnnotationMarkup =_aabg ;_cffe .RD =_cgc .Get ("\u0052\u0044");_cffe .Sy =_cgc .Get ("\u0053\u0079");return &_cffe ,nil ;}; // NewPdfActionGoToR returns a new "go to remote" action. func NewPdfActionGoToR ()*PdfActionGoToR {_gfd :=NewPdfAction ();_cgg :=&PdfActionGoToR {};_cgg .PdfAction =_gfd ;_gfd .SetContext (_cgg );return _cgg ;};func (_bgfa *PdfReader )newPdfActionURIFromDict (_fbe *_ebb .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_fbe .Get ("\u0055\u0052\u0049"),IsMap :_fbe .Get ("\u0049\u0073\u004da\u0070")},nil ; };func (_ecc *PdfReader )newPdfActionGoTo3DViewFromDict (_dacb *_ebb .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_dacb .Get ("\u0054\u0041"),V :_dacb .Get ("\u0056")},nil ;}; // ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly // or indirectly within an indirect object container. func (_gccb *PdfColorspaceDeviceNAttributes )ToPdfObject ()_ebb .PdfObject {_afgbb :=_ebb .MakeDict ();if _gccb .Subtype !=nil {_afgbb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_gccb .Subtype );};_afgbb .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_gccb .Colorants ); _afgbb .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_gccb .Process );_afgbb .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_gccb .MixingHints );if _gccb ._afca !=nil {_gccb ._afca .PdfObject =_afgbb ;return _gccb ._afca ; };return _afgbb ;}; // GetContainingPdfObject returns the container of the outline item (indirect object). func (_dedce *PdfOutlineItem )GetContainingPdfObject ()_ebb .PdfObject {return _dedce ._cacdf }; // 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 _ebb .StreamEncoder )(*XObjectImage ,error ){_gebce :=NewXObjectImage ();return UpdateXObjectImageFromImage (_gebce ,img ,cs ,encoder );}; // Initialize initializes the PdfSignature. func (_ebefb *PdfSignature )Initialize ()error {if _ebefb .Handler ==nil {return _gf .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 _ebefb .Handler .InitSignature (_ebefb );};func _fbga (_eeeee _ebb .PdfObject ,_ggfbb *PdfReader )(*OutlineDest ,error ){_ffagd ,_beceab :=_ebb .GetArray (_eeeee );if !_beceab {return nil ,_gf .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"); };_aagd :=_ffagd .Len ();if _aagd < 2{return nil ,_bg .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",_aagd ); };_daaf :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_dccg :=_ffagd .Get (0);if _dfac ,_baaf :=_ebb .GetIndirect (_dccg );_baaf {if _ ,_dcce ,_cbdfg :=_ggfbb .PageFromIndirectObject (_dfac );_cbdfg ==nil {_daaf .Page =int64 (_dcce -1);}else {_eg .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",_dfac ); };_daaf .PageObj =_dfac ;}else if _eeebb ,_gggca :=_ebb .GetIntVal (_dccg );_gggca {if _eeebb >=0&&_eeebb < len (_ggfbb .PageList ){_daaf .PageObj =_ggfbb .PageList [_eeebb ].GetPageAsIndirectObject ();}else {_eg .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",_eeebb ); };_daaf .Page =int64 (_eeebb );}else {return nil ,_bg .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",_dccg );};_afeg ,_beceab :=_ebb .GetNameVal (_ffagd .Get (1)); if !_beceab {_eg .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",_ffagd .Get (1)); return _daaf ,nil ;};switch _afeg {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _aagd > 2{_daaf .Y ,_ =_ebb .GetNumberAsFloat (_ebb .TraceToDirectObject (_ffagd .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _aagd > 2{_daaf .X ,_ =_ebb .GetNumberAsFloat (_ebb .TraceToDirectObject (_ffagd .Get (2))); };case "\u0058\u0059\u005a":if _aagd > 4{_daaf .X ,_ =_ebb .GetNumberAsFloat (_ebb .TraceToDirectObject (_ffagd .Get (2)));_daaf .Y ,_ =_ebb .GetNumberAsFloat (_ebb .TraceToDirectObject (_ffagd .Get (3)));_daaf .Zoom ,_ =_ebb .GetNumberAsFloat (_ebb .TraceToDirectObject (_ffagd .Get (4))); };default:_afeg ="\u0046\u0069\u0074";};_daaf .Mode =_afeg ;return _daaf ,nil ;}; // SetReason sets the `Reason` field of the signature. func (_cbfga *PdfSignature )SetReason (reason string ){_cbfga .Reason =_ebb .MakeString (reason )}; // 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 ,_da .SimpleEncoder ,error ){_ceag ,_ageb :=_cfacd (basefont );if _ageb !=nil {return nil ,nil ,_ageb ;};_aebaa ,_cefd :=_ceag .Encoder ().(_da .SimpleEncoder ); if !_cefd {return nil ,nil ,_bg .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",_ceag .Encoder ()); };_abfbg :=make (map[rune ]_da .GlyphName );for _fgcccc :=range alphabet {if _ ,_ggged :=_aebaa .RuneToCharcode (_fgcccc );!_ggged {_ ,_aaec :=_ceag ._ddgd .Read (_fgcccc );if !_aaec {_eg .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",_fgcccc ,_fgcccc ); continue ;};_dgca ,_aaec :=_da .RuneToGlyph (_fgcccc );if !_aaec {_eg .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_fgcccc ,_fgcccc );continue ;};if len (_abfbg )>=255{return nil ,nil ,_gf .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"); };_abfbg [_fgcccc ]=_dgca ;};};var (_fgaeb []_da .CharCode ;_cbgc []_da .CharCode ;);for _bfee :=_da .CharCode (1);_bfee <=0xff;_bfee ++{_cgcaa ,_fcag :=_aebaa .CharcodeToRune (_bfee );if !_fcag {_fgaeb =append (_fgaeb ,_bfee );continue ;};if _ ,_fcag =alphabet [_cgcaa ]; !_fcag {_cbgc =append (_cbgc ,_bfee );};};_bcbf :=append (_fgaeb ,_cbgc ...);if len (_bcbf )< len (_abfbg ){return nil ,nil ,_bg .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 (_abfbg ),len (_bcbf )); };_edga :=make ([]rune ,0,len (_abfbg ));for _aaccd :=range _abfbg {_edga =append (_edga ,_aaccd );};_ae .Slice (_edga ,func (_gcb ,_fega int )bool {return _edga [_gcb ]< _edga [_fega ]});_eadb :=make (map[_da .CharCode ]_da .GlyphName ,len (_edga ));for _ ,_gdbbd :=range _edga {_gbefg :=_bcbf [0]; _bcbf =_bcbf [1:];_eadb [_gbefg ]=_abfbg [_gdbbd ];};_aebaa =_da .ApplyDifferences (_aebaa ,_eadb );_ceag .SetEncoder (_aebaa );return &PdfFont {_ebcad :&_ceag },_aebaa ,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 ;DiffResults *_ac .DiffResults ; // GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161). GeneralizedTime _f .Time ;}; // SetOpenAction sets the OpenAction in the PDF catalog. // The value shall be either an array defining a destination (12.3.2 "Destinations" PDF32000_2008), // or an action dictionary representing an action (12.6 "Actions" PDF32000_2008). func (_beceb *PdfWriter )SetOpenAction (dest _ebb .PdfObject )error {if dest ==nil ||_ebb .IsNullObject (dest ){return nil ;};_beceb ._dffegd .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _beceb .addObjects (dest ); };func _gagfgf ()string {_daddc .Lock ();defer _daddc .Unlock ();_fcca :=_ce .GetLicenseKey ();if len (_aaaae )> 0&&(_fcca .IsLicensed ()||_eacf ){return _aaaae ;};return _bg .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",_ebafc (),_fcca .TypeToString ()); };func _bede (_agfe *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_agfe }}; // 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 ){_ceef ,_fdbdf :=_cfacd (basefont );if _fdbdf !=nil {return nil ,_fdbdf ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_ceef ._ebcb =_da .NewWinAnsiEncoder ();};return &PdfFont {_ebcad :&_ceef },nil ; }; // PdfActionResetForm represents a resetForm action. type PdfActionResetForm struct{*PdfAction ;Fields _ebb .PdfObject ;Flags _ebb .PdfObject ;}; // 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 (_cbdfgg *PdfPage )Size ()(float64 ,float64 ,error ){_ffeff ,_afdff :=_cbdfgg .GetMediaBox ();if _afdff !=nil {return 0,0,_afdff ;};_fcgfd ,_cgbbc :=_ffeff .Width (),_ffeff .Height ();_fdga ,_afdff :=_cbdfgg .GetRotate ();if _afdff !=nil {_eg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0025\u0073\u0020\u002d\u0020\u0069\u0067\u006e\u006f\u0072\u0069\u006e\u0067\u0020\u0061\u006e\u0064\u0020\u0061\u0073\u0073\u0075\u006d\u0069\u006e\u0067\u0020\u006e\u006f\u0020\u0072\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u000a",_afdff .Error ()); };if _cdba :=_fdga ;_cdba %360!=0&&_cdba %90==0{if _ebeab :=(360+_cdba %360)%360;_ebeab ==90||_ebeab ==270{_fcgfd ,_cgbbc =_cgbbc ,_fcgfd ;};};return _fcgfd ,_cgbbc ,nil ;}; // Sign signs a specific page with a digital signature. // The signature field parameter must have a valid signature dictionary // specified by its V field. func (_bceg *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _gf .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"); };_fcd :=field .V ;if _fcd ==nil {return _gf .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");};_ggbec :=pageNum -1;if _ggbec < 0||_ggbec > len (_bceg ._dfbg )-1{return _bg .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum ); };_fded :=_bceg .Reader .PageList [_ggbec ];field .P =_fded .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_ebb .MakeString (_bg .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));};_fded .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation ); if _bceg ._bfef ==_bceg ._acfe .AcroForm {_bceg ._bfef =_bceg .Reader .AcroForm ;};_eeddb :=_bceg ._bfef ;if _eeddb ==nil {_eeddb =NewPdfAcroForm ();};_eeddb .SigFlags =_ebb .MakeInteger (3);_dgadf :=append (_eeddb .AllFields (),field .PdfField );_eeddb .Fields =&_dgadf ; _bceg .ReplaceAcroForm (_eeddb );_bceg .UpdatePage (_fded );_bceg ._dfbg [_ggbec ]=_fded ;if _ ,_afgb :=field .V .GetDocMDPPermission ();_afgb {_bceg ._eaaa =NewPermissions (field .V );};return nil ;}; // NewPdfAnnotationWatermark returns a new watermark annotation. func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_abab :=NewPdfAnnotation ();_ebfa :=&PdfAnnotationWatermark {};_ebfa .PdfAnnotation =_abab ;_abab .SetContext (_ebfa );return _ebfa ;}; // PdfAnnotation3D represents 3D annotations. // (Section 13.6.2). type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _ebb .PdfObject ;T3DV _ebb .PdfObject ;T3DA _ebb .PdfObject ;T3DI _ebb .PdfObject ;T3DB _ebb .PdfObject ;}; // NewPdfAnnotationInk returns a new ink annotation. func NewPdfAnnotationInk ()*PdfAnnotationInk {_dggg :=NewPdfAnnotation ();_efba :=&PdfAnnotationInk {};_efba .PdfAnnotation =_dggg ;_efba .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dggg .SetContext (_efba );return _efba ;}; // GetOutlineTree returns the outline tree. func (_faef *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _faef ._fgbcg }; // NewPdfActionSetOCGState returns a new "named" action. func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_cfa :=NewPdfAction ();_gdb :=&PdfActionSetOCGState {};_gdb .PdfAction =_cfa ;_cfa .SetContext (_gdb );return _gdb ;}; // 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 (_eddfb *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _caagc []*PdfOutlineTreeNode ;var _bffbb []string ;var _bbfgd func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_bbfgd =func (_dcda *PdfOutlineTreeNode ,_afce *[]*PdfOutlineTreeNode ,_dgfc *[]string ,_gecdba int ){if _dcda ==nil {return ; };if _dcda ._geeee ==nil {_eg .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 ;};_gfagf ,_ddfdc :=_dcda ._geeee .(*PdfOutlineItem );if _ddfdc {*_afce =append (*_afce ,&_gfagf .PdfOutlineTreeNode ); _eggf :=_ee .Repeat ("\u0020",_gecdba *2)+_gfagf .Title .Decoded ();*_dgfc =append (*_dgfc ,_eggf );};if _dcda .First !=nil {_eegceb :=_ee .Repeat ("\u0020",_gecdba *2)+"\u002b";*_dgfc =append (*_dgfc ,_eegceb );_bbfgd (_dcda .First ,_afce ,_dgfc ,_gecdba +1); };if _ddfdc &&_gfagf .Next !=nil {_bbfgd (_gfagf .Next ,_afce ,_dgfc ,_gecdba );};};_bbfgd (_eddfb ._fgbcg ,&_caagc ,&_bffbb ,0);return _caagc ,_bffbb ,nil ;}; // IsValid checks if the given pdf output intent type is valid. func (_dffge PdfOutputIntentType )IsValid ()bool {return _dffge >=PdfOutputIntentTypeA1 &&_dffge <=PdfOutputIntentTypeX ;}; // GetRuneMetrics returns the character metrics for the specified rune. // A bool flag is returned to indicate whether or not the entry was found. func (_cgde pdfCIDFontType2 )GetRuneMetrics (r rune )(_bad .CharMetrics ,bool ){_ebbd ,_baeed :=_cgde ._dceb [r ];if !_baeed {_caaa ,_acaa :=_ebb .GetInt (_cgde .DW );if !_acaa {return _bad .CharMetrics {},false ;};_ebbd =int (*_caaa );};return _bad .CharMetrics {Wx :float64 (_ebbd )},true ; }; // PdfRectangle is a definition of a rectangle. type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);var _efdc =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":{}}; // GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object // containing the field dictionary. func (_ceaf *PdfField )GetContainingPdfObject ()_ebb .PdfObject {return _ceaf ._cdfd }; // ToPdfObject implements interface PdfModel. func (_dedb *PdfAnnotationHighlight )ToPdfObject ()_ebb .PdfObject {_dedb .PdfAnnotation .ToPdfObject ();_ggaa :=_dedb ._bdcd ;_fbbf :=_ggaa .PdfObject .(*_ebb .PdfObjectDictionary );_dedb .PdfAnnotationMarkup .appendToPdfDictionary (_fbbf );_fbbf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t")); _fbbf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_dedb .QuadPoints );return _ggaa ;};func (_fccf *PdfReader )newPdfAnnotationWatermarkFromDict (_cgff *_ebb .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_gdbb :=PdfAnnotationWatermark {}; _gdbb .FixedPrint =_cgff .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");return &_gdbb ,nil ;};func (_cgac *PdfReader )newPdfAnnotationSoundFromDict (_bbee *_ebb .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_cdcg :=PdfAnnotationSound {}; _gbc ,_efed :=_cgac .newPdfAnnotationMarkupFromDict (_bbee );if _efed !=nil {return nil ,_efed ;};_cdcg .PdfAnnotationMarkup =_gbc ;_cdcg .Name =_bbee .Get ("\u004e\u0061\u006d\u0065");_cdcg .Sound =_bbee .Get ("\u0053\u006f\u0075n\u0064");return &_cdcg ,nil ; };func _bdgcb (_ecged *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_dafbf ,_gebaag :=_ebb .GetDict (_ecged .AP );if !_gebaag {return nil ,nil ,_gf .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 _dafbf ==nil {return nil ,nil ,nil ;};_gccf ,_gebaag :=_ebb .GetArray (_ecged .Rect );if !_gebaag ||_gccf .Len ()!=4{return nil ,nil ,_gf .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_bgbgc ,_cgfd :=NewPdfRectangle (*_gccf ); if _cgfd !=nil {return nil ,nil ,_cgfd ;};_decg :=_ebb .TraceToDirectObject (_dafbf .Get ("\u004e"));switch _dbcgd :=_decg .(type ){case *_ebb .PdfObjectStream :_gfagd :=_dbcgd ;_egbc ,_beee :=NewXObjectFormFromStream (_gfagd );return _egbc ,_bgbgc ,_beee ; case *_ebb .PdfObjectDictionary :_gbcfe :=_dbcgd ;_gecea ,_abge :=_ebb .GetName (_ecged .AS );if !_abge {return nil ,nil ,nil ;};if _gbcfe .Get (*_gecea )==nil {_eg .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 ;};_cace ,_abge :=_ebb .GetStream (_gbcfe .Get (*_gecea ));if !_abge {_eg .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",_gecea ); return nil ,nil ,_gf .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_ggefc ,_bcaa :=NewXObjectFormFromStream (_cace );return _ggefc ,_bgbgc ,_bcaa ;};_eg .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_decg ); return nil ,nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");}; // ColorToRGB converts a CMYK32 color to an RGB color. func (_efcaf *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_gdee ,_bdba :=color .(*PdfColorDeviceCMYK );if !_bdba {_eg .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 ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fgbfc :=_gdee .C ();_afda :=_gdee .M ();_egbbc :=_gdee .Y ();_gffd :=_gdee .K ();_fgbfc =_fgbfc *(1-_gffd )+_gffd ;_afda =_afda *(1-_gffd )+_gffd ; _egbbc =_egbbc *(1-_gffd )+_gffd ;_cbaad :=1-_fgbfc ;_afde :=1-_afda ;_dfbb :=1-_egbbc ;return NewPdfColorDeviceRGB (_cbaad ,_afde ,_dfbb ),nil ;}; // 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 _ebb .PdfObject ;_eabg []byte ;_gdaef *_ebb .PdfIndirectObject ;};func _eaef (_bcdb []byte )([]byte ,error ){_befae :=_bd .New ();if _ ,_cgbed :=_ab .Copy (_befae ,_ca .NewReader (_bcdb )); _cgbed !=nil {return nil ,_cgbed ;};return _befae .Sum (nil ),nil ;};func _gaab (_aadcg *_ebb .PdfObjectDictionary )(*PdfShadingType7 ,error ){_ebdcad :=PdfShadingType7 {};_gaeee :=_aadcg .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065"); if _gaeee ==nil {_eg .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 ;};_deefb ,_efdbf :=_gaeee .(*_ebb .PdfObjectInteger );if !_efdbf {_eg .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",_gaeee ); return nil ,_ebb .ErrTypeError ;};_ebdcad .BitsPerCoordinate =_deefb ;_gaeee =_aadcg .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _gaeee ==nil {_eg .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 ;};_deefb ,_efdbf =_gaeee .(*_ebb .PdfObjectInteger );if !_efdbf {_eg .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",_gaeee ); return nil ,_ebb .ErrTypeError ;};_ebdcad .BitsPerComponent =_deefb ;_gaeee =_aadcg .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _gaeee ==nil {_eg .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 ;};_deefb ,_efdbf =_gaeee .(*_ebb .PdfObjectInteger );if !_efdbf {_eg .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",_gaeee ); return nil ,_ebb .ErrTypeError ;};_ebdcad .BitsPerComponent =_deefb ;_gaeee =_aadcg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _gaeee ==nil {_eg .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 ;};_bfffg ,_efdbf :=_gaeee .(*_ebb .PdfObjectArray );if !_efdbf {_eg .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",_gaeee ); return nil ,_ebb .ErrTypeError ;};_ebdcad .Decode =_bfffg ;if _fdgbg :=_aadcg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_fdgbg !=nil {_ebdcad .Function =[]PdfFunction {};if _geac ,_adcbc :=_fdgbg .(*_ebb .PdfObjectArray );_adcbc {for _ ,_dgbd :=range _geac .Elements (){_dgbfe ,_gecec :=_aagg (_dgbd ); if _gecec !=nil {_eg .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",_gecec );return nil ,_gecec ;};_ebdcad .Function =append (_ebdcad .Function ,_dgbfe ); };}else {_bedfd ,_affbc :=_aagg (_fdgbg );if _affbc !=nil {_eg .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",_affbc );return nil ,_affbc ; };_ebdcad .Function =append (_ebdcad .Function ,_bedfd );};};return &_ebdcad ,nil ;}; // NewPdfColorspaceSpecialIndexed returns a new Indexed color. func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};}; // ToPdfObject returns colorspace in a PDF object format [name dictionary] func (_gcfa *PdfColorspaceLab )ToPdfObject ()_ebb .PdfObject {_gdge :=_ebb .MakeArray ();_gdge .Append (_ebb .MakeName ("\u004c\u0061\u0062"));_gbge :=_ebb .MakeDict ();if _gcfa .WhitePoint !=nil {_daaba :=_ebb .MakeArray (_ebb .MakeFloat (_gcfa .WhitePoint [0]),_ebb .MakeFloat (_gcfa .WhitePoint [1]),_ebb .MakeFloat (_gcfa .WhitePoint [2])); _gbge .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_daaba );}else {_eg .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 _gcfa .BlackPoint !=nil {_egg :=_ebb .MakeArray (_ebb .MakeFloat (_gcfa .BlackPoint [0]),_ebb .MakeFloat (_gcfa .BlackPoint [1]),_ebb .MakeFloat (_gcfa .BlackPoint [2]));_gbge .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_egg ); };if _gcfa .Range !=nil {_cfac :=_ebb .MakeArray (_ebb .MakeFloat (_gcfa .Range [0]),_ebb .MakeFloat (_gcfa .Range [1]),_ebb .MakeFloat (_gcfa .Range [2]),_ebb .MakeFloat (_gcfa .Range [3]));_gbge .Set ("\u0052\u0061\u006eg\u0065",_cfac );};_gdge .Append (_gbge ); if _gcfa ._bdga !=nil {_gcfa ._bdga .PdfObject =_gdge ;return _gcfa ._bdga ;};return _gdge ;}; // M returns the value of the magenta component of the color. func (_cafe *PdfColorDeviceCMYK )M ()float64 {return _cafe [1]}; // DefaultFont returns the default font, which is currently the built in Helvetica. func DefaultFont ()*PdfFont {_baeee ,_ggccg :=_bad .NewStdFontByName (HelveticaName );if !_ggccg {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"); };_ebbg :=_fcgbc (_baeee );return &PdfFont {_ebcad :&_ebbg };}; // PdfAnnotationLine represents Line annotations. // (Section 12.5.6.7). type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _ebb .PdfObject ;BS _ebb .PdfObject ;LE _ebb .PdfObject ;IC _ebb .PdfObject ;LL _ebb .PdfObject ;LLE _ebb .PdfObject ;Cap _ebb .PdfObject ;IT _ebb .PdfObject ;LLO _ebb .PdfObject ;CP _ebb .PdfObject ; Measure _ebb .PdfObject ;CO _ebb .PdfObject ;}; // 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 (_aedfb *PdfFont )CharcodesToStrings (charcodes []_da .CharCode )([]string ,int ,int ){_bfab :=_aedfb .baseFields ();_gaba :=make ([]string ,0,len (charcodes ));_daad :=0;_cfaadg :=_aedfb .Encoder ();_abefa :=_bfab ._dcdd !=nil &&_aedfb .IsSimple ()&&_aedfb .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_ee .Contains (_bfab ._dcdd .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-"); if !_abefa &&_cfaadg !=nil {switch _cfaadc :=_cfaadg .(type ){case _da .SimpleEncoder :_abcb :=_cfaadc .BaseName ();if _ ,_ccgbb :=_efdc [_abcb ];_ccgbb {for _ ,_aada :=range charcodes {if _bfeec ,_ffecb :=_cfaadg .CharcodeToRune (_aada );_ffecb {_gaba =append (_gaba ,string (_bfeec )); }else {_eg .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",_aada ,charcodes ,_bfab .isCIDFont (),_aedfb ,_cfaadg ); _daad ++;_gaba =append (_gaba ,_ebe .MissingCodeString );};};return _gaba ,len (_gaba ),_daad ;};};};for _ ,_dgdeg :=range charcodes {if _bfab ._dcdd !=nil {if _gfebg ,_dfdga :=_bfab ._dcdd .CharcodeToUnicode (_ebe .CharCode (_dgdeg ));_dfdga {_gaba =append (_gaba ,_gfebg ); continue ;};};if _cfaadg !=nil {if _gdef ,_eced :=_cfaadg .CharcodeToRune (_dgdeg );_eced {_gaba =append (_gaba ,string (_gdef ));continue ;};};_eg .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",_dgdeg ,charcodes ,_bfab .isCIDFont (),_aedfb ,_cfaadg ); _daad ++;_gaba =append (_gaba ,_ebe .MissingCodeString );};if _daad !=0{_eg .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 ),_daad ,_aedfb ); };return _gaba ,len (_gaba ),_daad ;}; // 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 (_gaceg *PdfPage )SetContentStreams (cStreams []string ,encoder _ebb .StreamEncoder )error {if len (cStreams )==0{_gaceg .Contents =nil ;return nil ;};if encoder ==nil {encoder =_ebb .NewRawEncoder ();};var _daae []*_ebb .PdfObjectStream ;for _ ,_fdff :=range cStreams {_fgdde :=&_ebb .PdfObjectStream {}; _cfgb :=encoder .MakeStreamDict ();_feebg ,_ceffg :=encoder .EncodeBytes ([]byte (_fdff ));if _ceffg !=nil {return _ceffg ;};_cfgb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ebb .MakeInteger (int64 (len (_feebg ))));_fgdde .PdfObjectDictionary =_cfgb ; _fgdde .Stream =_feebg ;_daae =append (_daae ,_fgdde );};if len (_daae )==1{_gaceg .Contents =_daae [0];}else {_dedf :=_ebb .MakeArray ();for _ ,_acaaa :=range _daae {_dedf .Append (_acaaa );};_gaceg .Contents =_dedf ;};return nil ;}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 3 for a CalRGB device. func (_acca *PdfColorspaceCalRGB )GetNumComponents ()int {return 3}; // 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 *_ebb .PdfIndirectObject ;SV *_ebb .PdfIndirectObject ;};func (_bddb *PdfReader )newPdfAnnotationUnderlineFromDict (_bggf *_ebb .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_eecfb :=PdfAnnotationUnderline {}; _abbb ,_gaee :=_bddb .newPdfAnnotationMarkupFromDict (_bggf );if _gaee !=nil {return nil ,_gaee ;};_eecfb .PdfAnnotationMarkup =_abbb ;_eecfb .QuadPoints =_bggf .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_eecfb ,nil ; };func _bcdgc (_fgaf *_ebb .PdfObjectDictionary ,_baca *fontCommon ,_bffb _da .TextEncoder )(*pdfFontSimple ,error ){_dggce :=_bede (_baca );_dggce ._dacee =_bffb ;if _bffb ==nil {_dgdbdf :=_fgaf .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _dgdbdf ==nil {_dgdbdf =_ebb .MakeInteger (0); };_dggce .FirstChar =_dgdbdf ;_cefec ,_geee :=_ebb .GetIntVal (_dgdbdf );if !_geee {_eg .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",_dgdbdf ); return nil ,_ebb .ErrTypeError ;};_ggbbb :=_da .CharCode (_cefec );_dgdbdf =_fgaf .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _dgdbdf ==nil {_dgdbdf =_ebb .MakeInteger (255);};_dggce .LastChar =_dgdbdf ;_cefec ,_geee =_ebb .GetIntVal (_dgdbdf ); if !_geee {_eg .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",_dgdbdf );return nil ,_ebb .ErrTypeError ; };_acgb :=_da .CharCode (_cefec );_dggce ._cdff =make (map[_da .CharCode ]float64 );_dgdbdf =_fgaf .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _dgdbdf !=nil {_dggce .Widths =_dgdbdf ;_acdfd ,_ebae :=_ebb .GetArray (_dgdbdf );if !_ebae {_eg .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",_dgdbdf ); return nil ,_ebb .ErrTypeError ;};_cbgea ,_aaaf :=_acdfd .ToFloat64Array ();if _aaaf !=nil {_eg .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 ,_aaaf ;};if len (_cbgea )!=int (_acgb -_ggbbb +1){_eg .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",_acgb -_ggbbb +1,len (_cbgea )); return nil ,_ebb .ErrRangeError ;};for _adcb ,_acfdb :=range _cbgea {_dggce ._cdff [_ggbbb +_da .CharCode (_adcb )]=_acfdb ;};};};_dggce .Encoding =_ebb .TraceToDirectObject (_fgaf .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _dggce ,nil ; }; // NewPdfReaderWithOpts creates a new PdfReader for an input io.ReadSeeker interface // with a ReaderOpts. // If ReaderOpts is nil it will be set to default value from NewReaderOpts. func NewPdfReaderWithOpts (rs _ab .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _ccca ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0057\u0069\u0074\u0068O\u0070\u0074\u0073";return _dcbd (rs ,opts ,true ,_ccca ); }; // ColorToRGB converts a Lab color to an RGB color. func (_dgead *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_ddeg :=func (_ffdc float64 )float64 {if _ffdc >=6.0/29{return _ffdc *_ffdc *_ffdc ;};return 108.0/841*(_ffdc -4/29);};_egff ,_afdf :=color .(*PdfColorLab );if !_afdf {_eg .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062"); return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_egff .L ();AStar :=_egff .A ();BStar :=_egff .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200; X :=_dgead .WhitePoint [0]*_ddeg (L );Y :=_dgead .WhitePoint [1]*_ddeg (M );Z :=_dgead .WhitePoint [2]*_ddeg (N );_aag :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ddba :=-0.969256*X +1.875992*Y +0.041556*Z ;_fccc :=0.055648*X +-0.204043*Y +1.057311*Z ;_aag =_cbg .Min (_cbg .Max (_aag ,0),1.0); _ddba =_cbg .Min (_cbg .Max (_ddba ,0),1.0);_fccc =_cbg .Min (_cbg .Max (_fccc ,0),1.0);return NewPdfColorDeviceRGB (_aag ,_ddba ,_fccc ),nil ;}; // ToPdfObject returns an indirect object containing the signature field dictionary. func (_egec *PdfFieldSignature )ToPdfObject ()_ebb .PdfObject {if _egec .PdfAnnotationWidget !=nil {_egec .PdfAnnotationWidget .ToPdfObject ();};_egec .PdfField .ToPdfObject ();_dfbcc :=_egec ._cdfd ;_deda :=_dfbcc .PdfObject .(*_ebb .PdfObjectDictionary ); _deda .SetIfNotNil ("\u0046\u0054",_ebb .MakeName ("\u0053\u0069\u0067"));_deda .SetIfNotNil ("\u004c\u006f\u0063\u006b",_egec .Lock );_deda .SetIfNotNil ("\u0053\u0056",_egec .SV );if _egec .V !=nil {_deda .SetIfNotNil ("\u0056",_egec .V .ToPdfObject ()); };return _dfbcc ;}; // NewPdfActionMovie returns a new "movie" action. func NewPdfActionMovie ()*PdfActionMovie {_dgab :=NewPdfAction ();_ede :=&PdfActionMovie {};_ede .PdfAction =_dgab ;_dgab .SetContext (_ede );return _ede ;};func (_edec *PdfReader )newPdfActionThreadFromDict (_faf *_ebb .PdfObjectDictionary )(*PdfActionThread ,error ){_caa ,_abd :=_gggf (_faf .Get ("\u0046")); if _abd !=nil {return nil ,_abd ;};return &PdfActionThread {D :_faf .Get ("\u0044"),B :_faf .Get ("\u0042"),F :_caa },nil ;}; // NewPdfDateFromTime will create a PdfDate based on the given time func NewPdfDateFromTime (timeObj _f .Time )(PdfDate ,error ){_fadff :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_faddf ,_ :=_aa .ParseInt (_fadff [1:3],10,32);_aaadg ,_ :=_aa .ParseInt (_fadff [4:6],10,32);return PdfDate {_dacdd :int64 (timeObj .Year ()),_agaba :int64 (timeObj .Month ()),_edcfe :int64 (timeObj .Day ()),_aedbe :int64 (timeObj .Hour ()),_cfaba :int64 (timeObj .Minute ()),_cgbcd :int64 (timeObj .Second ()),_degeb :_fadff [0],_gcccb :_faddf ,_fddcbg :_aaadg },nil ; };func _gefgb (_eaccf []byte )(_fcad ,_gcbd string ,_bgad error ){_eg .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_eaccf ));_cfff :=_aabec .FindIndex (_eaccf );if _cfff ==nil {_eg .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 "","",_ebb .ErrTypeError ;};_ebfb :=_cfff [1];_dgabg :=_ee .Index (string (_eaccf [_ebfb :]),_aeecf );if _dgabg < 0{_fcad =string (_eaccf [_ebfb :]);return _fcad ,"",nil ;};_gfege :=_ebfb +_dgabg ;_fcad =string (_eaccf [_ebfb :_gfege ]);_egdd :=_gfege ; _dgabg =_ee .Index (string (_eaccf [_egdd :]),_ccdgc );if _dgabg < 0{_eg .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",_bgad ); return "","",_ebb .ErrTypeError ;};_cfef :=_egdd +_dgabg ;_gcbd =string (_eaccf [_egdd :_cfef ]);return _fcad ,_gcbd ,nil ;};func _ageed (_cgbc _ebb .PdfObject )(*PdfColorspaceCalGray ,error ){_agab :=NewPdfColorspaceCalGray ();if _ffbf ,_bagd :=_cgbc .(*_ebb .PdfIndirectObject ); _bagd {_agab ._bebfd =_ffbf ;};_cgbc =_ebb .TraceToDirectObject (_cgbc );_ddaf ,_ecae :=_cgbc .(*_ebb .PdfObjectArray );if !_ecae {return nil ,_bg .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _ddaf .Len ()!=2{return nil ,_bg .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"); };_cgbc =_ebb .TraceToDirectObject (_ddaf .Get (0));_aggc ,_ecae :=_cgbc .(*_ebb .PdfObjectName );if !_ecae {return nil ,_bg .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 *_aggc !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_bg .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_cgbc =_ebb .TraceToDirectObject (_ddaf .Get (1)); _eeaab ,_ecae :=_cgbc .(*_ebb .PdfObjectDictionary );if !_ecae {return nil ,_bg .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"); };_cgbc =_eeaab .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_cgbc =_ebb .TraceToDirectObject (_cgbc );_eecc ,_ecae :=_cgbc .(*_ebb .PdfObjectArray );if !_ecae {return nil ,_bg .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 _eecc .Len ()!=3{return nil ,_bg .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");};_fceb ,_ffag :=_eecc .GetAsFloat64Slice (); if _ffag !=nil {return nil ,_ffag ;};_agab .WhitePoint =_fceb ;_cgbc =_eeaab .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _cgbc !=nil {_cgbc =_ebb .TraceToDirectObject (_cgbc );_beab ,_dbfb :=_cgbc .(*_ebb .PdfObjectArray ); if !_dbfb {return nil ,_bg .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 _beab .Len ()!=3{return nil ,_bg .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"); };_ebfac ,_eege :=_beab .GetAsFloat64Slice ();if _eege !=nil {return nil ,_eege ;};_agab .BlackPoint =_ebfac ;};_cgbc =_eeaab .Get ("\u0047\u0061\u006dm\u0061");if _cgbc !=nil {_cgbc =_ebb .TraceToDirectObject (_cgbc );_edcd ,_bafe :=_ebb .GetNumberAsFloat (_cgbc ); if _bafe !=nil {return nil ,_bg .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");};_agab .Gamma =_edcd ;};return _agab ,nil ;}; // DecodeArray returns the range of color component values in the Lab colorspace. func (_dfdc *PdfColorspaceLab )DecodeArray ()[]float64 {_cagfc :=[]float64 {0,100};if _dfdc .Range !=nil &&len (_dfdc .Range )==4{_cagfc =append (_cagfc ,_dfdc .Range ...);}else {_cagfc =append (_cagfc ,-100,100,-100,100);};return _cagfc ;}; // PdfColorPattern represents a pattern color. type PdfColorPattern struct{Color PdfColor ;PatternName _ebb .PdfObjectName ;}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 4 for a CMYK32 device. func (_dgfga *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};func (_debba *PdfWriter )makeOffSetReference (_gabff int64 ){_cbcg :=_bg .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_gabff );_debba .writeString (_cbcg ); _debba .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");}; // 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 (_cebe *PdfWriter )SetRotation (rotate int64 )error {_gdgda ,_eaccc :=_ebb .GetDict (_cebe ._dggbf );if !_eaccc {return ErrTypeCheck ;};_gdgda .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ebb .MakeInteger (rotate ));return nil ;};func _fbea (_dbadc *PdfField )[]*PdfField {_badac :=[]*PdfField {_dbadc }; for _ ,_dfbbg :=range _dbadc .Kids {_badac =append (_badac ,_fbea (_dfbbg )...);};return _badac ;}; // IsCheckbox returns true if the button field represents a checkbox, false otherwise. func (_gcdg *PdfFieldButton )IsCheckbox ()bool {return _gcdg .GetType ()==ButtonTypeCheckbox }; // ToPdfObject returns the PDF representation of the shading dictionary. func (_acef *PdfShadingType5 )ToPdfObject ()_ebb .PdfObject {_acef .PdfShading .ToPdfObject ();_cebfc ,_cacgg :=_acef .getShadingDict ();if _cacgg !=nil {_eg .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 _acef .BitsPerCoordinate !=nil {_cebfc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_acef .BitsPerCoordinate );};if _acef .BitsPerComponent !=nil {_cebfc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_acef .BitsPerComponent ); };if _acef .VerticesPerRow !=nil {_cebfc .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_acef .VerticesPerRow );};if _acef .Decode !=nil {_cebfc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_acef .Decode );};if _acef .Function !=nil {if len (_acef .Function )==1{_cebfc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_acef .Function [0].ToPdfObject ()); }else {_eafb :=_ebb .MakeArray ();for _ ,_agbac :=range _acef .Function {_eafb .Append (_agbac .ToPdfObject ());};_cebfc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_eafb );};};return _acef ._fbfae ;};type pdfFontType3 struct{fontCommon ;_adec *_ebb .PdfIndirectObject ; // These fields are specific to Type 3 fonts. CharProcs _ebb .PdfObject ;Encoding _ebb .PdfObject ;FontBBox _ebb .PdfObject ;FontMatrix _ebb .PdfObject ;FirstChar _ebb .PdfObject ;LastChar _ebb .PdfObject ;Widths _ebb .PdfObject ;Resources _ebb .PdfObject ;_aggbb map[_da .CharCode ]float64 ;_abcba _da .TextEncoder ; }; // ImageToRGB converts an image with samples in Separation CS to an image with samples specified in // DeviceRGB CS. func (_cgeg *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_eaab :=_abg .NewReader (img .getBase ());_cfec :=_dg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_cgeg .AlternateSpace .GetNumComponents (),nil ,img ._dagcb ,nil ); _debb :=_abg .NewWriter (_cfec );_eaaf :=_cbg .Pow (2,float64 (img .BitsPerComponent ))-1;_eg .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"); _eg .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_cgeg .TintTransform );_bdff :=_cgeg .AlternateSpace .DecodeArray ();var (_eebd uint32 ;_babe error ;);for {_eebd ,_babe =_eaab .ReadSample ();if _babe ==_ab .EOF {break ; };if _babe !=nil {return img ,_babe ;};_ebaad :=float64 (_eebd )/_eaaf ;_gebee ,_eeega :=_cgeg .TintTransform .Evaluate ([]float64 {_ebaad });if _eeega !=nil {return img ,_eeega ;};for _cbb ,_acddd :=range _gebee {_dgdbd :=_dg .LinearInterpolate (_acddd ,_bdff [_cbb *2],_bdff [_cbb *2+1],0,1); if _eeega =_debb .WriteSample (uint32 (_dgdbd *_eaaf ));_eeega !=nil {return img ,_eeega ;};};};return _cgeg .AlternateSpace .ImageToRGB (_afacb (&_cfec ));}; // GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters. func (_dgfega *Image )GetParamsDict ()*_ebb .PdfObjectDictionary {_bbggd :=_ebb .MakeDict ();_bbggd .Set ("\u0057\u0069\u0064t\u0068",_ebb .MakeInteger (_dgfega .Width ));_bbggd .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ebb .MakeInteger (_dgfega .Height )); _bbggd .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ebb .MakeInteger (int64 (_dgfega .ColorComponents )));_bbggd .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ebb .MakeInteger (_dgfega .BitsPerComponent )); return _bbggd ;}; // NewPdfActionRendition returns a new "rendition" action. func NewPdfActionRendition ()*PdfActionRendition {_dbd :=NewPdfAction ();_bbc :=&PdfActionRendition {};_bbc .PdfAction =_dbd ;_dbd .SetContext (_bbc );return _bbc ;};func (_dfge *PdfWriter )writeOutputIntents ()error {if len (_dfge ._geced )==0{return nil ; };_acgfg :=make ([]_ebb .PdfObject ,len (_dfge ._geced ));for _dfafbf ,_bgbfd :=range _dfge ._geced {_cadb :=_bgbfd .ToPdfObject ();_acgfg [_dfafbf ]=_ebb .MakeIndirectObject (_cadb );};_dbee :=_ebb .MakeIndirectObject (_ebb .MakeArray (_acgfg ...));_dfge ._dffegd .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_dbee ); if _abgag :=_dfge .addObjects (_dbee );_abgag !=nil {return _abgag ;};return nil ;}; // NewPdfColorLab returns a new Lab color. func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_abeag :=PdfColorLab {l ,a ,b };return &_abeag }; // ToPdfObject implements interface PdfModel. func (_bgbfe *PdfSignature )ToPdfObject ()_ebb .PdfObject {_gbgc :=_bgbfe ._ffbgc ;var _dfcfd *_ebb .PdfObjectDictionary ;if _aagee ,_fbdcb :=_gbgc .PdfObject .(*pdfSignDictionary );_fbdcb {_dfcfd =_aagee .PdfObjectDictionary ;}else {_dfcfd =_gbgc .PdfObject .(*_ebb .PdfObjectDictionary ); };_dfcfd .SetIfNotNil ("\u0054\u0079\u0070\u0065",_bgbfe .Type );_dfcfd .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_bgbfe .Filter );_dfcfd .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_bgbfe .SubFilter );_dfcfd .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_bgbfe .ByteRange ); _dfcfd .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_bgbfe .Contents );_dfcfd .SetIfNotNil ("\u0043\u0065\u0072\u0074",_bgbfe .Cert );_dfcfd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bgbfe .Name );_dfcfd .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_bgbfe .Reason ); _dfcfd .SetIfNotNil ("\u004d",_bgbfe .M );_dfcfd .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_bgbfe .Reference );_dfcfd .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_bgbfe .Changes );_dfcfd .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_bgbfe .ContactInfo ); return _gbgc ;}; // 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 ){_cffed ,_dfdgfe :=_fd .ParsePdfTime (dateStr );if _dfdgfe !=nil {return PdfDate {},_dfdgfe ;};return NewPdfDateFromTime (_cffed );}; // NewPdfAppender creates a new Pdf appender from a Pdf reader. func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_fgbb :=&PdfAppender {_ecce :reader ._ggdg ,Reader :reader ,_gege :reader ._cafdf ,_agb :reader ._dfadc };_acfca ,_bbge :=_fgbb ._ecce .Seek (0,_ab .SeekEnd );if _bbge !=nil {return nil ,_bbge ; };_fgbb ._bee =_acfca ;if _ ,_bbge =_fgbb ._ecce .Seek (0,_ab .SeekStart );_bbge !=nil {return nil ,_bbge ;};_fgbb ._acfe ,_bbge =NewPdfReader (_fgbb ._ecce );if _bbge !=nil {return nil ,_bbge ;};for _ ,_gcde :=range _fgbb .Reader .GetObjectNums (){if _fgbb ._gbddb < _gcde {_fgbb ._gbddb =_gcde ; };};_fgbb ._acfd =_fgbb ._gege .GetXrefTable ();_fgbb ._cfag =_fgbb ._gege .GetXrefOffset ();_fgbb ._dfbg =append (_fgbb ._dfbg ,_fgbb ._acfe .PageList ...);_fgbb ._ddfg =make (map[_ebb .PdfObject ]struct{});_fgbb ._gbfa =make (map[_ebb .PdfObject ]int64 ); _fgbb ._eebc =make (map[_ebb .PdfObject ]struct{});_fgbb ._bfef =_fgbb ._acfe .AcroForm ;_fgbb ._eged =_fgbb ._acfe .DSS ;return _fgbb ,nil ;}; // PdfAnnotationWatermark represents Watermark annotations. // (Section 12.5.6.22). type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _ebb .PdfObject ;}; // GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this. func (_eggc *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _eggc ._ffagg .(*PdfTilingPattern );}; // GetRuneMetrics returns the character metrics for the specified rune. // A bool flag is returned to indicate whether or not the entry was found. func (_beccf pdfFontType0 )GetRuneMetrics (r rune )(_bad .CharMetrics ,bool ){if _beccf .DescendantFont ==nil {_eg .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",_beccf ); return _bad .CharMetrics {},false ;};return _beccf .DescendantFont .GetRuneMetrics (r );}; // GetContainingPdfObject returns the container of the PdfAcroForm (indirect object). func (_ccfac *PdfAcroForm )GetContainingPdfObject ()_ebb .PdfObject {return _ccfac ._adcg }; // PdfAnnotationRedact represents Redact annotations. // (Section 12.5.6.23). type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ebb .PdfObject ;IC _ebb .PdfObject ;RO _ebb .PdfObject ;OverlayText _ebb .PdfObject ;Repeat _ebb .PdfObject ;DA _ebb .PdfObject ;Q _ebb .PdfObject ;}; // Encoder returns the font's text encoder. func (_febedc *PdfFont )Encoder ()_da .TextEncoder {_edac :=_febedc .actualFont ();if _edac ==nil {_eg .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",_febedc ._ebcad ); return nil ;};return _edac .Encoder ();}; // GetDescent returns the Descent of the font `descriptor`. func (_eegcf *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _ebb .GetNumberAsFloat (_eegcf .Descent );};func (_gccaa *PdfReader )traverseObjectData (_cfabd _ebb .PdfObject )error {return _ebb .ResolveReferencesDeep (_cfabd ,_gccaa ._dfadc ); }; // WriteString outputs the object as it is to be written to file. func (_ddeaf *pdfSignDictionary )WriteString ()string {_ddeaf ._eefbe =0;_ddeaf ._adggf =0;_ddeaf ._decgd =0;_ddeaf ._ddceg =0;_eaagd :=_ca .NewBuffer (nil );_eaagd .WriteString ("\u003c\u003c");for _ ,_eaaeac :=range _ddeaf .Keys (){_fgccf :=_ddeaf .Get (_eaaeac ); switch _eaaeac {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_eaagd .WriteString (_eaaeac .WriteString ());_eaagd .WriteString ("\u0020");_ddeaf ._decgd =_eaagd .Len ();_eaagd .WriteString (_fgccf .WriteString ());_eaagd .WriteString ("\u0020"); _ddeaf ._ddceg =_eaagd .Len ()-1;case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_eaagd .WriteString (_eaaeac .WriteString ());_eaagd .WriteString ("\u0020");_ddeaf ._eefbe =_eaagd .Len ();_eaagd .WriteString (_fgccf .WriteString ());_eaagd .WriteString ("\u0020"); _ddeaf ._adggf =_eaagd .Len ()-1;default:_eaagd .WriteString (_eaaeac .WriteString ());_eaagd .WriteString ("\u0020");_eaagd .WriteString (_fgccf .WriteString ());};};_eaagd .WriteString ("\u003e\u003e");return _eaagd .String ();}; // 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 (_efcd *PdfColorspaceLab )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_geec ,_bccba :=_ebb .GetNumbersAsFloat (objects ); if _bccba !=nil {return nil ,_bccba ;};return _efcd .ColorFromFloats (_geec );}; // ToPdfObject implements interface PdfModel. func (_bfdg *PdfAnnotationWidget )ToPdfObject ()_ebb .PdfObject {_bfdg .PdfAnnotation .ToPdfObject ();_bfa :=_bfdg ._bdcd ;_beaa :=_bfa .PdfObject .(*_ebb .PdfObjectDictionary );if _bfdg ._gdga {return _bfa ;};_bfdg ._gdga =true ;_beaa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074")); _beaa .SetIfNotNil ("\u0048",_bfdg .H );_beaa .SetIfNotNil ("\u004d\u004b",_bfdg .MK );_beaa .SetIfNotNil ("\u0041",_bfdg .A );_beaa .SetIfNotNil ("\u0041\u0041",_bfdg .AA );_beaa .SetIfNotNil ("\u0042\u0053",_bfdg .BS );_gcd :=_bfdg .Parent ;if _bfdg ._gce !=nil {if _bfdg ._gce ._cdfd ==_bfdg ._bdcd {_bfdg ._gce .ToPdfObject (); };_gcd =_bfdg ._gce .GetContainingPdfObject ();};if _gcd !=_bfa {_beaa .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_gcd );};_bfdg ._gdga =false ;return _bfa ;}; // ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk). func (_ffeb *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_feba ,_bded :=_ebb .GetNumbersAsFloat (objects ); if _bded !=nil {return nil ,_bded ;};return _ffeb .ColorFromFloats (_feba );};func (_ffgc *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};func (_cbe *PdfReader )newPdfActionTransFromDict (_efbe *_ebb .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_efbe .Get ("\u0054\u0072\u0061n\u0073")},nil ; }; // NewCompositePdfFontFromTTF loads a composite TTF font. Composite fonts can // be used to represent unicode fonts which can have multi-byte character codes, representing a wide // range of values. They are often used for symbolic languages, including Chinese, Japanese and Korean. // It is represented by a Type0 Font with an underlying CIDFontType2 and an Identity-H encoding map. // TODO: May be extended in the future to support a larger variety of CMaps and vertical fonts. // NOTE: For simple fonts, use NewPdfFontFromTTF. func NewCompositePdfFontFromTTF (r _ab .ReadSeeker )(*PdfFont ,error ){_efaaa ,_gfedg :=_ef .ReadAll (r );if _gfedg !=nil {_eg .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",_gfedg ); return nil ,_gfedg ;};_afcabd ,_gfedg :=_bad .TtfParse (_ca .NewReader (_efaaa ));if _gfedg !=nil {_eg .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",_gfedg ); return nil ,_gfedg ;};_aafcc :=&pdfCIDFontType2 {fontCommon :fontCommon {_dfbf :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_ebb .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_afcabd .Widths )<=0{return nil ,_gf .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"); };_dafee :=1000.0/float64 (_afcabd .UnitsPerEm );_bfeb :=_dafee *float64 (_afcabd .Widths [0]);_ddecg :=make (map[rune ]int );_aedfbc :=make (map[_bad .GID ]int );_fdggd :=_bad .GID (len (_afcabd .Widths ));for _fadbe ,_befd :=range _afcabd .Chars {if _befd > _fdggd -1{continue ; };_dgcd :=int (_dafee *float64 (_afcabd .Widths [_befd ]));_ddecg [_fadbe ]=_dgcd ;_aedfbc [_befd ]=_dgcd ;};_aafcc ._dceb =_ddecg ;_aafcc .DW =_ebb .MakeInteger (int64 (_bfeb ));_acgge :=_fgag (_aedfbc ,uint16 (_fdggd ));_aafcc .W =_ebb .MakeIndirectObject (_acgge ); _fadaa :=_ebb .MakeDict ();_fadaa .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_ebb .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_fadaa .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_ebb .MakeString ("\u0041\u0064\u006fb\u0065")); _fadaa .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_ebb .MakeInteger (0));_aafcc .CIDSystemInfo =_fadaa ;_ffbe :=&PdfFontDescriptor {FontName :_ebb .MakeName (_afcabd .PostScriptName ),Ascent :_ebb .MakeFloat (_dafee *float64 (_afcabd .TypoAscender )),Descent :_ebb .MakeFloat (_dafee *float64 (_afcabd .TypoDescender )),CapHeight :_ebb .MakeFloat (_dafee *float64 (_afcabd .CapHeight )),FontBBox :_ebb .MakeArrayFromFloats ([]float64 {_dafee *float64 (_afcabd .Xmin ),_dafee *float64 (_afcabd .Ymin ),_dafee *float64 (_afcabd .Xmax ),_dafee *float64 (_afcabd .Ymax )}),ItalicAngle :_ebb .MakeFloat (_afcabd .ItalicAngle ),MissingWidth :_ebb .MakeFloat (_bfeb )}; _cbge ,_gfedg :=_ebb .MakeStream (_efaaa ,_ebb .NewFlateEncoder ());if _gfedg !=nil {_eg .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",_gfedg ); return nil ,_gfedg ;};_cbge .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ebb .MakeInteger (int64 (len (_efaaa ))));_ffbe .FontFile2 =_cbge ;if _afcabd .Bold {_ffbe .StemV =_ebb .MakeInteger (120);}else {_ffbe .StemV =_ebb .MakeInteger (70); };_fdfgd :=_dffee ;if _afcabd .IsFixedPitch {_fdfgd |=_gfega ;};if _afcabd .ItalicAngle !=0{_fdfgd |=_ccgbe ;};_ffbe .Flags =_ebb .MakeInteger (int64 (_fdfgd ));_aafcc ._fdacg =_afcabd .PostScriptName ;_aafcc ._fbbd =_ffbe ;_cbged :=pdfFontType0 {fontCommon :fontCommon {_dfbf :"\u0054\u0079\u0070e\u0030",_fdacg :_afcabd .PostScriptName },DescendantFont :&PdfFont {_ebcad :_aafcc },Encoding :_ebb .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_bfdgc :_afcabd .NewEncoder ()}; if len (_afcabd .Chars )> 0{_bgeg :=make (map[_ebe .CharCode ]rune ,len (_afcabd .Chars ));for _aecc ,_caagd :=range _afcabd .Chars {_fcgfg :=_ebe .CharCode (_caagd );if _eebde ,_aadac :=_bgeg [_fcgfg ];!_aadac ||(_aadac &&_eebde > _aecc ){_bgeg [_fcgfg ]=_aecc ; };};_cbged ._dcdd =_ebe .NewToUnicodeCMap (_bgeg );};_bdgd :=PdfFont {_ebcad :&_cbged };return &_bdgd ,nil ;};func _fgff (_bgcd *_ebb .PdfIndirectObject )(*PdfOutline ,error ){_bfgbc ,_cedb :=_bgcd .PdfObject .(*_ebb .PdfObjectDictionary );if !_cedb {return nil ,_bg .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"); };_dgda :=NewPdfOutline ();if _aedfgd :=_bfgbc .Get ("\u0054\u0079\u0070\u0065");_aedfgd !=nil {_cbgd ,_ddad :=_aedfgd .(*_ebb .PdfObjectName );if _ddad {if *_cbgd !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_eg .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",*_cbgd ); };};};if _bdecd :=_bfgbc .Get ("\u0043\u006f\u0075n\u0074");_bdecd !=nil {_dcddf ,_cddf :=_ebb .GetNumberAsInt64 (_bdecd );if _cddf !=nil {return nil ,_cddf ;};_dgda .Count =&_dcddf ;};return _dgda ,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 _ebb .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_ebb .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_dgbg ,_edgdc :=encoder .EncodeBytes (img .Data ); if _edgdc !=nil {_eg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_edgdc );return nil ,_edgdc ;};_abfbgf :=NewXObjectImage ();_agdgb :=img .Width ;_geedc :=img .Height ; _abfbgf .Width =&_agdgb ;_abfbgf .Height =&_geedc ;_bcbba :=img .BitsPerComponent ;_abfbgf .BitsPerComponent =&_bcbba ;_abfbgf .Filter =encoder ;_abfbgf .Stream =_dgbg ;if cs ==nil {if img .ColorComponents ==1{_abfbgf .ColorSpace =NewPdfColorspaceDeviceGray (); }else if img .ColorComponents ==3{_abfbgf .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_abfbgf .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return nil ,_gf .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064"); };}else {_abfbgf .ColorSpace =cs ;};if len (img ._dagcb )!=0{_ddgbdc :=NewXObjectImage ();_ddgbdc .Filter =encoder ;_aafga ,_bfdaa :=encoder .EncodeBytes (img ._dagcb );if _bfdaa !=nil {_eg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_bfdaa ); return nil ,_bfdaa ;};_ddgbdc .Stream =_aafga ;_ddgbdc .BitsPerComponent =_abfbgf .BitsPerComponent ;_ddgbdc .Width =&img .Width ;_ddgbdc .Height =&img .Height ;_ddgbdc .ColorSpace =NewPdfColorspaceDeviceGray ();_abfbgf .SMask =_ddgbdc .ToPdfObject (); }else {_abfbgf .SMask =xobjIn .SMask ;_abfbgf .ImageMask =xobjIn .ImageMask ;if _abfbgf .ColorSpace .GetNumComponents ()==1{_dddfe (_abfbgf );};};return _abfbgf ,nil ;}; // GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject. func (_ffdgf *modelManager )GetModelFromPrimitive (primitive _ebb .PdfObject )PdfModel {model ,_fagb :=_ffdgf ._aabcbdd [primitive ];if !_fagb {return nil ;};return model ;}; // ToPdfObject implements interface PdfModel. func (_baee *PdfActionTrans )ToPdfObject ()_ebb .PdfObject {_baee .PdfAction .ToPdfObject ();_gfa :=_baee ._abe ;_bfdf :=_gfa .PdfObject .(*_ebb .PdfObjectDictionary );_bfdf .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeTrans )));_bfdf .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_baee .Trans ); return _gfa ;}; // PdfActionNamed represents a named action. type PdfActionNamed struct{*PdfAction ;N _ebb .PdfObject ;}; // SetDecode sets the decode image float slice. func (_deag *Image )SetDecode (decode []float64 ){_deag ._dgcea =decode }; // PdfAnnotationCircle represents Circle annotations. // (Section 12.5.6.8). type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ebb .PdfObject ;IC _ebb .PdfObject ;BE _ebb .PdfObject ;RD _ebb .PdfObject ;}; // 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 (_bbb *PdfAnnotationWidget )Field ()*PdfField {return _bbb ._gce }; // AddOutlineTree adds outlines to a PDF file. func (_eggeb *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_eggeb ._bcbee =outlineTree };func (_gefe *DSS )generateHashMaps ()error {_fcdcf ,_befe :=_gefe .generateHashMap (_gefe .Certs );if _befe !=nil {return _befe ;};_facc ,_befe :=_gefe .generateHashMap (_gefe .OCSPs ); if _befe !=nil {return _befe ;};_caad ,_befe :=_gefe .generateHashMap (_gefe .CRLs );if _befe !=nil {return _befe ;};_gefe ._aeag =_fcdcf ;_gefe ._cadd =_facc ;_gefe ._fafgb =_caad ;return nil ;}; // ImageToRGB converts Lab colorspace image to RGB and returns the result. func (_dcbc *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_febe :=func (_bbdf float64 )float64 {if _bbdf >=6.0/29{return _bbdf *_bbdf *_bbdf ;};return 108.0/841*(_bbdf -4/29);};_fbge :=img ._dgcea ;if len (_fbge )!=6{_eg .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"); _fbge =_dcbc .DecodeArray ();};_aggfe :=_abg .NewReader (img .getBase ());_edeag :=_dg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._dagcb ,img ._dgcea );_fca :=_abg .NewWriter (_edeag );_adeg :=_cbg .Pow (2,float64 (img .BitsPerComponent ))-1; _ggadb :=make ([]uint32 ,3);var (_bfdc error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_bbeae ,_gegee ,_dece float64 ;);for {_bfdc =_aggfe .ReadSamples (_ggadb );if _bfdc ==_ab .EOF {break ;}else if _bfdc !=nil {return img ,_bfdc ;};Ls =float64 (_ggadb [0])/_adeg ; As =float64 (_ggadb [1])/_adeg ;Bs =float64 (_ggadb [2])/_adeg ;Ls =_dg .LinearInterpolate (Ls ,0.0,1.0,_fbge [0],_fbge [1]);As =_dg .LinearInterpolate (As ,0.0,1.0,_fbge [2],_fbge [3]);Bs =_dg .LinearInterpolate (Bs ,0.0,1.0,_fbge [4],_fbge [5]);L =(Ls +16)/116+As /500; M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_dcbc .WhitePoint [0]*_febe (L );Y =_dcbc .WhitePoint [1]*_febe (M );Z =_dcbc .WhitePoint [2]*_febe (N );_bbeae =3.240479*X +-1.537150*Y +-0.498535*Z ;_gegee =-0.969256*X +1.875992*Y +0.041556*Z ;_dece =0.055648*X +-0.204043*Y +1.057311*Z ; _bbeae =_cbg .Min (_cbg .Max (_bbeae ,0),1.0);_gegee =_cbg .Min (_cbg .Max (_gegee ,0),1.0);_dece =_cbg .Min (_cbg .Max (_dece ,0),1.0);_ggadb [0]=uint32 (_bbeae *_adeg );_ggadb [1]=uint32 (_gegee *_adeg );_ggadb [2]=uint32 (_dece *_adeg );if _bfdc =_fca .WriteSamples (_ggadb ); _bfdc !=nil {return img ,_bfdc ;};};return _afacb (&_edeag ),nil ;}; // ColorToRGB only converts color used with uncolored patterns (defined in underlying colorspace). Does not go into the // pattern objects and convert those. If that is desired, needs to be done separately. See for example // grayscale conversion example in unidoc-examples repo. func (_dbaef *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_fabce ,_gfdc :=color .(*PdfColorPattern );if !_gfdc {_eg .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 _fabce .Color ==nil {return color ,nil ;};if _dbaef .UnderlyingCS ==nil {return nil ,_gf .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");}; return _dbaef .UnderlyingCS .ColorToRGB (_fabce .Color );}; // ToPdfObject returns the PDF representation of the function. func (_gbebc *PdfFunctionType4 )ToPdfObject ()_ebb .PdfObject {_fdfaa :=_gbebc ._gbgd ;if _fdfaa ==nil {_gbebc ._gbgd =&_ebb .PdfObjectStream {};_fdfaa =_gbebc ._gbgd ;};_fffb :=_ebb .MakeDict ();_fffb .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ebb .MakeInteger (4)); _agaag :=&_ebb .PdfObjectArray {};for _ ,_bcggc :=range _gbebc .Domain {_agaag .Append (_ebb .MakeFloat (_bcggc ));};_fffb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_agaag );_dbaa :=&_ebb .PdfObjectArray {};for _ ,_bcgd :=range _gbebc .Range {_dbaa .Append (_ebb .MakeFloat (_bcgd )); };_fffb .Set ("\u0052\u0061\u006eg\u0065",_dbaa );if _gbebc ._abbbb ==nil &&_gbebc .Program !=nil {_gbebc ._abbbb =[]byte (_gbebc .Program .String ());};_fffb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ebb .MakeInteger (int64 (len (_gbebc ._abbbb )))); _fdfaa .Stream =_gbebc ._abbbb ;_fdfaa .PdfObjectDictionary =_fffb ;return _fdfaa ;};func (_acfc *PdfReader )newPdfAnnotationFileAttachmentFromDict (_ggbc *_ebb .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_aaa :=PdfAnnotationFileAttachment {}; _ggde ,_ggdd :=_acfc .newPdfAnnotationMarkupFromDict (_ggbc );if _ggdd !=nil {return nil ,_ggdd ;};_aaa .PdfAnnotationMarkup =_ggde ;_aaa .FS =_ggbc .Get ("\u0046\u0053");_aaa .Name =_ggbc .Get ("\u004e\u0061\u006d\u0065");return &_aaa ,nil ;}; // NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options. func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_eff :=&PdfAppender {_ecce :reader ._ggdg ,Reader :reader ,_gege :reader ._cafdf ,_agb :reader ._dfadc };_bcgf ,_babb :=_eff ._ecce .Seek (0,_ab .SeekEnd ); if _babb !=nil {return nil ,_babb ;};_eff ._bee =_bcgf ;if _ ,_babb =_eff ._ecce .Seek (0,_ab .SeekStart );_babb !=nil {return nil ,_babb ;};_eff ._acfe ,_babb =NewPdfReaderWithOpts (_eff ._ecce ,opts );if _babb !=nil {return nil ,_babb ;};for _ ,_dce :=range _eff .Reader .GetObjectNums (){if _eff ._gbddb < _dce {_eff ._gbddb =_dce ; };};_eff ._acfd =_eff ._gege .GetXrefTable ();_eff ._cfag =_eff ._gege .GetXrefOffset ();_eff ._dfbg =append (_eff ._dfbg ,_eff ._acfe .PageList ...);_eff ._ddfg =make (map[_ebb .PdfObject ]struct{});_eff ._gbfa =make (map[_ebb .PdfObject ]int64 );_eff ._eebc =make (map[_ebb .PdfObject ]struct{}); _eff ._bfef =_eff ._acfe .AcroForm ;_eff ._eged =_eff ._acfe .DSS ;if opts !=nil {_eff ._accg =opts .Password ;};if encryptOptions !=nil {_eff ._gfba =encryptOptions ;};return _eff ,nil ;};func (_ebfae *Image )resampleLowBits (_ccbdd []uint32 ){_egddc :=_dg .BytesPerLine (int (_ebfae .Width ),int (_ebfae .BitsPerComponent ),_ebfae .ColorComponents ); _gfec :=make ([]byte ,_ebfae .ColorComponents *_egddc *int (_ebfae .Height ));_eaffg :=int (_ebfae .BitsPerComponent )*_ebfae .ColorComponents *int (_ebfae .Width );_aeccf :=uint8 (8);var (_dagb ,_ffeac int ;_agdgf uint32 ;);for _afcgd :=0;_afcgd < int (_ebfae .Height ); _afcgd ++{_ffeac =_afcgd *_egddc ;for _fcfa :=0;_fcfa < _eaffg ;_fcfa ++{_agdgf =_ccbdd [_dagb ];_aeccf -=uint8 (_ebfae .BitsPerComponent );_gfec [_ffeac ]|=byte (_agdgf )<<_aeccf ;if _aeccf ==0{_aeccf =8;_ffeac ++;};_dagb ++;};};_ebfae .Data =_gfec ;}; // NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values. func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_aggd :=PdfColorDeviceRGB {r ,g ,b };return &_aggd ;}; // GetPdfVersion gets the version of the PDF used within this document. func (_ffgcfe *PdfWriter )GetPdfVersion ()string {return _ffgcfe .getPdfVersion ()}; // GetContentStreamObjs returns a slice of PDF objects containing the content // streams of the page. func (_aafg *PdfPage )GetContentStreamObjs ()[]_ebb .PdfObject {if _aafg .Contents ==nil {return nil ;};_bfgd :=_ebb .TraceToDirectObject (_aafg .Contents );if _aeaba ,_eeba :=_bfgd .(*_ebb .PdfObjectArray );_eeba {return _aeaba .Elements ();};return []_ebb .PdfObject {_bfgd }; };func _agdbf (_cbffe []*_ebb .PdfObjectStream )*_ebb .PdfObjectArray {if len (_cbffe )==0{return nil ;};_gdcfa :=make ([]_ebb .PdfObject ,0,len (_cbffe ));for _ ,_gdcae :=range _cbffe {_gdcfa =append (_gdcfa ,_gdcae );};return _ebb .MakeArray (_gdcfa ...); }; // NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object // from the input dictionary. func NewPdfPageResourcesFromDict (dict *_ebb .PdfObjectDictionary )(*PdfPageResources ,error ){_afecd :=NewPdfPageResources ();if _fbfdd :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_fbfdd !=nil {_afecd .ExtGState =_fbfdd ;};if _bbdde :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"); _bbdde !=nil &&!_ebb .IsNullObject (_bbdde ){_afecd .ColorSpace =_bbdde ;};if _cfgea :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_cfgea !=nil {_afecd .Pattern =_cfgea ;};if _cbeef :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_cbeef !=nil {_afecd .Shading =_cbeef ; };if _ecedf :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_ecedf !=nil {_afecd .XObject =_ecedf ;};if _efffc :=_ebb .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_efffc !=nil {_afecd .Font =_efffc ;};if _acdgfc :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074"); _acdgfc !=nil {_afecd .ProcSet =_acdgfc ;};if _acdfa :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_acdfa !=nil {_afecd .Properties =_acdfa ;};return _afecd ,nil ;}; // NewPdfColorspaceCalRGB returns a new CalRGB colorspace object. func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_adfe :=&PdfColorspaceCalRGB {};_adfe .BlackPoint =[]float64 {0.0,0.0,0.0};_adfe .Gamma =[]float64 {1.0,1.0,1.0};_adfe .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _adfe ;}; // NewPdfAnnotationText returns a new text annotation. func NewPdfAnnotationText ()*PdfAnnotationText {_dca :=NewPdfAnnotation ();_ddf :=&PdfAnnotationText {};_ddf .PdfAnnotation =_dca ;_ddf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dca .SetContext (_ddf );return _ddf ;}; // GetContentStream returns the XObject Form's content stream. func (_facd *XObjectForm )GetContentStream ()([]byte ,error ){_gbgbd ,_eaea :=_ebb .DecodeStream (_facd ._gebcd );if _eaea !=nil {return nil ,_eaea ;};return _gbgbd ,nil ;}; // SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current // document revision. func (_dgce *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_dgce .updateObjectsDeep (dss .ToPdfObject (),nil );};_dgce ._eged =dss ;}; // PdfAnnotationStamp represents Stamp annotations. // (Section 12.5.6.12). type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _ebb .PdfObject ;}; // ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup] func (_bcge *PdfColorspaceSpecialIndexed )ToPdfObject ()_ebb .PdfObject {_bgee :=_ebb .MakeArray (_ebb .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_bgee .Append (_bcge .Base .ToPdfObject ());_bgee .Append (_ebb .MakeInteger (int64 (_bcge .HiVal ))); _bgee .Append (_bcge .Lookup );if _bcge ._gdaef !=nil {_bcge ._gdaef .PdfObject =_bgee ;return _bcge ._gdaef ;};return _bgee ;};func (_cdede *PdfWriter )copyObject (_ffcfb _ebb .PdfObject ,_fdfb map[_ebb .PdfObject ]_ebb .PdfObject ,_gaecbf map[_ebb .PdfObject ]struct{},_fgcaf bool )_ebb .PdfObject {_ggedd :=!_cdede ._abffb &&_gaecbf !=nil ; if _bcdge ,_dabdc :=_fdfb [_ffcfb ];_dabdc {if _ggedd &&!_fgcaf {delete (_gaecbf ,_ffcfb );};return _bcdge ;};_efbcd :=_ffcfb ;switch _addcg :=_ffcfb .(type ){case *_ebb .PdfObjectArray :_fadde :=_ebb .MakeArray ();_efbcd =_fadde ;_fdfb [_ffcfb ]=_efbcd ; for _ ,_gdcbdg :=range _addcg .Elements (){_fadde .Append (_cdede .copyObject (_gdcbdg ,_fdfb ,_gaecbf ,_fgcaf ));};case *_ebb .PdfObjectStreams :_agdcf :=&_ebb .PdfObjectStreams {PdfObjectReference :_addcg .PdfObjectReference };_efbcd =_agdcf ;_fdfb [_ffcfb ]=_efbcd ; for _ ,_bdacb :=range _addcg .Elements (){_agdcf .Append (_cdede .copyObject (_bdacb ,_fdfb ,_gaecbf ,_fgcaf ));};case *_ebb .PdfObjectStream :_fgfde :=&_ebb .PdfObjectStream {Stream :_addcg .Stream ,PdfObjectReference :_addcg .PdfObjectReference };_efbcd =_fgfde ; _fdfb [_ffcfb ]=_efbcd ;_fgfde .PdfObjectDictionary =_cdede .copyObject (_addcg .PdfObjectDictionary ,_fdfb ,_gaecbf ,_fgcaf ).(*_ebb .PdfObjectDictionary );case *_ebb .PdfObjectDictionary :var _aefec bool ;if _ggedd &&!_fgcaf {if _ggeccg ,_ :=_ebb .GetNameVal (_addcg .Get ("\u0054\u0079\u0070\u0065")); _ggeccg =="\u0050\u0061\u0067\u0065"{_ ,_fffde :=_cdede ._afbdd [_addcg ];_fgcaf =!_fffde ;_aefec =_fgcaf ;};};_eeeaa :=_ebb .MakeDict ();_efbcd =_eeeaa ;_fdfb [_ffcfb ]=_efbcd ;for _ ,_fbbc :=range _addcg .Keys (){_eeeaa .Set (_fbbc ,_cdede .copyObject (_addcg .Get (_fbbc ),_fdfb ,_gaecbf ,_fgcaf )); };if _aefec {_efbcd =_ebb .MakeNull ();_fgcaf =false ;};case *_ebb .PdfIndirectObject :_gggbb :=&_ebb .PdfIndirectObject {PdfObjectReference :_addcg .PdfObjectReference };_efbcd =_gggbb ;_fdfb [_ffcfb ]=_efbcd ;_gggbb .PdfObject =_cdede .copyObject (_addcg .PdfObject ,_fdfb ,_gaecbf ,_fgcaf ); case *_ebb .PdfObjectString :_dcaec :=*_addcg ;_efbcd =&_dcaec ;_fdfb [_ffcfb ]=_efbcd ;case *_ebb .PdfObjectName :_adfd :=*_addcg ;_efbcd =&_adfd ;_fdfb [_ffcfb ]=_efbcd ;case *_ebb .PdfObjectNull :_efbcd =_ebb .MakeNull ();_fdfb [_ffcfb ]=_efbcd ;case *_ebb .PdfObjectInteger :_ggfgc :=*_addcg ; _efbcd =&_ggfgc ;_fdfb [_ffcfb ]=_efbcd ;case *_ebb .PdfObjectReference :_cgbeb :=*_addcg ;_efbcd =&_cgbeb ;_fdfb [_ffcfb ]=_efbcd ;case *_ebb .PdfObjectFloat :_gabd :=*_addcg ;_efbcd =&_gabd ;_fdfb [_ffcfb ]=_efbcd ;case *_ebb .PdfObjectBool :_eaadd :=*_addcg ; _efbcd =&_eaadd ;_fdfb [_ffcfb ]=_efbcd ;case *pdfSignDictionary :_gacbgf :=&pdfSignDictionary {PdfObjectDictionary :_ebb .MakeDict (),_dcfab :_addcg ._dcfab ,_bead :_addcg ._bead };_efbcd =_gacbgf ;_fdfb [_ffcfb ]=_efbcd ;for _ ,_gabac :=range _addcg .Keys (){_gacbgf .Set (_gabac ,_cdede .copyObject (_addcg .Get (_gabac ),_fdfb ,_gaecbf ,_fgcaf )); };default:_eg .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",_ffcfb ); };if _ggedd &&_fgcaf {_gaecbf [_ffcfb ]=struct{}{};};return _efbcd ;}; // NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object). func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_adcg :_ebb .MakeIndirectObject (_ebb .MakeDict ())};}; // UpdateObject marks `obj` as updated and to be included in the following revision. func (_fdfg *PdfAppender )UpdateObject (obj _ebb .PdfObject ){_fdfg .replaceObject (obj ,obj );if _ ,_caee :=_fdfg ._ddfg [obj ];!_caee {_fdfg ._bfeg =append (_fdfg ._bfeg ,obj );_fdfg ._ddfg [obj ]=struct{}{};};};func _cfgdf (_acdg *_ebb .PdfObjectDictionary )(*PdfFieldText ,error ){_babeb :=&PdfFieldText {}; _babeb .DA ,_ =_ebb .GetString (_acdg .Get ("\u0044\u0041"));_babeb .Q ,_ =_ebb .GetInt (_acdg .Get ("\u0051"));_babeb .DS ,_ =_ebb .GetString (_acdg .Get ("\u0044\u0053"));_babeb .RV =_acdg .Get ("\u0052\u0056");_babeb .MaxLen ,_ =_ebb .GetInt (_acdg .Get ("\u004d\u0061\u0078\u004c\u0065\u006e")); return _babeb ,nil ;}; // ToPdfObject implements interface PdfModel. func (_dgfa *PdfTransformParamsDocMDP )ToPdfObject ()_ebb .PdfObject {_aefdg :=_ebb .MakeDict ();_aefdg .SetIfNotNil ("\u0054\u0079\u0070\u0065",_dgfa .Type );_aefdg .SetIfNotNil ("\u0056",_dgfa .V );_aefdg .SetIfNotNil ("\u0050",_dgfa .P );return _aefdg ; };func (_bbadg *PdfWriter )checkPendingObjects (){for _gbfff ,_gcedb :=range _bbadg ._eefeb {if !_bbadg .hasObject (_gbfff ){_eg .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",_gbfff ,_gbfff ,_gbfff ); for _ ,_dggdfbc :=range _gcedb {for _ ,_efcfc :=range _dggdfbc .Keys (){_babdf :=_dggdfbc .Get (_efcfc );if _babdf ==_gbfff {_eg .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"); _dggdfbc .Set (_efcfc ,_ebb .MakeNull ());break ;};};};};};}; // CharMetrics represents width and height metrics of a glyph. type CharMetrics =_bad .CharMetrics ;func (_fgca *PdfSignature )extractChainFromCert ()([]*_g .Certificate ,error ){var _cafgga *_ebb .PdfObjectArray ;switch _fffad :=_fgca .Cert .(type ){case *_ebb .PdfObjectString :_cafgga =_ebb .MakeArray (_fffad ); case *_ebb .PdfObjectArray :_cafgga =_fffad ;default:return nil ,_bg .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",_fffad ); };var _bedcd _ca .Buffer ;for _ ,_ccdga :=range _cafgga .Elements (){_fgcac ,_beba :=_ebb .GetString (_ccdga );if !_beba {return nil ,_bg .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",_ccdga ); };if _ ,_bcfae :=_bedcd .Write (_fgcac .Bytes ());_bcfae !=nil {return nil ,_bcfae ;};};return _g .ParseCertificates (_bedcd .Bytes ());};func (_ggbe *PdfReader )newPdfAnnotationPolyLineFromDict (_gbac *_ebb .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_acggf :=PdfAnnotationPolyLine {}; _dgfd ,_bcb :=_ggbe .newPdfAnnotationMarkupFromDict (_gbac );if _bcb !=nil {return nil ,_bcb ;};_acggf .PdfAnnotationMarkup =_dgfd ;_acggf .Vertices =_gbac .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_acggf .LE =_gbac .Get ("\u004c\u0045"); _acggf .BS =_gbac .Get ("\u0042\u0053");_acggf .IC =_gbac .Get ("\u0049\u0043");_acggf .BE =_gbac .Get ("\u0042\u0045");_acggf .IT =_gbac .Get ("\u0049\u0054");_acggf .Measure =_gbac .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_acggf ,nil ;}; func (_gceb *PdfReader )buildPageList (_gdafg *_ebb .PdfIndirectObject ,_cbaadb *_ebb .PdfIndirectObject ,_gbggf map[_ebb .PdfObject ]struct{})error {if _gdafg ==nil {return nil ;};if _ ,_dceef :=_gbggf [_gdafg ];_dceef {_eg .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",_gdafg .ObjectNumber ); return nil ;};_gbggf [_gdafg ]=struct{}{};_bcaaa ,_cbegc :=_gdafg .PdfObject .(*_ebb .PdfObjectDictionary );if !_cbegc {return _gf .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_afcabe ,_cbegc :=(*_bcaaa ).Get ("\u0054\u0079\u0070\u0065").(*_ebb .PdfObjectName ); if !_cbegc {if _bcaaa .Get ("\u004b\u0069\u0064\u0073")==nil {return _gf .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");};_eg .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."); _afcabe =_ebb .MakeName ("\u0050\u0061\u0067e\u0073");_bcaaa .Set ("\u0054\u0079\u0070\u0065",_afcabe );};_eg .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",*_afcabe ,_gdafg ); if *_afcabe =="\u0050\u0061\u0067\u0065"{_bgfade ,_efbc :=_gceb .newPdfPageFromDict (_bcaaa );if _efbc !=nil {return _efbc ;};_bgfade .setContainer (_gdafg );if _cbaadb !=nil {_bcaaa .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cbaadb );};_gceb ._faebb =append (_gceb ._faebb ,_gdafg ); _gceb .PageList =append (_gceb .PageList ,_bgfade );return nil ;};if *_afcabe !="\u0050\u0061\u0067e\u0073"{_eg .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",_afcabe ); return _gf .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 _cbaadb !=nil {_bcaaa .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cbaadb );};if !_gceb ._ceefa {_fgcca :=_gceb .traverseObjectData (_gdafg );if _fgcca !=nil {return _fgcca ;};};_gfede ,_dddce :=_gceb ._cafdf .Resolve (_bcaaa .Get ("\u004b\u0069\u0064\u0073")); if _dddce !=nil {_eg .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 _dddce ;};var _fadfc *_ebb .PdfObjectArray ; _fadfc ,_cbegc =_gfede .(*_ebb .PdfObjectArray );if !_cbegc {_cbgge ,_efab :=_gfede .(*_ebb .PdfIndirectObject );if !_efab {return _gf .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_fadfc ,_cbegc =_cbgge .PdfObject .(*_ebb .PdfObjectArray ); if !_cbegc {return _gf .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");};};_eg .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_fadfc ); for _affge ,_edcbbc :=range _fadfc .Elements (){_edefe ,_fdfaf :=_ebb .GetIndirect (_edcbbc );if !_fdfaf {_eg .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",_edefe ); return _gf .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_fadfc .Set (_affge ,_edefe );_dddce =_gceb .buildPageList (_edefe ,_gdafg ,_gbggf );if _dddce !=nil {return _dddce ; };};return nil ;}; // ImageToRGB converts CalRGB colorspace image to RGB and returns the result. func (_eaed *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_dcba :=_abg .NewReader (img .getBase ());_acdc :=_dg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_ffd :=_abg .NewWriter (_acdc ); _gebe :=_cbg .Pow (2,float64 (img .BitsPerComponent ))-1;_gbca :=make ([]uint32 ,3);var (_fbaa error ;_eeeg ,_aee ,_bgeaf ,_eeddbe ,_gcfg ,_feff float64 ;);for {_fbaa =_dcba .ReadSamples (_gbca );if _fbaa ==_ab .EOF {break ;}else if _fbaa !=nil {return img ,_fbaa ; };_eeeg =float64 (_gbca [0])/_gebe ;_aee =float64 (_gbca [1])/_gebe ;_bgeaf =float64 (_gbca [2])/_gebe ;_eeddbe =_eaed .Matrix [0]*_cbg .Pow (_eeeg ,_eaed .Gamma [0])+_eaed .Matrix [3]*_cbg .Pow (_aee ,_eaed .Gamma [1])+_eaed .Matrix [6]*_cbg .Pow (_bgeaf ,_eaed .Gamma [2]); _gcfg =_eaed .Matrix [1]*_cbg .Pow (_eeeg ,_eaed .Gamma [0])+_eaed .Matrix [4]*_cbg .Pow (_aee ,_eaed .Gamma [1])+_eaed .Matrix [7]*_cbg .Pow (_bgeaf ,_eaed .Gamma [2]);_feff =_eaed .Matrix [2]*_cbg .Pow (_eeeg ,_eaed .Gamma [0])+_eaed .Matrix [5]*_cbg .Pow (_aee ,_eaed .Gamma [1])+_eaed .Matrix [8]*_cbg .Pow (_bgeaf ,_eaed .Gamma [2]); _eeeg =3.240479*_eeddbe +-1.537150*_gcfg +-0.498535*_feff ;_aee =-0.969256*_eeddbe +1.875992*_gcfg +0.041556*_feff ;_bgeaf =0.055648*_eeddbe +-0.204043*_gcfg +1.057311*_feff ;_eeeg =_cbg .Min (_cbg .Max (_eeeg ,0),1.0);_aee =_cbg .Min (_cbg .Max (_aee ,0),1.0); _bgeaf =_cbg .Min (_cbg .Max (_bgeaf ,0),1.0);_gbca [0]=uint32 (_eeeg *_gebe );_gbca [1]=uint32 (_aee *_gebe );_gbca [2]=uint32 (_bgeaf *_gebe );if _fbaa =_ffd .WriteSamples (_gbca );_fbaa !=nil {return img ,_fbaa ;};};return _afacb (&_acdc ),nil ;}; // AppendContentStream adds content stream by string. Appends to the last // contentstream instance if many. func (_bgec *PdfPage )AppendContentStream (contentStr string )error {_cfae ,_cdadf :=_bgec .GetContentStreams ();if _cdadf !=nil {return _cdadf ;};if len (_cfae )==0{_cfae =[]string {contentStr };return _bgec .SetContentStreams (_cfae ,_ebb .NewFlateEncoder ()); };var _fdec _ca .Buffer ;_fdec .WriteString (_cfae [len (_cfae )-1]);_fdec .WriteString ("\u000a");_fdec .WriteString (contentStr );_cfae [len (_cfae )-1]=_fdec .String ();return _bgec .SetContentStreams (_cfae ,_ebb .NewFlateEncoder ());};func (_gdedc *PdfWriter )addObject (_cdcgd _ebb .PdfObject )bool {_bdfga :=_gdedc .hasObject (_cdcgd ); if !_bdfga {_aeaa :=_ebb .ResolveReferencesDeep (_cdcgd ,_gdedc ._dcfg );if _aeaa !=nil {_eg .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_aeaa );};_gdedc ._ebdgg =append (_gdedc ._ebdgg ,_cdcgd ); _gdedc ._ffffd [_cdcgd ]=struct{}{};return true ;};return false ;}; // AllFields returns a flattened list of all fields in the form. func (_cgbbga *PdfAcroForm )AllFields ()[]*PdfField {if _cgbbga ==nil {return nil ;};var _baad []*PdfField ;if _cgbbga .Fields !=nil {for _ ,_ebgb :=range *_cgbbga .Fields {_baad =append (_baad ,_fbea (_ebgb )...);};};return _baad ;}; // PdfColorspaceDeviceGray represents a grayscale colorspace. type PdfColorspaceDeviceGray struct{}; // 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 *_ebb .PdfObjectInteger ;TilingType *_ebb .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_ebb .PdfObjectFloat ;YStep *_ebb .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_ebb .PdfObjectArray ;}; func (_bdbc *PdfReader )newPdfAnnotationFreeTextFromDict (_ababc *_ebb .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_ccbf :=PdfAnnotationFreeText {};_adfb ,_fdc :=_bdbc .newPdfAnnotationMarkupFromDict (_ababc );if _fdc !=nil {return nil ,_fdc ; };_ccbf .PdfAnnotationMarkup =_adfb ;_ccbf .DA =_ababc .Get ("\u0044\u0041");_ccbf .Q =_ababc .Get ("\u0051");_ccbf .RC =_ababc .Get ("\u0052\u0043");_ccbf .DS =_ababc .Get ("\u0044\u0053");_ccbf .CL =_ababc .Get ("\u0043\u004c");_ccbf .IT =_ababc .Get ("\u0049\u0054"); _ccbf .BE =_ababc .Get ("\u0042\u0045");_ccbf .RD =_ababc .Get ("\u0052\u0044");_ccbf .BS =_ababc .Get ("\u0042\u0053");_ccbf .LE =_ababc .Get ("\u004c\u0045");return &_ccbf ,nil ;}; // ToPdfObject implements interface PdfModel. func (_efb *PdfActionResetForm )ToPdfObject ()_ebb .PdfObject {_efb .PdfAction .ToPdfObject ();_aeb :=_efb ._abe ;_bcf :=_aeb .PdfObject .(*_ebb .PdfObjectDictionary );_bcf .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeResetForm )));_bcf .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_efb .Fields ); _bcf .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_efb .Flags );return _aeb ;};var ErrColorOutOfRange =_gf .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065"); // ToPdfObject implements interface PdfModel. func (_edae *PdfAnnotationStrikeOut )ToPdfObject ()_ebb .PdfObject {_edae .PdfAnnotation .ToPdfObject ();_ffeag :=_edae ._bdcd ;_abad :=_ffeag .PdfObject .(*_ebb .PdfObjectDictionary );_edae .PdfAnnotationMarkup .appendToPdfDictionary (_abad );_abad .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t")); _abad .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_edae .QuadPoints );return _ffeag ;}; // 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 (_eceg *PdfReader )CheckAccessRights (password []byte )(bool ,_fe .Permissions ,error ){return _eceg ._cafdf .CheckAccessRights (password );};func _dddfe (_gbecb *XObjectImage )error {if _gbecb .SMask ==nil {return nil ;};_gfdag ,_gddeb :=_gbecb .SMask .(*_ebb .PdfObjectStream ); if !_gddeb {_eg .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 _ebb .ErrTypeError ;};_acgce :=_gfdag .PdfObjectDictionary ; _bbbga :=_acgce .Get ("\u004d\u0061\u0074t\u0065");if _bbbga ==nil {return nil ;};_agaad ,_eeddd :=_ffaba (_bbbga .(*_ebb .PdfObjectArray ));if _eeddd !=nil {return _eeddd ;};_dbgcbc :=_ebb .MakeArrayFromFloats ([]float64 {_agaad });_acgce .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_dbgcbc ); return nil ;};func _gcabc (_aacea *_ebb .PdfObjectDictionary )(*PdfShadingType6 ,error ){_bgac :=PdfShadingType6 {};_dfef :=_aacea .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _dfef ==nil {_eg .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 ;};_ebgaa ,_fcffdb :=_dfef .(*_ebb .PdfObjectInteger );if !_fcffdb {_eg .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",_dfef ); return nil ,_ebb .ErrTypeError ;};_bgac .BitsPerCoordinate =_ebgaa ;_dfef =_aacea .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _dfef ==nil {_eg .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 ;};_ebgaa ,_fcffdb =_dfef .(*_ebb .PdfObjectInteger );if !_fcffdb {_eg .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",_dfef ); return nil ,_ebb .ErrTypeError ;};_bgac .BitsPerComponent =_ebgaa ;_dfef =_aacea .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _dfef ==nil {_eg .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 ;};_ebgaa ,_fcffdb =_dfef .(*_ebb .PdfObjectInteger );if !_fcffdb {_eg .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",_dfef ); return nil ,_ebb .ErrTypeError ;};_bgac .BitsPerComponent =_ebgaa ;_dfef =_aacea .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _dfef ==nil {_eg .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 ;};_dcaea ,_fcffdb :=_dfef .(*_ebb .PdfObjectArray );if !_fcffdb {_eg .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",_dfef ); return nil ,_ebb .ErrTypeError ;};_bgac .Decode =_dcaea ;if _gabf :=_aacea .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_gabf !=nil {_bgac .Function =[]PdfFunction {};if _gabgc ,_feebd :=_gabf .(*_ebb .PdfObjectArray );_feebd {for _ ,_cgaded :=range _gabgc .Elements (){_abebg ,_ffefg :=_aagg (_cgaded ); if _ffefg !=nil {_eg .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",_ffefg );return nil ,_ffefg ;};_bgac .Function =append (_bgac .Function ,_abebg ); };}else {_ggbgb ,_gfee :=_aagg (_gabf );if _gfee !=nil {_eg .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",_gfee );return nil ,_gfee ;};_bgac .Function =append (_bgac .Function ,_ggbgb ); };};return &_bgac ,nil ;}; // ToPdfObject returns the PDF representation of the colorspace. func (_bbggb *PdfColorspaceDeviceGray )ToPdfObject ()_ebb .PdfObject {return _ebb .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};func (_eedbf *LTV )validateSig (_cgfga *PdfSignature )error {if _cgfga ==nil ||_cgfga .Contents ==nil ||len (_cgfga .Contents .Bytes ())==0{return _bg .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_cgfga ); };return nil ;}; // PdfBorderEffect represents a PDF border effect. type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;}; // WriteToFile writes the Appender output to file specified by path. func (_caba *PdfAppender )WriteToFile (outputPath string )error {_gggdb ,_edca :=_ed .Create (outputPath );if _edca !=nil {return _edca ;};defer _gggdb .Close ();return _caba .Write (_gggdb );};func _dcbd (_ffcfea _ab .ReadSeeker ,_abaee *ReaderOpts ,_dfdac bool ,_dgabf string )(*PdfReader ,error ){if _abaee ==nil {_abaee =NewReaderOpts (); };_aeebf :=*_abaee ;_edeaec :=&PdfReader {_ggdg :_ffcfea ,_dfadc :map[_ebb .PdfObject ]struct{}{},_abbaca :_fadcd (),_ceefa :_abaee .LazyLoad ,_cfbgga :_abaee .ComplianceMode ,_abadec :_dfdac ,_edcbc :&_aeebf };_ffcge ,_aacce :=_bafec ("\u0072");if _aacce !=nil {return nil ,_aacce ; };_aacce =_ce .Track (_ffcge ,_dgabf );if _aacce !=nil {return nil ,_aacce ;};_edeaec ._decdd =_ffcge ;var _bgbeb *_ebb .PdfParser ;if !_edeaec ._cfbgga {_bgbeb ,_aacce =_ebb .NewParser (_ffcfea );}else {_bgbeb ,_aacce =_ebb .NewCompliancePdfParser (_ffcfea ); };if _aacce !=nil {return nil ,_aacce ;};_edeaec ._cafdf =_bgbeb ;_agafc ,_aacce :=_edeaec .IsEncrypted ();if _aacce !=nil {return nil ,_aacce ;};if !_agafc {_aacce =_edeaec .loadStructure ();if _aacce !=nil {return nil ,_aacce ;};}else if _dfdac {_efddf ,_cfafd :=_edeaec .Decrypt ([]byte (_abaee .Password )); if _cfafd !=nil {return nil ,_cfafd ;};if !_efddf {return nil ,_gf .New ("\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074\u006f \u0064\u0065c\u0072\u0079\u0070\u0074\u0020\u0070\u0061\u0073\u0073w\u006f\u0072\u0064\u0020p\u0072\u006f\u0074\u0065\u0063\u0074\u0065\u0064\u0020\u0066\u0069\u006c\u0065\u0020\u002d\u0020\u006e\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0073\u0070\u0065\u0063\u0069\u0066y\u0020\u0070\u0061s\u0073\u0020\u0074\u006f\u0020\u0044\u0065\u0063\u0072\u0079\u0070\u0074"); };};_edeaec ._cacfc =make (map[*PdfReader ]*PdfReader );_edeaec ._face =make ([]*PdfReader ,_bgbeb .GetRevisionNumber ());return _edeaec ,nil ;}; // IsPush returns true if the button field represents a push button, false otherwise. func (_abdga *PdfFieldButton )IsPush ()bool {return _abdga .GetType ()==ButtonTypePush }; // 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 ){_egbd ,_cbfbf :=_ed .Open (filePath );if _cbfbf !=nil {_eg .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",_cbfbf ); return nil ,_cbfbf ;};defer _egbd .Close ();return NewPdfFontFromTTF (_egbd );}; // VariableText contains the common attributes of a variable text. // The VariableText is typically not used directly, but is can encapsulate by PdfField // See section 12.7.3.3 "Variable Text" and Table 222 (pp. 434-436 PDF32000_2008). type VariableText struct{DA *_ebb .PdfObjectString ;Q *_ebb .PdfObjectInteger ;DS *_ebb .PdfObjectString ;RV _ebb .PdfObject ;};func (_cedgbg *PdfFont )baseFields ()*fontCommon {if _cedgbg ._ebcad ==nil {_eg .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 _cedgbg ._ebcad .baseFields ();}; // PdfActionGoTo represents a GoTo action. type PdfActionGoTo struct{*PdfAction ;D _ebb .PdfObject ;}; // ToPdfObject implements interface PdfModel. func (_ead *PdfActionSetOCGState )ToPdfObject ()_ebb .PdfObject {_ead .PdfAction .ToPdfObject ();_bea :=_ead ._abe ;_gff :=_bea .PdfObject .(*_ebb .PdfObjectDictionary );_gff .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeSetOCGState )));_gff .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_ead .State ); _gff .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_ead .PreserveRB );return _bea ;}; // ToPdfObject implements interface PdfModel. func (_dae *PdfActionURI )ToPdfObject ()_ebb .PdfObject {_dae .PdfAction .ToPdfObject ();_cbc :=_dae ._abe ;_aeg :=_cbc .PdfObject .(*_ebb .PdfObjectDictionary );_aeg .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeURI )));_aeg .SetIfNotNil ("\u0055\u0052\u0049",_dae .URI ); _aeg .SetIfNotNil ("\u0049\u0073\u004da\u0070",_dae .IsMap );return _cbc ;}; // ToPdfObject recursively builds the Outline tree PDF object. func (_dfea *PdfOutlineItem )ToPdfObject ()_ebb .PdfObject {_cbacc :=_dfea ._cacdf ;_fbddd :=_cbacc .PdfObject .(*_ebb .PdfObjectDictionary );_fbddd .Set ("\u0054\u0069\u0074l\u0065",_dfea .Title );if _dfea .A !=nil {_fbddd .Set ("\u0041",_dfea .A );}; if _gdgac :=_fbddd .Get ("\u0053\u0045");_gdgac !=nil {_fbddd .Remove ("\u0053\u0045");};if _dfea .C !=nil {_fbddd .Set ("\u0043",_dfea .C );};if _dfea .Dest !=nil {_fbddd .Set ("\u0044\u0065\u0073\u0074",_dfea .Dest );};if _dfea .F !=nil {_fbddd .Set ("\u0046",_dfea .F ); };if _dfea .Count !=nil {_fbddd .Set ("\u0043\u006f\u0075n\u0074",_ebb .MakeInteger (*_dfea .Count ));};if _dfea .Next !=nil {_fbddd .Set ("\u004e\u0065\u0078\u0074",_dfea .Next .ToPdfObject ());};if _dfea .First !=nil {_fbddd .Set ("\u0046\u0069\u0072s\u0074",_dfea .First .ToPdfObject ()); };if _dfea .Prev !=nil {_fbddd .Set ("\u0050\u0072\u0065\u0076",_dfea .Prev .GetContext ().GetContainingPdfObject ());};if _dfea .Last !=nil {_fbddd .Set ("\u004c\u0061\u0073\u0074",_dfea .Last .GetContext ().GetContainingPdfObject ());};if _dfea .Parent !=nil {_fbddd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_dfea .Parent .GetContext ().GetContainingPdfObject ()); };return _cbacc ;};func _bcafa (_cfgda *_ebb .PdfObjectDictionary )(*PdfShadingType3 ,error ){_fcbbg :=PdfShadingType3 {};_eaaecg :=_cfgda .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _eaaecg ==nil {_eg .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 ;};_eagb ,_gdfeg :=_eaaecg .(*_ebb .PdfObjectArray );if !_gdfeg {_eg .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",_eaaecg ); return nil ,_ebb .ErrTypeError ;};if _eagb .Len ()!=6{_eg .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",_eagb .Len ());return nil ,ErrInvalidAttribute ; };_fcbbg .Coords =_eagb ;if _faagf :=_cfgda .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_faagf !=nil {_faagf =_ebb .TraceToDirectObject (_faagf );_acffd ,_cgfbe :=_faagf .(*_ebb .PdfObjectArray );if !_cgfbe {_eg .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",_faagf ); return nil ,_ebb .ErrTypeError ;};_fcbbg .Domain =_acffd ;};_eaaecg =_cfgda .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _eaaecg ==nil {_eg .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 ;};_fcbbg .Function =[]PdfFunction {};if _gdbdc ,_afegbb :=_eaaecg .(*_ebb .PdfObjectArray );_afegbb {for _ ,_dbgd :=range _gdbdc .Elements (){_agfb ,_dcdcd :=_aagg (_dbgd );if _dcdcd !=nil {_eg .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",_dcdcd ); return nil ,_dcdcd ;};_fcbbg .Function =append (_fcbbg .Function ,_agfb );};}else {_fabbd ,_dfafbe :=_aagg (_eaaecg );if _dfafbe !=nil {_eg .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",_dfafbe ); return nil ,_dfafbe ;};_fcbbg .Function =append (_fcbbg .Function ,_fabbd );};if _facbe :=_cfgda .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_facbe !=nil {_facbe =_ebb .TraceToDirectObject (_facbe );_bffad ,_ceda :=_facbe .(*_ebb .PdfObjectArray );if !_ceda {_eg .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",_facbe ); return nil ,_ebb .ErrTypeError ;};if _bffad .Len ()!=2{_eg .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",_bffad .Len ());return nil ,ErrInvalidAttribute ; };_fcbbg .Extend =_bffad ;};return &_fcbbg ,nil ;};type fontCommon struct{_fdacg string ;_dfbf string ;_efge string ;_baag _ebb .PdfObject ;_dcdd *_ebe .CMap ;_fbbd *PdfFontDescriptor ;_efbg int64 ;}; // PdfAnnotationSquiggly represents Squiggly annotations. // (Section 12.5.6.10). type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ebb .PdfObject ;}; // PdfVersion returns version of the PDF file. func (_fedf *PdfReader )PdfVersion ()_ebb .Version {return _fedf ._cafdf .PdfVersion ()}; // ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb). func (_aebde *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gggb ,_abeed :=_ebb .GetNumbersAsFloat (objects ); if _abeed !=nil {return nil ,_abeed ;};return _aebde .ColorFromFloats (_gggb );}; // NewPermissions returns a new permissions object. func NewPermissions (docMdp *PdfSignature )*Permissions {_cbdg :=Permissions {};_cbdg .DocMDP =docMdp ;_gbbf :=_ebb .MakeDict ();_gbbf .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_cbdg ._bdgdgf =_gbbf ;return &_cbdg ;}; // ToInteger convert to an integer format. func (_ggdee *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_fced :=_cbg .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_fced *_ggdee .C ()),uint32 (_fced *_ggdee .M ()),uint32 (_fced *_ggdee .Y ()),uint32 (_fced *_ggdee .K ())};}; // String returns the name of the colorspace (DeviceN). func (_cbdb *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"}; // Height returns the height of `rect`. func (_bcdeb *PdfRectangle )Height ()float64 {return _cbg .Abs (_bcdeb .Ury -_bcdeb .Lly )};