// // 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 (_b "bufio";_dd "bytes";_ca "crypto/md5";_ef "crypto/rand";_bdf "crypto/sha1";_ad "crypto/x509";_bd "encoding/binary";_c "encoding/hex";_da "errors";_g "fmt";_dcc "github.com/unidoc/pkcs7";_ccb "github.com/unidoc/unipdf/v3/common"; _eca "github.com/unidoc/unipdf/v3/core";_bb "github.com/unidoc/unipdf/v3/core/security";_db "github.com/unidoc/unipdf/v3/core/security/crypt";_ded "github.com/unidoc/unipdf/v3/internal/cmap";_bbg "github.com/unidoc/unipdf/v3/internal/imageutil";_aag "github.com/unidoc/unipdf/v3/internal/license"; _bf "github.com/unidoc/unipdf/v3/internal/sampling";_dbb "github.com/unidoc/unipdf/v3/internal/textencoding";_dcb "github.com/unidoc/unipdf/v3/internal/timeutils";_gg "github.com/unidoc/unipdf/v3/internal/transform";_ba "github.com/unidoc/unipdf/v3/model/internal/docutil"; _ffd "github.com/unidoc/unipdf/v3/model/internal/fonts";_ecg "github.com/unidoc/unipdf/v3/model/mdp";_ffg "github.com/unidoc/unipdf/v3/model/sigutil";_dad "github.com/unidoc/unipdf/v3/ps";_dg "github.com/unidoc/unitype";_ebf "golang.org/x/xerrors";_f "hash"; _cc "image";_cf "image/color";_ "image/gif";_ "image/png";_beg "io";_dc "io/ioutil";_de "math";_eb "math/rand";_efg "os";_aa "regexp";_gac "sort";_ge "strconv";_ec "strings";_a "sync";_d "time";_cb "unicode";_be "unicode/utf8";); // 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 (_acdec *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _acdec ._faccea !=nil {return _acdec ._faccea ,nil ;};if _acdec .ColorSpace ==nil {return nil ,nil ;};_caabg ,_cafcg :=_eagff (_acdec .ColorSpace );if _cafcg !=nil {return nil ,_cafcg ; };_acdec ._faccea =_caabg ;return _acdec ._faccea ,nil ;};func _addg (_acffe *_eca .PdfObjectDictionary )(*PdfFieldText ,error ){_bdceg :=&PdfFieldText {};_bdceg .DA ,_ =_eca .GetString (_acffe .Get ("\u0044\u0041"));_bdceg .Q ,_ =_eca .GetInt (_acffe .Get ("\u0051")); _bdceg .DS ,_ =_eca .GetString (_acffe .Get ("\u0044\u0053"));_bdceg .RV =_acffe .Get ("\u0052\u0056");_bdceg .MaxLen ,_ =_eca .GetInt (_acffe .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _bdceg ,nil ;};func (_aggca *PdfFunctionType0 )processSamples ()error {_cdccg :=_bf .ResampleBytes (_aggca ._gefbg ,_aggca .BitsPerSample ); _aggca ._acbe =_cdccg ;return nil ;}; // NewPdfAnnotationFreeText returns a new free text annotation. func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_bea :=NewPdfAnnotation ();_ggad :=&PdfAnnotationFreeText {};_ggad .PdfAnnotation =_bea ;_ggad .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bea .SetContext (_ggad );return _ggad ;}; // 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 ;_cbbce _eca .ParserMetadata ;}; // GetDSS gets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current // document revision. func (_gdb *PdfAppender )GetDSS ()(_ccdb *DSS ){return _gdb ._adff }; // PdfColorspaceCalGray represents CalGray color space. type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_aaba *_eca .PdfIndirectObject ;}; // NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions. func NewPdfTransformParamsDocMDP (permission _ecg .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_eca .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_eca .MakeInteger (int64 (permission )),V :_eca .MakeName ("\u0031\u002e\u0032")}; }; // NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image. func (_eebfa DefaultImageHandler )NewGrayImageFromGoImage (goimg _cc .Image )(*Image ,error ){_egddb :=goimg .Bounds ();_daff :=&Image {Width :int64 (_egddb .Dx ()),Height :int64 (_egddb .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _eadec :=goimg .(type ){case *_cc .Gray :if len (_eadec .Pix )!=_egddb .Dx ()*_egddb .Dy (){_cegdg ,_fafge :=_bbg .GrayConverter .Convert (goimg ); if _fafge !=nil {return nil ,_fafge ;};_daff .Data =_cegdg .Pix ();}else {_daff .Data =_eadec .Pix ;};case *_cc .Gray16 :_daff .BitsPerComponent =16;if len (_eadec .Pix )!=_egddb .Dx ()*_egddb .Dy ()*2{_bdaad ,_ffffd :=_bbg .Gray16Converter .Convert (goimg ); if _ffffd !=nil {return nil ,_ffffd ;};_daff .Data =_bdaad .Pix ();}else {_daff .Data =_eadec .Pix ;};case _bbg .Image :_fcfba :=_eadec .Base ();if _fcfba .ColorComponents ==1{_daff .BitsPerComponent =int64 (_fcfba .BitsPerComponent );_daff .Data =_fcfba .Data ; return _daff ,nil ;};_ecfce ,_feada :=_bbg .GrayConverter .Convert (goimg );if _feada !=nil {return nil ,_feada ;};_daff .Data =_ecfce .Pix ();default:_ggade ,_babda :=_bbg .GrayConverter .Convert (goimg );if _babda !=nil {return nil ,_babda ;};_daff .Data =_ggade .Pix (); };return _daff ,nil ;};func (_gef *PdfReader )newPdfActionTransFromDict (_fbe *_eca .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_fbe .Get ("\u0054\u0072\u0061n\u0073")},nil ;}; // NewPdfColorspaceDeviceRGB returns a new RGB colorspace object. func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}}; // NewPdfAnnotationMovie returns a new movie annotation. func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_bfbb :=NewPdfAnnotation ();_aba :=&PdfAnnotationMovie {};_aba .PdfAnnotation =_bfbb ;_bfbb .SetContext (_aba );return _aba ;}; // ToPdfObject implements interface PdfModel. func (_eccd *PdfAnnotationSquiggly )ToPdfObject ()_eca .PdfObject {_eccd .PdfAnnotation .ToPdfObject ();_aeef :=_eccd ._cdc ;_cbg :=_aeef .PdfObject .(*_eca .PdfObjectDictionary );_eccd .PdfAnnotationMarkup .appendToPdfDictionary (_cbg );_cbg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079")); _cbg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_eccd .QuadPoints );return _aeef ;};func (_gbaef *PdfWriter )checkPendingObjects (){for _ebgf ,_afccb :=range _gbaef ._cbfcb {if !_gbaef .hasObject (_ebgf ){_ccb .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",_ebgf ,_ebgf ,_ebgf ); for _ ,_bfcfec :=range _afccb {for _ ,_fgbbg :=range _bfcfec .Keys (){_bfbgb :=_bfcfec .Get (_fgbbg );if _bfbgb ==_ebgf {_ccb .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"); _bfcfec .Set (_fgbbg ,_eca .MakeNull ());break ;};};};};};}; // 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 *_eca .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_eca .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_eca .PdfObjectBool ;_abefa PdfModel ;_dcbe _eca .PdfObject ;}; // NewXObjectFormFromStream builds the Form XObject from a stream object. // TODO: Should this be exposed? Consider different access points. func NewXObjectFormFromStream (stream *_eca .PdfObjectStream )(*XObjectForm ,error ){_aaabc :=&XObjectForm {};_aaabc ._afddc =stream ;_bgbea :=*(stream .PdfObjectDictionary );_agfgea ,_edebf :=_eca .NewEncoderFromStream (stream );if _edebf !=nil {return nil ,_edebf ; };_aaabc .Filter =_agfgea ;if _dgbgf :=_bgbea .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_dgbgf !=nil {_abcb ,_bfffd :=_dgbgf .(*_eca .PdfObjectName );if !_bfffd {return nil ,_da .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };if *_abcb !="\u0046\u006f\u0072\u006d"{_ccb .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_da .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065"); };};if _cddbb :=_bgbea .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_cddbb !=nil {_aaabc .FormType =_cddbb ;};if _aceae :=_bgbea .Get ("\u0042\u0042\u006f\u0078");_aceae !=nil {_aaabc .BBox =_aceae ;};if _aefegd :=_bgbea .Get ("\u004d\u0061\u0074\u0072\u0069\u0078"); _aefegd !=nil {_aaabc .Matrix =_aefegd ;};if _acbeg :=_bgbea .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_acbeg !=nil {_acbeg =_eca .TraceToDirectObject (_acbeg );_bgfbb ,_decec :=_acbeg .(*_eca .PdfObjectDictionary );if !_decec {_ccb .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 ,_eca .ErrTypeError ;};_agaae ,_cgcdg :=NewPdfPageResourcesFromDict (_bgfbb );if _cgcdg !=nil {_ccb .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 ,_cgcdg ;};_aaabc .Resources =_agaae ;_ccb .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_aaabc .Resources );};_aaabc .Group =_bgbea .Get ("\u0047\u0072\u006fu\u0070"); _aaabc .Ref =_bgbea .Get ("\u0052\u0065\u0066");_aaabc .MetaData =_bgbea .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_aaabc .PieceInfo =_bgbea .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_aaabc .LastModified =_bgbea .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064"); _aaabc .StructParent =_bgbea .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_aaabc .StructParents =_bgbea .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_aaabc .OPI =_bgbea .Get ("\u004f\u0050\u0049"); _aaabc .OC =_bgbea .Get ("\u004f\u0043");_aaabc .Name =_bgbea .Get ("\u004e\u0061\u006d\u0065");_aaabc .Stream =stream .Stream ;return _aaabc ,nil ;}; // GetCapHeight returns the CapHeight of the font `descriptor`. func (_aaef *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _eca .GetNumberAsFloat (_aaef .CapHeight );}; // GetVersion gets the document version. func (_afgag *PdfWriter )GetVersion ()_eca .Version {return _afgag ._dgab };var (_aabdg =_aa .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");_ceefb =_aa .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"); _efgc =_aa .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"); _cagg ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_gefe ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_ffbag ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063"; ); // ValidateSignatures validates digital signatures in the document. func (_efacg *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _efacg .AcroForm ==nil {return nil ,nil ;};if _efacg .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_gbdae *PdfSignature ; _ccgb *PdfField ;_adaad SignatureHandler ;};var _fbdcc []*sigFieldPair ;for _ ,_acccc :=range _efacg .AcroForm .AllFields (){if _acccc .V ==nil {continue ;};if _gbgaf ,_fgcae :=_eca .GetDict (_acccc .V );_fgcae {if _ggada ,_fcbg :=_eca .GetNameVal (_gbgaf .Get ("\u0054\u0079\u0070\u0065")); _fcbg &&(_ggada =="\u0053\u0069\u0067"||_ggada =="\u0044\u006f\u0063T\u0069\u006d\u0065\u0053\u0074\u0061\u006d\u0070"){_cbfca ,_bedga :=_eca .GetIndirect (_acccc .V );if !_bedga {_ccb .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 ;};_cffbe ,_acadg :=_efacg .newPdfSignatureFromIndirect (_cbfca );if _acadg !=nil {return nil ,_acadg ;};var _dcccag SignatureHandler ;for _ ,_bcgab :=range handlers {if _bcgab .IsApplicable (_cffbe ){_dcccag =_bcgab ;break ;}; };_fbdcc =append (_fbdcc ,&sigFieldPair {_gbdae :_cffbe ,_ccgb :_acccc ,_adaad :_dcccag });};};};var _bffc []SignatureValidationResult ;for _ ,_fbcgc :=range _fbdcc {_fcbf :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_fbcgc ._ccgb }}; if _fbcgc ._adaad ==nil {_fcbf .Errors =append (_fcbf .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");_bffc =append (_bffc ,_fcbf );continue ;};_fbeef ,_cegaf :=_fbcgc ._adaad .NewDigest (_fbcgc ._gbdae );if _cegaf !=nil {_fcbf .Errors =append (_fcbf .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_cegaf .Error ()); _bffc =append (_bffc ,_fcbf );continue ;};_daadcc :=_fbcgc ._gbdae .ByteRange ;if _daadcc ==nil {_fcbf .Errors =append (_fcbf .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_bffc =append (_bffc ,_fcbf ); continue ;};for _gfaec :=0;_gfaec < _daadcc .Len ();_gfaec =_gfaec +2{_cdfac ,_ :=_eca .GetNumberAsInt64 (_daadcc .Get (_gfaec ));_bfbeebd ,_ :=_eca .GetIntVal (_daadcc .Get (_gfaec +1));if _ ,_fcdfa :=_efacg ._eacag .Seek (_cdfac ,_beg .SeekStart );_fcdfa !=nil {return nil ,_fcdfa ; };_eddfd :=make ([]byte ,_bfbeebd );if _ ,_dgea :=_efacg ._eacag .Read (_eddfd );_dgea !=nil {return nil ,_dgea ;};_fbeef .Write (_eddfd );};var _eceba SignatureValidationResult ;if _acaeb ,_cddadd :=_fbcgc ._adaad .(SignatureHandlerDocMDP );_cddadd {_eceba ,_cegaf =_acaeb .ValidateWithOpts (_fbcgc ._gbdae ,_fbeef ,SignatureHandlerDocMDPParams {Parser :_efacg ._ecfeba }); }else {_eceba ,_cegaf =_fbcgc ._adaad .Validate (_fbcgc ._gbdae ,_fbeef );};if _cegaf !=nil {_ccb .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_cegaf ,_fbcgc ._adaad );_eceba .Errors =append (_eceba .Errors ,_cegaf .Error ()); };_eceba .Name =_fbcgc ._gbdae .Name .Decoded ();_eceba .Reason =_fbcgc ._gbdae .Reason .Decoded ();if _fbcgc ._gbdae .M !=nil {_babfa ,_deadf :=NewPdfDate (_fbcgc ._gbdae .M .String ());if _deadf !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_deadf ); _eceba .Errors =append (_eceba .Errors ,_deadf .Error ());continue ;};_eceba .Date =_babfa ;};_eceba .ContactInfo =_fbcgc ._gbdae .ContactInfo .Decoded ();_eceba .Location =_fbcgc ._gbdae .Location .Decoded ();_eceba .Fields =_fcbf .Fields ;_bffc =append (_bffc ,_eceba ); };return _bffc ,nil ;}; // PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes. type PdfFieldChoice struct{*PdfField ;Opt *_eca .PdfObjectArray ;TI *_eca .PdfObjectInteger ;I *_eca .PdfObjectArray ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ; BorderStyleUnderline BorderStyle =iota ;);func _egcfe (_defc *_eca .PdfObjectDictionary ,_accba *fontCommon )(*pdfFontType3 ,error ){_fgge :=_caebd (_accba );_gagc :=_defc .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _gagc ==nil {_gagc =_eca .MakeInteger (0); };_fgge .FirstChar =_gagc ;_caebe ,_cbfcd :=_eca .GetIntVal (_gagc );if !_cbfcd {_ccb .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",_gagc ); return nil ,_eca .ErrTypeError ;};_dgcd :=_dbb .CharCode (_caebe );_gagc =_defc .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _gagc ==nil {_gagc =_eca .MakeInteger (255);};_fgge .LastChar =_gagc ;_caebe ,_cbfcd =_eca .GetIntVal (_gagc ); if !_cbfcd {_ccb .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",_gagc );return nil ,_eca .ErrTypeError ; };_gacff :=_dbb .CharCode (_caebe );_gagc =_defc .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _gagc !=nil {_fgge .Resources =_gagc ;};_gagc =_defc .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _gagc ==nil {_ccb .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",_gagc ); return nil ,_eca .ErrNotSupported ;};_fgge .CharProcs =_gagc ;_gagc =_defc .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _gagc ==nil {_ccb .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",_gagc ); return nil ,_eca .ErrNotSupported ;};_fgge .FontMatrix =_gagc ;_fgge ._ggcge =make (map[_dbb .CharCode ]float64 );_gagc =_defc .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _gagc !=nil {_fgge .Widths =_gagc ;_gebgc ,_bgdgc :=_eca .GetArray (_gagc ); if !_bgdgc {_ccb .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",_gagc );return nil ,_eca .ErrTypeError ; };_ggfc ,_dfgfg :=_gebgc .ToFloat64Array ();if _dfgfg !=nil {_ccb .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 ,_dfgfg ;};if len (_ggfc )!=int (_gacff -_dgcd +1){_ccb .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",_gacff -_dgcd +1,len (_ggfc )); return nil ,_eca .ErrRangeError ;};_feec ,_bgdgc :=_eca .GetArray (_fgge .FontMatrix );if !_bgdgc {_ccb .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",_feec ); return nil ,_dfgfg ;};_bgaac ,_dfgfg :=_feec .ToFloat64Array ();if _dfgfg !=nil {_ccb .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 ,_dfgfg ;};_efbfb :=_gg .NewMatrix (_bgaac [0],_bgaac [1],_bgaac [2],_bgaac [3],_bgaac [4],_bgaac [5]);for _gbgaa ,_dgede :=range _ggfc {_gdacg ,_ :=_efbfb .Transform (_dgede ,_dgede );_fgge ._ggcge [_dgcd +_dbb .CharCode (_gbgaa )]=_gdacg ; };};_fgge .Encoding =_eca .TraceToDirectObject (_defc .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));_gcgd :=_defc .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _gcgd !=nil {_fgge ._effb =_eca .TraceToDirectObject (_gcgd );_efbfa ,_gabge :=_accgb (_fgge ._effb ,&_fgge .fontCommon ); if _gabge !=nil {return nil ,_gabge ;};_fgge ._gegfa =_efbfa ;};if _ecag :=_fgge ._gegfa ;_ecag !=nil {_fgge ._aeefc =_dbb .NewCMapEncoder ("",nil ,_ecag );}else {_fgge ._aeefc =_dbb .NewPdfDocEncoder ();};return _fgge ,nil ;}; // 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 *_eca .PdfObjectString ;Q *_eca .PdfObjectInteger ;DS *_eca .PdfObjectString ;RV _eca .PdfObject ;}; // PdfAnnotationProjection represents Projection annotations. type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;}; // GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton // for a button field. func (_aaaed *PdfField )GetContext ()PdfModel {return _aaaed ._fbgb }; // 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 (_cadgg *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_aceb ,_ccgca :=color .(*PdfColorPattern );if !_ccgca {_ccb .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 _aceb .Color ==nil {return color ,nil ;};if _cadgg .UnderlyingCS ==nil {return nil ,_da .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};return _cadgg .UnderlyingCS .ColorToRGB (_aceb .Color ); }; // ToPdfObject returns the PDF representation of the shading dictionary. func (_ecde *PdfShadingType6 )ToPdfObject ()_eca .PdfObject {_ecde .PdfShading .ToPdfObject ();_dfad ,_ffcaa :=_ecde .getShadingDict ();if _ffcaa !=nil {_ccb .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 _ecde .BitsPerCoordinate !=nil {_dfad .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_ecde .BitsPerCoordinate );};if _ecde .BitsPerComponent !=nil {_dfad .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ecde .BitsPerComponent ); };if _ecde .BitsPerFlag !=nil {_dfad .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_ecde .BitsPerFlag );};if _ecde .Decode !=nil {_dfad .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_ecde .Decode );};if _ecde .Function !=nil {if len (_ecde .Function )==1{_dfad .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ecde .Function [0].ToPdfObject ()); }else {_cbdbb :=_eca .MakeArray ();for _ ,_dbabd :=range _ecde .Function {_cbdbb .Append (_dbabd .ToPdfObject ());};_dfad .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cbdbb );};};return _ecde ._dcbe ;};func (_eefbf *fontFile )parseASCIIPart (_ecegd []byte )error {if len (_ecegd )< 2||string (_ecegd [:2])!="\u0025\u0021"{return _da .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"); };_ggcc ,_aece ,_facc :=_gdebg (_ecegd );if _facc !=nil {return _facc ;};_bfeab :=_fegaf (_ggcc );_eefbf ._gfafb =_bfeab ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _eefbf ._gfafb ==""{_ccb .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 _aece !=""{_fegb ,_ceddg :=_cadc (_aece );if _ceddg !=nil {return _ceddg ;};_eccag ,_ceddg :=_dbb .NewCustomSimpleTextEncoder (_fegb ,nil );if _ceddg !=nil {_ccb .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",_ceddg ); return nil ;};_eefbf ._eggeg =_eccag ;};return nil ;}; // SetDocInfo sets the document /Info metadata. // This will overwrite any globally declared document info. func (_cagd *PdfAppender )SetDocInfo (info *PdfInfo ){_cagd ._gece =info }; // ToPdfObject implements interface PdfModel. func (_fdce *PdfAnnotationStrikeOut )ToPdfObject ()_eca .PdfObject {_fdce .PdfAnnotation .ToPdfObject ();_gaaf :=_fdce ._cdc ;_faae :=_gaaf .PdfObject .(*_eca .PdfObjectDictionary );_fdce .PdfAnnotationMarkup .appendToPdfDictionary (_faae );_faae .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t")); _faae .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_fdce .QuadPoints );return _gaaf ;}; // Items returns all children outline items. func (_cdgad *OutlineItem )Items ()[]*OutlineItem {return _cdgad .Entries }; // GetNumComponents returns the number of color components (1 for CalGray). func (_agcd *PdfColorCalGray )GetNumComponents ()int {return 1}; // ToPdfObject implements interface PdfModel. func (_affb *PdfAnnotationPolygon )ToPdfObject ()_eca .PdfObject {_affb .PdfAnnotation .ToPdfObject ();_bcdd :=_affb ._cdc ;_bddd :=_bcdd .PdfObject .(*_eca .PdfObjectDictionary );_affb .PdfAnnotationMarkup .appendToPdfDictionary (_bddd );_bddd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e")); _bddd .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_affb .Vertices );_bddd .SetIfNotNil ("\u004c\u0045",_affb .LE );_bddd .SetIfNotNil ("\u0042\u0053",_affb .BS );_bddd .SetIfNotNil ("\u0049\u0043",_affb .IC );_bddd .SetIfNotNil ("\u0042\u0045",_affb .BE ); _bddd .SetIfNotNil ("\u0049\u0054",_affb .IT );_bddd .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_affb .Measure );return _bcdd ;}; // DefaultFont returns the default font, which is currently the built in Helvetica. func DefaultFont ()*PdfFont {_ccce ,_baeeb :=_ffd .NewStdFontByName (HelveticaName );if !_baeeb {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"); };_bcgd :=_fgcd (_ccce );return &PdfFont {_dbgb :&_bcgd };}; // GetCatalogMetadata gets the catalog defined XMP Metadata. func (_abaefg *PdfReader )GetCatalogMetadata ()(_eca .PdfObject ,bool ){if _abaefg ._affc ==nil {return nil ,false ;};_agcdf :=_abaefg ._affc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _agcdf ,_agcdf !=nil ;};func _fdbg (_ceec *_eca .PdfObjectDictionary ,_fbbf *fontCommon ,_fagf _dbb .TextEncoder )(*pdfFontSimple ,error ){_cgbcd :=_fcgf (_fbbf ); _cgbcd ._aaggg =_fagf ;if _fagf ==nil {_edda :=_ceec .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _edda ==nil {_edda =_eca .MakeInteger (0);};_cgbcd .FirstChar =_edda ;_cfde ,_fdeb :=_eca .GetIntVal (_edda );if !_fdeb {_ccb .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",_edda ); return nil ,_eca .ErrTypeError ;};_gdgc :=_dbb .CharCode (_cfde );_edda =_ceec .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _edda ==nil {_edda =_eca .MakeInteger (255);};_cgbcd .LastChar =_edda ;_cfde ,_fdeb =_eca .GetIntVal (_edda );if !_fdeb {_ccb .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",_edda ); return nil ,_eca .ErrTypeError ;};_gbgeg :=_dbb .CharCode (_cfde );_cgbcd ._gfcfb =make (map[_dbb .CharCode ]float64 );_edda =_ceec .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _edda !=nil {_cgbcd .Widths =_edda ;_agcbd ,_ebbed :=_eca .GetArray (_edda ); if !_ebbed {_ccb .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",_edda );return nil ,_eca .ErrTypeError ; };_cgcdc ,_bdbfb :=_agcbd .ToFloat64Array ();if _bdbfb !=nil {_ccb .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 ,_bdbfb ;};if len (_cgcdc )!=int (_gbgeg -_gdgc +1){_ccb .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",_gbgeg -_gdgc +1,len (_cgcdc )); return nil ,_eca .ErrRangeError ;};for _eegdc ,_ffgfe :=range _cgcdc {_cgbcd ._gfcfb [_gdgc +_dbb .CharCode (_eegdc )]=_ffgfe ;};};};_cgbcd .Encoding =_eca .TraceToDirectObject (_ceec .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _cgbcd ,nil ; }; // NewPdfAnnotationPolygon returns a new polygon annotation. func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_egd :=NewPdfAnnotation ();_fgg :=&PdfAnnotationPolygon {};_fgg .PdfAnnotation =_egd ;_fgg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_egd .SetContext (_fgg );return _fgg ;}; // BaseFont returns the font's "BaseFont" field. func (_bddac *PdfFont )BaseFont ()string {return _bddac .baseFields ()._daac }; // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // component PDF objects. func (_acbg *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if _acbg .Alternate ==nil {if _acbg .N ==1{_agcb :=NewPdfColorspaceDeviceGray ();return _agcb .ColorFromPdfObjects (objects );}else if _acbg .N ==3{_efaad :=NewPdfColorspaceDeviceRGB (); return _efaad .ColorFromPdfObjects (objects );}else if _acbg .N ==4{_cbdee :=NewPdfColorspaceDeviceCMYK ();return _cbdee .ColorFromPdfObjects (objects );}else {return nil ,_da .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 _acbg .Alternate .ColorFromPdfObjects (objects );}; // NewPdfColorspaceICCBased returns a new ICCBased colorspace object. func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_dage :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_g .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029"); };_dage .N =N ;return _dage ,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 (_bafa *PdfFont )GetCharMetrics (code _dbb .CharCode )(CharMetrics ,bool ){var _bdff _ffd .CharMetrics ;switch _bgaf :=_bafa ._dbgb .(type ){case *pdfFontSimple :if _bcee ,_geec :=_bgaf .GetCharMetrics (code );_geec {return _bcee ,_geec ;};case *pdfFontType0 :if _fgccb ,_egcbd :=_bgaf .GetCharMetrics (code ); _egcbd {return _fgccb ,_egcbd ;};case *pdfCIDFontType0 :if _bcec ,_eacf :=_bgaf .GetCharMetrics (code );_eacf {return _bcec ,_eacf ;};case *pdfCIDFontType2 :if _egffb ,_cadge :=_bgaf .GetCharMetrics (code );_cadge {return _egffb ,_cadge ;};case *pdfFontType3 :if _adab ,_ggca :=_bgaf .GetCharMetrics (code ); _ggca {return _adab ,_ggca ;};default:_ccb .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",_bafa ._dbgb ); return _bdff ,false ;};if _dgfe ,_dgde :=_bafa .GetFontDescriptor ();_dgde ==nil &&_dgfe !=nil {return _ffd .CharMetrics {Wx :_dgfe ._fdadf },true ;};_ccb .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",_bafa ); return _bdff ,false ;}; // ToPdfOutline returns a low level PdfOutline object, based on the current // instance. func (_dcbag *Outline )ToPdfOutline ()*PdfOutline {_bdcd :=NewPdfOutline ();var _bbad []*PdfOutlineItem ;var _bedc int64 ;var _bgfb *PdfOutlineItem ;for _ ,_gegfga :=range _dcbag .Entries {_afdbb ,_fedc :=_gegfga .ToPdfOutlineItem ();_afdbb .Parent =&_bdcd .PdfOutlineTreeNode ; if _bgfb !=nil {_bgfb .Next =&_afdbb .PdfOutlineTreeNode ;_afdbb .Prev =&_bgfb .PdfOutlineTreeNode ;};_bbad =append (_bbad ,_afdbb );_bedc +=_fedc ;_bgfb =_afdbb ;};_dgbb :=int64 (len (_bbad ));_bedc +=_dgbb ;if _dgbb > 0{_bdcd .First =&_bbad [0].PdfOutlineTreeNode ; _bdcd .Last =&_bbad [_dgbb -1].PdfOutlineTreeNode ;_bdcd .Count =&_bedc ;};return _bdcd ;}; // 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 *_eca .PdfObjectStream ;Data []byte ;_bgefa *_eca .PdfIndirectObject ;_fdga *_eca .PdfObjectStream ;}; // XObjectForm (Table 95 in 8.10.2). type XObjectForm struct{Filter _eca .StreamEncoder ;FormType _eca .PdfObject ;BBox _eca .PdfObject ;Matrix _eca .PdfObject ;Resources *PdfPageResources ;Group _eca .PdfObject ;Ref _eca .PdfObject ;MetaData _eca .PdfObject ;PieceInfo _eca .PdfObject ;LastModified _eca .PdfObject ; StructParent _eca .PdfObject ;StructParents _eca .PdfObject ;OPI _eca .PdfObject ;OC _eca .PdfObject ;Name _eca .PdfObject ; // Stream data. Stream []byte ;_afddc *_eca .PdfObjectStream ;};func (_gbef *PdfReader )newPdfAnnotationLineFromDict (_fgcf *_eca .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_edga :=PdfAnnotationLine {};_cgg ,_geda :=_gbef .newPdfAnnotationMarkupFromDict (_fgcf ); if _geda !=nil {return nil ,_geda ;};_edga .PdfAnnotationMarkup =_cgg ;_edga .L =_fgcf .Get ("\u004c");_edga .BS =_fgcf .Get ("\u0042\u0053");_edga .LE =_fgcf .Get ("\u004c\u0045");_edga .IC =_fgcf .Get ("\u0049\u0043");_edga .LL =_fgcf .Get ("\u004c\u004c"); _edga .LLE =_fgcf .Get ("\u004c\u004c\u0045");_edga .Cap =_fgcf .Get ("\u0043\u0061\u0070");_edga .IT =_fgcf .Get ("\u0049\u0054");_edga .LLO =_fgcf .Get ("\u004c\u004c\u004f");_edga .CP =_fgcf .Get ("\u0043\u0050");_edga .Measure =_fgcf .Get ("\u004de\u0061\u0073\u0075\u0072\u0065"); _edga .CO =_fgcf .Get ("\u0043\u004f");return &_edga ,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 ;_bfebg *_eca .PdfIndirectObject ; // Type: Sig/DocTimeStamp Type *_eca .PdfObjectName ;Filter *_eca .PdfObjectName ;SubFilter *_eca .PdfObjectName ;Contents *_eca .PdfObjectString ;Cert _eca .PdfObject ;ByteRange *_eca .PdfObjectArray ;Reference *_eca .PdfObjectArray ;Changes *_eca .PdfObjectArray ;Name *_eca .PdfObjectString ; M *_eca .PdfObjectString ;Location *_eca .PdfObjectString ;Reason *_eca .PdfObjectString ;ContactInfo *_eca .PdfObjectString ;R *_eca .PdfObjectInteger ;V *_eca .PdfObjectInteger ;PropBuild *_eca .PdfObjectDictionary ;PropAuthTime *_eca .PdfObjectInteger ; PropAuthType *_eca .PdfObjectName ;}; // ToPdfObject returns the PDF representation of the function. func (_bdedfa *PdfFunctionType4 )ToPdfObject ()_eca .PdfObject {_eeebb :=_bdedfa ._bdgbf ;if _eeebb ==nil {_bdedfa ._bdgbf =&_eca .PdfObjectStream {};_eeebb =_bdedfa ._bdgbf ;};_cfdeb :=_eca .MakeDict ();_cfdeb .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eca .MakeInteger (4)); _egfec :=&_eca .PdfObjectArray {};for _ ,_addcb :=range _bdedfa .Domain {_egfec .Append (_eca .MakeFloat (_addcb ));};_cfdeb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_egfec );_cdbgg :=&_eca .PdfObjectArray {};for _ ,_eace :=range _bdedfa .Range {_cdbgg .Append (_eca .MakeFloat (_eace )); };_cfdeb .Set ("\u0052\u0061\u006eg\u0065",_cdbgg );if _bdedfa ._aeafdg ==nil &&_bdedfa .Program !=nil {_bdedfa ._aeafdg =[]byte (_bdedfa .Program .String ());};_cfdeb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eca .MakeInteger (int64 (len (_bdedfa ._aeafdg )))); _eeebb .Stream =_bdedfa ._aeafdg ;_eeebb .PdfObjectDictionary =_cfdeb ;return _eeebb ;}; // GetXObjectByName returns the XObject with the specified keyName and the object type. func (_aded *PdfPageResources )GetXObjectByName (keyName _eca .PdfObjectName )(*_eca .PdfObjectStream ,XObjectType ){if _aded .XObject ==nil {return nil ,XObjectTypeUndefined ;};_fbffg ,_bdgfe :=_eca .TraceToDirectObject (_aded .XObject ).(*_eca .PdfObjectDictionary ); if !_bdgfe {_ccb .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",_eca .TraceToDirectObject (_aded .XObject )); return nil ,XObjectTypeUndefined ;};if _faefe :=_fbffg .Get (keyName );_faefe !=nil {_affee ,_dadcc :=_eca .GetStream (_faefe );if !_dadcc {_ccb .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",_faefe ); return nil ,XObjectTypeUndefined ;};_bcedeb :=_affee .PdfObjectDictionary ;_gfae ,_dadcc :=_eca .TraceToDirectObject (_bcedeb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_eca .PdfObjectName );if !_dadcc {_ccb .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",_bcedeb .String ()); return nil ,XObjectTypeUndefined ;};if *_gfae =="\u0049\u006d\u0061g\u0065"{return _affee ,XObjectTypeImage ;}else if *_gfae =="\u0046\u006f\u0072\u006d"{return _affee ,XObjectTypeForm ;}else if *_gfae =="\u0050\u0053"{return _affee ,XObjectTypePS ;}else {_ccb .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",*_gfae ); return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;};}; // PdfRectangle is a definition of a rectangle. type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;}; // AddOutlineTree adds outlines to a PDF file. func (_eabfd *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_eabfd ._ccgeg =outlineTree }; // 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 (_bbga *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fad :=vals [0];if _fad < 0.0||_fad > 1.0{_ccb .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 _fad < 0.0{_fad =0.0;}else if _fad > 1.0{_fad =1.0;};return NewPdfColorDeviceGray (_fad ),nil ;}; // C returns the value of the C component of the color. func (_cgbe *PdfColorCalRGB )C ()float64 {return _cgbe [2]};func _cebgd ()string {_ccbac .Lock ();defer _ccbac .Unlock ();return _gfcfa }; // Evaluate runs the function on the passed in slice and returns the results. func (_deba *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_deba .NumInputs {_ccb .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 ,_da .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _deba ._acbe ==nil {_eadde :=_deba .processSamples ();if _eadde !=nil {return nil ,_eadde ;};};_bbgb :=_deba .Encode ;if _bbgb ==nil {_bbgb =[]float64 {}; for _cdbgb :=0;_cdbgb < len (_deba .Size );_cdbgb ++{_bbgb =append (_bbgb ,0);_bbgb =append (_bbgb ,float64 (_deba .Size [_cdbgb ]-1));};};_dcecf :=_deba .Decode ;if _dcecf ==nil {_dcecf =_deba .Range ;};_bcge :=make ([]int ,len (x ));for _agcf :=0;_agcf < len (x ); _agcf ++{_facbe :=x [_agcf ];_bbgca :=_de .Min (_de .Max (_facbe ,_deba .Domain [2*_agcf ]),_deba .Domain [2*_agcf +1]);_gegg :=_bbg .LinearInterpolate (_bbgca ,_deba .Domain [2*_agcf ],_deba .Domain [2*_agcf +1],_bbgb [2*_agcf ],_bbgb [2*_agcf +1]);_bbdf :=_de .Min (_de .Max (_gegg ,0),float64 (_deba .Size [_agcf ]-1)); _fcegg :=int (_de .Floor (_bbdf +0.5));if _fcegg < 0{_fcegg =0;}else if _fcegg > _deba .Size [_agcf ]{_fcegg =_deba .Size [_agcf ]-1;};_bcge [_agcf ]=_fcegg ;};_gcbgg :=_bcge [0];for _bdaaac :=1;_bdaaac < _deba .NumInputs ;_bdaaac ++{_cbff :=_bcge [_bdaaac ]; for _aegce :=0;_aegce < _bdaaac ;_aegce ++{_cbff *=_deba .Size [_aegce ];};_gcbgg +=_cbff ;};_gcbgg *=_deba .NumOutputs ;var _bbabe []float64 ;for _cgae :=0;_cgae < _deba .NumOutputs ;_cgae ++{_befcc :=_gcbgg +_cgae ;if _befcc >=len (_deba ._acbe ){_ccb .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 ;};_baefa :=_deba ._acbe [_befcc ];_eccccc :=_bbg .LinearInterpolate (float64 (_baefa ),0,_de .Pow (2,float64 (_deba .BitsPerSample )),_dcecf [2*_cgae ],_dcecf [2*_cgae +1]);_aegbf :=_de .Min (_de .Max (_eccccc ,_deba .Range [2*_cgae ]),_deba .Range [2*_cgae +1]); _bbabe =append (_bbabe ,_aegbf );};return _bbabe ,nil ;}; // NewPdfActionThread returns a new "thread" action. func NewPdfActionThread ()*PdfActionThread {_ed :=NewPdfAction ();_dcg :=&PdfActionThread {};_dcg .PdfAction =_ed ;_ed .SetContext (_dcg );return _dcg ;};func (_bfbde *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079"; }; // NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is // a failure in loading. func NewPdfColorspaceFromPdfObject (obj _eca .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _faed *_eca .PdfIndirectObject ;var _ecbbb *_eca .PdfObjectName ;var _gebc *_eca .PdfObjectArray ;if _bcfe ,_adea :=obj .(*_eca .PdfIndirectObject ); _adea {_faed =_bcfe ;};obj =_eca .TraceToDirectObject (obj );switch _bfd :=obj .(type ){case *_eca .PdfObjectArray :_gebc =_bfd ;case *_eca .PdfObjectName :_ecbbb =_bfd ;};if _ecbbb !=nil {switch *_ecbbb {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:_ccb .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",*_ecbbb );return nil ,_abbe ;};};if _gebc !=nil &&_gebc .Len ()> 0{var _adcbf _eca .PdfObject =_faed ; if _faed ==nil {_adcbf =_gebc ;};if _ageb ,_acgf :=_eca .GetName (_gebc .Get (0));_acgf {switch _ageb .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _gebc .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _gebc .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ; };case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _gebc .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _afec (_adcbf );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _gdde (_adcbf ); case "\u004c\u0061\u0062":return _dcegf (_adcbf );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _gcbg (_adcbf );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _aafd (_adcbf );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _ecgc (_adcbf ); case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _fbff (_adcbf );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _beeca (_adcbf );default:_ccb .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",*_ageb ); };};};_ccb .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 ;};func _bbdgf (_fbga _eca .PdfObject ,_gfgbd bool )(*PdfFont ,error ){_decf ,_adge ,_efacc :=_ebdc (_fbga );if _decf !=nil {_gebb (_decf );};if _efacc !=nil {if _efacc ==ErrType1CFontNotSupported {_acffec ,_fgba :=_fdbg (_decf ,_adge ,nil ); if _fgba !=nil {_ccb .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",_adge ,_fgba ); return nil ,_efacc ;};return &PdfFont {_dbgb :_acffec },_efacc ;};return nil ,_efacc ;};_cdcce :=&PdfFont {};switch _adge ._cfbe {case "\u0054\u0079\u0070e\u0030":if !_gfgbd {_ccb .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",_adge ); return nil ,_da .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_fgfe ,_abaca :=_dagb (_decf ,_adge );if _abaca !=nil {_ccb .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",_adge ,_abaca ); return nil ,_abaca ;};_cdcce ._dbgb =_fgfe ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _ggce *pdfFontSimple ;_fdbfa ,_becad :=_ffd .NewStdFontByName (_ffd .StdFontName (_adge ._daac )); if _becad {_acffc :=_fgcd (_fdbfa );_cdcce ._dbgb =&_acffc ;_gdeb :=_eca .TraceToDirectObject (_acffc .ToPdfObject ());_fddfb ,_ggbba ,_accd :=_ebdc (_gdeb );if _accd !=nil {_ccb .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",_adge ,_acffc ); return nil ,_accd ;};for _ ,_ecdge :=range _decf .Keys (){_fddfb .Set (_ecdge ,_decf .Get (_ecdge ));};_ggce ,_accd =_fdbg (_fddfb ,_ggbba ,_acffc ._aaggg );if _accd !=nil {_ccb .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",_adge ,_acffc ); return nil ,_accd ;};_ggce ._gfcfb =_acffc ._gfcfb ;_ggce ._cedde =_acffc ._cedde ;if _ggce ._bggag ==nil {_ggce ._bggag =_acffc ._bggag ;};}else {_ggce ,_efacc =_fdbg (_decf ,_adge ,nil );if _efacc !=nil {_ccb .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",_adge ,_efacc ); return nil ,_efacc ;};};_efacc =_ggce .addEncoding ();if _efacc !=nil {return nil ,_efacc ;};if _becad {_ggce .updateStandard14Font ();};if _becad &&_ggce ._daddc ==nil &&_ggce ._aaggg ==nil {_ccb .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_ggce ); _ccb .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_fdbfa );};if len (_ggce ._gfcfb )==0{_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_ggce );};_cdcce ._dbgb =_ggce ; case "\u0054\u0079\u0070e\u0033":_dbcef ,_aaga :=_egcfe (_decf ,_adge );if _aaga !=nil {_ccb .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",_aaga ); return nil ,_aaga ;};_cdcce ._dbgb =_dbcef ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_fgdf ,_dcdgd :=_gfaf (_decf ,_adge );if _dcdgd !=nil {_ccb .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",_dcdgd ); return nil ,_dcdgd ;};_cdcce ._dbgb =_fgdf ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_aeafc ,_dcbc :=_ffdd (_decf ,_adge );if _dcbc !=nil {_ccb .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",_adge ,_dcbc ); return nil ,_dcbc ;};_cdcce ._dbgb =_aeafc ;default:_ccb .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",_adge ); return nil ,_g .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",_adge );};return _cdcce ,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 (_cage *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _cage .RunesToCharcodeBytes ([]rune (str ));}; // FieldAppearanceGenerator generates appearance stream for a given field. type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_efae *PdfAcroForm ,_gbfa *PdfField ,_bcbb *PdfAnnotationWidget )(*_eca .PdfObjectDictionary ,error );};func (_aefa fontCommon )isCIDFont ()bool {if _aefa ._cfbe ==""{_ccb .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",_aefa ); };_bddf :=false ;switch _aefa ._cfbe {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":_bddf =true ;};_ccb .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",_bddf ,_aefa ); return _bddf ;};type pdfFont interface{_ffd .Font ; // ToPdfObject returns a PDF representation of the font and implements interface Model. ToPdfObject ()_eca .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;}; // GetEncryptionMethod returns a descriptive information string about the encryption method used. func (_gafa *PdfReader )GetEncryptionMethod ()string {_fbged :=_gafa ._ecfeba .GetCrypter ();return _fbged .String ();}; // Subtype returns the font's "Subtype" field. func (_ddfa *PdfFont )Subtype ()string {_dabaf :=_ddfa .baseFields ()._cfbe ;if _ebbga ,_fbadd :=_ddfa ._dbgb .(*pdfFontType0 );_fbadd {_dabaf =_dabaf +"\u003a"+_ebbga .DescendantFont .Subtype ();};return _dabaf ;}; // ColorToRGB converts a color in Separation colorspace to RGB colorspace. func (_edcg *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _edcg .AlternateSpace ==nil {return nil ,_da .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 _edcg .AlternateSpace .ColorToRGB (color );}; // GetOutlines returns a high-level Outline object, based on the outline tree // of the reader. func (_bdgdc *PdfReader )GetOutlines ()(*Outline ,error ){if _bdgdc ==nil {return nil ,_da .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"); };_dfbbf :=_bdgdc .GetOutlineTree ();if _dfbbf ==nil {return nil ,_da .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 _gfadb func (_adaac *PdfOutlineTreeNode ,_fceag *[]*OutlineItem );_gfadb =func (_ggcbc *PdfOutlineTreeNode ,_gfcfbb *[]*OutlineItem ){if _ggcbc ==nil {return ;};if _ggcbc ._dcfbf ==nil {_ccb .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 _edabc *OutlineItem ;if _afdad ,_bcbf :=_ggcbc ._dcfbf .(*PdfOutlineItem );_bcbf {_egde :=_afdad .Dest ;if (_egde ==nil ||_eca .IsNullObject (_egde ))&&_afdad .A !=nil {if _egaeb ,_feccb :=_eca .GetDict (_afdad .A );_feccb {if _abccg ,_cdaab :=_eca .GetArray (_egaeb .Get ("\u0044")); _cdaab {_egde =_abccg ;}else {_fcagg ,_gedef :=_eca .GetString (_egaeb .Get ("\u0044"));if !_gedef {return ;};_ebfcbf ,_gedef :=_bdgdc ._affc .Get ("\u004e\u0061\u006de\u0073").(*_eca .PdfObjectReference );if !_gedef {return ;};_feegf ,_ceeaf :=_bdgdc ._ecfeba .LookupByReference (*_ebfcbf ); if _ceeaf !=nil {_ccb .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",_ceeaf .Error ()); return ;};_bedde ,_gedef :=_feegf .(*_eca .PdfIndirectObject );if !_gedef {return ;};_beea :=map[_eca .PdfObject ]struct{}{};_ceeaf =_bdgdc .buildNameNodes (_bedde ,_beea );if _ceeaf !=nil {_ccb .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",_ceeaf .Error ()); return ;};for _facca :=range _beea {_fccgf ,_dadc :=_eca .GetDict (_facca );if !_dadc {continue ;};_ddeggc ,_dadc :=_eca .GetArray (_fccgf .Get ("\u004e\u0061\u006de\u0073"));if !_dadc {continue ;};for _ddeadb ,_gdgfg :=range _ddeggc .Elements (){switch _gdgfg .(type ){case *_eca .PdfObjectString :if _gdgfg .String ()==_fcagg .String (){if _dggc :=_ddeggc .Get (_ddeadb +1); _dggc !=nil {if _fcacc ,_bgfdf :=_eca .GetDict (_dggc );_bgfdf {_egde =_fcacc .Get ("\u0044");break ;};};};};};};};};};var _agada OutlineDest ;if _egde !=nil &&!_eca .IsNullObject (_egde ){if _bbagd ,_bbabb :=_degfg (_egde ,_bdgdc );_bbabb ==nil {_agada =*_bbagd ; }else {_ccb .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",_egde ,_bbabb ); };};_edabc =NewOutlineItem (_afdad .Title .Decoded (),_agada );*_gfcfbb =append (*_gfcfbb ,_edabc );if _afdad .Next !=nil {_gfadb (_afdad .Next ,_gfcfbb );};};if _ggcbc .First !=nil {if _edabc !=nil {_gfcfbb =&_edabc .Entries ;};_gfadb (_ggcbc .First ,_gfcfbb ); };};_aaccg :=NewOutline ();_gfadb (_dfbbf ,&_aaccg .Entries );return _aaccg ,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{_cdaa *_eca .PdfIndirectObject ;Certs []*_eca .PdfObjectStream ;OCSPs []*_eca .PdfObjectStream ;CRLs []*_eca .PdfObjectStream ;VRI map[string ]*VRI ;_aaed map[string ]*_eca .PdfObjectStream ;_defag map[string ]*_eca .PdfObjectStream ;_ccgf map[string ]*_eca .PdfObjectStream ; };func (_ccd *PdfReader )newPdfAnnotationLinkFromDict (_cgcc *_eca .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_gffa :=PdfAnnotationLink {};_gffa .A =_cgcc .Get ("\u0041");_gffa .Dest =_cgcc .Get ("\u0044\u0065\u0073\u0074");_gffa .H =_cgcc .Get ("\u0048"); _gffa .PA =_cgcc .Get ("\u0050\u0041");_gffa .QuadPoints =_cgcc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_gffa .BS =_cgcc .Get ("\u0042\u0053");return &_gffa ,nil ;};func (_bdg *PdfReader )newPdfAnnotationSquareFromDict (_aege *_eca .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_dedg :=PdfAnnotationSquare {}; _gded ,_fcfa :=_bdg .newPdfAnnotationMarkupFromDict (_aege );if _fcfa !=nil {return nil ,_fcfa ;};_dedg .PdfAnnotationMarkup =_gded ;_dedg .BS =_aege .Get ("\u0042\u0053");_dedg .IC =_aege .Get ("\u0049\u0043");_dedg .BE =_aege .Get ("\u0042\u0045");_dedg .RD =_aege .Get ("\u0052\u0044"); return &_dedg ,nil ;}; // DecodeArray returns the range of color component values in CalGray colorspace. func (_gbfb *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}}; // ToPdfObject returns the PDF representation of the colorspace. func (_cagb *PdfPageResourcesColorspaces )ToPdfObject ()_eca .PdfObject {_cegaeg :=_eca .MakeDict ();for _ ,_ccaa :=range _cagb .Names {_cegaeg .Set (_eca .PdfObjectName (_ccaa ),_cagb .Colorspaces [_ccaa ].ToPdfObject ());};if _cagb ._faddg !=nil {_cagb ._faddg .PdfObject =_cegaeg ; return _cagb ._faddg ;};return _cegaeg ;};func _egbf ()string {return _ccb .Version }; // NewPdfActionSound returns a new "sound" action. func NewPdfActionSound ()*PdfActionSound {_geg :=NewPdfAction ();_cadg :=&PdfActionSound {};_cadg .PdfAction =_geg ;_geg .SetContext (_cadg );return _cadg ;}; // PdfActionType represents an action type in PDF (section 12.6.4 p. 417). type PdfActionType string ;var _bafe =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":{}}; // GetNumComponents returns the number of color components of the underlying // colorspace device. func (_faag *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _faag .UnderlyingCS .GetNumComponents ();}; // 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 (_daaaa *Image )ConvertToBinary ()error {if _daaaa .ColorComponents ==1&&_daaaa .BitsPerComponent ==1{return nil ;};_cddca ,_feagf :=_daaaa .ToGoImage ();if _feagf !=nil {return _feagf ;};_addf ,_feagf :=_bbg .MonochromeConverter .Convert (_cddca ); if _feagf !=nil {return _feagf ;};_daaaa .Data =_addf .Base ().Data ;_daaaa ._gcgb ,_feagf =_bbg .ScaleAlphaToMonochrome (_daaaa ._gcgb ,int (_daaaa .Width ),int (_daaaa .Height ));if _feagf !=nil {return _feagf ;};_daaaa .BitsPerComponent =1;_daaaa .ColorComponents =1; _daaaa ._cfgaa =nil ;return nil ;};func _bfgd (_fdgc *_eca .PdfObjectStream )(*PdfFunctionType0 ,error ){_cfaee :=&PdfFunctionType0 {};_cfaee ._ggde =_fdgc ;_gedb :=_fdgc .PdfObjectDictionary ;_aegb ,_ggccb :=_eca .TraceToDirectObject (_gedb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eca .PdfObjectArray ); if !_ggccb {_ccb .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_da .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 _aegb .Len ()< 0||_aegb .Len ()%2!=0{_ccb .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_da .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065"); };_cfaee .NumInputs =_aegb .Len ()/2;_dcgfg ,_gcdcd :=_aegb .ToFloat64Array ();if _gcdcd !=nil {return nil ,_gcdcd ;};_cfaee .Domain =_dcgfg ;_aegb ,_ggccb =_eca .TraceToDirectObject (_gedb .Get ("\u0052\u0061\u006eg\u0065")).(*_eca .PdfObjectArray );if !_ggccb {_ccb .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064"); return nil ,_da .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 _aegb .Len ()< 0||_aegb .Len ()%2!=0{return nil ,_da .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065"); };_cfaee .NumOutputs =_aegb .Len ()/2;_deaad ,_gcdcd :=_aegb .ToFloat64Array ();if _gcdcd !=nil {return nil ,_gcdcd ;};_cfaee .Range =_deaad ;_aegb ,_ggccb =_eca .TraceToDirectObject (_gedb .Get ("\u0053\u0069\u007a\u0065")).(*_eca .PdfObjectArray );if !_ggccb {_ccb .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064"); return nil ,_da .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");};_bgeda ,_gcdcd :=_aegb .ToIntegerArray (); if _gcdcd !=nil {return nil ,_gcdcd ;};if len (_bgeda )!=_cfaee .NumInputs {_ccb .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 ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cfaee .Size =_bgeda ;_cedgb ,_ggccb :=_eca .TraceToDirectObject (_gedb .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_eca .PdfObjectInteger ); if !_ggccb {_ccb .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 ,_da .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 *_cedgb !=1&&*_cedgb !=2&&*_cedgb !=4&&*_cedgb !=8&&*_cedgb !=12&&*_cedgb !=16&&*_cedgb !=24&&*_cedgb !=32{_ccb .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",*_cedgb ); return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cfaee .BitsPerSample =int (*_cedgb );_cfaee .Order =1;_dcgdag ,_ggccb :=_eca .TraceToDirectObject (_gedb .Get ("\u004f\u0072\u0064e\u0072")).(*_eca .PdfObjectInteger ); if _ggccb {if *_dcgdag !=1&&*_dcgdag !=3{_ccb .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_dcgdag );return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cfaee .Order =int (*_dcgdag ); };_aegb ,_ggccb =_eca .TraceToDirectObject (_gedb .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_eca .PdfObjectArray );if _ggccb {_fbaa ,_gaega :=_aegb .ToFloat64Array ();if _gaega !=nil {return nil ,_gaega ;};_cfaee .Encode =_fbaa ;};_aegb ,_ggccb =_eca .TraceToDirectObject (_gedb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_eca .PdfObjectArray ); if _ggccb {_degdd ,_agag :=_aegb .ToFloat64Array ();if _agag !=nil {return nil ,_agag ;};_cfaee .Decode =_degdd ;};_ggedb ,_gcdcd :=_eca .DecodeStream (_fdgc );if _gcdcd !=nil {return nil ,_gcdcd ;};_cfaee ._gefbg =_ggedb ;return _cfaee ,nil ;}; // GetCharMetrics returns the char metrics for character code `code`. func (_edabe pdfFontType3 )GetCharMetrics (code _dbb .CharCode )(_ffd .CharMetrics ,bool ){if _fgcfgf ,_gbdde :=_edabe ._ggcge [code ];_gbdde {return _ffd .CharMetrics {Wx :_fgcfgf },true ;};if _ffd .IsStdFont (_ffd .StdFontName (_edabe ._daac )){return _ffd .CharMetrics {Wx :250},true ; };return _ffd .CharMetrics {},false ;}; // ToPdfObject implements interface PdfModel. func (_cag *PdfAnnotationPolyLine )ToPdfObject ()_eca .PdfObject {_cag .PdfAnnotation .ToPdfObject ();_cffa :=_cag ._cdc ;_edcd :=_cffa .PdfObject .(*_eca .PdfObjectDictionary );_cag .PdfAnnotationMarkup .appendToPdfDictionary (_edcd );_edcd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065")); _edcd .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_cag .Vertices );_edcd .SetIfNotNil ("\u004c\u0045",_cag .LE );_edcd .SetIfNotNil ("\u0042\u0053",_cag .BS );_edcd .SetIfNotNil ("\u0049\u0043",_cag .IC );_edcd .SetIfNotNil ("\u0042\u0045",_cag .BE ); _edcd .SetIfNotNil ("\u0049\u0054",_cag .IT );_edcd .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_cag .Measure );return _cffa ;}; // NewPdfColorCalRGB returns a new CalRBG color. func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_aeaef :=PdfColorCalRGB {a ,b ,c };return &_aeaef ;}; // NewOutline returns a new outline instance. func NewOutline ()*Outline {return &Outline {}}; // ToPdfObject returns the PDF representation of the function. func (_acdc *PdfFunctionType0 )ToPdfObject ()_eca .PdfObject {if _acdc ._ggde ==nil {_acdc ._ggde =&_eca .PdfObjectStream {};};_bggac :=_eca .MakeDict ();_bggac .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eca .MakeInteger (0)); _dcccaa :=&_eca .PdfObjectArray {};for _ ,_egcc :=range _acdc .Domain {_dcccaa .Append (_eca .MakeFloat (_egcc ));};_bggac .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dcccaa );_daagg :=&_eca .PdfObjectArray {};for _ ,_dacce :=range _acdc .Range {_daagg .Append (_eca .MakeFloat (_dacce )); };_bggac .Set ("\u0052\u0061\u006eg\u0065",_daagg );_febc :=&_eca .PdfObjectArray {};for _ ,_dfef :=range _acdc .Size {_febc .Append (_eca .MakeInteger (int64 (_dfef )));};_bggac .Set ("\u0053\u0069\u007a\u0065",_febc );_bggac .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_eca .MakeInteger (int64 (_acdc .BitsPerSample ))); if _acdc .Order !=1{_bggac .Set ("\u004f\u0072\u0064e\u0072",_eca .MakeInteger (int64 (_acdc .Order )));};_bggac .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eca .MakeInteger (int64 (len (_acdc ._gefbg ))));_acdc ._ggde .Stream =_acdc ._gefbg ;_acdc ._ggde .PdfObjectDictionary =_bggac ; return _acdc ._ggde ;}; // ToPdfObject implements interface PdfModel. // Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information. func (_aagd *PdfAnnotation )ToPdfObject ()_eca .PdfObject {_ecd :=_aagd ._cdc ;_abb :=_ecd .PdfObject .(*_eca .PdfObjectDictionary );_abb .Clear ();_abb .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0041\u006e\u006eo\u0074"));_abb .SetIfNotNil ("\u0052\u0065\u0063\u0074",_aagd .Rect ); _abb .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_aagd .Contents );_abb .SetIfNotNil ("\u0050",_aagd .P );_abb .SetIfNotNil ("\u004e\u004d",_aagd .NM );_abb .SetIfNotNil ("\u004d",_aagd .M );_abb .SetIfNotNil ("\u0046",_aagd .F );_abb .SetIfNotNil ("\u0041\u0050",_aagd .AP ); _abb .SetIfNotNil ("\u0041\u0053",_aagd .AS );_abb .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_aagd .Border );_abb .SetIfNotNil ("\u0043",_aagd .C );_abb .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_aagd .StructParent ); _abb .SetIfNotNil ("\u004f\u0043",_aagd .OC );return _ecd ;};func _gfgce (_edega *_eca .PdfObjectDictionary )(*PdfShadingType6 ,error ){_cedcf :=PdfShadingType6 {};_afcdb :=_edega .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065"); if _afcdb ==nil {_ccb .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 ;};_eegde ,_ageca :=_afcdb .(*_eca .PdfObjectInteger );if !_ageca {_ccb .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",_afcdb ); return nil ,_eca .ErrTypeError ;};_cedcf .BitsPerCoordinate =_eegde ;_afcdb =_edega .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _afcdb ==nil {_ccb .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 ;};_eegde ,_ageca =_afcdb .(*_eca .PdfObjectInteger );if !_ageca {_ccb .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",_afcdb ); return nil ,_eca .ErrTypeError ;};_cedcf .BitsPerComponent =_eegde ;_afcdb =_edega .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _afcdb ==nil {_ccb .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 ;};_eegde ,_ageca =_afcdb .(*_eca .PdfObjectInteger );if !_ageca {_ccb .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",_afcdb ); return nil ,_eca .ErrTypeError ;};_cedcf .BitsPerComponent =_eegde ;_afcdb =_edega .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _afcdb ==nil {_ccb .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 ;};_gecea ,_ageca :=_afcdb .(*_eca .PdfObjectArray );if !_ageca {_ccb .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",_afcdb ); return nil ,_eca .ErrTypeError ;};_cedcf .Decode =_gecea ;if _dcfa :=_edega .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_dcfa !=nil {_cedcf .Function =[]PdfFunction {};if _bggfb ,_gabf :=_dcfa .(*_eca .PdfObjectArray );_gabf {for _ ,_cbcab :=range _bggfb .Elements (){_gdcdg ,_bbaea :=_febaf (_cbcab ); if _bbaea !=nil {_ccb .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",_bbaea );return nil ,_bbaea ;};_cedcf .Function =append (_cedcf .Function ,_gdcdg ); };}else {_egagc ,_aegda :=_febaf (_dcfa );if _aegda !=nil {_ccb .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",_aegda );return nil ,_aegda ; };_cedcf .Function =append (_cedcf .Function ,_egagc );};};return &_cedcf ,nil ;}; // DefaultImageHandler is the default implementation of the ImageHandler using the standard go library. type DefaultImageHandler struct{};func (_acbea *Image )resampleLowBits (_dbgbca []uint32 ){_egccg :=_bbg .BytesPerLine (int (_acbea .Width ),int (_acbea .BitsPerComponent ),_acbea .ColorComponents );_cgddd :=make ([]byte ,_acbea .ColorComponents *_egccg *int (_acbea .Height )); _ddgbd :=int (_acbea .BitsPerComponent )*_acbea .ColorComponents *int (_acbea .Width );_eaabdf :=uint8 (8);var (_bddba ,_egcac int ;_eabbd uint32 ;);for _gaegb :=0;_gaegb < int (_acbea .Height );_gaegb ++{_egcac =_gaegb *_egccg ;for _ccacg :=0;_ccacg < _ddgbd ; _ccacg ++{_eabbd =_dbgbca [_bddba ];_eaabdf -=uint8 (_acbea .BitsPerComponent );_cgddd [_egcac ]|=byte (_eabbd )<<_eaabdf ;if _eaabdf ==0{_eaabdf =8;_egcac ++;};_bddba ++;};};_acbea .Data =_cgddd ;}; // 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 (_debe *PdfReader )CheckAccessRights (password []byte )(bool ,_bb .Permissions ,error ){return _debe ._ecfeba .CheckAccessRights (password );}; // AddImageResource adds an image to the XObject resources. func (_gefa *PdfPage )AddImageResource (name _eca .PdfObjectName ,ximg *XObjectImage )error {var _bcef *_eca .PdfObjectDictionary ;if _gefa .Resources .XObject ==nil {_bcef =_eca .MakeDict ();_gefa .Resources .XObject =_bcef ;}else {var _fdfcd bool ;_bcef ,_fdfcd =(_gefa .Resources .XObject ).(*_eca .PdfObjectDictionary ); if !_fdfcd {return _da .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_bcef .Set (name ,ximg .ToPdfObject ());return nil ;};func (_ffe *PdfReader )newPdfAnnotationProjectionFromDict (_gdad *_eca .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_fcae :=&PdfAnnotationProjection {}; _caea ,_eead :=_ffe .newPdfAnnotationMarkupFromDict (_gdad );if _eead !=nil {return nil ,_eead ;};_fcae .PdfAnnotationMarkup =_caea ;return _fcae ,nil ;};func (_bggbd *PdfReader )newPdfPageFromDict (_beaec *_eca .PdfObjectDictionary )(*PdfPage ,error ){_fdagb :=NewPdfPage (); _fdagb ._agaea =_beaec ;_fdagb ._gbaec =*_beaec ;_fcacg :=*_beaec ;_agec ,_ggcgfg :=_fcacg .Get ("\u0054\u0079\u0070\u0065").(*_eca .PdfObjectName );if !_ggcgfg {return nil ,_da .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 *_agec !="\u0050\u0061\u0067\u0065"{return nil ,_da .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 _agefe :=_fcacg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"); _agefe !=nil {_fdagb .Parent =_agefe ;};if _eggdfd :=_fcacg .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_eggdfd !=nil {_bafef ,_cfeba :=_eca .GetString (_eggdfd );if !_cfeba {return nil ,_da .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"); };_ababb ,_abega :=NewPdfDate (_bafef .Str ());if _abega !=nil {return nil ,_abega ;};_fdagb .LastModified =&_ababb ;};if _acfg :=_fcacg .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_acfg !=nil &&!_eca .IsNullObject (_acfg ){_becfc ,_bcfc :=_eca .GetDict (_acfg ); if !_bcfc {return nil ,_g .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",_acfg );};var _gfaad error ;_fdagb .Resources ,_gfaad =NewPdfPageResourcesFromDict (_becfc ); if _gfaad !=nil {return nil ,_gfaad ;};}else {_aegdf ,_ccfg :=_fdagb .getParentResources ();if _ccfg !=nil {return nil ,_ccfg ;};if _aegdf ==nil {_aegdf =NewPdfPageResources ();};_fdagb .Resources =_aegdf ;};if _bgea :=_fcacg .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078"); _bgea !=nil {_fccdc ,_ggcd :=_eca .GetArray (_bgea );if !_ggcd {return nil ,_da .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 _ggace error ; _fdagb .MediaBox ,_ggace =NewPdfRectangle (*_fccdc );if _ggace !=nil {return nil ,_ggace ;};};if _gbdbg :=_fcacg .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_gbdbg !=nil {_eegac ,_ecfcf :=_eca .GetArray (_gbdbg );if !_ecfcf {return nil ,_da .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y"); };var _dbba error ;_fdagb .CropBox ,_dbba =NewPdfRectangle (*_eegac );if _dbba !=nil {return nil ,_dbba ;};};if _aecfg :=_fcacg .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_aecfg !=nil {_agdcb ,_dgbgg :=_eca .GetArray (_aecfg );if !_dgbgg {return nil ,_da .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 _edddf error ;_fdagb .BleedBox ,_edddf =NewPdfRectangle (*_agdcb );if _edddf !=nil {return nil ,_edddf ;};};if _fgda :=_fcacg .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_fgda !=nil {_efccg ,_eeede :=_eca .GetArray (_fgda );if !_eeede {return nil ,_da .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y"); };var _dfbec error ;_fdagb .TrimBox ,_dfbec =NewPdfRectangle (*_efccg );if _dfbec !=nil {return nil ,_dfbec ;};};if _cffgc :=_fcacg .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_cffgc !=nil {_fgcfd ,_fcgfe :=_eca .GetArray (_cffgc );if !_fcgfe {return nil ,_da .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079"); };var _gcfdbe error ;_fdagb .ArtBox ,_gcfdbe =NewPdfRectangle (*_fgcfd );if _gcfdbe !=nil {return nil ,_gcfdbe ;};};if _dcbfe :=_fcacg .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_dcbfe !=nil {_fdagb .BoxColorInfo =_dcbfe ; };if _ffcbag :=_fcacg .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_ffcbag !=nil {_fdagb .Contents =_ffcbag ;};if _cdae :=_fcacg .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_cdae !=nil {_abfec ,_dbebg :=_eca .GetNumberAsInt64 (_cdae );if _dbebg !=nil {return nil ,_da .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"); };_fdagb .Rotate =&_abfec ;};if _gdffa :=_fcacg .Get ("\u0047\u0072\u006fu\u0070");_gdffa !=nil {_fdagb .Group =_gdffa ;};if _ccba :=_fcacg .Get ("\u0054\u0068\u0075m\u0062");_ccba !=nil {_fdagb .Thumb =_ccba ;};if _dcfgd :=_fcacg .Get ("\u0042");_dcfgd !=nil {_fdagb .B =_dcfgd ; };if _ebedff :=_fcacg .Get ("\u0044\u0075\u0072");_ebedff !=nil {_fdagb .Dur =_ebedff ;};if _dceff :=_fcacg .Get ("\u0054\u0072\u0061n\u0073");_dceff !=nil {_fdagb .Trans =_dceff ;};if _egee :=_fcacg .Get ("\u0041\u0041");_egee !=nil {_fdagb .AA =_egee ; };if _caba :=_fcacg .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_caba !=nil {_fdagb .Metadata =_caba ;};if _efaec :=_fcacg .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_efaec !=nil {_fdagb .PieceInfo =_efaec ;};if _ggcdf :=_fcacg .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073"); _ggcdf !=nil {_fdagb .StructParents =_ggcdf ;};if _gggdg :=_fcacg .Get ("\u0049\u0044");_gggdg !=nil {_fdagb .ID =_gggdg ;};if _eacff :=_fcacg .Get ("\u0050\u005a");_eacff !=nil {_fdagb .PZ =_eacff ;};if _cbdegd :=_fcacg .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f"); _cbdegd !=nil {_fdagb .SeparationInfo =_cbdegd ;};if _deaag :=_fcacg .Get ("\u0054\u0061\u0062\u0073");_deaag !=nil {_fdagb .Tabs =_deaag ;};if _bcbbg :=_fcacg .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064"); _bcbbg !=nil {_fdagb .TemplateInstantiated =_bcbbg ;};if _cccef :=_fcacg .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_cccef !=nil {_fdagb .PresSteps =_cccef ;};if _dbgba :=_fcacg .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_dbgba !=nil {_fdagb .UserUnit =_dbgba ; };if _gfdg :=_fcacg .Get ("\u0056\u0050");_gfdg !=nil {_fdagb .VP =_gfdg ;};if _geba :=_fcacg .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_geba !=nil {_fdagb .Annots =_geba ;};_fdagb ._cdgeb =_bggbd ;return _fdagb ,nil ;}; // OutlineDest represents the destination of an outline item. // It holds the page and the position on the page an outline item points to. type OutlineDest struct{PageObj *_eca .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};func (_deef *PdfReader )newPdfAnnotationScreenFromDict (_cbca *_eca .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_abcd :=PdfAnnotationScreen {}; _abcd .T =_cbca .Get ("\u0054");_abcd .MK =_cbca .Get ("\u004d\u004b");_abcd .A =_cbca .Get ("\u0041");_abcd .AA =_cbca .Get ("\u0041\u0041");return &_abcd ,nil ;}; // GetOutlineTree returns the outline tree. func (_ceefg *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _ceefg ._eabaf }; // ToPdfObject returns colorspace in a PDF object format [name stream] func (_egcb *PdfColorspaceICCBased )ToPdfObject ()_eca .PdfObject {_eaabd :=&_eca .PdfObjectArray {};_eaabd .Append (_eca .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _bacf *_eca .PdfObjectStream ;if _egcb ._fdga !=nil {_bacf =_egcb ._fdga ; }else {_bacf =&_eca .PdfObjectStream {};};_aeba :=_eca .MakeDict ();_aeba .Set ("\u004e",_eca .MakeInteger (int64 (_egcb .N )));if _egcb .Alternate !=nil {_aeba .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_egcb .Alternate .ToPdfObject ());};if _egcb .Metadata !=nil {_aeba .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_egcb .Metadata ); };if _egcb .Range !=nil {var _bdbb []_eca .PdfObject ;for _ ,_ceaee :=range _egcb .Range {_bdbb =append (_bdbb ,_eca .MakeFloat (_ceaee ));};_aeba .Set ("\u0052\u0061\u006eg\u0065",_eca .MakeArray (_bdbb ...));};_aeba .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eca .MakeInteger (int64 (len (_egcb .Data )))); _bacf .Stream =_egcb .Data ;_bacf .PdfObjectDictionary =_aeba ;_eaabd .Append (_bacf );if _egcb ._bgefa !=nil {_egcb ._bgefa .PdfObject =_eaabd ;return _egcb ._bgefa ;};return _eaabd ;};func _fdeeee (_bdgd *_eca .PdfIndirectObject )(*PdfOutline ,error ){_bcgfd ,_fcbba :=_bdgd .PdfObject .(*_eca .PdfObjectDictionary ); if !_fcbba {return nil ,_g .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");};_gcga :=NewPdfOutline ();if _fbfg :=_bcgfd .Get ("\u0054\u0079\u0070\u0065"); _fbfg !=nil {_fbce ,_fdefc :=_fbfg .(*_eca .PdfObjectName );if _fdefc {if *_fbce !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_ccb .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",*_fbce ); };};};if _eecd :=_bcgfd .Get ("\u0043\u006f\u0075n\u0074");_eecd !=nil {_bbbe ,_gagbf :=_eca .GetNumberAsInt64 (_eecd );if _gagbf !=nil {return nil ,_gagbf ;};_gcga .Count =&_bbbe ;};return _gcga ,nil ;}; // PdfActionTrans represents a trans action. type PdfActionTrans struct{*PdfAction ;Trans _eca .PdfObject ;}; // ToPdfObject implements interface PdfModel. func (_dbd *PdfActionJavaScript )ToPdfObject ()_eca .PdfObject {_dbd .PdfAction .ToPdfObject ();_gc :=_dbd ._bee ;_ecc :=_gc .PdfObject .(*_eca .PdfObjectDictionary );_ecc .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeJavaScript )));_ecc .SetIfNotNil ("\u004a\u0053",_dbd .JS ); return _gc ;}; // GetContainingPdfObject returns the container of the PdfAcroForm (indirect object). func (_abdb *PdfAcroForm )GetContainingPdfObject ()_eca .PdfObject {return _abdb ._aeac }; // 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 (_gdbeb *PdfSignature )bool ; // Validate validates a PDF signature against a given digest (hash) such as that determined // for an input file. Returns validation results. Validate (_dfdda *PdfSignature ,_degc 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 (_bdggg *PdfSignature )error ; // NewDigest creates a new digest/hasher based on the signature dictionary and handler. NewDigest (_fddca *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 (_gafce *PdfSignature ,_fbdgc Hasher )error ;}; // PdfActionSetOCGState represents a SetOCGState action. type PdfActionSetOCGState struct{*PdfAction ;State _eca .PdfObject ;PreserveRB _eca .PdfObject ;}; // NewPdfAnnotationStamp returns a new stamp annotation. func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_bgdc :=NewPdfAnnotation ();_bfbe :=&PdfAnnotationStamp {};_bfbe .PdfAnnotation =_bgdc ;_bfbe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bgdc .SetContext (_bfbe );return _bfbe ;}; // NewPdfAnnotationStrikeOut returns a new text strikeout annotation. func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_cdg :=NewPdfAnnotation ();_bacb :=&PdfAnnotationStrikeOut {};_bacb .PdfAnnotation =_cdg ;_bacb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cdg .SetContext (_bacb );return _bacb ;};func _ebdc (_faabb _eca .PdfObject )(*_eca .PdfObjectDictionary ,*fontCommon ,error ){_badfe :=&fontCommon {}; if _edfbg ,_gdef :=_faabb .(*_eca .PdfIndirectObject );_gdef {_badfe ._dccaa =_edfbg .ObjectNumber ;};_cagfd ,_dfbg :=_eca .GetDict (_faabb );if !_dfbg {_ccb .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",_faabb ); return nil ,nil ,ErrFontNotSupported ;};_bacfg ,_dfbg :=_eca .GetNameVal (_cagfd .Get ("\u0054\u0079\u0070\u0065"));if !_dfbg {_ccb .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 _bacfg !="\u0046\u006f\u006e\u0074"{_ccb .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.",_bacfg ,"\u0046\u006f\u006e\u0074"); return nil ,nil ,_eca .ErrTypeError ;};_bgacee ,_dfbg :=_eca .GetNameVal (_cagfd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_dfbg {_ccb .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 ;};_badfe ._cfbe =_bgacee ;_aagf ,_dfbg :=_eca .GetNameVal (_cagfd .Get ("\u004e\u0061\u006d\u0065"));if _dfbg {_badfe ._agdaa =_aagf ;};_efecb :=_cagfd .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e"); if _efecb !=nil {_badfe ._effb =_eca .TraceToDirectObject (_efecb );_eaeda ,_cdac :=_accgb (_badfe ._effb ,_badfe );if _cdac !=nil {return _cagfd ,_badfe ,_cdac ;};_badfe ._gegfa =_eaeda ;}else if _bgacee =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_bgacee =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_gdga ,_bggba :=_ded .NewCIDSystemInfo (_cagfd .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f")); if _bggba !=nil {return _cagfd ,_badfe ,_bggba ;};_ffbc :=_g .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_gdga .Registry ,_gdga .Ordering );if _ded .IsPredefinedCMap (_ffbc ){_badfe ._gegfa ,_bggba =_ded .LoadPredefinedCMap (_ffbc ); if _bggba !=nil {_ccb .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",_ffbc ,_bggba ); };};};_acef :=_cagfd .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _acef !=nil {_fcaaf ,_abgc :=_egfde (_acef );if _abgc !=nil {_ccb .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",_abgc ); return _cagfd ,_badfe ,_abgc ;};_badfe ._ccec =_fcaaf ;};if _bgacee !="\u0054\u0079\u0070e\u0033"{_gdaga ,_dfgd :=_eca .GetNameVal (_cagfd .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_dfgd {_ccb .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 _cagfd ,_badfe ,ErrRequiredAttributeMissing ;};_badfe ._daac =_gdaga ;};return _cagfd ,_badfe ,nil ;};func (_ecbd *PdfWriter )addObject (_ceed _eca .PdfObject )bool {_ebcbe :=_ecbd .hasObject (_ceed );if !_ebcbe {_bbdeg :=_eca .ResolveReferencesDeep (_ceed ,_ecbd ._aeedc ); if _bbdeg !=nil {_ccb .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_bbdeg );};_ecbd ._daecf =append (_ecbd ._daecf ,_ceed );_ecbd ._ceace [_ceed ]=struct{}{};return true ;};return false ; }; // NewPdfOutline returns an initialized PdfOutline. func NewPdfOutline ()*PdfOutline {_cdfag :=&PdfOutline {_gfaag :_eca .MakeIndirectObject (_eca .MakeDict ())};_cdfag ._dcfbf =_cdfag ;return _cdfag ;}; // GetContainingPdfObject implements interface PdfModel. func (_gdcaa *PdfFilespec )GetContainingPdfObject ()_eca .PdfObject {return _gdcaa ._ggdg }; // NewPdfOutlineTree returns an initialized PdfOutline tree. func NewPdfOutlineTree ()*PdfOutline {_ccbgfd :=NewPdfOutline ();_ccbgfd ._dcfbf =&_ccbgfd ;return _ccbgfd ;}; // HasColorspaceByName checks if the colorspace with the specified name exists in the page resources. func (_faede *PdfPageResources )HasColorspaceByName (keyName _eca .PdfObjectName )bool {_cgea ,_bfdec :=_faede .GetColorspaces ();if _bfdec !=nil {_ccb .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",_bfdec ); return false ;};if _cgea ==nil {return false ;};_ ,_gaegc :=_cgea .Colorspaces [string (keyName )];return _gaegc ;};func _gfaf (_bddg *_eca .PdfObjectDictionary ,_badc *fontCommon )(*pdfCIDFontType0 ,error ){if _badc ._cfbe !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_ccb .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",_badc ); return nil ,_eca .ErrRangeError ;};_cbcg :=_fcee (_badc );_bgcbgc ,_cdgb :=_eca .GetDict (_bddg .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_cdgb {_ccb .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",_badc ); return nil ,ErrRequiredAttributeMissing ;};_cbcg .CIDSystemInfo =_bgcbgc ;_cbcg .DW =_bddg .Get ("\u0044\u0057");_cbcg .W =_bddg .Get ("\u0057");_cbcg .DW2 =_bddg .Get ("\u0044\u0057\u0032");_cbcg .W2 =_bddg .Get ("\u0057\u0032");_cbcg ._eegbc =1000.0; if _ecba ,_bgefaed :=_eca .GetNumberAsFloat (_cbcg .DW );_bgefaed ==nil {_cbcg ._eegbc =_ecba ;};_becag ,_bdge :=_dgfdb (_cbcg .W );if _bdge !=nil {return nil ,_bdge ;};if _becag ==nil {_becag =map[_dbb .CharCode ]float64 {};};_cbcg ._ccfe =_becag ;return _cbcg ,nil ; }; // GetRevisionNumber returns the version of the current Pdf document func (_ccfc *PdfReader )GetRevisionNumber ()int {return _ccfc ._ecfeba .GetRevisionNumber ()}; // String returns a string representation of what flags are set. func (_bdbba FieldFlag )String ()string {_ddgeb :="";if _bdbba ==FieldFlagClear {_ddgeb ="\u0043\u006c\u0065a\u0072";return _ddgeb ;};if _bdbba &FieldFlagReadOnly > 0{_ddgeb +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _bdbba &FieldFlagRequired > 0{_ddgeb +="\u007cR\u0065\u0071\u0075\u0069\u0072\u0065d"; };if _bdbba &FieldFlagNoExport > 0{_ddgeb +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _bdbba &FieldFlagNoToggleToOff > 0{_ddgeb +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _bdbba &FieldFlagRadio > 0{_ddgeb +="\u007c\u0052\u0061\u0064\u0069\u006f"; };if _bdbba &FieldFlagPushbutton > 0{_ddgeb +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _bdbba &FieldFlagRadiosInUnision > 0{_ddgeb +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";}; if _bdbba &FieldFlagMultiline > 0{_ddgeb +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";};if _bdbba &FieldFlagPassword > 0{_ddgeb +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _bdbba &FieldFlagFileSelect > 0{_ddgeb +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074"; };if _bdbba &FieldFlagDoNotScroll > 0{_ddgeb +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";};if _bdbba &FieldFlagComb > 0{_ddgeb +="\u007c\u0043\u006fm\u0062";};if _bdbba &FieldFlagRichText > 0{_ddgeb +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t"; };if _bdbba &FieldFlagDoNotSpellCheck > 0{_ddgeb +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";};if _bdbba &FieldFlagCombo > 0{_ddgeb +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _bdbba &FieldFlagEdit > 0{_ddgeb +="\u007c\u0045\u0064i\u0074"; };if _bdbba &FieldFlagSort > 0{_ddgeb +="\u007c\u0053\u006fr\u0074";};if _bdbba &FieldFlagMultiSelect > 0{_ddgeb +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";};if _bdbba &FieldFlagCommitOnSelChange > 0{_ddgeb +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065"; };return _ec .Trim (_ddgeb ,"\u007c");}; // ColorToRGB converts a CMYK32 color to an RGB color. func (_cbedge *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_ccee ,_cgfc :=color .(*PdfColorDeviceCMYK );if !_cgfc {_ccb .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 ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_accec :=_ccee .C ();_abdc :=_ccee .M ();_cccg :=_ccee .Y ();_bcce :=_ccee .K ();_accec =_accec *(1-_bcce )+_bcce ;_abdc =_abdc *(1-_bcce )+_bcce ; _cccg =_cccg *(1-_bcce )+_bcce ;_cebg :=1-_accec ;_ceee :=1-_abdc ;_defa :=1-_cccg ;return NewPdfColorDeviceRGB (_cebg ,_ceee ,_defa ),nil ;}; // AlphaMapFunc represents a alpha mapping function: byte -> byte. Can be used for // thresholding the alpha channel, i.e. setting all alpha values below threshold to transparent. type AlphaMapFunc func (_cbbaf byte )byte ; // NewPdfAnnotationText returns a new text annotation. func NewPdfAnnotationText ()*PdfAnnotationText {_cbdd :=NewPdfAnnotation ();_ada :=&PdfAnnotationText {};_ada .PdfAnnotation =_cbdd ;_ada .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cbdd .SetContext (_ada );return _ada ;}; // FieldFilterFunc represents a PDF field filtering function. If the function // returns true, the PDF field is kept, otherwise it is discarded. type FieldFilterFunc func (*PdfField )bool ;func (_fbcg *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _bfceg :=_fbcg ._ccec ;_bfceg !=nil {return _bfceg ;};return _fbcg ._bggag ;}; // ToPdfObject implements interface PdfModel. func (_cg *PdfActionMovie )ToPdfObject ()_eca .PdfObject {_cg .PdfAction .ToPdfObject ();_bgf :=_cg ._bee ;_cbd :=_bgf .PdfObject .(*_eca .PdfObjectDictionary );_cbd .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeMovie )));_cbd .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_cg .Annotation ); _cbd .SetIfNotNil ("\u0054",_cg .T );_cbd .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_cg .Operation );return _bgf ;};func _fcee (_beaed *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_beaed }}; // GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern. func (_dbcbb *PdfPattern )GetContext ()PdfModel {return _dbcbb ._cegb }; // Add appends a top level outline item to the outline. func (_gcbaff *Outline )Add (item *OutlineItem ){_gcbaff .Entries =append (_gcbaff .Entries ,item )}; // ToPdfObject recursively builds the Outline tree PDF object. func (_ebcgg *PdfOutline )ToPdfObject ()_eca .PdfObject {_fggfg :=_ebcgg ._gfaag ;_bcbegf :=_fggfg .PdfObject .(*_eca .PdfObjectDictionary );_bcbegf .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _ebcgg .First !=nil {_bcbegf .Set ("\u0046\u0069\u0072s\u0074",_ebcgg .First .ToPdfObject ()); };if _ebcgg .Last !=nil {_bcbegf .Set ("\u004c\u0061\u0073\u0074",_ebcgg .Last .GetContext ().GetContainingPdfObject ());};if _ebcgg .Parent !=nil {_bcbegf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ebcgg .Parent .GetContext ().GetContainingPdfObject ()); };if _ebcgg .Count !=nil {_bcbegf .Set ("\u0043\u006f\u0075n\u0074",_eca .MakeInteger (*_ebcgg .Count ));};return _fggfg ;}; // ToPdfObject returns a stream object. func (_fedee *XObjectForm )ToPdfObject ()_eca .PdfObject {_eabc :=_fedee ._afddc ;_gaag :=_eabc .PdfObjectDictionary ;if _fedee .Filter !=nil {_gaag =_fedee .Filter .MakeStreamDict ();_eabc .PdfObjectDictionary =_gaag ;};_gaag .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074")); _gaag .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0046\u006f\u0072\u006d"));_gaag .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_fedee .FormType );_gaag .SetIfNotNil ("\u0042\u0042\u006f\u0078",_fedee .BBox );_gaag .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_fedee .Matrix ); if _fedee .Resources !=nil {_gaag .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_fedee .Resources .ToPdfObject ());};_gaag .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_fedee .Group );_gaag .SetIfNotNil ("\u0052\u0065\u0066",_fedee .Ref );_gaag .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_fedee .MetaData ); _gaag .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_fedee .PieceInfo );_gaag .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_fedee .LastModified );_gaag .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_fedee .StructParent ); _gaag .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_fedee .StructParents );_gaag .SetIfNotNil ("\u004f\u0050\u0049",_fedee .OPI );_gaag .SetIfNotNil ("\u004f\u0043",_fedee .OC );_gaag .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fedee .Name ); _gaag .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eca .MakeInteger (int64 (len (_fedee .Stream ))));_eabc .Stream =_fedee .Stream ;return _eabc ;};func (_dafed *PdfWriter )checkLicense ()error {_agcfd :=_aag .GetLicenseKey ();if (_agcfd ==nil ||!_agcfd .IsLicensed ())&&!_gccefc {_g .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"); _g .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 _da .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 ;};func (_ggbdc *PdfWriter )setCatalogVersion (){_ggbdc ._eeggd .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_eca .MakeName (_g .Sprintf ("\u0025\u0064\u002e%\u0064",_ggbdc ._dgab .Major ,_ggbdc ._dgab .Minor ))); }; // ToPdfObject convert PdfInfo to pdf object. func (_aecb *PdfInfo )ToPdfObject ()_eca .PdfObject {_dfbb :=_eca .MakeDict ();_dfbb .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_aecb .Title );_dfbb .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_aecb .Author );_dfbb .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_aecb .Subject ); _dfbb .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_aecb .Keywords );_dfbb .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_aecb .Creator );_dfbb .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_aecb .Producer ); _dfbb .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_aecb .Trapped );if _aecb .CreationDate !=nil {_dfbb .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_aecb .CreationDate .ToPdfObject ());};if _aecb .ModifiedDate !=nil {_dfbb .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_aecb .ModifiedDate .ToPdfObject ()); };for _ ,_dcdg :=range _aecb ._bcfd .Keys (){_dfbb .SetIfNotNil (_dcdg ,_aecb ._bcfd .Get (_dcdg ));};return _dfbb ;}; // SetFontByName sets the font specified by keyName to the given object. func (_gbaaea *PdfPageResources )SetFontByName (keyName _eca .PdfObjectName ,obj _eca .PdfObject )error {if _gbaaea .Font ==nil {_gbaaea .Font =_eca .MakeDict ();};_accf ,_cfdf :=_eca .TraceToDirectObject (_gbaaea .Font ).(*_eca .PdfObjectDictionary ); if !_cfdf {_ccb .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",_eca .TraceToDirectObject (_gbaaea .Font )); return _eca .ErrTypeError ;};_accf .Set (keyName ,obj );return nil ;}; // 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 (_bgafg *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_fbef :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_fbega ,_abefc :=_bgafg .GetNumPages ();if _abefc !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_abefc ); return nil ,_abefc ;};for _gdfbf :=1;_gdfbf <=_fbega ;_gdfbf ++{_deeba ,_gbefb :=_bgafg .GetPage (_gdfbf );if _gbefb !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gbefb );return nil ,_gbefb ;};if opts .PageProcessCallback !=nil {_gbefb =opts .PageProcessCallback (_gdfbf ,_deeba ); if _gbefb !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gbefb );return nil ,_gbefb ;};}else if opts .PageCallback !=nil {opts .PageCallback (_gdfbf ,_deeba );};_gbefb =_fbef .AddPage (_deeba );if _gbefb !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gbefb ); return nil ,_gbefb ;};};_fbef ._dgab =_bgafg .PdfVersion ();if !opts .SkipInfo {_ecdcac ,_gbaae :=_bgafg .GetPdfInfo ();if _gbaae !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gbaae );}else {_fbef ._fbegc .PdfObject =_ecdcac .ToPdfObject (); };};if !opts .SkipMetadata {if _baebd :=_bgafg ._affc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_baebd !=nil {if _dbcg :=_fbef .SetCatalogMetadata (_baebd );_dbcg !=nil {return nil ,_dbcg ;};};};if !opts .SkipAcroForm {_effbd :=_fbef .SetForms (_bgafg .AcroForm ); if _effbd !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_effbd );return nil ,_effbd ;};};if !opts .SkipOutlines {_fbef .AddOutlineTree (_bgafg .GetOutlineTree ());};if !opts .SkipOCProperties {_bbcgg ,_cecc :=_bgafg .GetOCProperties (); if _cecc !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cecc );}else {_cecc =_fbef .SetOCProperties (_bbcgg );if _cecc !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cecc );};};};if !opts .SkipPageLabels {_cefce ,_ddae :=_bgafg .GetPageLabels (); if _ddae !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ddae );}else {_ddae =_fbef .SetPageLabels (_cefce );if _ddae !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ddae );};};};if !opts .SkipNamedDests {_abgbc ,_fdda :=_bgafg .GetNamedDestinations (); if _fdda !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fdda );}else {_fdda =_fbef .SetNamedDestinations (_abgbc );if _fdda !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fdda );};};};if !opts .SkipNameDictionary {_eaafga ,_bcbec :=_bgafg .GetNameDictionary (); if _bcbec !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bcbec );}else {_bcbec =_fbef .SetNameDictionary (_eaafga );if _bcbec !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bcbec );};};};if !opts .SkipRotation &&_bgafg .Rotate !=nil {if _dcceae :=_fbef .SetRotation (*_bgafg .Rotate ); _dcceae !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dcceae );};};return &_fbef ,nil ;}; // SetCatalogMetadata sets the catalog metadata (XMP) stream object. func (_decba *PdfWriter )SetCatalogMetadata (meta _eca .PdfObject )error {if meta ==nil {_decba ._eeggd .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_gdfcee ,_dcde :=_eca .GetStream (meta );if !_dcde {return _da .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"); };_decba .addObject (_gdfcee );_decba ._eeggd .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_gdfcee );return 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 ; // FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other // flags are specific. type FieldFlag uint32 ; // 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 (_acee pdfFontSimple )GetCharMetrics (code _dbb .CharCode )(_ffd .CharMetrics ,bool ){if _dbgf ,_fagd :=_acee ._gfcfb [code ];_fagd {return _ffd .CharMetrics {Wx :_dbgf },true ;};if _ffd .IsStdFont (_ffd .StdFontName (_acee ._daac )){return _ffd .CharMetrics {Wx :250},true ; };return _ffd .CharMetrics {},false ;};func (_aagdb *PdfAcroForm )fillImageWithAppearance (_cdggf FieldImageProvider ,_gcdc FieldAppearanceGenerator )error {if _aagdb ==nil {return nil ;};_dggf ,_agccf :=_cdggf .FieldImageValues ();if _agccf !=nil {return _agccf ; };for _ ,_dcbae :=range _aagdb .AllFields (){_ecccc :=_dcbae .PartialName ();_cbfac ,_eabea :=_dggf [_ecccc ];if !_eabea {if _edad ,_bafee :=_dcbae .FullName ();_bafee ==nil {_cbfac ,_eabea =_dggf [_edad ];};};if !_eabea {_ccb .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",_ecccc ); continue ;};switch _cfgcc :=_dcbae .GetContext ().(type ){case *PdfFieldButton :if _cfgcc .IsPush (){_cfgcc .SetFillImage (_cbfac );};};if _gcdc ==nil {continue ;};for _ ,_dbced :=range _dcbae .Annotations {_cdca ,_egcbc :=_gcdc .GenerateAppearanceDict (_aagdb ,_dcbae ,_dbced ); if _egcbc !=nil {return _egcbc ;};_dbced .AP =_cdca ;_dbced .ToPdfObject ();};};return nil ;}; // NewPdfShadingType3 creates an empty shading type 3 dictionary. func NewPdfShadingType3 ()*PdfShadingType3 {_eggea :=&PdfShadingType3 {};_eggea .PdfShading =&PdfShading {};_eggea .PdfShading ._dcbe =_eca .MakeIndirectObject (_eca .MakeDict ());_eggea .PdfShading ._abefa =_eggea ;return _eggea ;};var _afag =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"}; // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // components. The slice should contain a single PdfObjectFloat element. func (_gace *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aeec ,_bebfe :=_eca .GetNumbersAsFloat (objects ); if _bebfe !=nil {return nil ,_bebfe ;};return _gace .ColorFromFloats (_aeec );}; // ToPdfObject implements interface PdfModel. func (_fce *PdfActionTrans )ToPdfObject ()_eca .PdfObject {_fce .PdfAction .ToPdfObject ();_cef :=_fce ._bee ;_fcc :=_cef .PdfObject .(*_eca .PdfObjectDictionary );_fcc .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeTrans )));_fcc .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_fce .Trans ); return _cef ;};var _ pdfFont =(*pdfCIDFontType0 )(nil ); // ToPdfObject implements interface PdfModel. func (_eddf *PdfAnnotationRichMedia )ToPdfObject ()_eca .PdfObject {_eddf .PdfAnnotation .ToPdfObject ();_fcd :=_eddf ._cdc ;_dada :=_fcd .PdfObject .(*_eca .PdfObjectDictionary );_dada .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a")); _dada .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_eddf .RichMediaSettings );_dada .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_eddf .RichMediaContent ); return _fcd ;}; // PdfAction represents an action in PDF (section 12.6 p. 412). type PdfAction struct{_cd PdfModel ;Type _eca .PdfObject ;S _eca .PdfObject ;Next _eca .PdfObject ;_bee *_eca .PdfIndirectObject ;}; // NewXObjectImage returns a new XObjectImage. func NewXObjectImage ()*XObjectImage {_geggb :=&XObjectImage {};_bcdfa :=&_eca .PdfObjectStream {};_bcdfa .PdfObjectDictionary =_eca .MakeDict ();_geggb ._gddeaa =_bcdfa ;return _geggb ;};func (_befgf *PdfWriter )writeAcroFormFields ()error {if _befgf ._bebb ==nil {return nil ; };_ccb .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_aceba :=_befgf ._bebb .ToPdfObject ();_ccb .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_aceba ); _befgf ._eeggd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_aceba );_bccgd :=_befgf .addObjects (_aceba );if _bccgd !=nil {return _bccgd ;};return nil ;};var _fdcgf =_aa .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b"); // GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the // annotations, otherwise returns the loaded list. func (_fcfc *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _fcfc ._gabcd !=nil {return _fcfc ._gabcd ,nil ;};if _fcfc .Annots ==nil {_fcfc ._gabcd =[]*PdfAnnotation {};return nil ,nil ;};if _fcfc ._cdgeb ==nil {_fcfc ._gabcd =[]*PdfAnnotation {}; return nil ,nil ;};_gdgcc ,_gbcfd :=_fcfc ._cdgeb .loadAnnotations (_fcfc .Annots );if _gbcfd !=nil {return nil ,_gbcfd ;};if _gdgcc ==nil {_fcfc ._gabcd =[]*PdfAnnotation {};};_fcfc ._gabcd =_gdgcc ;return _fcfc ._gabcd ,nil ;}; // 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 (_edcb *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_ebaag ,_ ,_effef :=_edcb .CharcodesToUnicodeWithStats (_edcb .BytesToCharcodes (data ));_gggc :=_dbb .ExpandLigatures (_ebaag );return _gggc ,_be .RuneCountInString (_gggc ),_effef ; }; // NewPdfAnnotationProjection returns a new projection annotation. func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_bbfg :=NewPdfAnnotation ();_bde :=&PdfAnnotationProjection {};_bde .PdfAnnotation =_bbfg ;_bde .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bbfg .SetContext (_bde );return _bde ;}; // Encoder returns the font's text encoder. func (_ebaad *PdfFont )Encoder ()_dbb .TextEncoder {_cgebf :=_ebaad .actualFont ();if _cgebf ==nil {_ccb .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",_ebaad ._dbgb ); return nil ;};return _cgebf .Encoder ();}; // Encoder returns the font's text encoder. func (_ddffc pdfFontType3 )Encoder ()_dbb .TextEncoder {return _ddffc ._aeefc }; // 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 (_gcfba []_eca .PdfObject )([]_eca .PdfObject ,error );}; // SetContentStream sets the pattern cell's content stream. func (_gbgg *PdfTilingPattern )SetContentStream (content []byte ,encoder _eca .StreamEncoder )error {_egggf ,_fbecef :=_gbgg ._cdfed .(*_eca .PdfObjectStream );if !_fbecef {_ccb .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",_gbgg ._cdfed ); return _eca .ErrTypeError ;};if encoder ==nil {encoder =_eca .NewRawEncoder ();};_abddd :=_egggf .PdfObjectDictionary ;_fdfg :=encoder .MakeStreamDict ();_abddd .Merge (_fdfg );_agdb ,_ffdab :=encoder .EncodeBytes (content );if _ffdab !=nil {return _ffdab ; };_abddd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eca .MakeInteger (int64 (len (_agdb ))));_egggf .Stream =_agdb ;return nil ;}; // NewPdfColorspaceCalRGB returns a new CalRGB colorspace object. func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_afega :=&PdfColorspaceCalRGB {};_afega .BlackPoint =[]float64 {0.0,0.0,0.0};_afega .Gamma =[]float64 {1.0,1.0,1.0};_afega .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _afega ;}; // PageFromIndirectObject returns the PdfPage and page number for a given indirect object. func (_efbac *PdfReader )PageFromIndirectObject (ind *_eca .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_efbac .PageList )!=len (_efbac ._gfabb ){return nil ,0,_da .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064"); };for _dfcge ,_abbdb :=range _efbac ._gfabb {if _abbdb ==ind {return _efbac .PageList [_dfcge ],_dfcge +1,nil ;};};return nil ,0,_da .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};func (_fcfce *PdfReader )loadStructure ()error {if _fcfce ._ecfeba .GetCrypter ()!=nil &&!_fcfce ._ecfeba .IsAuthenticated (){return _g .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"); };_aeede :=_fcfce ._ecfeba .GetTrailer ();if _aeede ==nil {return _g .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_bcaa ,_ccdbf :=_aeede .Get ("\u0052\u006f\u006f\u0074").(*_eca .PdfObjectReference );if !_ccdbf {return _g .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",_aeede ); };_baeg ,_badbd :=_fcfce ._ecfeba .LookupByReference (*_bcaa );if _badbd !=nil {_ccb .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",_badbd ); return _badbd ;};_fdgf ,_ccdbf :=_baeg .(*_eca .PdfIndirectObject );if !_ccdbf {_ccb .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",_baeg ,*_aeede ); return _da .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_dccaag ,_ccdbf :=(*_fdgf ).PdfObject .(*_eca .PdfObjectDictionary );if !_ccdbf {_ccb .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",_fdgf .PdfObject ); return _da .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_ccb .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_dccaag );_gbgac ,_ccdbf :=_dccaag .Get ("\u0050\u0061\u0067e\u0073").(*_eca .PdfObjectReference ); if !_ccdbf {return _da .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");};_fged ,_badbd :=_fcfce ._ecfeba .LookupByReference (*_gbgac ); if _badbd !=nil {_ccb .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 _badbd ;};_fdadb ,_ccdbf :=_fged .(*_eca .PdfIndirectObject );if !_ccdbf {_ccb .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"); _ccb .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_fdadb );return _da .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_edgfa ,_ccdbf :=_fdadb .PdfObject .(*_eca .PdfObjectDictionary );if !_ccdbf {_ccb .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",_fdadb ); return _da .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_gbed ,_ccdbf :=_eca .GetInt (_edgfa .Get ("\u0043\u006f\u0075n\u0074"));if !_ccdbf {_ccb .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 _da .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_ccdbf =_eca .GetName (_edgfa .Get ("\u0054\u0079\u0070\u0065"));!_ccdbf {_ccb .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"); _edgfa .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0050\u0061\u0067e\u0073"));};if _bfeag ,_dbdg :=_eca .GetInt (_edgfa .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_dbdg {_gcacb :=int64 (*_bfeag );_fcfce .Rotate =&_gcacb ;};_fcfce ._eefcf =_bcaa ; _fcfce ._affc =_dccaag ;_fcfce ._bdac =_edgfa ;_fcfce ._ebddg =_fdadb ;_fcfce ._gebe =int (*_gbed );_fcfce ._gfabb =[]*_eca .PdfIndirectObject {};_dgcf :=map[_eca .PdfObject ]struct{}{};_badbd =_fcfce .buildPageList (_fdadb ,nil ,_dgcf );if _badbd !=nil {return _badbd ; };_ccb .Log .Trace ("\u002d\u002d\u002d");_ccb .Log .Trace ("\u0054\u004f\u0043");_ccb .Log .Trace ("\u0050\u0061\u0067e\u0073");_ccb .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_fcfce ._gfabb ),_fcfce ._gfabb );_fcfce ._eabaf ,_badbd =_fcfce .loadOutlines (); if _badbd !=nil {_ccb .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",_badbd ); return _badbd ;};_fcfce .AcroForm ,_badbd =_fcfce .loadForms ();if _badbd !=nil {return _badbd ;};_fcfce .DSS ,_badbd =_fcfce .loadDSS ();if _badbd !=nil {return _badbd ;};_fcfce ._bdbaa ,_badbd =_fcfce .loadPerms ();if _badbd !=nil {return _badbd ;};return nil ; }; // NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject. func NewPdfInfoFromObject (obj _eca .PdfObject )(*PdfInfo ,error ){var _afcc PdfInfo ;_ddgf ,_fafg :=obj .(*_eca .PdfObjectDictionary );if !_fafg {return nil ,_g .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 _ ,_aaag :=range _ddgf .Keys (){switch _aaag {case "\u0054\u0069\u0074l\u0065":_afcc .Title ,_ =_eca .GetString (_ddgf .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_afcc .Author ,_ =_eca .GetString (_ddgf .Get ("\u0041\u0075\u0074\u0068\u006f\u0072")); case "\u0053u\u0062\u006a\u0065\u0063\u0074":_afcc .Subject ,_ =_eca .GetString (_ddgf .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_afcc .Keywords ,_ =_eca .GetString (_ddgf .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073")); case "\u0043r\u0065\u0061\u0074\u006f\u0072":_afcc .Creator ,_ =_eca .GetString (_ddgf .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_afcc .Producer ,_ =_eca .GetString (_ddgf .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072")); case "\u0054r\u0061\u0070\u0070\u0065\u0064":_afcc .Trapped ,_ =_eca .GetName (_ddgf .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _bfce ,_bdba :=_eca .GetString (_ddgf .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065")); _bdba &&_bfce .String ()!=""{_gfgf ,_ebfdf :=NewPdfDate (_bfce .String ());if _ebfdf !=nil {return nil ,_g .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",_ebfdf ); };_afcc .CreationDate =&_gfgf ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _adcd ,_gcff :=_eca .GetString (_ddgf .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_gcff &&_adcd .String ()!=""{_acfde ,_fabg :=NewPdfDate (_adcd .String ());if _fabg !=nil {return nil ,_g .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_fabg ); };_afcc .ModifiedDate =&_acfde ;};default:_gaec ,_ :=_eca .GetString (_ddgf .Get (_aaag ));if _afcc ._bcfd ==nil {_afcc ._bcfd =_eca .MakeDict ();};_afcc ._bcfd .Set (_aaag ,_gaec );};};return &_afcc ,nil ;};func (_gbddb *PdfWriter )flushWriter ()error {if _gbddb ._fafa ==nil {_gbddb ._fafa =_gbddb ._agbgb .Flush (); };return _gbddb ._fafa ;}; // Insert adds a top level outline item in the outline, // at the specified index. func (_bgbcg *Outline )Insert (index uint ,item *OutlineItem ){_dbbf :=uint (len (_bgbcg .Entries ));if index > _dbbf {index =_dbbf ;};_bgbcg .Entries =append (_bgbcg .Entries [:index ],append ([]*OutlineItem {item },_bgbcg .Entries [index :]...)...);}; func (_dfb *PdfAppender )updateObjectsDeep (_feaea _eca .PdfObject ,_fcfb map[_eca .PdfObject ]struct{}){if _fcfb ==nil {_fcfb =map[_eca .PdfObject ]struct{}{};};if _ ,_cefb :=_fcfb [_feaea ];_cefb ||_feaea ==nil {return ;};_fcfb [_feaea ]=struct{}{};_gaca :=_eca .ResolveReferencesDeep (_feaea ,_dfb ._bgefc ); if _gaca !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gaca );};switch _cbbg :=_feaea .(type ){case *_eca .PdfIndirectObject :switch {case _cbbg .GetParser ()==_dfb ._badg ._ecfeba :return ;case _cbbg .GetParser ()==_dfb .Reader ._ecfeba :_fegg ,_ :=_dfb ._badg .GetIndirectObjectByNumber (int (_cbbg .ObjectNumber )); _abg ,_eefe :=_fegg .(*_eca .PdfIndirectObject );if _eefe &&_abg !=nil {if _abg .PdfObject !=_cbbg .PdfObject &&_abg .PdfObject .WriteString ()!=_cbbg .PdfObject .WriteString (){_dfb .addNewObject (_feaea );_dfb ._ccbc [_feaea ]=_cbbg .ObjectNumber ;}; };default:_dfb .addNewObject (_feaea );};_dfb .updateObjectsDeep (_cbbg .PdfObject ,_fcfb );case *_eca .PdfObjectArray :for _ ,_fcec :=range _cbbg .Elements (){_dfb .updateObjectsDeep (_fcec ,_fcfb );};case *_eca .PdfObjectDictionary :for _ ,_baab :=range _cbbg .Keys (){_dfb .updateObjectsDeep (_cbbg .Get (_baab ),_fcfb ); };case *_eca .PdfObjectStreams :if _cbbg .GetParser ()!=_dfb ._badg ._ecfeba {for _ ,_deaba :=range _cbbg .Elements (){_dfb .updateObjectsDeep (_deaba ,_fcfb );};};case *_eca .PdfObjectStream :switch {case _cbbg .GetParser ()==_dfb ._badg ._ecfeba :return ; case _cbbg .GetParser ()==_dfb .Reader ._ecfeba :if _ggbd ,_agdg :=_dfb ._badg ._ecfeba .LookupByReference (_cbbg .PdfObjectReference );_agdg ==nil {var _fgfa bool ;if _bbag ,_bacea :=_eca .GetStream (_ggbd );_bacea &&_dd .Equal (_bbag .Stream ,_cbbg .Stream ){_fgfa =true ; };if _cgeec ,_aacaa :=_eca .GetDict (_ggbd );_fgfa &&_aacaa {_fgfa =_cgeec .WriteString ()==_cbbg .PdfObjectDictionary .WriteString ();};if _fgfa {return ;};};if _cbbg .ObjectNumber !=0{_dfb ._ccbc [_feaea ]=_cbbg .ObjectNumber ;};default:if _ ,_eeeg :=_dfb ._eeb [_feaea ]; !_eeeg {_dfb .addNewObject (_feaea );};};_dfb .updateObjectsDeep (_cbbg .PdfObjectDictionary ,_fcfb );};}; // PdfActionRendition represents a Rendition action. type PdfActionRendition struct{*PdfAction ;R _eca .PdfObject ;AN _eca .PdfObject ;OP _eca .PdfObject ;JS _eca .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 (_afde *Image )GetSamples ()[]uint32 {_fdffb :=_bf .ResampleBytes (_afde .Data ,int (_afde .BitsPerComponent ));if _afde .BitsPerComponent < 8{_fdffb =_afde .samplesTrimPadding (_fdffb );};_fgbdc :=int (_afde .Width )*int (_afde .Height )*_afde .ColorComponents ; if len (_fdffb )< _fgbdc {_ccb .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 (_fdffb ),_fgbdc ); return _fdffb ;}else if len (_fdffb )> _fgbdc {_ccb .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 (_fdffb ),_fgbdc ); _fdffb =_fdffb [:_fgbdc ];};return _fdffb ;};func _dbecc (_gfgc StdFontName )(pdfFontSimple ,error ){_ecfd ,_cgaa :=_ffd .NewStdFontByName (_gfgc );if !_cgaa {return pdfFontSimple {},ErrFontNotSupported ;};_feca :=_fgcd (_ecfd );return _feca ,nil ;}; // NewPdfAnnotationSquare returns a new square annotation. func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_cge :=NewPdfAnnotation ();_fbac :=&PdfAnnotationSquare {};_fbac .PdfAnnotation =_cge ;_fbac .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cge .SetContext (_fbac );return _fbac ;};func _dcfeb (_bfage *_eca .PdfObjectDictionary )(*PdfShadingType1 ,error ){_acbd :=PdfShadingType1 {}; if _ddba :=_bfage .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_ddba !=nil {_ddba =_eca .TraceToDirectObject (_ddba );_ceacd ,_ffce :=_ddba .(*_eca .PdfObjectArray );if !_ffce {_ccb .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",_ddba ); return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_acbd .Domain =_ceacd ;};if _cedaf :=_bfage .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_cedaf !=nil {_cedaf =_eca .TraceToDirectObject (_cedaf ); _cbgac ,_fbdbc :=_cedaf .(*_eca .PdfObjectArray );if !_fbdbc {_ccb .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",_cedaf );return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072"); };_acbd .Matrix =_cbgac ;};_ceaff :=_bfage .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _ceaff ==nil {_ccb .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 ;};_acbd .Function =[]PdfFunction {};if _efefd ,_cfdgd :=_ceaff .(*_eca .PdfObjectArray );_cfdgd {for _ ,_daebe :=range _efefd .Elements (){_aceff ,_facbc :=_febaf (_daebe );if _facbc !=nil {_ccb .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",_facbc ); return nil ,_facbc ;};_acbd .Function =append (_acbd .Function ,_aceff );};}else {_ceaec ,_cbfda :=_febaf (_ceaff );if _cbfda !=nil {_ccb .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",_cbfda ); return nil ,_cbfda ;};_acbd .Function =append (_acbd .Function ,_ceaec );};return &_acbd ,nil ;}; // DecodeArray returns the component range values for the Separation colorspace. func (_dgbg *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}}; // GetAlphabet returns a map of the runes in `text` and their frequencies. func GetAlphabet (text string )map[rune ]int {_bbae :=map[rune ]int {};for _ ,_edagg :=range text {_bbae [_edagg ]++;};return _bbae ;}; // DecodeArray returns the range of color component values in the ICCBased colorspace. func (_cdgdc *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _cdgdc .Range }; // GenerateXObjectName generates an unused XObject name that can be used for // adding new XObjects. Uses format XObj1, XObj2, ... func (_bcfbd *PdfPageResources )GenerateXObjectName ()_eca .PdfObjectName {_gbgegb :=1;for {_feaad :=_eca .MakeName (_g .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_gbgegb ));if !_bcfbd .HasXObjectByName (*_feaad ){return *_feaad ;};_gbgegb ++;};}; // Encoder returns the font's text encoder. func (_dddcc pdfCIDFontType0 )Encoder ()_dbb .TextEncoder {return _dddcc ._dccca }; // PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF. type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_eca .PdfObjectBool ;SigFlags *_eca .PdfObjectInteger ;CO *_eca .PdfObjectArray ;DR *PdfPageResources ;DA *_eca .PdfObjectString ;Q *_eca .PdfObjectInteger ;XFA _eca .PdfObject ; // ADBEEchoSign extra objects from Adobe Acrobat, causing signature invalid if not exists. ADBEEchoSign _eca .PdfObject ;_aeac *_eca .PdfIndirectObject ;_eecff bool ;}; // GetRuneMetrics returns the character metrics for the specified rune. // A bool flag is returned to indicate whether or not the entry was found. func (_gcfd pdfFontType0 )GetRuneMetrics (r rune )(_ffd .CharMetrics ,bool ){if _gcfd .DescendantFont ==nil {_ccb .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",_gcfd ); return _ffd .CharMetrics {},false ;};return _gcfd .DescendantFont .GetRuneMetrics (r );}; // GetPatternByName gets the pattern specified by keyName. Returns nil if not existing. // The bool flag indicated whether it was found or not. func (_ggcbcd *PdfPageResources )GetPatternByName (keyName _eca .PdfObjectName )(*PdfPattern ,bool ){if _ggcbcd .Pattern ==nil {return nil ,false ;};_bcedd ,_ccbaf :=_eca .TraceToDirectObject (_ggcbcd .Pattern ).(*_eca .PdfObjectDictionary );if !_ccbaf {_ccb .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",_ggcbcd .Pattern ); return nil ,false ;};if _dedfc :=_bcedd .Get (keyName );_dedfc !=nil {_cccee ,_cdcbg :=_gbdag (_dedfc );if _cdcbg !=nil {_ccb .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",_cdcbg ); return nil ,false ;};return _cccee ,true ;};return nil ,false ;}; // NewPdfAnnotationPolyLine returns a new polyline annotation. func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_gacf :=NewPdfAnnotation ();_bbab :=&PdfAnnotationPolyLine {};_bbab .PdfAnnotation =_gacf ;_bbab .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gacf .SetContext (_bbab );return _bbab ;}; // Encoder returns the font's text encoder. func (_edca *pdfFontSimple )Encoder ()_dbb .TextEncoder {if _edca ._daddc !=nil {return _edca ._daddc ;};if _edca ._aaggg !=nil {return _edca ._aaggg ;};_fegd ,_ :=_dbb .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil ); return _fegd ;}; // SetFillImage attach a model.Image to push button. func (_edfdd *PdfFieldButton )SetFillImage (image *Image ){if _edfdd .IsPush (){_edfdd ._fbffd =image ;};}; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. func (_agbac *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _agbac .UnderlyingCS ==nil {return nil ,_da .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 _agbac .UnderlyingCS .ColorFromFloats (vals );};func (_edcag *PdfWriter )writeXRefStreams (_gdgef int ,_ddfgf int64 )error {_gcfdc :=_gdgef +1;_edcag ._eaad [_gcfdc ]=crossReference {Type :1,ObjectNumber :_gcfdc ,Offset :_ddfgf };_fdgff :=_dd .NewBuffer (nil ); _gecfc :=_eca .MakeArray ();for _ccdcf :=0;_ccdcf <=_gdgef ;{for ;_ccdcf <=_gdgef ;_ccdcf ++{_efbge ,_faceb :=_edcag ._eaad [_ccdcf ];if _faceb &&(!_edcag ._ccdgb ||_edcag ._ccdgb &&(_efbge .Type ==1&&_efbge .Offset >=_edcag ._ffeaf ||_efbge .Type ==0)){break ; };};var _cffdc int ;for _cffdc =_ccdcf +1;_cffdc <=_gdgef ;_cffdc ++{_dbac ,_eacba :=_edcag ._eaad [_cffdc ];if _eacba &&(!_edcag ._ccdgb ||_edcag ._ccdgb &&(_dbac .Type ==1&&_dbac .Offset > _edcag ._ffeaf )){continue ;};break ;};_gecfc .Append (_eca .MakeInteger (int64 (_ccdcf )),_eca .MakeInteger (int64 (_cffdc -_ccdcf ))); for _degae :=_ccdcf ;_degae < _cffdc ;_degae ++{_bggefd :=_edcag ._eaad [_degae ];switch _bggefd .Type {case 0:_bd .Write (_fdgff ,_bd .BigEndian ,byte (0));_bd .Write (_fdgff ,_bd .BigEndian ,uint32 (0));_bd .Write (_fdgff ,_bd .BigEndian ,uint16 (0xFFFF)); case 1:_bd .Write (_fdgff ,_bd .BigEndian ,byte (1));_bd .Write (_fdgff ,_bd .BigEndian ,uint32 (_bggefd .Offset ));_bd .Write (_fdgff ,_bd .BigEndian ,uint16 (_bggefd .Generation ));case 2:_bd .Write (_fdgff ,_bd .BigEndian ,byte (2));_bd .Write (_fdgff ,_bd .BigEndian ,uint32 (_bggefd .ObjectNumber )); _bd .Write (_fdgff ,_bd .BigEndian ,uint16 (_bggefd .Index ));};};_ccdcf =_cffdc +1;};_adafg ,_ceeaa :=_eca .MakeStream (_fdgff .Bytes (),_eca .NewFlateEncoder ());if _ceeaa !=nil {return _ceeaa ;};_adafg .ObjectNumber =int64 (_gcfdc );_adafg .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0058\u0052\u0065\u0066")); _adafg .PdfObjectDictionary .Set ("\u0057",_eca .MakeArray (_eca .MakeInteger (1),_eca .MakeInteger (4),_eca .MakeInteger (2)));_adafg .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_gecfc );_adafg .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_eca .MakeInteger (int64 (_gcfdc +1))); _adafg .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_edcag ._fbegc );_adafg .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_edcag ._bggab );if _edcag ._ccdgb &&_edcag ._dcggeb > 0{_adafg .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_eca .MakeInteger (_edcag ._dcggeb )); };if _edcag ._badga !=nil {_adafg .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_edcag ._fdgaf );};if _edcag ._dadf ==nil &&_edcag ._aadc !=""&&_edcag ._fcbcc !=""{_edcag ._dadf =_eca .MakeArray (_eca .MakeHexString (_edcag ._aadc ),_eca .MakeHexString (_edcag ._fcbcc )); };if _edcag ._dadf !=nil {_ccb .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_edcag ._dadf );_adafg .Set ("\u0049\u0044",_edcag ._dadf );};_edcag .writeObject (int (_adafg .ObjectNumber ),_adafg );return 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 _beg .ReadSeeker )(*PdfReader ,error ){const _dgeeca ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _cfbdee (rs ,&ReaderOpts {},false ,_dgeeca );};func (_gbdab *PdfReader )loadPerms ()(*Permissions ,error ){if _aedcb :=_gbdab ._affc .Get ("\u0050\u0065\u0072m\u0073"); _aedcb !=nil {if _feggdd ,_bceee :=_eca .GetDict (_aedcb );_bceee {_acfbg :=_feggdd .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");if _acfbg ==nil {return nil ,nil ;};if _aebba ,_aaea :=_eca .GetIndirect (_acfbg );_aaea {_bafcf ,_eebea :=_gbdab .newPdfSignatureFromIndirect (_aebba ); if _eebea !=nil {return nil ,_eebea ;};return NewPermissions (_bafcf ),nil ;};return nil ,_g .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");};return nil ,_g .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079"); };return nil ,nil ;}; // ToInteger convert to an integer format. func (_egff *PdfColorCalGray )ToInteger (bits int )uint32 {_gcgge :=_de .Pow (2,float64 (bits ))-1;return uint32 (_gcgge *_egff .Val ());}; // SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field. func (_fgbdf *PdfField )SetContext (ctx PdfModel ){_fgbdf ._fbgb =ctx }; // RemovePage removes a page by number. func (_ggag *PdfAppender )RemovePage (pageNum int ){_ceae :=pageNum -1;_ggag ._fecc =append (_ggag ._fecc [0:_ceae ],_ggag ._fecc [pageNum :]...);}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 3 for a Lab device. func (_defbe *PdfColorspaceLab )GetNumComponents ()int {return 3}; // 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 ;_cegb PdfModel ;_cdfed _eca .PdfObject ;}; // UpdateObject marks `obj` as updated and to be included in the following revision. func (_fbae *PdfAppender )UpdateObject (obj _eca .PdfObject ){_fbae .replaceObject (obj ,obj );if _ ,_accc :=_fbae ._eeb [obj ];!_accc {_fbae ._afce =append (_fbae ._afce ,obj );_fbae ._eeb [obj ]=struct{}{};};};func _gebb (_gdcac *_eca .PdfObjectDictionary ){_cgbcc ,_fbgee :=_eca .GetArray (_gdcac .Get ("\u0057\u0069\u0064\u0074\u0068\u0073")); _cddg ,_acbcc :=_eca .GetIntVal (_gdcac .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"));_bgeg ,_bdcg :=_eca .GetIntVal (_gdcac .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));if _fbgee &&_acbcc &&_bdcg {_ccbfc :=_cgbcc .Len ();if _ccbfc !=_bgeg -_cddg +1{_ccb .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",_ccbfc ,_bgeg ); _bccb :=_eca .PdfObjectInteger (_cddg +_ccbfc -1);_gdcac .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_bccb );};};}; // AppendContentStream adds content stream by string. Appends to the last // contentstream instance if many. func (_aeeb *PdfPage )AppendContentStream (contentStr string )error {_cbcfe ,_dcgba :=_aeeb .GetContentStreams ();if _dcgba !=nil {return _dcgba ;};if len (_cbcfe )==0{_cbcfe =[]string {contentStr };return _aeeb .SetContentStreams (_cbcfe ,_eca .NewFlateEncoder ()); };var _cddeb _dd .Buffer ;_cddeb .WriteString (_cbcfe [len (_cbcfe )-1]);_cddeb .WriteString ("\u000a");_cddeb .WriteString (contentStr );_cbcfe [len (_cbcfe )-1]=_cddeb .String ();return _aeeb .SetContentStreams (_cbcfe ,_eca .NewFlateEncoder ());}; // ToPdfObject implements interface PdfModel. func (_ac *PdfAction )ToPdfObject ()_eca .PdfObject {_fed :=_ac ._bee ;_gf :=_fed .PdfObject .(*_eca .PdfObjectDictionary );_gf .Clear ();_gf .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_gf .SetIfNotNil ("\u0053",_ac .S ); _gf .SetIfNotNil ("\u004e\u0065\u0078\u0074",_ac .Next );return _fed ;}; // BorderEffect represents a border effect (Table 167 p. 395). type BorderEffect int ;func (_acdbe *LTV )enable (_bbcg ,_gcfa []*_ad .Certificate ,_gacfd string )error {_dabb ,_eaeg ,_ffaf :=_acdbe .buildCertChain (_bbcg ,_gcfa );if _ffaf !=nil {return _ffaf ;};_fagfb ,_ffaf :=_acdbe .getCerts (_dabb );if _ffaf !=nil {return _ffaf ; };var _gefc ,_cafcfc [][]byte ;if _acdbe .OCSPClient !=nil {_gefc ,_ffaf =_acdbe .getOCSPs (_dabb ,_eaeg );if _ffaf !=nil {return _ffaf ;};};if _acdbe .CRLClient !=nil {_cafcfc ,_ffaf =_acdbe .getCRLs (_dabb );if _ffaf !=nil {return _ffaf ;};};_ddggf :=_acdbe ._eebfab ; _bfbc ,_ffaf :=_ddggf .AddCerts (_fagfb );if _ffaf !=nil {return _ffaf ;};_ddca ,_ffaf :=_ddggf .AddOCSPs (_gefc );if _ffaf !=nil {return _ffaf ;};_ggfga ,_ffaf :=_ddggf .AddCRLs (_cafcfc );if _ffaf !=nil {return _ffaf ;};if _gacfd !=""{_ddggf .VRI [_gacfd ]=&VRI {Cert :_bfbc ,OCSP :_ddca ,CRL :_ggfga }; };_acdbe ._deaee .SetDSS (_ddggf );return nil ;}; // 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 (_ccad *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fffg :=vals [0];if _fffg < 0.0||_fffg > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fffg ); return nil ,ErrColorOutOfRange ;};_ebdb :=vals [1];if _ebdb < 0.0||_ebdb > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fffg );return nil ,ErrColorOutOfRange ; };_gcf :=vals [2];if _gcf < 0.0||_gcf > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fffg );return nil ,ErrColorOutOfRange ;};_adcag :=NewPdfColorDeviceRGB (_fffg ,_ebdb ,_gcf ); return _adcag ,nil ;}; // 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 _beg .ReadSeeker )(*PdfFont ,error ){const _dfgba =_dbb .CharCode (32);const _daec =_dbb .CharCode (255);_dcgdd ,_gaff :=_dc .ReadAll (r );if _gaff !=nil {_ccb .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",_gaff ); return nil ,_gaff ;};_agcac ,_gaff :=_ffd .TtfParse (_dd .NewReader (_dcgdd ));if _gaff !=nil {_ccb .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",_gaff ); return nil ,_gaff ;};_eedg :=&pdfFontSimple {_gfcfb :make (map[_dbb .CharCode ]float64 ),fontCommon :fontCommon {_cfbe :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_eedg ._daddc =_dbb .NewWinAnsiEncoder ();_eedg ._daac =_agcac .PostScriptName ; _eedg .FirstChar =_eca .MakeInteger (int64 (_dfgba ));_eedg .LastChar =_eca .MakeInteger (int64 (_daec ));_aaagb :=1000.0/float64 (_agcac .UnitsPerEm );if len (_agcac .Widths )<=0{return nil ,_da .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"); };_acfdd :=_aaagb *float64 (_agcac .Widths [0]);_dffdb :=make ([]float64 ,0,_daec -_dfgba +1);for _eabegg :=_dfgba ;_eabegg <=_daec ;_eabegg ++{_dgdc ,_aebg :=_eedg .Encoder ().CharcodeToRune (_eabegg );if !_aebg {_ccb .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_eabegg ); _dffdb =append (_dffdb ,_acfdd );continue ;};_caag ,_efagd :=_agcac .Chars [_dgdc ];if !_efagd {_ccb .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_dffdb =append (_dffdb ,_acfdd ); continue ;};_gaea :=_aaagb *float64 (_agcac .Widths [_caag ]);_dffdb =append (_dffdb ,_gaea );};_eedg .Widths =_eca .MakeIndirectObject (_eca .MakeArrayFromFloats (_dffdb ));if len (_dffdb )< int (_daec -_dfgba +1){_ccb .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 (_dffdb ),255-32+1); return nil ,_eca .ErrRangeError ;};for _aaede :=_dfgba ;_aaede <=_daec ;_aaede ++{_eedg ._gfcfb [_aaede ]=_dffdb [_aaede -_dfgba ];};_eedg .Encoding =_eca .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_fdef :=&PdfFontDescriptor {}; _fdef .FontName =_eca .MakeName (_agcac .PostScriptName );_fdef .Ascent =_eca .MakeFloat (_aaagb *float64 (_agcac .TypoAscender ));_fdef .Descent =_eca .MakeFloat (_aaagb *float64 (_agcac .TypoDescender ));_fdef .CapHeight =_eca .MakeFloat (_aaagb *float64 (_agcac .CapHeight )); _fdef .FontBBox =_eca .MakeArrayFromFloats ([]float64 {_aaagb *float64 (_agcac .Xmin ),_aaagb *float64 (_agcac .Ymin ),_aaagb *float64 (_agcac .Xmax ),_aaagb *float64 (_agcac .Ymax )});_fdef .ItalicAngle =_eca .MakeFloat (_agcac .ItalicAngle );_fdef .MissingWidth =_eca .MakeFloat (_aaagb *float64 (_agcac .Widths [0])); _bfea ,_gaff :=_eca .MakeStream (_dcgdd ,_eca .NewFlateEncoder ());if _gaff !=nil {_ccb .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",_gaff ); return nil ,_gaff ;};_bfea .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_eca .MakeInteger (int64 (len (_dcgdd ))));_fdef .FontFile2 =_bfea ;if _agcac .Bold {_fdef .StemV =_eca .MakeInteger (120);}else {_fdef .StemV =_eca .MakeInteger (70); };_bead :=_eaccc ;if _agcac .IsFixedPitch {_bead |=_ebab ;};if _agcac .ItalicAngle !=0{_bead |=_afdgf ;};_fdef .Flags =_eca .MakeInteger (int64 (_bead ));_eedg ._ccec =_fdef ;_abaaa :=&PdfFont {_dbgb :_eedg };return _abaaa ,nil ;}; // 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 ,_bfbdb :_eca .MakeDict ()}; }; // PdfOutlineTreeNode contains common fields used by the outline and outline // item objects. type PdfOutlineTreeNode struct{_dcfbf interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 3 for an RGB device. func (_eddbf *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3}; // 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 (_fdfd *pdfFontSimple )SetEncoder (encoder _dbb .TextEncoder ){_fdfd ._daddc =encoder }; // GetAction returns the PDF action for the annotation link. func (_cgd *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _cgd ._egc !=nil {return _cgd ._egc ,nil ;};if _cgd .A ==nil {return nil ,nil ;};if _cgd ._gagb ==nil {return nil ,nil ;};_dga ,_fdb :=_cgd ._gagb .loadAction (_cgd .A );if _fdb !=nil {return nil ,_fdb ; };_cgd ._egc =_dga ;return _cgd ._egc ,nil ;};func _dagb (_bbabc *_eca .PdfObjectDictionary ,_cfae *fontCommon )(*pdfFontType0 ,error ){_fdeacf ,_ffff :=_eca .GetArray (_bbabc .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073")); if !_ffff {_ccb .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",_cfae ); return nil ,_eca .ErrRangeError ;};if _fdeacf .Len ()!=1{_ccb .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",_fdeacf .Len ()); return nil ,_eca .ErrRangeError ;};_cgded ,_eeadd :=_bbdgf (_fdeacf .Get (0),false );if _eeadd !=nil {_ccb .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",_eeadd ,_cfae ); return nil ,_eeadd ;};_fgcca :=_efbe (_cfae );_fgcca .DescendantFont =_cgded ;_aaedf ,_ffff :=_eca .GetNameVal (_bbabc .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _ffff {if _aaedf =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_aaedf =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_fgcca ._gdcea =_dbb .NewIdentityTextEncoder (_aaedf ); }else if _ded .IsPredefinedCMap (_aaedf ){_fgcca ._bfefe ,_eeadd =_ded .LoadPredefinedCMap (_aaedf );if _eeadd !=nil {_ccb .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",_aaedf ,_eeadd ); };}else {_ccb .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_aaedf );};};if _egdce :=_cgded .baseFields ()._gegfa ;_egdce !=nil {if _bdaac :=_egdce .Name ();_bdaac =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_bdaac =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_bdaac =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_bdaac =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_fgcca ._gdcea =_dbb .NewCMapEncoder (_aaedf ,_fgcca ._bfefe ,_egdce ); };};return _fgcca ,nil ;}; // C returns the value of the cyan component of the color. func (_afa *PdfColorDeviceCMYK )C ()float64 {return _afa [0]}; // GetPrimitiveFromModel returns the primitive object corresponding to the input `model`. func (_gddc *modelManager )GetPrimitiveFromModel (model PdfModel )_eca .PdfObject {_cegae ,_abda :=_gddc ._dccab [model ];if !_abda {return nil ;};return _cegae ;}; // GetContainingPdfObject returns the container of the outline (indirect object). func (_aadg *PdfOutline )GetContainingPdfObject ()_eca .PdfObject {return _aadg ._gfaag }; // ToPdfObject returns the PDF representation of the colorspace. func (_aabe *PdfColorspaceDeviceCMYK )ToPdfObject ()_eca .PdfObject {return _eca .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");}; // PdfAnnotationInk represents Ink annotations. // (Section 12.5.6.13). type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _eca .PdfObject ;BS _eca .PdfObject ;}; // 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 ; // SetPdfSubject sets the Subject attribute of the output PDF. func SetPdfSubject (subject string ){_ccbac .Lock ();defer _ccbac .Unlock ();_aacgb =subject };type pdfFontSimple struct{fontCommon ;_bgegd *_eca .PdfIndirectObject ;_gfcfb map[_dbb .CharCode ]float64 ;_daddc _dbb .TextEncoder ;_aaggg _dbb .TextEncoder ; _bggag *PdfFontDescriptor ; // Encoding is subject to limitations that are described in 9.6.6, "Character Encoding". // BaseFont is derived differently. FirstChar _eca .PdfObject ;LastChar _eca .PdfObject ;Widths _eca .PdfObject ;Encoding _eca .PdfObject ;_cedde *_ffd .RuneCharSafeMap ;}; // 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 (_bcda *_ba .Document )error ;}; // PdfActionGoToE represents a GoToE action. type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _eca .PdfObject ;NewWindow _eca .PdfObject ;T _eca .PdfObject ;}; // 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 _acefd (_gaaca []byte )bool {if len (_gaaca )< 4{return true ;};for _gecec :=range _gaaca [:4]{_dcbbe :=rune (_gecec );if !_cb .Is (_cb .ASCII_Hex_Digit ,_dcbbe )&&!_cb .IsSpace (_dcbbe ){return true ;};};return false ; }; // GetStandardApplier gets currently used StandardApplier.. func (_fcggc *PdfWriter )GetStandardApplier ()StandardApplier {return _fcggc ._bfgeb };func (_cgb *PdfReader )newPdfActionSubmitFormFromDict (_gff *_eca .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_dcgg ,_bggb :=_efe (_gff .Get ("\u0046"));if _bggb !=nil {return nil ,_bggb ; };return &PdfActionSubmitForm {F :_dcgg ,Fields :_gff .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_gff .Get ("\u0046\u006c\u0061g\u0073")},nil ;}; // WriteString outputs the object as it is to be written to file. func (_bbagga *PdfTransformParamsDocMDP )WriteString ()string {return _bbagga .ToPdfObject ().WriteString ();};func _cggae (_abbce *_bbg .ImageBase )(_egae Image ){_egae .Width =int64 (_abbce .Width );_egae .Height =int64 (_abbce .Height );_egae .BitsPerComponent =int64 (_abbce .BitsPerComponent ); _egae .ColorComponents =_abbce .ColorComponents ;_egae .Data =_abbce .Data ;_egae ._cfgaa =_abbce .Decode ;_egae ._gcgb =_abbce .Alpha ;return _egae ;}; // GetContainingPdfObject implements interface PdfModel. func (_cddba *PdfSignatureReference )GetContainingPdfObject ()_eca .PdfObject {return _cddba ._fdgfa }; // ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly // or indirectly within an indirect object container. func (_gegd *PdfColorspaceDeviceNAttributes )ToPdfObject ()_eca .PdfObject {_cagaf :=_eca .MakeDict ();if _gegd .Subtype !=nil {_cagaf .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_gegd .Subtype );};_cagaf .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_gegd .Colorants ); _cagaf .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_gegd .Process );_cagaf .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_gegd .MixingHints );if _gegd ._fedb !=nil {_gegd ._fedb .PdfObject =_cagaf ;return _gegd ._fedb ; };return _cagaf ;}; // ColorToRGB converts an Indexed color to an RGB color. func (_ccbff *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _ccbff .Base ==nil {return nil ,_da .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 _ccbff .Base .ColorToRGB (color );};func _ffdd (_aaefd *_eca .PdfObjectDictionary ,_dcba *fontCommon )(*pdfCIDFontType2 ,error ){if _dcba ._cfbe !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_ccb .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",_dcba ); return nil ,_eca .ErrRangeError ;};_ebag :=_aedfa (_dcba );_adgcd ,_dcdcg :=_eca .GetDict (_aaefd .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_dcdcg {_ccb .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",_dcba ); return nil ,ErrRequiredAttributeMissing ;};_ebag .CIDSystemInfo =_adgcd ;_ebag .DW =_aaefd .Get ("\u0044\u0057");_ebag .W =_aaefd .Get ("\u0057");_ebag .DW2 =_aaefd .Get ("\u0044\u0057\u0032");_ebag .W2 =_aaefd .Get ("\u0057\u0032");_ebag .CIDToGIDMap =_aaefd .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070"); _ebag ._bbcc =1000.0;if _cecfg ,_dgcc :=_eca .GetNumberAsFloat (_ebag .DW );_dgcc ==nil {_ebag ._bbcc =_cecfg ;};_aedb ,_caaf :=_dgfdb (_ebag .W );if _caaf !=nil {return nil ,_caaf ;};if _aedb ==nil {_aedb =map[_dbb .CharCode ]float64 {};};_ebag ._bdbc =_aedb ; return _ebag ,nil ;}; // NewPdfFontFromTTFFile loads a TTF font file and returns a PdfFont type // that can be used in text styling functions. // Uses a WinAnsiTextEncoder and loads only character codes 32-255. // NOTE: For composite fonts such as used in symbolic languages, use NewCompositePdfFontFromTTFFile. func NewPdfFontFromTTFFile (filePath string )(*PdfFont ,error ){_aaeea ,_gbbee :=_efg .Open (filePath );if _gbbee !=nil {_ccb .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",_gbbee ); return nil ,_gbbee ;};defer _aaeea .Close ();return NewPdfFontFromTTF (_aaeea );};func (_bdfac *PdfReader )loadAnnotations (_fffca _eca .PdfObject )([]*PdfAnnotation ,error ){_gbbfb ,_bccd :=_eca .GetArray (_fffca );if !_bccd {return nil ,_g .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079"); };var _eegfg []*PdfAnnotation ;for _ ,_gbbfa :=range _gbbfb .Elements (){_gbbfa =_eca .ResolveReference (_gbbfa );if _ ,_afdee :=_gbbfa .(*_eca .PdfObjectNull );_afdee {continue ;};_febcg ,_efcg :=_gbbfa .(*_eca .PdfObjectDictionary );_fcafc ,_eeaf :=_gbbfa .(*_eca .PdfIndirectObject ); if _efcg {_fcafc =&_eca .PdfIndirectObject {};_fcafc .PdfObject =_febcg ;}else {if !_eeaf {return nil ,_g .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"); };};_ccdcc ,_fcad :=_bdfac .newPdfAnnotationFromIndirectObject (_fcafc );if _fcad !=nil {return nil ,_fcad ;};switch _cdcba :=_ccdcc .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_cbdbf :=range _bdfac .AcroForm .AllFields (){if _cbdbf ._geaa ==_cdcba .Parent {_cdcba ._ebc =_cbdbf ; break ;};};};if _ccdcc !=nil {_eegfg =append (_eegfg ,_ccdcc );};};return _eegfg ,nil ;}; // PdfColorPattern represents a pattern color. type PdfColorPattern struct{Color PdfColor ;PatternName _eca .PdfObjectName ;};func _caebd (_bgece *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_bgece }}; // GetContainingPdfObject returns the container of the pattern object (indirect object). func (_fdefca *PdfPattern )GetContainingPdfObject ()_eca .PdfObject {return _fdefca ._cdfed }; // GetNumComponents returns the number of color components (3 for RGB). func (_gccba *PdfColorDeviceRGB )GetNumComponents ()int {return 3}; // ToPdfObject returns colorspace in a PDF object format [name dictionary] func (_cgfcf *PdfColorspaceLab )ToPdfObject ()_eca .PdfObject {_bgdd :=_eca .MakeArray ();_bgdd .Append (_eca .MakeName ("\u004c\u0061\u0062"));_ffbe :=_eca .MakeDict ();if _cgfcf .WhitePoint !=nil {_cbac :=_eca .MakeArray (_eca .MakeFloat (_cgfcf .WhitePoint [0]),_eca .MakeFloat (_cgfcf .WhitePoint [1]),_eca .MakeFloat (_cgfcf .WhitePoint [2])); _ffbe .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_cbac );}else {_ccb .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 _cgfcf .BlackPoint !=nil {_eggdf :=_eca .MakeArray (_eca .MakeFloat (_cgfcf .BlackPoint [0]),_eca .MakeFloat (_cgfcf .BlackPoint [1]),_eca .MakeFloat (_cgfcf .BlackPoint [2]));_ffbe .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_eggdf ); };if _cgfcf .Range !=nil {_ddeg :=_eca .MakeArray (_eca .MakeFloat (_cgfcf .Range [0]),_eca .MakeFloat (_cgfcf .Range [1]),_eca .MakeFloat (_cgfcf .Range [2]),_eca .MakeFloat (_cgfcf .Range [3]));_ffbe .Set ("\u0052\u0061\u006eg\u0065",_ddeg );};_bgdd .Append (_ffbe ); if _cgfcf ._egcf !=nil {_cgfcf ._egcf .PdfObject =_bgdd ;return _cgfcf ._egcf ;};return _bgdd ;}; // 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 (_aecbd PdfOutputIntentType )String ()string {switch _aecbd {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";};}; // SetImage updates XObject Image with new image data. func (_ccbd *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_ccbd .Filter .UpdateParams (img .GetParamsDict ());_bcgbd ,_cdgaa :=_ccbd .Filter .EncodeBytes (img .Data );if _cdgaa !=nil {return _cdgaa ;};_ccbd .Stream =_bcgbd ;_afgdb :=img .Width ; _ccbd .Width =&_afgdb ;_efagbb :=img .Height ;_ccbd .Height =&_efagbb ;_abfaf :=img .BitsPerComponent ;_ccbd .BitsPerComponent =&_abfaf ;if cs ==nil {if img .ColorComponents ==1{_ccbd .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_ccbd .ColorSpace =NewPdfColorspaceDeviceRGB (); }else if img .ColorComponents ==4{_ccbd .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _da .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_ccbd .ColorSpace =cs ;};return nil ; };func (_fcccb *LTV )generateVRIKey (_aedbb *PdfSignature )(string ,error ){_gega ,_ddfce :=_dggdf (_aedbb .Contents .Bytes ());if _ddfce !=nil {return "",_ddfce ;};return _ec .ToUpper (_c .EncodeToString (_gega )),nil ;}; // ToPdfObject returns the PDF representation of the page resources. func (_gbdbgc *PdfPageResources )ToPdfObject ()_eca .PdfObject {_acea :=_gbdbgc ._gcbce ;_acea .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_gbdbgc .ExtGState );if _gbdbgc ._faccea !=nil {_gbdbgc .ColorSpace =_gbdbgc ._faccea .ToPdfObject (); };_acea .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_gbdbgc .ColorSpace );_acea .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_gbdbgc .Pattern );_acea .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_gbdbgc .Shading ); _acea .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_gbdbgc .XObject );_acea .SetIfNotNil ("\u0046\u006f\u006e\u0074",_gbdbgc .Font );_acea .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_gbdbgc .ProcSet );_acea .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_gbdbgc .Properties ); return _acea ;}; // GetContainingPdfObject returns the XObject Form's containing object (indirect object). func (_cdbc *XObjectForm )GetContainingPdfObject ()_eca .PdfObject {return _cdbc ._afddc };func _gfafd (_beccf _eca .PdfObject ){_ccb .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_beccf ,_beccf .String ());if _aecfbc ,_aadd :=_beccf .(*_eca .PdfObjectStream ); _aadd {_dbdf ,_dbda :=_eca .DecodeStream (_aecfbc );if _dbda !=nil {_ccb .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_dbda );return ;};_ccb .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_dbdf );}else if _fdebf ,_cdefb :=_beccf .(*_eca .PdfIndirectObject ); _cdefb {_ccb .Log .Debug ("\u0025\u0054\u0020%\u0076",_fdebf .PdfObject ,_fdebf .PdfObject );_ccb .Log .Debug ("\u0025\u0073",_fdebf .PdfObject .String ());};}; // Write writes the Appender output to io.Writer. // It can only be called once and further invocations will result in an error. func (_fae *PdfAppender )Write (w _beg .Writer )error {if _fae ._beae {return _da .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"); };_eged :=NewPdfWriter ();_befc ,_eega :=_eca .GetDict (_eged ._bceddb );if !_eega {return _da .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"); };_ebde ,_eega :=_befc .Get ("\u004b\u0069\u0064\u0073").(*_eca .PdfObjectArray );if !_eega {return _da .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"); };_eccf ,_eega :=_befc .Get ("\u0043\u006f\u0075n\u0074").(*_eca .PdfObjectInteger );if !_eega {return _da .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"); };_efdda :=_fae ._badg ._ecfeba ;_dbde :=_efdda .GetTrailer ();if _dbde ==nil {return _da .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_acag ,_eega :=_eca .GetIndirect (_dbde .Get ("\u0052\u006f\u006f\u0074")); if !_eega {return _da .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_bbbg ,_eega :=_eca .GetDict (_acag );if !_eega {_ccb .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",_acag ,*_dbde ); return _da .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_gdd :=range _bbbg .Keys (){if _eged ._eeggd .Get (_gdd )==nil {_adcgb :=_bbbg .Get (_gdd );_eged ._eeggd .Set (_gdd ,_adcgb );};};if _fae ._edcc !=nil {if _fae ._edcc ._eecff {if _aad :=_eca .TraceToDirectObject (_fae ._edcc .ToPdfObject ()); !_eca .IsNullObject (_aad ){_eged ._eeggd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_aad );_fae .updateObjectsDeep (_aad ,nil );}else {_ccb .Log .Debug ("\u0055\u006e\u0061\u0062\u006c\u0065 \u0074\u006f\u0020t\u0072\u0061\u0063e\u0020\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u0020o\u0062\u006a\u0065\u0063\u0074, \u0066\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0061\u0064\u0064\u0020\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u002e"); };}else {_eged ._eeggd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_fae ._edcc .ToPdfObject ());_fae .updateObjectsDeep (_fae ._edcc .ToPdfObject (),nil );};};if _fae ._adff !=nil {_fae .updateObjectsDeep (_fae ._adff .ToPdfObject (),nil ); _eged ._eeggd .Set ("\u0044\u0053\u0053",_fae ._adff .GetContainingPdfObject ());};if _fae ._faca !=nil {_eged ._eeggd .Set ("\u0050\u0065\u0072m\u0073",_fae ._faca .ToPdfObject ());_fae .updateObjectsDeep (_fae ._faca .ToPdfObject (),nil );};if _eged ._dgab .Major < 2{_eged .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5); _eged .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _eebd ,_fcaf :=_eca .GetDict (_dbde .Get ("\u0049\u006e\u0066\u006f"));_fcaf {if _bgccb ,_cbcc :=_eca .GetDict (_eged ._fbegc );_cbcc {for _ ,_agc :=range _eebd .Keys (){if _bgccb .Get (_agc )==nil {_bgccb .Set (_agc ,_eebd .Get (_agc )); };};};};if _fae ._gece !=nil {_eged ._fbegc =_eca .MakeIndirectObject (_fae ._gece .ToPdfObject ());};_fae .addNewObject (_eged ._fbegc );_fae .addNewObject (_eged ._bggab );_cbfg :=false ;if len (_fae ._badg .PageList )!=len (_fae ._fecc ){_cbfg =true ; }else {for _gdfg :=range _fae ._badg .PageList {switch {case _fae ._fecc [_gdfg ]==_fae ._badg .PageList [_gdfg ]:case _fae ._fecc [_gdfg ]==_fae .Reader .PageList [_gdfg ]:default:_cbfg =true ;};if _cbfg {break ;};};};if _cbfg {_fae .updateObjectsDeep (_eged ._bceddb ,nil ); }else {_fae ._adaa [_eged ._bceddb ]=struct{}{};};_eged ._bceddb .ObjectNumber =_fae .Reader ._ebddg .ObjectNumber ;_fae ._ccbc [_eged ._bceddb ]=_fae .Reader ._ebddg .ObjectNumber ;_agad :=[]_eca .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 _ ,_cfc :=range _fae ._fecc {_decdg :=_cfc .ToPdfObject ();*_eccf =*_eccf +1;if _aacac ,_cdgf :=_decdg .(*_eca .PdfIndirectObject );_cdgf &&_aacac .GetParser ()==_fae ._badg ._ecfeba {_ebde .Append (&_aacac .PdfObjectReference );continue ;};if _ceba ,_edec :=_eca .GetDict (_decdg ); _edec {_gdgd ,_gdff :=_ceba .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_eca .PdfIndirectObject );for _gdff {_ccb .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gdgd );_fbbef ,_dfca :=_gdgd .PdfObject .(*_eca .PdfObjectDictionary ); if !_dfca {return _da .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_fgcg :=range _agad {_ccb .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_fgcg );if _ccg :=_ceba .Get (_fgcg ); _ccg !=nil {_ccb .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");if len (_cfc ._gbaec .Keys ())> 0&&!_cbfg {_gbcd :=_cfc ._gbaec ;if _efef :=_gbcd .Get (_fgcg );_efef !=nil {if _ccg !=_efef {_ccb .Log .Trace ("\u0049\u006e\u0068\u0065\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u006f\u0072\u0069\u0067i\u006ea\u006c\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073\u002c\u0020\u0025\u0054",_fgcg ,_efef ); _ceba .Set (_fgcg ,_efef );};};};continue ;};if _bffe :=_fbbef .Get (_fgcg );_bffe !=nil {_ccb .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_fgcg );_ceba .Set (_fgcg ,_bffe );}; };_gdgd ,_gdff =_fbbef .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_eca .PdfIndirectObject );_ccb .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fbbef .Get ("\u0050\u0061\u0072\u0065\u006e\u0074")); };if _cbfg {_ceba .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_eged ._bceddb );};};_fae .updateObjectsDeep (_decdg ,nil );_ebde .Append (_decdg );};if _ ,_eac :=_fae ._ebca .Seek (0,_beg .SeekStart );_eac !=nil {return _eac ;};_fdbb :=make (map[SignatureHandler ]_beg .Writer ); _agdc :=_eca .MakeArray ();for _ ,_dcag :=range _fae ._afce {if _cbdbd ,_adca :=_eca .GetIndirect (_dcag );_adca {if _gdca ,_becf :=_cbdbd .PdfObject .(*pdfSignDictionary );_becf {_acce :=*_gdca ._ceaad ;var _gbeg error ;_fdbb [_acce ],_gbeg =_acce .NewDigest (_gdca ._eacaae ); if _gbeg !=nil {return _gbeg ;};_agdc .Append (_eca .MakeInteger (0xfffff),_eca .MakeInteger (0xfffff));};};};if _agdc .Len ()> 0{_agdc .Append (_eca .MakeInteger (0xfffff),_eca .MakeInteger (0xfffff));};for _ ,_dgac :=range _fae ._afce {if _dgee ,_daef :=_eca .GetIndirect (_dgac ); _daef {if _ceeb ,_badd :=_dgee .PdfObject .(*pdfSignDictionary );_badd {_ceeb .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_agdc );};};};_eefg :=len (_fdbb )> 0;var _dgg _beg .Reader =_fae ._ebca ;if _eefg {_acga :=make ([]_beg .Writer ,0,len (_fdbb )); for _ ,_acbcd :=range _fdbb {_acga =append (_acga ,_acbcd );};_dgg =_beg .TeeReader (_fae ._ebca ,_beg .MultiWriter (_acga ...));};_decbf ,_gdaf :=_beg .Copy (w ,_dgg );if _gdaf !=nil {return _gdaf ;};if len (_fae ._afce )==0{return nil ;};_eged ._bggbc =_decbf ; _eged .ObjNumOffset =_fae ._abd ;_eged ._ccdgb =true ;_eged ._acdbf =_fae ._dcbbb ;_eged ._dcggeb =_fae ._bef ;_eged ._ffeaf =_fae ._cbbd ;_eged ._dgab =_fae ._badg .PdfVersion ();_eged ._abfag =_fae ._ccbc ;_eged ._badga =_fae ._gegf .GetCrypter ();_eged ._fdgaf =_fae ._gegf .GetEncryptObj (); _efeb :=_fae ._gegf .GetXrefType ();if _efeb !=nil {_eeaaf :=*_efeb ==_eca .XrefTypeObjectStream ;_eged ._edaga =&_eeaaf ;};_eged ._ceace =map[_eca .PdfObject ]struct{}{};_eged ._daecf =[]_eca .PdfObject {};for _ ,_dgbc :=range _fae ._afce {if _ ,_gafdc :=_fae ._adaa [_dgbc ]; _gafdc {continue ;};_eged .addObject (_dgbc );};_gbde :=w ;if _eefg {_gbde =_dd .NewBuffer (nil );};if _fae ._begc !=""&&_eged ._badga ==nil {_eged .Encrypt ([]byte (_fae ._begc ),[]byte (_fae ._begc ),_fae ._ffgb );};if _cagf :=_dbde .Get ("\u0049\u0044"); _cagf !=nil {if _edbc ,_bgga :=_eca .GetArray (_cagf );_bgga {_eged ._dadf =_edbc ;};};if _cdee :=_eged .Write (_gbde );_cdee !=nil {return _cdee ;};if _eefg {_bcafc :=_gbde .(*_dd .Buffer ).Bytes ();_agac :=_eca .MakeArray ();var _faf []*pdfSignDictionary ; var _eeee int64 ;for _ ,_dfdd :=range _eged ._daecf {if _ace ,_baeb :=_eca .GetIndirect (_dfdd );_baeb {if _eaae ,_cdcd :=_ace .PdfObject .(*pdfSignDictionary );_cdcd {_faf =append (_faf ,_eaae );_dgefb :=_eaae ._fegcb +int64 (_eaae ._cbdga );_agac .Append (_eca .MakeInteger (_eeee ),_eca .MakeInteger (_dgefb -_eeee )); _eeee =_eaae ._fegcb +int64 (_eaae ._aaead );};};};_agac .Append (_eca .MakeInteger (_eeee ),_eca .MakeInteger (_decbf +int64 (len (_bcafc ))-_eeee ));_gadc :=[]byte (_agac .WriteString ());for _ ,_egab :=range _faf {_gaaff :=int (_egab ._fegcb -_decbf ); for _gdgf :=_egab ._aagfc ;_gdgf < _egab ._fgbbb ;_gdgf ++{_bcafc [_gaaff +_gdgf ]=' ';};_fdde :=_bcafc [_gaaff +_egab ._aagfc :_gaaff +_egab ._fgbbb ];copy (_fdde ,_gadc );};var _ced int ;for _ ,_ddga :=range _faf {_cfeb :=int (_ddga ._fegcb -_decbf ); _cege :=_bcafc [_ced :_cfeb +_ddga ._cbdga ];_bfecb :=*_ddga ._ceaad ;_fdbb [_bfecb ].Write (_cege );_ced =_cfeb +_ddga ._aaead ;};for _ ,_gbca :=range _faf {_gbbe :=_bcafc [_ced :];_abga :=*_gbca ._ceaad ;_fdbb [_abga ].Write (_gbbe );};for _ ,_acad :=range _faf {_ecgb :=int (_acad ._fegcb -_decbf ); _feggd :=*_acad ._ceaad ;_dda :=_fdbb [_feggd ];if _ecea :=_feggd .Sign (_acad ._eacaae ,_dda );_ecea !=nil {return _ecea ;};_acad ._eacaae .ByteRange =_agac ;_ggbcd :=[]byte (_acad ._eacaae .Contents .WriteString ());for _bgb :=_acad ._aagfc ;_bgb < _acad ._fgbbb ; _bgb ++{_bcafc [_ecgb +_bgb ]=' ';};for _ddgba :=_acad ._cbdga ;_ddgba < _acad ._aaead ;_ddgba ++{_bcafc [_ecgb +_ddgba ]=' ';};_fgdc :=_bcafc [_ecgb +_acad ._aagfc :_ecgb +_acad ._fgbbb ];copy (_fgdc ,_gadc );_fgdc =_bcafc [_ecgb +_acad ._cbdga :_ecgb +_acad ._aaead ]; copy (_fgdc ,_ggbcd );};_fdge :=_dd .NewBuffer (_bcafc );_ ,_gdaf =_beg .Copy (w ,_fdge );if _gdaf !=nil {return _gdaf ;};};_fae ._beae =true ;return nil ;}; // DecodeArray returns the range of color component values in DeviceCMYK colorspace. func (_gdcg *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};}; // NewPdfField returns an initialized PdfField. func NewPdfField ()*PdfField {return &PdfField {_geaa :_eca .MakeIndirectObject (_eca .MakeDict ())}}; // Val returns the value of the color. func (_ggdd *PdfColorCalGray )Val ()float64 {return float64 (*_ggdd )}; // 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 []*_eca .PdfObjectStream ;OCSP []*_eca .PdfObjectStream ;CRL []*_eca .PdfObjectStream ;TU *_eca .PdfObjectString ;TS *_eca .PdfObjectString ;};type pdfCIDFontType2 struct{fontCommon ;_dcgd *_eca .PdfIndirectObject ;_gafg _dbb .TextEncoder ; // Table 117 – Entries in a CIDFont dictionary (page 269) // Dictionary that defines the character collection of the CIDFont (required). // See Table 116. CIDSystemInfo *_eca .PdfObjectDictionary ; // Glyph metrics fields (optional). DW _eca .PdfObject ;W _eca .PdfObject ;DW2 _eca .PdfObject ;W2 _eca .PdfObject ; // CIDs to glyph indices mapping (optional). CIDToGIDMap _eca .PdfObject ;_bdbc map[_dbb .CharCode ]float64 ;_bbcc float64 ;_dgdag map[rune ]int ;};func (_cafe *PdfPattern )getDict ()*_eca .PdfObjectDictionary {if _bggef ,_gcdfg :=_cafe ._cdfed .(*_eca .PdfIndirectObject );_gcdfg {_agee ,_eaacfa :=_bggef .PdfObject .(*_eca .PdfObjectDictionary ); if !_eaacfa {return nil ;};return _agee ;}else if _bbcce ,_gbag :=_cafe ._cdfed .(*_eca .PdfObjectStream );_gbag {return _bbcce .PdfObjectDictionary ;}else {_ccb .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",_cafe ._cdfed ); return nil ;};}; // ToPdfObject returns the PDF representation of the colorspace. func (_bda *PdfColorspaceDeviceRGB )ToPdfObject ()_eca .PdfObject {return _eca .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");}; // 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 (_gacfa *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_afac :=_gacfa .fill (provider ,appGen );if _afac !=nil {return _afac ;};if _ ,_gdddb :=provider .(FieldImageProvider );_gdddb {_afac =_gacfa .fillImageWithAppearance (provider .(FieldImageProvider ),appGen ); };return _afac ;};func (_adffc *PdfAppender )addNewObject (_edfb _eca .PdfObject ){if _ ,_fgebg :=_adffc ._eeb [_edfb ];!_fgebg {_adffc ._afce =append (_adffc ._afce ,_edfb );_adffc ._eeb [_edfb ]=struct{}{};};}; // NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options. func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_eggd :=&PdfAppender {_ebca :reader ._eacag ,Reader :reader ,_gegf :reader ._ecfeba ,_bgefc :reader ._fgbbd };_egcg ,_bfef :=_eggd ._ebca .Seek (0,_beg .SeekEnd ); if _bfef !=nil {return nil ,_bfef ;};_eggd ._cbbd =_egcg ;if _ ,_bfef =_eggd ._ebca .Seek (0,_beg .SeekStart );_bfef !=nil {return nil ,_bfef ;};_eggd ._badg ,_bfef =NewPdfReaderWithOpts (_eggd ._ebca ,opts );if _bfef !=nil {return nil ,_bfef ;};for _ ,_eadg :=range _eggd .Reader .GetObjectNums (){if _eggd ._abd < _eadg {_eggd ._abd =_eadg ; };};_eggd ._dcbbb =_eggd ._gegf .GetXrefTable ();_eggd ._bef =_eggd ._gegf .GetXrefOffset ();_eggd ._fecc =append (_eggd ._fecc ,_eggd ._badg .PageList ...);_eggd ._eeb =make (map[_eca .PdfObject ]struct{});_eggd ._ccbc =make (map[_eca .PdfObject ]int64 ); _eggd ._adaa =make (map[_eca .PdfObject ]struct{});_eggd ._edcc =_eggd ._badg .AcroForm ;_eggd ._adff =_eggd ._badg .DSS ;if opts !=nil {_eggd ._begc =opts .Password ;};if encryptOptions !=nil {_eggd ._ffgb =encryptOptions ;};return _eggd ,nil ;};func _gdde (_ggee _eca .PdfObject )(*PdfColorspaceCalRGB ,error ){_ebgc :=NewPdfColorspaceCalRGB (); if _fgca ,_gcfe :=_ggee .(*_eca .PdfIndirectObject );_gcfe {_ebgc ._eceae =_fgca ;};_ggee =_eca .TraceToDirectObject (_ggee );_dbbb ,_eccc :=_ggee .(*_eca .PdfObjectArray );if !_eccc {return nil ,_g .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };if _dbbb .Len ()!=2{return nil ,_g .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");};_ggee =_eca .TraceToDirectObject (_dbbb .Get (0));_abcge ,_eccc :=_ggee .(*_eca .PdfObjectName ); if !_eccc {return nil ,_g .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 *_abcge !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_g .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065"); };_ggee =_eca .TraceToDirectObject (_dbbb .Get (1));_cbfd ,_eccc :=_ggee .(*_eca .PdfObjectDictionary );if !_eccc {return nil ,_g .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"); };_ggee =_cbfd .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_ggee =_eca .TraceToDirectObject (_ggee );_fdgg ,_eccc :=_ggee .(*_eca .PdfObjectArray );if !_eccc {return nil ,_g .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 _fdgg .Len ()!=3{return nil ,_g .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");};_eggc ,_adeaf :=_fdgg .GetAsFloat64Slice (); if _adeaf !=nil {return nil ,_adeaf ;};_ebgc .WhitePoint =_eggc ;_ggee =_cbfd .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _ggee !=nil {_ggee =_eca .TraceToDirectObject (_ggee );_ccgc ,_cfbd :=_ggee .(*_eca .PdfObjectArray ); if !_cfbd {return nil ,_g .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 _ccgc .Len ()!=3{return nil ,_g .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"); };_ffgba ,_fgccd :=_ccgc .GetAsFloat64Slice ();if _fgccd !=nil {return nil ,_fgccd ;};_ebgc .BlackPoint =_ffgba ;};_ggee =_cbfd .Get ("\u0047\u0061\u006dm\u0061");if _ggee !=nil {_ggee =_eca .TraceToDirectObject (_ggee );_edfbe ,_edgd :=_ggee .(*_eca .PdfObjectArray ); if !_edgd {return nil ,_g .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _edfbe .Len ()!=3{return nil ,_g .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079"); };_gdcb ,_ddgbae :=_edfbe .GetAsFloat64Slice ();if _ddgbae !=nil {return nil ,_ddgbae ;};_ebgc .Gamma =_gdcb ;};_ggee =_cbfd .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _ggee !=nil {_ggee =_eca .TraceToDirectObject (_ggee );_eecb ,_baca :=_ggee .(*_eca .PdfObjectArray ); if !_baca {return nil ,_g .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _eecb .Len ()!=9{_ccb .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_eecb .String ()); return nil ,_g .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");};_bbeb ,_fcgc :=_eecb .GetAsFloat64Slice ();if _fcgc !=nil {return nil ,_fcgc ; };_ebgc .Matrix =_bbeb ;};return _ebgc ,nil ;}; // GetColorspaceByName returns the colorspace with the specified name from the page resources. func (_beaag *PdfPageResources )GetColorspaceByName (keyName _eca .PdfObjectName )(PdfColorspace ,bool ){_gcfc ,_adaf :=_beaag .GetColorspaces ();if _adaf !=nil {_ccb .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",_adaf ); return nil ,false ;};if _gcfc ==nil {return nil ,false ;};_faeeg ,_ecaa :=_gcfc .Colorspaces [string (keyName )];if !_ecaa {return nil ,false ;};return _faeeg ,true ;};func (_cbgeg *PdfReader )flattenFieldsWithOpts (_ffda bool ,_fage FieldAppearanceGenerator ,_dba *FieldFlattenOpts )error {if _dba ==nil {_dba =&FieldFlattenOpts {}; };var _fgbg bool ;_agfg :=map[*PdfAnnotation ]bool {};{var _aecge []*PdfField ;_gbabb :=_cbgeg .AcroForm ;if _gbabb !=nil {if _dba .FilterFunc !=nil {_aecge =_gbabb .filteredFields (_dba .FilterFunc ,true );_fgbg =_gbabb .Fields !=nil &&len (*_gbabb .Fields )> 0; }else {_aecge =_gbabb .AllFields ();};};for _ ,_agedc :=range _aecge {if len (_agedc .Annotations )< 1{_ccb .Log .Debug ("\u004e\u006f\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0066\u006f\u0075\u006ed\u0020\u0066\u006f\u0072\u003a\u0020\u0025v\u002c\u0020\u006c\u006f\u006f\u006b\u0020\u0069\u006e\u0074\u006f \u004b\u0069\u0064\u0073\u0020\u004f\u0062\u006a\u0065\u0063\u0074",_agedc .PartialName ()); for _gabe ,_bebff :=range _agedc .Kids {for _ ,_adgc :=range _bebff .Annotations {_agfg [_adgc .PdfAnnotation ]=_agedc .V !=nil ;if _bebff .V ==nil {_bebff .V =_agedc .V ;};if _bebff .T ==nil {_bebff .T =_eca .MakeString (_g .Sprintf ("\u0025\u0073\u0023%\u0064",_agedc .PartialName (),_gabe )); };if _fage !=nil {_cffbd ,_gdggg :=_fage .GenerateAppearanceDict (_gbabb ,_bebff ,_adgc );if _gdggg !=nil {return _gdggg ;};_adgc .AP =_cffbd ;};};};};for _ ,_afdd :=range _agedc .Annotations {_agfg [_afdd .PdfAnnotation ]=_agedc .V !=nil ;if _fage !=nil {_cfee ,_fgcbd :=_fage .GenerateAppearanceDict (_gbabb ,_agedc ,_afdd ); if _fgcbd !=nil {return _fgcbd ;};_afdd .AP =_cfee ;};};};};if _ffda {for _ ,_fdec :=range _cbgeg .PageList {_ddegg ,_afbfc :=_fdec .GetAnnotations ();if _afbfc !=nil {return _afbfc ;};for _ ,_dacb :=range _ddegg {_agfg [_dacb ]=true ;};};};for _ ,_bggd :=range _cbgeg .PageList {var _gcfb []*PdfAnnotation ; if _fage !=nil {if _bbedc :=_fage .WrapContentStream (_bggd );_bbedc !=nil {return _bbedc ;};};_bfcfg ,_acbgf :=_bggd .GetAnnotations ();if _acbgf !=nil {return _acbgf ;};for _ ,_abgg :=range _bfcfg {_feeb ,_ebfg :=_agfg [_abgg ];if !_ebfg &&_dba .AnnotFilterFunc !=nil {if _ ,_ecbfad :=_abgg .GetContext ().(*PdfAnnotationWidget ); !_ecbfad {_ebfg =_dba .AnnotFilterFunc (_abgg );};};if !_ebfg {_gcfb =append (_gcfb ,_abgg );continue ;};switch _abgg .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ; };_cadac ,_cbacg ,_ffged :=_eacc (_abgg );if _ffged !=nil {if !_feeb {_ccb .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 ;};_ccb .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",_ffged ); continue ;};if _cadac ==nil {continue ;};_abcfb :=_bggd .Resources .GenerateXObjectName ();_bggd .Resources .SetXObjectFormByName (_abcfb ,_cadac );_bbfd ,_bbebd ,_ffged :=_deaab (_cadac );if _ffged !=nil {_ccb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0061\u0070p\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u004d\u0061\u0074\u0072\u0069\u0078\u002c\u0020s\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u0078\u0066\u006f\u0072\u006d\u0020\u0062\u0062\u006f\u0078\u0020\u0061\u0064\u006a\u0075\u0073t\u006d\u0065\u006e\u0074\u003a \u0025\u0076",_ffged ); }else {_fgff :=_gg .IdentityMatrix ();_fgff =_fgff .Translate (-_bbfd .Llx ,-_bbfd .Lly );if _bbebd {_aaee :=0.0;if _bbfd .Width ()> 0{_aaee =_cbacg .Width ()/_bbfd .Width ();};_aefb :=0.0;if _bbfd .Height ()> 0{_aefb =_cbacg .Height ()/_bbfd .Height (); };_fgff =_fgff .Scale (_aaee ,_aefb );};_cbacg .Transform (_fgff );};_bced :=_de .Min (_cbacg .Llx ,_cbacg .Urx );_bfde :=_de .Min (_cbacg .Lly ,_cbacg .Ury );var _fcgbc []string ;_fcgbc =append (_fcgbc ,"\u0071");_fcgbc =append (_fcgbc ,_g .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,_bced ,_bfde )); _fcgbc =append (_fcgbc ,_g .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_abcfb .String ()));_fcgbc =append (_fcgbc ,"\u0051");_dbbg :=_ec .Join (_fcgbc ,"\u000a");_ffged =_bggd .AppendContentStream (_dbbg );if _ffged !=nil {return _ffged ;};if _cadac .Resources !=nil {_bgba ,_dcce :=_eca .GetDict (_cadac .Resources .Font ); if _dcce {for _ ,_acfb :=range _bgba .Keys (){if !_bggd .Resources .HasFontByName (_acfb ){_bggd .Resources .SetFontByName (_acfb ,_bgba .Get (_acfb ));};};};};};if len (_gcfb )> 0{_bggd ._gabcd =_gcfb ;}else {_bggd ._gabcd =[]*PdfAnnotation {};};};if !_fgbg {_cbgeg .AcroForm =nil ; };return nil ;}; // PdfAnnotation represents an annotation in PDF (section 12.5 p. 389). type PdfAnnotation struct{_abc PdfModel ;Rect _eca .PdfObject ;Contents _eca .PdfObject ;P _eca .PdfObject ;NM _eca .PdfObject ;M _eca .PdfObject ;F _eca .PdfObject ;AP _eca .PdfObject ;AS _eca .PdfObject ;Border _eca .PdfObject ;C _eca .PdfObject ;StructParent _eca .PdfObject ; OC _eca .PdfObject ;_cdc *_eca .PdfIndirectObject ;}; // Set sets the colorspace corresponding to key. Add to Names if not set. func (_ccddc *PdfPageResourcesColorspaces )Set (key _eca .PdfObjectName ,val PdfColorspace ){if _ ,_gbcda :=_ccddc .Colorspaces [string (key )];!_gbcda {_ccddc .Names =append (_ccddc .Names ,string (key ));};_ccddc .Colorspaces [string (key )]=val ;}; // NewPdfColorspaceSpecialIndexed returns a new Indexed color. func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};func (_bbfbb *PdfWriter )writeOutlines ()error {if _bbfbb ._ccgeg ==nil {return nil ;};_ccb .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_bbfbb ._ccgeg ); _ccag :=_bbfbb ._ccgeg .ToPdfObject ();_ccb .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_ccag ,_ccag ,_ccag );_bbfbb ._eeggd .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_ccag ); _begba :=_bbfbb .addObjects (_ccag );if _begba !=nil {return _begba ;};return nil ;};var _ pdfFont =(*pdfFontSimple )(nil );func (_fcdb *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _fcdb ._ecfeba .GetCrypter ()!=nil &&!_fcdb ._ecfeba .IsAuthenticated (){return nil ,_g .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"); };_dbeece :=_fcdb ._affc ;_baggg :=_dbeece .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _baggg ==nil {return nil ,nil ;};_bbbfd ,_gfeadc :=_eca .GetIndirect (_baggg );_baggg =_eca .TraceToDirectObject (_baggg );if _eca .IsNullObject (_baggg ){_ccb .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 ;};_dabg ,_fceac :=_eca .GetDict (_baggg );if !_fceac {_ccb .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_baggg );_ccb .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073"); return nil ,_g .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_baggg );};_ccb .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073"); _ccb .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 !_fcdb ._gggcg {_acba :=_fcdb .traverseObjectData (_dabg ); if _acba !=nil {_ccb .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",_acba ); return nil ,_acba ;};};_gfbca ,_fdfdd :=_fcdb .newPdfAcroFormFromDict (_bbbfd ,_dabg );if _fdfdd !=nil {return nil ,_fdfdd ;};_gfbca ._eecff =!_gfeadc ;return _gfbca ,nil ;};func (_aef *PdfAnnotationMarkup )appendToPdfDictionary (_fda *_eca .PdfObjectDictionary ){_fda .SetIfNotNil ("\u0054",_aef .T ); if _aef .Popup !=nil {_fda .Set ("\u0050\u006f\u0070u\u0070",_aef .Popup .ToPdfObject ());};_fda .SetIfNotNil ("\u0043\u0041",_aef .CA );_fda .SetIfNotNil ("\u0052\u0043",_aef .RC );_fda .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_aef .CreationDate ); _fda .SetIfNotNil ("\u0049\u0052\u0054",_aef .IRT );_fda .SetIfNotNil ("\u0053\u0075\u0062\u006a",_aef .Subj );_fda .SetIfNotNil ("\u0052\u0054",_aef .RT );_fda .SetIfNotNil ("\u0049\u0054",_aef .IT );_fda .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_aef .ExData ); }; // PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394). type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_egdd _eca .PdfObject ;}; // GetXObjectByName gets XObject by name. func (_cbdbad *PdfPage )GetXObjectByName (name _eca .PdfObjectName )(_eca .PdfObject ,bool ){_afadc ,_gbeb :=_cbdbad .Resources .XObject .(*_eca .PdfObjectDictionary );if !_gbeb {return nil ,false ;};if _cbeef :=_afadc .Get (name );_cbeef !=nil {return _cbeef ,true ; };return nil ,false ;};func (_egcfd *Image )samplesAddPadding (_bfcag []uint32 )[]uint32 {_daegbf :=_bbg .BytesPerLine (int (_egcfd .Width ),int (_egcfd .BitsPerComponent ),_egcfd .ColorComponents )*(8/int (_egcfd .BitsPerComponent ));_gbgf :=_daegbf *int (_egcfd .Height ); if len (_bfcag )==_gbgf {return _bfcag ;};_bcfdf :=make ([]uint32 ,_gbgf );_fecad :=int (_egcfd .Width )*_egcfd .ColorComponents ;for _fdab :=0;_fdab < int (_egcfd .Height );_fdab ++{_gafdcf :=_fdab *int (_egcfd .Width );_gggb :=_fdab *_daegbf ;for _fbece :=0; _fbece < _fecad ;_fbece ++{_bcfdf [_gggb +_fbece ]=_bfcag [_gafdcf +_fbece ];};};return _bcfdf ;}; // GetNumComponents returns the number of color components (3 for CalRGB). func (_cbdba *PdfColorCalRGB )GetNumComponents ()int {return 3}; // GetContentStreams returns the content stream as an array of strings. func (_bdfbc *PdfPage )GetContentStreams ()([]string ,error ){_eedd :=_bdfbc .GetContentStreamObjs ();var _agde []string ;for _ ,_acfgc :=range _eedd {_febfb ,_aacedd :=_bbeba (_acfgc );if _aacedd !=nil {return nil ,_aacedd ;};_agde =append (_agde ,_febfb ); };return _agde ,nil ;}; // 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 _beg .ReadSeeker )(*CompliancePdfReader ,error ){const _edab ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_fbgff ,_acdbb :=_cfbdee (rs ,&ReaderOpts {ComplianceMode :true },false ,_edab ); if _acdbb !=nil {return nil ,_acdbb ;};return &CompliancePdfReader {PdfReader :_fbgff },nil ;}; // ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should // be numeric. func (_bddad *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=_bddad .GetNumComponents (){return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_edfd ,_gfbc :=_eca .GetNumbersAsFloat (objects ); if _gfbc !=nil {return nil ,_gfbc ;};return _bddad .ColorFromFloats (_edfd );}; // AddPages adds pages to be appended to the end of the source PDF. func (_adcbc *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_bgcg :=range pages {_bgcg =_bgcg .Duplicate ();_dbed (_bgcg );_adcbc ._fecc =append (_adcbc ._fecc ,_bgcg );};}; // NewPdfColorPatternType3 returns an empty color shading pattern type 3 (Radial). func NewPdfColorPatternType3 ()*PdfColorPatternType3 {_cdde :=&PdfColorPatternType3 {};return _cdde };func (_bcabd *PdfReader )newPdfAnnotationRichMediaFromDict (_ddfe *_eca .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_cafd :=&PdfAnnotationRichMedia {}; _cafd .RichMediaSettings =_ddfe .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_cafd .RichMediaContent =_ddfe .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074"); return _cafd ,nil ;}; // String returns a string that describes `font`. func (_fecb *PdfFont )String ()string {_eced :="";if _fecb ._dbgb .Encoder ()!=nil {_eced =_fecb ._dbgb .Encoder ().String ();};return _g .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_fecb ._dbgb ,_fecb .baseFields ().coreString (),_eced ); };func (_ddbde fontCommon )fontFlags ()int {if _ddbde ._ccec ==nil {return 0;};return _ddbde ._ccec ._feaf ;};func (_ceac *PdfReader )newPdfFieldSignatureFromDict (_ccdfb *_eca .PdfObjectDictionary )(*PdfFieldSignature ,error ){_fcbb :=&PdfFieldSignature {}; _egac ,_bgec :=_eca .GetIndirect (_ccdfb .Get ("\u0056"));if _bgec {var _caeg error ;_fcbb .V ,_caeg =_ceac .newPdfSignatureFromIndirect (_egac );if _caeg !=nil {return nil ,_caeg ;};};_fcbb .Lock ,_ =_eca .GetIndirect (_ccdfb .Get ("\u004c\u006f\u0063\u006b")); _fcbb .SV ,_ =_eca .GetIndirect (_ccdfb .Get ("\u0053\u0056"));return _fcbb ,nil ;}; // ToJBIG2Image converts current image to the core.JBIG2Image. func (_bceeb *Image )ToJBIG2Image ()(*_eca .JBIG2Image ,error ){_cgfd ,_aecc :=_bceeb .ToGoImage ();if _aecc !=nil {return nil ,_aecc ;};return _eca .GoImageToJBIG2 (_cgfd ,_eca .JB2ImageAutoThreshold );}; // IsPush returns true if the button field represents a push button, false otherwise. func (_bcbe *PdfFieldButton )IsPush ()bool {return _bcbe .GetType ()==ButtonTypePush }; // ToPdfObject returns an indirect object containing the signature field dictionary. func (_gddg *PdfFieldSignature )ToPdfObject ()_eca .PdfObject {if _gddg .PdfAnnotationWidget !=nil {_gddg .PdfAnnotationWidget .ToPdfObject ();};_gddg .PdfField .ToPdfObject ();_fdfb :=_gddg ._geaa ;_fcce :=_fdfb .PdfObject .(*_eca .PdfObjectDictionary ); _fcce .SetIfNotNil ("\u0046\u0054",_eca .MakeName ("\u0053\u0069\u0067"));_fcce .SetIfNotNil ("\u004c\u006f\u0063\u006b",_gddg .Lock );_fcce .SetIfNotNil ("\u0053\u0056",_gddg .SV );if _gddg .V !=nil {_fcce .SetIfNotNil ("\u0056",_gddg .V .ToPdfObject ()); };return _fdfb ;}; // GetContainingPdfObject implements interface PdfModel. func (_gfbfe *PdfSignature )GetContainingPdfObject ()_eca .PdfObject {return _gfbfe ._bfebg }; // ToPdfObject converts the PdfFont object to its PDF representation. func (_efgd *PdfFont )ToPdfObject ()_eca .PdfObject {if _efgd ._dbgb ==nil {_ccb .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 _eca .MakeNull (); };return _efgd ._dbgb .ToPdfObject ();}; // GetStructRoot gets the StructTreeRoot object func (_abeb *PdfPage )GetStructTreeRoot ()(*_eca .PdfObject ,bool ){_ffffb ,_fcgfd :=_abeb ._cdgeb .GetCatalogStructTreeRoot ();return &_ffffb ,_fcgfd ;};func (_bafb *PdfReader )loadAction (_bcdb _eca .PdfObject )(*PdfAction ,error ){if _aecd ,_ddgb :=_eca .GetIndirect (_bcdb ); _ddgb {_bbdc ,_dcge :=_bafb .newPdfActionFromIndirectObject (_aecd );if _dcge !=nil {return nil ,_dcge ;};return _bbdc ,nil ;}else if !_eca .IsNullObject (_bcdb ){return nil ,_da .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 ;};func _abdd (_faec ,_cbdbc string )string {if _ec .Contains (_faec ,"\u002b"){_caca :=_ec .Split (_faec ,"\u002b");if len (_caca )==2{_faec =_caca [1];};};return _cbdbc +"\u002b"+_faec ;};func _dgbd (_dagec map[_ffd .GID ]int ,_eebf uint16 )*_eca .PdfObjectArray {_gdfc :=&_eca .PdfObjectArray {}; _cgec :=_ffd .GID (_eebf );for _edbed :=_ffd .GID (0);_edbed < _cgec ;{_ffacf ,_bfece :=_dagec [_edbed ];if !_bfece {_edbed ++;continue ;};_ecfdf :=_edbed ;for _abace :=_ecfdf +1;_abace < _cgec ;_abace ++{if _cageg ,_ffba :=_dagec [_abace ];!_ffba ||_ffacf !=_cageg {break ; };_ecfdf =_abace ;};_gdfc .Append (_eca .MakeInteger (int64 (_edbed )));_gdfc .Append (_eca .MakeInteger (int64 (_ecfdf )));_gdfc .Append (_eca .MakeInteger (int64 (_ffacf )));_edbed =_ecfdf +1;};return _gdfc ;}; // 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 _beg .ReadSeeker )(*PdfFont ,error ){_cadaf ,_efdc :=_dc .ReadAll (r );if _efdc !=nil {_ccb .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",_efdc ); return nil ,_efdc ;};_edgf ,_efdc :=_ffd .TtfParse (_dd .NewReader (_cadaf ));if _efdc !=nil {_ccb .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",_efdc ); return nil ,_efdc ;};_bfbfa :=&pdfCIDFontType2 {fontCommon :fontCommon {_cfbe :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_eca .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_edgf .Widths )<=0{return nil ,_da .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"); };_ecbfdc :=1000.0/float64 (_edgf .UnitsPerEm );_cagag :=_ecbfdc *float64 (_edgf .Widths [0]);_cfedec :=make (map[rune ]int );_gfffa :=make (map[_ffd .GID ]int );_abaaeg :=_ffd .GID (len (_edgf .Widths ));for _cbgd ,_cgedd :=range _edgf .Chars {if _cgedd > _abaaeg -1{continue ; };_gbbbd :=int (_ecbfdc *float64 (_edgf .Widths [_cgedd ]));_cfedec [_cbgd ]=_gbbbd ;_gfffa [_cgedd ]=_gbbbd ;};_bfbfa ._dgdag =_cfedec ;_bfbfa .DW =_eca .MakeInteger (int64 (_cagag ));_caefd :=_dgbd (_gfffa ,uint16 (_abaaeg ));_bfbfa .W =_eca .MakeIndirectObject (_caefd ); _ccfa :=_eca .MakeDict ();_ccfa .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_eca .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_ccfa .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_eca .MakeString ("\u0041\u0064\u006fb\u0065")); _ccfa .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_eca .MakeInteger (0));_bfbfa .CIDSystemInfo =_ccfa ;_cbfgb :=&PdfFontDescriptor {FontName :_eca .MakeName (_edgf .PostScriptName ),Ascent :_eca .MakeFloat (_ecbfdc *float64 (_edgf .TypoAscender )),Descent :_eca .MakeFloat (_ecbfdc *float64 (_edgf .TypoDescender )),CapHeight :_eca .MakeFloat (_ecbfdc *float64 (_edgf .CapHeight )),FontBBox :_eca .MakeArrayFromFloats ([]float64 {_ecbfdc *float64 (_edgf .Xmin ),_ecbfdc *float64 (_edgf .Ymin ),_ecbfdc *float64 (_edgf .Xmax ),_ecbfdc *float64 (_edgf .Ymax )}),ItalicAngle :_eca .MakeFloat (_edgf .ItalicAngle ),MissingWidth :_eca .MakeFloat (_cagag )}; _abfbf ,_efdc :=_eca .MakeStream (_cadaf ,_eca .NewFlateEncoder ());if _efdc !=nil {_ccb .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",_efdc ); return nil ,_efdc ;};_abfbf .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_eca .MakeInteger (int64 (len (_cadaf ))));_cbfgb .FontFile2 =_abfbf ;if _edgf .Bold {_cbfgb .StemV =_eca .MakeInteger (120);}else {_cbfgb .StemV =_eca .MakeInteger (70); };_gdgdf :=_afdga ;if _edgf .IsFixedPitch {_gdgdf |=_ebab ;};if _edgf .ItalicAngle !=0{_gdgdf |=_afdgf ;};_cbfgb .Flags =_eca .MakeInteger (int64 (_gdgdf ));_bfbfa ._daac =_edgf .PostScriptName ;_bfbfa ._ccec =_cbfgb ;_dffgd :=pdfFontType0 {fontCommon :fontCommon {_cfbe :"\u0054\u0079\u0070e\u0030",_daac :_edgf .PostScriptName },DescendantFont :&PdfFont {_dbgb :_bfbfa },Encoding :_eca .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_gdcea :_edgf .NewEncoder ()}; if len (_edgf .Chars )> 0{_dcef :=make (map[_ded .CharCode ]rune ,len (_edgf .Chars ));for _fbgd ,_acca :=range _edgf .Chars {_fbfca :=_ded .CharCode (_acca );if _bccbcd ,_becc :=_dcef [_fbfca ];!_becc ||(_becc &&_bccbcd > _fbgd ){_dcef [_fbfca ]=_fbgd ; };};_dffgd ._gegfa =_ded .NewToUnicodeCMap (_dcef );};_decc :=PdfFont {_dbgb :&_dffgd };return &_decc ,nil ;};func _gdebg (_gggd []byte )(_bcabdc ,_dcgf string ,_gfad error ){_ccb .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_gggd )); _fedg :=_aabdg .FindIndex (_gggd );if _fedg ==nil {_ccb .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 "","",_eca .ErrTypeError ;};_aaeb :=_fedg [1];_eddd :=_ec .Index (string (_gggd [_aaeb :]),_cagg );if _eddd < 0{_bcabdc =string (_gggd [_aaeb :]);return _bcabdc ,"",nil ;};_edfa :=_aaeb +_eddd ;_bcabdc =string (_gggd [_aaeb :_edfa ]);_efecg :=_edfa ; _eddd =_ec .Index (string (_gggd [_efecg :]),_gefe );if _eddd < 0{_ccb .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",_gfad ); return "","",_eca .ErrTypeError ;};_ggcb :=_efecg +_eddd ;_dcgf =string (_gggd [_efecg :_ggcb ]);return _bcabdc ,_dcgf ,nil ;}; // NewPdfAppender creates a new Pdf appender from a Pdf reader. func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_egef :=&PdfAppender {_ebca :reader ._eacag ,Reader :reader ,_gegf :reader ._ecfeba ,_bgefc :reader ._fgbbd };_cda ,_fbbc :=_egef ._ebca .Seek (0,_beg .SeekEnd );if _fbbc !=nil {return nil ,_fbbc ; };_egef ._cbbd =_cda ;if _ ,_fbbc =_egef ._ebca .Seek (0,_beg .SeekStart );_fbbc !=nil {return nil ,_fbbc ;};_egef ._badg ,_fbbc =NewPdfReader (_egef ._ebca );if _fbbc !=nil {return nil ,_fbbc ;};for _ ,_dcec :=range _egef .Reader .GetObjectNums (){if _egef ._abd < _dcec {_egef ._abd =_dcec ; };};_egef ._dcbbb =_egef ._gegf .GetXrefTable ();_egef ._bef =_egef ._gegf .GetXrefOffset ();_egef ._fecc =append (_egef ._fecc ,_egef ._badg .PageList ...);_egef ._eeb =make (map[_eca .PdfObject ]struct{});_egef ._ccbc =make (map[_eca .PdfObject ]int64 ); _egef ._adaa =make (map[_eca .PdfObject ]struct{});_egef ._edcc =_egef ._badg .AcroForm ;_egef ._adff =_egef ._badg .DSS ;return _egef ,nil ;};func _ecgc (_eabb _eca .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_acadf :=NewPdfColorspaceSpecialIndexed (); if _cbbgg ,_cbbdc :=_eabb .(*_eca .PdfIndirectObject );_cbbdc {_acadf ._dbcc =_cbbgg ;};_eabb =_eca .TraceToDirectObject (_eabb );_cceeg ,_bdbf :=_eabb .(*_eca .PdfObjectArray );if !_bdbf {return nil ,_g .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };if _cceeg .Len ()!=4{return nil ,_g .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");};_eabb =_cceeg .Get (0); _gdcd ,_bdbf :=_eabb .(*_eca .PdfObjectName );if !_bdbf {return nil ,_g .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_gdcd !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_g .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065"); };_eabb =_cceeg .Get (1);_dfgg ,_bfad :=DetermineColorspaceNameFromPdfObject (_eabb );if _bfad !=nil {return nil ,_bfad ;};if _dfgg =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_dfgg =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ccb .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",_dfgg ); return nil ,_abbe ;};_ddbf ,_bfad :=NewPdfColorspaceFromPdfObject (_eabb );if _bfad !=nil {return nil ,_bfad ;};_acadf .Base =_ddbf ;_eabb =_cceeg .Get (2);_bbaa ,_bfad :=_eca .GetNumberAsInt64 (_eabb );if _bfad !=nil {return nil ,_bfad ;};if _bbaa > 255{return nil ,_g .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l"); };_acadf .HiVal =int (_bbaa );_eabb =_cceeg .Get (3);_acadf .Lookup =_eabb ;_eabb =_eca .TraceToDirectObject (_eabb );var _edcf []byte ;if _agefb ,_dageb :=_eabb .(*_eca .PdfObjectString );_dageb {_edcf =_agefb .Bytes ();_ccb .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",_edcf ); }else if _fabad ,_afdcc :=_eabb .(*_eca .PdfObjectStream );_afdcc {_ccb .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_eabb .String ());_ccb .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_fabad .Stream ),_fabad .Stream ); _ffgab ,_gbfe :=_eca .DecodeStream (_fabad );if _gbfe !=nil {return nil ,_gbfe ;};_ccb .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_ffgab ),_ffgab );_edcf =_ffgab ;}else {_ccb .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_eabb ); return nil ,_g .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 (_edcf )< _acadf .Base .GetNumComponents ()*(_acadf .HiVal +1){_ccb .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"); _ccb .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 (_edcf ),_acadf .Base .GetNumComponents (),_acadf .HiVal ); }else {_edcf =_edcf [:_acadf .Base .GetNumComponents ()*(_acadf .HiVal +1)];};_acadf ._eaea =_edcf ;return _acadf ,nil ;}; // GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder func (_fddge *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_eca .StreamEncoder ,error ){_abbee ,_edgda :=_fddge ._cdfed .(*_eca .PdfObjectStream );if !_edgda {_ccb .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",_fddge ._cdfed ); return nil ,nil ,_eca .ErrTypeError ;};_ggbbaa ,_cbdeef :=_eca .DecodeStream (_abbee );if _cbdeef !=nil {_ccb .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",_cbdeef ); return nil ,nil ,_cbdeef ;};_afbdf ,_cbdeef :=_eca .NewEncoderFromStream (_abbee );if _cbdeef !=nil {_ccb .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",_cbdeef ); return nil ,nil ,_cbdeef ;};return _ggbbaa ,_afbdf ,nil ;};func _cadc (_gdccg string )(map[_dbb .CharCode ]_dbb .GlyphName ,error ){_gefeg :=_ec .Split (_gdccg ,"\u000a");_cccd :=make (map[_dbb .CharCode ]_dbb .GlyphName );for _ ,_fccdb :=range _gefeg {_bdde :=_efgc .FindStringSubmatch (_fccdb ); if _bdde ==nil {continue ;};_fade ,_bbbd :=_bdde [1],_bdde [2];_fbda ,_eadfd :=_ge .Atoi (_fade );if _eadfd !=nil {_ccb .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",_fccdb ); return nil ,_eca .ErrTypeError ;};_cccd [_dbb .CharCode (_fbda )]=_dbb .GlyphName (_bbbd );};_ccb .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",_cccd ); return _cccd ,nil ;}; // LTV represents an LTV (Long-Term Validation) client. It is used to LTV // enable signatures by adding validation and revocation data (certificate, // OCSP and CRL information) to the DSS dictionary of a PDF document. // // LTV is added through the DSS by: // - Adding certificates, OCSP and CRL information in the global scope of the // DSS. The global data is used for validating any of the signatures present // in the document. // - Adding certificates, OCSP and CRL information for a single signature, // through an entry in the VRI dictionary of the DSS. The added data is used // for validating that particular signature only. This is the recommended // method for adding validation data for a signature. However, this is not // is not possible in the same revision the signature is applied. Validation // data for a signature is added based on the Contents entry of the signature, // which is known only after the revision is written. Even if the Contents // are known (e.g. when signing externally), updating the DSS at that point // would invalidate the calculated signature. As a result, if adding LTV // in the same revision is a requirement, use the first method. // See LTV.EnableChain. // The client applies both methods, when possible. // // If `LTV.SkipExisting` is set to true (the default), validations are // not added for signatures which are already present in the VRI entry of the // document's DSS dictionary. type LTV struct{ // CertClient is the client used to retrieve certificates. CertClient *_ffg .CertClient ; // OCSPClient is the client used to retrieve OCSP validation information. OCSPClient *_ffg .OCSPClient ; // CRLClient is the client used to retrieve CRL validation information. CRLClient *_ffg .CRLClient ; // SkipExisting specifies whether existing signature validations // should be skipped. SkipExisting bool ;_deaee *PdfAppender ;_eebfab *DSS ;}; // ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object. func (_afceba *PdfFontDescriptor )ToPdfObject ()_eca .PdfObject {_dcbf :=_eca .MakeDict ();if _afceba ._acccb ==nil {_afceba ._acccb =&_eca .PdfIndirectObject {};};_afceba ._acccb .PdfObject =_dcbf ;_dcbf .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072")); if _afceba .FontName !=nil {_dcbf .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_afceba .FontName );};if _afceba .FontFamily !=nil {_dcbf .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_afceba .FontFamily );};if _afceba .FontStretch !=nil {_dcbf .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_afceba .FontStretch ); };if _afceba .FontWeight !=nil {_dcbf .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_afceba .FontWeight );};if _afceba .Flags !=nil {_dcbf .Set ("\u0046\u006c\u0061g\u0073",_afceba .Flags );};if _afceba .FontBBox !=nil {_dcbf .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_afceba .FontBBox ); };if _afceba .ItalicAngle !=nil {_dcbf .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_afceba .ItalicAngle );};if _afceba .Ascent !=nil {_dcbf .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_afceba .Ascent );};if _afceba .Descent !=nil {_dcbf .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_afceba .Descent ); };if _afceba .Leading !=nil {_dcbf .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_afceba .Leading );};if _afceba .CapHeight !=nil {_dcbf .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_afceba .CapHeight );};if _afceba .XHeight !=nil {_dcbf .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_afceba .XHeight ); };if _afceba .StemV !=nil {_dcbf .Set ("\u0053\u0074\u0065m\u0056",_afceba .StemV );};if _afceba .StemH !=nil {_dcbf .Set ("\u0053\u0074\u0065m\u0048",_afceba .StemH );};if _afceba .AvgWidth !=nil {_dcbf .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_afceba .AvgWidth ); };if _afceba .MaxWidth !=nil {_dcbf .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_afceba .MaxWidth );};if _afceba .MissingWidth !=nil {_dcbf .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_afceba .MissingWidth ); };if _afceba .FontFile !=nil {_dcbf .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_afceba .FontFile );};if _afceba .FontFile2 !=nil {_dcbf .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_afceba .FontFile2 );};if _afceba .FontFile3 !=nil {_dcbf .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_afceba .FontFile3 ); };if _afceba .CharSet !=nil {_dcbf .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_afceba .CharSet );};if _afceba .Style !=nil {_dcbf .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_afceba .FontName );};if _afceba .Lang !=nil {_dcbf .Set ("\u004c\u0061\u006e\u0067",_afceba .Lang ); };if _afceba .FD !=nil {_dcbf .Set ("\u0046\u0044",_afceba .FD );};if _afceba .CIDSet !=nil {_dcbf .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_afceba .CIDSet );};return _afceba ._acccb ;}; // 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 *_eca .PdfObjectArray ;ExtGState _eca .PdfObject ;}; // AddCustomInfo adds a custom info into document info dictionary. func (_abcea *PdfInfo )AddCustomInfo (name string ,value string )error {if _abcea ._bcfd ==nil {_abcea ._bcfd =_eca .MakeDict ();};if _ ,_egdg :=_bafe [name ];_egdg {return _g .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 ); };_abcea ._bcfd .SetIfNotNil (*_eca .MakeName (name ),_eca .MakeString (value ));return nil ;}; // SetContext sets the sub annotation (context). func (_eceg *PdfAnnotation )SetContext (ctx PdfModel ){_eceg ._abc =ctx }; // GetContentStreamObjs returns a slice of PDF objects containing the content // streams of the page. func (_gfdeb *PdfPage )GetContentStreamObjs ()[]_eca .PdfObject {if _gfdeb .Contents ==nil {return nil ;};_ggcdc :=_eca .TraceToDirectObject (_gfdeb .Contents );if _aebgd ,_ccadg :=_ggcdc .(*_eca .PdfObjectArray );_ccadg {return _aebgd .Elements ();};return []_eca .PdfObject {_ggcdc }; }; // HasExtGState checks whether a font is defined by the specified keyName. func (_egdfg *PdfPageResources )HasExtGState (keyName _eca .PdfObjectName )bool {_ ,_ggdae :=_egdfg .GetFontByName (keyName );return _ggdae ;}; // SetPdfTitle sets the Title attribute of the output PDF. func SetPdfTitle (title string ){_ccbac .Lock ();defer _ccbac .Unlock ();_aaaad =title }; // GetContainingPdfObject returns the container of the outline tree node (indirect object). func (_gegdc *PdfOutlineTreeNode )GetContainingPdfObject ()_eca .PdfObject {return _gegdc .GetContext ().GetContainingPdfObject ();};func (_cfgc *pdfFontType3 )baseFields ()*fontCommon {return &_cfgc .fontCommon }; // 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 *_ecg .DiffResults ;IsCrlFound bool ;IsOcspFound bool ; // GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161). GeneralizedTime _d .Time ;}; // 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 _agafe (_ggeab *_eca .PdfObjectDictionary )(*PdfTilingPattern ,error ){_dagcb :=&PdfTilingPattern {};_egdca :=_ggeab .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");if _egdca ==nil {_ccb .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067"); return nil ,ErrRequiredAttributeMissing ;};_ggef ,_cadcf :=_egdca .(*_eca .PdfObjectInteger );if !_cadcf {_ccb .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",_egdca ); return nil ,_eca .ErrTypeError ;};_dagcb .PaintType =_ggef ;_egdca =_ggeab .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _egdca ==nil {_ccb .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067"); return nil ,ErrRequiredAttributeMissing ;};_gddde ,_cadcf :=_egdca .(*_eca .PdfObjectInteger );if !_cadcf {_ccb .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",_egdca ); return nil ,_eca .ErrTypeError ;};_dagcb .TilingType =_gddde ;_egdca =_ggeab .Get ("\u0042\u0042\u006f\u0078");if _egdca ==nil {_ccb .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ; };_egdca =_eca .TraceToDirectObject (_egdca );_bbccc ,_cadcf :=_egdca .(*_eca .PdfObjectArray );if !_cadcf {_ccb .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",_egdca ); return nil ,_eca .ErrTypeError ;};_gdbg ,_bgfbf :=NewPdfRectangle (*_bbccc );if _bgfbf !=nil {_ccb .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_bgfbf );return nil ,_bgfbf ;};_dagcb .BBox =_gdbg ;_egdca =_ggeab .Get ("\u0058\u0053\u0074e\u0070"); if _egdca ==nil {_ccb .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_aabb ,_bgfbf :=_eca .GetNumberAsFloat (_egdca );if _bgfbf !=nil {_ccb .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",_aabb ); return nil ,_bgfbf ;};_dagcb .XStep =_eca .MakeFloat (_aabb );_egdca =_ggeab .Get ("\u0059\u0053\u0074e\u0070");if _egdca ==nil {_ccb .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ; };_cccca ,_bgfbf :=_eca .GetNumberAsFloat (_egdca );if _bgfbf !=nil {_ccb .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",_cccca ); return nil ,_bgfbf ;};_dagcb .YStep =_eca .MakeFloat (_cccca );_egdca =_ggeab .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _egdca ==nil {_ccb .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067"); return nil ,ErrRequiredAttributeMissing ;};_ggeab ,_cadcf =_eca .TraceToDirectObject (_egdca ).(*_eca .PdfObjectDictionary );if !_cadcf {return nil ,_g .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",_egdca ); };_dafff ,_bgfbf :=NewPdfPageResourcesFromDict (_ggeab );if _bgfbf !=nil {return nil ,_bgfbf ;};_dagcb .Resources =_dafff ;if _egadc :=_ggeab .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_egadc !=nil {_fabde ,_fgaad :=_egadc .(*_eca .PdfObjectArray ); if !_fgaad {_ccb .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",_egadc );return nil ,_eca .ErrTypeError ;};_dagcb .Matrix =_fabde ;};return _dagcb ,nil ; }; // NewPdfSignature creates a new PdfSignature object. func NewPdfSignature (handler SignatureHandler )*PdfSignature {_dagg :=&PdfSignature {Type :_eca .MakeName ("\u0053\u0069\u0067"),Handler :handler };_gfgdc :=&pdfSignDictionary {PdfObjectDictionary :_eca .MakeDict (),_ceaad :&handler ,_eacaae :_dagg }; _dagg ._bfebg =_eca .MakeIndirectObject (_gfgdc );return _dagg ;}; // PdfOutputIntentType is the subtype of the given PdfOutputIntent. type PdfOutputIntentType int ; // PdfDate represents a date, which is a PDF string of the form: // (D:YYYYMMDDHHmmSSOHH'mm) type PdfDate struct{_ffacc int64 ;_gecba int64 ;_bcdea int64 ;_dcbgf int64 ;_agdad int64 ;_dccbf int64 ;_cgad byte ;_ffffbf int64 ;_caaa int64 ;};func (_aegd *PdfReader )newPdfAnnotationInkFromDict (_aebc *_eca .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_bcbg :=PdfAnnotationInk {}; _egbe ,_bbce :=_aegd .newPdfAnnotationMarkupFromDict (_aebc );if _bbce !=nil {return nil ,_bbce ;};_bcbg .PdfAnnotationMarkup =_egbe ;_bcbg .InkList =_aebc .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_bcbg .BS =_aebc .Get ("\u0042\u0053");return &_bcbg ,nil ; }; // HasExtGState checks if ExtGState name is available. func (_eeegg *PdfPage )HasExtGState (name _eca .PdfObjectName )bool {if _eeegg .Resources ==nil {return false ;};if _eeegg .Resources .ExtGState ==nil {return false ;};_gdace ,_eaga :=_eca .TraceToDirectObject (_eeegg .Resources .ExtGState ).(*_eca .PdfObjectDictionary ); if !_eaga {_ccb .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",_eca .TraceToDirectObject (_eeegg .Resources .ExtGState )); return false ;};_afaga :=_gdace .Get (name );_fgdae :=_afaga !=nil ;return _fgdae ;};func (_fffgg Image )getBase ()_bbg .ImageBase {return _bbg .NewImageBase (int (_fffgg .Width ),int (_fffgg .Height ),int (_fffgg .BitsPerComponent ),_fffgg .ColorComponents ,_fffgg .Data ,_fffgg ._gcgb ,_fffgg ._cfgaa ); }; // 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 (_adcb *PdfAnnotationWidget )Field ()*PdfField {return _adcb ._ebc }; // 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 (_eddfc *PdfFieldButton )SetType (btype ButtonType ){_ceebg :=uint32 (0);if _eddfc .Ff !=nil {_ceebg =uint32 (*_eddfc .Ff );};switch btype {case ButtonTypePush :_ceebg |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_ceebg |=FieldFlagRadio .Mask (); };_eddfc .Ff =_eca .MakeInteger (int64 (_ceebg ));};func (_ecac fontCommon )coreString ()string {_gbaf :="";if _ecac ._ccec !=nil {_gbaf =_ecac ._ccec .String ();};return _g .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",_ecac ._cfbe ,_ecac ._daac ,_ecac ._agdaa ,_ecac ._dccaa ,_ecac ._effb !=nil ,_ecac .fontFlags (),_gbaf ); }; // ReplacePage replaces the original page to a new page. func (_bgde *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_cbgc :=pageNum -1;for _eefa :=range _bgde ._fecc {if _eefa ==_cbgc {_eae :=page .Duplicate ();_dbed (_eae );_bgde ._fecc [_eefa ]=_eae ;};};};func (_aacc *PdfReader )newPdfAnnotation3DFromDict (_cegd *_eca .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_egge :=PdfAnnotation3D {}; _egge .T3DD =_cegd .Get ("\u0033\u0044\u0044");_egge .T3DV =_cegd .Get ("\u0033\u0044\u0056");_egge .T3DA =_cegd .Get ("\u0033\u0044\u0041");_egge .T3DI =_cegd .Get ("\u0033\u0044\u0049");_egge .T3DB =_cegd .Get ("\u0033\u0044\u0042");return &_egge ,nil ; };func (_bagce SignatureValidationResult )String ()string {var _fcaggg _dd .Buffer ;_fcaggg .WriteString (_g .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_bagce .Name ));if _bagce .Date ._ffacc > 0{_fcaggg .WriteString (_g .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_bagce .Date .ToGoTime ().String ())); }else {_fcaggg .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_bagce .Reason )> 0{_fcaggg .WriteString (_g .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_bagce .Reason )); }else {_fcaggg .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");};if len (_bagce .Location )> 0{_fcaggg .WriteString (_g .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_bagce .Location )); }else {_fcaggg .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_bagce .ContactInfo )> 0{_fcaggg .WriteString (_g .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_bagce .ContactInfo )); }else {_fcaggg .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");};_fcaggg .WriteString (_g .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_bagce .Fields ))); if _bagce .IsSigned {_fcaggg .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 {_fcaggg .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a"); };if _bagce .IsVerified {_fcaggg .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 {_fcaggg .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 _bagce .IsTrusted {_fcaggg .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 {_fcaggg .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 !_bagce .GeneralizedTime .IsZero (){_fcaggg .WriteString (_g .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_bagce .GeneralizedTime .String ()));};if _bagce .DiffResults !=nil {_fcaggg .WriteString (_g .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_bagce .DiffResults .IsPermitted ())); if len (_bagce .DiffResults .Warnings )> 0{_fcaggg .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a");for _ ,_adbda :=range _bagce .DiffResults .Warnings {_fcaggg .WriteString (_g .Sprintf ("\u0009\u0025\u0073\u000a",_adbda )); };};if len (_bagce .DiffResults .Errors )> 0{_fcaggg .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a");for _ ,_fgfagd :=range _bagce .DiffResults .Errors {_fcaggg .WriteString (_g .Sprintf ("\u0009\u0025\u0073\u000a",_fgfagd )); };};};if _bagce .IsCrlFound {_fcaggg .WriteString ("R\u0065\u0076\u006f\u0063\u0061\u0074i\u006f\u006e\u0020\u0064\u0061\u0074\u0061\u003a\u0020C\u0052\u004c\u0020f\u006fu\u006e\u0064\u000a");}else {_fcaggg .WriteString ("\u0052\u0065\u0076o\u0063\u0061\u0074\u0069o\u006e\u0020\u0064\u0061\u0074\u0061\u003a \u0043\u0052\u004c\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u000a"); };if _bagce .IsOcspFound {_fcaggg .WriteString ("\u0052\u0065\u0076\u006fc\u0061\u0074\u0069\u006f\u006e\u0020\u0064\u0061\u0074\u0061:\u0020O\u0043\u0053\u0050\u0020\u0066\u006f\u0075n\u0064\u000a");}else {_fcaggg .WriteString ("\u0052\u0065\u0076\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u0020\u0064\u0061\u0074\u0061:\u0020O\u0043\u0053\u0050\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u000a"); };return _fcaggg .String ();}; // NewPdfColorLab returns a new Lab color. func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_cbdf :=PdfColorLab {l ,a ,b };return &_cbdf }; // PdfColorspaceDeviceCMYK represents a CMYK32 colorspace. type PdfColorspaceDeviceCMYK struct{};func _fegaf (_aafa string )map[string ]string {_ebgdb :=_fdcgf .Split (_aafa ,-1);_cfce :=map[string ]string {};for _ ,_bfbee :=range _ebgdb {_fgac :=_ceefb .FindStringSubmatch (_bfbee );if _fgac ==nil {continue ;}; _caagb ,_ggfcd :=_fgac [1],_fgac [2];_cfce [_caagb ]=_ggfcd ;};return _cfce ;}; // SetLocation sets the `Location` field of the signature. func (_faedg *PdfSignature )SetLocation (location string ){_faedg .Location =_eca .MakeString (location )}; // PdfAnnotationSound represents Sound annotations. // (Section 12.5.6.16). type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _eca .PdfObject ;Name _eca .PdfObject ;};func (_fegec *PdfWriter )optimize ()error {if _fegec ._cgfccc ==nil {return nil ;};var _debdf error ;_fegec ._daecf ,_debdf =_fegec ._cgfccc .Optimize (_fegec ._daecf ); if _debdf !=nil {return _debdf ;};_aced :=make (map[_eca .PdfObject ]struct{},len (_fegec ._daecf ));for _ ,_bafgc :=range _fegec ._daecf {_aced [_bafgc ]=struct{}{};};_fegec ._ceace =_aced ;return nil ;}; // NewPdfDateFromTime will create a PdfDate based on the given time func NewPdfDateFromTime (timeObj _d .Time )(PdfDate ,error ){_eefd :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_cfbab ,_ :=_ge .ParseInt (_eefd [1:3],10,32);_cfgeed ,_ :=_ge .ParseInt (_eefd [4:6],10,32);return PdfDate {_ffacc :int64 (timeObj .Year ()),_gecba :int64 (timeObj .Month ()),_bcdea :int64 (timeObj .Day ()),_dcbgf :int64 (timeObj .Hour ()),_agdad :int64 (timeObj .Minute ()),_dccbf :int64 (timeObj .Second ()),_cgad :_eefd [0],_ffffbf :_cfbab ,_caaa :_cfgeed },nil ; }; // DecodeArray returns the component range values for the Indexed colorspace. func (_fddc *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_fddc .HiVal )};}; // GetNumComponents returns the number of input color components, i.e. that are input to the tint transform. func (_cbec *PdfColorspaceDeviceN )GetNumComponents ()int {return _cbec .ColorantNames .Len ()};func (_abdf *PdfShading )getShadingDict ()(*_eca .PdfObjectDictionary ,error ){_dbcaa :=_abdf ._dcbe ;if _ebdee ,_gdfce :=_dbcaa .(*_eca .PdfIndirectObject ); _gdfce {_bbcf ,_acebe :=_ebdee .PdfObject .(*_eca .PdfObjectDictionary );if !_acebe {return nil ,_eca .ErrTypeError ;};return _bbcf ,nil ;}else if _aaaga ,_ccabb :=_dbcaa .(*_eca .PdfObjectStream );_ccabb {return _aaaga .PdfObjectDictionary ,nil ;}else if _fcbee ,_ceecf :=_dbcaa .(*_eca .PdfObjectDictionary ); _ceecf {return _fcbee ,nil ;}else {_ccb .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 ,_eca .ErrTypeError ; };}; // AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc. func (_dbfe *Image )AlphaMap (mapFunc AlphaMapFunc ){for _fadd ,_cabe :=range _dbfe ._gcgb {_dbfe ._gcgb [_fadd ]=mapFunc (_cabe );};}; // NewPdfAnnotationWidget returns an initialized annotation widget. func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_fbbe :=NewPdfAnnotation ();_cdeg :=&PdfAnnotationWidget {};_cdeg .PdfAnnotation =_fbbe ;_fbbe .SetContext (_cdeg );return _cdeg ;}; // HasShadingByName checks whether a shading is defined by the specified keyName. func (_gbcbc *PdfPageResources )HasShadingByName (keyName _eca .PdfObjectName )bool {_ ,_gecaa :=_gbcbc .GetShadingByName (keyName );return _gecaa ;};func (_aggef *PdfReader )buildNameNodes (_ffacd *_eca .PdfIndirectObject ,_cbgbf map[_eca .PdfObject ]struct{})error {if _ffacd ==nil {return nil ; };if _ ,_efeg :=_cbgbf [_ffacd ];_efeg {_ccb .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",_ffacd .ObjectNumber ); return nil ;};_cbgbf [_ffacd ]=struct{}{};_bdfbde ,_egcga :=_ffacd .PdfObject .(*_eca .PdfObjectDictionary );if !_egcga {return _da .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _dcfc ,_gdcf :=_eca .GetDict (_bdfbde .Get ("\u0044\u0065\u0073t\u0073")); _gdcf {_cdff ,_baggb :=_eca .GetArray (_dcfc .Get ("\u004b\u0069\u0064\u0073"));if !_baggb {return _da .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_ccb .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_cdff ); for _dfcad ,_bebef :=range _cdff .Elements (){_efagg ,_eccdc :=_eca .GetIndirect (_bebef );if !_eccdc {_ccb .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",_efagg ); return _da .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_cdff .Set (_dfcad ,_efagg );_efdg :=_aggef .buildNameNodes (_efagg ,_cbgbf );if _efdg !=nil {return _efdg ;}; };};if _aabgf ,_dabdc :=_eca .GetDict (_bdfbde );_dabdc {if !_eca .IsNullObject (_aabgf .Get ("\u004b\u0069\u0064\u0073")){if _agfee ,_afgcc :=_eca .GetArray (_aabgf .Get ("\u004b\u0069\u0064\u0073"));_afgcc {for _gecgc ,_fffdb :=range _agfee .Elements (){if _dcedb ,_efgbc :=_eca .GetIndirect (_fffdb ); _efgbc {_agfee .Set (_gecgc ,_dcedb );_abcfg :=_aggef .buildNameNodes (_dcedb ,_cbgbf );if _abcfg !=nil {return _abcfg ;};};};};};};return nil ;}; // NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject. func NewPdfOutputIntentFromPdfObject (object _eca .PdfObject )(*PdfOutputIntent ,error ){_bgfge :=&PdfOutputIntent {};if _bebad :=_bgfge .ParsePdfObject (object );_bebad !=nil {return nil ,_bebad ;};return _bgfge ,nil ;};func (_ebfd *PdfReader )newPdfActionThreadFromDict (_fbb *_eca .PdfObjectDictionary )(*PdfActionThread ,error ){_bggc ,_ffgf :=_efe (_fbb .Get ("\u0046")); if _ffgf !=nil {return nil ,_ffgf ;};return &PdfActionThread {D :_fbb .Get ("\u0044"),B :_fbb .Get ("\u0042"),F :_bggc },nil ;}; // 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 (_cgfg *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _cgfg .baseFields ()._ccec !=nil {return _cgfg .baseFields ()._ccec ;};if _gfcb :=_cgfg ._dbgb .getFontDescriptor ();_gfcb !=nil {return _gfcb ;};_ccb .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",_cgfg ); return nil ;}; // GetContainingPdfObject implements interface PdfModel. func (_bdea *Permissions )GetContainingPdfObject ()_eca .PdfObject {return _bdea ._bffgb }; // PdfAnnotationPolygon represents Polygon annotations. // (Section 12.5.6.9). type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _eca .PdfObject ;LE _eca .PdfObject ;BS _eca .PdfObject ;IC _eca .PdfObject ;BE _eca .PdfObject ;IT _eca .PdfObject ;Measure _eca .PdfObject ;}; // NewPdfAnnotationSound returns a new sound annotation. func NewPdfAnnotationSound ()*PdfAnnotationSound {_dgfg :=NewPdfAnnotation ();_bafd :=&PdfAnnotationSound {};_bafd .PdfAnnotation =_dgfg ;_bafd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dgfg .SetContext (_bafd );return _bafd ;}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 1 for a CalGray device. func (_ceaf *PdfColorspaceCalGray )GetNumComponents ()int {return 1}; // IsColored specifies if the pattern is colored. func (_geef *PdfTilingPattern )IsColored ()bool {if _geef .PaintType !=nil &&*_geef .PaintType ==1{return true ;};return false ;}; // PdfActionResetForm represents a resetForm action. type PdfActionResetForm struct{*PdfAction ;Fields _eca .PdfObject ;Flags _eca .PdfObject ;}; // GetCharMetrics returns the char metrics for character code `code`. func (_edbef pdfFontType0 )GetCharMetrics (code _dbb .CharCode )(_ffd .CharMetrics ,bool ){if _edbef .DescendantFont ==nil {_ccb .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",_edbef ); return _ffd .CharMetrics {},false ;};return _edbef .DescendantFont .GetCharMetrics (code );};func (_ece *PdfReader )newPdfActionRenditionFromDict (_agb *_eca .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_agb .Get ("\u0052"),AN :_agb .Get ("\u0041\u004e"),OP :_agb .Get ("\u004f\u0050"),JS :_agb .Get ("\u004a\u0053")},nil ; }; // ImageToRGB returns an error since an image cannot be defined in a pattern colorspace. func (_gagd *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_ccb .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 ,_da .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");}; // NewPdfColorspaceSpecialSeparation returns a new separation color. func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_fdadg :=&PdfColorspaceSpecialSeparation {};return _fdadg ;}; // NewPdfAnnotationCircle returns a new circle annotation. func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_dfcd :=NewPdfAnnotation ();_cgeg :=&PdfAnnotationCircle {};_cgeg .PdfAnnotation =_dfcd ;_cgeg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dfcd .SetContext (_cgeg );return _cgeg ;}; // Transform rectangle with the supplied matrix. func (_fffggc *PdfRectangle )Transform (transformMatrix _gg .Matrix ){_fffggc .Llx ,_fffggc .Lly =transformMatrix .Transform (_fffggc .Llx ,_fffggc .Lly );_fffggc .Urx ,_fffggc .Ury =transformMatrix .Transform (_fffggc .Urx ,_fffggc .Ury );_fffggc .Normalize (); }; // 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 (_cbdef *LTV )EnableByName (name string ,extraCerts []*_ad .Certificate )error {_cdbfg :=_cbdef ._deaee ._badg .AcroForm ;for _ ,_ccccg :=range _cdbfg .AllFields (){_bdbd ,_ :=_ccccg .GetContext ().(*PdfFieldSignature );if _bdbd ==nil {continue ;}; if _bcgea :=_bdbd .PartialName ();_bcgea !=name {continue ;};return _cbdef .Enable (_bdbd .V ,extraCerts );};return nil ;}; // GetRuneMetrics returns the character metrics for the specified rune. // A bool flag is returned to indicate whether or not the entry was found. func (_fgdca pdfCIDFontType0 )GetRuneMetrics (r rune )(_ffd .CharMetrics ,bool ){return _ffd .CharMetrics {Wx :_fgdca ._eegbc },true ;}; // Duplicate creates a duplicate page based on the current one and returns it. func (_cfda *PdfPage )Duplicate ()*PdfPage {_dccea :=*_cfda ;_dccea ._agaea =_eca .MakeDict ();_dccea ._aedef =_eca .MakeIndirectObject (_dccea ._agaea );_dccea ._gbaec =*_dccea ._agaea ;return &_dccea ;}; // NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN. func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_badb :=&PdfColorspaceDeviceN {};return _badb }; // GetNumComponents returns the number of color components (1 for Indexed). func (_eaac *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1}; // ToPdfObject implements interface PdfModel. func (_bdb *PdfAnnotationHighlight )ToPdfObject ()_eca .PdfObject {_bdb .PdfAnnotation .ToPdfObject ();_aega :=_bdb ._cdc ;_aeafd :=_aega .PdfObject .(*_eca .PdfObjectDictionary );_bdb .PdfAnnotationMarkup .appendToPdfDictionary (_aeafd );_aeafd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t")); _aeafd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bdb .QuadPoints );return _aega ;}; // ToPdfObject converts the pdfCIDFontType0 to a PDF representation. func (_fgbea *pdfCIDFontType0 )ToPdfObject ()_eca .PdfObject {return _eca .MakeNull ()}; // GetPageDict converts the Page to a PDF object dictionary. func (_gfbb *PdfPage )GetPageDict ()*_eca .PdfObjectDictionary {_cgfdf :=_gfbb ._agaea ;_cgfdf .Clear ();_cgfdf .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0050\u0061\u0067\u0065"));_cgfdf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gfbb .Parent ); if _gfbb .LastModified !=nil {_cgfdf .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_gfbb .LastModified .ToPdfObject ());};if _gfbb .Resources !=nil {_cgfdf .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_gfbb .Resources .ToPdfObject ()); };if _gfbb .CropBox !=nil {_cgfdf .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_gfbb .CropBox .ToPdfObject ());};if _gfbb .MediaBox !=nil {_cgfdf .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_gfbb .MediaBox .ToPdfObject ());};if _gfbb .BleedBox !=nil {_cgfdf .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_gfbb .BleedBox .ToPdfObject ()); };if _gfbb .TrimBox !=nil {_cgfdf .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_gfbb .TrimBox .ToPdfObject ());};if _gfbb .ArtBox !=nil {_cgfdf .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_gfbb .ArtBox .ToPdfObject ());};_cgfdf .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_gfbb .BoxColorInfo ); _cgfdf .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_gfbb .Contents );if _gfbb .Rotate !=nil {_cgfdf .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_eca .MakeInteger (*_gfbb .Rotate ));};_cgfdf .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_gfbb .Group ); _cgfdf .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_gfbb .Thumb );_cgfdf .SetIfNotNil ("\u0042",_gfbb .B );_cgfdf .SetIfNotNil ("\u0044\u0075\u0072",_gfbb .Dur );_cgfdf .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_gfbb .Trans );_cgfdf .SetIfNotNil ("\u0041\u0041",_gfbb .AA ); _cgfdf .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_gfbb .Metadata );_cgfdf .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_gfbb .PieceInfo );_cgfdf .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_gfbb .StructParents ); _cgfdf .SetIfNotNil ("\u0049\u0044",_gfbb .ID );_cgfdf .SetIfNotNil ("\u0050\u005a",_gfbb .PZ );_cgfdf .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_gfbb .SeparationInfo );_cgfdf .SetIfNotNil ("\u0054\u0061\u0062\u0073",_gfbb .Tabs ); _cgfdf .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_gfbb .TemplateInstantiated );_cgfdf .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_gfbb .PresSteps );_cgfdf .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_gfbb .UserUnit ); _cgfdf .SetIfNotNil ("\u0056\u0050",_gfbb .VP );if _gfbb ._gabcd !=nil {_bdedb :=_eca .MakeArray ();for _ ,_cegeb :=range _gfbb ._gabcd {if _dbcbe :=_cegeb .GetContext ();_dbcbe !=nil {_bdedb .Append (_dbcbe .ToPdfObject ());}else {_bdedb .Append (_cegeb .ToPdfObject ()); };};if _bdedb .Len ()> 0{_cgfdf .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_bdedb );};}else if _gfbb .Annots !=nil {_cgfdf .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_gfbb .Annots );};return _cgfdf ;}; // SetPdfCreationDate sets the CreationDate attribute of the output PDF. func SetPdfCreationDate (creationDate _d .Time ){_ccbac .Lock ();defer _ccbac .Unlock ();_fcacce =creationDate ;}; // ToPdfObject implements interface PdfModel. func (_dcd *PdfActionNamed )ToPdfObject ()_eca .PdfObject {_dcd .PdfAction .ToPdfObject ();_cfb :=_dcd ._bee ;_acf :=_cfb .PdfObject .(*_eca .PdfObjectDictionary );_acf .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeNamed )));_acf .SetIfNotNil ("\u004e",_dcd .N ); return _cfb ;}; // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // components. The slice should contain a single PdfObjectFloat element. func (_bcac *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffae ,_fagb :=_eca .GetNumbersAsFloat (objects ); if _fagb !=nil {return nil ,_fagb ;};return _bcac .ColorFromFloats (_ffae );}; // SetPdfAuthor sets the Author attribute of the output PDF. func SetPdfAuthor (author string ){_ccbac .Lock ();defer _ccbac .Unlock ();_dgebb =author }; // 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 *_eca .PdfObjectInteger ;TilingType *_eca .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_eca .PdfObjectFloat ;YStep *_eca .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_eca .PdfObjectArray ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_dbaaa *PdfShadingType3 )ToPdfObject ()_eca .PdfObject {_dbaaa .PdfShading .ToPdfObject ();_ebff ,_cbce :=_dbaaa .getShadingDict ();if _cbce !=nil {_ccb .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 _dbaaa .Coords !=nil {_ebff .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_dbaaa .Coords );};if _dbaaa .Domain !=nil {_ebff .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dbaaa .Domain );};if _dbaaa .Function !=nil {if len (_dbaaa .Function )==1{_ebff .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dbaaa .Function [0].ToPdfObject ()); }else {_bgbgbc :=_eca .MakeArray ();for _ ,_cbfe :=range _dbaaa .Function {_bgbgbc .Append (_cbfe .ToPdfObject ());};_ebff .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bgbgbc );};};if _dbaaa .Extend !=nil {_ebff .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_dbaaa .Extend ); };return _dbaaa ._dcbe ;};func (_bbgfae *pdfFontSimple )addEncoding ()error {var (_gefdd string ;_cdcb map[_dbb .CharCode ]_dbb .GlyphName ;_abdcc _dbb .SimpleEncoder ;);if _bbgfae .Encoder ()!=nil {_cecd ,_fadad :=_bbgfae .Encoder ().(_dbb .SimpleEncoder ); if _fadad &&_cecd !=nil {_gefdd =_cecd .BaseName ();};};if _bbgfae .Encoding !=nil {_bdaaa ,_beabb ,_dedfd :=_bbgfae .getFontEncoding ();if _dedfd !=nil {_ccb .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",_bbgfae ._daac ,_bbgfae ._cfbe ,_bbgfae .Encoding ,_bbgfae .Encoding ,_dedfd ); return _dedfd ;};if _bdaaa !=""{_gefdd =_bdaaa ;};_cdcb =_beabb ;_abdcc ,_dedfd =_dbb .NewSimpleTextEncoder (_gefdd ,_cdcb );if _dedfd !=nil {return _dedfd ;};};if _abdcc ==nil {_bfgfa :=_bbgfae ._ccec ;if _bfgfa !=nil {switch _bbgfae ._cfbe {case "\u0054\u0079\u0070e\u0031":if _bfgfa .fontFile !=nil &&_bfgfa .fontFile ._eggeg !=nil {_ccb .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065"); _abdcc =_bfgfa .fontFile ._eggeg ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _bfgfa ._aacg !=nil {_ccb .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_dgeec ,_egfeg :=_bfgfa ._aacg .MakeEncoder (); if _egfeg ==nil {_abdcc =_dgeec ;};if _bbgfae ._gegfa ==nil {_bbgfae ._gegfa =_bfgfa ._aacg .MakeToUnicode ();};};};};};if _abdcc !=nil {if _cdcb !=nil {_ccb .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_cdcb ,_bbgfae .baseFields ()); _abdcc =_dbb .ApplyDifferences (_abdcc ,_cdcb );};_bbgfae .SetEncoder (_abdcc );};return nil ;}; // NewPdfActionSubmitForm returns a new "submit form" action. func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_gb :=NewPdfAction ();_ebd :=&PdfActionSubmitForm {};_ebd .PdfAction =_gb ;_gb .SetContext (_ebd );return _ebd ;}; // ToPdfObject converts the font to a PDF representation. func (_fbecd *pdfFontType0 )ToPdfObject ()_eca .PdfObject {if _fbecd ._cgaae ==nil {_fbecd ._cgaae =&_eca .PdfIndirectObject {};};_ddeadg :=_fbecd .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_fbecd ._cgaae .PdfObject =_ddeadg ;if _fbecd .Encoding !=nil {_ddeadg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_fbecd .Encoding ); }else if _fbecd ._gdcea !=nil {_ddeadg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_fbecd ._gdcea .ToPdfObject ());};if _fbecd .DescendantFont !=nil {_ddeadg .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_eca .MakeArray (_fbecd .DescendantFont .ToPdfObject ())); };return _fbecd ._cgaae ;}; // PdfAnnotationSquare represents Square annotations. // (Section 12.5.6.8). type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _eca .PdfObject ;IC _eca .PdfObject ;BE _eca .PdfObject ;RD _eca .PdfObject ;}; // SetPdfProducer sets the Producer attribute of the output PDF. func SetPdfProducer (producer string ){_ccbac .Lock ();defer _ccbac .Unlock ();_bdaae =producer };func (_egg *PdfReader )newPdfActionSetOCGStateFromDict (_cbed *_eca .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_cbed .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_cbed .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ; }; // NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive. func NewXObjectForm ()*XObjectForm {_fgcdb :=&XObjectForm {};_ebfaf :=&_eca .PdfObjectStream {};_ebfaf .PdfObjectDictionary =_eca .MakeDict ();_fgcdb ._afddc =_ebfaf ;return _fgcdb ;};func (_gdge *PdfReader )newPdfAnnotationTextFromDict (_ecf *_eca .PdfObjectDictionary )(*PdfAnnotationText ,error ){_fecd :=PdfAnnotationText {}; _dgca ,_dcggc :=_gdge .newPdfAnnotationMarkupFromDict (_ecf );if _dcggc !=nil {return nil ,_dcggc ;};_fecd .PdfAnnotationMarkup =_dgca ;_fecd .Open =_ecf .Get ("\u004f\u0070\u0065\u006e");_fecd .Name =_ecf .Get ("\u004e\u0061\u006d\u0065");_fecd .State =_ecf .Get ("\u0053\u0074\u0061t\u0065"); _fecd .StateModel =_ecf .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");return &_fecd ,nil ;}; // IsEncrypted returns true if the PDF file is encrypted. func (_cfeeaa *PdfReader )IsEncrypted ()(bool ,error ){return _cfeeaa ._ecfeba .IsEncrypted ()}; // WriteToFile writes the output PDF to file. func (_dbbe *PdfWriter )WriteToFile (outputFilePath string )error {_cffe ,_gacfbf :=_efg .Create (outputFilePath );if _gacfbf !=nil {return _gacfbf ;};defer _cffe .Close ();return _dbbe .Write (_cffe );}; // 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 (_eadaf *PdfWriter )SetOpenAction (dest _eca .PdfObject )error {if dest ==nil ||_eca .IsNullObject (dest ){return nil ;};_eadaf ._eeggd .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _eadaf .addObjects (dest );}; // L returns the value of the L component of the color. func (_dbcb *PdfColorLab )L ()float64 {return _dbcb [0]};func (_efafeb *PdfReader )newPdfSignatureReferenceFromDict (_dead *_eca .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _dabe ,_bcfdb :=_efafeb ._dcddd .GetModelFromPrimitive (_dead ).(*PdfSignatureReference ); _bcfdb {return _dabe ,nil ;};_afeac :=&PdfSignatureReference {_fdgfa :_dead ,Data :_dead .Get ("\u0044\u0061\u0074\u0061")};var _cccda bool ;_afeac .Type ,_ =_eca .GetName (_dead .Get ("\u0054\u0079\u0070\u0065"));_afeac .TransformMethod ,_cccda =_eca .GetName (_dead .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064")); if !_cccda {_ccb .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 ;};_afeac .TransformParams ,_ =_eca .GetDict (_dead .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_afeac .DigestMethod ,_ =_eca .GetName (_dead .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064")); return _afeac ,nil ;}; // GetContainingPdfObject implements interface PdfModel. func (_ccf *PdfAnnotation )GetContainingPdfObject ()_eca .PdfObject {return _ccf ._cdc }; // GetXHeight returns the XHeight of the font `descriptor`. func (_dbaa *PdfFontDescriptor )GetXHeight ()(float64 ,error ){return _eca .GetNumberAsFloat (_dbaa .XHeight );}; // SetAnnotations sets the annotations list. func (_bccg *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_bccg ._gabcd =annotations }; // NewPdfAnnotationScreen returns a new screen annotation. func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_bgcc :=NewPdfAnnotation ();_cabb :=&PdfAnnotationScreen {};_cabb .PdfAnnotation =_bgcc ;_bgcc .SetContext (_cabb );return _cabb ;}; // GetContext returns the annotation context which contains the specific type-dependent context. // The context represents the subannotation. func (_cab *PdfAnnotation )GetContext ()PdfModel {if _cab ==nil {return nil ;};return _cab ._abc ;};func (_ccac *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"}; // 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 (_cgac PdfColor )(PdfColor ,error ); // GetNumComponents returns the number of components in the PdfColorspace. GetNumComponents ()int ; // ToPdfObject returns a PdfObject representation of the PdfColorspace. ToPdfObject ()_eca .PdfObject ; // ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each // PdfObject represents a numeric value. ColorFromPdfObjects (_cfdc []_eca .PdfObject )(PdfColor ,error ); // ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace. ColorFromFloats (_dcfe []float64 )(PdfColor ,error ); // DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component. DecodeArray ()[]float64 ;}; // ToPdfObject returns the PDF representation of the shading pattern. func (_ddfac *PdfShadingPatternType3 )ToPdfObject ()_eca .PdfObject {_ddfac .PdfPattern .ToPdfObject ();_aacd :=_ddfac .getDict ();if _ddfac .Shading !=nil {_aacd .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_ddfac .Shading .ToPdfObject ());};if _ddfac .Matrix !=nil {_aacd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_ddfac .Matrix ); };if _ddfac .ExtGState !=nil {_aacd .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_ddfac .ExtGState );};return _ddfac ._cdfed ;}; // 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 (_cacd *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _cacd .flattenFieldsWithOpts (false ,appgen ,opts );}; // Write writes out the PDF. func (_bbccf *PdfWriter )Write (writer _beg .Writer )error {_ccb .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_aaec :=_bbccf .checkLicense ();if _aaec !=nil {return _aaec ;};if _aaec =_bbccf .writeOutlines ();_aaec !=nil {return _aaec ;};if _aaec =_bbccf .writeAcroFormFields (); _aaec !=nil {return _aaec ;};_bbccf .checkPendingObjects ();if _aaec =_bbccf .writeOutputIntents ();_aaec !=nil {return _aaec ;};_bbccf .setCatalogVersion ();_bbccf .copyObjects ();if _aaec =_bbccf .optimize ();_aaec !=nil {return _aaec ;};if _aaec =_bbccf .optimizeDocument (); _aaec !=nil {return _aaec ;};var _cddafg _f .Hash ;if _bbccf ._dagbd {_cddafg =_ca .New ();writer =_beg .MultiWriter (_cddafg ,writer );};_bbccf .setWriter (writer );_ggbbg :=_bbccf .checkCrossReferenceStream ();_bffca ,_ggbbg :=_bbccf .mapObjectStreams (_ggbbg ); _bbccf .adjustXRefAffectedVersion (_ggbbg );_bbccf .writeDocumentVersion ();_bbccf .updateObjectNumbers ();_bbccf .writeObjects ();if _aaec =_bbccf .writeObjectsInStreams (_bffca );_aaec !=nil {return _aaec ;};_ggaceb :=_bbccf ._eggaf ;var _faggff int ; for _gdgec :=range _bbccf ._eaad {if _gdgec > _faggff {_faggff =_gdgec ;};};if _bbccf ._dagbd {if _aaec =_bbccf .setHashIDs (_cddafg );_aaec !=nil {return _aaec ;};};if _ggbbg {if _aaec =_bbccf .writeXRefStreams (_faggff ,_ggaceb );_aaec !=nil {return _aaec ; };}else {_bbccf .writeTrailer (_faggff );};_bbccf .makeOffSetReference (_ggaceb );if _aaec =_bbccf .flushWriter ();_aaec !=nil {return _aaec ;};return nil ;};func (_dfce *PdfReader )newPdfActionURIFromDict (_bag *_eca .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_bag .Get ("\u0055\u0052\u0049"),IsMap :_bag .Get ("\u0049\u0073\u004da\u0070")},nil ; };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<<26); FieldFlagDoNotSpellCheck FieldFlag =(1<<22);FieldFlagCombo FieldFlag =(1<<17);FieldFlagEdit FieldFlag =(1<<18);FieldFlagSort FieldFlag =(1<<19);FieldFlagMultiSelect FieldFlag =(1<<21);FieldFlagCommitOnSelChange FieldFlag =(1<<27);); // ToPdfObject return the CalGray colorspace as a PDF object (name dictionary). func (_gabc *PdfColorspaceCalGray )ToPdfObject ()_eca .PdfObject {_bdca :=&_eca .PdfObjectArray {};_bdca .Append (_eca .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_abge :=_eca .MakeDict ();if _gabc .WhitePoint !=nil {_abge .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_eca .MakeArray (_eca .MakeFloat (_gabc .WhitePoint [0]),_eca .MakeFloat (_gabc .WhitePoint [1]),_eca .MakeFloat (_gabc .WhitePoint [2]))); }else {_ccb .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 _gabc .BlackPoint !=nil {_abge .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_eca .MakeArray (_eca .MakeFloat (_gabc .BlackPoint [0]),_eca .MakeFloat (_gabc .BlackPoint [1]),_eca .MakeFloat (_gabc .BlackPoint [2]))); };_abge .Set ("\u0047\u0061\u006dm\u0061",_eca .MakeFloat (_gabc .Gamma ));_bdca .Append (_abge );if _gabc ._aaba !=nil {_gabc ._aaba .PdfObject =_bdca ;return _gabc ._aaba ;};return _bdca ;};func (_ecca *PdfReader )newPdfAnnotationPrinterMarkFromDict (_dffg *_eca .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_eabe :=PdfAnnotationPrinterMark {}; _eabe .MN =_dffg .Get ("\u004d\u004e");return &_eabe ,nil ;};type fontFile struct{_gfafb string ;_dcgda string ;_eggeg _dbb .SimpleEncoder ;};func (_gda *PdfReader )newPdfAnnotationUnderlineFromDict (_cga *_eca .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_ecae :=PdfAnnotationUnderline {}; _dgd ,_bdgg :=_gda .newPdfAnnotationMarkupFromDict (_cga );if _bdgg !=nil {return nil ,_bdgg ;};_ecae .PdfAnnotationMarkup =_dgd ;_ecae .QuadPoints =_cga .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_ecae ,nil ;}; // SetAlpha sets the alpha layer for the image. func (_cgcaf *Image )SetAlpha (alpha []byte ){_cgcaf ._gcgb =alpha }; // FullName returns the full name of the field as in rootname.parentname.partialname. func (_cdcc *PdfField )FullName ()(string ,error ){var _aefe _dd .Buffer ;_cgba :=[]string {};if _cdcc .T !=nil {_cgba =append (_cgba ,_cdcc .T .Decoded ());};_ffbd :=map[*PdfField ]bool {};_ffbd [_cdcc ]=true ;_ccbg :=_cdcc .Parent ;for _ccbg !=nil {if _ ,_cfab :=_ffbd [_ccbg ]; _cfab {return _aefe .String (),_da .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _ccbg .T ==nil {return _aefe .String (),_da .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"); };_cgba =append (_cgba ,_ccbg .T .Decoded ());_ffbd [_ccbg ]=true ;_ccbg =_ccbg .Parent ;};for _acfcg :=len (_cgba )-1;_acfcg >=0;_acfcg --{_aefe .WriteString (_cgba [_acfcg ]);if _acfcg > 0{_aefe .WriteString ("\u002e");};};return _aefe .String (),nil ; }; // 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 ;_faddg *_eca .PdfIndirectObject ;}; // 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 _beg .ReadSeeker )(*PdfReader ,error ){const _bdddc ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _cfbdee (rs ,&ReaderOpts {LazyLoad :true },false ,_bdddc ); }; // 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 (_ddbfc DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,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 (_gadbe *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _gadbe .flattenFieldsWithOpts (allannots ,appgen ,nil );}; // NewPdfColorspaceSpecialPattern returns a new pattern color. func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};func (_bdad *PdfFont )baseFields ()*fontCommon {if _bdad ._dbgb ==nil {_ccb .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 _bdad ._dbgb .baseFields ();};func (_cbfa *pdfFontSimple )getFontEncoding ()(_cedga string ,_cgda map[_dbb .CharCode ]_dbb .GlyphName ,_bbaba error ){_cedga ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"; if _eggb ,_aebaa :=_afag [_cbfa ._daac ];_aebaa {_cedga =_eggb ;}else if _cbfa .fontFlags ()&_afdga !=0{for _beef ,_bcegf :=range _afag {if _ec .Contains (_cbfa ._daac ,_beef ){_cedga =_bcegf ;break ;};};};if _cbfa .Encoding ==nil {return _cedga ,nil ,nil ; };switch _caab :=_cbfa .Encoding .(type ){case *_eca .PdfObjectName :return string (*_caab ),nil ,nil ;case *_eca .PdfObjectDictionary :_dfcdc ,_gdcga :=_eca .GetName (_caab .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067")); if _gdcga {_cedga =_dfcdc .String ();};if _ggdf :=_caab .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_ggdf !=nil {_geae ,_gcfdb :=_eca .GetArray (_ggdf );if !_gcfdb {_ccb .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",_caab ,_caab .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073")); return "",nil ,_eca .ErrTypeError ;};_cgda ,_bbaba =_dbb .FromFontDifferences (_geae );};return _cedga ,_cgda ,_bbaba ;default:_ccb .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",_cbfa .Encoding ,_cbfa .Encoding ); return "",nil ,_eca .ErrTypeError ;};}; // HasPatternByName checks whether a pattern object is defined by the specified keyName. func (_faeg *PdfPageResources )HasPatternByName (keyName _eca .PdfObjectName )bool {_ ,_cacdg :=_faeg .GetPatternByName (keyName );return _cacdg ;}; // GetContainingPdfObject returns the container of the outline item (indirect object). func (_aaaa *PdfOutlineItem )GetContainingPdfObject ()_eca .PdfObject {return _aaaa ._becge }; // 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 (_cfgb *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dffd :=vals [0];if _dffd < 0.0||_dffd > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_dffd ); return nil ,ErrColorOutOfRange ;};_cccf :=NewPdfColorCalGray (_dffd );return _cccf ,nil ;}; // NewPdfFilespec returns an initialized generic PDF filespec model. func NewPdfFilespec ()*PdfFilespec {_fegf :=&PdfFilespec {};_fegf ._ggdg =_eca .MakeIndirectObject (_eca .MakeDict ());return _fegf ;}; // ImageToRGB converts Lab colorspace image to RGB and returns the result. func (_cedf *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_bcdc :=func (_efgf float64 )float64 {if _efgf >=6.0/29{return _efgf *_efgf *_efgf ;};return 108.0/841*(_efgf -4.0/29.0);};_fadff :=img ._cfgaa ;if len (_fadff )!=6{_ccb .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"); _fadff =_cedf .DecodeArray ();};_efbf :=_bf .NewReader (img .getBase ());_addc :=_bbg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._gcgb ,img ._cfgaa );_affeg :=_bf .NewWriter (_addc );_eceb :=_de .Pow (2,float64 (img .BitsPerComponent ))-1; _ddbd :=make ([]uint32 ,3);var (_daebd error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_gafc ,_deffe ,_gagba float64 ;);for {_daebd =_efbf .ReadSamples (_ddbd );if _daebd ==_beg .EOF {break ;}else if _daebd !=nil {return img ,_daebd ;};Ls =float64 (_ddbd [0])/_eceb ; As =float64 (_ddbd [1])/_eceb ;Bs =float64 (_ddbd [2])/_eceb ;Ls =_bbg .LinearInterpolate (Ls ,0.0,1.0,_fadff [0],_fadff [1]);As =_bbg .LinearInterpolate (As ,0.0,1.0,_fadff [2],_fadff [3]);Bs =_bbg .LinearInterpolate (Bs ,0.0,1.0,_fadff [4],_fadff [5]); L =(Ls +16)/116+As /500;M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_cedf .WhitePoint [0]*_bcdc (L );Y =_cedf .WhitePoint [1]*_bcdc (M );Z =_cedf .WhitePoint [2]*_bcdc (N );_gafc =3.240479*X +-1.537150*Y +-0.498535*Z ;_deffe =-0.969256*X +1.875992*Y +0.041556*Z ; _gagba =0.055648*X +-0.204043*Y +1.057311*Z ;_gafc =_de .Min (_de .Max (_gafc ,0),1.0);_deffe =_de .Min (_de .Max (_deffe ,0),1.0);_gagba =_de .Min (_de .Max (_gagba ,0),1.0);_ddbd [0]=uint32 (_gafc *_eceb );_ddbd [1]=uint32 (_deffe *_eceb );_ddbd [2]=uint32 (_gagba *_eceb ); if _daebd =_affeg .WriteSamples (_ddbd );_daebd !=nil {return img ,_daebd ;};};return _cggae (&_addc ),nil ;};func (_dccfd *PdfReader )newPdfActionJavaScriptFromDict (_bfa *_eca .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_bfa .Get ("\u004a\u0053")},nil ; }; // ParserMetadata gets the parser metadata. func (_afaf *CompliancePdfReader )ParserMetadata ()_eca .ParserMetadata {if _afaf ._cbbce ==(_eca .ParserMetadata {}){_afaf ._cbbce ,_ =_afaf ._ecfeba .ParserMetadata ();};return _afaf ._cbbce ;}; // GetShadingByName gets the shading specified by keyName. Returns nil if not existing. // The bool flag indicated whether it was found or not. func (_edabg *PdfPageResources )GetShadingByName (keyName _eca .PdfObjectName )(*PdfShading ,bool ){if _edabg .Shading ==nil {return nil ,false ;};_ggffg ,_bcbcc :=_eca .TraceToDirectObject (_edabg .Shading ).(*_eca .PdfObjectDictionary );if !_bcbcc {_ccb .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",_edabg .Shading ); return nil ,false ;};if _dega :=_ggffg .Get (keyName );_dega !=nil {_bebfg ,_gaebf :=_ecaad (_dega );if _gaebf !=nil {_ccb .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",_gaebf ); return nil ,false ;};return _bebfg ,true ;};return nil ,false ;};type modelManager struct{_dccab map[PdfModel ]_eca .PdfObject ;_gddea map[_eca .PdfObject ]PdfModel ;};func _ebcdg (_ffcg *PdfField ,_cebed _eca .PdfObject ){for _ ,_edcgd :=range _ffcg .Annotations {_edcgd .AS =_cebed ; _edcgd .ToPdfObject ();};}; // SetXObjectByName adds the XObject from the passed in stream to the page resources. // The added XObject is identified by the specified name. func (_acgfe *PdfPageResources )SetXObjectByName (keyName _eca .PdfObjectName ,stream *_eca .PdfObjectStream )error {if _acgfe .XObject ==nil {_acgfe .XObject =_eca .MakeDict ();};_cbdfe :=_eca .TraceToDirectObject (_acgfe .XObject );_eeafb ,_dbccg :=_cbdfe .(*_eca .PdfObjectDictionary ); if !_dbccg {_ccb .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",_acgfe .XObject ,_cbdfe );return _da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072"); };_eeafb .Set (keyName ,stream );return nil ;}; // ToPdfObject implements interface PdfModel. func (_gd *PdfActionGoTo3DView )ToPdfObject ()_eca .PdfObject {_gd .PdfAction .ToPdfObject ();_gde :=_gd ._bee ;_cde :=_gde .PdfObject .(*_eca .PdfObjectDictionary );_cde .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeGoTo3DView )));_cde .SetIfNotNil ("\u0054\u0041",_gd .TA ); _cde .SetIfNotNil ("\u0056",_gd .V );return _gde ;}; // NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image. // If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead. func (_eaaed DefaultImageHandler )NewImageFromGoImage (goimg _cc .Image )(*Image ,error ){_feaa ,_dgbfa :=_bbg .FromGoImage (goimg );if _dgbfa !=nil {return nil ,_dgbfa ;};_abbd :=_cggae (_feaa .Base ());return &_abbd ,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 (_feeg *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eacd :=vals [0];if _eacd < 0.0||_eacd > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_eacd ); return nil ,ErrColorOutOfRange ;};_eeae :=vals [1];if _eeae < 0.0||_eeae > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_eeae );return nil ,ErrColorOutOfRange ; };_fcdf :=vals [2];if _fcdf < 0.0||_fcdf > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fcdf );return nil ,ErrColorOutOfRange ;};_ddfd :=NewPdfColorCalRGB (_eacd ,_eeae ,_fcdf ); return _ddfd ,nil ;}; // NewStandard14Font returns the standard 14 font named `basefont` as a *PdfFont, or an error if it // `basefont` is not one of the standard 14 font names. func NewStandard14Font (basefont StdFontName )(*PdfFont ,error ){_bdcebc ,_cdef :=_dbecc (basefont );if _cdef !=nil {return nil ,_cdef ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_bdcebc ._daddc =_dbb .NewWinAnsiEncoder ();};return &PdfFont {_dbgb :&_bdcebc },nil ; }; // SetForms sets the Acroform for a PDF file. func (_bcaed *PdfWriter )SetForms (form *PdfAcroForm )error {_bcaed ._bebb =form ;return nil }; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. func (_aaae *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _aaae .Alternate ==nil {if _aaae .N ==1{_edece :=NewPdfColorspaceDeviceGray ();return _edece .ColorFromFloats (vals );}else if _aaae .N ==3{_bbagg :=NewPdfColorspaceDeviceRGB (); return _bbagg .ColorFromFloats (vals );}else if _aaae .N ==4{_eegd :=NewPdfColorspaceDeviceCMYK ();return _eegd .ColorFromFloats (vals );}else {return nil ,_da .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 _aaae .Alternate .ColorFromFloats (vals );}; // AddOCSPs adds OCSPs to DSS. func (_badf *DSS )AddOCSPs (ocsps [][]byte )([]*_eca .PdfObjectStream ,error ){return _badf .add (&_badf .OCSPs ,_badf ._defag ,ocsps );}; // 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 (_cabc *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _da .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"); };_gdce :=field .V ;if _gdce ==nil {return _da .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");};_bgae :=pageNum -1; if _bgae < 0||_bgae > len (_cabc ._fecc )-1{return _g .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_gbga :=_cabc .Reader .PageList [_bgae ];field .P =_gbga .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_eca .MakeString (_g .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum )); };_gbga .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _cabc ._edcc ==_cabc ._badg .AcroForm {_cabc ._edcc =_cabc .Reader .AcroForm ;};_gaac :=_cabc ._edcc ;if _gaac ==nil {_gaac =NewPdfAcroForm ();};_gaac .SigFlags =_eca .MakeInteger (3); if _gaac .NeedAppearances !=nil {_gaac .NeedAppearances =nil ;};_abac :=append (_gaac .AllFields (),field .PdfField );_gaac .Fields =&_abac ;_cabc .ReplaceAcroForm (_gaac );_cabc .UpdatePage (_gbga );_cabc ._fecc [_bgae ]=_gbga ;if _ ,_beed :=field .V .GetDocMDPPermission (); _beed {_cabc ._faca =NewPermissions (field .V );};return nil ;}; // PdfAnnotationPolyLine represents PolyLine annotations. // (Section 12.5.6.9). type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _eca .PdfObject ;LE _eca .PdfObject ;BS _eca .PdfObject ;IC _eca .PdfObject ;BE _eca .PdfObject ;IT _eca .PdfObject ;Measure _eca .PdfObject ;}; // NewPdfActionTrans returns a new "trans" action. func NewPdfActionTrans ()*PdfActionTrans {_fff :=NewPdfAction ();_ceb :=&PdfActionTrans {};_ceb .PdfAction =_fff ;_fff .SetContext (_ceb );return _ceb ;};func _fgcd (_gged _ffd .StdFont )pdfFontSimple {_gdddf :=_gged .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_cfbe :"\u0054\u0079\u0070e\u0031",_daac :_gged .Name ()},_cedde :_gged .GetMetricsTable (),_bggag :&PdfFontDescriptor {FontName :_eca .MakeName (string (_gdddf .Name )),FontFamily :_eca .MakeName (_gdddf .Family ),FontWeight :_eca .MakeFloat (float64 (_gdddf .Weight )),Flags :_eca .MakeInteger (int64 (_gdddf .Flags )),FontBBox :_eca .MakeArrayFromFloats (_gdddf .BBox [:]),ItalicAngle :_eca .MakeFloat (_gdddf .ItalicAngle ),Ascent :_eca .MakeFloat (_gdddf .Ascent ),Descent :_eca .MakeFloat (_gdddf .Descent ),CapHeight :_eca .MakeFloat (_gdddf .CapHeight ),XHeight :_eca .MakeFloat (_gdddf .XHeight ),StemV :_eca .MakeFloat (_gdddf .StemV ),StemH :_eca .MakeFloat (_gdddf .StemH )},_aaggg :_gged .Encoder ()}; };func (_deeg *PdfWriter )optimizeDocument ()error {if _deeg ._bfgeb ==nil {return nil ;};_dcfba ,_cedfe :=_eca .GetDict (_deeg ._fbegc );if !_cedfe {return _da .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"); };_fcafg :=_ba .Document {ID :[2]string {_deeg ._aadc ,_deeg ._fcbcc },Version :_deeg ._dgab ,Objects :_deeg ._daecf ,Info :_dcfba ,Crypt :_deeg ._badga ,UseHashBasedID :_deeg ._dagbd };if _ggdad :=_deeg ._bfgeb .ApplyStandard (&_fcafg );_ggdad !=nil {return _ggdad ; };_deeg ._aadc ,_deeg ._fcbcc =_fcafg .ID [0],_fcafg .ID [1];_deeg ._dgab =_fcafg .Version ;_deeg ._daecf =_fcafg .Objects ;_deeg ._fbegc .PdfObject =_fcafg .Info ;_deeg ._dagbd =_fcafg .UseHashBasedID ;_deeg ._badga =_fcafg .Crypt ;_dfbd :=make (map[_eca .PdfObject ]struct{},len (_deeg ._daecf )); for _ ,_gebcf :=range _deeg ._daecf {_dfbd [_gebcf ]=struct{}{};};_deeg ._ceace =_dfbd ;return nil ;}; // GetContainingPdfObject implements interface PdfModel. func (_cce *PdfAction )GetContainingPdfObject ()_eca .PdfObject {return _cce ._bee }; // ColorToRGB converts a DeviceN color to an RGB color. func (_fcacd *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _fcacd .AlternateSpace ==nil {return nil ,_da .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 _fcacd .AlternateSpace .ColorToRGB (color );}; // ToPdfObject implements interface PdfModel. func (_cfd *PdfActionThread )ToPdfObject ()_eca .PdfObject {_cfd .PdfAction .ToPdfObject ();_feg :=_cfd ._bee ;_bgd :=_feg .PdfObject .(*_eca .PdfObjectDictionary );_bgd .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeThread )));if _cfd .F !=nil {_bgd .Set ("\u0046",_cfd .F .ToPdfObject ()); };_bgd .SetIfNotNil ("\u0044",_cfd .D );_bgd .SetIfNotNil ("\u0042",_cfd .B );return _feg ;};func _fgaf (_bedf *_eca .PdfObjectDictionary )bool {for _ ,_bbaf :=range _bedf .Keys (){if _ ,_gaee :=_ddead [_bbaf .String ()];_gaee {return true ;};};return false ; }; // 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 (_cgafa *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_bgadd :=_cgafa .GetContentStreamObjs ();wrapContents =wrapContents &&len (_bgadd )> 0;_bccgc :=_eca .NewFlateEncoder ();_cebga :=_eca .MakeArray ();if wrapContents {_dfcdfa ,_agadd :=_eca .MakeStream ([]byte ("\u0071\u000a"),_bccgc ); if _agadd !=nil {return _agadd ;};_cebga .Append (_dfcdfa );};_cebga .Append (_bgadd ...);if wrapContents {_dcdad ,_cecb :=_eca .MakeStream ([]byte ("\u000a\u0051\u000a"),_bccgc );if _cecb !=nil {return _cecb ;};_cebga .Append (_dcdad );};_fddec ,_faeee :=_eca .MakeStream (cs ,_bccgc ); if _faeee !=nil {return _faeee ;};_cebga .Append (_fddec );_cgafa .Contents =_cebga ;return nil ;}; // PdfAnnotationStamp represents Stamp annotations. // (Section 12.5.6.12). type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _eca .PdfObject ;}; // 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 *_eca .PdfObjectStream )(*XObjectImage ,error ){_dceage :=&XObjectImage {};_dceage ._gddeaa =stream ;_gbaaf :=*(stream .PdfObjectDictionary );_cdag ,_febef :=_eca .NewEncoderFromStream (stream );if _febef !=nil {return nil ,_febef ; };_dceage .Filter =_cdag ;if _cdfda :=_eca .TraceToDirectObject (_gbaaf .Get ("\u0057\u0069\u0064t\u0068"));_cdfda !=nil {_eecfe ,_cfdccd :=_cdfda .(*_eca .PdfObjectInteger );if !_cfdccd {return nil ,_da .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"); };_eeddbg :=int64 (*_eecfe );_dceage .Width =&_eeddbg ;}else {return nil ,_da .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _bceab :=_eca .TraceToDirectObject (_gbaaf .Get ("\u0048\u0065\u0069\u0067\u0068\u0074")); _bceab !=nil {_efafg ,_eefgc :=_bceab .(*_eca .PdfObjectInteger );if !_eefgc {return nil ,_da .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_deca :=int64 (*_efafg ); _dceage .Height =&_deca ;}else {return nil ,_da .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _cabcf :=_eca .TraceToDirectObject (_gbaaf .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065")); _cabcf !=nil {_ecaaf ,_baffc :=NewPdfColorspaceFromPdfObject (_cabcf );if _baffc !=nil {return nil ,_baffc ;};_dceage .ColorSpace =_ecaaf ;}else {_ccb .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"); _dceage .ColorSpace =NewPdfColorspaceDeviceGray ();};if _gcdcdb :=_eca .TraceToDirectObject (_gbaaf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_gcdcdb !=nil {_ccegc ,_dfgbg :=_gcdcdb .(*_eca .PdfObjectInteger ); if !_dfgbg {return nil ,_da .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_aadae :=int64 (*_ccegc );_dceage .BitsPerComponent =&_aadae ;};_dceage .Intent =_gbaaf .Get ("\u0049\u006e\u0074\u0065\u006e\u0074"); _dceage .ImageMask =_gbaaf .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_dceage .Mask =_gbaaf .Get ("\u004d\u0061\u0073\u006b");_dceage .Decode =_gbaaf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_dceage .Interpolate =_gbaaf .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065"); _dceage .Alternatives =_gbaaf .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_dceage .SMask =_gbaaf .Get ("\u0053\u004d\u0061s\u006b");_dceage .SMaskInData =_gbaaf .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061"); _dceage .Matte =_gbaaf .Get ("\u004d\u0061\u0074t\u0065");_dceage .Name =_gbaaf .Get ("\u004e\u0061\u006d\u0065");_dceage .StructParent =_gbaaf .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_dceage .ID =_gbaaf .Get ("\u0049\u0044"); _dceage .OPI =_gbaaf .Get ("\u004f\u0050\u0049");_dceage .Metadata =_gbaaf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_dceage .OC =_gbaaf .Get ("\u004f\u0043");_dceage .Stream =stream .Stream ;return _dceage ,nil ;}; // ToPdfObject returns the PDF representation of the shading pattern. func (_fcdec *PdfShadingPattern )ToPdfObject ()_eca .PdfObject {_fcdec .PdfPattern .ToPdfObject ();_ccada :=_fcdec .getDict ();if _fcdec .Shading !=nil {_ccada .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_fcdec .Shading .ToPdfObject ());};if _fcdec .Matrix !=nil {_ccada .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_fcdec .Matrix ); };if _fcdec .ExtGState !=nil {_ccada .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_fcdec .ExtGState );};return _fcdec ._cdfed ;}; // ToPdfObject returns a PDF object representation of the outline item. func (_bagbb *OutlineItem )ToPdfObject ()_eca .PdfObject {_cagge ,_ :=_bagbb .ToPdfOutlineItem ();return _cagge .ToPdfObject ();};func (_gbd *PdfReader )newPdfAnnotationFreeTextFromDict (_fcf *_eca .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_dfcb :=PdfAnnotationFreeText {}; _abe ,_adag :=_gbd .newPdfAnnotationMarkupFromDict (_fcf );if _adag !=nil {return nil ,_adag ;};_dfcb .PdfAnnotationMarkup =_abe ;_dfcb .DA =_fcf .Get ("\u0044\u0041");_dfcb .Q =_fcf .Get ("\u0051");_dfcb .RC =_fcf .Get ("\u0052\u0043");_dfcb .DS =_fcf .Get ("\u0044\u0053"); _dfcb .CL =_fcf .Get ("\u0043\u004c");_dfcb .IT =_fcf .Get ("\u0049\u0054");_dfcb .BE =_fcf .Get ("\u0042\u0045");_dfcb .RD =_fcf .Get ("\u0052\u0044");_dfcb .BS =_fcf .Get ("\u0042\u0053");_dfcb .LE =_fcf .Get ("\u004c\u0045");return &_dfcb ,nil ;};func (_gbedd *PdfWriter )getPdfVersion ()string {return _g .Sprintf ("\u0025\u0064\u002e%\u0064",_gbedd ._dgab .Major ,_gbedd ._dgab .Minor ); }; // IsRadio returns true if the button field represents a radio button, false otherwise. func (_ccae *PdfFieldButton )IsRadio ()bool {return _ccae .GetType ()==ButtonTypeRadio }; // ToPdfObject returns the PDF representation of the VRI dictionary. func (_bdec *VRI )ToPdfObject ()*_eca .PdfObjectDictionary {_cbcfa :=_eca .MakeDict ();_cbcfa .SetIfNotNil (_eca .PdfObjectName ("\u0043\u0065\u0072\u0074"),_gaged (_bdec .Cert ));_cbcfa .SetIfNotNil (_eca .PdfObjectName ("\u004f\u0043\u0053\u0050"),_gaged (_bdec .OCSP )); _cbcfa .SetIfNotNil (_eca .PdfObjectName ("\u0043\u0052\u004c"),_gaged (_bdec .CRL ));_cbcfa .SetIfNotNil ("\u0054\u0055",_bdec .TU );_cbcfa .SetIfNotNil ("\u0054\u0053",_bdec .TS );return _cbcfa ;}; // DecodeArray returns the range of color component values in DeviceGray colorspace. func (_gfff *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};var _ pdfFont =(*pdfFontType3 )(nil ); // CharMetrics represents width and height metrics of a glyph. type CharMetrics =_ffd .CharMetrics ; // GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject. func (_gbgc *PdfPage )GetContainingPdfObject ()_eca .PdfObject {return _gbgc ._aedef }; // AddFont adds a font dictionary to the Font resources. func (_acadd *PdfPage )AddFont (name _eca .PdfObjectName ,font _eca .PdfObject )error {if _acadd .Resources ==nil {_acadd .Resources =NewPdfPageResources ();};if _acadd .Resources .Font ==nil {_acadd .Resources .Font =_eca .MakeDict ();};_cbcb ,_aaebb :=_eca .TraceToDirectObject (_acadd .Resources .Font ).(*_eca .PdfObjectDictionary ); if !_aaebb {_ccb .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",_eca .TraceToDirectObject (_acadd .Resources .Font )); return _da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cbcb .Set (name ,font );return nil ;}; // NewPdfActionGoToE returns a new "go to embedded" action. func NewPdfActionGoToE ()*PdfActionGoToE {_afc :=NewPdfAction ();_adc :=&PdfActionGoToE {};_adc .PdfAction =_afc ;_afc .SetContext (_adc );return _adc ;};func (_ebbf *PdfReader )newPdfAnnotationMarkupFromDict (_bcb *_eca .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_bacg :=&PdfAnnotationMarkup {}; if _dag :=_bcb .Get ("\u0054");_dag !=nil {_bacg .T =_dag ;};if _dacc :=_bcb .Get ("\u0050\u006f\u0070u\u0070");_dacc !=nil {_cbedg ,_gcd :=_dacc .(*_eca .PdfIndirectObject );if !_gcd {if _ ,_abce :=_dacc .(*_eca .PdfObjectNull );!_abce {return nil ,_da .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 {_bdfb ,_affe :=_ebbf .newPdfAnnotationFromIndirectObject (_cbedg );if _affe !=nil {return nil ,_affe ;};if _bdfb !=nil {_caef ,_fffd :=_bdfb ._abc .(*PdfAnnotationPopup );if !_fffd {return nil ,_da .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"); };_bacg .Popup =_caef ;};};};if _eggg :=_bcb .Get ("\u0043\u0041");_eggg !=nil {_bacg .CA =_eggg ;};if _daeb :=_bcb .Get ("\u0052\u0043");_daeb !=nil {_bacg .RC =_daeb ;};if _ddb :=_bcb .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"); _ddb !=nil {_bacg .CreationDate =_ddb ;};if _deab :=_bcb .Get ("\u0049\u0052\u0054");_deab !=nil {_bacg .IRT =_deab ;};if _baa :=_bcb .Get ("\u0053\u0075\u0062\u006a");_baa !=nil {_bacg .Subj =_baa ;};if _edc :=_bcb .Get ("\u0052\u0054");_edc !=nil {_bacg .RT =_edc ; };if _ebbg :=_bcb .Get ("\u0049\u0054");_ebbg !=nil {_bacg .IT =_ebbg ;};if _egdc :=_bcb .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_egdc !=nil {_bacg .ExData =_egdc ;};return _bacg ,nil ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_aaccfa *PdfShadingType7 )ToPdfObject ()_eca .PdfObject {_aaccfa .PdfShading .ToPdfObject ();_egdgg ,_bagea :=_aaccfa .getShadingDict ();if _bagea !=nil {_ccb .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 _aaccfa .BitsPerCoordinate !=nil {_egdgg .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_aaccfa .BitsPerCoordinate );};if _aaccfa .BitsPerComponent !=nil {_egdgg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_aaccfa .BitsPerComponent ); };if _aaccfa .BitsPerFlag !=nil {_egdgg .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_aaccfa .BitsPerFlag );};if _aaccfa .Decode !=nil {_egdgg .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_aaccfa .Decode );};if _aaccfa .Function !=nil {if len (_aaccfa .Function )==1{_egdgg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aaccfa .Function [0].ToPdfObject ()); }else {_edgc :=_eca .MakeArray ();for _ ,_dddg :=range _aaccfa .Function {_edgc .Append (_dddg .ToPdfObject ());};_egdgg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_edgc );};};return _aaccfa ._dcbe ;}; // NewPdfShadingPatternType3 creates an empty shading pattern type 3 object. func NewPdfShadingPatternType3 ()*PdfShadingPatternType3 {_cdfaa :=&PdfShadingPatternType3 {};_cdfaa .Matrix =_eca .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_cdfaa .PdfPattern =&PdfPattern {};_cdfaa .PdfPattern .PatternType =int64 (*_eca .MakeInteger (2)); _cdfaa .PdfPattern ._cegb =_cdfaa ;_cdfaa .PdfPattern ._cdfed =_eca .MakeIndirectObject (_eca .MakeDict ());return _cdfaa ;}; // 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 (_ecgcaa *Image )SetSamples (samples []uint32 ){if _ecgcaa .BitsPerComponent < 8{samples =_ecgcaa .samplesAddPadding (samples );};_bgfg :=_bf .ResampleUint32 (samples ,int (_ecgcaa .BitsPerComponent ),8);_gbefg :=make ([]byte ,len (_bgfg ));for _edcff ,_dgfb :=range _bgfg {_gbefg [_edcff ]=byte (_dgfb ); };_ecgcaa .Data =_gbefg ;}; // PdfShadingType2 is an Axial shading. type PdfShadingType2 struct{*PdfShading ;Coords *_eca .PdfObjectArray ;Domain *_eca .PdfObjectArray ;Function []PdfFunction ;Extend *_eca .PdfObjectArray ;}; // 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 (_effcf int ,_efafe *PdfPage )error ; // MergePageWith appends page content to source Pdf file page content. func (_geed *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_gffb :=pageNum -1;var _dccb *PdfPage ;for _cdbg ,_ffdce :=range _geed ._fecc {if _cdbg ==_gffb {_dccb =_ffdce ;};};if _dccb ==nil {return _g .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 _dccb ._aedef !=nil &&_dccb ._aedef .GetParser ()==_geed ._badg ._ecfeba {_dccb =_dccb .Duplicate ();_geed ._fecc [_gffb ]=_dccb ;};page =page .Duplicate ();_dbed (page );_bgac :=_daad (_dccb );_eeaa :=_daad (page );_bfbd :=make (map[_eca .PdfObjectName ]_eca .PdfObjectName ); for _bdgb :=range _eeaa {if _ ,_ebaf :=_bgac [_bdgb ];_ebaf {for _gcab :=1;true ;_gcab ++{_dadd :=_eca .PdfObjectName (string (_bdgb )+_ge .Itoa (_gcab ));if _ ,_bfafg :=_bgac [_dadd ];!_bfafg {_bfbd [_bdgb ]=_dadd ;break ;};};};};_cfga ,_ggba :=page .GetContentStreams (); if _ggba !=nil {return _ggba ;};_fcac ,_ggba :=_dccb .GetContentStreams ();if _ggba !=nil {return _ggba ;};for _fbag ,_fbbeb :=range _cfga {for _eegc ,_ceef :=range _bfbd {_fbbeb =_ec .Replace (_fbbeb ,"\u002f"+string (_eegc ),"\u002f"+string (_ceef ),-1); };_cfga [_fbag ]=_fbbeb ;};_fcac =append (_fcac ,_cfga ...);if _ebba :=_dccb .SetContentStreams (_fcac ,_eca .NewFlateEncoder ());_ebba !=nil {return _ebba ;};_dccb ._gabcd =append (_dccb ._gabcd ,page ._gabcd ...);if _dccb .Resources ==nil {_dccb .Resources =NewPdfPageResources (); };if page .Resources !=nil {_dccb .Resources .Font =_geed .mergeResources (_dccb .Resources .Font ,page .Resources .Font ,_bfbd );_dccb .Resources .XObject =_geed .mergeResources (_dccb .Resources .XObject ,page .Resources .XObject ,_bfbd );_dccb .Resources .Properties =_geed .mergeResources (_dccb .Resources .Properties ,page .Resources .Properties ,_bfbd ); if _dccb .Resources .ProcSet ==nil {_dccb .Resources .ProcSet =page .Resources .ProcSet ;};_dccb .Resources .Shading =_geed .mergeResources (_dccb .Resources .Shading ,page .Resources .Shading ,_bfbd );_dccb .Resources .ExtGState =_geed .mergeResources (_dccb .Resources .ExtGState ,page .Resources .ExtGState ,_bfbd ); };_decb ,_ggba :=_dccb .GetMediaBox ();if _ggba !=nil {return _ggba ;};_edaf ,_ggba :=page .GetMediaBox ();if _ggba !=nil {return _ggba ;};var _cafg bool ;if _decb .Llx > _edaf .Llx {_decb .Llx =_edaf .Llx ;_cafg =true ;};if _decb .Lly > _edaf .Lly {_decb .Lly =_edaf .Lly ; _cafg =true ;};if _decb .Urx < _edaf .Urx {_decb .Urx =_edaf .Urx ;_cafg =true ;};if _decb .Ury < _edaf .Ury {_decb .Ury =_edaf .Ury ;_cafg =true ;};if _cafg {_dccb .MediaBox =_decb ;};return nil ;}; // PdfColorspaceLab is a L*, a*, b* 3 component colorspace. type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_egcf *_eca .PdfIndirectObject ;}; // ToPdfObject implements interface PdfModel. func (_ebe *PdfActionSubmitForm )ToPdfObject ()_eca .PdfObject {_ebe .PdfAction .ToPdfObject ();_fegc :=_ebe ._bee ;_dccf :=_fegc .PdfObject .(*_eca .PdfObjectDictionary );_dccf .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeSubmitForm )));if _ebe .F !=nil {_dccf .Set ("\u0046",_ebe .F .ToPdfObject ()); };_dccf .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_ebe .Fields );_dccf .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_ebe .Flags );return _fegc ;}; // DecodeArray returns an empty slice as there are no components associated with pattern colorspace. func (_dged *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}}; // PdfActionGoTo3DView represents a GoTo3DView action. type PdfActionGoTo3DView struct{*PdfAction ;TA _eca .PdfObject ;V _eca .PdfObject ;}; // ToPdfObject returns the choice field dictionary within an indirect object (container). func (_gedd *PdfFieldChoice )ToPdfObject ()_eca .PdfObject {_gedd .PdfField .ToPdfObject ();_acgdc :=_gedd ._geaa ;_gffe :=_acgdc .PdfObject .(*_eca .PdfObjectDictionary );_gffe .Set ("\u0046\u0054",_eca .MakeName ("\u0043\u0068"));if _gedd .Opt !=nil {_gffe .Set ("\u004f\u0070\u0074",_gedd .Opt ); };if _gedd .TI !=nil {_gffe .Set ("\u0054\u0049",_gedd .TI );};if _gedd .I !=nil {_gffe .Set ("\u0049",_gedd .I );};return _acgdc ;}; // ToPdfObject implements interface PdfModel. func (_daafg *PdfSignature )ToPdfObject ()_eca .PdfObject {_ecacc :=_daafg ._bfebg ;var _fgddc *_eca .PdfObjectDictionary ;if _aaebbg ,_gbebd :=_ecacc .PdfObject .(*pdfSignDictionary );_gbebd {_fgddc =_aaebbg .PdfObjectDictionary ;}else {_fgddc =_ecacc .PdfObject .(*_eca .PdfObjectDictionary ); };_fgddc .SetIfNotNil ("\u0054\u0079\u0070\u0065",_daafg .Type );_fgddc .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_daafg .Filter );_fgddc .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_daafg .SubFilter );_fgddc .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_daafg .ByteRange ); _fgddc .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_daafg .Contents );_fgddc .SetIfNotNil ("\u0043\u0065\u0072\u0074",_daafg .Cert );_fgddc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_daafg .Name );_fgddc .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_daafg .Reason ); _fgddc .SetIfNotNil ("\u004d",_daafg .M );_fgddc .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_daafg .Reference );_fgddc .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_daafg .Changes );_fgddc .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_daafg .ContactInfo ); return _ecacc ;};var ImageHandling ImageHandler =DefaultImageHandler {}; // NewPdfPage returns a new PDF page. func NewPdfPage ()*PdfPage {_bbcbf :=PdfPage {};_bbcbf ._agaea =_eca .MakeDict ();_bbcbf .Resources =NewPdfPageResources ();_fdac :=_eca .PdfIndirectObject {};_fdac .PdfObject =_bbcbf ._agaea ;_bbcbf ._aedef =&_fdac ;_bbcbf ._gbaec =*_bbcbf ._agaea ;return &_bbcbf ; }; // ImageToRGB converts an Image in a given PdfColorspace to an RGB image. func (_gfec *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_bfag :=_bf .NewReader (img .getBase ());_bccc :=_bbg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._gcgb ,img ._cfgaa ); _dafge :=_bf .NewWriter (_bccc );_cbbb :=_de .Pow (2,float64 (img .BitsPerComponent ))-1;_gbdb :=_gfec .GetNumComponents ();_bfga :=make ([]uint32 ,_gbdb );_affa :=make ([]float64 ,_gbdb );for {_geeda :=_bfag .ReadSamples (_bfga );if _geeda ==_beg .EOF {break ; }else if _geeda !=nil {return img ,_geeda ;};for _cdgfa :=0;_cdgfa < _gbdb ;_cdgfa ++{_fcca :=float64 (_bfga [_cdgfa ])/_cbbb ;_affa [_cdgfa ]=_fcca ;};_bdgge ,_geeda :=_gfec .TintTransform .Evaluate (_affa );if _geeda !=nil {return img ,_geeda ;};for _ ,_bdgc :=range _bdgge {_bdgc =_de .Min (_de .Max (0,_bdgc ),1.0); if _geeda =_dafge .WriteSample (uint32 (_bdgc *_cbbb ));_geeda !=nil {return img ,_geeda ;};};};return _gfec .AlternateSpace .ImageToRGB (_cggae (&_bccc ));}; // GetXObjectFormByName returns the XObjectForm with the specified name from the // page resources, if it exists. func (_eegbg *PdfPageResources )GetXObjectFormByName (keyName _eca .PdfObjectName )(*XObjectForm ,error ){_gfgbda ,_eegdbf :=_eegbg .GetXObjectByName (keyName );if _gfgbda ==nil {return nil ,nil ;};if _eegdbf !=XObjectTypeForm {return nil ,_da .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d"); };_effbda ,_bbefc :=NewXObjectFormFromStream (_gfgbda );if _bbefc !=nil {return nil ,_bbefc ;};return _effbda ,nil ;}; // NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1]. func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_afgbd :=PdfColorDeviceGray (grayVal );return &_afgbd ;}; // ToPdfObject implements interface PdfModel. func (_dfgf *PdfBorderStyle )ToPdfObject ()_eca .PdfObject {_fead :=_eca .MakeDict ();if _dfgf ._egdd !=nil {if _bbbf ,_dddf :=_dfgf ._egdd .(*_eca .PdfIndirectObject );_dddf {_bbbf .PdfObject =_fead ;};};_fead .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072")); if _dfgf .W !=nil {_fead .Set ("\u0057",_eca .MakeFloat (*_dfgf .W ));};if _dfgf .S !=nil {_fead .Set ("\u0053",_eca .MakeName (_dfgf .S .GetPdfName ()));};if _dfgf .D !=nil {_fead .Set ("\u0044",_eca .MakeArrayFromIntegers (*_dfgf .D ));};if _dfgf ._egdd !=nil {return _dfgf ._egdd ; };return _fead ;}; // 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 *_eca .PdfObjectName ;Colorants _eca .PdfObject ;Process _eca .PdfObject ;MixingHints _eca .PdfObject ;_fedb *_eca .PdfIndirectObject ;}; // Decrypt decrypts the PDF file with a specified password. Also tries to // decrypt with an empty password. Returns true if successful, // false otherwise. func (_cfabg *PdfReader )Decrypt (password []byte )(bool ,error ){_bcedf ,_efeab :=_cfabg ._ecfeba .Decrypt (password );if _efeab !=nil {return false ,_efeab ;};if !_bcedf {return false ,nil ;};_efeab =_cfabg .loadStructure ();if _efeab !=nil {_ccb .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",_efeab ); return false ,_efeab ;};return true ,nil ;};func _daad (_cfe *PdfPage )map[_eca .PdfObjectName ]_eca .PdfObject {_bfbg :=make (map[_eca .PdfObjectName ]_eca .PdfObject );if _cfe .Resources ==nil {return _bfbg ;};if _cfe .Resources .Font !=nil {if _fgeb ,_gada :=_eca .GetDict (_cfe .Resources .Font ); _gada {for _ ,_gbdd :=range _fgeb .Keys (){_bfbg [_gbdd ]=_fgeb .Get (_gbdd );};};};if _cfe .Resources .ExtGState !=nil {if _ddef ,_beb :=_eca .GetDict (_cfe .Resources .ExtGState );_beb {for _ ,_ebcaf :=range _ddef .Keys (){_bfbg [_ebcaf ]=_ddef .Get (_ebcaf ); };};};if _cfe .Resources .XObject !=nil {if _bged ,_acac :=_eca .GetDict (_cfe .Resources .XObject );_acac {for _ ,_faac :=range _bged .Keys (){_bfbg [_faac ]=_bged .Get (_faac );};};};if _cfe .Resources .Pattern !=nil {if _cbba ,_bbea :=_eca .GetDict (_cfe .Resources .Pattern ); _bbea {for _ ,_cged :=range _cbba .Keys (){_bfbg [_cged ]=_cbba .Get (_cged );};};};if _cfe .Resources .Shading !=nil {if _bgca ,_cfdg :=_eca .GetDict (_cfe .Resources .Shading );_cfdg {for _ ,_eee :=range _bgca .Keys (){_bfbg [_eee ]=_bgca .Get (_eee ); };};};if _cfe .Resources .ProcSet !=nil {if _cggf ,_bafg :=_eca .GetDict (_cfe .Resources .ProcSet );_bafg {for _ ,_cafdf :=range _cggf .Keys (){_bfbg [_cafdf ]=_cggf .Get (_cafdf );};};};if _cfe .Resources .Properties !=nil {if _bbbc ,_afgf :=_eca .GetDict (_cfe .Resources .Properties ); _afgf {for _ ,_fab :=range _bbbc .Keys (){_bfbg [_fab ]=_bbbc .Get (_fab );};};};return _bfbg ;};func _gccfg (_febb *_eca .PdfObjectDictionary )(*PdfShadingType3 ,error ){_cbda :=PdfShadingType3 {};_bfeb :=_febb .Get ("\u0043\u006f\u006f\u0072\u0064\u0073"); if _bfeb ==nil {_ccb .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 ; };_bfgdf ,_beecaf :=_bfeb .(*_eca .PdfObjectArray );if !_beecaf {_ccb .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",_bfeb );return nil ,_eca .ErrTypeError ; };if _bfgdf .Len ()!=6{_ccb .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",_bfgdf .Len ());return nil ,ErrInvalidAttribute ;};_cbda .Coords =_bfgdf ; if _afafa :=_febb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_afafa !=nil {_afafa =_eca .TraceToDirectObject (_afafa );_eabbdg ,_gbefbg :=_afafa .(*_eca .PdfObjectArray );if !_gbefbg {_ccb .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",_afafa ); return nil ,_eca .ErrTypeError ;};_cbda .Domain =_eabbdg ;};_bfeb =_febb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _bfeb ==nil {_ccb .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 ;};_cbda .Function =[]PdfFunction {};if _fbcef ,_aafb :=_bfeb .(*_eca .PdfObjectArray );_aafb {for _ ,_eecda :=range _fbcef .Elements (){_adgee ,_cbcfg :=_febaf (_eecda );if _cbcfg !=nil {_ccb .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",_cbcfg ); return nil ,_cbcfg ;};_cbda .Function =append (_cbda .Function ,_adgee );};}else {_cdega ,_eadece :=_febaf (_bfeb );if _eadece !=nil {_ccb .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",_eadece ); return nil ,_eadece ;};_cbda .Function =append (_cbda .Function ,_cdega );};if _bgfee :=_febb .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_bgfee !=nil {_bgfee =_eca .TraceToDirectObject (_bgfee );_eedf ,_gcfg :=_bgfee .(*_eca .PdfObjectArray );if !_gcfg {_ccb .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",_bgfee ); return nil ,_eca .ErrTypeError ;};if _eedf .Len ()!=2{_ccb .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",_eedf .Len ());return nil ,ErrInvalidAttribute ; };_cbda .Extend =_eedf ;};return &_cbda ,nil ;}; // IsShading specifies if the pattern is a shading pattern. func (_ebga *PdfPattern )IsShading ()bool {return _ebga .PatternType ==2}; // GetContentStream returns the XObject Form's content stream. func (_fbcga *XObjectForm )GetContentStream ()([]byte ,error ){_gbff ,_acggb :=_eca .DecodeStream (_fbcga ._afddc );if _acggb !=nil {return nil ,_acggb ;};return _gbff ,nil ;};func (_fdcb *DSS )generateHashMap (_gfeade []*_eca .PdfObjectStream )(map[string ]*_eca .PdfObjectStream ,error ){_bdaa :=map[string ]*_eca .PdfObjectStream {}; for _ ,_feda :=range _gfeade {_cfaf ,_cdf :=_eca .DecodeStream (_feda );if _cdf !=nil {return nil ,_cdf ;};_fabb ,_cdf :=_dggdf (_cfaf );if _cdf !=nil {return nil ,_cdf ;};_bdaa [string (_fabb )]=_feda ;};return _bdaa ,nil ;}; // Encoder returns the font's text encoder. func (_dcff pdfFontType0 )Encoder ()_dbb .TextEncoder {return _dcff ._gdcea }; // AddAnnotation appends `annot` to the list of page annotations. func (_abfeb *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _abfeb ._gabcd ==nil {_abfeb .GetAnnotations ();};_abfeb ._gabcd =append (_abfeb ._gabcd ,annot );}; // AddCRLs adds CRLs to DSS. func (_gacfb *DSS )AddCRLs (crls [][]byte )([]*_eca .PdfObjectStream ,error ){return _gacfb .add (&_gacfb .CRLs ,_gacfb ._ccgf ,crls );}; // ToGray returns a PdfColorDeviceGray color based on the current RGB color. func (_gaafb *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_gdag :=0.3*_gaafb .R ()+0.59*_gaafb .G ()+0.11*_gaafb .B ();_gdag =_de .Min (_de .Max (_gdag ,0.0),1.0);return NewPdfColorDeviceGray (_gdag );}; // 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 (_cfgdc *PdfSignature ,_bbbde Hasher ,_cede SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );}; // ToPdfObject returns the PDF representation of the outline tree node. func (_cgfgg *PdfOutlineTreeNode )ToPdfObject ()_eca .PdfObject {return _cgfgg .GetContext ().ToPdfObject ();};func (_abbg *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _abbg ._ccec };func (_afg *PdfReader )newPdfActionHideFromDict (_aae *_eca .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_aae .Get ("\u0054"),H :_aae .Get ("\u0048")},nil ; }; // StdFontName represents name of a standard font. type StdFontName =_ffd .StdFontName ;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";); // GetPage returns the PdfPage model for the specified page number. func (_affbb *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _affbb ._ecfeba .GetCrypter ()!=nil &&!_affbb ._ecfeba .IsAuthenticated (){return nil ,_g .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 (_affbb ._gfabb )< pageNumber {return nil ,_da .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"); };_gfcdc :=pageNumber -1;if _gfcdc < 0{return nil ,_g .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");};_ffde :=_affbb .PageList [_gfcdc ]; return _ffde ,nil ;}; // WriteString outputs the object as it is to be written to file. func (_cddad *pdfSignDictionary )WriteString ()string {_cddad ._cbdga =0;_cddad ._aaead =0;_cddad ._aagfc =0;_cddad ._fgbbb =0;_gfafg :=_dd .NewBuffer (nil );_gfafg .WriteString ("\u003c\u003c");for _ ,_acaec :=range _cddad .Keys (){_gbfgd :=_cddad .Get (_acaec ); switch _acaec {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_gfafg .WriteString (_acaec .WriteString ());_gfafg .WriteString ("\u0020");_cddad ._aagfc =_gfafg .Len ();_gfafg .WriteString (_gbfgd .WriteString ());_gfafg .WriteString ("\u0020");_cddad ._fgbbb =_gfafg .Len ()-1; case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_gfafg .WriteString (_acaec .WriteString ());_gfafg .WriteString ("\u0020");_cddad ._cbdga =_gfafg .Len ();_gfafg .WriteString (_gbfgd .WriteString ());_gfafg .WriteString ("\u0020");_cddad ._aaead =_gfafg .Len ()-1; default:_gfafg .WriteString (_acaec .WriteString ());_gfafg .WriteString ("\u0020");_gfafg .WriteString (_gbfgd .WriteString ());};};_gfafg .WriteString ("\u003e\u003e");return _gfafg .String ();}; // ToPdfObject implements interface PdfModel. func (_bgfe *PdfAnnotationMovie )ToPdfObject ()_eca .PdfObject {_bgfe .PdfAnnotation .ToPdfObject ();_bccf :=_bgfe ._cdc ;_fedf :=_bccf .PdfObject .(*_eca .PdfObjectDictionary );_fedf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u004d\u006f\u0076i\u0065")); _fedf .SetIfNotNil ("\u0054",_bgfe .T );_fedf .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_bgfe .Movie );_fedf .SetIfNotNil ("\u0041",_bgfe .A );return _bccf ;}; // NewPdfAnnotationRedact returns a new redact annotation. func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_gcce :=NewPdfAnnotation ();_egfe :=&PdfAnnotationRedact {};_egfe .PdfAnnotation =_gcce ;_egfe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gcce .SetContext (_egfe );return _egfe ;}; // NewLTV returns a new LTV client. func NewLTV (appender *PdfAppender )(*LTV ,error ){_edccb :=appender .Reader .DSS ;if _edccb ==nil {_edccb =NewDSS ();};if _bfcbg :=_edccb .GenerateHashMaps ();_bfcbg !=nil {return nil ,_bfcbg ;};return <V {CertClient :_ffg .NewCertClient (),OCSPClient :_ffg .NewOCSPClient (),CRLClient :_ffg .NewCRLClient (),SkipExisting :true ,_deaee :appender ,_eebfab :_edccb },nil ; };func _bbeba (_fadg _eca .PdfObject )(string ,error ){_fadg =_eca .TraceToDirectObject (_fadg );switch _deaeb :=_fadg .(type ){case *_eca .PdfObjectString :return _deaeb .Str (),nil ;case *_eca .PdfObjectStream :_dcaaf ,_ggfgf :=_eca .DecodeStream (_deaeb ); if _ggfgf !=nil {return "",_ggfgf ;};return string (_dcaaf ),nil ;};return "",_g .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",_fadg ); };func _fccf (_fbcge *PdfField )[]*PdfField {_fcecd :=[]*PdfField {_fbcge };for _ ,_ecdb :=range _fbcge .Kids {_fcecd =append (_fcecd ,_fccf (_ecdb )...);};return _fcecd ;}; // ToPdfObject returns the PDF representation of the colorspace. func (_fbbd *PdfColorspaceDeviceGray )ToPdfObject ()_eca .PdfObject {return _eca .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");}; // PdfAnnotationUnderline represents Underline annotations. // (Section 12.5.6.10). type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eca .PdfObject ;}; // SetDate sets the `M` field of the signature. func (_bagga *PdfSignature )SetDate (date _d .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";};_bagga .M =_eca .MakeString (date .Format (format )); }; // 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 (_dcfb *PdfFont )CharcodesToUnicodeWithStats (charcodes []_dbb .CharCode )(_dfga []rune ,_ecdca ,_dgbgb int ){_ffdb ,_ecdca ,_dgbgb :=_dcfb .CharcodesToStrings (charcodes );return []rune (_ec .Join (_ffdb ,"")),_ecdca ,_dgbgb ;}; // ToPdfObject implements interface PdfModel. func (_dgae *PdfAnnotationLink )ToPdfObject ()_eca .PdfObject {_dgae .PdfAnnotation .ToPdfObject ();_aeed :=_dgae ._cdc ;_bfaf :=_aeed .PdfObject .(*_eca .PdfObjectDictionary );_bfaf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u004c\u0069\u006e\u006b")); if _dgae ._egc !=nil &&_dgae ._egc ._cd !=nil {_bfaf .Set ("\u0041",_dgae ._egc ._cd .ToPdfObject ());}else if _dgae .A !=nil {_bfaf .Set ("\u0041",_dgae .A );};_bfaf .SetIfNotNil ("\u0044\u0065\u0073\u0074",_dgae .Dest );_bfaf .SetIfNotNil ("\u0048",_dgae .H ); _bfaf .SetIfNotNil ("\u0050\u0041",_dgae .PA );_bfaf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_dgae .QuadPoints );_bfaf .SetIfNotNil ("\u0042\u0053",_dgae .BS );return _aeed ;};func _fcgf (_ebgde *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_ebgde }}; // PdfColorPatternType2 represents a color shading pattern type 2 (Axial). type PdfColorPatternType2 struct{Color PdfColor ;PatternName _eca .PdfObjectName ;};func _dgfdb (_cacc _eca .PdfObject )(map[_dbb .CharCode ]float64 ,error ){if _cacc ==nil {return nil ,nil ;};_dgdgd ,_bcbgfb :=_eca .GetArray (_cacc );if !_bcbgfb {return nil ,nil ; };_feafd :=map[_dbb .CharCode ]float64 {};_bcde :=_dgdgd .Len ();for _cfeac :=0;_cfeac < _bcde -1;_cfeac ++{_gbfee :=_eca .TraceToDirectObject (_dgdgd .Get (_cfeac ));_adfa ,_debf :=_eca .GetIntVal (_gbfee );if !_debf {return nil ,_g .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_cfeac ,_gbfee ); };_cfeac ++;if _cfeac > _bcde -1{return nil ,_g .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",_dgdgd );};_geedcb :=_eca .TraceToDirectObject (_dgdgd .Get (_cfeac )); switch _geedcb .(type ){case *_eca .PdfObjectArray :_bebg ,_ :=_eca .GetArray (_geedcb );if _dbfgg ,_eadad :=_bebg .ToFloat64Array ();_eadad ==nil {for _ebdf :=0;_ebdf < len (_dbfgg );_ebdf ++{_feafd [_dbb .CharCode (_adfa +_ebdf )]=_dbfgg [_ebdf ];};}else {return nil ,_g .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",_cfeac ,_geedcb ); };case *_eca .PdfObjectInteger :_eacb ,_cfeea :=_eca .GetIntVal (_geedcb );if !_cfeea {return nil ,_g .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",_cfeac ,_geedcb ); };_cfeac ++;if _cfeac > _bcde -1{return nil ,_g .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",_dgdgd );};_fbbg :=_dgdgd .Get (_cfeac );_acbf ,_afdag :=_eca .GetNumberAsFloat (_fbbg ); if _afdag !=nil {return nil ,_g .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",_cfeac ,_fbbg );};for _dgff :=_adfa ;_dgff <=_eacb ; _dgff ++{_feafd [_dbb .CharCode (_dgff )]=_acbf ;};default:return nil ,_g .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",_cfeac ,_geedcb ); };};return _feafd ,nil ;};func _fgef (_agea _eca .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_bagf :=&PdfColorspaceDeviceNAttributes {};var _ddea *_eca .PdfObjectDictionary ;switch _abeg :=_agea .(type ){case *_eca .PdfIndirectObject :_bagf ._fedb =_abeg ; var _fgag bool ;_ddea ,_fgag =_abeg .PdfObject .(*_eca .PdfObjectDictionary );if !_fgag {_ccb .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 ,_da .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};case *_eca .PdfObjectDictionary :_ddea =_abeg ;case *_eca .PdfObjectReference :_aafe :=_abeg .Resolve ();return _fgef (_aafe );default:_ccb .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 ,_da .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cbab :=_ddea .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_cbab !=nil {_bdedf ,_dcede :=_eca .TraceToDirectObject (_cbab ).(*_eca .PdfObjectName );if !_dcede {_ccb .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 ,_da .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_bagf .Subtype =_bdedf ;};if _aaad :=_ddea .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_aaad !=nil {_bagf .Colorants =_aaad ;};if _abceg :=_ddea .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073"); _abceg !=nil {_bagf .Process =_abceg ;};if _ggcg :=_ddea .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_ggcg !=nil {_bagf .MixingHints =_ggcg ;};return _bagf ,nil ;}; // NewPdfFilespecFromObj creates and returns a new PdfFilespec object. func NewPdfFilespecFromObj (obj _eca .PdfObject )(*PdfFilespec ,error ){_egea :=&PdfFilespec {};var _cfbb *_eca .PdfObjectDictionary ;if _fdeec ,_debc :=_eca .GetIndirect (obj );_debc {_egea ._ggdg =_fdeec ;_aegfb ,_ceebf :=_eca .GetDict (_fdeec .PdfObject ); if !_ceebf {_ccb .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 ,_eca .ErrTypeError ;};_cfbb =_aegfb ;}else if _ccgcag ,_gdffg :=_eca .GetDict (obj ); _gdffg {_egea ._ggdg =_ccgcag ;_cfbb =_ccgcag ;}else {_ccb .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 ,_eca .ErrTypeError ;}; if _cfbb ==nil {_ccb .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_da .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _cgccf :=_cfbb .Get ("\u0054\u0079\u0070\u0065"); _cgccf !=nil {_gcbaf ,_aaacg :=_cgccf .(*_eca .PdfObjectName );if !_aaacg {_ccb .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",_cgccf ); }else {if *_gcbaf !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_ccb .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",*_gcbaf ); };};};if _cgbf :=_cfbb .Get ("\u0046\u0053");_cgbf !=nil {_egea .FS =_cgbf ;};if _ebbe :=_cfbb .Get ("\u0046");_ebbe !=nil {_egea .F =_ebbe ;};if _cbee :=_cfbb .Get ("\u0055\u0046");_cbee !=nil {_egea .UF =_cbee ;};if _cbea :=_cfbb .Get ("\u0044\u004f\u0053"); _cbea !=nil {_egea .DOS =_cbea ;};if _agff :=_cfbb .Get ("\u004d\u0061\u0063");_agff !=nil {_egea .Mac =_agff ;};if _bebd :=_cfbb .Get ("\u0055\u006e\u0069\u0078");_bebd !=nil {_egea .Unix =_bebd ;};if _deabc :=_cfbb .Get ("\u0049\u0044");_deabc !=nil {_egea .ID =_deabc ; };if _fabe :=_cfbb .Get ("\u0056");_fabe !=nil {_egea .V =_fabe ;};if _fcbce :=_cfbb .Get ("\u0045\u0046");_fcbce !=nil {_egea .EF =_fcbce ;};if _cbdg :=_cfbb .Get ("\u0052\u0046");_cbdg !=nil {_egea .RF =_cbdg ;};if _cfbbc :=_cfbb .Get ("\u0044\u0065\u0073\u0063"); _cfbbc !=nil {_egea .Desc =_cfbbc ;};if _egdfb :=_cfbb .Get ("\u0043\u0049");_egdfb !=nil {_egea .CI =_egdfb ;};return _egea ,nil ;};func (_fba *PdfReader )newPdfActionMovieFromDict (_cbdb *_eca .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_cbdb .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_cbdb .Get ("\u0054"),Operation :_cbdb .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ; };func _defb (_daaa _eca .PdfObject )(*PdfBorderStyle ,error ){_ccc :=&PdfBorderStyle {};_ccc ._egdd =_daaa ;var _cea *_eca .PdfObjectDictionary ;_daaa =_eca .TraceToDirectObject (_daaa );_cea ,_fbc :=_daaa .(*_eca .PdfObjectDictionary );if !_fbc {return nil ,_da .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };if _dfg :=_cea .Get ("\u0054\u0079\u0070\u0065");_dfg !=nil {_bgdg ,_abef :=_dfg .(*_eca .PdfObjectName );if !_abef {_ccb .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",_dfg ); }else {if *_bgdg !="\u0042\u006f\u0072\u0064\u0065\u0072"{_ccb .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",*_bgdg );};};};if _fggc :=_cea .Get ("\u0057"); _fggc !=nil {_aegaf ,_ecbfd :=_eca .GetNumberAsFloat (_fggc );if _ecbfd !=nil {_ccb .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_ecbfd );return nil ,_ecbfd ;};_ccc .W =&_aegaf ; };if _dabc :=_cea .Get ("\u0053");_dabc !=nil {_dgda ,_eaa :=_dabc .(*_eca .PdfObjectName );if !_eaa {return nil ,_da .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 _ecdd BorderStyle ;switch *_dgda {case "\u0053":_ecdd =BorderStyleSolid ;case "\u0044":_ecdd =BorderStyleDashed ;case "\u0042":_ecdd =BorderStyleBeveled ;case "\u0049":_ecdd =BorderStyleInset ;case "\u0055":_ecdd =BorderStyleUnderline ;default:_ccb .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_dgda ); return nil ,_da .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_ccc .S =&_ecdd ;};if _fga :=_cea .Get ("\u0044");_fga !=nil {_cdb ,_agef :=_fga .(*_eca .PdfObjectArray ); if !_agef {_ccb .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",_fga );return nil ,_da .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr"); };_ddcb ,_bbb :=_cdb .ToIntegerArray ();if _bbb !=nil {_ccb .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",_bbb ); return nil ,_bbb ;};_ccc .D =&_ddcb ;};return _ccc ,nil ;};func _dfacd (_eaafg *_eca .PdfObjectDictionary )(*PdfShadingPattern ,error ){_aegcg :=&PdfShadingPattern {};_aagde :=_eaafg .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _aagde ==nil {_ccb .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067"); return nil ,ErrRequiredAttributeMissing ;};_dfffc ,_bcdbf :=_ecaad (_aagde );if _bcdbf !=nil {_ccb .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_bcdbf );return nil ,_bcdbf ; };_aegcg .Shading =_dfffc ;if _ecagb :=_eaafg .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_ecagb !=nil {_bdedfe ,_feaab :=_ecagb .(*_eca .PdfObjectArray );if !_feaab {_ccb .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",_ecagb ); return nil ,_eca .ErrTypeError ;};_aegcg .Matrix =_bdedfe ;};if _cegcg :=_eaafg .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_cegcg !=nil {_aegcg .ExtGState =_cegcg ;};return _aegcg ,nil ;};type pdfFontType0 struct{fontCommon ;_cgaae *_eca .PdfIndirectObject ; _gdcea _dbb .TextEncoder ;Encoding _eca .PdfObject ;DescendantFont *PdfFont ;_bfefe *_ded .CMap ;};func _cgeed (_ggacd *[]*PdfField ,_baebg FieldFilterFunc ,_bbebf bool )[]*PdfField {if _ggacd ==nil {return nil ;};_ffgfd :=*_ggacd ;if len (*_ggacd )==0{return nil ; };_fccca :=_ffgfd [:0];if _baebg ==nil {_baebg =func (*PdfField )bool {return true };};var _dbeee []*PdfField ;for _ ,_gbbeg :=range _ffgfd {_daegb :=_baebg (_gbbeg );if _daegb {_dbeee =append (_dbeee ,_gbbeg );if len (_gbbeg .Kids )> 0{_dbeee =append (_dbeee ,_cgeed (&_gbbeg .Kids ,_baebg ,_bbebf )...); };};if !_bbebf ||!_daegb ||len (_gbbeg .Kids )> 0{_fccca =append (_fccca ,_gbbeg );};};*_ggacd =_fccca ;return _dbeee ;};func (_dffb *PdfReader )newPdfAnnotationWidgetFromDict (_decd *_eca .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_afd :=PdfAnnotationWidget {}; _afd .H =_decd .Get ("\u0048");_afd .MK =_decd .Get ("\u004d\u004b");_afd .A =_decd .Get ("\u0041");_afd .AA =_decd .Get ("\u0041\u0041");_afd .BS =_decd .Get ("\u0042\u0053");_afd .Parent =_decd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_afd ,nil ; }; // ToPdfObject implements interface PdfModel. func (_dec *PdfActionURI )ToPdfObject ()_eca .PdfObject {_dec .PdfAction .ToPdfObject ();_fa :=_dec ._bee ;_ea :=_fa .PdfObject .(*_eca .PdfObjectDictionary );_ea .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeURI )));_ea .SetIfNotNil ("\u0055\u0052\u0049",_dec .URI ); _ea .SetIfNotNil ("\u0049\u0073\u004da\u0070",_dec .IsMap );return _fa ;}; // NewBorderStyle returns an initialized PdfBorderStyle. func NewBorderStyle ()*PdfBorderStyle {_ggeaf :=&PdfBorderStyle {};return _ggeaf }; // Items returns all children outline items. func (_dcfg *Outline )Items ()[]*OutlineItem {return _dcfg .Entries }; // ToPdfObject returns the PDF representation of the shading dictionary. func (_dfead *PdfShadingType2 )ToPdfObject ()_eca .PdfObject {_dfead .PdfShading .ToPdfObject ();_agcef ,_cagba :=_dfead .getShadingDict ();if _cagba !=nil {_ccb .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 _agcef ==nil {_ccb .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _dfead .Coords !=nil {_agcef .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_dfead .Coords ); };if _dfead .Domain !=nil {_agcef .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dfead .Domain );};if _dfead .Function !=nil {if len (_dfead .Function )==1{_agcef .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dfead .Function [0].ToPdfObject ()); }else {_cffad :=_eca .MakeArray ();for _ ,_bcbgfc :=range _dfead .Function {_cffad .Append (_bcbgfc .ToPdfObject ());};_agcef .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cffad );};};if _dfead .Extend !=nil {_agcef .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_dfead .Extend ); };return _dfead ._dcbe ;}; // GetAscent returns the Ascent of the font `descriptor`. func (_bebde *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _eca .GetNumberAsFloat (_bebde .Ascent );}; // NewPdfAnnotationPopup returns a new popup annotation. func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_efa :=NewPdfAnnotation ();_cbf :=&PdfAnnotationPopup {};_cbf .PdfAnnotation =_efa ;_efa .SetContext (_cbf );return _cbf ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_ceaed *PdfShadingType1 )ToPdfObject ()_eca .PdfObject {_ceaed .PdfShading .ToPdfObject ();_edcgf ,_bgadb :=_ceaed .getShadingDict ();if _bgadb !=nil {_ccb .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 _ceaed .Domain !=nil {_edcgf .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_ceaed .Domain );};if _ceaed .Matrix !=nil {_edcgf .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_ceaed .Matrix );};if _ceaed .Function !=nil {if len (_ceaed .Function )==1{_edcgf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ceaed .Function [0].ToPdfObject ()); }else {_gdfge :=_eca .MakeArray ();for _ ,_deaff :=range _ceaed .Function {_gdfge .Append (_deaff .ToPdfObject ());};_edcgf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gdfge );};};return _ceaed ._dcbe ;}; // ToPdfObject returns the PDF representation of the tiling pattern. func (_edfce *PdfTilingPattern )ToPdfObject ()_eca .PdfObject {_edfce .PdfPattern .ToPdfObject ();_adega :=_edfce .getDict ();if _edfce .PaintType !=nil {_adega .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_edfce .PaintType );};if _edfce .TilingType !=nil {_adega .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_edfce .TilingType ); };if _edfce .BBox !=nil {_adega .Set ("\u0042\u0042\u006f\u0078",_edfce .BBox .ToPdfObject ());};if _edfce .XStep !=nil {_adega .Set ("\u0058\u0053\u0074e\u0070",_edfce .XStep );};if _edfce .YStep !=nil {_adega .Set ("\u0059\u0053\u0074e\u0070",_edfce .YStep ); };if _edfce .Resources !=nil {_adega .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_edfce .Resources .ToPdfObject ());};if _edfce .Matrix !=nil {_adega .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_edfce .Matrix );};return _edfce ._cdfed ;}; // String returns a string representation of the field. func (_baddb *PdfField )String ()string {if _bede ,_cefge :=_baddb .ToPdfObject ().(*_eca .PdfIndirectObject );_cefge {return _g .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_baddb ._fbgb ,_bede .PdfObject .String ());};return "";}; // ToInteger convert to an integer format. func (_cba *PdfColorLab )ToInteger (bits int )[3]uint32 {_bbef :=_de .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_bbef *_cba .L ()),uint32 (_bbef *_cba .A ()),uint32 (_bbef *_cba .B ())};}; // Evaluate runs the function. Input is [x1 x2 x3]. func (_ffbaa *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _ffbaa ._abab ==nil {_ffbaa ._abab =_dad .NewPSExecutor (_ffbaa .Program );};var _dcaa []_dad .PSObject ;for _ ,_bbcab :=range xVec {_dcaa =append (_dcaa ,_dad .MakeReal (_bbcab )); };_fdbd ,_afaca :=_ffbaa ._abab .Execute (_dcaa );if _afaca !=nil {return nil ,_afaca ;};_gbdc ,_afaca :=_dad .PSObjectArrayToFloat64Array (_fdbd );if _afaca !=nil {return nil ,_afaca ;};return _gbdc ,nil ;}; // NewPdfActionMovie returns a new "movie" action. func NewPdfActionMovie ()*PdfActionMovie {_ae :=NewPdfAction ();_ddd :=&PdfActionMovie {};_ddd .PdfAction =_ae ;_ae .SetContext (_ddd );return _ddd ;};func (_bedbg *Image )samplesTrimPadding (_eefgd []uint32 )[]uint32 {_gdgb :=_bedbg .ColorComponents *int (_bedbg .Width )*int (_bedbg .Height ); if len (_eefgd )==_gdgb {return _eefgd ;};_faabd :=make ([]uint32 ,_gdgb );_dffe :=int (_bedbg .Width )*_bedbg .ColorComponents ;var _fddg ,_faff ,_eadfe ,_gbbfc int ;_dccdb :=_bbg .BytesPerLine (int (_bedbg .Width ),int (_bedbg .BitsPerComponent ),_bedbg .ColorComponents ); for _fddg =0;_fddg < int (_bedbg .Height );_fddg ++{_faff =_fddg *int (_bedbg .Width );_eadfe =_fddg *_dccdb ;for _gbbfc =0;_gbbfc < _dffe ;_gbbfc ++{_faabd [_faff +_gbbfc ]=_eefgd [_eadfe +_gbbfc ];};};return _faabd ;};func (_eef *PdfReader )newPdfActionGotoEFromDict (_baec *_eca .PdfObjectDictionary )(*PdfActionGoToE ,error ){_dddb ,_cbef :=_efe (_baec .Get ("\u0046")); if _cbef !=nil {return nil ,_cbef ;};return &PdfActionGoToE {D :_baec .Get ("\u0044"),NewWindow :_baec .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_baec .Get ("\u0054"),F :_dddb },nil ;}; // GetMediaBox gets the inheritable media box value, either from the page // or a higher up page/pages struct. func (_afcg *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _afcg .MediaBox !=nil {return _afcg .MediaBox ,nil ;};_aabga :=_afcg .Parent ;for _aabga !=nil {_dcggee ,_dcae :=_eca .GetDict (_aabga );if !_dcae {return nil ,_da .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 _bcgfda :=_dcggee .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_bcgfda !=nil {_bedfe ,_cfgee :=_eca .GetArray (_bcgfda );if !_cfgee {return nil ,_da .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078"); };_eecc ,_cfgd :=NewPdfRectangle (*_bedfe );if _cfgd !=nil {return nil ,_cfgd ;};return _eecc ,nil ;};_aabga =_dcggee .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_da .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064"); };func _eacc (_bfae *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_bega ,_gffbga :=_eca .GetDict (_bfae .AP );if !_gffbga {return nil ,nil ,_da .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 _bega ==nil {return nil ,nil ,nil ;};_gfcf ,_gffbga :=_eca .GetArray (_bfae .Rect );if !_gffbga ||_gfcf .Len ()!=4{return nil ,nil ,_da .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_abfc ,_aebb :=NewPdfRectangle (*_gfcf ); if _aebb !=nil {return nil ,nil ,_aebb ;};_gdeda :=_eca .TraceToDirectObject (_bega .Get ("\u004e"));switch _bccfa :=_gdeda .(type ){case *_eca .PdfObjectStream :_cgega :=_bccfa ;_egag ,_eeda :=NewXObjectFormFromStream (_cgega );return _egag ,_abfc ,_eeda ; case *_eca .PdfObjectDictionary :_geedc :=_bccfa ;_fdgb ,_ffgac :=_eca .GetName (_bfae .AS );if !_ffgac {return nil ,nil ,nil ;};if _geedc .Get (*_fdgb )==nil {_ccb .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 ;};_cbeca ,_ffgac :=_eca .GetStream (_geedc .Get (*_fdgb ));if !_ffgac {_ccb .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",_fdgb ); return nil ,nil ,_da .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_cgcb ,_cgcd :=NewXObjectFormFromStream (_cbeca );return _cgcb ,_abfc ,_cgcd ;};_ccb .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_gdeda ); return nil ,nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};func _egdb ()string {_ccbac .Lock ();defer _ccbac .Unlock ();_bbddd :=_aag .GetLicenseKey ();if len (_bdaae )> 0&&(_bbddd .IsLicensed ()||_gccefc ){return _bdaae ; };return _g .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",_egbf (),_bbddd .TypeToString ());}; // PdfAppender appends new PDF content to an existing PDF document via incremental updates. type PdfAppender struct{_ebca _beg .ReadSeeker ;_gegf *_eca .PdfParser ;_badg *PdfReader ;Reader *PdfReader ;_fecc []*PdfPage ;_edcc *PdfAcroForm ;_adff *DSS ;_faca *Permissions ;_dcbbb _eca .XrefTable ;_bef int64 ;_abd int ;_afce []_eca .PdfObject ;_eeb map[_eca .PdfObject ]struct{}; _ccbc map[_eca .PdfObject ]int64 ;_adaa map[_eca .PdfObject ]struct{};_bgefc map[_eca .PdfObject ]struct{};_cbbd int64 ;_beae bool ;_begc string ;_ffgb *EncryptOptions ;_gece *PdfInfo ;}; // ToPdfObject returns a PDF object representation of the outline. func (_egda *Outline )ToPdfObject ()_eca .PdfObject {return _egda .ToPdfOutline ().ToPdfObject ()}; // NewPdfShadingPatternType2 creates an empty shading pattern type 2 object. func NewPdfShadingPatternType2 ()*PdfShadingPatternType2 {_gbgd :=&PdfShadingPatternType2 {};_gbgd .Matrix =_eca .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_gbgd .PdfPattern =&PdfPattern {};_gbgd .PdfPattern .PatternType =int64 (*_eca .MakeInteger (2)); _gbgd .PdfPattern ._cegb =_gbgd ;_gbgd .PdfPattern ._cdfed =_eca .MakeIndirectObject (_eca .MakeDict ());return _gbgd ;};func _egfde (_fdfc _eca .PdfObject )(*PdfFontDescriptor ,error ){_faef :=&PdfFontDescriptor {};_fdfc =_eca .ResolveReference (_fdfc ); if _ggeeg ,_acgga :=_fdfc .(*_eca .PdfIndirectObject );_acgga {_faef ._acccb =_ggeeg ;_fdfc =_ggeeg .PdfObject ;};_acccd ,_dbeb :=_eca .GetDict (_fdfc );if !_dbeb {_ccb .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",_fdfc ); return nil ,_eca .ErrTypeError ;};if _ebabb :=_acccd .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_ebabb !=nil {_faef .FontName =_ebabb ;}else {_ccb .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"); };_gddf ,_ :=_eca .GetName (_faef .FontName );if _baff :=_acccd .Get ("\u0054\u0079\u0070\u0065");_baff !=nil {_bebdb ,_afeag :=_baff .(*_eca .PdfObjectName );if !_afeag ||string (*_bebdb )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_ccb .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",_baff ,_gddf ,_faef .FontName ); };}else {_ccb .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",_gddf ,_faef .FontName ); };_faef .FontFamily =_acccd .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_faef .FontStretch =_acccd .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_faef .FontWeight =_acccd .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074"); _faef .Flags =_acccd .Get ("\u0046\u006c\u0061g\u0073");_faef .FontBBox =_acccd .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_faef .ItalicAngle =_acccd .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_faef .Ascent =_acccd .Get ("\u0041\u0073\u0063\u0065\u006e\u0074"); _faef .Descent =_acccd .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_faef .Leading =_acccd .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_faef .CapHeight =_acccd .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_faef .XHeight =_acccd .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074"); _faef .StemV =_acccd .Get ("\u0053\u0074\u0065m\u0056");_faef .StemH =_acccd .Get ("\u0053\u0074\u0065m\u0048");_faef .AvgWidth =_acccd .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_faef .MaxWidth =_acccd .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068"); _faef .MissingWidth =_acccd .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_faef .FontFile =_acccd .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_faef .FontFile2 =_acccd .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652"); _faef .FontFile3 =_acccd .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_faef .CharSet =_acccd .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_faef .Style =_acccd .Get ("\u0053\u0074\u0079l\u0065");_faef .Lang =_acccd .Get ("\u004c\u0061\u006e\u0067"); _faef .FD =_acccd .Get ("\u0046\u0044");_faef .CIDSet =_acccd .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _faef .Flags !=nil {if _ddac ,_fecde :=_eca .GetIntVal (_faef .Flags );_fecde {_faef ._feaf =_ddac ;};};if _faef .MissingWidth !=nil {if _bece ,_gcggg :=_eca .GetNumberAsFloat (_faef .MissingWidth ); _gcggg ==nil {_faef ._fdadf =_bece ;};};if _faef .FontFile !=nil {_fdafe ,_gagaa :=_decbc (_faef .FontFile );if _gagaa !=nil {return _faef ,_gagaa ;};_ccb .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_fdafe );_faef .fontFile =_fdafe ; };if _faef .FontFile2 !=nil {_ecafg ,_dfgbb :=_ffd .NewFontFile2FromPdfObject (_faef .FontFile2 );if _dfgbb !=nil {return _faef ,_dfgbb ;};_ccb .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_ecafg .String ());_faef ._aacg =&_ecafg ; };return _faef ,nil ;};func (_ddc *PdfReader )newPdfAnnotationPolygonFromDict (_aga *_eca .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_gafd :=PdfAnnotationPolygon {};_bcab ,_fdc :=_ddc .newPdfAnnotationMarkupFromDict (_aga );if _fdc !=nil {return nil ,_fdc ; };_gafd .PdfAnnotationMarkup =_bcab ;_gafd .Vertices =_aga .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_gafd .LE =_aga .Get ("\u004c\u0045");_gafd .BS =_aga .Get ("\u0042\u0053");_gafd .IC =_aga .Get ("\u0049\u0043");_gafd .BE =_aga .Get ("\u0042\u0045"); _gafd .IT =_aga .Get ("\u0049\u0054");_gafd .Measure =_aga .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_gafd ,nil ;};func _dddac ()string {_ccbac .Lock ();defer _ccbac .Unlock ();return _aacgb }; // PdfAnnotationFreeText represents FreeText annotations. // (Section 12.5.6.6). type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _eca .PdfObject ;Q _eca .PdfObject ;RC _eca .PdfObject ;DS _eca .PdfObject ;CL _eca .PdfObject ;IT _eca .PdfObject ;BE _eca .PdfObject ;RD _eca .PdfObject ;BS _eca .PdfObject ;LE _eca .PdfObject ; };var (_ccbac _a .Mutex ;_dgebb ="";_fcacce _d .Time ;_dceag ="";_gfcfa ="";_bddc _d .Time ;_bdaae ="";_aacgb ="";_aaaad ="";);func (_ebccf *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";}; // NewPdfActionSetOCGState returns a new "named" action. func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_gaga :=NewPdfAction ();_bc :=&PdfActionSetOCGState {};_bc .PdfAction =_gaga ;_gaga .SetContext (_bc );return _bc ;}; // SetBorderWidth sets the style's border width. func (_aecde *PdfBorderStyle )SetBorderWidth (width float64 ){_aecde .W =&width }; // NewPdfAnnotation3D returns a new 3d annotation. func NewPdfAnnotation3D ()*PdfAnnotation3D {_egdf :=NewPdfAnnotation ();_bace :=&PdfAnnotation3D {};_bace .PdfAnnotation =_egdf ;_egdf .SetContext (_bace );return _bace ;}; // SetColorSpace sets `r` colorspace object to `colorspace`. func (_dbfga *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_dbfga ._faccea =colorspace ;}; // BytesToCharcodes converts the bytes in a PDF string to character codes. func (_egeae *PdfFont )BytesToCharcodes (data []byte )[]_dbb .CharCode {_ccb .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 _bbebg ,_cgag :=_egeae ._dbgb .(*pdfFontType0 );_cgag &&_bbebg ._bfefe !=nil {if _abgd ,_gbfga :=_bbebg .bytesToCharcodes (data );_gbfga {return _abgd ;};};var (_gfba =make ([]_dbb .CharCode ,0,len (data )+len (data )%2);_afdg =_egeae .baseFields (); );if _afdg ._gegfa !=nil {if _afba ,_efbb :=_afdg ._gegfa .BytesToCharcodes (data );_efbb {for _ ,_gceg :=range _afba {_gfba =append (_gfba ,_dbb .CharCode (_gceg ));};return _gfba ;};};if _afdg .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]}; };if len (data )%2!=0{_ccb .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 _bgdae :=0;_bgdae < len (data );_bgdae +=2{_acfa :=uint16 (data [_bgdae ])<<8|uint16 (data [_bgdae +1]);_gfba =append (_gfba ,_dbb .CharCode (_acfa ));};}else {for _ ,_aead :=range data {_gfba =append (_gfba ,_dbb .CharCode (_aead )); };};return _gfba ;}; // 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 _eca .StreamEncoder )(*XObjectImage ,error ){_efdbd :=NewXObjectImage ();return UpdateXObjectImageFromImage (_efdbd ,img ,cs ,encoder );}; // PdfActionHide represents a hide action. type PdfActionHide struct{*PdfAction ;T _eca .PdfObject ;H _eca .PdfObject ;};func _ddfbd ()string {_ccbac .Lock ();defer _ccbac .Unlock ();if len (_dceag )> 0{return _dceag ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o"; }; // GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object // containing the field dictionary. func (_adgg *PdfField )GetContainingPdfObject ()_eca .PdfObject {return _adgg ._geaa };func _cedfg (_afbd *_eca .PdfObjectDictionary )(*PdfFieldChoice ,error ){_ddec :=&PdfFieldChoice {};_ddec .Opt ,_ =_eca .GetArray (_afbd .Get ("\u004f\u0070\u0074")); _ddec .TI ,_ =_eca .GetInt (_afbd .Get ("\u0054\u0049"));_ddec .I ,_ =_eca .GetArray (_afbd .Get ("\u0049"));return _ddec ,nil ;}; // ToPdfObject implements interface PdfModel. func (_afcd *PdfActionGoTo )ToPdfObject ()_eca .PdfObject {_afcd .PdfAction .ToPdfObject ();_cfg :=_afcd ._bee ;_bbd :=_cfg .PdfObject .(*_eca .PdfObjectDictionary );_bbd .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeGoTo )));_bbd .SetIfNotNil ("\u0044",_afcd .D ); return _cfg ;}; // NewPdfAnnotationTrapNet returns a new trapnet annotation. func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_edd :=NewPdfAnnotation ();_cdgd :=&PdfAnnotationTrapNet {};_cdgd .PdfAnnotation =_edd ;_edd .SetContext (_cdgd );return _cdgd ;}; // PdfFont represents an underlying font structure which can be of type: // - Type0 // - Type1 // - TrueType // etc. type PdfFont struct{_dbgb pdfFont };func (_degb *PdfWriter )setHashIDs (_ffcbaf _f .Hash )error {_facab :=_ffcbaf .Sum (nil );if _degb ._aadc ==""{_degb ._aadc =_c .EncodeToString (_facab [:8]);};_degb .setDocumentIDs (_degb ._aadc ,_c .EncodeToString (_facab [8:])); return nil ;}; // AddWatermarkImage adds a watermark to the page. func (_eacbg *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_ggccbe ,_edgbf :=_eacbg .GetMediaBox ();if _edgbf !=nil {return _edgbf ;};_bcfac :=_ggccbe .Urx -_ggccbe .Llx ;_gdebc :=_ggccbe .Ury -_ggccbe .Lly ;_cgaf :=float64 (*ximg .Width ); _ffgbd :=(_bcfac -_cgaf )/2;if opt .FitToWidth {_cgaf =_bcfac ;_ffgbd =0;};_efee :=_gdebc ;_fgdde :=float64 (0);if opt .PreserveAspectRatio {_efee =_cgaf *float64 (*ximg .Height )/float64 (*ximg .Width );_fgdde =(_gdebc -_efee )/2;};if _eacbg .Resources ==nil {_eacbg .Resources =NewPdfPageResources (); };_bbced :=0;_bfdf :=_eca .PdfObjectName (_g .Sprintf ("\u0049\u006d\u0077%\u0064",_bbced ));for _eacbg .Resources .HasXObjectByName (_bfdf ){_bbced ++;_bfdf =_eca .PdfObjectName (_g .Sprintf ("\u0049\u006d\u0077%\u0064",_bbced ));};_edgbf =_eacbg .AddImageResource (_bfdf ,ximg ); if _edgbf !=nil {return _edgbf ;};_bbced =0;_dfdgf :=_eca .PdfObjectName (_g .Sprintf ("\u0047\u0053\u0025\u0064",_bbced ));for _eacbg .HasExtGState (_dfdgf ){_bbced ++;_dfdgf =_eca .PdfObjectName (_g .Sprintf ("\u0047\u0053\u0025\u0064",_bbced ));};_eabbag :=_eca .MakeDict (); _eabbag .Set ("\u0042\u004d",_eca .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_eabbag .Set ("\u0043\u0041",_eca .MakeFloat (opt .Alpha ));_eabbag .Set ("\u0063\u0061",_eca .MakeFloat (opt .Alpha ));_edgbf =_eacbg .AddExtGState (_dfdgf ,_eabbag ); if _edgbf !=nil {return _edgbf ;};_bedgg :=_g .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",_dfdgf ,_cgaf ,_efee ,_ffgbd ,_fgdde ,_bfdf ); _eacbg .AddContentStreamByString (_bedgg );return nil ;}; // XObjectImage (Table 89 in 8.9.5.1). // Implements PdfModel interface. type XObjectImage struct{ //ColorSpace PdfObject Width *int64 ;Height *int64 ;ColorSpace PdfColorspace ;BitsPerComponent *int64 ;Filter _eca .StreamEncoder ;Intent _eca .PdfObject ;ImageMask _eca .PdfObject ;Mask _eca .PdfObject ;Matte _eca .PdfObject ;Decode _eca .PdfObject ;Interpolate _eca .PdfObject ; Alternatives _eca .PdfObject ;SMask _eca .PdfObject ;SMaskInData _eca .PdfObject ;Name _eca .PdfObject ;StructParent _eca .PdfObject ;ID _eca .PdfObject ;OPI _eca .PdfObject ;Metadata _eca .PdfObject ;OC _eca .PdfObject ;Stream []byte ;_gddeaa *_eca .PdfObjectStream ; }; // PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh. type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_eca .PdfObjectInteger ;BitsPerComponent *_eca .PdfObjectInteger ;VerticesPerRow *_eca .PdfObjectInteger ;Decode *_eca .PdfObjectArray ;Function []PdfFunction ;};func (_beeb *PdfAppender )mergeResources (_afed ,_eeadb _eca .PdfObject ,_gbda map[_eca .PdfObjectName ]_eca .PdfObjectName )_eca .PdfObject {if _eeadb ==nil &&_afed ==nil {return nil ; };if _eeadb ==nil {return _afed ;};_edeg ,_efac :=_eca .GetDict (_eeadb );if !_efac {return _afed ;};if _afed ==nil {_aebd :=_eca .MakeDict ();_aebd .Merge (_edeg );return _eeadb ;};_gffad ,_efac :=_eca .GetDict (_afed );if !_efac {_ccb .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"); _gffad =_eca .MakeDict ();};for _ ,_efddc :=range _edeg .Keys (){if _efec ,_aegc :=_gbda [_efddc ];_aegc {_gffad .Set (_efec ,_edeg .Get (_efddc ));}else {_gffad .Set (_efddc ,_edeg .Get (_efddc ));};};return _gffad ;};func _aabge ()string {_ccbac .Lock (); defer _ccbac .Unlock ();return _dgebb }; // ImageToRGB convert 1-component grayscale data to 3-component RGB. func (_cfaa *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_da .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"); };_bbfe ,_ggbdg :=_bbg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._gcgb ,img ._cfgaa );if _ggbdg !=nil {return img ,_ggbdg ;};_ecaf ,_ggbdg :=_bbg .NRGBAConverter .Convert (_bbfe ); if _ggbdg !=nil {return img ,_ggbdg ;};_ddgdf :=_cggae (_ecaf .Base ());_ccb .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_ccb .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data ); _ccb .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_ddgdf .Data );_ccb .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_ddgdf );return _ddgdf ,nil ;}; // 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 ; // Mask returns the uin32 bitmask for the specific flag. func (_gadd FieldFlag )Mask ()uint32 {return uint32 (_gadd )};func (_gfdc fontCommon )asPdfObjectDictionary (_gfbg string )*_eca .PdfObjectDictionary {if _gfbg !=""&&_gfdc ._cfbe !=""&&_gfbg !=_gfdc ._cfbe {_ccb .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",_gfbg ,_gfdc ); }else if _gfbg ==""&&_gfdc ._cfbe ==""{_ccb .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",_gfdc ); }else if _gfdc ._cfbe ==""{_gfdc ._cfbe =_gfbg ;};_bccee :=_eca .MakeDict ();_bccee .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0046\u006f\u006e\u0074"));_bccee .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_eca .MakeName (_gfdc ._daac )); _bccee .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName (_gfdc ._cfbe ));if _gfdc ._ccec !=nil {_bccee .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_gfdc ._ccec .ToPdfObject ());};if _gfdc ._effb !=nil {_bccee .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_gfdc ._effb ); }else if _gfdc ._gegfa !=nil {_eebb ,_bbfcd :=_gfdc ._gegfa .Stream ();if _bbfcd !=nil {_ccb .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",_bbfcd ); }else {_bccee .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_eebb );};};return _bccee ;}; // PdfShadingPatternType2 is shading patterns that will use a Type 2 shading pattern (Axial). type PdfShadingPatternType2 struct{*PdfPattern ;Shading *PdfShadingType2 ;Matrix *_eca .PdfObjectArray ;ExtGState _eca .PdfObject ;}; // PdfAnnotationPopup represents Popup annotations. // (Section 12.5.6.14). type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _eca .PdfObject ;Open _eca .PdfObject ;};func _gbdag (_abaef _eca .PdfObject )(*PdfPattern ,error ){_caaba :=&PdfPattern {};var _beefe *_eca .PdfObjectDictionary ;if _abdae ,_eagb :=_eca .GetIndirect (_abaef ); _eagb {_caaba ._cdfed =_abdae ;_ccdg ,_adced :=_abdae .PdfObject .(*_eca .PdfObjectDictionary );if !_adced {_ccb .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",_abdae .PdfObject ); return nil ,_eca .ErrTypeError ;};_beefe =_ccdg ;}else if _gagdd ,_deaeed :=_eca .GetStream (_abaef );_deaeed {_caaba ._cdfed =_gagdd ;_beefe =_gagdd .PdfObjectDictionary ;}else {_ccb .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",_abaef ); return nil ,_eca .ErrTypeError ;};_efge :=_beefe .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _efge ==nil {_ccb .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 ;};_cfdcc ,_becdb :=_efge .(*_eca .PdfObjectInteger );if !_becdb {_ccb .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",_efge ); return nil ,_eca .ErrTypeError ;};if *_cfdcc !=1&&*_cfdcc !=2{_ccb .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",*_cfdcc );return nil ,_eca .ErrRangeError ; };_caaba .PatternType =int64 (*_cfdcc );switch *_cfdcc {case 1:_gebd ,_cfffa :=_agafe (_beefe );if _cfffa !=nil {return nil ,_cfffa ;};_gebd .PdfPattern =_caaba ;_caaba ._cegb =_gebd ;return _caaba ,nil ;case 2:_gcag ,_eabf :=_dfacd (_beefe );if _eabf !=nil {return nil ,_eabf ; };_gcag .PdfPattern =_caaba ;_caaba ._cegb =_gcag ;return _caaba ,nil ;};return nil ,_da .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");}; // 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 (_bdfae *PdfFieldButton )GetType ()ButtonType {_cbbbe :=ButtonTypeCheckbox ;if _bdfae .Ff !=nil {if (uint32 (*_bdfae .Ff )&FieldFlagPushbutton .Mask ())> 0{_cbbbe =ButtonTypePush ;}else if (uint32 (*_bdfae .Ff )&FieldFlagRadio .Mask ())> 0{_cbbbe =ButtonTypeRadio ; };};return _cbbbe ;}; // GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this. func (_befbf *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _befbf ._cegb .(*PdfTilingPattern );}; // ToPdfObject implements interface PdfModel. func (_deg *PdfActionResetForm )ToPdfObject ()_eca .PdfObject {_deg .PdfAction .ToPdfObject ();_cae :=_deg ._bee ;_egb :=_cae .PdfObject .(*_eca .PdfObjectDictionary );_egb .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeResetForm )));_egb .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_deg .Fields ); _egb .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_deg .Flags );return _cae ;};func (_caac *PdfWriter )copyObjects (){_daggd :=make (map[_eca .PdfObject ]_eca .PdfObject );_bfcc :=make ([]_eca .PdfObject ,0,len (_caac ._daecf ));_bgdac :=make (map[_eca .PdfObject ]struct{},len (_caac ._daecf )); _baga :=make (map[_eca .PdfObject ]struct{});for _ ,_edfbf :=range _caac ._daecf {_aeaab :=_caac .copyObject (_edfbf ,_daggd ,_baga ,false );if _ ,_ggeff :=_baga [_edfbf ];_ggeff {continue ;};_bfcc =append (_bfcc ,_aeaab );_bgdac [_aeaab ]=struct{}{};}; _caac ._daecf =_bfcc ;_caac ._ceace =_bgdac ;_caac ._fbegc =_caac .copyObject (_caac ._fbegc ,_daggd ,nil ,false ).(*_eca .PdfIndirectObject );_caac ._bggab =_caac .copyObject (_caac ._bggab ,_daggd ,nil ,false ).(*_eca .PdfIndirectObject );if _caac ._fdgaf !=nil {_caac ._fdgaf =_caac .copyObject (_caac ._fdgaf ,_daggd ,nil ,false ).(*_eca .PdfIndirectObject ); };if _caac ._ccdgb {_dfege :=make (map[_eca .PdfObject ]int64 );for _dccfg ,_fbcf :=range _caac ._abfag {if _bfccc ,_eacef :=_daggd [_dccfg ];_eacef {_dfege [_bfccc ]=_fbcf ;}else {_ccb .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"); };};_caac ._abfag =_dfege ;};}; // ToPdfObject returns the PDF representation of the function. func (_fdbfg *PdfFunctionType2 )ToPdfObject ()_eca .PdfObject {_accbf :=_eca .MakeDict ();_accbf .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eca .MakeInteger (2));_egad :=&_eca .PdfObjectArray {};for _ ,_bbaac :=range _fdbfg .Domain {_egad .Append (_eca .MakeFloat (_bbaac )); };_accbf .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_egad );if _fdbfg .Range !=nil {_fecdc :=&_eca .PdfObjectArray {};for _ ,_aafcc :=range _fdbfg .Range {_fecdc .Append (_eca .MakeFloat (_aafcc ));};_accbf .Set ("\u0052\u0061\u006eg\u0065",_fecdc ); };if _fdbfg .C0 !=nil {_ebdeb :=&_eca .PdfObjectArray {};for _ ,_dgge :=range _fdbfg .C0 {_ebdeb .Append (_eca .MakeFloat (_dgge ));};_accbf .Set ("\u0043\u0030",_ebdeb );};if _fdbfg .C1 !=nil {_eefaf :=&_eca .PdfObjectArray {};for _ ,_cdga :=range _fdbfg .C1 {_eefaf .Append (_eca .MakeFloat (_cdga )); };_accbf .Set ("\u0043\u0031",_eefaf );};_accbf .Set ("\u004e",_eca .MakeFloat (_fdbfg .N ));if _fdbfg ._agcab !=nil {_fdbfg ._agcab .PdfObject =_accbf ;return _fdbfg ._agcab ;};return _accbf ;};func (_aeaa *fontFile )loadFromSegments (_gecg ,_aafc []byte )error {_ccb .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_gecg ),len (_aafc )); _bgdcg :=_aeaa .parseASCIIPart (_gecg );if _bgdcg !=nil {return _bgdcg ;};_ccb .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_aeaa );if len (_aafc )==0{return nil ;};_ccb .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_aeaa ); return nil ;}; // AcroFormRepairOptions contains options for rebuilding the AcroForm. type AcroFormRepairOptions struct{};func (_agebcg *pdfFontSimple )baseFields ()*fontCommon {return &_agebcg .fontCommon }; // PdfAnnotationWidget represents Widget annotations. // Note: Widget annotations are used to display form fields. // (Section 12.5.6.19). type PdfAnnotationWidget struct{*PdfAnnotation ;H _eca .PdfObject ;MK _eca .PdfObject ;A _eca .PdfObject ;AA _eca .PdfObject ;BS _eca .PdfObject ;Parent _eca .PdfObject ;_ebc *PdfField ;_bbed bool ;};func (_bedg *pdfCIDFontType0 )baseFields ()*fontCommon {return &_bedg .fontCommon }; // ToPdfObject returns the PDF representation of the pattern. func (_bagd *PdfPattern )ToPdfObject ()_eca .PdfObject {_ceeab :=_bagd .getDict ();_ceeab .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_ceeab .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_eca .MakeInteger (_bagd .PatternType )); return _bagd ._cdfed ;};var (CourierName =_ffd .CourierName ;CourierBoldName =_ffd .CourierBoldName ;CourierObliqueName =_ffd .CourierObliqueName ;CourierBoldObliqueName =_ffd .CourierBoldObliqueName ;HelveticaName =_ffd .HelveticaName ;HelveticaBoldName =_ffd .HelveticaBoldName ; HelveticaObliqueName =_ffd .HelveticaObliqueName ;HelveticaBoldObliqueName =_ffd .HelveticaBoldObliqueName ;SymbolName =_ffd .SymbolName ;ZapfDingbatsName =_ffd .ZapfDingbatsName ;TimesRomanName =_ffd .TimesRomanName ;TimesBoldName =_ffd .TimesBoldName ; TimesItalicName =_ffd .TimesItalicName ;TimesBoldItalicName =_ffd .TimesBoldItalicName ;); // 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 (_edfg *PdfPage )Size ()(float64 ,float64 ,error ){_gbfbd ,_cegea :=_edfg .GetMediaBox ();if _cegea !=nil {return 0,0,_cegea ;};_gcbb ,_bbfb :=_gbfbd .Width (),_gbfbd .Height ();_eaaf ,_cegea :=_edfg .GetRotate ();if _cegea !=nil {_ccb .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",_cegea .Error ()); };if _befa :=_eaaf ;_befa %360!=0&&_befa %90==0{if _efgbe :=(360+_befa %360)%360;_efgbe ==90||_efgbe ==270{_gcbb ,_bbfb =_bbfb ,_gcbb ;};};return _gcbb ,_bbfb ,nil ;}; // PdfActionGoTo represents a GoTo action. type PdfActionGoTo struct{*PdfAction ;D _eca .PdfObject ;}; // PdfActionURI represents an URI action. type PdfActionURI struct{*PdfAction ;URI _eca .PdfObject ;IsMap _eca .PdfObject ;}; // ToPdfObject implements interface PdfModel. func (_gbdg *PdfAnnotationCaret )ToPdfObject ()_eca .PdfObject {_gbdg .PdfAnnotation .ToPdfObject ();_egeb :=_gbdg ._cdc ;_fbf :=_egeb .PdfObject .(*_eca .PdfObjectDictionary );_gbdg .PdfAnnotationMarkup .appendToPdfDictionary (_fbf );_fbf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0043\u0061\u0072e\u0074")); _fbf .SetIfNotNil ("\u0052\u0044",_gbdg .RD );_fbf .SetIfNotNil ("\u0053\u0079",_gbdg .Sy );return _egeb ;}; // DecodeArray returns the range of color component values in CalRGB colorspace. func (_bgaa *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};}; // UpdatePage updates the `page` in the new revision if it has changed. func (_bedd *PdfAppender )UpdatePage (page *PdfPage ){_bedd .updateObjectsDeep (page .ToPdfObject (),nil )}; // ToInteger convert to an integer format. func (_bcgf *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_aede :=_de .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_aede *_bcgf .C ()),uint32 (_aede *_bcgf .M ()),uint32 (_aede *_bcgf .Y ()),uint32 (_aede *_bcgf .K ())};};func (_dcdd *PdfReader )newPdfAnnotationPolyLineFromDict (_bfbf *_eca .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_bdc :=PdfAnnotationPolyLine {}; _dbfg ,_bcaf :=_dcdd .newPdfAnnotationMarkupFromDict (_bfbf );if _bcaf !=nil {return nil ,_bcaf ;};_bdc .PdfAnnotationMarkup =_dbfg ;_bdc .Vertices =_bfbf .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_bdc .LE =_bfbf .Get ("\u004c\u0045");_bdc .BS =_bfbf .Get ("\u0042\u0053"); _bdc .IC =_bfbf .Get ("\u0049\u0043");_bdc .BE =_bfbf .Get ("\u0042\u0045");_bdc .IT =_bfbf .Get ("\u0049\u0054");_bdc .Measure =_bfbf .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_bdc ,nil ;}; // GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters. func (_fffff *Image )GetParamsDict ()*_eca .PdfObjectDictionary {_dffc :=_eca .MakeDict ();_dffc .Set ("\u0057\u0069\u0064t\u0068",_eca .MakeInteger (_fffff .Width ));_dffc .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_eca .MakeInteger (_fffff .Height )); _dffc .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_eca .MakeInteger (int64 (_fffff .ColorComponents )));_dffc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eca .MakeInteger (_fffff .BitsPerComponent )); return _dffc ;}; // DecodeArray returns the range of color component values in the Lab colorspace. func (_dedf *PdfColorspaceLab )DecodeArray ()[]float64 {_bagc :=[]float64 {0,100};if _dedf .Range !=nil &&len (_dedf .Range )==4{_bagc =append (_bagc ,_dedf .Range ...);}else {_bagc =append (_bagc ,-100,100,-100,100);};return _bagc ;}; // PdfColorspaceDeviceRGB represents an RGB colorspace. type PdfColorspaceDeviceRGB struct{}; // ToPdfObject implements interface PdfModel. func (_eecf *PdfAnnotationProjection )ToPdfObject ()_eca .PdfObject {_eecf .PdfAnnotation .ToPdfObject ();_accg :=_eecf ._cdc ;_cdge :=_accg .PdfObject .(*_eca .PdfObjectDictionary );_eecf .PdfAnnotationMarkup .appendToPdfDictionary (_cdge );return _accg ; }; // GetRotate gets the inheritable rotate value, either from the page // or a higher up page/pages struct. func (_fefa *PdfPage )GetRotate ()(int64 ,error ){if _fefa .Rotate !=nil {return *_fefa .Rotate ,nil ;};_abbcb :=_fefa .Parent ;for _abbcb !=nil {_afegbb ,_ggebf :=_eca .GetDict (_abbcb );if !_ggebf {return 0,_da .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 _dabca :=_afegbb .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_dabca !=nil {_dcgcc ,_geedf :=_eca .GetInt (_dabca );if !_geedf {return 0,_da .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065"); };if _dcgcc !=nil {return int64 (*_dcgcc ),nil ;};return 0,_da .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_abbcb =_afegbb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_da .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064"); }; // ToPdfObject implements interface PdfModel. func (_fgcfe *PdfAnnotationText )ToPdfObject ()_eca .PdfObject {_fgcfe .PdfAnnotation .ToPdfObject ();_gbcf :=_fgcfe ._cdc ;_babb :=_gbcf .PdfObject .(*_eca .PdfObjectDictionary );if _fgcfe .PdfAnnotationMarkup !=nil {_fgcfe .PdfAnnotationMarkup .appendToPdfDictionary (_babb ); };_babb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0054\u0065\u0078\u0074"));_babb .SetIfNotNil ("\u004f\u0070\u0065\u006e",_fgcfe .Open );_babb .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fgcfe .Name );_babb .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_fgcfe .State ); _babb .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_fgcfe .StateModel );return _gbcf ;}; // NewPdfAnnotationFileAttachment returns a new file attachment annotation. func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_abf :=NewPdfAnnotation ();_fec :=&PdfAnnotationFileAttachment {};_fec .PdfAnnotation =_abf ;_fec .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_abf .SetContext (_fec );return _fec ;}; // NewPdfAnnotationLine returns a new line annotation. func NewPdfAnnotationLine ()*PdfAnnotationLine {_gfd :=NewPdfAnnotation ();_dcbg :=&PdfAnnotationLine {};_dcbg .PdfAnnotation =_gfd ;_dcbg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gfd .SetContext (_dcbg );return _dcbg ;};func _ecaad (_efaef _eca .PdfObject )(*PdfShading ,error ){_ffgacb :=&PdfShading {}; var _degdb *_eca .PdfObjectDictionary ;if _edace ,_fgad :=_eca .GetIndirect (_efaef );_fgad {_ffgacb ._dcbe =_edace ;_bbbcb ,_afbab :=_edace .PdfObject .(*_eca .PdfObjectDictionary );if !_afbab {_ccb .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 ,_eca .ErrTypeError ;};_degdb =_bbbcb ;}else if _cabd ,_gcbbb :=_eca .GetStream (_efaef );_gcbbb {_ffgacb ._dcbe =_cabd ;_degdb =_cabd .PdfObjectDictionary ;}else if _cdcgc ,_decg :=_eca .GetDict (_efaef );_decg {_ffgacb ._dcbe =_cdcgc ;_degdb =_cdcgc ; }else {_ccb .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",_efaef );return nil ,_eca .ErrTypeError ;};if _degdb ==nil {_ccb .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067"); return nil ,_da .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_efaef =_degdb .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _efaef ==nil {_ccb .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 ;};_efaef =_eca .TraceToDirectObject (_efaef );_bdddd ,_fgbf :=_efaef .(*_eca .PdfObjectInteger );if !_fgbf {_ccb .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",_efaef ); return nil ,_eca .ErrTypeError ;};if *_bdddd < 1||*_bdddd > 7{_ccb .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",*_bdddd ); return nil ,_eca .ErrTypeError ;};_ffgacb .ShadingType =_bdddd ;_efaef =_degdb .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _efaef ==nil {_ccb .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 ;};_bcea ,_gcaf :=NewPdfColorspaceFromPdfObject (_efaef );if _gcaf !=nil {_ccb .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",_gcaf ); return nil ,_gcaf ;};_ffgacb .ColorSpace =_bcea ;_efaef =_degdb .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _efaef !=nil {_efaef =_eca .TraceToDirectObject (_efaef );_dffcd ,_dgfgag :=_efaef .(*_eca .PdfObjectArray );if !_dgfgag {_ccb .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)",_efaef ); return nil ,_eca .ErrTypeError ;};_ffgacb .Background =_dffcd ;};_efaef =_degdb .Get ("\u0042\u0042\u006f\u0078");if _efaef !=nil {_efaef =_eca .TraceToDirectObject (_efaef );_cbcce ,_cafdd :=_efaef .(*_eca .PdfObjectArray );if !_cafdd {_ccb .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)",_efaef ); return nil ,_eca .ErrTypeError ;};_adedd ,_bgbgc :=NewPdfRectangle (*_cbcce );if _bgbgc !=nil {_ccb .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_bgbgc );return nil ,_bgbgc ;};_ffgacb .BBox =_adedd ;};_efaef =_degdb .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s"); if _efaef !=nil {_efaef =_eca .TraceToDirectObject (_efaef );_bbbdg ,_abfa :=_efaef .(*_eca .PdfObjectBool );if !_abfa {_ccb .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",_efaef ); return nil ,_eca .ErrTypeError ;};_ffgacb .AntiAlias =_bbbdg ;};switch *_bdddd {case 1:_dgdff ,_edcca :=_dcfeb (_degdb );if _edcca !=nil {return nil ,_edcca ;};_dgdff .PdfShading =_ffgacb ;_ffgacb ._abefa =_dgdff ;return _ffgacb ,nil ;case 2:_geeg ,_gacad :=_fbeb (_degdb ); if _gacad !=nil {return nil ,_gacad ;};_geeg .PdfShading =_ffgacb ;_ffgacb ._abefa =_geeg ;return _ffgacb ,nil ;case 3:_fadga ,_dccebc :=_gccfg (_degdb );if _dccebc !=nil {return nil ,_dccebc ;};_fadga .PdfShading =_ffgacb ;_ffgacb ._abefa =_fadga ;return _ffgacb ,nil ; case 4:_geeb ,_fdffa :=_gfga (_degdb );if _fdffa !=nil {return nil ,_fdffa ;};_geeb .PdfShading =_ffgacb ;_ffgacb ._abefa =_geeb ;return _ffgacb ,nil ;case 5:_abgcb ,_agbg :=_aada (_degdb );if _agbg !=nil {return nil ,_agbg ;};_abgcb .PdfShading =_ffgacb ; _ffgacb ._abefa =_abgcb ;return _ffgacb ,nil ;case 6:_dcdddg ,_gfcg :=_gfgce (_degdb );if _gfcg !=nil {return nil ,_gfcg ;};_dcdddg .PdfShading =_ffgacb ;_ffgacb ._abefa =_dcdddg ;return _ffgacb ,nil ;case 7:_abebf ,_dcedd :=_ffgea (_degdb );if _dcedd !=nil {return nil ,_dcedd ; };_abebf .PdfShading =_ffgacb ;_ffgacb ._abefa =_abebf ;return _ffgacb ,nil ;};return nil ,_da .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};func (_aabcd *PdfReader )newPdfOutlineItemFromIndirectObject (_fafec *_eca .PdfIndirectObject )(*PdfOutlineItem ,error ){_bdedfaf ,_fdgea :=_fafec .PdfObject .(*_eca .PdfObjectDictionary ); if !_fdgea {return nil ,_g .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");};_edacb :=NewPdfOutlineItem ();_dccgd :=_bdedfaf .Get ("\u0054\u0069\u0074l\u0065"); if _dccgd ==nil {return nil ,_g .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"); };_cbgfe ,_beecb :=_eca .GetString (_dccgd );if !_beecb {return nil ,_g .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_dccgd );};_edacb .Title =_cbgfe ;if _baacd :=_bdedfaf .Get ("\u0043\u006f\u0075n\u0074"); _baacd !=nil {_fcgg ,_eegad :=_baacd .(*_eca .PdfObjectInteger );if !_eegad {return nil ,_g .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_baacd );};_fdadfd :=int64 (*_fcgg ); _edacb .Count =&_fdadfd ;};if _fdeg :=_bdedfaf .Get ("\u0044\u0065\u0073\u0074");_fdeg !=nil {_edacb .Dest =_eca .ResolveReference (_fdeg );if !_aabcd ._gggcg {_ggddb :=_aabcd .traverseObjectData (_edacb .Dest );if _ggddb !=nil {return nil ,_ggddb ;};}; };if _fcceg :=_bdedfaf .Get ("\u0041");_fcceg !=nil {_edacb .A =_eca .ResolveReference (_fcceg );if !_aabcd ._gggcg {_dfbe :=_aabcd .traverseObjectData (_edacb .A );if _dfbe !=nil {return nil ,_dfbe ;};};};if _acegg :=_bdedfaf .Get ("\u0053\u0045");_acegg !=nil {_edacb .SE =nil ; };if _daadc :=_bdedfaf .Get ("\u0043");_daadc !=nil {_edacb .C =_eca .ResolveReference (_daadc );};if _faad :=_bdedfaf .Get ("\u0046");_faad !=nil {_edacb .F =_eca .ResolveReference (_faad );};return _edacb ,nil ;}; // GetBorderWidth returns the border style's width. func (_add *PdfBorderStyle )GetBorderWidth ()float64 {if _add .W ==nil {return 1;};return *_add .W ;};func (_agefd *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _agefd ._ccec };func (_gcea *PdfWriter )writeObject (_beggd int ,_befaca _eca .PdfObject ){_ccb .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_beggd ); if _fcfbb ,_aaab :=_befaca .(*_eca .PdfIndirectObject );_aaab {_gcea ._eaad [_beggd ]=crossReference {Type :1,Offset :_gcea ._eggaf ,Generation :_fcfbb .GenerationNumber };_gcbcg :=_g .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_beggd );if _agcg ,_ccef :=_fcfbb .PdfObject .(*pdfSignDictionary ); _ccef {_agcg ._fegcb =_gcea ._eggaf +int64 (len (_gcbcg ));};if _fcfbb .PdfObject ==nil {_ccb .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"); _fcfbb .PdfObject =_eca .MakeNull ();};_gcbcg +=_fcfbb .PdfObject .WriteString ();_gcbcg +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_gcea .writeString (_gcbcg );return ;};if _gagea ,_bgbb :=_befaca .(*_eca .PdfObjectStream );_bgbb {_gcea ._eaad [_beggd ]=crossReference {Type :1,Offset :_gcea ._eggaf ,Generation :_gagea .GenerationNumber }; _ffbff :=_g .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_beggd );_ffbff +=_gagea .PdfObjectDictionary .WriteString ();_ffbff +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_gcea .writeString (_ffbff );_gcea .writeBytes (_gagea .Stream ); _gcea .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _fedd ,_abbcf :=_befaca .(*_eca .PdfObjectStreams );_abbcf {_gcea ._eaad [_beggd ]=crossReference {Type :1,Offset :_gcea ._eggaf ,Generation :_fedd .GenerationNumber }; _fadeg :=_g .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_beggd );var _cfaad []string ;var _gfeb string ;var _bdebc int64 ;for _adbf ,_aebff :=range _fedd .Elements (){_efaba ,_cdcdd :=_aebff .(*_eca .PdfIndirectObject );if !_cdcdd {_ccb .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",_beggd ,_aebff ); continue ;};_dgcfe :=_efaba .PdfObject .WriteString ()+"\u0020";_gfeb =_gfeb +_dgcfe ;_cfaad =append (_cfaad ,_g .Sprintf ("\u0025\u0064\u0020%\u0064",_efaba .ObjectNumber ,_bdebc ));_gcea ._eaad [int (_efaba .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_beggd ,Index :_adbf }; _bdebc =_bdebc +int64 (len ([]byte (_dgcfe )));};_deedd :=_ec .Join (_cfaad ,"\u0020")+"\u0020";_eagfa :=_eca .NewFlateEncoder ();_ffdga :=_eagfa .MakeStreamDict ();_ffdga .Set (_eca .PdfObjectName ("\u0054\u0079\u0070\u0065"),_eca .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d")); _eeddb :=int64 (_fedd .Len ());_ffdga .Set (_eca .PdfObjectName ("\u004e"),_eca .MakeInteger (_eeddb ));_dgfcf :=int64 (len (_deedd ));_ffdga .Set (_eca .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_eca .MakeInteger (_dgfcf ));_gadbed ,_ :=_eagfa .EncodeBytes ([]byte (_deedd +_gfeb )); _eeaac :=int64 (len (_gadbed ));_ffdga .Set (_eca .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_eca .MakeInteger (_eeaac ));_fadeg +=_ffdga .WriteString ();_fadeg +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_gcea .writeString (_fadeg ); _gcea .writeBytes (_gadbed );_gcea .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_gcea .writeString (_befaca .WriteString ());};func (_feae *PdfReader )newPdfActionGotoRFromDict (_cee *_eca .PdfObjectDictionary )(*PdfActionGoToR ,error ){_acc ,_gbae :=_efe (_cee .Get ("\u0046")); if _gbae !=nil {return nil ,_gbae ;};return &PdfActionGoToR {D :_cee .Get ("\u0044"),NewWindow :_cee .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_acc },nil ;}; // A returns the value of the A component of the color. func (_ebeb *PdfColorLab )A ()float64 {return _ebeb [1]}; // 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 *_eca .PdfParser ;DiffPolicy _ecg .DiffPolicy ;};func _bbba (_cedda *PdfField ,_fgcba _eca .PdfObject )error {switch _cedda .GetContext ().(type ){case *PdfFieldText :switch _acgge :=_fgcba .(type ){case *_eca .PdfObjectName :_agaab :=_acgge ; _ccb .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",_agaab .String ()); _cedda .V =_eca .MakeEncodedString (_acgge .String (),true );case *_eca .PdfObjectString :_cedda .V =_eca .MakeEncodedString (_acgge .String (),true );default:_ccb .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",_acgge ,_acgge ); };case *PdfFieldButton :switch _fgcba .(type ){case *_eca .PdfObjectName :if len (_fgcba .String ())> 0{_cedda .V =_fgcba ;_ebcdg (_cedda ,_fgcba );};case *_eca .PdfObjectString :if len (_fgcba .String ())> 0{_cedda .V =_eca .MakeName (_fgcba .String ()); _ebcdg (_cedda ,_cedda .V );};default:_ccb .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",_cedda .PartialName (),_fgcba );_cedda .V =_fgcba ; };case *PdfFieldChoice :switch _fgcba .(type ){case *_eca .PdfObjectName :if len (_fgcba .String ())> 0{_cedda .V =_eca .MakeString (_fgcba .String ());_ebcdg (_cedda ,_fgcba );};case *_eca .PdfObjectString :if len (_fgcba .String ())> 0{_cedda .V =_fgcba ; _ebcdg (_cedda ,_eca .MakeName (_fgcba .String ()));};default:_ccb .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",_cedda .PartialName (),_fgcba ); _cedda .V =_fgcba ;};case *PdfFieldSignature :_ccb .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",_cedda .PartialName (),_fgcba ); };return nil ;}; // NewPdfColorspaceDeviceGray returns a new grayscale colorspace. func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}}; // ToPdfOutlineItem returns a low level PdfOutlineItem object, // based on the current instance. func (_dggfc *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_bbdd :=NewPdfOutlineItem ();_bbdd .Title =_eca .MakeEncodedString (_dggfc .Title ,true );_bbdd .Dest =_dggfc .Dest .ToPdfObject ();var _edcfa []*PdfOutlineItem ;var _gddgd int64 ; var _cdcbb *PdfOutlineItem ;for _ ,_abaag :=range _dggfc .Entries {_dffab ,_bafgd :=_abaag .ToPdfOutlineItem ();_dffab .Parent =&_bbdd .PdfOutlineTreeNode ;if _cdcbb !=nil {_cdcbb .Next =&_dffab .PdfOutlineTreeNode ;_dffab .Prev =&_cdcbb .PdfOutlineTreeNode ; };_edcfa =append (_edcfa ,_dffab );_gddgd +=_bafgd ;_cdcbb =_dffab ;};_fcega :=len (_edcfa );_gddgd +=int64 (_fcega );if _fcega > 0{_bbdd .First =&_edcfa [0].PdfOutlineTreeNode ;_bbdd .Last =&_edcfa [_fcega -1].PdfOutlineTreeNode ;_bbdd .Count =&_gddgd ; };return _bbdd ,_gddgd ;}; // NewOutlineItem returns a new outline item instance. func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;); // ToPdfObject returns the PDF representation of the colorspace. func (_cac *PdfColorspaceSpecialSeparation )ToPdfObject ()_eca .PdfObject {_dded :=_eca .MakeArray (_eca .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_dded .Append (_cac .ColorantName );_dded .Append (_cac .AlternateSpace .ToPdfObject ()); _dded .Append (_cac .TintTransform .ToPdfObject ());if _cac ._aabgg !=nil {_cac ._aabgg .PdfObject =_dded ;return _cac ._aabgg ;};return _dded ;}; // GetContainingPdfObject returns the container of the image object (indirect object). func (_bbebfc *XObjectImage )GetContainingPdfObject ()_eca .PdfObject {return _bbebfc ._gddeaa }; // R returns the value of the red component of the color. func (_fcgd *PdfColorDeviceRGB )R ()float64 {return _fcgd [0]}; // Insert adds an outline item as a child of the current outline item, // at the specified index. func (_fccg *OutlineItem )Insert (index uint ,item *OutlineItem ){_ebaed :=uint (len (_fccg .Entries ));if index > _ebaed {index =_ebaed ;};_fccg .Entries =append (_fccg .Entries [:index ],append ([]*OutlineItem {item },_fccg .Entries [index :]...)...); };func _gcbg (_ebedf _eca .PdfObject )(*PdfColorspaceICCBased ,error ){_bada :=&PdfColorspaceICCBased {};if _gege ,_ffcb :=_ebedf .(*_eca .PdfIndirectObject );_ffcb {_bada ._bgefa =_gege ;};_ebedf =_eca .TraceToDirectObject (_ebedf );_ffcc ,_ffgfg :=_ebedf .(*_eca .PdfObjectArray ); if !_ffgfg {return nil ,_g .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _ffcc .Len ()!=2{return nil ,_g .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065"); };_ebedf =_eca .TraceToDirectObject (_ffcc .Get (0));_gaaba ,_ffgfg :=_ebedf .(*_eca .PdfObjectName );if !_ffgfg {return nil ,_g .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 *_gaaba !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_g .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");};_ebedf =_ffcc .Get (1); _cegg ,_ffgfg :=_eca .GetStream (_ebedf );if !_ffgfg {_ccb .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",_ebedf ); return nil ,_g .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_daefc :=_cegg .PdfObjectDictionary ;_bgab ,_ffgfg :=_daefc .Get ("\u004e").(*_eca .PdfObjectInteger ); if !_ffgfg {return nil ,_g .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 *_bgab !=1&&*_bgab !=3&&*_bgab !=4{return nil ,_g .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"); };_bada .N =int (*_bgab );if _bebe :=_daefc .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_bebe !=nil {_ebaa ,_eaee :=NewPdfColorspaceFromPdfObject (_bebe );if _eaee !=nil {return nil ,_eaee ;};_bada .Alternate =_ebaa ;};if _bbbfa :=_daefc .Get ("\u0052\u0061\u006eg\u0065"); _bbbfa !=nil {_bbbfa =_eca .TraceToDirectObject (_bbbfa );_gefdg ,_febe :=_bbbfa .(*_eca .PdfObjectArray );if !_febe {return nil ,_g .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 _gefdg .Len ()!=2*_bada .N {return nil ,_g .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"); };_gage ,_defe :=_gefdg .GetAsFloat64Slice ();if _defe !=nil {return nil ,_defe ;};_bada .Range =_gage ;}else {_bada .Range =make ([]float64 ,2*_bada .N );for _afcda :=0;_afcda < _bada .N ;_afcda ++{_bada .Range [2*_afcda ]=0.0;_bada .Range [2*_afcda +1]=1.0; };};if _deabf :=_daefc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_deabf !=nil {_dgga ,_cfeg :=_deabf .(*_eca .PdfObjectStream );if !_cfeg {return nil ,_g .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"); };_bada .Metadata =_dgga ;};_adac ,_cegc :=_eca .DecodeStream (_cegg );if _cegc !=nil {return nil ,_cegc ;};_bada .Data =_adac ;_bada ._fdga =_cegg ;return _bada ,nil ;}; // ToPdfObject implements interface PdfModel. func (_afga *PdfAnnotationRedact )ToPdfObject ()_eca .PdfObject {_afga .PdfAnnotation .ToPdfObject ();_gbg :=_afga ._cdc ;_fdad :=_gbg .PdfObject .(*_eca .PdfObjectDictionary );_afga .PdfAnnotationMarkup .appendToPdfDictionary (_fdad );_fdad .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074")); _fdad .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_afga .QuadPoints );_fdad .SetIfNotNil ("\u0049\u0043",_afga .IC );_fdad .SetIfNotNil ("\u0052\u004f",_afga .RO );_fdad .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_afga .OverlayText ); _fdad .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_afga .Repeat );_fdad .SetIfNotNil ("\u0044\u0041",_afga .DA );_fdad .SetIfNotNil ("\u0051",_afga .Q );return _gbg ;}; // GetPerms returns the Permissions dictionary func (_gfgd *PdfReader )GetPerms ()*Permissions {return _gfgd ._bdbaa }; // 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 _eca .PdfObject )(_eca .PdfObjectName ,error ){var _edaa *_eca .PdfObjectName ;var _ecfe *_eca .PdfObjectArray ;if _edcea ,_bgcd :=obj .(*_eca .PdfIndirectObject );_bgcd {if _begg ,_agca :=_edcea .PdfObject .(*_eca .PdfObjectArray ); _agca {_ecfe =_begg ;}else if _gbegg ,_efb :=_edcea .PdfObject .(*_eca .PdfObjectName );_efb {_edaa =_gbegg ;};}else if _ebcc ,_fgcc :=obj .(*_eca .PdfObjectArray );_fgcc {_ecfe =_ebcc ;}else if _ceab ,_gdda :=obj .(*_eca .PdfObjectName );_gdda {_edaa =_ceab ; };if _edaa !=nil {switch *_edaa {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 *_edaa ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_edaa ,nil ; };};if _ecfe !=nil &&_ecfe .Len ()> 0{if _eddb ,_fbdg :=_ecfe .Get (0).(*_eca .PdfObjectName );_fbdg {switch *_eddb {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 _ecfe .Len ()==1{return *_eddb ,nil ; };case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_eddb ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_eddb ,nil ; case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_eddb ,nil ;};};};return "",nil ;}; // GetAllContentStreams gets all the content streams for a page as one string. func (_gfda *PdfPage )GetAllContentStreams ()(string ,error ){_gcae ,_fgfdd :=_gfda .GetContentStreams ();if _fgfdd !=nil {return "",_fgfdd ;};return _ec .Join (_gcae ,"\u0020"),nil ;}; // ToPdfObject converts date to a PDF string object. func (_bbbcba *PdfDate )ToPdfObject ()_eca .PdfObject {_cbaef :=_g .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",_bbbcba ._ffacc ,_bbbcba ._gecba ,_bbbcba ._bcdea ,_bbbcba ._dcbgf ,_bbbcba ._agdad ,_bbbcba ._dccbf ,_bbbcba ._cgad ,_bbbcba ._ffffbf ,_bbbcba ._caaa ); return _eca .MakeString (_cbaef );}; // ColorToRGB converts gray -> rgb for a single color component. func (_gccf *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_afdc ,_aacf :=color .(*PdfColorDeviceGray );if !_aacf {_ccb .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 ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_afdc ),float64 (*_afdc ),float64 (*_afdc )),nil ;}; // PdfVersion returns version of the PDF file. func (_fceb *PdfReader )PdfVersion ()_eca .Version {return _fceb ._ecfeba .PdfVersion ()}; // IsSimple returns true if `font` is a simple font. func (_ccdd *PdfFont )IsSimple ()bool {_ ,_fcgac :=_ccdd ._dbgb .(*pdfFontSimple );return _fcgac };func (_dbcaec *PdfWriter )checkCrossReferenceStream ()bool {_ddfdc :=_dbcaec ._dgab .Major > 1||(_dbcaec ._dgab .Major ==1&&_dbcaec ._dgab .Minor > 4);if _dbcaec ._edaga !=nil {_ddfdc =*_dbcaec ._edaga ; };return _ddfdc ;}; // SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern. func (_gcebbd *PdfPattern )SetContext (ctx PdfModel ){_gcebbd ._cegb =ctx }; // NewPdfActionLaunch returns a new "launch" action. func NewPdfActionLaunch ()*PdfActionLaunch {_aagg :=NewPdfAction ();_afb :=&PdfActionLaunch {};_afb .PdfAction =_aagg ;_aagg .SetContext (_afb );return _afb ;}; // 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 (_gbaa *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffga :=vals [0];if _ffga < 0.0||_ffga > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ffga ); return nil ,ErrColorOutOfRange ;};_bbdabe :=vals [1];if _bbdabe < 0.0||_bbdabe > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bbdabe );return nil ,ErrColorOutOfRange ; };_ebdg :=vals [2];if _ebdg < 0.0||_ebdg > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ebdg );return nil ,ErrColorOutOfRange ;};_fegga :=vals [3]; if _fegga < 0.0||_fegga > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fegga );return nil ,ErrColorOutOfRange ;};_caad :=NewPdfColorDeviceCMYK (_ffga ,_bbdabe ,_ebdg ,_fegga ); return _caad ,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{_ecfeba *_eca .PdfParser ;_eefcf _eca .PdfObject ;_ebddg *_eca .PdfIndirectObject ;_bdac *_eca .PdfObjectDictionary ;_gfabb []*_eca .PdfIndirectObject ;PageList []*PdfPage ;_gebe int ;_affc *_eca .PdfObjectDictionary ;_eabaf *PdfOutlineTreeNode ; AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_bdbaa *Permissions ;_dgedea map[*PdfReader ]*PdfReader ;_bcgeg []*PdfReader ;_dcddd *modelManager ;_gggcg bool ;_fgbbd map[_eca .PdfObject ]struct{};_eacag _beg .ReadSeeker ;_ggeed string ;_cgfcc bool ;_bccfb *ReaderOpts ; _fdbbc bool ;}; // PdfAnnotationRichMedia represents Rich Media annotations. type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _eca .PdfObject ;RichMediaContent _eca .PdfObject ;}; // B returns the value of the blue component of the color. func (_agda *PdfColorDeviceRGB )B ()float64 {return _agda [2]}; // ToGoImage converts the unidoc Image to a golang Image structure. func (_abdg *Image )ToGoImage ()(_cc .Image ,error ){_ccb .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_eeeeg ,_ddgg :=_bbg .NewImage (int (_abdg .Width ),int (_abdg .Height ),int (_abdg .BitsPerComponent ),_abdg .ColorComponents ,_abdg .Data ,_abdg ._gcgb ,_abdg ._cfgaa ); if _ddgg !=nil {return nil ,_ddgg ;};return _eeeeg ,nil ;}; // 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 *_eca .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_aabgg *_eca .PdfIndirectObject ;};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;); // ColorToRGB converts a Lab color to an RGB color. func (_degf *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_cccgg :=func (_dfea float64 )float64 {if _dfea >=6.0/29{return _dfea *_dfea *_dfea ;};return 108.0/841*(_dfea -4.0/29.0);};_geac ,_ecfc :=color .(*PdfColorLab );if !_ecfc {_ccb .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062"); return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_geac .L ();AStar :=_geac .A ();BStar :=_geac .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200; X :=_degf .WhitePoint [0]*_cccgg (L );Y :=_degf .WhitePoint [1]*_cccgg (M );Z :=_degf .WhitePoint [2]*_cccgg (N );_aggf :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ebed :=-0.969256*X +1.875992*Y +0.041556*Z ;_fgbd :=0.055648*X +-0.204043*Y +1.057311*Z ;_aggf =_de .Min (_de .Max (_aggf ,0),1.0); _ebed =_de .Min (_de .Max (_ebed ,0),1.0);_fgbd =_de .Min (_de .Max (_fgbd ,0),1.0);return NewPdfColorDeviceRGB (_aggf ,_ebed ,_fgbd ),nil ;}; // GetNumComponents returns the number of color components (1 for grayscale). func (_afbf *PdfColorDeviceGray )GetNumComponents ()int {return 1}; // 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 (_cfdb *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fecgd :=vals [0];if _fecgd < 0.0||_fecgd > 100.0{_ccb .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",_fecgd ); return nil ,ErrColorOutOfRange ;};_eadf :=vals [1];_cbae :=float64 (-100);_ebbb :=float64 (100);if len (_cfdb .Range )> 1{_cbae =_cfdb .Range [0];_ebbb =_cfdb .Range [1];};if _eadf < _cbae ||_eadf > _ebbb {_ccb .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",_eadf ,_cbae ,_ebbb ); return nil ,ErrColorOutOfRange ;};_ebac :=vals [2];_eaca :=float64 (-100);_aaf :=float64 (100);if len (_cfdb .Range )> 3{_eaca =_cfdb .Range [2];_aaf =_cfdb .Range [3];};if _ebac < _eaca ||_ebac > _aaf {_ccb .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",_ebac ,_eaca ,_aaf ); return nil ,ErrColorOutOfRange ;};_acbb :=NewPdfColorLab (_fecgd ,_eadf ,_ebac );return _acbb ,nil ;};func (_bfge *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _bfge ._ccec };const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e"; TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";); // GetOptimizer returns current PDF optimizer. func (_dabgd *PdfWriter )GetOptimizer ()Optimizer {return _dabgd ._cgfccc }; // ToPdfObject converts rectangle to a PDF object. func (_bdeac *PdfRectangle )ToPdfObject ()_eca .PdfObject {return _eca .MakeArray (_eca .MakeFloat (_bdeac .Llx ),_eca .MakeFloat (_bdeac .Lly ),_eca .MakeFloat (_bdeac .Urx ),_eca .MakeFloat (_bdeac .Ury ));}; // ToPdfObject implements interface PdfModel. func (_eedc *PdfFilespec )ToPdfObject ()_eca .PdfObject {_cbgfc :=_eedc .getDict ();_cbgfc .Clear ();_cbgfc .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_cbgfc .SetIfNotNil ("\u0046\u0053",_eedc .FS ); _cbgfc .SetIfNotNil ("\u0046",_eedc .F );_cbgfc .SetIfNotNil ("\u0055\u0046",_eedc .UF );_cbgfc .SetIfNotNil ("\u0044\u004f\u0053",_eedc .DOS );_cbgfc .SetIfNotNil ("\u004d\u0061\u0063",_eedc .Mac );_cbgfc .SetIfNotNil ("\u0055\u006e\u0069\u0078",_eedc .Unix ); _cbgfc .SetIfNotNil ("\u0049\u0044",_eedc .ID );_cbgfc .SetIfNotNil ("\u0056",_eedc .V );_cbgfc .SetIfNotNil ("\u0045\u0046",_eedc .EF );_cbgfc .SetIfNotNil ("\u0052\u0046",_eedc .RF );_cbgfc .SetIfNotNil ("\u0044\u0065\u0073\u0063",_eedc .Desc );_cbgfc .SetIfNotNil ("\u0043\u0049",_eedc .CI ); return _eedc ._ggdg ;};func (_fac *PdfAnnotation )String ()string {_aee :="";_fega ,_babd :=_fac .ToPdfObject ().(*_eca .PdfIndirectObject );if _babd {_aee =_g .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_fac ._abc ,_fega .PdfObject .String ());}; return _aee ;}; // ToGoTime returns the date in time.Time format. func (_beeab PdfDate )ToGoTime ()_d .Time {_fcgdb :=int (_beeab ._ffffbf *60*60+_beeab ._caaa *60);switch _beeab ._cgad {case '-':_fcgdb =-_fcgdb ;case 'Z':_fcgdb =0;};_caed :=_g .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_beeab ._cgad ,_beeab ._ffffbf ,_beeab ._caaa ); _dgeda :=_d .FixedZone (_caed ,_fcgdb );return _d .Date (int (_beeab ._ffacc ),_d .Month (_beeab ._gecba ),int (_beeab ._bcdea ),int (_beeab ._dcbgf ),int (_beeab ._agdad ),int (_beeab ._dccbf ),0,_dgeda );}; // Outline represents a PDF outline dictionary (Table 152 - p. 376). // Currently, the Outline object can only be used to construct PDF outlines. type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};func (_def *PdfReader )newPdfActionNamedFromDict (_gedg *_eca .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_gedg .Get ("\u004e")},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 *_eca .PdfObjectName ;P *_eca .PdfObjectInteger ;V *_eca .PdfObjectName ;};func (_gcfea *PdfReader )newPdfFieldFromIndirectObject (_aecgf *_eca .PdfIndirectObject ,_fcfda *PdfField )(*PdfField ,error ){if _ebade ,_ccdf :=_gcfea ._dcddd .GetModelFromPrimitive (_aecgf ).(*PdfField ); _ccdf {return _ebade ,nil ;};_baed ,_acae :=_eca .GetDict (_aecgf );if !_acae {return nil ,_g .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"); };_egdcf :=NewPdfField ();_egdcf ._geaa =_aecgf ;_egdcf ._geaa .PdfObject =_baed ;if _gbee ,_fbgeb :=_eca .GetName (_baed .Get ("\u0046\u0054"));_fbgeb {_egdcf .FT =_gbee ;};if _fcfda !=nil {_egdcf .Parent =_fcfda ;};_egdcf .T ,_ =_baed .Get ("\u0054").(*_eca .PdfObjectString ); _egdcf .TU ,_ =_baed .Get ("\u0054\u0055").(*_eca .PdfObjectString );_egdcf .TM ,_ =_baed .Get ("\u0054\u004d").(*_eca .PdfObjectString );_egdcf .Ff ,_ =_baed .Get ("\u0046\u0066").(*_eca .PdfObjectInteger );_egdcf .V =_baed .Get ("\u0056");_egdcf .DV =_baed .Get ("\u0044\u0056"); _egdcf .AA =_baed .Get ("\u0041\u0041");if DA :=_baed .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_eca .GetString (DA );_egdcf .VariableText =&VariableText {DA :DA };Q ,_ :=_baed .Get ("\u0051").(*_eca .PdfObjectInteger );DS ,_ :=_baed .Get ("\u0044\u0053").(*_eca .PdfObjectString ); RV :=_baed .Get ("\u0052\u0056");_egdcf .VariableText .Q =Q ;_egdcf .VariableText .DS =DS ;_egdcf .VariableText .RV =RV ;};_abefb :=_egdcf .FT ;if _abefb ==nil &&_fcfda !=nil {_abefb =_fcfda .FT ;};if _abefb !=nil {switch *_abefb {case "\u0054\u0078":_ddff ,_fcde :=_addg (_baed ); if _fcde !=nil {return nil ,_fcde ;};_ddff .PdfField =_egdcf ;_egdcf ._fbgb =_ddff ;case "\u0043\u0068":_gcfed ,_gbac :=_cedfg (_baed );if _gbac !=nil {return nil ,_gbac ;};_gcfed .PdfField =_egdcf ;_egdcf ._fbgb =_gcfed ;case "\u0042\u0074\u006e":_ggebd ,_facb :=_febg (_baed ); if _facb !=nil {return nil ,_facb ;};_ggebd .PdfField =_egdcf ;_egdcf ._fbgb =_ggebd ;case "\u0053\u0069\u0067":_efbc ,_abba :=_gcfea .newPdfFieldSignatureFromDict (_baed );if _abba !=nil {return nil ,_abba ;};_efbc .PdfField =_egdcf ;_egdcf ._fbgb =_efbc ; default:_ccb .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",*_egdcf .FT );return nil ,_da .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065"); };};if _ddfgc ,_ecfea :=_eca .GetName (_baed .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_ecfea {if *_ddfgc =="\u0057\u0069\u0064\u0067\u0065\u0074"{_bcca ,_cdfa :=_gcfea .newPdfAnnotationFromIndirectObject (_aecgf );if _cdfa !=nil {return nil ,_cdfa ; };_fcceb ,_dgbca :=_bcca .GetContext ().(*PdfAnnotationWidget );if !_dgbca {return nil ,_da .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_fcceb ._ebc =_egdcf ;_fcceb .Parent =_egdcf ._geaa ; _egdcf .Annotations =append (_egdcf .Annotations ,_fcceb );return _egdcf ,nil ;};};_edaca :=true ;if _ecbfa ,_debg :=_eca .GetArray (_baed .Get ("\u004b\u0069\u0064\u0073"));_debg {_cgbaf :=make ([]*_eca .PdfIndirectObject ,0,_ecbfa .Len ());for _ ,_abfg :=range _ecbfa .Elements (){_gbeag ,_gdba :=_eca .GetIndirect (_abfg ); if !_gdba {_bcdg ,_cbccb :=_eca .GetStream (_abfg );if _cbccb &&_bcdg .PdfObjectDictionary !=nil {_ecga ,_aceg :=_eca .GetNameVal (_bcdg .Get ("\u0054\u0079\u0070\u0065"));if _aceg &&_ecga =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_ccb .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 ,_da .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");};_adcc ,_beca :=_eca .GetDict (_gbeag ); if !_beca {return nil ,ErrTypeCheck ;};if _edaca {_edaca =!_fgaf (_adcc );};_cgbaf =append (_cgbaf ,_gbeag );};for _ ,_bgdgg :=range _cgbaf {if _edaca {_eggeb ,_eaacd :=_gcfea .newPdfAnnotationFromIndirectObject (_bgdgg );if _eaacd !=nil {_ccb .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",_eaacd ); return nil ,_eaacd ;};_ggbea ,_befg :=_eggeb ._abc .(*PdfAnnotationWidget );if !_befg {return nil ,ErrTypeCheck ;};_ggbea ._ebc =_egdcf ;_egdcf .Annotations =append (_egdcf .Annotations ,_ggbea );}else {_bdfad ,_fdggb :=_gcfea .newPdfFieldFromIndirectObject (_bgdgg ,_egdcf ); if _fdggb !=nil {_ccb .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",_fdggb );return nil ,_fdggb ;};_egdcf .Kids =append (_egdcf .Kids ,_bdfad ); };};};return _egdcf ,nil ;}; // PdfAnnotationMovie represents Movie annotations. // (Section 12.5.6.17). type PdfAnnotationMovie struct{*PdfAnnotation ;T _eca .PdfObject ;Movie _eca .PdfObject ;A _eca .PdfObject ;}; // ToPdfObject converts the pdfFontSimple to its PDF representation for outputting. func (_eccca *pdfFontSimple )ToPdfObject ()_eca .PdfObject {if _eccca ._bgegd ==nil {_eccca ._bgegd =&_eca .PdfIndirectObject {};};_ggfg :=_eccca .baseFields ().asPdfObjectDictionary ("");_eccca ._bgegd .PdfObject =_ggfg ;if _eccca .FirstChar !=nil {_ggfg .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_eccca .FirstChar ); };if _eccca .LastChar !=nil {_ggfg .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_eccca .LastChar );};if _eccca .Widths !=nil {_ggfg .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_eccca .Widths );};if _eccca .Encoding !=nil {_ggfg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_eccca .Encoding ); }else if _eccca ._daddc !=nil {_dgbf :=_eccca ._daddc .ToPdfObject ();if _dgbf !=nil {_ggfg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dgbf );};};return _eccca ._bgegd ;}; // 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 implements interface PdfModel. func (_fecdf *PdfAnnotationWidget )ToPdfObject ()_eca .PdfObject {_fecdf .PdfAnnotation .ToPdfObject ();_cbga :=_fecdf ._cdc ;_fcb :=_cbga .PdfObject .(*_eca .PdfObjectDictionary );if _fecdf ._bbed {return _cbga ;};_fecdf ._bbed =true ;_fcb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074")); _fcb .SetIfNotNil ("\u0048",_fecdf .H );_fcb .SetIfNotNil ("\u004d\u004b",_fecdf .MK );_fcb .SetIfNotNil ("\u0041",_fecdf .A );_fcb .SetIfNotNil ("\u0041\u0041",_fecdf .AA );_fcb .SetIfNotNil ("\u0042\u0053",_fecdf .BS );_cbgf :=_fecdf .Parent ;if _fecdf ._ebc !=nil {if _fecdf ._ebc ._geaa ==_fecdf ._cdc {_fecdf ._ebc .ToPdfObject (); };_cbgf =_fecdf ._ebc .GetContainingPdfObject ();};if _cbgf !=_cbga {_fcb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_cbgf );};_fecdf ._bbed =false ;return _cbga ;};func (_cbfb *PdfWriter )makeOffSetReference (_dedea int64 ){_edcbe :=_g .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_dedea ); _cbfb .writeString (_edcbe );_cbfb .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");}; // NewPdfActionURI returns a new "Uri" action. func NewPdfActionURI ()*PdfActionURI {_bga :=NewPdfAction ();_ddg :=&PdfActionURI {};_ddg .PdfAction =_bga ;_bga .SetContext (_ddg );return _ddg ;}; // ToPdfObject implements interface PdfModel. func (_aab *PdfAnnotationPopup )ToPdfObject ()_eca .PdfObject {_aab .PdfAnnotation .ToPdfObject ();_dfcc :=_aab ._cdc ;_ecbb :=_dfcc .PdfObject .(*_eca .PdfObjectDictionary );_ecbb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0050\u006f\u0070u\u0070")); _ecbb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_aab .Parent );_ecbb .SetIfNotNil ("\u004f\u0070\u0065\u006e",_aab .Open );return _dfcc ;}; // 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 (_ecaea *Image )Resample (targetBitsPerComponent int64 ){if _ecaea .BitsPerComponent ==targetBitsPerComponent {return ;};_ebagc :=_ecaea .GetSamples ();if targetBitsPerComponent < _ecaea .BitsPerComponent {_cccb :=_ecaea .BitsPerComponent -targetBitsPerComponent ; for _ffbb :=range _ebagc {_ebagc [_ffbb ]>>=uint (_cccb );};}else if targetBitsPerComponent > _ecaea .BitsPerComponent {_gffbe :=targetBitsPerComponent -_ecaea .BitsPerComponent ;for _fccfd :=range _ebagc {_ebagc [_fccfd ]<<=uint (_gffbe );};};_ecaea .BitsPerComponent =targetBitsPerComponent ; if _ecaea .BitsPerComponent < 8{_ecaea .resampleLowBits (_ebagc );return ;};_eeada :=_bbg .BytesPerLine (int (_ecaea .Width ),int (_ecaea .BitsPerComponent ),_ecaea .ColorComponents );_eefba :=make ([]byte ,_eeada *int (_ecaea .Height ));var (_adce ,_dagc ,_cgcf ,_affef int ; _dagbg uint32 ;);for _cgcf =0;_cgcf < int (_ecaea .Height );_cgcf ++{_adce =_cgcf *_eeada ;_dagc =(_cgcf +1)*_eeada -1;_aedea :=_bf .ResampleUint32 (_ebagc [_adce :_dagc ],int (targetBitsPerComponent ),8);for _affef ,_dagbg =range _aedea {_eefba [_affef +_adce ]=byte (_dagbg ); };};_ecaea .Data =_eefba ;}; // IsValid checks if the given pdf output intent type is valid. func (_fgegb PdfOutputIntentType )IsValid ()bool {return _fgegb >=PdfOutputIntentTypeA1 &&_fgegb <=PdfOutputIntentTypeX ;};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;); // SetXObjectImageByName adds the provided XObjectImage to the page resources. // The added XObjectImage is identified by the specified name. func (_dfefg *PdfPageResources )SetXObjectImageByName (keyName _eca .PdfObjectName ,ximg *XObjectImage )error {_fcccd :=ximg .ToPdfObject ().(*_eca .PdfObjectStream );_aeaed :=_dfefg .SetXObjectByName (keyName ,_fcccd );return _aeaed ;}; // NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object). func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_aeac :_eca .MakeIndirectObject (_eca .MakeDict ())};};func _aafd (_ddde _eca .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_ccb .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",_ddde .String (),_ddde ); _efcd :=NewPdfColorspaceSpecialPattern ();if _gagf ,_bfcg :=_ddde .(*_eca .PdfIndirectObject );_bfcg {_efcd ._adcgc =_gagf ;};_ddde =_eca .TraceToDirectObject (_ddde );if _dfff ,_afea :=_ddde .(*_eca .PdfObjectName );_afea {if *_dfff !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_g .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065"); };return _efcd ,nil ;};_affed ,_fcba :=_ddde .(*_eca .PdfObjectArray );if !_fcba {_ccb .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",_ddde ); return nil ,_g .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _affed .Len ()!=1&&_affed .Len ()!=2{_ccb .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",_affed ); return nil ,_g .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_ddde =_affed .Get (0);if _cfbde ,_fgfag :=_ddde .(*_eca .PdfObjectName );_fgfag {if *_cfbde !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ccb .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",_cfbde ); return nil ,_g .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _affed .Len ()> 1{_ddde =_affed .Get (1);_ddde =_eca .TraceToDirectObject (_ddde );_acfc ,_eaff :=NewPdfColorspaceFromPdfObject (_ddde );if _eaff !=nil {return nil ,_eaff ; };_efcd .UnderlyingCS =_acfc ;};_ccb .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",_efcd .UnderlyingCS ); return _efcd ,nil ;};func (_ebbd *PdfPage )setContainer (_dfebe *_eca .PdfIndirectObject ){_dfebe .PdfObject =_ebbd ._agaea ;_ebbd ._aedef =_dfebe ;};func (_dabd *LTV )getCerts (_edeebc []*_ad .Certificate )([][]byte ,error ){_agfge :=make ([][]byte ,0,len (_edeebc )); for _ ,_edcffc :=range _edeebc {_agfge =append (_agfge ,_edcffc .Raw );};return _agfge ,nil ;};func (_fgde *PdfReader )newPdfActionImportDataFromDict (_gfe *_eca .PdfObjectDictionary )(*PdfActionImportData ,error ){_agd ,_ggd :=_efe (_gfe .Get ("\u0046")); if _ggd !=nil {return nil ,_ggd ;};return &PdfActionImportData {F :_agd },nil ;}; // NewDSS returns a new DSS dictionary. func NewDSS ()*DSS {return &DSS {_cdaa :_eca .MakeIndirectObject (_eca .MakeDict ()),VRI :map[string ]*VRI {}};}; // ToPdfObject implements interface PdfModel. func (_ega *PdfAnnotationLine )ToPdfObject ()_eca .PdfObject {_ega .PdfAnnotation .ToPdfObject ();_dafg :=_ega ._cdc ;_dffa :=_dafg .PdfObject .(*_eca .PdfObjectDictionary );_ega .PdfAnnotationMarkup .appendToPdfDictionary (_dffa );_dffa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u004c\u0069\u006e\u0065")); _dffa .SetIfNotNil ("\u004c",_ega .L );_dffa .SetIfNotNil ("\u0042\u0053",_ega .BS );_dffa .SetIfNotNil ("\u004c\u0045",_ega .LE );_dffa .SetIfNotNil ("\u0049\u0043",_ega .IC );_dffa .SetIfNotNil ("\u004c\u004c",_ega .LL );_dffa .SetIfNotNil ("\u004c\u004c\u0045",_ega .LLE ); _dffa .SetIfNotNil ("\u0043\u0061\u0070",_ega .Cap );_dffa .SetIfNotNil ("\u0049\u0054",_ega .IT );_dffa .SetIfNotNil ("\u004c\u004c\u004f",_ega .LLO );_dffa .SetIfNotNil ("\u0043\u0050",_ega .CP );_dffa .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_ega .Measure ); _dffa .SetIfNotNil ("\u0043\u004f",_ega .CO );return _dafg ;}; // PdfActionLaunch represents a launch action. type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _eca .PdfObject ;Mac _eca .PdfObject ;Unix _eca .PdfObject ;NewWindow _eca .PdfObject ;}; // NewReaderOpts generates a default `ReaderOpts` instance. func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }}; // PdfFunctionType4 is a Postscript calculator functions. type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_dad .PSProgram ;_abab *_dad .PSExecutor ;_aeafdg []byte ;_bdgbf *_eca .PdfObjectStream ;};func _gdea (_fbecdc _eca .PdfObject )(*PdfFunctionType2 ,error ){_bcae :=&PdfFunctionType2 {}; var _cafa *_eca .PdfObjectDictionary ;if _cfac ,_dbbd :=_fbecdc .(*_eca .PdfIndirectObject );_dbbd {_dgcg ,_fbdb :=_cfac .PdfObject .(*_eca .PdfObjectDictionary );if !_fbdb {return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072"); };_bcae ._agcab =_cfac ;_cafa =_dgcg ;}else if _cebdg ,_edcab :=_fbecdc .(*_eca .PdfObjectDictionary );_edcab {_cafa =_cebdg ;}else {return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ccb .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_cafa .String ()); _bgdgb ,_gbfef :=_eca .TraceToDirectObject (_cafa .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eca .PdfObjectArray );if !_gbfef {_ccb .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_da .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 _bgdgb .Len ()< 0||_bgdgb .Len ()%2!=0{_ccb .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_da .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065"); };_cbeed ,_adabg :=_bgdgb .ToFloat64Array ();if _adabg !=nil {return nil ,_adabg ;};_bcae .Domain =_cbeed ;_bgdgb ,_gbfef =_eca .TraceToDirectObject (_cafa .Get ("\u0052\u0061\u006eg\u0065")).(*_eca .PdfObjectArray );if _gbfef {if _bgdgb .Len ()< 0||_bgdgb .Len ()%2!=0{return nil ,_da .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065"); };_cfcc ,_gefegf :=_bgdgb .ToFloat64Array ();if _gefegf !=nil {return nil ,_gefegf ;};_bcae .Range =_cfcc ;};_bgdgb ,_gbfef =_eca .TraceToDirectObject (_cafa .Get ("\u0043\u0030")).(*_eca .PdfObjectArray );if _gbfef {_bgegb ,_dgdbc :=_bgdgb .ToFloat64Array (); if _dgdbc !=nil {return nil ,_dgdbc ;};_bcae .C0 =_bgegb ;};_bgdgb ,_gbfef =_eca .TraceToDirectObject (_cafa .Get ("\u0043\u0031")).(*_eca .PdfObjectArray );if _gbfef {_efcaf ,_gecab :=_bgdgb .ToFloat64Array ();if _gecab !=nil {return nil ,_gecab ;};_bcae .C1 =_efcaf ; };if len (_bcae .C0 )!=len (_bcae .C1 ){_ccb .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_eca .ErrRangeError ;};N ,_adabg :=_eca .GetNumberAsFloat (_eca .TraceToDirectObject (_cafa .Get ("\u004e"))); if _adabg !=nil {_ccb .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",_cafa .String ());return nil ,_adabg ;};_bcae .N =N ; return _bcae ,nil ;};func _efbe (_begbb *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_begbb }};var (ErrRequiredAttributeMissing =_da .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 =_da .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_da .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_abbe =_da .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072"); ErrEncrypted =_da .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 =_da .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064"); ErrFontNotSupported =_ebf .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_eca .ErrNotSupported );ErrType1CFontNotSupported =_ebf .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",_eca .ErrNotSupported ); ErrType3FontNotSupported =_ebf .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",_eca .ErrNotSupported ); ErrTTCmapNotSupported =_ebf .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",_eca .ErrNotSupported ); ErrSignNotEnoughSpace =_ebf .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 =_ebf .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");); // ToPdfObject returns the PDF representation of the shading pattern. func (_cgdde *PdfShadingPatternType2 )ToPdfObject ()_eca .PdfObject {_cgdde .PdfPattern .ToPdfObject ();_ecfa :=_cgdde .getDict ();if _cgdde .Shading !=nil {_ecfa .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_cgdde .Shading .ToPdfObject ());};if _cgdde .Matrix !=nil {_ecfa .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_cgdde .Matrix ); };if _cgdde .ExtGState !=nil {_ecfa .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_cgdde .ExtGState );};return _cgdde ._cdfed ;}; // 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 (_acege *PdfFont )CharcodesToStrings (charcodes []_dbb .CharCode )([]string ,int ,int ){_gbcbg :=_acege .baseFields ();_eefc :=make ([]string ,0,len (charcodes ));_gdab :=0;_gdfgc :=_acege .Encoder ();_gegfg :=_gbcbg ._gegfa !=nil &&_acege .IsSimple ()&&_acege .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_ec .Contains (_gbcbg ._gegfa .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-"); if !_gegfg &&_gdfgc !=nil {switch _feed :=_gdfgc .(type ){case _dbb .SimpleEncoder :_geca :=_feed .BaseName ();if _ ,_cead :=_gfgfb [_geca ];_cead {for _ ,_bcbeb :=range charcodes {if _bfbbd ,_cbbac :=_gdfgc .CharcodeToRune (_bcbeb );_cbbac {_eefc =append (_eefc ,string (_bfbbd )); }else {_ccb .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",_bcbeb ,charcodes ,_gbcbg .isCIDFont (),_acege ,_gdfgc ); _gdab ++;_eefc =append (_eefc ,_ded .MissingCodeString );};};return _eefc ,len (_eefc ),_gdab ;};};};for _ ,_gcacd :=range charcodes {if _gbcbg ._gegfa !=nil {if _egce ,_fbagf :=_gbcbg ._gegfa .CharcodeToUnicode (_ded .CharCode (_gcacd ));_fbagf {_eefc =append (_eefc ,_egce ); continue ;};};if _gdfgc !=nil {if _cdcg ,_deebf :=_gdfgc .CharcodeToRune (_gcacd );_deebf {_eefc =append (_eefc ,string (_cdcg ));continue ;};};_ccb .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",_gcacd ,charcodes ,_gbcbg .isCIDFont (),_acege ,_gdfgc ); _gdab ++;_eefc =append (_eefc ,_ded .MissingCodeString );};if _gdab !=0{_ccb .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 ),_gdab ,_acege ); };return _eefc ,len (_eefc ),_gdab ;}; // NewPdfOutlineItem returns an initialized PdfOutlineItem. func NewPdfOutlineItem ()*PdfOutlineItem {_bfadd :=&PdfOutlineItem {_becge :_eca .MakeIndirectObject (_eca .MakeDict ())};_bfadd ._dcfbf =_bfadd ;return _bfadd ;}; // 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 (_cafff *PdfReader )Inspect ()(map[string ]int ,error ){return _cafff ._ecfeba .Inspect ()}; // GetContentStream returns the pattern cell's content stream func (_aggg *PdfTilingPattern )GetContentStream ()([]byte ,error ){_bbebe ,_ ,_deaf :=_aggg .GetContentStreamWithEncoder ();return _bbebe ,_deaf ;}; // GetNumComponents returns the number of color components (1 for Separation). func (_ddge *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1}; // 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 (_ceadc *PdfOutlineTreeNode )GetContext ()PdfModel {if _caffd ,_dffff :=_ceadc ._dcfbf .(*PdfOutline );_dffff {return _caffd ;};if _dacab ,_afad :=_ceadc ._dcfbf .(*PdfOutlineItem );_afad {return _dacab ;};_ccb .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 ;}; // Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly. func (_cgafe *PdfRectangle )Normalize (){if _cgafe .Llx > _cgafe .Urx {_cgafe .Llx ,_cgafe .Urx =_cgafe .Urx ,_cgafe .Llx ;};if _cgafe .Lly > _cgafe .Ury {_cgafe .Lly ,_cgafe .Ury =_cgafe .Ury ,_cgafe .Lly ;};}; // IsTerminal returns true for terminal fields, false otherwise. // Terminal fields are fields whose descendants are only widget annotations. func (_aebad *PdfField )IsTerminal ()bool {return len (_aebad .Kids )==0};func _febaf (_ecebb _eca .PdfObject )(PdfFunction ,error ){_ecebb =_eca .ResolveReference (_ecebb );if _fffeb ,_bggbg :=_ecebb .(*_eca .PdfObjectStream );_bggbg {_dcga :=_fffeb .PdfObjectDictionary ; _facce ,_cbece :=_dcga .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_eca .PdfObjectInteger );if !_cbece {_ccb .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 ,_da .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 *_facce ==0{return _bfgd (_fffeb );}else if *_facce ==4{return _aeda (_fffeb ); }else {return nil ,_da .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _bcff ,_cafb :=_ecebb .(*_eca .PdfIndirectObject );_cafb {_dcbfd ,_cbbggc :=_bcff .PdfObject .(*_eca .PdfObjectDictionary ); if !_cbbggc {_ccb .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 ,_da .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");};_ebcb ,_cbbggc :=_dcbfd .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_eca .PdfObjectInteger ); if !_cbbggc {_ccb .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 ,_da .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 *_ebcb ==2{return _gdea (_bcff );}else if *_ebcb ==3{return _bfdea (_bcff );}else {return nil ,_da .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _edcbc ,_ceegd :=_ecebb .(*_eca .PdfObjectDictionary ); _ceegd {_afedc ,_cfcg :=_edcbc .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_eca .PdfObjectInteger );if !_cfcg {_ccb .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 ,_da .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 *_afedc ==2{return _gdea (_edcbc );}else if *_afedc ==3{return _bfdea (_edcbc ); }else {return nil ,_da .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_ccb .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_ecebb ); return nil ,_da .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};}; // PdfAnnotationFileAttachment represents FileAttachment annotations. // (Section 12.5.6.15). type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _eca .PdfObject ;Name _eca .PdfObject ;}; // 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 (_gbcba *PdfReader )loadDSS ()(*DSS ,error ){if _gbcba ._ecfeba .GetCrypter ()!=nil &&!_gbcba ._ecfeba .IsAuthenticated (){return nil ,_g .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"); };_ceda :=_gbcba ._affc .Get ("\u0044\u0053\u0053");if _ceda ==nil {return nil ,nil ;};_gbgdf ,_ :=_eca .GetIndirect (_ceda );_ceda =_eca .TraceToDirectObject (_ceda );switch _bfbec :=_ceda .(type ){case *_eca .PdfObjectNull :return nil ,nil ;case *_eca .PdfObjectDictionary :return _gbab (_gbgdf ,_bfbec ); };return nil ,_g .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_ceda );}; // 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 _eca .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_eca .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_bbfga ,_edadc :=encoder .EncodeBytes (img .Data ); if _edadc !=nil {_ccb .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_edadc );return nil ,_edadc ;};_aedee :=NewXObjectImage ();_fbcba :=img .Width ;_fgceb :=img .Height ; _aedee .Width =&_fbcba ;_aedee .Height =&_fgceb ;_adbcf :=img .BitsPerComponent ;_aedee .BitsPerComponent =&_adbcf ;_aedee .Filter =encoder ;_aedee .Stream =_bbfga ;if cs ==nil {if img .ColorComponents ==1{_aedee .ColorSpace =NewPdfColorspaceDeviceGray (); if img .BitsPerComponent ==16{switch encoder .(type ){case *_eca .DCTEncoder :_aedee .ColorSpace =NewPdfColorspaceDeviceRGB ();_adbcf =8;_aedee .BitsPerComponent =&_adbcf ;};};}else if img .ColorComponents ==3{_aedee .ColorSpace =NewPdfColorspaceDeviceRGB (); }else if img .ColorComponents ==4{switch encoder .(type ){case *_eca .DCTEncoder :_aedee .ColorSpace =NewPdfColorspaceDeviceRGB ();default:_aedee .ColorSpace =NewPdfColorspaceDeviceCMYK ();};}else {return nil ,_da .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064"); };}else {_aedee .ColorSpace =cs ;};if len (img ._gcgb )!=0{_ecce :=NewXObjectImage ();_ecce .Filter =encoder ;_aaefa ,_ebabf :=encoder .EncodeBytes (img ._gcgb );if _ebabf !=nil {_ccb .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_ebabf ); return nil ,_ebabf ;};_ecce .Stream =_aaefa ;_ecce .BitsPerComponent =_aedee .BitsPerComponent ;_ecce .Width =&img .Width ;_ecce .Height =&img .Height ;_ecce .ColorSpace =NewPdfColorspaceDeviceGray ();_aedee .SMask =_ecce .ToPdfObject ();}else {_aedee .SMask =xobjIn .SMask ; _aedee .ImageMask =xobjIn .ImageMask ;if _aedee .ColorSpace .GetNumComponents ()==1{_eeegb (_aedee );};};return _aedee ,nil ;}; // GetCatalogStructTreeRoot gets the catalog StructTreeRoot object. func (_cgbeg *PdfReader )GetCatalogStructTreeRoot ()(_eca .PdfObject ,bool ){if _cgbeg ._affc ==nil {return nil ,false ;};_affaa :=_cgbeg ._affc .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return _affaa ,_affaa !=nil ; }; // NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams. func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_eca .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_eca .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()}; }; // 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 (_cgdee *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _ebgd []_dbb .TextEncoder ;var _fafe _dbb .CMapEncoder ;if _bfaec :=_cgdee .baseFields ()._gegfa ;_bfaec !=nil {_fafe =_dbb .NewCMapEncoder ("",nil ,_bfaec );};_fgee :=_cgdee .Encoder (); if _fgee !=nil {switch _aeeca :=_fgee .(type ){case _dbb .SimpleEncoder :_fgeeb :=_aeeca .BaseName ();if _ ,_eegg :=_gfgfb [_fgeeb ];_eegg {_ebgd =append (_ebgd ,_fgee );};};};if len (_ebgd )==0{if _cgdee .baseFields ()._gegfa !=nil {_ebgd =append (_ebgd ,_fafe ); };if _fgee !=nil {_ebgd =append (_ebgd ,_fgee );};};var _gddd _dd .Buffer ;var _dcda int ;for _ ,_ffeg :=range data {var _fffac bool ;for _ ,_adbb :=range _ebgd {if _agbd :=_adbb .Encode (string (_ffeg ));len (_agbd )> 0{_gddd .Write (_agbd );_fffac =true ; break ;};};if !_fffac {_ccb .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",_ffeg ); _dcda ++;};};if _dcda !=0{_ccb .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 ),_dcda ,_cgdee ,_ebgd ); };return _gddd .Bytes (),_dcda ;}; // ToPdfObject implements interface PdfModel. func (_bcg *PdfAnnotationFileAttachment )ToPdfObject ()_eca .PdfObject {_bcg .PdfAnnotation .ToPdfObject ();_dgad :=_bcg ._cdc ;_feee :=_dgad .PdfObject .(*_eca .PdfObjectDictionary );_bcg .PdfAnnotationMarkup .appendToPdfDictionary (_feee );_feee .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074")); _feee .SetIfNotNil ("\u0046\u0053",_bcg .FS );_feee .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bcg .Name );return _dgad ;}; // ToPdfObject converts the pdfCIDFontType2 to a PDF representation. func (_ebeda *pdfCIDFontType2 )ToPdfObject ()_eca .PdfObject {if _ebeda ._dcgd ==nil {_ebeda ._dcgd =&_eca .PdfIndirectObject {};};_gafga :=_ebeda .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"); _ebeda ._dcgd .PdfObject =_gafga ;if _ebeda .CIDSystemInfo !=nil {_gafga .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_ebeda .CIDSystemInfo );};if _ebeda .DW !=nil {_gafga .Set ("\u0044\u0057",_ebeda .DW );};if _ebeda .DW2 !=nil {_gafga .Set ("\u0044\u0057\u0032",_ebeda .DW2 ); };if _ebeda .W !=nil {_gafga .Set ("\u0057",_ebeda .W );};if _ebeda .W2 !=nil {_gafga .Set ("\u0057\u0032",_ebeda .W2 );};if _ebeda .CIDToGIDMap !=nil {_gafga .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_ebeda .CIDToGIDMap );}; return _ebeda ._dcgd ;}; // ToPdfObject returns colorspace in a PDF object format [name dictionary] func (_afgbb *PdfColorspaceCalRGB )ToPdfObject ()_eca .PdfObject {_gdaa :=&_eca .PdfObjectArray {};_gdaa .Append (_eca .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_cfggg :=_eca .MakeDict ();if _afgbb .WhitePoint !=nil {_dbc :=_eca .MakeArray (_eca .MakeFloat (_afgbb .WhitePoint [0]),_eca .MakeFloat (_afgbb .WhitePoint [1]),_eca .MakeFloat (_afgbb .WhitePoint [2])); _cfggg .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_dbc );}else {_ccb .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 _afgbb .BlackPoint !=nil {_bce :=_eca .MakeArray (_eca .MakeFloat (_afgbb .BlackPoint [0]),_eca .MakeFloat (_afgbb .BlackPoint [1]),_eca .MakeFloat (_afgbb .BlackPoint [2]));_cfggg .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_bce ); };if _afgbb .Gamma !=nil {_eaed :=_eca .MakeArray (_eca .MakeFloat (_afgbb .Gamma [0]),_eca .MakeFloat (_afgbb .Gamma [1]),_eca .MakeFloat (_afgbb .Gamma [2]));_cfggg .Set ("\u0047\u0061\u006dm\u0061",_eaed );};if _afgbb .Matrix !=nil {_eeebf :=_eca .MakeArray (_eca .MakeFloat (_afgbb .Matrix [0]),_eca .MakeFloat (_afgbb .Matrix [1]),_eca .MakeFloat (_afgbb .Matrix [2]),_eca .MakeFloat (_afgbb .Matrix [3]),_eca .MakeFloat (_afgbb .Matrix [4]),_eca .MakeFloat (_afgbb .Matrix [5]),_eca .MakeFloat (_afgbb .Matrix [6]),_eca .MakeFloat (_afgbb .Matrix [7]),_eca .MakeFloat (_afgbb .Matrix [8])); _cfggg .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_eeebf );};_gdaa .Append (_cfggg );if _afgbb ._eceae !=nil {_afgbb ._eceae .PdfObject =_gdaa ;return _afgbb ._eceae ;};return _gdaa ;}; // NewPdfColorDeviceCMYK returns a new CMYK32 color. func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_daadd :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_daadd ;}; // SetImageHandler sets the image handler used by the package. func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling }; // 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 (_gddef *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_cgfgf :=_gddef .actualFont ();if _cgfgf ==nil {_ccb .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",_gddef ._dbgb ); return _ffd .CharMetrics {},false ;};if _baac ,_acgg :=_cgfgf .GetRuneMetrics (r );_acgg {return _baac ,true ;};if _adeg ,_cddc :=_gddef .GetFontDescriptor ();_cddc ==nil &&_adeg !=nil {return _ffd .CharMetrics {Wx :_adeg ._fdadf },true ;};_ccb .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",_gddef ); return _ffd .CharMetrics {},false ;}; // NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page. func NewOutlineBookmark (title string ,page *_eca .PdfIndirectObject )*PdfOutlineItem {_gbegd :=PdfOutlineItem {};_gbegd ._dcfbf =&_gbegd ;_gbegd .Title =_eca .MakeString (title );_febgfb :=_eca .MakeArray ();_febgfb .Append (page );_febgfb .Append (_eca .MakeName ("\u0046\u0069\u0074")); _gbegd .Dest =_febgfb ;return &_gbegd ;}; // ToPdfObject implements interface PdfModel. func (_fee *PdfActionGoToE )ToPdfObject ()_eca .PdfObject {_fee .PdfAction .ToPdfObject ();_fea :=_fee ._bee ;_edb :=_fea .PdfObject .(*_eca .PdfObjectDictionary );_edb .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeGoToE )));if _fee .F !=nil {_edb .Set ("\u0046",_fee .F .ToPdfObject ()); };_edb .SetIfNotNil ("\u0044",_fee .D );_edb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_fee .NewWindow );_edb .SetIfNotNil ("\u0054",_fee .T );return _fea ;}; // GetPreviousRevision returns the previous revision of PdfReader for the Pdf document func (_gffg *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _gffg ._ecfeba .GetRevisionNumber ()==0{return nil ,_da .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 _gedba ,_dcade :=_gffg ._dgedea [_gffg ];_dcade {return _gedba ,nil ;};_ddda ,_ffgg :=_gffg ._ecfeba .GetPreviousRevisionReadSeeker ();if _ffgg !=nil {return nil ,_ffgg ;};_dcgee ,_ffgg :=_cfbdee (_ddda ,_gffg ._bccfb ,_gffg ._fdbbc ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn"); if _ffgg !=nil {return nil ,_ffgg ;};_gffg ._bcgeg [_gffg ._ecfeba .GetRevisionNumber ()-1]=_dcgee ;_gffg ._dgedea [_gffg ]=_dcgee ;_dcgee ._dgedea =_gffg ._dgedea ;return _dcgee ,nil ;}; // AddCerts adds certificates to DSS. func (_dbce *DSS )AddCerts (certs [][]byte )([]*_eca .PdfObjectStream ,error ){return _dbce .add (&_dbce .Certs ,_dbce ._aaed ,certs );}; // PdfShadingType7 is a Tensor-product patch mesh. type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_eca .PdfObjectInteger ;BitsPerComponent *_eca .PdfObjectInteger ;BitsPerFlag *_eca .PdfObjectInteger ;Decode *_eca .PdfObjectArray ;Function []PdfFunction ;};func (_bfcfe *LTV )getOCSPs (_bagb []*_ad .Certificate ,_ffec map[string ]*_ad .Certificate )([][]byte ,error ){_febgf :=make ([][]byte ,0,len (_bagb )); for _ ,_gaad :=range _bagb {for _ ,_adggc :=range _gaad .OCSPServer {if _bfcfe .CertClient .IsCA (_gaad ){continue ;};_cgdab ,_bfbeeb :=_ffec [_gaad .Issuer .CommonName ];if !_bfbeeb {_ccb .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 ;};_ ,_bdbgd ,_gabb :=_bfcfe .OCSPClient .MakeRequest (_adggc ,_gaad ,_cgdab );if _gabb !=nil {_ccb .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",_gabb ); continue ;};_febgf =append (_febgf ,_bdbgd );};};return _febgf ,nil ;};func _eeegb (_aeea *XObjectImage )error {if _aeea .SMask ==nil {return nil ;};_gcace ,_bfagd :=_aeea .SMask .(*_eca .PdfObjectStream );if !_bfagd {_ccb .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 _eca .ErrTypeError ;};_bgfac :=_gcace .PdfObjectDictionary ;_efdcg :=_bgfac .Get ("\u004d\u0061\u0074t\u0065");if _efdcg ==nil {return nil ;};_dagbc ,_feagc :=_cbabf (_efdcg .(*_eca .PdfObjectArray ));if _feagc !=nil {return _feagc ;};_bfbca :=_eca .MakeArrayFromFloats ([]float64 {_dagbc }); _bgfac .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_bfbca );return nil ;}; // NewPdfColorspaceCalGray returns a new CalGray colorspace object. func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_eaf :=&PdfColorspaceCalGray {};_eaf .BlackPoint =[]float64 {0.0,0.0,0.0};_eaf .Gamma =1;return _eaf ;}; // GetContext returns the action context which contains the specific type-dependent context. // The context represents the subaction. func (_fe *PdfAction )GetContext ()PdfModel {if _fe ==nil {return nil ;};return _fe ._cd ;}; // ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk). func (_bfeff *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdac ,_acff :=_eca .GetNumbersAsFloat (objects ); if _acff !=nil {return nil ,_acff ;};return _bfeff .ColorFromFloats (_gdac );}; // 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 (_fgce *PdfWriter )ApplyStandard (optimizer StandardApplier ){_fgce ._bfgeb =optimizer }; // GetNumComponents returns the number of color components. func (_agba *PdfColorspaceICCBased )GetNumComponents ()int {return _agba .N }; // GetRuneMetrics returns the character metrics for the specified rune. // A bool flag is returned to indicate whether or not the entry was found. func (_gbcdf pdfFontType3 )GetRuneMetrics (r rune )(_ffd .CharMetrics ,bool ){_eccb :=_gbcdf .Encoder ();if _eccb ==nil {_ccb .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_gbcdf ); return _ffd .CharMetrics {},false ;};_gdadd ,_ddgac :=_eccb .RuneToCharcode (r );if !_ddgac {if r !=' '{_ccb .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 ,_gbcdf ); };return _ffd .CharMetrics {},false ;};_dbgfe ,_aeaec :=_gbcdf .GetCharMetrics (_gdadd );return _dbgfe ,_aeaec ;};func _aada (_ceadf *_eca .PdfObjectDictionary )(*PdfShadingType5 ,error ){_cbbacg :=PdfShadingType5 {};_ebaee :=_ceadf .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065"); if _ebaee ==nil {_ccb .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 ;};_gafdce ,_accecd :=_ebaee .(*_eca .PdfObjectInteger );if !_accecd {_ccb .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",_ebaee ); return nil ,_eca .ErrTypeError ;};_cbbacg .BitsPerCoordinate =_gafdce ;_ebaee =_ceadf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _ebaee ==nil {_ccb .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 ;};_gafdce ,_accecd =_ebaee .(*_eca .PdfObjectInteger );if !_accecd {_ccb .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",_ebaee ); return nil ,_eca .ErrTypeError ;};_cbbacg .BitsPerComponent =_gafdce ;_ebaee =_ceadf .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _ebaee ==nil {_ccb .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 ;};_gafdce ,_accecd =_ebaee .(*_eca .PdfObjectInteger );if !_accecd {_ccb .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",_ebaee ); return nil ,_eca .ErrTypeError ;};_cbbacg .VerticesPerRow =_gafdce ;_ebaee =_ceadf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _ebaee ==nil {_ccb .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 ;};_bcdbc ,_accecd :=_ebaee .(*_eca .PdfObjectArray );if !_accecd {_ccb .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",_ebaee ); return nil ,_eca .ErrTypeError ;};_cbbacg .Decode =_bcdbc ;if _ecfgg :=_ceadf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_ecfgg !=nil {_cbbacg .Function =[]PdfFunction {};if _cefgd ,_abafd :=_ecfgg .(*_eca .PdfObjectArray );_abafd {for _ ,_dgcca :=range _cefgd .Elements (){_eafc ,_gcbceb :=_febaf (_dgcca ); if _gcbceb !=nil {_ccb .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",_gcbceb );return nil ,_gcbceb ;};_cbbacg .Function =append (_cbbacg .Function ,_eafc ); };}else {_afede ,_abea :=_febaf (_ecfgg );if _abea !=nil {_ccb .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",_abea );return nil ,_abea ; };_cbbacg .Function =append (_cbbacg .Function ,_afede );};};return &_cbbacg ,nil ;}; // ToPdfObject implements interface PdfModel. func (_eegf *PdfAnnotationScreen )ToPdfObject ()_eca .PdfObject {_eegf .PdfAnnotation .ToPdfObject ();_ecbg :=_eegf ._cdc ;_aged :=_ecbg .PdfObject .(*_eca .PdfObjectDictionary );_aged .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e")); _aged .SetIfNotNil ("\u0054",_eegf .T );_aged .SetIfNotNil ("\u004d\u004b",_eegf .MK );_aged .SetIfNotNil ("\u0041",_eegf .A );_aged .SetIfNotNil ("\u0041\u0041",_eegf .AA );return _ecbg ;};func (_fffeg *PdfWriter )setWriter (_dccfdb _beg .Writer ){_fffeg ._eggaf =_fffeg ._bggbc ; _fffeg ._agbgb =_b .NewWriter (_dccfdb );};func _cdeeb ()*modelManager {_becac :=modelManager {};_becac ._dccab =map[PdfModel ]_eca .PdfObject {};_becac ._gddea =map[_eca .PdfObject ]PdfModel {};return &_becac ;};func (_accb *PdfReader )newPdfActionLaunchFromDict (_bbe *_eca .PdfObjectDictionary )(*PdfActionLaunch ,error ){_bff ,_dcca :=_efe (_bbe .Get ("\u0046")); if _dcca !=nil {return nil ,_dcca ;};return &PdfActionLaunch {Win :_bbe .Get ("\u0057\u0069\u006e"),Mac :_bbe .Get ("\u004d\u0061\u0063"),Unix :_bbe .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_bbe .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_bff },nil ; };func _fbeb (_ggdb *_eca .PdfObjectDictionary )(*PdfShadingType2 ,error ){_dgdad :=PdfShadingType2 {};_fceea :=_ggdb .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _fceea ==nil {_ccb .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 ;};_fafcd ,_bdbbb :=_fceea .(*_eca .PdfObjectArray );if !_bdbbb {_ccb .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",_fceea ); return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _fafcd .Len ()!=4{_ccb .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",_fafcd .Len ()); return nil ,_da .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_dgdad .Coords =_fafcd ;if _adgf :=_ggdb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_adgf !=nil {_adgf =_eca .TraceToDirectObject (_adgf ); _deda ,_gacd :=_adgf .(*_eca .PdfObjectArray );if !_gacd {_ccb .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",_adgf );return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072"); };_dgdad .Domain =_deda ;};_fceea =_ggdb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _fceea ==nil {_ccb .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 ;};_dgdad .Function =[]PdfFunction {};if _cafcb ,_afebg :=_fceea .(*_eca .PdfObjectArray );_afebg {for _ ,_edgae :=range _cafcb .Elements (){_dcgeg ,_abcfd :=_febaf (_edgae );if _abcfd !=nil {_ccb .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",_abcfd ); return nil ,_abcfd ;};_dgdad .Function =append (_dgdad .Function ,_dcgeg );};}else {_ebcba ,_dgfgc :=_febaf (_fceea );if _dgfgc !=nil {_ccb .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",_dgfgc ); return nil ,_dgfgc ;};_dgdad .Function =append (_dgdad .Function ,_ebcba );};if _cdddb :=_ggdb .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_cdddb !=nil {_cdddb =_eca .TraceToDirectObject (_cdddb );_dgeg ,_ffgeda :=_cdddb .(*_eca .PdfObjectArray );if !_ffgeda {_ccb .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",_cdddb ); return nil ,_eca .ErrTypeError ;};if _dgeg .Len ()!=2{_ccb .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",_dgeg .Len ());return nil ,ErrInvalidAttribute ; };_dgdad .Extend =_dgeg ;};return &_dgdad ,nil ;};func (_dcccb *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";}; // GetContainingPdfObject gets the primitive used to parse the color space. func (_agebc *PdfColorspaceICCBased )GetContainingPdfObject ()_eca .PdfObject {return _agebc ._fdga };func _fbff (_cgce _eca .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_baecd :=NewPdfColorspaceSpecialSeparation ();if _fbgf ,_cefg :=_cgce .(*_eca .PdfIndirectObject ); _cefg {_baecd ._aabgg =_fbgf ;};_cgce =_eca .TraceToDirectObject (_cgce );_ebcg ,_aecdb :=_cgce .(*_eca .PdfObjectArray );if !_aecdb {return nil ,_g .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 _ebcg .Len ()!=4{return nil ,_g .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");};_cgce =_ebcg .Get (0); _ddefa ,_aecdb :=_cgce .(*_eca .PdfObjectName );if !_aecdb {return nil ,_g .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 *_ddefa !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_g .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"); };_cgce =_ebcg .Get (1);_ddefa ,_aecdb =_cgce .(*_eca .PdfObjectName );if !_aecdb {return nil ,_g .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"); };_baecd .ColorantName =_ddefa ;_cgce =_ebcg .Get (2);_feea ,_aaac :=NewPdfColorspaceFromPdfObject (_cgce );if _aaac !=nil {return nil ,_aaac ;};_baecd .AlternateSpace =_feea ;_fffbd ,_aaac :=_febaf (_ebcg .Get (3));if _aaac !=nil {return nil ,_aaac ;}; _baecd .TintTransform =_fffbd ;return _baecd ,nil ;}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 3 for a CalRGB device. func (_gdfdd *PdfColorspaceCalRGB )GetNumComponents ()int {return 3}; // GetOCProperties returns the optional content properties PdfObject. func (_gegfgf *PdfReader )GetOCProperties ()(_eca .PdfObject ,error ){_efddca :=_gegfgf ._affc ;_fbfgg :=_efddca .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_fbfgg =_eca .ResolveReference (_fbfgg );if !_gegfgf ._gggcg {_ecgdg :=_gegfgf .traverseObjectData (_fbfgg ); if _ecgdg !=nil {return nil ,_ecgdg ;};};return _fbfgg ,nil ;};const (_ebab =0x00001;_efbd =0x00002;_afdga =0x00004;_cbgb =0x00008;_eaccc =0x00020;_afdgf =0x00040;_afgfc =0x10000;_cdbgd =0x20000;_beaf =0x40000;); // GetRevision returns the specific version of the PdfReader for the current Pdf document func (_fbcc *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_fbgag :=_fbcc ._ecfeba .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _fbgag {return nil ,_da .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072"); };if revisionNumber ==_fbgag {return _fbcc ,nil ;};if _fbcc ._bcgeg [revisionNumber ]!=nil {return _fbcc ._bcgeg [revisionNumber ],nil ;};_acega :=_fbcc ;for _fdgdf :=_fbgag -1;_fdgdf >=revisionNumber ;_fdgdf --{_cgefg ,_aafad :=_acega .GetPreviousRevision (); if _aafad !=nil {return nil ,_aafad ;};_fbcc ._bcgeg [_fdgdf ]=_cgefg ;_acega =_cgefg ;};return _acega ,nil ;}; // PdfActionMovie represents a movie action. type PdfActionMovie struct{*PdfAction ;Annotation _eca .PdfObject ;T _eca .PdfObject ;Operation _eca .PdfObject ;}; // Register registers (caches) a model to primitive object relationship. func (_dfab *modelManager )Register (primitive _eca .PdfObject ,model PdfModel ){_dfab ._dccab [model ]=primitive ;_dfab ._gddea [primitive ]=model ;}; // SetAction sets the PDF action for the annotation link. func (_gccb *PdfAnnotationLink )SetAction (action *PdfAction ){_gccb ._egc =action ;if action ==nil {_gccb .A =nil ;};};func (_fffb *PdfReader )newPdfAnnotationWatermarkFromDict (_gaab *_eca .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_cfa :=PdfAnnotationWatermark {}; _cfa .FixedPrint =_gaab .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");return &_cfa ,nil ;}; // NewPdfActionImportData returns a new "import data" action. func NewPdfActionImportData ()*PdfActionImportData {_ffdc :=NewPdfAction ();_dcf :=&PdfActionImportData {};_dcf .PdfAction =_ffdc ;_ffdc .SetContext (_dcf );return _dcf ;};type pdfCIDFontType0 struct{fontCommon ;_cdgg *_eca .PdfIndirectObject ;_dccca _dbb .TextEncoder ; // Table 117 – Entries in a CIDFont dictionary (page 269) // (Required) Dictionary that defines the character collection of the CIDFont. // See Table 116. CIDSystemInfo *_eca .PdfObjectDictionary ; // Glyph metrics fields (optional). DW _eca .PdfObject ;W _eca .PdfObject ;DW2 _eca .PdfObject ;W2 _eca .PdfObject ;_ccfe map[_dbb .CharCode ]float64 ;_eegbc float64 ;};func (_fdea *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";}; // 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 _eca .PdfObjectArray )(*PdfRectangle ,error ){_addgb :=PdfRectangle {};if arr .Len ()!=4{return nil ,_da .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 _cecea error ;_addgb .Llx ,_cecea =_eca .GetNumberAsFloat (arr .Get (0));if _cecea !=nil {return nil ,_cecea ;};_addgb .Lly ,_cecea =_eca .GetNumberAsFloat (arr .Get (1));if _cecea !=nil {return nil ,_cecea ;};_addgb .Urx ,_cecea =_eca .GetNumberAsFloat (arr .Get (2)); if _cecea !=nil {return nil ,_cecea ;};_addgb .Ury ,_cecea =_eca .GetNumberAsFloat (arr .Get (3));if _cecea !=nil {return nil ,_cecea ;};return &_addgb ,nil ;};func (_dedca *PdfWriter )setDocInfo (_cgbfe _eca .PdfObject ){if _dedca .hasObject (_dedca ._fbegc ){delete (_dedca ._ceace ,_dedca ._fbegc ); delete (_dedca ._aeedc ,_dedca ._fbegc );for _ebdba ,_gefee :=range _dedca ._daecf {if _gefee ==_dedca ._fbegc {copy (_dedca ._daecf [_ebdba :],_dedca ._daecf [_ebdba +1:]);_dedca ._daecf [len (_dedca ._daecf )-1]=nil ;_dedca ._daecf =_dedca ._daecf [:len (_dedca ._daecf )-1]; break ;};};};_cbfea :=_eca .PdfIndirectObject {};_cbfea .PdfObject =_cgbfe ;_dedca ._fbegc =&_cbfea ;_dedca .addObject (&_cbfea );}; // HasXObjectByName checks if has XObject resource by name. func (_fecae *PdfPage )HasXObjectByName (name _eca .PdfObjectName )bool {_ceegc ,_cdgcg :=_fecae .Resources .XObject .(*_eca .PdfObjectDictionary );if !_cdgcg {return false ;};if _bafbd :=_ceegc .Get (name );_bafbd !=nil {return true ;};return false ;}; // NewPdfPageResources returns a new PdfPageResources object. func NewPdfPageResources ()*PdfPageResources {_bdfgb :=&PdfPageResources {};_bdfgb ._gcbce =_eca .MakeDict ();return _bdfgb ;}; // ToPdfObject implements interface PdfModel. func (_gedc *PdfActionGoToR )ToPdfObject ()_eca .PdfObject {_gedc .PdfAction .ToPdfObject ();_cec :=_gedc ._bee ;_baf :=_cec .PdfObject .(*_eca .PdfObjectDictionary );_baf .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeGoToR )));if _gedc .F !=nil {_baf .Set ("\u0046",_gedc .F .ToPdfObject ()); };_baf .SetIfNotNil ("\u0044",_gedc .D );_baf .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_gedc .NewWindow );return _cec ;}; // ToPdfObject implements interface PdfModel. func (_bgef *PdfAnnotationTrapNet )ToPdfObject ()_eca .PdfObject {_bgef .PdfAnnotation .ToPdfObject ();_bad :=_bgef ._cdc ;_eegb :=_bad .PdfObject .(*_eca .PdfObjectDictionary );_eegb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074")); return _bad ;}; // 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 _beg .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _fcdcf ="\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 _cfbdee (rs ,opts ,true ,_fcdcf ); }; // GetPageLabels returns the PageLabels entry in the PDF catalog. // See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008). func (_abcgd *PdfReader )GetPageLabels ()(_eca .PdfObject ,error ){_ceddad :=_eca .ResolveReference (_abcgd ._affc .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _ceddad ==nil {return nil ,nil ;};if !_abcgd ._gggcg {_fdaa :=_abcgd .traverseObjectData (_ceddad ); if _fdaa !=nil {return nil ,_fdaa ;};};return _ceddad ,nil ;}; // Set applies flag fl to the flag's bitmask and returns the combined flag. func (_cedg FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_cedg .Mask ()|fl .Mask ())};func (_bfg *PdfReader )newPdfAnnotationRedactFromDict (_ecbf *_eca .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_gbc :=PdfAnnotationRedact {};_effd ,_caeff :=_bfg .newPdfAnnotationMarkupFromDict (_ecbf ); if _caeff !=nil {return nil ,_caeff ;};_gbc .PdfAnnotationMarkup =_effd ;_gbc .QuadPoints =_ecbf .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_gbc .IC =_ecbf .Get ("\u0049\u0043");_gbc .RO =_ecbf .Get ("\u0052\u004f");_gbc .OverlayText =_ecbf .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074"); _gbc .Repeat =_ecbf .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_gbc .DA =_ecbf .Get ("\u0044\u0041");_gbc .Q =_ecbf .Get ("\u0051");return &_gbc ,nil ;};func (_ccde *LTV )validateSig (_dcbga *PdfSignature )error {if _dcbga ==nil ||_dcbga .Contents ==nil ||len (_dcbga .Contents .Bytes ())==0{return _g .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_dcbga ); };return nil ;}; // SetDecode sets the decode image float slice. func (_edddb *Image )SetDecode (decode []float64 ){_edddb ._cfgaa =decode }; // PdfActionJavaScript represents a javaScript action. type PdfActionJavaScript struct{*PdfAction ;JS _eca .PdfObject ;}; // NewPdfActionHide returns a new "hide" action. func NewPdfActionHide ()*PdfActionHide {_ce :=NewPdfAction ();_eg :=&PdfActionHide {};_eg .PdfAction =_ce ;_ce .SetContext (_eg );return _eg ;}; // SetNamedDestinations sets the Dests entry in the PDF catalog. // See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008). func (_ebcdd *PdfWriter )SetNamedDestinations (dests _eca .PdfObject )error {if dests ==nil {return nil ;};_ccb .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e"); _ebcdd ._eeggd .Set ("\u0044\u0065\u0073t\u0073",dests );return _ebcdd .addObjects (dests );}; // Evaluate runs the function on the passed in slice and returns the results. func (_gfde *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ccb .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };return nil ,_da .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};func (_gdbb *PdfSignature )extractChainFromCert ()([]*_ad .Certificate ,error ){var _debd *_eca .PdfObjectArray ;switch _cbag :=_gdbb .Cert .(type ){case *_eca .PdfObjectString :_debd =_eca .MakeArray (_cbag ); case *_eca .PdfObjectArray :_debd =_cbag ;default:return nil ,_g .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",_cbag ); };var _ccdcg _dd .Buffer ;for _ ,_fgagf :=range _debd .Elements (){_dfdgb ,_gfega :=_eca .GetString (_fgagf );if !_gfega {return nil ,_g .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",_fgagf ); };if _ ,_cbbae :=_ccdcg .Write (_dfdgb .Bytes ());_cbbae !=nil {return nil ,_cbbae ;};};return _ad .ParseCertificates (_ccdcg .Bytes ());}; // GetCustomInfo returns a custom info value for the specified name. func (_cfed *PdfInfo )GetCustomInfo (name string )*_eca .PdfObjectString {var _acdfa *_eca .PdfObjectString ;if _cfed ._bcfd ==nil {return _acdfa ;};if _bfgb ,_dcegg :=_cfed ._bcfd .Get (*_eca .MakeName (name )).(*_eca .PdfObjectString );_dcegg {_acdfa =_bfgb ; };return _acdfa ;}; // ToPdfObject implements interface PdfModel. func (_ebfb *PdfAnnotationSound )ToPdfObject ()_eca .PdfObject {_ebfb .PdfAnnotation .ToPdfObject ();_bcc :=_ebfb ._cdc ;_fbgg :=_bcc .PdfObject .(*_eca .PdfObjectDictionary );_ebfb .PdfAnnotationMarkup .appendToPdfDictionary (_fbgg );_fbgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0053\u006f\u0075n\u0064")); _fbgg .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_ebfb .Sound );_fbgg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_ebfb .Name );return _bcc ;}; // ToPdfObject returns the PDF representation of the colorspace. func (_ffed *PdfColorspaceSpecialPattern )ToPdfObject ()_eca .PdfObject {if _ffed .UnderlyingCS ==nil {return _eca .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_effde :=_eca .MakeArray (_eca .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e")); _effde .Append (_ffed .UnderlyingCS .ToPdfObject ());if _ffed ._adcgc !=nil {_ffed ._adcgc .PdfObject =_effde ;return _ffed ._adcgc ;};return _effde ;}; // PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30). type PdfPage struct{Parent _eca .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _eca .PdfObject ;Contents _eca .PdfObject ; Rotate *int64 ;Group _eca .PdfObject ;Thumb _eca .PdfObject ;B _eca .PdfObject ;Dur _eca .PdfObject ;Trans _eca .PdfObject ;AA _eca .PdfObject ;Metadata _eca .PdfObject ;PieceInfo _eca .PdfObject ;StructParents _eca .PdfObject ;ID _eca .PdfObject ;PZ _eca .PdfObject ; SeparationInfo _eca .PdfObject ;Tabs _eca .PdfObject ;TemplateInstantiated _eca .PdfObject ;PresSteps _eca .PdfObject ;UserUnit _eca .PdfObject ;VP _eca .PdfObject ;Annots _eca .PdfObject ;_gabcd []*PdfAnnotation ;_agaea *_eca .PdfObjectDictionary ;_aedef *_eca .PdfIndirectObject ; _gbaec _eca .PdfObjectDictionary ;_cdgeb *PdfReader ;}; // 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 (_dfeg *PdfPage )SetContentStreams (cStreams []string ,encoder _eca .StreamEncoder )error {if len (cStreams )==0{_dfeg .Contents =nil ;return nil ;};if encoder ==nil {encoder =_eca .NewRawEncoder ();};var _gaabg []*_eca .PdfObjectStream ;for _ ,_eegcd :=range cStreams {_geccc :=&_eca .PdfObjectStream {}; _egaff :=encoder .MakeStreamDict ();_eagf ,_bcafe :=encoder .EncodeBytes ([]byte (_eegcd ));if _bcafe !=nil {return _bcafe ;};_egaff .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eca .MakeInteger (int64 (len (_eagf ))));_geccc .PdfObjectDictionary =_egaff ; _geccc .Stream =_eagf ;_gaabg =append (_gaabg ,_geccc );};if len (_gaabg )==1{_dfeg .Contents =_gaabg [0];}else {_fefc :=_eca .MakeArray ();for _ ,_fcaee :=range _gaabg {_fefc .Append (_fcaee );};_dfeg .Contents =_fefc ;};return nil ;}; // ImageToRGB returns the passed in image. Method exists in order to satisfy // the PdfColorspace interface. func (_abca *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };func (_abed *PdfReader )newPdfAnnotationCircleFromDict (_fgcfg *_eca .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_fbecb :=PdfAnnotationCircle {};_daba ,_cff :=_abed .newPdfAnnotationMarkupFromDict (_fgcfg ); if _cff !=nil {return nil ,_cff ;};_fbecb .PdfAnnotationMarkup =_daba ;_fbecb .BS =_fgcfg .Get ("\u0042\u0053");_fbecb .IC =_fgcfg .Get ("\u0049\u0043");_fbecb .BE =_fgcfg .Get ("\u0042\u0045");_fbecb .RD =_fgcfg .Get ("\u0052\u0044");return &_fbecb ,nil ; }; // K returns the value of the key component of the color. func (_feeed *PdfColorDeviceCMYK )K ()float64 {return _feeed [3]}; // ColorAt returns the color of the image pixel specified by the x and y coordinates. func (_feebf *Image )ColorAt (x ,y int )(_cf .Color ,error ){_cagde :=_bbg .BytesPerLine (int (_feebf .Width ),int (_feebf .BitsPerComponent ),_feebf .ColorComponents );switch _feebf .ColorComponents {case 1:return _bbg .ColorAtGrayscale (x ,y ,int (_feebf .BitsPerComponent ),_cagde ,_feebf .Data ,_feebf ._cfgaa ); case 3:return _bbg .ColorAtNRGBA (x ,y ,int (_feebf .Width ),_cagde ,int (_feebf .BitsPerComponent ),_feebf .Data ,_feebf ._gcgb ,_feebf ._cfgaa );case 4:return _bbg .ColorAtCMYK (x ,y ,int (_feebf .Width ),_feebf .Data ,_feebf ._cfgaa );};_ccb .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",_feebf .ColorComponents ,_feebf .BitsPerComponent ); return nil ,_da .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");}; // 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 (_deff *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ccfb ,_eeeb :=_eca .GetNumbersAsFloat (objects ); if _eeeb !=nil {return nil ,_eeeb ;};return _deff .ColorFromFloats (_ccfb );}; // NewPdfAnnotationRichMedia returns a new rich media annotation. func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_ade :=NewPdfAnnotation ();_bbgfc :=&PdfAnnotationRichMedia {};_bbgfc .PdfAnnotation =_ade ;_ade .SetContext (_bbgfc );return _bbgfc ;}; // WatermarkImageOptions contains options for configuring the watermark process. type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;}; // GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject. func (_gddgc *modelManager )GetModelFromPrimitive (primitive _eca .PdfObject )PdfModel {model ,_dgfga :=_gddgc ._gddea [primitive ];if !_dgfga {return nil ;};return model ;}; // GetCatalogMarkInfo gets catalog MarkInfo object. func (_gbacb *PdfReader )GetCatalogMarkInfo ()(_eca .PdfObject ,bool ){if _gbacb ._affc ==nil {return nil ,false ;};_dcage :=_gbacb ._affc .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _dcage ,_dcage !=nil ;}; // SetPageLabels sets the PageLabels entry in the PDF catalog. // See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008). func (_cacb *PdfWriter )SetPageLabels (pageLabels _eca .PdfObject )error {if pageLabels ==nil {return nil ;};_ccb .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"); _cacb ._eeggd .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _cacb .addObjects (pageLabels );}; // HasFontByName checks whether a font is defined by the specified keyName. func (_gagfc *PdfPageResources )HasFontByName (keyName _eca .PdfObjectName )bool {_ ,_gccgb :=_gagfc .GetFontByName (keyName );return _gccgb ;}; // XObjectType represents the type of an XObject. type XObjectType int ; // PdfActionImportData represents a importData action. type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};func (_dcgc *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";}; // ToPdfObject returns the button field dictionary within an indirect object. func (_efde *PdfFieldButton )ToPdfObject ()_eca .PdfObject {_efde .PdfField .ToPdfObject ();_ggab :=_efde ._geaa ;_gfa :=_ggab .PdfObject .(*_eca .PdfObjectDictionary );_gfa .Set ("\u0046\u0054",_eca .MakeName ("\u0042\u0074\u006e"));if _efde .Opt !=nil {_gfa .Set ("\u004f\u0070\u0074",_efde .Opt ); };return _ggab ;};func _decbc (_dfec _eca .PdfObject )(*fontFile ,error ){_ccb .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",_dfec ); _ddfb :=&fontFile {};_dfec =_eca .TraceToDirectObject (_dfec );_ffca ,_facd :=_dfec .(*_eca .PdfObjectStream );if !_facd {_ccb .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",_dfec ); return nil ,_eca .ErrTypeError ;};_cfgbf :=_ffca .PdfObjectDictionary ;_bcabb ,_dadag :=_eca .DecodeStream (_ffca );if _dadag !=nil {return nil ,_dadag ;};_bdgga ,_facd :=_eca .GetNameVal (_cfgbf .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_facd {_ddfb ._dcgda =_bdgga ; if _bdgga =="\u0054\u0079\u0070\u0065\u0031\u0043"{_ccb .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 ;};};_bbged ,_ :=_eca .GetIntVal (_cfgbf .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_ccgac ,_ :=_eca .GetIntVal (_cfgbf .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _bbged > len (_bcabb ){_bbged =len (_bcabb ); };if _bbged +_ccgac > len (_bcabb ){_ccgac =len (_bcabb )-_bbged ;};_efbbd :=_bcabb [:_bbged ];var _ggaf []byte ;if _ccgac > 0{_ggaf =_bcabb [_bbged :_bbged +_ccgac ];};if _bbged > 0&&_ccgac > 0{_eabba :=_ddfb .loadFromSegments (_efbbd ,_ggaf );if _eabba !=nil {return nil ,_eabba ; };};return _ddfb ,nil ;};func _dbed (_adae *PdfPage ){_ggccf :=_aag .GetLicenseKey ();if _ggccf !=nil &&_ggccf .IsLicensed (){return ;};_cbbbg :=_eca .PdfObjectName ("\u0055\u0046\u0031");if !_adae .Resources .HasFontByName (_cbbbg ){_adae .Resources .SetFontByName (_cbbbg ,DefaultFont ().ToPdfObject ()); };var _afgbg []string ;_afgbg =append (_afgbg ,"\u0071");_afgbg =append (_afgbg ,"\u0042\u0054");_afgbg =append (_afgbg ,_g .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_cbbbg .String ()));_afgbg =append (_afgbg ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067"); _afgbg =append (_afgbg ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_cefaa :="\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"; _afgbg =append (_afgbg ,_g .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_cefaa ));_afgbg =append (_afgbg ,"\u0045\u0054");_afgbg =append (_afgbg ,"\u0051");_bcccd :=_ec .Join (_afgbg ,"\u000a");_adae .AddContentStreamByString (_bcccd );_adae .ToPdfObject (); }; // AddExtGState add External Graphics State (GState). The gsDict can be specified // either directly as a dictionary or an indirect object containing a dictionary. func (_dggcc *PdfPageResources )AddExtGState (gsName _eca .PdfObjectName ,gsDict _eca .PdfObject )error {if _dggcc .ExtGState ==nil {_dggcc .ExtGState =_eca .MakeDict ();};_bafcb :=_dggcc .ExtGState ;_fcbeg ,_bbedcd :=_eca .TraceToDirectObject (_bafcb ).(*_eca .PdfObjectDictionary ); if !_bbedcd {_ccb .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",_bafcb ,_eca .TraceToDirectObject (_bafcb )); return _eca .ErrTypeError ;};_fcbeg .Set (gsName ,gsDict );return nil ;}; // PdfColorspaceDeviceN represents a DeviceN color space. DeviceN color spaces are similar to Separation color // spaces, except they can contain an arbitrary number of color components. /* Format: [/DeviceN names alternateSpace tintTransform] or: [/DeviceN names alternateSpace tintTransform attributes] */ type PdfColorspaceDeviceN struct{ColorantNames *_eca .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_bded *_eca .PdfIndirectObject ;};func (_fccde *PdfPage )getParentResources ()(*PdfPageResources ,error ){_fbeca :=_fccde .Parent ; for _fbeca !=nil {_fdcf ,_ggfac :=_eca .GetDict (_fbeca );if !_ggfac {_ccb .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 ,_da .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074"); };if _bdded :=_fdcf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_bdded !=nil {_ccbae ,_gbegc :=_eca .GetDict (_bdded );if !_gbegc {return nil ,_da .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074"); };_agefc ,_eegdb :=NewPdfPageResourcesFromDict (_ccbae );if _eegdb !=nil {return nil ,_eegdb ;};return _agefc ,nil ;};_fbeca =_fdcf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;}; // PdfPageResources is a Page resources model. // Implements PdfModel. type PdfPageResources struct{ExtGState _eca .PdfObject ;ColorSpace _eca .PdfObject ;Pattern _eca .PdfObject ;Shading _eca .PdfObject ;XObject _eca .PdfObject ;Font _eca .PdfObject ;ProcSet _eca .PdfObject ;Properties _eca .PdfObject ;_gcbce *_eca .PdfObjectDictionary ; _faccea *PdfPageResourcesColorspaces ;}; // ToPdfObject implements interface PdfModel. func (_bca *PdfActionLaunch )ToPdfObject ()_eca .PdfObject {_bca .PdfAction .ToPdfObject ();_eba :=_bca ._bee ;_bfc :=_eba .PdfObject .(*_eca .PdfObjectDictionary );_bfc .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeLaunch )));if _bca .F !=nil {_bfc .Set ("\u0046",_bca .F .ToPdfObject ()); };_bfc .SetIfNotNil ("\u0057\u0069\u006e",_bca .Win );_bfc .SetIfNotNil ("\u004d\u0061\u0063",_bca .Mac );_bfc .SetIfNotNil ("\u0055\u006e\u0069\u0078",_bca .Unix );_bfc .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_bca .NewWindow );return _eba ; }; // FieldImageProvider provides fields images for specified fields. type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );}; // ToPdfObject converts the font to a PDF representation. func (_cebe *pdfFontType3 )ToPdfObject ()_eca .PdfObject {if _cebe ._gcggc ==nil {_cebe ._gcggc =&_eca .PdfIndirectObject {};};_ddfc :=_cebe .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_cebe ._gcggc .PdfObject =_ddfc ;if _cebe .FirstChar !=nil {_ddfc .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_cebe .FirstChar ); };if _cebe .LastChar !=nil {_ddfc .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_cebe .LastChar );};if _cebe .Widths !=nil {_ddfc .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_cebe .Widths );};if _cebe .Encoding !=nil {_ddfc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cebe .Encoding ); }else if _cebe ._aeefc !=nil {_dfbbg :=_cebe ._aeefc .ToPdfObject ();if _dfbbg !=nil {_ddfc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dfbbg );};};if _cebe .FontBBox !=nil {_ddfc .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_cebe .FontBBox ); };if _cebe .FontMatrix !=nil {_ddfc .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_cebe .FontMatrix );};if _cebe .CharProcs !=nil {_ddfc .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_cebe .CharProcs );};if _cebe .Resources !=nil {_ddfc .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_cebe .Resources ); };return _cebe ._gcggc ;}; // ToPdfObject implements interface PdfModel. func (_cbb *PdfActionSound )ToPdfObject ()_eca .PdfObject {_cbb .PdfAction .ToPdfObject ();_dgb :=_cbb ._bee ;_ggb :=_dgb .PdfObject .(*_eca .PdfObjectDictionary );_ggb .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeSound )));_ggb .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_cbb .Sound ); _ggb .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_cbb .Volume );_ggb .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_cbb .Synchronous );_ggb .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_cbb .Repeat );_ggb .SetIfNotNil ("\u004d\u0069\u0078",_cbb .Mix ); return _dgb ;}; // PdfActionGoToR represents a GoToR action. type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _eca .PdfObject ;NewWindow _eca .PdfObject ;};func (_bgcf *PdfReader )newPdfActionGotoFromDict (_cca *_eca .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_cca .Get ("\u0044")},nil ; }; // IsTiling specifies if the pattern is a tiling pattern. func (_fgggf *PdfPattern )IsTiling ()bool {return _fgggf .PatternType ==1}; // G returns the value of the green component of the color. func (_ebfcb *PdfColorDeviceRGB )G ()float64 {return _ebfcb [1]}; // ToInteger convert to an integer format. func (_cfgg *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_dced :=_de .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_dced *_cfgg .A ()),uint32 (_dced *_cfgg .B ()),uint32 (_dced *_cfgg .C ())};}; // NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object // from the input dictionary. func NewPdfPageResourcesFromDict (dict *_eca .PdfObjectDictionary )(*PdfPageResources ,error ){_ddbdd :=NewPdfPageResources ();if _fecdb :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_fecdb !=nil {_ddbdd .ExtGState =_fecdb ;};if _dafba :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"); _dafba !=nil &&!_eca .IsNullObject (_dafba ){_ddbdd .ColorSpace =_dafba ;};if _adggf :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_adggf !=nil {_ddbdd .Pattern =_adggf ;};if _deed :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_deed !=nil {_ddbdd .Shading =_deed ; };if _gfacc :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_gfacc !=nil {_ddbdd .XObject =_gfacc ;};if _aebaeb :=_eca .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_aebaeb !=nil {_ddbdd .Font =_aebaeb ;};if _fcadc :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074"); _fcadc !=nil {_ddbdd .ProcSet =_fcadc ;};if _bcdgc :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_bcdgc !=nil {_ddbdd .Properties =_bcdgc ;};return _ddbdd ,nil ;}; // ToPdfObject implements interface PdfModel. func (_bdfcg *Permissions )ToPdfObject ()_eca .PdfObject {return _bdfcg ._bffgb }; // ToInteger convert to an integer format. func (_fbcb *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_fdgee :=_de .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_fdgee *_fbcb .R ()),uint32 (_fdgee *_fbcb .G ()),uint32 (_fdgee *_fbcb .B ())};}; // ToPdfObject recursively builds the Outline tree PDF object. func (_cgacf *PdfOutlineItem )ToPdfObject ()_eca .PdfObject {_cfdd :=_cgacf ._becge ;_befbc :=_cfdd .PdfObject .(*_eca .PdfObjectDictionary );_befbc .Set ("\u0054\u0069\u0074l\u0065",_cgacf .Title );if _cgacf .A !=nil {_befbc .Set ("\u0041",_cgacf .A ); };if _ceaba :=_befbc .Get ("\u0053\u0045");_ceaba !=nil {_befbc .Remove ("\u0053\u0045");};if _cgacf .C !=nil {_befbc .Set ("\u0043",_cgacf .C );};if _cgacf .Dest !=nil {_befbc .Set ("\u0044\u0065\u0073\u0074",_cgacf .Dest );};if _cgacf .F !=nil {_befbc .Set ("\u0046",_cgacf .F ); };if _cgacf .Count !=nil {_befbc .Set ("\u0043\u006f\u0075n\u0074",_eca .MakeInteger (*_cgacf .Count ));};if _cgacf .Next !=nil {_befbc .Set ("\u004e\u0065\u0078\u0074",_cgacf .Next .ToPdfObject ());};if _cgacf .First !=nil {_befbc .Set ("\u0046\u0069\u0072s\u0074",_cgacf .First .ToPdfObject ()); };if _cgacf .Prev !=nil {_befbc .Set ("\u0050\u0072\u0065\u0076",_cgacf .Prev .GetContext ().GetContainingPdfObject ());};if _cgacf .Last !=nil {_befbc .Set ("\u004c\u0061\u0073\u0074",_cgacf .Last .GetContext ().GetContainingPdfObject ());};if _cgacf .Parent !=nil {_befbc .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cgacf .Parent .GetContext ().GetContainingPdfObject ()); };return _cfdd ;}; // NewPdfAnnotationLink returns a new link annotation. func NewPdfAnnotationLink ()*PdfAnnotationLink {_aeb :=NewPdfAnnotation ();_efc :=&PdfAnnotationLink {};_efc .PdfAnnotation =_aeb ;_aeb .SetContext (_efc );return _efc ;}; // ToPdfObject converts the PdfPage to a dictionary within an indirect object container. func (_cdfe *PdfPage )ToPdfObject ()_eca .PdfObject {_adba :=_cdfe ._aedef ;_cdfe .GetPageDict ();return _adba ;};func (_fadac *PdfWriter )addObjects (_fbgfa _eca .PdfObject )error {_ccb .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021"); if _egdbg ,_ffgfdd :=_fbgfa .(*_eca .PdfIndirectObject );_ffgfdd {_ccb .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_ccb .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_fbgfa ,_egdbg );_ccb .Log .Trace ("\u002d\u0020\u0025\u0073",_egdbg .PdfObject ); if _fadac .addObject (_egdbg ){_bdcdf :=_fadac .addObjects (_egdbg .PdfObject );if _bdcdf !=nil {return _bdcdf ;};};return nil ;};if _dafc ,_abdef :=_fbgfa .(*_eca .PdfObjectStream );_abdef {_ccb .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_ccb .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_fbgfa ,_fbgfa ); if _fadac .addObject (_dafc ){_acdaa :=_fadac .addObjects (_dafc .PdfObjectDictionary );if _acdaa !=nil {return _acdaa ;};};return nil ;};if _egdggg ,_eeaddb :=_fbgfa .(*_eca .PdfObjectDictionary );_eeaddb {_ccb .Log .Trace ("\u0044\u0069\u0063\u0074"); _ccb .Log .Trace ("\u002d\u0020\u0025\u0073",_fbgfa );for _ ,_cabcb :=range _egdggg .Keys (){_fffge :=_egdggg .Get (_cabcb );if _dgcce ,_eafa :=_fffge .(*_eca .PdfObjectReference );_eafa {_fffge =_dgcce .Resolve ();_egdggg .Set (_cabcb ,_fffge );};if _cabcb !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _fggfb :=_fadac .addObjects (_fffge ); _fggfb !=nil {return _fggfb ;};}else {if _ ,_dfgcg :=_fffge .(*_eca .PdfObjectNull );_dfgcg {continue ;};if _bcbea :=_fadac .hasObject (_fffge );!_bcbea {_ccb .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",_fffge ,_fffge ,_fffge ); _fadac ._cbfcb [_fffge ]=append (_fadac ._cbfcb [_fffge ],_egdggg );};};};return nil ;};if _abedc ,_cceg :=_fbgfa .(*_eca .PdfObjectArray );_cceg {_ccb .Log .Trace ("\u0041\u0072\u0072a\u0079");_ccb .Log .Trace ("\u002d\u0020\u0025\u0073",_fbgfa );if _abedc ==nil {return _da .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c"); };for _cgcde ,_cceaa :=range _abedc .Elements (){if _ddcab ,_aacgf :=_cceaa .(*_eca .PdfObjectReference );_aacgf {_cceaa =_ddcab .Resolve ();_abedc .Set (_cgcde ,_cceaa );};if _dcab :=_fadac .addObjects (_cceaa );_dcab !=nil {return _dcab ;};};return nil ; };if _ ,_fbfb :=_fbgfa .(*_eca .PdfObjectReference );_fbfb {_ccb .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",_fbgfa ); return _da .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;}; // DecodeArray returns the component range values for the DeviceN colorspace. // [0 1.0 0 1.0 ...] for each color component. func (_effa *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _afgdd []float64 ;for _bddbf :=0;_bddbf < _effa .GetNumComponents ();_bddbf ++{_afgdd =append (_afgdd ,0.0,1.0);};return _afgdd ;};func (_bgffg *PdfReader )newPdfAnnotationTrapNetFromDict (_ccbe *_eca .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_eea :=PdfAnnotationTrapNet {}; return &_eea ,nil ;}; // PdfAnnotationLink represents Link annotations. // (Section 12.5.6.5 p. 403). type PdfAnnotationLink struct{*PdfAnnotation ;A _eca .PdfObject ;Dest _eca .PdfObject ;H _eca .PdfObject ;PA _eca .PdfObject ;QuadPoints _eca .PdfObject ;BS _eca .PdfObject ;_egc *PdfAction ;_gagb *PdfReader ;}; // 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 ;func _gaged (_ebccb []*_eca .PdfObjectStream )*_eca .PdfObjectArray {if len (_ebccb )==0{return nil ;};_dbgfda :=make ([]_eca .PdfObject ,0,len (_ebccb ));for _ ,_gcbfc :=range _ebccb {_dbgfda =append (_dbgfda ,_gcbfc ); };return _eca .MakeArray (_dbgfda ...);}; // 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 ,_bfbdb :_eca .MakeDict (),ColorComponents :colorComponents }; };func _cfbdee (_ebedg _beg .ReadSeeker ,_beda *ReaderOpts ,_daeeb bool ,_gdbc string )(*PdfReader ,error ){if _beda ==nil {_beda =NewReaderOpts ();};_fgeebe :=*_beda ;_bdgcd :=&PdfReader {_eacag :_ebedg ,_fgbbd :map[_eca .PdfObject ]struct{}{},_dcddd :_cdeeb (),_gggcg :_beda .LazyLoad ,_cgfcc :_beda .ComplianceMode ,_fdbbc :_daeeb ,_bccfb :&_fgeebe }; _fbdgf ,_acda :=_agcee ("\u0072");if _acda !=nil {return nil ,_acda ;};_acda =_aag .Track (_fbdgf ,_gdbc );if _acda !=nil {return nil ,_acda ;};_bdgcd ._ggeed =_fbdgf ;var _bbcbg *_eca .PdfParser ;if !_bdgcd ._cgfcc {_bbcbg ,_acda =_eca .NewParser (_ebedg ); }else {_bbcbg ,_acda =_eca .NewCompliancePdfParser (_ebedg );};if _acda !=nil {return nil ,_acda ;};_bdgcd ._ecfeba =_bbcbg ;_aegfc ,_acda :=_bdgcd .IsEncrypted ();if _acda !=nil {return nil ,_acda ;};if !_aegfc {_acda =_bdgcd .loadStructure ();if _acda !=nil {return nil ,_acda ; };}else if _daeeb {_fbgbf ,_abbge :=_bdgcd .Decrypt ([]byte (_beda .Password ));if _abbge !=nil {return nil ,_abbge ;};if !_fbgbf {return nil ,_da .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"); };};_bdgcd ._dgedea =make (map[*PdfReader ]*PdfReader );_bdgcd ._bcgeg =make ([]*PdfReader ,_bbcbg .GetRevisionNumber ());return _bdgcd ,nil ;}; // String returns a human readable description of `fontfile`. func (_fggeb *fontFile )String ()string {_cbdda :="\u005b\u004e\u006f\u006e\u0065\u005d";if _fggeb ._eggeg !=nil {_cbdda =_fggeb ._eggeg .String ();};return _g .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_fggeb ._gfafb ,_cbdda ); };func (_dbcf *PdfWriter )writeDocumentVersion (){if _dbcf ._ccdgb {_dbcf .writeString ("\u000a");}else {_dbcf .writeString (_g .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_dbcf ._dgab .Major ,_dbcf ._dgab .Minor )); _dbcf .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};}; // NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an // error is returned. func NewPdfFontFromPdfObject (fontObj _eca .PdfObject )(*PdfFont ,error ){return _bbdgf (fontObj ,true )}; // 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 _eca .PdfObject ;_eaea []byte ;_dbcc *_eca .PdfIndirectObject ;}; // PdfAnnotationRedact represents Redact annotations. // (Section 12.5.6.23). type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eca .PdfObject ;IC _eca .PdfObject ;RO _eca .PdfObject ;OverlayText _eca .PdfObject ;Repeat _eca .PdfObject ;DA _eca .PdfObject ;Q _eca .PdfObject ;}; // ToPdfObject implements interface PdfModel. func (_fcef *PdfAnnotationUnderline )ToPdfObject ()_eca .PdfObject {_fcef .PdfAnnotation .ToPdfObject ();_acgd :=_fcef ._cdc ;_daccc :=_acgd .PdfObject .(*_eca .PdfObjectDictionary );_fcef .PdfAnnotationMarkup .appendToPdfDictionary (_daccc );_daccc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee")); _daccc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_fcef .QuadPoints );return _acgd ;}; // 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 ){_fdbe ,_eabgd :=_efg .Open (filePath );if _eabgd !=nil {_ccb .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_eabgd ); return nil ,_eabgd ;};defer _fdbe .Close ();return NewCompositePdfFontFromTTF (_fdbe );}; // GetXObjectImageByName returns the XObjectImage with the specified name from the // page resources, if it exists. func (_bffef *PdfPageResources )GetXObjectImageByName (keyName _eca .PdfObjectName )(*XObjectImage ,error ){_dbcbd ,_ccdda :=_bffef .GetXObjectByName (keyName );if _dbcbd ==nil {return nil ,nil ;};if _ccdda !=XObjectTypeImage {return nil ,_da .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065"); };_faffg ,_becdc :=NewXObjectImageFromStream (_dbcbd );if _becdc !=nil {return nil ,_becdc ;};return _faffg ,nil ;}; // PdfAnnotationScreen represents Screen annotations. // (Section 12.5.6.18). type PdfAnnotationScreen struct{*PdfAnnotation ;T _eca .PdfObject ;MK _eca .PdfObject ;A _eca .PdfObject ;AA _eca .PdfObject ;}; // 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 ()_eca .PdfObject ;GetContainingPdfObject ()_eca .PdfObject ;}; // WriteToFile writes the Appender output to file specified by path. func (_gdfe *PdfAppender )WriteToFile (outputPath string )error {_bdfc ,_gaacf :=_efg .Create (outputPath );if _gaacf !=nil {return _gaacf ;};defer _bdfc .Close ();return _gdfe .Write (_bdfc );}; // GetTrailer returns the PDF's trailer dictionary. func (_cdeb *PdfReader )GetTrailer ()(*_eca .PdfObjectDictionary ,error ){_cdcac :=_cdeb ._ecfeba .GetTrailer ();if _cdcac ==nil {return nil ,_da .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _cdcac ,nil ; };func (_bfcf *PdfFilespec )getDict ()*_eca .PdfObjectDictionary {if _efca ,_afceb :=_bfcf ._ggdg .(*_eca .PdfIndirectObject );_afceb {_cebf ,_bgcbg :=_efca .PdfObject .(*_eca .PdfObjectDictionary );if !_bgcbg {return nil ;};return _cebf ;}else if _efcc ,_cebad :=_bfcf ._ggdg .(*_eca .PdfObjectDictionary ); _cebad {return _efcc ;}else {_ccb .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",_bfcf ._ggdg ); 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 ;_gefbg []byte ;_acbe []uint32 ;_ggde *_eca .PdfObjectStream ;}; // GetNumPages returns the number of pages in the document. func (_ggaded *PdfReader )GetNumPages ()(int ,error ){if _ggaded ._ecfeba .GetCrypter ()!=nil &&!_ggaded ._ecfeba .IsAuthenticated (){return 0,_g .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 (_ggaded ._gfabb ),nil ;}; // ColorToRGB converts a CalGray color to an RGB color. func (_gabg *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_fcafa ,_dgfda :=color .(*PdfColorCalGray );if !_dgfda {_ccb .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 ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_fcafa .Val ();X :=_gabg .WhitePoint [0]*_de .Pow (ANorm ,_gabg .Gamma );Y :=_gabg .WhitePoint [1]*_de .Pow (ANorm ,_gabg .Gamma ); Z :=_gabg .WhitePoint [2]*_de .Pow (ANorm ,_gabg .Gamma );_fadf :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ecdc :=-0.969256*X +1.875992*Y +0.041556*Z ;_fbfc :=0.055648*X +-0.204043*Y +1.057311*Z ;_fadf =_de .Min (_de .Max (_fadf ,0),1.0);_ecdc =_de .Min (_de .Max (_ecdc ,0),1.0); _fbfc =_de .Min (_de .Max (_fbfc ,0),1.0);return NewPdfColorDeviceRGB (_fadf ,_ecdc ,_fbfc ),nil ;};func (_gddce *PdfWriter )writeTrailer (_gcegb int ){_gddce .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _beffc :=0;_beffc <=_gcegb ;{for ;_beffc <=_gcegb ; _beffc ++{_aaaeb ,_beded :=_gddce ._eaad [_beffc ];if _beded &&(!_gddce ._ccdgb ||_gddce ._ccdgb &&(_aaaeb .Type ==1&&_aaaeb .Offset >=_gddce ._ffeaf ||_aaaeb .Type ==0)){break ;};};var _fede int ;for _fede =_beffc +1;_fede <=_gcegb ;_fede ++{_eecfd ,_dfega :=_gddce ._eaad [_fede ]; if _dfega &&(!_gddce ._ccdgb ||_gddce ._ccdgb &&(_eecfd .Type ==1&&_eecfd .Offset > _gddce ._ffeaf )){continue ;};break ;};_abdfg :=_g .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_beffc ,_fede -_beffc );_gddce .writeString (_abdfg );for _deec :=_beffc ; _deec < _fede ;_deec ++{_ggdc :=_gddce ._eaad [_deec ];switch _ggdc .Type {case 0:_abdfg =_g .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);_gddce .writeString (_abdfg );case 1:_abdfg =_g .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_ggdc .Offset ,0); _gddce .writeString (_abdfg );};};_beffc =_fede +1;};_caae :=_eca .MakeDict ();_caae .Set ("\u0049\u006e\u0066\u006f",_gddce ._fbegc );_caae .Set ("\u0052\u006f\u006f\u0074",_gddce ._bggab );_caae .Set ("\u0053\u0069\u007a\u0065",_eca .MakeInteger (int64 (_gcegb +1))); if _gddce ._ccdgb &&_gddce ._dcggeb > 0{_caae .Set ("\u0050\u0072\u0065\u0076",_eca .MakeInteger (_gddce ._dcggeb ));};if _gddce ._badga !=nil {_caae .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_gddce ._fdgaf );};if _gddce ._dadf ==nil &&_gddce ._aadc !=""&&_gddce ._fcbcc !=""{_gddce ._dadf =_eca .MakeArray (_eca .MakeHexString (_gddce ._aadc ),_eca .MakeHexString (_gddce ._fcbcc )); };if _gddce ._dadf !=nil {_caae .Set ("\u0049\u0044",_gddce ._dadf );_ccb .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_gddce ._dadf );};_gddce .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_gddce .writeString (_caae .WriteString ()); _gddce .writeString ("\u000a");}; // AddPage adds a page to the PDF file. The new page should be an indirect object. func (_gddab *PdfWriter )AddPage (page *PdfPage )error {const _dfgdc ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_dbed (page );_ababe :=page .ToPdfObject ();_ccb .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"); _ccb .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_ababe );_gdcbf ,_cabeg :=_eca .GetIndirect (_ababe );if !_cabeg {return _da .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"); };_ccb .Log .Trace ("\u0025\u0073",_gdcbf );_ccb .Log .Trace ("\u0025\u0073",_gdcbf .PdfObject );_cggc ,_cabeg :=_eca .GetDict (_gdcbf .PdfObject );if !_cabeg {return _da .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"); };_ddcg ,_cabeg :=_eca .GetName (_cggc .Get ("\u0054\u0079\u0070\u0065"));if !_cabeg {return _g .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",_cggc .Get ("\u0054\u0079\u0070\u0065")); };if _ddcg .String ()!="\u0050\u0061\u0067\u0065"{return _da .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");};_eafg :=[]_eca .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"}; _cebfe ,_ceggg :=_eca .GetIndirect (_cggc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_ccb .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_cggc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_ceggg ); for _ceggg {_ccb .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_cebfe );_gcbgga ,_bcfbb :=_eca .GetDict (_cebfe .PdfObject );if !_bcfbb {return _da .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074"); };for _ ,_abeed :=range _eafg {_ccb .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_abeed );if _cggc .Get (_abeed )!=nil {_ccb .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ; };if _bfac :=_gcbgga .Get (_abeed );_bfac !=nil {_ccb .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_abeed );_cggc .Set (_abeed ,_bfac );};};_cebfe ,_ceggg =_eca .GetIndirect (_gcbgga .Get ("\u0050\u0061\u0072\u0065\u006e\u0074")); _ccb .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gcbgga .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_ccb .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065"); _cggc .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gddab ._bceddb );_gdcbf .PdfObject =_cggc ;_dfgfc ,_cabeg :=_eca .GetDict (_gddab ._bceddb .PdfObject );if !_cabeg {return _da .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"); };_beabbb ,_cabeg :=_eca .GetArray (_dfgfc .Get ("\u004b\u0069\u0064\u0073"));if !_cabeg {return _da .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"); };_beabbb .Append (_gdcbf );_gddab ._eccgd [_cggc ]=struct{}{};_bgddc ,_cabeg :=_eca .GetInt (_dfgfc .Get ("\u0043\u006f\u0075n\u0074"));if !_cabeg {return _da .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"); };*_bgddc =*_bgddc +1;if page ._cdgeb ==nil {_bdcgb :=_aag .Track (_gddab ._gaafc ,_dfgdc );if _bdcgb !=nil {return _bdcgb ;};}else {_ebbfg :=_aag .Track (page ._cdgeb ._ggeed ,_dfgdc );if _ebbfg !=nil {return _ebbfg ;};};_gddab .addObject (_gdcbf );_abeac :=_gddab .addObjects (_cggc ); if _abeac !=nil {return _abeac ;};return nil ;}; // ToPdfObject implements interface PdfModel. func (_abedb *PdfTransformParamsDocMDP )ToPdfObject ()_eca .PdfObject {_cabab :=_eca .MakeDict ();_cabab .SetIfNotNil ("\u0054\u0079\u0070\u0065",_abedb .Type );_cabab .SetIfNotNil ("\u0056",_abedb .V );_cabab .SetIfNotNil ("\u0050",_abedb .P );return _cabab ; };func (_efdec *PdfWriter )adjustXRefAffectedVersion (_cfdaf bool ){if _cfdaf &&_efdec ._dgab .Major ==1&&_efdec ._dgab .Minor < 5{_efdec ._dgab .Minor =5;};};func (_bcced *PdfReader )lookupPageByObject (_babc _eca .PdfObject )(*PdfPage ,error ){return nil ,_da .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064"); };var ErrColorOutOfRange =_da .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065"); // SetPdfKeywords sets the Keywords attribute of the output PDF. func SetPdfKeywords (keywords string ){_ccbac .Lock ();defer _ccbac .Unlock ();_gfcfa =keywords }; // Height returns the height of `rect`. func (_gabfd *PdfRectangle )Height ()float64 {return _de .Abs (_gabfd .Ury -_gabfd .Lly )}; // IsCID returns true if the underlying font is CID. func (_cgbfg *PdfFont )IsCID ()bool {return _cgbfg .baseFields ().isCIDFont ()}; // PdfAnnotationPrinterMark represents PrinterMark annotations. // (Section 12.5.6.20). type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _eca .PdfObject ;};func (_bfeaa *PdfWriter )writeString (_aefc string ){if _bfeaa ._fafa !=nil {return ;};_fbebc ,_dgbff :=_bfeaa ._agbgb .WriteString (_aefc );_bfeaa ._eggaf +=int64 (_fbebc );_bfeaa ._fafa =_dgbff ; }; // GetSubFilter returns SubFilter value or empty string. func (_beecd *pdfSignDictionary )GetSubFilter ()string {_ebaca :=_beecd .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _ebaca ==nil {return "";};if _cfgeg ,_ecbab :=_eca .GetNameVal (_ebaca );_ecbab {return _cfgeg ;};return "";};func _deaab (_cccc *XObjectForm )(*PdfRectangle ,bool ,error ){if _fcga ,_dbdc :=_cccc .BBox .(*_eca .PdfObjectArray ); _dbdc {_dbca ,_fgcbf :=NewPdfRectangle (*_fcga );if _fgcbf !=nil {return nil ,false ,_fgcbf ;};if _fabd ,_eabg :=_cccc .Matrix .(*_eca .PdfObjectArray );_eabg {_caegc ,_efag :=_fabd .ToFloat64Array ();if _efag !=nil {return nil ,false ,_efag ;};_baae :=_gg .IdentityMatrix (); if len (_caegc )==6{_baae =_gg .NewMatrix (_caegc [0],_caegc [1],_caegc [2],_caegc [3],_caegc [4],_caegc [5]);};_dbca .Transform (_baae );return _dbca ,true ,nil ;};return _dbca ,false ,nil ;};return nil ,false ,_da .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0061\u0070\u0070\u0065\u0061\u0072\u0061n\u0063e\u0020\u0042\u0042\u006f\u0078\u0020\u0074y\u0070\u0065"); };type crossReference struct{Type int ; // Type 1 Offset int64 ;Generation int64 ; // Type 2 ObjectNumber int ;Index int ;}; // ImageToRGB converts an image with samples in Separation CS to an image with samples specified in // DeviceRGB CS. func (_gaeg *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_cbge :=_bf .NewReader (img .getBase ());_aaaef :=_bbg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_gaeg .AlternateSpace .GetNumComponents (),nil ,img ._gcgb ,nil ); _abfb :=_bf .NewWriter (_aaaef );_ggebe :=_de .Pow (2,float64 (img .BitsPerComponent ))-1;_ccb .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"); _ccb .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_gaeg .TintTransform );_fcbe :=_gaeg .AlternateSpace .DecodeArray ();var (_dddc uint32 ;_bfdg error ;);for {_dddc ,_bfdg =_cbge .ReadSample (); if _bfdg ==_beg .EOF {break ;};if _bfdg !=nil {return img ,_bfdg ;};_ecgf :=float64 (_dddc )/_ggebe ;_daaddg ,_fcaa :=_gaeg .TintTransform .Evaluate ([]float64 {_ecgf });if _fcaa !=nil {return img ,_fcaa ;};for _fgbc ,_cffac :=range _daaddg {_cdddf :=_bbg .LinearInterpolate (_cffac ,_fcbe [_fgbc *2],_fcbe [_fgbc *2+1],0,1); if _fcaa =_abfb .WriteSample (uint32 (_cdddf *_ggebe ));_fcaa !=nil {return img ,_fcaa ;};};};return _gaeg .AlternateSpace .ImageToRGB (_cggae (&_aaaef ));}; // ToPdfObject implements interface PdfModel. func (_bfe *PdfActionSetOCGState )ToPdfObject ()_eca .PdfObject {_bfe .PdfAction .ToPdfObject ();_cbe :=_bfe ._bee ;_bab :=_cbe .PdfObject .(*_eca .PdfObjectDictionary );_bab .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeSetOCGState )));_bab .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_bfe .State ); _bab .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_bfe .PreserveRB );return _cbe ;}; // GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number. func (_afcdaa *PdfReader )GetIndirectObjectByNumber (number int )(_eca .PdfObject ,error ){_afcdf ,_ebadc :=_afcdaa ._ecfeba .LookupByNumber (number );return _afcdf ,_ebadc ;};func (_eeebe *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _agbe []*PdfFieldSignature ; for _ ,_fdeee :=range _eeebe .AllFields (){switch _cabf :=_fdeee .GetContext ().(type ){case *PdfFieldSignature :_feadd :=_cabf ;_agbe =append (_agbe ,_feadd );};};return _agbe ;}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 4 for a CMYK32 device. func (_fgcfc *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};var _ddead =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":{}}; // PdfShadingType6 is a Coons patch mesh. type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_eca .PdfObjectInteger ;BitsPerComponent *_eca .PdfObjectInteger ;BitsPerFlag *_eca .PdfObjectInteger ;Decode *_eca .PdfObjectArray ;Function []PdfFunction ;}; // DecodeArray returns the range of color component values in DeviceRGB colorspace. func (_bfcaa *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};}; // GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject. func (_eaacdf *PdfPage )GetPageAsIndirectObject ()*_eca .PdfIndirectObject {return _eaacdf ._aedef };type pdfFontType3 struct{fontCommon ;_gcggc *_eca .PdfIndirectObject ; // These fields are specific to Type 3 fonts. CharProcs _eca .PdfObject ;Encoding _eca .PdfObject ;FontBBox _eca .PdfObject ;FontMatrix _eca .PdfObject ;FirstChar _eca .PdfObject ;LastChar _eca .PdfObject ;Widths _eca .PdfObject ;Resources _eca .PdfObject ;_ggcge map[_dbb .CharCode ]float64 ;_aeefc _dbb .TextEncoder ; };func _aedfa (_gafge *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_gafge }}; // Width returns the width of `rect`. func (_dbdcg *PdfRectangle )Width ()float64 {return _de .Abs (_dbdcg .Urx -_dbdcg .Llx )};func (_afeaab *PdfReader )buildOutlineTree (_fecbd _eca .PdfObject ,_ecbfg *PdfOutlineTreeNode ,_fcaeg *PdfOutlineTreeNode ,_gggg map[_eca .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _gggg ==nil {_gggg =map[_eca .PdfObject ]struct{}{}; };_gggg [_fecbd ]=struct{}{};_ecdba ,_fgfb :=_fecbd .(*_eca .PdfIndirectObject );if !_fgfb {return nil ,nil ,_g .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",_fecbd ); };_gacef ,_ebef :=_ecdba .PdfObject .(*_eca .PdfObjectDictionary );if !_ebef {return nil ,nil ,_da .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ccb .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",_gacef ,_ecdba ,_ecdba ); if _gdcdf :=_gacef .Get ("\u0054\u0069\u0074l\u0065");_gdcdf !=nil {_ffede ,_ccebg :=_afeaab .newPdfOutlineItemFromIndirectObject (_ecdba );if _ccebg !=nil {return nil ,nil ,_ccebg ;};_ffede .Parent =_ecbfg ;_ffede .Prev =_fcaeg ;_bfagf :=_eca .ResolveReference (_gacef .Get ("\u0046\u0069\u0072s\u0074")); if _ ,_cegbg :=_gggg [_bfagf ];_bfagf !=nil &&_bfagf !=_ecdba &&!_cegbg {if !_eca .IsNullObject (_bfagf ){_cbfdd ,_fcdecg ,_fdbee :=_afeaab .buildOutlineTree (_bfagf ,&_ffede .PdfOutlineTreeNode ,nil ,_gggg );if _fdbee !=nil {_ccb .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",_fdbee ); }else {_ffede .First =_cbfdd ;_ffede .Last =_fcdecg ;};};};_ebcfc :=_eca .ResolveReference (_gacef .Get ("\u004e\u0065\u0078\u0074"));if _ ,_egeff :=_gggg [_ebcfc ];_ebcfc !=nil &&_ebcfc !=_ecdba &&!_egeff {if !_eca .IsNullObject (_ebcfc ){_cffdf ,_begcc ,_ccaec :=_afeaab .buildOutlineTree (_ebcfc ,_ecbfg ,&_ffede .PdfOutlineTreeNode ,_gggg ); if _ccaec !=nil {_ccb .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",_ccaec ); }else {_ffede .Next =_cffdf ;return &_ffede .PdfOutlineTreeNode ,_begcc ,nil ;};};};return &_ffede .PdfOutlineTreeNode ,&_ffede .PdfOutlineTreeNode ,nil ;};_bcccg ,_baddbe :=_fdeeee (_ecdba );if _baddbe !=nil {return nil ,nil ,_baddbe ;};_bcccg .Parent =_ecbfg ; if _gdbe :=_gacef .Get ("\u0046\u0069\u0072s\u0074");_gdbe !=nil {_gdbe =_eca .ResolveReference (_gdbe );if _ ,_cddgg :=_gggg [_gdbe ];_gdbe !=nil &&_gdbe !=_ecdba &&!_cddgg {_bbebee :=_eca .TraceToDirectObject (_gdbe );if _ ,_bdag :=_bbebee .(*_eca .PdfObjectNull ); !_bdag &&_bbebee !=nil {_fefgf ,_afdgab ,_gcbab :=_afeaab .buildOutlineTree (_gdbe ,&_bcccg .PdfOutlineTreeNode ,nil ,_gggg );if _gcbab !=nil {_ccb .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",_gcbab ); }else {_bcccg .First =_fefgf ;_bcccg .Last =_afdgab ;};};};};return &_bcccg .PdfOutlineTreeNode ,&_bcccg .PdfOutlineTreeNode ,nil ;}; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. The slice should contain a single element. func (_gcac *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_gcac .Base .GetNumComponents ();_afdf :=int (vals [0])*N ; if _afdf < 0||(_afdf +N -1)>=len (_gcac ._eaea ){_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_afdf );return nil ,ErrColorOutOfRange ;};_dgdb :=_gcac ._eaea [_afdf :_afdf +N ]; var _fgfd []float64 ;for _ ,_abae :=range _dgdb {_fgfd =append (_fgfd ,float64 (_abae )/255.0);};_ggfb ,_dgfdaf :=_gcac .Base .ColorFromFloats (_fgfd );if _dgfdaf !=nil {return nil ,_dgfdaf ;};return _ggfb ,nil ;}; // PdfAnnotationTrapNet represents TrapNet annotations. // (Section 12.5.6.21). type PdfAnnotationTrapNet struct{*PdfAnnotation };func (_ggeag *PdfReader )newPdfAnnotationCaretFromDict (_abcg *_eca .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_age :=PdfAnnotationCaret {};_cffb ,_daeg :=_ggeag .newPdfAnnotationMarkupFromDict (_abcg ); if _daeg !=nil {return nil ,_daeg ;};_age .PdfAnnotationMarkup =_cffb ;_age .RD =_abcg .Get ("\u0052\u0044");_age .Sy =_abcg .Get ("\u0053\u0079");return &_age ,nil ;}; // PdfInfo holds document information that will overwrite // document information global variables defined above. type PdfInfo struct{Title *_eca .PdfObjectString ;Author *_eca .PdfObjectString ;Subject *_eca .PdfObjectString ;Keywords *_eca .PdfObjectString ;Creator *_eca .PdfObjectString ;Producer *_eca .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ; Trapped *_eca .PdfObjectName ;_bcfd *_eca .PdfObjectDictionary ;}; // 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 ,*_efg .File ,error ){const _fabab ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065"; _gaeeg ,_agcfb :=_efg .Open (pdfFile );if _agcfb !=nil {return nil ,nil ,_agcfb ;};_bbgbc ,_agcfb :=_cfbdee (_gaeeg ,opts ,true ,_fabab );if _agcfb !=nil {_gaeeg .Close ();return nil ,nil ,_agcfb ;};return _bbgbc ,_gaeeg ,nil ;}; // ToPdfObject implements interface PdfModel. func (_bcf *PdfActionHide )ToPdfObject ()_eca .PdfObject {_bcf .PdfAction .ToPdfObject ();_aeg :=_bcf ._bee ;_dac :=_aeg .PdfObject .(*_eca .PdfObjectDictionary );_dac .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeHide )));_dac .SetIfNotNil ("\u0054",_bcf .T ); _dac .SetIfNotNil ("\u0048",_bcf .H );return _aeg ;}; // Fill populates `form` with values provided by `provider`. func (_fbba *PdfAcroForm )Fill (provider FieldValueProvider )error {return _fbba .fill (provider ,nil )};func (_bdga *PdfReader )newPdfAnnotationPopupFromDict (_caff *_eca .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_afeb :=PdfAnnotationPopup {}; _afeb .Parent =_caff .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_afeb .Open =_caff .Get ("\u004f\u0070\u0065\u006e");return &_afeb ,nil ;};func (_ddaa *pdfCIDFontType2 )baseFields ()*fontCommon {return &_ddaa .fontCommon }; // ToPdfObject implements interface PdfModel. func (_gcdf *PdfAnnotationStamp )ToPdfObject ()_eca .PdfObject {_gcdf .PdfAnnotation .ToPdfObject ();_caa :=_gcdf ._cdc ;_gdf :=_caa .PdfObject .(*_eca .PdfObjectDictionary );_gcdf .PdfAnnotationMarkup .appendToPdfDictionary (_gdf );_gdf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0053\u0074\u0061m\u0070")); _gdf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gcdf .Name );return _caa ;}; // ImageToRGB converts CalRGB colorspace image to RGB and returns the result. func (_cfcb *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_bgda :=_bf .NewReader (img .getBase ());_aagc :=_bbg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_beec :=_bf .NewWriter (_aagc ); _bdfgf :=_de .Pow (2,float64 (img .BitsPerComponent ))-1;_ebge :=make ([]uint32 ,3);var (_daadf error ;_bgbf ,_afbc ,_abaf ,_ggff ,_edecf ,_becg float64 ;);for {_daadf =_bgda .ReadSamples (_ebge );if _daadf ==_beg .EOF {break ;}else if _daadf !=nil {return img ,_daadf ; };_bgbf =float64 (_ebge [0])/_bdfgf ;_afbc =float64 (_ebge [1])/_bdfgf ;_abaf =float64 (_ebge [2])/_bdfgf ;_ggff =_cfcb .Matrix [0]*_de .Pow (_bgbf ,_cfcb .Gamma [0])+_cfcb .Matrix [3]*_de .Pow (_afbc ,_cfcb .Gamma [1])+_cfcb .Matrix [6]*_de .Pow (_abaf ,_cfcb .Gamma [2]); _edecf =_cfcb .Matrix [1]*_de .Pow (_bgbf ,_cfcb .Gamma [0])+_cfcb .Matrix [4]*_de .Pow (_afbc ,_cfcb .Gamma [1])+_cfcb .Matrix [7]*_de .Pow (_abaf ,_cfcb .Gamma [2]);_becg =_cfcb .Matrix [2]*_de .Pow (_bgbf ,_cfcb .Gamma [0])+_cfcb .Matrix [5]*_de .Pow (_afbc ,_cfcb .Gamma [1])+_cfcb .Matrix [8]*_de .Pow (_abaf ,_cfcb .Gamma [2]); _bgbf =3.240479*_ggff +-1.537150*_edecf +-0.498535*_becg ;_afbc =-0.969256*_ggff +1.875992*_edecf +0.041556*_becg ;_abaf =0.055648*_ggff +-0.204043*_edecf +1.057311*_becg ;_bgbf =_de .Min (_de .Max (_bgbf ,0),1.0);_afbc =_de .Min (_de .Max (_afbc ,0),1.0); _abaf =_de .Min (_de .Max (_abaf ,0),1.0);_ebge [0]=uint32 (_bgbf *_bdfgf );_ebge [1]=uint32 (_afbc *_bdfgf );_ebge [2]=uint32 (_abaf *_bdfgf );if _daadf =_beec .WriteSamples (_ebge );_daadf !=nil {return img ,_daadf ;};};return _cggae (&_aagc ),nil ;}; // PdfAnnotationHighlight represents Highlight annotations. // (Section 12.5.6.10). type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eca .PdfObject ;}; // ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't. func (_gedf *PdfFont )ToUnicode ()string {if _gedf .baseFields ()._gegfa ==nil {return "";};return _gedf .baseFields ()._gegfa .Name ();}; // GenerateHashMaps generates DSS hashmaps for Certificates, OCSPs and CRLs to make sure they are unique. func (_gbfg *DSS )GenerateHashMaps ()error {_aagca ,_effe :=_gbfg .generateHashMap (_gbfg .Certs );if _effe !=nil {return _effe ;};_edeeb ,_effe :=_gbfg .generateHashMap (_gbfg .OCSPs );if _effe !=nil {return _effe ;};_fcfd ,_effe :=_gbfg .generateHashMap (_gbfg .CRLs ); if _effe !=nil {return _effe ;};_gbfg ._aaed =_aagca ;_gbfg ._defag =_edeeb ;_gbfg ._ccgf =_fcfd ;return nil ;}; // AllFields returns a flattened list of all fields in the form. func (_ddbef *PdfAcroForm )AllFields ()[]*PdfField {if _ddbef ==nil {return nil ;};var _dcgge []*PdfField ;if _ddbef .Fields !=nil {for _ ,_agaf :=range *_ddbef .Fields {_dcgge =append (_dcgge ,_fccf (_agaf )...);};};return _dcgge ;}; // AddExtension adds the specified extension to the Extensions dictionary. // See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008). func (_bcgeb *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_fgagfe ,_aggge :=_eca .GetDict (_bcgeb ._eeggd .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_aggge {_fgagfe =_eca .MakeDict ();_bcgeb ._eeggd .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_fgagfe ); };_gddae ,_aggge :=_eca .GetDict (_fgagfe .Get (_eca .PdfObjectName (extName )));if !_aggge {_gddae =_eca .MakeDict ();_fgagfe .Set (_eca .PdfObjectName (extName ),_gddae );};if _cbdae ,_ :=_eca .GetNameVal (_gddae .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e")); _cbdae !=baseVersion {_gddae .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_eca .MakeName (baseVersion ));};if _abbb ,_ :=_eca .GetIntVal (_gddae .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c")); _abbb !=extLevel {_gddae .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_eca .MakeInteger (int64 (extLevel )));};}; // ButtonType represents the subtype of a button field, can be one of: // - Checkbox (ButtonTypeCheckbox) // - PushButton (ButtonTypePushButton) // - RadioButton (ButtonTypeRadioButton) type ButtonType int ; // ColorToRGB converts a CalRGB color to an RGB color. func (_cffg *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_fcbd ,_acdfg :=color .(*PdfColorCalRGB );if !_acdfg {_ccb .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 ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gbad :=_fcbd .A ();_afgd :=_fcbd .B ();_agga :=_fcbd .C ();X :=_cffg .Matrix [0]*_de .Pow (_gbad ,_cffg .Gamma [0])+_cffg .Matrix [3]*_de .Pow (_afgd ,_cffg .Gamma [1])+_cffg .Matrix [6]*_de .Pow (_agga ,_cffg .Gamma [2]); Y :=_cffg .Matrix [1]*_de .Pow (_gbad ,_cffg .Gamma [0])+_cffg .Matrix [4]*_de .Pow (_afgd ,_cffg .Gamma [1])+_cffg .Matrix [7]*_de .Pow (_agga ,_cffg .Gamma [2]);Z :=_cffg .Matrix [2]*_de .Pow (_gbad ,_cffg .Gamma [0])+_cffg .Matrix [5]*_de .Pow (_afgd ,_cffg .Gamma [1])+_cffg .Matrix [8]*_de .Pow (_agga ,_cffg .Gamma [2]); _gaeb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_fbad :=-0.969256*X +1.875992*Y +0.041556*Z ;_afdcf :=0.055648*X +-0.204043*Y +1.057311*Z ;_gaeb =_de .Min (_de .Max (_gaeb ,0),1.0);_fbad =_de .Min (_de .Max (_fbad ,0),1.0);_afdcf =_de .Min (_de .Max (_afdcf ,0),1.0); return NewPdfColorDeviceRGB (_gaeb ,_fbad ,_afdcf ),nil ;}; // ToImage converts an object to an Image which can be transformed or saved out. // The image data is decoded and the Image returned. func (_affefb *XObjectImage )ToImage ()(*Image ,error ){_bdbea :=&Image {};if _affefb .Height ==nil {return nil ,_da .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067"); };_bdbea .Height =*_affefb .Height ;if _affefb .Width ==nil {return nil ,_da .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_bdbea .Width =*_affefb .Width ;if _affefb .BitsPerComponent ==nil {switch _affefb .Filter .(type ){case *_eca .CCITTFaxEncoder ,*_eca .JBIG2Encoder :_bdbea .BitsPerComponent =1; case *_eca .LZWEncoder ,*_eca .RunLengthEncoder :_bdbea .BitsPerComponent =8;default:return nil ,_da .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 {_bdbea .BitsPerComponent =*_affefb .BitsPerComponent ;};_bdbea .ColorComponents =_affefb .ColorSpace .GetNumComponents ();_affefb ._gddeaa .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_eca .MakeInteger (int64 (_bdbea .ColorComponents ))); _ebedgd ,_bfdga :=_eca .DecodeStream (_affefb ._gddeaa );if _bfdga !=nil {return nil ,_bfdga ;};_bdbea .Data =_ebedgd ;if _affefb .Decode !=nil {_adfbb ,_dbfge :=_affefb .Decode .(*_eca .PdfObjectArray );if !_dbfge {_ccb .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074"); return nil ,_da .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_cfbc ,_gbcga :=_adfbb .ToFloat64Array ();if _gbcga !=nil {return nil ,_gbcga ;};switch _affefb .ColorSpace .(type ){case *PdfColorspaceDeviceCMYK :_abffag :=_affefb .ColorSpace .DecodeArray (); if _abffag [0]==_cfbc [0]&&_abffag [1]==_cfbc [1]&&_abffag [2]==_cfbc [2]&&_abffag [3]==_cfbc [3]{_bdbea ._cfgaa =_cfbc ;};default:_bdbea ._cfgaa =_cfbc ;};};return _bdbea ,nil ;}; // 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 (_dbdgf *XObjectForm )SetContentStream (content []byte ,encoder _eca .StreamEncoder )error {_aaaedd :=content ;if encoder ==nil {if _dbdgf .Filter !=nil {encoder =_dbdgf .Filter ;}else {encoder =_eca .NewRawEncoder ();};};_adbc ,_cecee :=encoder .EncodeBytes (_aaaedd ); if _cecee !=nil {return _cecee ;};_aaaedd =_adbc ;_dbdgf .Stream =_aaaedd ;_dbdgf .Filter =encoder ;return nil ;}; // GetNameDictionary returns the Names entry in the PDF catalog. // See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008). func (_bfdb *PdfReader )GetNameDictionary ()(_eca .PdfObject ,error ){_aacdb :=_eca .ResolveReference (_bfdb ._affc .Get ("\u004e\u0061\u006de\u0073"));if _aacdb ==nil {return nil ,nil ;};if !_bfdb ._gggcg {_afbdg :=_bfdb .traverseObjectData (_aacdb ); if _afbdg !=nil {return nil ,_afbdg ;};};return _aacdb ,nil ;}; // ImageToRGB converts an image in CMYK32 colorspace to an RGB image. func (_abaa *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_ccb .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_ccb .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 ); _ccb .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_ccb .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width ); _cfba ,_deb :=_bbg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._gcgb ,img ._cfgaa );if _deb !=nil {return Image {},_deb ;};_fcgb ,_deb :=_bbg .NRGBAConverter .Convert (_cfba );if _deb !=nil {return Image {},_deb ; };return _cggae (_fcgb .Base ()),nil ;};func (_egfbf *PdfWriter )updateObjectNumbers (){_gedfg :=_egfbf .ObjNumOffset ;_fgggd :=0;for _ ,_eddcg :=range _egfbf ._daecf {_ebefe :=int64 (_fgggd +1+_gedfg );_ecgfc :=true ;if _egfbf ._ccdgb {if _bcaff ,_aaccge :=_egfbf ._abfag [_eddcg ]; _aaccge {_ebefe =_bcaff ;_ecgfc =false ;};};switch _fgaaa :=_eddcg .(type ){case *_eca .PdfIndirectObject :_fgaaa .ObjectNumber =_ebefe ;_fgaaa .GenerationNumber =0;case *_eca .PdfObjectStream :_fgaaa .ObjectNumber =_ebefe ;_fgaaa .GenerationNumber =0; case *_eca .PdfObjectStreams :_fgaaa .ObjectNumber =_ebefe ;_fgaaa .GenerationNumber =0;default:_ccb .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",_fgaaa ); continue ;};if _ecgfc {_fgggd ++;};};_gbbbda :=func (_bcgdg _eca .PdfObject )int64 {switch _dgffb :=_bcgdg .(type ){case *_eca .PdfIndirectObject :return _dgffb .ObjectNumber ;case *_eca .PdfObjectStream :return _dgffb .ObjectNumber ;case *_eca .PdfObjectStreams :return _dgffb .ObjectNumber ; };return 0;};_gac .SliceStable (_egfbf ._daecf ,func (_bbfdg ,_dfbgg int )bool {return _gbbbda (_egfbf ._daecf [_bbfdg ])< _gbbbda (_egfbf ._daecf [_dfbgg ])});};func _ffgea (_dbeef *_eca .PdfObjectDictionary )(*PdfShadingType7 ,error ){_fbadde :=PdfShadingType7 {}; _eacee :=_dbeef .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _eacee ==nil {_ccb .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 ;};_fafecf ,_affea :=_eacee .(*_eca .PdfObjectInteger );if !_affea {_ccb .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",_eacee ); return nil ,_eca .ErrTypeError ;};_fbadde .BitsPerCoordinate =_fafecf ;_eacee =_dbeef .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _eacee ==nil {_ccb .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 ;};_fafecf ,_affea =_eacee .(*_eca .PdfObjectInteger );if !_affea {_ccb .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",_eacee ); return nil ,_eca .ErrTypeError ;};_fbadde .BitsPerComponent =_fafecf ;_eacee =_dbeef .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _eacee ==nil {_ccb .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 ;};_fafecf ,_affea =_eacee .(*_eca .PdfObjectInteger );if !_affea {_ccb .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",_eacee ); return nil ,_eca .ErrTypeError ;};_fbadde .BitsPerComponent =_fafecf ;_eacee =_dbeef .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _eacee ==nil {_ccb .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 ;};_adga ,_affea :=_eacee .(*_eca .PdfObjectArray );if !_affea {_ccb .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",_eacee ); return nil ,_eca .ErrTypeError ;};_fbadde .Decode =_adga ;if _egfa :=_dbeef .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_egfa !=nil {_fbadde .Function =[]PdfFunction {};if _ddgc ,_abbceg :=_egfa .(*_eca .PdfObjectArray );_abbceg {for _ ,_abdbd :=range _ddgc .Elements (){_ecdde ,_abcga :=_febaf (_abdbd ); if _abcga !=nil {_ccb .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",_abcga );return nil ,_abcga ;};_fbadde .Function =append (_fbadde .Function ,_ecdde ); };}else {_adfb ,_ecbgb :=_febaf (_egfa );if _ecbgb !=nil {_ccb .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",_ecbgb );return nil ,_ecbgb ; };_fbadde .Function =append (_fbadde .Function ,_adfb );};};return &_fbadde ,nil ;}; // EncryptOptions represents encryption options for an output PDF. type EncryptOptions struct{Permissions _bb .Permissions ;Algorithm EncryptionAlgorithm ;}; // NewPdfAnnotationSquiggly returns a new text squiggly annotation. func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_dgag :=NewPdfAnnotation ();_acdf :=&PdfAnnotationSquiggly {};_acdf .PdfAnnotation =_dgag ;_acdf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dgag .SetContext (_acdf );return _acdf ;}; // ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb). func (_dgfd *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gbea ,_bbcb :=_eca .GetNumbersAsFloat (objects ); if _bbcb !=nil {return nil ,_bbcb ;};return _dgfd .ColorFromFloats (_gbea );}; // 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 (_gfce *PdfColorspaceLab )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_edgb ,_agdf :=_eca .GetNumbersAsFloat (objects ); if _agdf !=nil {return nil ,_agdf ;};return _gfce .ColorFromFloats (_edgb );};func _agcee (_afcab string )(string ,error ){var _dedae _dd .Buffer ;_dedae .WriteString (_afcab );_bgbe :=make ([]byte ,8+16);_fdcfb :=_d .Now ().UTC ().UnixNano ();_bd .BigEndian .PutUint64 (_bgbe ,uint64 (_fdcfb )); _ ,_gcbeg :=_ef .Read (_bgbe [8:]);if _gcbeg !=nil {return "",_gcbeg ;};_dedae .WriteString (_c .EncodeToString (_bgbe ));return _dedae .String (),nil ;};func (_gdfb *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064"; }; // ToPdfObject returns the PDF representation of the function. func (_dffda *PdfFunctionType3 )ToPdfObject ()_eca .PdfObject {_fgbcb :=_eca .MakeDict ();_fgbcb .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eca .MakeInteger (3));_cagaa :=&_eca .PdfObjectArray {};for _ ,_adbd :=range _dffda .Domain {_cagaa .Append (_eca .MakeFloat (_adbd )); };_fgbcb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cagaa );if _dffda .Range !=nil {_agdd :=&_eca .PdfObjectArray {};for _ ,_gccg :=range _dffda .Range {_agdd .Append (_eca .MakeFloat (_gccg ));};_fgbcb .Set ("\u0052\u0061\u006eg\u0065",_agdd );};if _dffda .Functions !=nil {_bffa :=&_eca .PdfObjectArray {}; for _ ,_adagb :=range _dffda .Functions {_bffa .Append (_adagb .ToPdfObject ());};_fgbcb .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_bffa );};if _dffda .Bounds !=nil {_ecegg :=&_eca .PdfObjectArray {};for _ ,_egfc :=range _dffda .Bounds {_ecegg .Append (_eca .MakeFloat (_egfc )); };_fgbcb .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_ecegg );};if _dffda .Encode !=nil {_ccgd :=&_eca .PdfObjectArray {};for _ ,_gcda :=range _dffda .Encode {_ccgd .Append (_eca .MakeFloat (_gcda ));};_fgbcb .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_ccgd ); };if _dffda ._cddb !=nil {_dffda ._cddb .PdfObject =_fgbcb ;return _dffda ._cddb ;};return _fgbcb ;}; // 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 };}; // PdfActionNamed represents a named action. type PdfActionNamed struct{*PdfAction ;N _eca .PdfObject ;};func (_efea *DSS )add (_ccab *[]*_eca .PdfObjectStream ,_dgfa map[string ]*_eca .PdfObjectStream ,_gabgf [][]byte )([]*_eca .PdfObjectStream ,error ){_edag :=make ([]*_eca .PdfObjectStream ,0,len (_gabgf )); for _ ,_ddeb :=range _gabgf {_dcea ,_bgefae :=_dggdf (_ddeb );if _bgefae !=nil {return nil ,_bgefae ;};_fcdd ,_cada :=_dgfa [string (_dcea )];if !_cada {_fcdd ,_bgefae =_eca .MakeStream (_ddeb ,_eca .NewRawEncoder ());if _bgefae !=nil {return nil ,_bgefae ; };_dgfa [string (_dcea )]=_fcdd ;*_ccab =append (*_ccab ,_fcdd );};_edag =append (_edag ,_fcdd );};return _edag ,nil ;};func (_egcgg *LTV )getCRLs (_agedg []*_ad .Certificate )([][]byte ,error ){_gcebb :=make ([][]byte ,0,len (_agedg ));for _ ,_dfcdf :=range _agedg {for _ ,_edfc :=range _dfcdf .CRLDistributionPoints {if _egcgg .CertClient .IsCA (_dfcdf ){continue ; };_dace ,_bcdcg :=_egcgg .CRLClient .MakeRequest (_edfc ,_dfcdf );if _bcdcg !=nil {_ccb .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",_bcdcg );continue ; };_gcebb =append (_gcebb ,_dace );};};return _gcebb ,nil ;}; // NewPdfShadingType2 creates an empty shading type 2 dictionary. func NewPdfShadingType2 ()*PdfShadingType2 {_cdfg :=&PdfShadingType2 {};_cdfg .PdfShading =&PdfShading {};_cdfg .PdfShading ._dcbe =_eca .MakeIndirectObject (_eca .MakeDict ());_cdfg .PdfShading ._abefa =_cdfg ;return _cdfg ;}; // 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 (_gfdgc *CompliancePdfReader )error ;}; // PdfActionSound represents a sound action. type PdfActionSound struct{*PdfAction ;Sound _eca .PdfObject ;Volume _eca .PdfObject ;Synchronous _eca .PdfObject ;Repeat _eca .PdfObject ;Mix _eca .PdfObject ;}; // 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 {_afda ,_bceg :=NewStandard14Font (basefont );if _bceg !=nil {panic (_g .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 _afda ;}; // 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 (_bdee *PdfPageResources )GetFontByName (keyName _eca .PdfObjectName )(_eca .PdfObject ,bool ){if _bdee .Font ==nil {return nil ,false ;};_fcfdf ,_ggdda :=_eca .TraceToDirectObject (_bdee .Font ).(*_eca .PdfObjectDictionary );if !_ggdda {_ccb .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",_eca .TraceToDirectObject (_bdee .Font )); return nil ,false ;};if _gbeee :=_fcfdf .Get (keyName );_gbeee !=nil {return _gbeee ,true ;};return nil ,false ;};func _dggdf (_ebeg []byte )([]byte ,error ){_cdfd :=_bdf .New ();if _ ,_gaegg :=_beg .Copy (_cdfd ,_dd .NewReader (_ebeg ));_gaegg !=nil {return nil ,_gaegg ; };return _cdfd .Sum (nil ),nil ;}; // SetPdfCreator sets the Creator attribute of the output PDF. func SetPdfCreator (creator string ){_ccbac .Lock ();defer _ccbac .Unlock ();_dceag =creator };func (_dggab *LTV )buildCertChain (_aeaaa ,_gcgdf []*_ad .Certificate )([]*_ad .Certificate ,map[string ]*_ad .Certificate ,error ){_bffg :=map[string ]*_ad .Certificate {}; for _ ,_gfdf :=range _aeaaa {_bffg [_gfdf .Subject .CommonName ]=_gfdf ;};_edgaa :=_aeaaa ;for _ ,_cbgda :=range _gcgdf {_bbgd :=_cbgda .Subject .CommonName ;if _ ,_baecdf :=_bffg [_bbgd ];_baecdf {continue ;};_bffg [_bbgd ]=_cbgda ;_edgaa =append (_edgaa ,_cbgda ); };if len (_edgaa )==0{return nil ,nil ,ErrSignNoCertificates ;};var _dbgd error ;for _daed :=_edgaa [0];_daed !=nil &&!_dggab .CertClient .IsCA (_daed );{_bdfbd ,_fefba :=_bffg [_daed .Issuer .CommonName ];if !_fefba {if _bdfbd ,_dbgd =_dggab .CertClient .GetIssuer (_daed ); _dbgd !=nil {_ccb .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",_dbgd ); break ;};_bffg [_daed .Issuer .CommonName ]=_bdfbd ;_edgaa =append (_edgaa ,_bdfbd );};_daed =_bdfbd ;};return _edgaa ,_bffg ,nil ;}; // PdfColorDeviceGray represents a grayscale color value that shall be represented by a single number in the // range 0.0 to 1.0 where 0.0 corresponds to black and 1.0 to white. type PdfColorDeviceGray float64 ;func (_efaa *PdfAppender )replaceObject (_ffeb ,_feb _eca .PdfObject ){switch _aebcg :=_ffeb .(type ){case *_eca .PdfIndirectObject :_efaa ._ccbc [_feb ]=_aebcg .ObjectNumber ;case *_eca .PdfObjectStream :_efaa ._ccbc [_feb ]=_aebcg .ObjectNumber ; };};func (_cddcg *PdfReader )resolveReference (_aafag *_eca .PdfObjectReference )(_eca .PdfObject ,bool ,error ){_befge ,_fggd :=_cddcg ._ecfeba .ObjCache [int (_aafag .ObjectNumber )];if !_fggd {_ccb .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_aafag ); _ccgeb ,_ccfd :=_cddcg ._ecfeba .LookupByReference (*_aafag );if _ccfd !=nil {return nil ,false ,_ccfd ;};_cddcg ._ecfeba .ObjCache [int (_aafag .ObjectNumber )]=_ccgeb ;return _ccgeb ,false ,nil ;};return _befge ,true ,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 ;_cddb *_eca .PdfIndirectObject ;}; // PdfFilespec represents a file specification which can either refer to an external or embedded file. type PdfFilespec struct{Type _eca .PdfObject ;FS _eca .PdfObject ;F _eca .PdfObject ;UF _eca .PdfObject ;DOS _eca .PdfObject ;Mac _eca .PdfObject ;Unix _eca .PdfObject ;ID _eca .PdfObject ;V _eca .PdfObject ;EF _eca .PdfObject ;RF _eca .PdfObject ;Desc _eca .PdfObject ; CI _eca .PdfObject ;_ggdg _eca .PdfObject ;}; // SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current // document revision. func (_fcbc *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_fcbc .updateObjectsDeep (dss .ToPdfObject (),nil );};_fcbc ._adff =dss ;}; // GetDescent returns the Descent of the font `descriptor`. func (_egfb *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _eca .GetNumberAsFloat (_egfb .Descent );}; // GetFillImage get attached model.Image in push button. func (_baad *PdfFieldButton )GetFillImage ()*Image {if _baad .IsPush (){return _baad ._fbffd ;};return nil ;}; // ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which // replaces the original AcroForm. func (_gcgg *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_gcgg .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_gcgg ._edcc =acroForm ;}; // NewPdfColorCalGray returns a new CalGray color. func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_gedac :=PdfColorCalGray (grayVal );return &_gedac ;};func _aeda (_beebe *_eca .PdfObjectStream )(*PdfFunctionType4 ,error ){_edgg :=&PdfFunctionType4 {};_edgg ._bdgbf =_beebe ;_dggd :=_beebe .PdfObjectDictionary ; _dggaf ,_fbdab :=_eca .TraceToDirectObject (_dggd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eca .PdfObjectArray );if !_fbdab {_ccb .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_da .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 _dggaf .Len ()%2!=0{_ccb .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_da .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_gfed ,_effdf :=_dggaf .ToFloat64Array (); if _effdf !=nil {return nil ,_effdf ;};_edgg .Domain =_gfed ;_dggaf ,_fbdab =_eca .TraceToDirectObject (_dggd .Get ("\u0052\u0061\u006eg\u0065")).(*_eca .PdfObjectArray );if _fbdab {if _dggaf .Len ()< 0||_dggaf .Len ()%2!=0{return nil ,_da .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065"); };_afdcg ,_dbge :=_dggaf .ToFloat64Array ();if _dbge !=nil {return nil ,_dbge ;};_edgg .Range =_afdcg ;};_cdgga ,_effdf :=_eca .DecodeStream (_beebe );if _effdf !=nil {return nil ,_effdf ;};_edgg ._aeafdg =_cdgga ;_fcecf :=_dad .NewPSParser (_cdgga );_fcdc ,_effdf :=_fcecf .Parse (); if _effdf !=nil {return nil ,_effdf ;};_edgg .Program =_fcdc ;return _edgg ,nil ;}; // NewPdfActionNamed returns a new "named" action. func NewPdfActionNamed ()*PdfActionNamed {_ged :=NewPdfAction ();_fdd :=&PdfActionNamed {};_fdd .PdfAction =_ged ;_ged .SetContext (_fdd );return _fdd ;};func (_gadaa *PdfWriter )writeObjects (){_ccb .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_gadaa ._daecf )); _gadaa ._eaad =make (map[int ]crossReference );_gadaa ._eaad [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};if _gadaa ._acdbf .ObjectMap !=nil {for _daedf ,_dfccd :=range _gadaa ._acdbf .ObjectMap {if _daedf ==0{continue ;};if _dfccd .XType ==_eca .XrefTypeObjectStream {_aaedfc :=crossReference {Type :2,ObjectNumber :_dfccd .OsObjNumber ,Index :_dfccd .OsObjIndex }; _gadaa ._eaad [_daedf ]=_aaedfc ;};if _dfccd .XType ==_eca .XrefTypeTableEntry {_ebbba :=crossReference {Type :1,ObjectNumber :_dfccd .ObjectNumber ,Offset :_dfccd .Offset };_gadaa ._eaad [_daedf ]=_ebbba ;};};};}; // 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 *_eca .PdfIndirectObject ;SV *_eca .PdfIndirectObject ;}; // 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{_fbgb PdfModel ;_geaa *_eca .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_eca .PdfObjectName ;T *_eca .PdfObjectString ;TU *_eca .PdfObjectString ;TM *_eca .PdfObjectString ;Ff *_eca .PdfObjectInteger ; V _eca .PdfObject ;DV _eca .PdfObject ;AA _eca .PdfObject ;VariableText *VariableText ;};func _afec (_fgebc _eca .PdfObject )(*PdfColorspaceCalGray ,error ){_caga :=NewPdfColorspaceCalGray ();if _bdbg ,_dceg :=_fgebc .(*_eca .PdfIndirectObject );_dceg {_caga ._aaba =_bdbg ; };_fgebc =_eca .TraceToDirectObject (_fgebc );_ebbc ,_gfc :=_fgebc .(*_eca .PdfObjectArray );if !_gfc {return nil ,_g .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _ebbc .Len ()!=2{return nil ,_g .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"); };_fgebc =_eca .TraceToDirectObject (_ebbc .Get (0));_ebcf ,_gfc :=_fgebc .(*_eca .PdfObjectName );if !_gfc {return nil ,_g .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 *_ebcf !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_g .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_fgebc =_eca .TraceToDirectObject (_ebbc .Get (1)); _cece ,_gfc :=_fgebc .(*_eca .PdfObjectDictionary );if !_gfc {return nil ,_g .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");}; _fgebc =_cece .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_fgebc =_eca .TraceToDirectObject (_fgebc );_accge ,_gfc :=_fgebc .(*_eca .PdfObjectArray );if !_gfc {return nil ,_g .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 _accge .Len ()!=3{return nil ,_g .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");};_fcff ,_begb :=_accge .GetAsFloat64Slice (); if _begb !=nil {return nil ,_begb ;};_caga .WhitePoint =_fcff ;_fgebc =_cece .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _fgebc !=nil {_fgebc =_eca .TraceToDirectObject (_fgebc );_gacaf ,_ggae :=_fgebc .(*_eca .PdfObjectArray ); if !_ggae {return nil ,_g .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 _gacaf .Len ()!=3{return nil ,_g .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"); };_facae ,_cfge :=_gacaf .GetAsFloat64Slice ();if _cfge !=nil {return nil ,_cfge ;};_caga .BlackPoint =_facae ;};_fgebc =_cece .Get ("\u0047\u0061\u006dm\u0061");if _fgebc !=nil {_fgebc =_eca .TraceToDirectObject (_fgebc );_efff ,_fcfbc :=_eca .GetNumberAsFloat (_fgebc ); if _fcfbc !=nil {return nil ,_g .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");};_caga .Gamma =_efff ;};return _caga ,nil ;}; // GetPdfVersion gets the version of the PDF used within this document. func (_dece *PdfWriter )GetPdfVersion ()string {return _dece .getPdfVersion ()}; // GetPdfName returns the PDF name used to indicate the border style. // (Table 166 p. 395). func (_cgf *BorderStyle )GetPdfName ()string {switch *_cgf {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055"; };return "";}; // 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 (_gagg *pdfFontType0 )subsetRegistered ()error {_gbgb ,_eebde :=_gagg .DescendantFont ._dbgb .(*pdfCIDFontType2 ); if !_eebde {_ccb .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",_gagg .DescendantFont );return nil ;};if _gbgb ==nil {return nil ; };if _gbgb ._ccec ==nil {_ccb .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 _gagg ._gdcea ==nil {_ccb .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 ;};_gedgc ,_eebde :=_eca .GetStream (_gbgb ._ccec .FontFile2 );if !_eebde {_ccb .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 _da .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_dccfe ,_cfcd :=_eca .DecodeStream (_gedgc );if _cfcd !=nil {_ccb .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_cfcd ); return _cfcd ;};_abgb ,_cfcd :=_dg .Parse (_dd .NewReader (_dccfe ));if _cfcd !=nil {_ccb .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 (_gedgc .Stream )); return _cfcd ;};var _fdbff []rune ;var _fbacd *_dg .Font ;switch _dacae :=_gagg ._gdcea .(type ){case *_dbb .TrueTypeFontEncoder :_fdbff =_dacae .RegisteredRunes ();_fbacd ,_cfcd =_abgb .SubsetKeepRunes (_fdbff );if _cfcd !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cfcd ); return _cfcd ;};_dacae .SubsetRegistered ();case *_dbb .IdentityEncoder :_fdbff =_dacae .RegisteredRunes ();_gebf :=make ([]_dg .GlyphIndex ,len (_fdbff ));for _eeed ,_cbefe :=range _fdbff {_gebf [_eeed ]=_dg .GlyphIndex (_cbefe );};_fbacd ,_cfcd =_abgb .SubsetKeepIndices (_gebf ); if _cfcd !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cfcd );return _cfcd ;};case _dbb .SimpleEncoder :_fbeg :=_dacae .Charcodes ();for _ ,_fdcg :=range _fbeg {_dddd ,_becaf :=_dacae .CharcodeToRune (_fdcg );if !_becaf {_ccb .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",_fdcg ); continue ;};_fdbff =append (_fdbff ,_dddd );};default:return _g .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",_gagg ._gdcea ); };var _gaafg _dd .Buffer ;_cfcd =_fbacd .Write (&_gaafg );if _cfcd !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cfcd );return _cfcd ;};if _gagg ._gegfa !=nil {_aabc :=make (map[_ded .CharCode ]rune ,len (_fdbff ));for _ ,_efcea :=range _fdbff {_efbda ,_afedg :=_gagg ._gdcea .RuneToCharcode (_efcea ); if !_afedg {continue ;};_aabc [_ded .CharCode (_efbda )]=_efcea ;};_gagg ._gegfa =_ded .NewToUnicodeCMap (_aabc );};_gedgc ,_cfcd =_eca .MakeStream (_gaafg .Bytes (),_eca .NewFlateEncoder ());if _cfcd !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cfcd ); return _cfcd ;};_gedgc .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_eca .MakeInteger (int64 (_gaafg .Len ())));if _agfb ,_dedgb :=_eca .GetStream (_gbgb ._ccec .FontFile2 );_dedgb {*_agfb =*_gedgc ;}else {_gbgb ._ccec .FontFile2 =_gedgc ;};_gfac :=_ccda (); if len (_gagg ._daac )> 0{_gagg ._daac =_abdd (_gagg ._daac ,_gfac );};if len (_gbgb ._daac )> 0{_gbgb ._daac =_abdd (_gbgb ._daac ,_gfac );};if len (_gagg ._agdaa )> 0{_gagg ._agdaa =_abdd (_gagg ._agdaa ,_gfac );};if _gbgb ._ccec !=nil {_bebc ,_dbdcd :=_eca .GetName (_gbgb ._ccec .FontName ); if _dbdcd &&len (_bebc .String ())> 0{_bcccf :=_abdd (_bebc .String (),_gfac );_gbgb ._ccec .FontName =_eca .MakeName (_bcccf );};};return nil ;}; // NewPdfAnnotationWatermark returns a new watermark annotation. func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_fca :=NewPdfAnnotation ();_fddf :=&PdfAnnotationWatermark {};_fddf .PdfAnnotation =_fca ;_fca .SetContext (_fddf );return _fddf ;}; // NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values. func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_eada :=PdfColorDeviceRGB {r ,g ,b };return &_eada ;};func _abcgdc (_cfecb _eca .PdfObject )[]*_eca .PdfObjectStream {if _cfecb ==nil {return nil ;};_dfcbbc ,_febfg :=_eca .GetArray (_cfecb ); if !_febfg ||_dfcbbc .Len ()==0{return nil ;};_fbdf :=make ([]*_eca .PdfObjectStream ,0,_dfcbbc .Len ());for _ ,_feceb :=range _dfcbbc .Elements (){if _abgbb ,_gbec :=_eca .GetStream (_feceb );_gbec {_fbdf =append (_fbdf ,_abgbb );};};return _fbdf ;};func (_dafaa *PdfWriter )writeOutputIntents ()error {if len (_dafaa ._bdgggc )==0{return nil ; };_acagb :=make ([]_eca .PdfObject ,len (_dafaa ._bdgggc ));for _acdd ,_gadfg :=range _dafaa ._bdgggc {_dgbe :=_gadfg .ToPdfObject ();_acagb [_acdd ]=_eca .MakeIndirectObject (_dgbe );};_cfad :=_eca .MakeIndirectObject (_eca .MakeArray (_acagb ...));_dafaa ._eeggd .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_cfad ); if _geegd :=_dafaa .addObjects (_cfad );_geegd !=nil {return _geegd ;};return nil ;}; // HasXObjectByName checks if an XObject with a specified keyName is defined. func (_adbab *PdfPageResources )HasXObjectByName (keyName _eca .PdfObjectName )bool {_fefcb ,_ :=_adbab .GetXObjectByName (keyName );return _fefcb !=nil ;}; // ColorFromPdfObjects returns a new PdfColor based on the input slice of color // components. The slice should contain three PdfObjectFloat elements representing // the A, B and C components of the color. func (_dgeb *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_abbc ,_fdaf :=_eca .GetNumbersAsFloat (objects ); if _fdaf !=nil {return nil ,_fdaf ;};return _dgeb .ColorFromFloats (_abbc );}; // NewPdfAction returns an initialized generic PDF action model. func NewPdfAction ()*PdfAction {_gag :=&PdfAction {};_gag ._bee =_eca .MakeIndirectObject (_eca .MakeDict ());return _gag ;}; // ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace. /* Format: [/DeviceN names alternateSpace tintTransform] or: [/DeviceN names alternateSpace tintTransform attributes] */ func (_cedb *PdfColorspaceDeviceN )ToPdfObject ()_eca .PdfObject {_feccf :=_eca .MakeArray (_eca .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_feccf .Append (_cedb .ColorantNames );_feccf .Append (_cedb .AlternateSpace .ToPdfObject ());_feccf .Append (_cedb .TintTransform .ToPdfObject ()); if _cedb .Attributes !=nil {_feccf .Append (_cedb .Attributes .ToPdfObject ());};if _cedb ._bded !=nil {_cedb ._bded .PdfObject =_feccf ;return _cedb ._bded ;};return _feccf ;}; // Val returns the color value. func (_faba *PdfColorDeviceGray )Val ()float64 {return float64 (*_faba )}; // 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 (_dbea *LTV )Enable (sig *PdfSignature ,extraCerts []*_ad .Certificate )error {if _addcc :=_dbea .validateSig (sig );_addcc !=nil {return _addcc ;};_efbfc ,_aeeg :=_dbea .generateVRIKey (sig );if _aeeg !=nil {return _aeeg ;};if _ ,_afcaa :=_dbea ._eebfab .VRI [_efbfc ]; _afcaa &&_dbea .SkipExisting {return nil ;};_gfag ,_aeeg :=sig .GetCerts ();if _aeeg !=nil {return _aeeg ;};return _dbea .enable (_gfag ,extraCerts ,_efbfc );}; // 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 (_cgeb *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_da .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"); };_fddfa :=&PdfColorPattern {};_fbee ,_gecbd :=objects [len (objects )-1].(*_eca .PdfObjectName );if !_gecbd {_ccb .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 ;};_fddfa .PatternName =*_fbee ;if len (objects )> 1{_ggg :=objects [0:len (objects )-1];if _cgeb .UnderlyingCS ==nil {_ccb .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 ,_da .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_fggg ,_gbdgg :=_cgeb .UnderlyingCS .ColorFromPdfObjects (_ggg );if _gbdgg !=nil {_ccb .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",_gbdgg ); return nil ,_gbdgg ;};_fddfa .Color =_fggg ;};return _fddfa ,nil ;};type fontCommon struct{_daac string ;_cfbe string ;_agdaa string ;_effb _eca .PdfObject ;_gegfa *_ded .CMap ;_ccec *PdfFontDescriptor ;_dccaa int64 ;}; // GetCharMetrics returns the char metrics for character code `code`. func (_efaf pdfCIDFontType2 )GetCharMetrics (code _dbb .CharCode )(_ffd .CharMetrics ,bool ){if _ccbgf ,_bgdb :=_efaf ._bdbc [code ];_bgdb {return _ffd .CharMetrics {Wx :_ccbgf },true ;};_dcbcc :=rune (code );_fbbee ,_dgecbg :=_efaf ._dgdag [_dcbcc ];if !_dgecbg {_fbbee =int (_efaf ._bbcc ); };return _ffd .CharMetrics {Wx :float64 (_fbbee )},true ;};func _gfga (_bggf *_eca .PdfObjectDictionary )(*PdfShadingType4 ,error ){_bdaaf :=PdfShadingType4 {};_eecbd :=_bggf .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065"); if _eecbd ==nil {_ccb .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 ;};_cfcec ,_eedfg :=_eecbd .(*_eca .PdfObjectInteger );if !_eedfg {_ccb .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",_eecbd ); return nil ,_eca .ErrTypeError ;};_bdaaf .BitsPerCoordinate =_cfcec ;_eecbd =_bggf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _eecbd ==nil {_ccb .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 ;};_cfcec ,_eedfg =_eecbd .(*_eca .PdfObjectInteger );if !_eedfg {_ccb .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",_eecbd ); return nil ,_eca .ErrTypeError ;};_bdaaf .BitsPerComponent =_cfcec ;_eecbd =_bggf .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _eecbd ==nil {_ccb .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 ;};_cfcec ,_eedfg =_eecbd .(*_eca .PdfObjectInteger );if !_eedfg {_ccb .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",_eecbd ); return nil ,_eca .ErrTypeError ;};_bdaaf .BitsPerComponent =_cfcec ;_eecbd =_bggf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _eecbd ==nil {_ccb .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 ;};_addb ,_eedfg :=_eecbd .(*_eca .PdfObjectArray );if !_eedfg {_ccb .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",_eecbd ); return nil ,_eca .ErrTypeError ;};_bdaaf .Decode =_addb ;_eecbd =_bggf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _eecbd ==nil {_ccb .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 ;};_bdaaf .Function =[]PdfFunction {};if _gcccg ,_cecfb :=_eecbd .(*_eca .PdfObjectArray );_cecfb {for _ ,_adfe :=range _gcccg .Elements (){_gebgb ,_bfabc :=_febaf (_adfe );if _bfabc !=nil {_ccb .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",_bfabc ); return nil ,_bfabc ;};_bdaaf .Function =append (_bdaaf .Function ,_gebgb );};}else {_fffaa ,_dcedbg :=_febaf (_eecbd );if _dcedbg !=nil {_ccb .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",_dcedbg ); return nil ,_dcedbg ;};_bdaaf .Function =append (_bdaaf .Function ,_fffaa );};return &_bdaaf ,nil ;}; // ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z). func (_fbfd *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_gce :=_bf .NewReader (img .getBase ());_bfed :=_bbg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_ggc :=_bf .NewWriter (_bfed ); _faeb :=_de .Pow (2,float64 (img .BitsPerComponent ))-1;_afegg :=make ([]uint32 ,3);var (_gccc uint32 ;ANorm ,X ,Y ,Z ,_afaa ,_eabd ,_beddd float64 ;_bbge error ;);for {_gccc ,_bbge =_gce .ReadSample ();if _bbge ==_beg .EOF {break ;}else if _bbge !=nil {return img ,_bbge ; };ANorm =float64 (_gccc )/_faeb ;X =_fbfd .WhitePoint [0]*_de .Pow (ANorm ,_fbfd .Gamma );Y =_fbfd .WhitePoint [1]*_de .Pow (ANorm ,_fbfd .Gamma );Z =_fbfd .WhitePoint [2]*_de .Pow (ANorm ,_fbfd .Gamma );_afaa =3.240479*X +-1.537150*Y +-0.498535*Z ;_eabd =-0.969256*X +1.875992*Y +0.041556*Z ; _beddd =0.055648*X +-0.204043*Y +1.057311*Z ;_afaa =_de .Min (_de .Max (_afaa ,0),1.0);_eabd =_de .Min (_de .Max (_eabd ,0),1.0);_beddd =_de .Min (_de .Max (_beddd ,0),1.0);_afegg [0]=uint32 (_afaa *_faeb );_afegg [1]=uint32 (_eabd *_faeb );_afegg [2]=uint32 (_beddd *_faeb ); if _bbge =_ggc .WriteSamples (_afegg );_bbge !=nil {return img ,_bbge ;};};return _cggae (&_bfed ),nil ;};const (_ PdfOutputIntentType =iota ;PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ; ); // 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 ;_bfbdb *_eca .PdfObjectDictionary ;};func (_bgbd *pdfFontType0 )baseFields ()*fontCommon {return &_bgbd .fontCommon }; // ToPdfObject returns a PDF object representation of the outline destination. func (_eaacf OutlineDest )ToPdfObject ()_eca .PdfObject {if (_eaacf .PageObj ==nil &&_eaacf .Page < 0)||_eaacf .Mode ==""{return _eca .MakeNull ();};_aggce :=_eca .MakeArray ();if _eaacf .PageObj !=nil {_aggce .Append (_eaacf .PageObj );}else {_aggce .Append (_eca .MakeInteger (_eaacf .Page )); };_aggce .Append (_eca .MakeName (_eaacf .Mode ));switch _eaacf .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_aggce .Append (_eca .MakeFloat (_eaacf .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_aggce .Append (_eca .MakeFloat (_eaacf .X )); case "\u0058\u0059\u005a":_aggce .Append (_eca .MakeFloat (_eaacf .X ));_aggce .Append (_eca .MakeFloat (_eaacf .Y ));_aggce .Append (_eca .MakeFloat (_eaacf .Zoom ));default:_aggce .Set (1,_eca .MakeName ("\u0046\u0069\u0074"));};return _aggce ;}; // SetReason sets the `Reason` field of the signature. func (_egga *PdfSignature )SetReason (reason string ){_egga .Reason =_eca .MakeString (reason )}; // 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 ){_ddacd ,_acdab :=_dcb .ParsePdfTime (dateStr );if _acdab !=nil {return PdfDate {},_acdab ;};return NewPdfDateFromTime (_ddacd );}; // GetNamedDestinations returns the Dests entry in the PDF catalog. // See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008). func (_efccb *PdfReader )GetNamedDestinations ()(_eca .PdfObject ,error ){_egcacb :=_eca .ResolveReference (_efccb ._affc .Get ("\u0044\u0065\u0073t\u0073"));if _egcacb ==nil {return nil ,nil ;};if !_efccb ._gggcg {_ddagdc :=_efccb .traverseObjectData (_egcacb ); if _ddagdc !=nil {return nil ,_ddagdc ;};};return _egcacb ,nil ;}; // ToPdfObject implements interface PdfModel. func (_fc *PdfActionImportData )ToPdfObject ()_eca .PdfObject {_fc .PdfAction .ToPdfObject ();_cgc :=_fc ._bee ;_caf :=_cgc .PdfObject .(*_eca .PdfObjectDictionary );_caf .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeImportData )));if _fc .F !=nil {_caf .Set ("\u0046",_fc .F .ToPdfObject ()); };return _cgc ;}; // GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7. func (_gecabg *PdfShading )GetContext ()PdfModel {return _gecabg ._abefa };func _febg (_ddded *_eca .PdfObjectDictionary )(*PdfFieldButton ,error ){_edaad :=&PdfFieldButton {};_edaad .PdfField =NewPdfField ();_edaad .PdfField .SetContext (_edaad );_edaad .Opt ,_ =_eca .GetArray (_ddded .Get ("\u004f\u0070\u0074")); _babf :=NewPdfAnnotationWidget ();_babf .A ,_ =_eca .GetDict (_ddded .Get ("\u0041"));_babf .AP ,_ =_eca .GetDict (_ddded .Get ("\u0041\u0050"));_babf .SetContext (_edaad );_edaad .PdfField .Annotations =append (_edaad .PdfField .Annotations ,_babf );return _edaad ,nil ; }; // 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 (_feba *PdfFont )CharcodesToUnicode (charcodes []_dbb .CharCode )[]rune {_acde ,_ ,_ :=_feba .CharcodesToUnicodeWithStats (charcodes );return _acde ;};func (_dgc *PdfReader )newPdfAnnotationFromIndirectObject (_abcf *_eca .PdfIndirectObject )(*PdfAnnotation ,error ){_dcbb ,_eeg :=_abcf .PdfObject .(*_eca .PdfObjectDictionary ); if !_eeg {return nil ,_g .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 :=_dgc ._dcddd .GetModelFromPrimitive (_dcbb );model !=nil {_fgf ,_ddgd :=model .(*PdfAnnotation );if !_ddgd {return nil ,_g .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 _fgf ,nil ;};_gadg :=&PdfAnnotation {};_gadg ._cdc =_abcf ;_dgc ._dcddd .Register (_dcbb ,_gadg );if _fbaf :=_dcbb .Get ("\u0054\u0079\u0070\u0065");_fbaf !=nil {_ggeb ,_gcg :=_fbaf .(*_eca .PdfObjectName );if !_gcg {_ccb .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",_fbaf ); }else {if *_ggeb !="\u0041\u006e\u006eo\u0074"{_ccb .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",*_ggeb );};};}; if _bge :=_dcbb .Get ("\u0052\u0065\u0063\u0074");_bge !=nil {_gadg .Rect =_bge ;};if _bbdg :=_dcbb .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_bbdg !=nil {_gadg .Contents =_bbdg ;};if _edbe :=_dcbb .Get ("\u0050");_edbe !=nil {_gadg .P =_edbe ; };if _acg :=_dcbb .Get ("\u004e\u004d");_acg !=nil {_gadg .NM =_acg ;};if _gfg :=_dcbb .Get ("\u004d");_gfg !=nil {_gadg .M =_gfg ;};if _bbfa :=_dcbb .Get ("\u0046");_bbfa !=nil {_gadg .F =_bbfa ;};if _eccg :=_dcbb .Get ("\u0041\u0050");_eccg !=nil {_gadg .AP =_eccg ; };if _fbafg :=_dcbb .Get ("\u0041\u0053");_fbafg !=nil {_gadg .AS =_fbafg ;};if _dca :=_dcbb .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_dca !=nil {_gadg .Border =_dca ;};if _aegg :=_dcbb .Get ("\u0043");_aegg !=nil {_gadg .C =_aegg ;};if _efd :=_dcbb .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074"); _efd !=nil {_gadg .StructParent =_efd ;};if _fge :=_dcbb .Get ("\u004f\u0043");_fge !=nil {_gadg .OC =_fge ;};_cdd :=_dcbb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _cdd ==nil {_ccb .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"); _gadg ._abc =nil ;return _gadg ,nil ;};_eff ,_cdgdb :=_cdd .(*_eca .PdfObjectName );if !_cdgdb {_ccb .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",_cdd ); return nil ,_g .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",_cdd );};switch *_eff {case "\u0054\u0065\u0078\u0074":_dfd ,_ceg :=_dgc .newPdfAnnotationTextFromDict (_dcbb ); if _ceg !=nil {return nil ,_ceg ;};_dfd .PdfAnnotation =_gadg ;_gadg ._abc =_dfd ;return _gadg ,nil ;case "\u004c\u0069\u006e\u006b":_edf ,_aac :=_dgc .newPdfAnnotationLinkFromDict (_dcbb );if _aac !=nil {return nil ,_aac ;};_edf .PdfAnnotation =_gadg ; _gadg ._abc =_edf ;return _gadg ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_dde ,_bdd :=_dgc .newPdfAnnotationFreeTextFromDict (_dcbb );if _bdd !=nil {return nil ,_bdd ;};_dde .PdfAnnotation =_gadg ;_gadg ._abc =_dde ;return _gadg ,nil ; case "\u004c\u0069\u006e\u0065":_fded ,_deaa :=_dgc .newPdfAnnotationLineFromDict (_dcbb );if _deaa !=nil {return nil ,_deaa ;};_fded .PdfAnnotation =_gadg ;_gadg ._abc =_fded ;_ccb .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",_gadg ,_gadg ); _ccb .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",_fded ,_fded );_ccb .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",_fded .PdfAnnotationMarkup ,_fded .PdfAnnotationMarkup ); return _gadg ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_gefd ,_cgee :=_dgc .newPdfAnnotationSquareFromDict (_dcbb );if _cgee !=nil {return nil ,_cgee ;};_gefd .PdfAnnotation =_gadg ;_gadg ._abc =_gefd ;return _gadg ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_dccc ,_fef :=_dgc .newPdfAnnotationCircleFromDict (_dcbb ); if _fef !=nil {return nil ,_fef ;};_dccc .PdfAnnotation =_gadg ;_gadg ._abc =_dccc ;return _gadg ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_fgc ,_cbc :=_dgc .newPdfAnnotationPolygonFromDict (_dcbb );if _cbc !=nil {return nil ,_cbc ;};_fgc .PdfAnnotation =_gadg ; _gadg ._abc =_fgc ;return _gadg ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_ffc ,_bbda :=_dgc .newPdfAnnotationPolyLineFromDict (_dcbb );if _bbda !=nil {return nil ,_bbda ;};_ffc .PdfAnnotation =_gadg ;_gadg ._abc =_ffc ;return _gadg ,nil ; case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_ebae ,_gaf :=_dgc .newPdfAnnotationHighlightFromDict (_dcbb );if _gaf !=nil {return nil ,_gaf ;};_ebae .PdfAnnotation =_gadg ;_gadg ._abc =_ebae ;return _gadg ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_eec ,_aeaf :=_dgc .newPdfAnnotationUnderlineFromDict (_dcbb ); if _aeaf !=nil {return nil ,_aeaf ;};_eec .PdfAnnotation =_gadg ;_gadg ._abc =_eec ;return _gadg ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_dddbd ,_aaca :=_dgc .newPdfAnnotationSquigglyFromDict (_dcbb );if _aaca !=nil {return nil ,_aaca ; };_dddbd .PdfAnnotation =_gadg ;_gadg ._abc =_dddbd ;return _gadg ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_fbdc ,_ggbf :=_dgc .newPdfAnnotationStrikeOut (_dcbb );if _ggbf !=nil {return nil ,_ggbf ;};_fbdc .PdfAnnotation =_gadg ;_gadg ._abc =_fbdc ; return _gadg ,nil ;case "\u0043\u0061\u0072e\u0074":_bdda ,_degd :=_dgc .newPdfAnnotationCaretFromDict (_dcbb );if _degd !=nil {return nil ,_degd ;};_bdda .PdfAnnotation =_gadg ;_gadg ._abc =_bdda ;return _gadg ,nil ;case "\u0053\u0074\u0061m\u0070":_fbec ,_bbfc :=_dgc .newPdfAnnotationStampFromDict (_dcbb ); if _bbfc !=nil {return nil ,_bbfc ;};_fbec .PdfAnnotation =_gadg ;_gadg ._abc =_fbec ;return _gadg ,nil ;case "\u0049\u006e\u006b":_fbg ,_cafc :=_dgc .newPdfAnnotationInkFromDict (_dcbb );if _cafc !=nil {return nil ,_cafc ;};_fbg .PdfAnnotation =_gadg ; _gadg ._abc =_fbg ;return _gadg ,nil ;case "\u0050\u006f\u0070u\u0070":_dbg ,_fcg :=_dgc .newPdfAnnotationPopupFromDict (_dcbb );if _fcg !=nil {return nil ,_fcg ;};_dbg .PdfAnnotation =_gadg ;_gadg ._abc =_dbg ;return _gadg ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_bbca ,_gdc :=_dgc .newPdfAnnotationFileAttachmentFromDict (_dcbb ); if _gdc !=nil {return nil ,_gdc ;};_bbca .PdfAnnotation =_gadg ;_gadg ._abc =_bbca ;return _gadg ,nil ;case "\u0053\u006f\u0075n\u0064":_ecb ,_edee :=_dgc .newPdfAnnotationSoundFromDict (_dcbb );if _edee !=nil {return nil ,_edee ;};_ecb .PdfAnnotation =_gadg ; _gadg ._abc =_ecb ;return _gadg ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_ecab ,_ggbb :=_dgc .newPdfAnnotationRichMediaFromDict (_dcbb );if _ggbb !=nil {return nil ,_ggbb ;};_ecab .PdfAnnotation =_gadg ;_gadg ._abc =_ecab ;return _gadg ,nil ; case "\u004d\u006f\u0076i\u0065":_daf ,_gadf :=_dgc .newPdfAnnotationMovieFromDict (_dcbb );if _gadf !=nil {return nil ,_gadf ;};_daf .PdfAnnotation =_gadg ;_gadg ._abc =_daf ;return _gadg ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_cgbc ,_ebb :=_dgc .newPdfAnnotationScreenFromDict (_dcbb ); if _ebb !=nil {return nil ,_ebb ;};_cgbc .PdfAnnotation =_gadg ;_gadg ._abc =_cgbc ;return _gadg ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_ggbg ,_aec :=_dgc .newPdfAnnotationWidgetFromDict (_dcbb );if _aec !=nil {return nil ,_aec ;};_ggbg .PdfAnnotation =_gadg ; _gadg ._abc =_ggbg ;return _gadg ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_afe ,_eed :=_dgc .newPdfAnnotationPrinterMarkFromDict (_dcbb );if _eed !=nil {return nil ,_eed ;};_afe .PdfAnnotation =_gadg ;_gadg ._abc =_afe ; return _gadg ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_gacfg ,_ggbfc :=_dgc .newPdfAnnotationTrapNetFromDict (_dcbb );if _ggbfc !=nil {return nil ,_ggbfc ;};_gacfg .PdfAnnotation =_gadg ;_gadg ._abc =_gacfg ;return _gadg ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_gadb ,_ddf :=_dgc .newPdfAnnotationWatermarkFromDict (_dcbb ); if _ddf !=nil {return nil ,_ddf ;};_gadb .PdfAnnotation =_gadg ;_gadg ._abc =_gadb ;return _gadg ,nil ;case "\u0033\u0044":_dab ,_bddb :=_dgc .newPdfAnnotation3DFromDict (_dcbb );if _bddb !=nil {return nil ,_bddb ;};_dab .PdfAnnotation =_gadg ;_gadg ._abc =_dab ; return _gadg ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_fccc ,_bgfa :=_dgc .newPdfAnnotationProjectionFromDict (_dcbb );if _bgfa !=nil {return nil ,_bgfa ;};_fccc .PdfAnnotation =_gadg ;_gadg ._abc =_fccc ;return _gadg ,nil ; case "\u0052\u0065\u0064\u0061\u0063\u0074":_aca ,_fdgd :=_dgc .newPdfAnnotationRedactFromDict (_dcbb );if _fdgd !=nil {return nil ,_fdgd ;};_aca .PdfAnnotation =_gadg ;_gadg ._abc =_aca ;return _gadg ,nil ;};_ccb .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",*_eff ); return nil ,nil ;}; // PdfColorPatternType3 represents a color shading pattern type 3 (Radial). type PdfColorPatternType3 struct{Color PdfColor ;PatternName _eca .PdfObjectName ;};func (_eaba *PdfReader )newPdfAnnotationStrikeOut (_bed *_eca .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_bbeg :=PdfAnnotationStrikeOut {};_dedc ,_gfea :=_eaba .newPdfAnnotationMarkupFromDict (_bed ); if _gfea !=nil {return nil ,_gfea ;};_bbeg .PdfAnnotationMarkup =_dedc ;_bbeg .QuadPoints =_bed .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_bbeg ,nil ;}; // ToInteger convert to an integer format. func (_ceea *PdfColorDeviceGray )ToInteger (bits int )uint32 {_gecb :=_de .Pow (2,float64 (bits ))-1;return uint32 (_gecb *_ceea .Val ());}; // PdfFieldText represents a text field where user can enter text. type PdfFieldText struct{*PdfField ;DA *_eca .PdfObjectString ;Q *_eca .PdfObjectInteger ;DS *_eca .PdfObjectString ;RV _eca .PdfObject ;MaxLen *_eca .PdfObjectInteger ;};func _beeca (_bgbc _eca .PdfObject )(*PdfColorspaceDeviceN ,error ){_ccdc :=NewPdfColorspaceDeviceN (); if _eaedg ,_edeec :=_bgbc .(*_eca .PdfIndirectObject );_edeec {_ccdc ._bded =_eaedg ;};_bgbc =_eca .TraceToDirectObject (_bgbc );_gdgfc ,_bceb :=_bgbc .(*_eca .PdfObjectArray );if !_bceb {return nil ,_g .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 _gdgfc .Len ()!=4&&_gdgfc .Len ()!=5{return nil ,_g .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");};_bgbc =_gdgfc .Get (0); _eddba ,_bceb :=_bgbc .(*_eca .PdfObjectName );if !_bceb {return nil ,_g .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 *_eddba !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_g .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");};_bgbc =_gdgfc .Get (1); _bgbc =_eca .TraceToDirectObject (_bgbc );_cbccd ,_bceb :=_bgbc .(*_eca .PdfObjectArray );if !_bceb {return nil ,_g .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"); };_ccdc .ColorantNames =_cbccd ;_bgbc =_gdgfc .Get (2);_fgbe ,_gfead :=NewPdfColorspaceFromPdfObject (_bgbc );if _gfead !=nil {return nil ,_gfead ;};_ccdc .AlternateSpace =_fgbe ;_eegdf ,_gfead :=_febaf (_gdgfc .Get (3));if _gfead !=nil {return nil ,_gfead ; };_ccdc .TintTransform =_eegdf ;if _gdgfc .Len ()==5{_cdbf ,_bdceb :=_fgef (_gdgfc .Get (4));if _bdceb !=nil {return nil ,_bdceb ;};_ccdc .Attributes =_cdbf ;};return _ccdc ,nil ;}; // String implements interface PdfObject. func (_dbf *PdfAction )String ()string {_bg ,_gad :=_dbf .ToPdfObject ().(*_eca .PdfIndirectObject );if _gad {return _g .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_dbf ._cd ,_bg .PdfObject .String ());};return "";}; // Evaluate runs the function on the passed in slice and returns the results. func (_dafab *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ccb .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b"); };_cdged :=[]float64 {0.0};if _dafab .C0 !=nil {_cdged =_dafab .C0 ;};_cbdc :=[]float64 {1.0};if _dafab .C1 !=nil {_cbdc =_dafab .C1 ;};var _aefac []float64 ;for _dfeb :=0;_dfeb < len (_cdged );_dfeb ++{_fbdge :=_cdged [_dfeb ]+_de .Pow (x [0],_dafab .N )*(_cbdc [_dfeb ]-_cdged [_dfeb ]); _aefac =append (_aefac ,_fbdge );};return _aefac ,nil ;}; // ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the // AcroForm dictionary. func (_cdaad *PdfAcroForm )ToPdfObject ()_eca .PdfObject {_ddbb :=_cdaad ._aeac ;_cgef :=_ddbb .PdfObject .(*_eca .PdfObjectDictionary );if _cdaad .Fields !=nil {_ffebd :=_eca .PdfObjectArray {};for _ ,_ddagd :=range *_cdaad .Fields {_dgafec :=_ddagd .GetContext (); if _dgafec !=nil {_ffebd .Append (_dgafec .ToPdfObject ());}else {_ffebd .Append (_ddagd .ToPdfObject ());};};_cgef .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_ffebd );};if _cdaad .NeedAppearances !=nil {_cgef .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_cdaad .NeedAppearances ); }else {if _ffbabg :=_cgef .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");_ffbabg !=nil {_cgef .Remove ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");};};if _cdaad .SigFlags !=nil {_cgef .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_cdaad .SigFlags ); };if _cdaad .CO !=nil {_cgef .Set ("\u0043\u004f",_cdaad .CO );};if _cdaad .DR !=nil {_cgef .Set ("\u0044\u0052",_cdaad .DR .ToPdfObject ());};if _cdaad .DA !=nil {_cgef .Set ("\u0044\u0041",_cdaad .DA );};if _cdaad .Q !=nil {_cgef .Set ("\u0051",_cdaad .Q ); };if _cdaad .XFA !=nil {_cgef .Set ("\u0058\u0046\u0041",_cdaad .XFA );};if _cdaad .ADBEEchoSign !=nil {_cgef .Set ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e",_cdaad .ADBEEchoSign );};return _ddbb ;}; // String returns a string that describes `base`. func (_defg fontCommon )String ()string {return _g .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_defg .coreString ());}; // PdfAnnotationSquiggly represents Squiggly annotations. // (Section 12.5.6.10). type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eca .PdfObject ;}; // ToPdfObject implements interface PdfModel. func (_beac *PdfAnnotation3D )ToPdfObject ()_eca .PdfObject {_beac .PdfAnnotation .ToPdfObject ();_bfab :=_beac ._cdc ;_efdd :=_bfab .PdfObject .(*_eca .PdfObjectDictionary );_efdd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0033\u0044")); _efdd .SetIfNotNil ("\u0033\u0044\u0044",_beac .T3DD );_efdd .SetIfNotNil ("\u0033\u0044\u0056",_beac .T3DV );_efdd .SetIfNotNil ("\u0033\u0044\u0041",_beac .T3DA );_efdd .SetIfNotNil ("\u0033\u0044\u0049",_beac .T3DI );_efdd .SetIfNotNil ("\u0033\u0044\u0042",_beac .T3DB ); return _bfab ;};func _eagff (_gfede _eca .PdfObject )(*PdfPageResourcesColorspaces ,error ){_gbaeca :=&PdfPageResourcesColorspaces {};if _fgbeg ,_fegae :=_gfede .(*_eca .PdfIndirectObject );_fegae {_gbaeca ._faddg =_fgbeg ;_gfede =_fgbeg .PdfObject ;}; _dfaa ,_cfag :=_eca .GetDict (_gfede );if !_cfag {return nil ,_da .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_gbaeca .Names =[]string {};_gbaeca .Colorspaces =map[string ]PdfColorspace {}; for _ ,_eebe :=range _dfaa .Keys (){_geggd :=_dfaa .Get (_eebe );_gbaeca .Names =append (_gbaeca .Names ,string (_eebe ));_dbgfd ,_bbff :=NewPdfColorspaceFromPdfObject (_geggd );if _bbff !=nil {return nil ,_bbff ;};_gbaeca .Colorspaces [string (_eebe )]=_dbgfd ; };return _gbaeca ,nil ;}; // PdfColor interface represents a generic color in PDF. type PdfColor interface{}; // SetShadingByName sets a shading resource specified by keyName. func (_fffcb *PdfPageResources )SetShadingByName (keyName _eca .PdfObjectName ,shadingObj _eca .PdfObject )error {if _fffcb .Shading ==nil {_fffcb .Shading =_eca .MakeDict ();};_eaef ,_eadadf :=_eca .GetDict (_fffcb .Shading );if !_eadadf {return _eca .ErrTypeError ; };_eaef .Set (keyName ,shadingObj );return nil ;};func (_bfbba *PdfWriter )seekByName (_baaaa _eca .PdfObject ,_eefee []string ,_fcdfc string )([]_eca .PdfObject ,error ){_ccb .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_baaaa ); var _cebea []_eca .PdfObject ;if _abffa ,_gcbgd :=_baaaa .(*_eca .PdfIndirectObject );_gcbgd {return _bfbba .seekByName (_abffa .PdfObject ,_eefee ,_fcdfc );};if _egdga ,_eggcg :=_baaaa .(*_eca .PdfObjectStream );_eggcg {return _bfbba .seekByName (_egdga .PdfObjectDictionary ,_eefee ,_fcdfc ); };if _aeab ,_afbda :=_baaaa .(*_eca .PdfObjectDictionary );_afbda {_ccb .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_gedfc :=range _aeab .Keys (){_fbcd :=_aeab .Get (_gedfc );if string (_gedfc )==_fcdfc {_cebea =append (_cebea ,_fbcd );};for _ ,_bfcbc :=range _eefee {if string (_gedfc )==_bfcbc {_ccb .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_bfcbc ); _ccdga ,_bdccb :=_bfbba .seekByName (_fbcd ,_eefee ,_fcdfc );if _bdccb !=nil {return _cebea ,_bdccb ;};_cebea =append (_cebea ,_ccdga ...);break ;};};};return _cebea ,nil ;};return _cebea ,nil ;}; // IsCheckbox returns true if the button field represents a checkbox, false otherwise. func (_cbbgb *PdfFieldButton )IsCheckbox ()bool {return _cbbgb .GetType ()==ButtonTypeCheckbox };func _efe (_fde _eca .PdfObject )(*PdfFilespec ,error ){if _fde ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_fde );}; // 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 _eca .PdfObject ;FontFamily _eca .PdfObject ;FontStretch _eca .PdfObject ;FontWeight _eca .PdfObject ;Flags _eca .PdfObject ;FontBBox _eca .PdfObject ;ItalicAngle _eca .PdfObject ;Ascent _eca .PdfObject ;Descent _eca .PdfObject ; Leading _eca .PdfObject ;CapHeight _eca .PdfObject ;XHeight _eca .PdfObject ;StemV _eca .PdfObject ;StemH _eca .PdfObject ;AvgWidth _eca .PdfObject ;MaxWidth _eca .PdfObject ;MissingWidth _eca .PdfObject ;FontFile _eca .PdfObject ;FontFile2 _eca .PdfObject ; FontFile3 _eca .PdfObject ;CharSet _eca .PdfObject ;_feaf int ;_fdadf float64 ;*fontFile ;_aacg *_ffd .TtfType ; // Additional entries for CIDFonts Style _eca .PdfObject ;Lang _eca .PdfObject ;FD _eca .PdfObject ;CIDSet _eca .PdfObject ;_acccb *_eca .PdfIndirectObject ;};func _cbabf (_ddcge *_eca .PdfObjectArray )(float64 ,error ){_agaec ,_ecaab :=_ddcge .ToFloat64Array ();if _ecaab !=nil {_ccb .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",_ddcge ,_ecaab ); };switch len (_agaec ){case 1:return _agaec [0],nil ;case 3:_cfceg :=PdfColorspaceDeviceRGB {};_agbdc ,_deccbc :=_cfceg .ColorFromFloats (_agaec );if _deccbc !=nil {return 0.0,_deccbc ;};return _agbdc .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_bceac :=PdfColorspaceDeviceCMYK {}; _ebcde ,_feebc :=_bceac .ColorFromFloats (_agaec );if _feebc !=nil {return 0.0,_feebc ;};_gdafcg ,_feebc :=_bceac .ColorToRGB (_ebcde .(*PdfColorDeviceCMYK ));if _feebc !=nil {return 0.0,_feebc ;};return _gdafcg .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ; };_ecaab =_da .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_ccb .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_ddcge ,_ecaab ); return 0.0,_ecaab ;}; // Y returns the value of the yellow component of the color. func (_abec *PdfColorDeviceCMYK )Y ()float64 {return _abec [2]}; // PartialName returns the partial name of the field. func (_gffbg *PdfField )PartialName ()string {_cbbced :="";if _gffbg .T !=nil {_cbbced =_gffbg .T .Decoded ();}else {_ccb .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 _cbbced ;}; // Hasher is the interface that wraps the basic Write method. type Hasher interface{Write (_aggb []byte )(_efacdb int ,_ebfbb error );}; // A returns the value of the A component of the color. func (_ecda *PdfColorCalRGB )A ()float64 {return _ecda [0]}; // AddExtGState adds a graphics state to the XObject resources. func (_cdgaf *PdfPage )AddExtGState (name _eca .PdfObjectName ,egs *_eca .PdfObjectDictionary )error {if _cdgaf .Resources ==nil {_cdgaf .Resources =NewPdfPageResources ();};if _cdgaf .Resources .ExtGState ==nil {_cdgaf .Resources .ExtGState =_eca .MakeDict (); };_ffgd ,_fdecd :=_eca .TraceToDirectObject (_cdgaf .Resources .ExtGState ).(*_eca .PdfObjectDictionary );if !_fdecd {_ccb .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",_eca .TraceToDirectObject (_cdgaf .Resources .ExtGState )); return _da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ffgd .Set (name ,egs );return nil ;}; // PdfActionSubmitForm represents a submitForm action. type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _eca .PdfObject ;Flags _eca .PdfObject ;}; // GetExtGState gets the ExtGState specified by keyName. Returns a bool // indicating whether it was found or not. func (_cceab *PdfPageResources )GetExtGState (keyName _eca .PdfObjectName )(_eca .PdfObject ,bool ){if _cceab .ExtGState ==nil {return nil ,false ;};_fdfge ,_fbgba :=_eca .TraceToDirectObject (_cceab .ExtGState ).(*_eca .PdfObjectDictionary );if !_fbgba {_ccb .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",_cceab .ExtGState ); return nil ,false ;};if _eafe :=_fdfge .Get (keyName );_eafe !=nil {return _eafe ,true ;};return nil ,false ;}; // NewPdfActionGoToR returns a new "go to remote" action. func NewPdfActionGoToR ()*PdfActionGoToR {_acd :=NewPdfAction ();_af :=&PdfActionGoToR {};_af .PdfAction =_acd ;_acd .SetContext (_af );return _af ;}; // PdfAnnotationText represents Text annotations. // (Section 12.5.6.4 p. 402). type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _eca .PdfObject ;Name _eca .PdfObject ;State _eca .PdfObject ;StateModel _eca .PdfObject ;}; // B returns the value of the B component of the color. func (_bgad *PdfColorCalRGB )B ()float64 {return _bgad [1]};func _cgccc ()string {_ccbac .Lock ();defer _ccbac .Unlock ();return _aaaad };func (_bccbc PdfFont )actualFont ()pdfFont {if _bccbc ._dbgb ==nil {_ccb .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",_bccbc ); };return _bccbc ._dbgb ;}; // String returns the name of the colorspace (DeviceN). func (_acfd *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"}; // GetCerts returns the signature certificate chain. func (_cdefe *PdfSignature )GetCerts ()([]*_ad .Certificate ,error ){var _eegcg []func ()([]*_ad .Certificate ,error );switch _ffeea ,_ :=_eca .GetNameVal (_cdefe .SubFilter );_ffeea {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":_eegcg =append (_eegcg ,_cdefe .extractChainFromPKCS7 ,_cdefe .extractChainFromCert ); case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_eegcg =append (_eegcg ,_cdefe .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_eegcg =append (_eegcg ,_cdefe .extractChainFromPKCS7 ); default:return nil ,_g .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_ffeea );};for _ ,_abeeb :=range _eegcg {_efed ,_aceac :=_abeeb ();if _aceac !=nil {return nil ,_aceac ; };if len (_efed )> 0{return _efed ,nil ;};};return nil ,ErrSignNoCertificates ;};func (_abfga *PdfWriter )mapObjectStreams (_aabf bool )(map[_eca .PdfObject ]bool ,bool ){_aeefd :=make (map[_eca .PdfObject ]bool );for _ ,_gdcad :=range _abfga ._daecf {if _ceadcg ,_gfdcg :=_gdcad .(*_eca .PdfObjectStreams ); _gfdcg {_aabf =true ;for _ ,_ccfcb :=range _ceadcg .Elements (){_aeefd [_ccfcb ]=true ;if _edae ,_cbged :=_ccfcb .(*_eca .PdfIndirectObject );_cbged {_aeefd [_edae .PdfObject ]=true ;};};};};return _aeefd ,_aabf ;}; // SetColorspaceByName adds the provided colorspace to the page resources. func (_fgggg *PdfPageResources )SetColorspaceByName (keyName _eca .PdfObjectName ,cs PdfColorspace )error {_efab ,_bgacb :=_fgggg .GetColorspaces ();if _bgacb !=nil {_ccb .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",_bgacb ); return _bgacb ;};if _efab ==nil {_efab =NewPdfPageResourcesColorspaces ();_fgggg .SetColorSpace (_efab );};_efab .Set (keyName ,cs );return nil ;}; // PdfAnnotation3D represents 3D annotations. // (Section 13.6.2). type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _eca .PdfObject ;T3DV _eca .PdfObject ;T3DA _eca .PdfObject ;T3DI _eca .PdfObject ;T3DB _eca .PdfObject ;};func (_cdea *PdfField )inherit (_gdgg func (*PdfField )bool )(bool ,error ){_defd :=map[*PdfField ]bool {}; _bbde :=false ;_cebd :=_cdea ;for _cebd !=nil {if _ ,_gede :=_defd [_cebd ];_gede {return false ,_da .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_eadd :=_gdgg (_cebd );if _eadd {_bbde =true ; break ;};_defd [_cebd ]=true ;_cebd =_cebd .Parent ;};return _bbde ,nil ;}; // ColorFromFloats returns a new PdfColor based on the input slice of color // components. The slice should contain a single element. func (_cdba *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_acgaf :=vals [0];_cbfc :=[]float64 {_acgaf };_dbec ,_ccge :=_cdba .TintTransform .Evaluate (_cbfc ); if _ccge !=nil {_ccb .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",_ccge );_ccb .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_cdba .TintTransform ); return nil ,_ccge ;};_ccb .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",_dbec ,_cdba .AlternateSpace ); _bbbfaa ,_ccge :=_cdba .AlternateSpace .ColorFromFloats (_dbec );if _ccge !=nil {_ccb .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",_ccge ); return nil ,_ccge ;};return _bbbfaa ,nil ;}; // ToPdfObject implements interface PdfModel. func (_bfca *PdfAnnotationSquare )ToPdfObject ()_eca .PdfObject {_bfca .PdfAnnotation .ToPdfObject ();_fgb :=_bfca ._cdc ;_cbde :=_fgb .PdfObject .(*_eca .PdfObjectDictionary );if _bfca .PdfAnnotationMarkup !=nil {_bfca .PdfAnnotationMarkup .appendToPdfDictionary (_cbde ); };_cbde .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_cbde .SetIfNotNil ("\u0042\u0053",_bfca .BS );_cbde .SetIfNotNil ("\u0049\u0043",_bfca .IC );_cbde .SetIfNotNil ("\u0042\u0045",_bfca .BE ); _cbde .SetIfNotNil ("\u0052\u0044",_bfca .RD );return _fgb ;};func (_befac *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _befac ._ecfeba .GetCrypter ()!=nil &&!_befac ._ecfeba .IsAuthenticated (){return nil ,_g .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"); };_gccbb :=_befac ._affc ;_cbeaa :=_gccbb .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _cbeaa ==nil {return nil ,nil ;};_ccb .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_gefg :=_eca .ResolveReference (_cbeaa ); _ccb .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_gefg );if _gdefc :=_eca .IsNullObject (_gefg );_gdefc {_ccb .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 ;};_cgdabb ,_gddfc :=_gefg .(*_eca .PdfIndirectObject );if !_gddfc {if _ ,_aebbf :=_eca .GetDict (_gefg );!_aebbf {_ccb .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 ;};_ccb .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"); _cgdabb =_eca .MakeIndirectObject (_gefg );};_dfgc ,_gddfc :=_cgdabb .PdfObject .(*_eca .PdfObjectDictionary );if !_gddfc {return nil ,_da .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"); };_ccb .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_dfgc );_ddaabd ,_ ,_gbbc :=_befac .buildOutlineTree (_cgdabb ,nil ,nil ,nil );if _gbbc !=nil {return nil ,_gbbc ;};_ccb .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",_ddaabd ); return _ddaabd ,nil ;}; // NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object. func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};func (_aafef *PdfSignature )extractChainFromPKCS7 ()([]*_ad .Certificate ,error ){_gbfbdb ,_becdd :=_dcc .Parse (_aafef .Contents .Bytes ());if _becdd !=nil {return nil ,_becdd ; };return _gbfbdb .Certificates ,nil ;}; // PdfColorspaceSpecialPattern is a Pattern colorspace. // Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs]. type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_adcgc *_eca .PdfIndirectObject ;}; // SetContext sets the sub action (context). func (_ffb *PdfAction )SetContext (ctx PdfModel ){_ffb ._cd =ctx }; // PdfBorderEffect represents a PDF border effect. type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;}; // 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 ,_dbb .SimpleEncoder ,error ){_bcfa ,_afgdg :=_dbecc (basefont );if _afgdg !=nil {return nil ,nil ,_afgdg ;};_dfac ,_gbge :=_bcfa .Encoder ().(_dbb .SimpleEncoder ); if !_gbge {return nil ,nil ,_g .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",_bcfa .Encoder ()); };_gdbf :=make (map[rune ]_dbb .GlyphName );for _dbgbc :=range alphabet {if _ ,_faga :=_dfac .RuneToCharcode (_dbgbc );!_faga {_ ,_dcbd :=_bcfa ._cedde .Read (_dbgbc );if !_dcbd {_ccb .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",_dbgbc ,_dbgbc ); continue ;};_afbdd ,_dcbd :=_dbb .RuneToGlyph (_dbgbc );if !_dcbd {_ccb .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_dbgbc ,_dbgbc );continue ;};if len (_gdbf )>=255{return nil ,nil ,_da .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"); };_gdbf [_dbgbc ]=_afbdd ;};};var (_daaf []_dbb .CharCode ;_ceeg []_dbb .CharCode ;);for _accbc :=_dbb .CharCode (1);_accbc <=0xff;_accbc ++{_baeca ,_baabb :=_dfac .CharcodeToRune (_accbc );if !_baabb {_daaf =append (_daaf ,_accbc );continue ;};if _ ,_baabb =alphabet [_baeca ]; !_baabb {_ceeg =append (_ceeg ,_accbc );};};_efffb :=append (_daaf ,_ceeg ...);if len (_efffb )< len (_gdbf ){return nil ,nil ,_g .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 (_gdbf ),len (_efffb )); };_abaaf :=make ([]rune ,0,len (_gdbf ));for _bfcb :=range _gdbf {_abaaf =append (_abaaf ,_bfcb );};_gac .Slice (_abaaf ,func (_aabeg ,_fcdad int )bool {return _abaaf [_aabeg ]< _abaaf [_fcdad ]});_aaced :=make (map[_dbb .CharCode ]_dbb .GlyphName ,len (_abaaf )); for _ ,_afdb :=range _abaaf {_gbcde :=_efffb [0];_efffb =_efffb [1:];_aaced [_gbcde ]=_gdbf [_afdb ];};_dfac =_dbb .ApplyDifferences (_dfac ,_aaced );_bcfa .SetEncoder (_dfac );return &PdfFont {_dbgb :&_bcfa },_dfac ,nil ;}; // NewPdfAnnotationUnderline returns a new text underline annotation. func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_daa :=NewPdfAnnotation ();_fdee :=&PdfAnnotationUnderline {};_fdee .PdfAnnotation =_daa ;_fdee .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_daa .SetContext (_fdee );return _fdee ;};func _dcegf (_fcag _eca .PdfObject )(*PdfColorspaceLab ,error ){_egca :=NewPdfColorspaceLab (); if _gdee ,_accca :=_fcag .(*_eca .PdfIndirectObject );_accca {_egca ._egcf =_gdee ;};_fcag =_eca .TraceToDirectObject (_fcag );_gdbd ,_deefa :=_fcag .(*_eca .PdfObjectArray );if !_deefa {return nil ,_g .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };if _gdbd .Len ()!=2{return nil ,_g .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");};_fcag =_eca .TraceToDirectObject (_gdbd .Get (0));_caeb ,_deefa :=_fcag .(*_eca .PdfObjectName ); if !_deefa {return nil ,_g .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 *_caeb !="\u004c\u0061\u0062"{return nil ,_g .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065"); };_fcag =_eca .TraceToDirectObject (_gdbd .Get (1));_adde ,_deefa :=_fcag .(*_eca .PdfObjectDictionary );if !_deefa {return nil ,_g .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"); };_fcag =_adde .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_fcag =_eca .TraceToDirectObject (_fcag );_eedb ,_deefa :=_fcag .(*_eca .PdfObjectArray );if !_deefa {return nil ,_g .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074"); };if _eedb .Len ()!=3{return nil ,_g .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");};_fecg ,_cfea :=_eedb .GetAsFloat64Slice (); if _cfea !=nil {return nil ,_cfea ;};_egca .WhitePoint =_fecg ;_fcag =_adde .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _fcag !=nil {_fcag =_eca .TraceToDirectObject (_fcag );_gceb ,_gbbb :=_fcag .(*_eca .PdfObjectArray );if !_gbbb {return nil ,_g .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074"); };if _gceb .Len ()!=3{return nil ,_g .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");};_ebbca ,_edba :=_gceb .GetAsFloat64Slice (); if _edba !=nil {return nil ,_edba ;};_egca .BlackPoint =_ebbca ;};_fcag =_adde .Get ("\u0052\u0061\u006eg\u0065");if _fcag !=nil {_fcag =_eca .TraceToDirectObject (_fcag );_abaae ,_afebb :=_fcag .(*_eca .PdfObjectArray );if !_afebb {_ccb .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); return nil ,_g .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _abaae .Len ()!=4{_ccb .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");return nil ,_g .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072"); };_gefb ,_egaf :=_abaae .GetAsFloat64Slice ();if _egaf !=nil {return nil ,_egaf ;};_egca .Range =_gefb ;};return _egca ,nil ;};func (_dfe *PdfReader )newPdfAnnotationStampFromDict (_ggbe *_eca .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_gcdd :=PdfAnnotationStamp {}; _ggf ,_ggbcg :=_dfe .newPdfAnnotationMarkupFromDict (_ggbe );if _ggbcg !=nil {return nil ,_ggbcg ;};_gcdd .PdfAnnotationMarkup =_ggf ;_gcdd .Name =_ggbe .Get ("\u004e\u0061\u006d\u0065");return &_gcdd ,nil ;}; // Encoder returns the font's text encoder. func (_cgca pdfCIDFontType2 )Encoder ()_dbb .TextEncoder {return _cgca ._gafg };var _gfgfb =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":{}}; // ToPdfObject returns the text field dictionary within an indirect object (container). func (_effc *PdfFieldText )ToPdfObject ()_eca .PdfObject {_effc .PdfField .ToPdfObject ();_feag :=_effc ._geaa ;_eegdd :=_feag .PdfObject .(*_eca .PdfObjectDictionary );_eegdd .Set ("\u0046\u0054",_eca .MakeName ("\u0054\u0078"));if _effc .DA !=nil {_eegdd .Set ("\u0044\u0041",_effc .DA ); };if _effc .Q !=nil {_eegdd .Set ("\u0051",_effc .Q );};if _effc .DS !=nil {_eegdd .Set ("\u0044\u0053",_effc .DS );};if _effc .RV !=nil {_eegdd .Set ("\u0052\u0056",_effc .RV );};if _effc .MaxLen !=nil {_eegdd .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_effc .MaxLen ); };return _feag ;}; // ColorToRGB converts a ICCBased color to an RGB color. func (_aabg *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _aabg .Alternate ==nil {_ccb .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 _aabg .N ==1{_ccb .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"); _gbcfg :=NewPdfColorspaceDeviceGray ();return _gbcfg .ColorToRGB (color );}else if _aabg .N ==3{_ccb .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 _aabg .N ==4{_ccb .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"); _aedda :=NewPdfColorspaceDeviceCMYK ();return _aedda .ColorToRGB (color );}else {return nil ,_da .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"); };};_ccb .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",_aabg ); return _aabg .Alternate .ColorToRGB (color );}; // ToPdfObject implements interface PdfModel. func (_egf *PdfActionRendition )ToPdfObject ()_eca .PdfObject {_egf .PdfAction .ToPdfObject ();_edg :=_egf ._bee ;_ede :=_edg .PdfObject .(*_eca .PdfObjectDictionary );_ede .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeRendition )));_ede .SetIfNotNil ("\u0052",_egf .R ); _ede .SetIfNotNil ("\u0041\u004e",_egf .AN );_ede .SetIfNotNil ("\u004f\u0050",_egf .OP );_ede .SetIfNotNil ("\u004a\u0053",_egf .JS );return _edg ;};func _bfdea (_agfa _eca .PdfObject )(*PdfFunctionType3 ,error ){_fdebc :=&PdfFunctionType3 {};var _edef *_eca .PdfObjectDictionary ; if _facg ,_bdcf :=_agfa .(*_eca .PdfIndirectObject );_bdcf {_cbacf ,_egbc :=_facg .PdfObject .(*_eca .PdfObjectDictionary );if !_egbc {return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fdebc ._cddb =_facg ; _edef =_cbacf ;}else if _dbccb ,_effbc :=_agfa .(*_eca .PdfObjectDictionary );_effbc {_edef =_dbccb ;}else {return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_caddg ,_bcdf :=_eca .TraceToDirectObject (_edef .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eca .PdfObjectArray ); if !_bcdf {_ccb .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_da .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 _caddg .Len ()!=2{_ccb .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_da .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_bagg ,_cgbdd :=_caddg .ToFloat64Array (); if _cgbdd !=nil {return nil ,_cgbdd ;};_fdebc .Domain =_bagg ;_caddg ,_bcdf =_eca .TraceToDirectObject (_edef .Get ("\u0052\u0061\u006eg\u0065")).(*_eca .PdfObjectArray );if _bcdf {if _caddg .Len ()< 0||_caddg .Len ()%2!=0{return nil ,_da .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065"); };_afca ,_eaag :=_caddg .ToFloat64Array ();if _eaag !=nil {return nil ,_eaag ;};_fdebc .Range =_afca ;};_caddg ,_bcdf =_eca .TraceToDirectObject (_edef .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_eca .PdfObjectArray );if !_bcdf {_ccb .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 ,_da .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");};_fdebc .Functions =[]PdfFunction {}; for _ ,_fdag :=range _caddg .Elements (){_facf ,_bgfc :=_febaf (_fdag );if _bgfc !=nil {return nil ,_bgfc ;};_fdebc .Functions =append (_fdebc .Functions ,_facf );};_caddg ,_bcdf =_eca .TraceToDirectObject (_edef .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_eca .PdfObjectArray ); if !_bcdf {_ccb .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_da .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"); };_agcbe ,_cgbdd :=_caddg .ToFloat64Array ();if _cgbdd !=nil {return nil ,_cgbdd ;};_fdebc .Bounds =_agcbe ;if len (_fdebc .Bounds )!=len (_fdebc .Functions )-1{_ccb .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 (_fdebc .Bounds ),len (_fdebc .Functions )); return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_caddg ,_bcdf =_eca .TraceToDirectObject (_edef .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_eca .PdfObjectArray );if !_bcdf {_ccb .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064"); return nil ,_da .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");};_bcfaf ,_cgbdd :=_caddg .ToFloat64Array (); if _cgbdd !=nil {return nil ,_cgbdd ;};_fdebc .Encode =_bcfaf ;if len (_fdebc .Encode )!=2*len (_fdebc .Functions ){_ccb .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 (_fdebc .Encode ),len (_fdebc .Functions )); return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _fdebc ,nil ;}; // PdfShadingPatternType3 is shading patterns that will use a Type 3 shading pattern (Radial). type PdfShadingPatternType3 struct{*PdfPattern ;Shading *PdfShadingType3 ;Matrix *_eca .PdfObjectArray ;ExtGState _eca .PdfObject ;}; // M returns the value of the magenta component of the color. func (_cggfd *PdfColorDeviceCMYK )M ()float64 {return _cggfd [1]};func _bcedebe ()_d .Time {_ccbac .Lock ();defer _ccbac .Unlock ();return _fcacce }; // SetXObjectFormByName adds the provided XObjectForm to the page resources. // The added XObjectForm is identified by the specified name. func (_gadga *PdfPageResources )SetXObjectFormByName (keyName _eca .PdfObjectName ,xform *XObjectForm )error {_fcgbd :=xform .ToPdfObject ().(*_eca .PdfObjectStream );_ffdcb :=_gadga .SetXObjectByName (keyName ,_fcgbd );return _ffdcb ;}; // String returns a string describing the font descriptor. func (_dafgf *PdfFontDescriptor )String ()string {var _accea []string ;if _dafgf .FontName !=nil {_accea =append (_accea ,_dafgf .FontName .String ());};if _dafgf .FontFamily !=nil {_accea =append (_accea ,_dafgf .FontFamily .String ());};if _dafgf .fontFile !=nil {_accea =append (_accea ,_dafgf .fontFile .String ()); };if _dafgf ._aacg !=nil {_accea =append (_accea ,_dafgf ._aacg .String ());};_accea =append (_accea ,_g .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_dafgf .FontFile3 !=nil ));return _g .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_ec .Join (_accea ,"\u002c\u0020")); };func (_dgfc *pdfFontSimple )updateStandard14Font (){_befb ,_daadb :=_dgfc .Encoder ().(_dbb .SimpleEncoder );if !_daadb {_ccb .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",_dgfc .Encoder (),_dgfc ); return ;};_bcecg :=_befb .Charcodes ();_dgfc ._gfcfb =make (map[_dbb .CharCode ]float64 ,len (_bcecg ));for _ ,_eeac :=range _bcecg {_ggbbf ,_ :=_befb .CharcodeToRune (_eeac );_gfeg ,_ :=_dgfc ._cedde .Read (_ggbbf );_dgfc ._gfcfb [_eeac ]=_gfeg .Wx ;}; };func _ccda ()string {_dbcce :="\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 _dcddf _dd .Buffer ;for _gbeac :=0;_gbeac < 6;_gbeac ++{_dcddf .WriteRune (rune (_dbcce [_eb .Intn (len (_dbcce ))])); };return _dcddf .String ();};func (_aegf *PdfReader )newPdfAnnotationFileAttachmentFromDict (_cgeeg *_eca .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_aed :=PdfAnnotationFileAttachment {};_acdb ,_gee :=_aegf .newPdfAnnotationMarkupFromDict (_cgeeg ); if _gee !=nil {return nil ,_gee ;};_aed .PdfAnnotationMarkup =_acdb ;_aed .FS =_cgeeg .Get ("\u0046\u0053");_aed .Name =_cgeeg .Get ("\u004e\u0061\u006d\u0065");return &_aed ,nil ;};func (_dbaec *XObjectImage )getParamsDict ()*_eca .PdfObjectDictionary {_cabca :=_eca .MakeDict (); _cabca .Set ("\u0057\u0069\u0064t\u0068",_eca .MakeInteger (*_dbaec .Width ));_cabca .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_eca .MakeInteger (*_dbaec .Height ));_cabca .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_eca .MakeInteger (int64 (_dbaec .ColorSpace .GetNumComponents ()))); _cabca .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eca .MakeInteger (*_dbaec .BitsPerComponent ));return _cabca ;}; // SetPdfModifiedDate sets the ModDate attribute of the output PDF. func SetPdfModifiedDate (modifiedDate _d .Time ){_ccbac .Lock ();defer _ccbac .Unlock ();_bddc =modifiedDate ;};func (_fdfdf *PdfWriter )writeBytes (_aaddb []byte ){if _fdfdf ._fafa !=nil {return ;};_cfegd ,_cfdba :=_fdfdf ._agbgb .Write (_aaddb );_fdfdf ._eggaf +=int64 (_cfegd ); _fdfdf ._fafa =_cfdba ;}; // NewPermissions returns a new permissions object. func NewPermissions (docMdp *PdfSignature )*Permissions {_abcdg :=Permissions {};_abcdg .DocMDP =docMdp ;_ccaed :=_eca .MakeDict ();_ccaed .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_abcdg ._bffgb =_ccaed ;return &_abcdg ;}; // PdfInfoTrapped specifies pdf trapped information. type PdfInfoTrapped string ; // SetFilter sets compression filter. Decodes with current filter sets and // encodes the data with the new filter. func (_fcccc *XObjectImage )SetFilter (encoder _eca .StreamEncoder )error {_afdbf :=_fcccc .Stream ;_bedad ,_fcdcg :=_fcccc .Filter .DecodeBytes (_afdbf );if _fcdcg !=nil {return _fcdcg ;};_fcccc .Filter =encoder ;encoder .UpdateParams (_fcccc .getParamsDict ()); _afdbf ,_fcdcg =encoder .EncodeBytes (_bedad );if _fcdcg !=nil {return _fcdcg ;};_fcccc .Stream =_afdbf ;return nil ;}; // PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377). type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_eca .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _eca .PdfObject ;A _eca .PdfObject ;SE _eca .PdfObject ;C _eca .PdfObject ;F _eca .PdfObject ; _becge *_eca .PdfIndirectObject ;};func _ceaa (_fdae []byte )[]byte {const _cegf =52845;const _cadd =22719;_fagc :=55665;for _ ,_ccced :=range _fdae [:4]{_fagc =(int (_ccced )+_fagc )*_cegf +_cadd ;};_fedbf :=make ([]byte ,len (_fdae )-4);for _ceegb ,_eabgg :=range _fdae [4:]{_fedbf [_ceegb ]=byte (int (_eabgg )^_fagc >>8); _fagc =(int (_eabgg )+_fagc )*_cegf +_cadd ;};return _fedbf ;};func (_edgbe *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _edgbe ._ccec ==nil &&_edgbe .DescendantFont !=nil {return _edgbe .DescendantFont .FontDescriptor ();};return _edgbe ._ccec ; }; // SetFlag sets the flag for the field. func (_afeca *PdfField )SetFlag (flag FieldFlag ){_afeca .Ff =_eca .MakeInteger (int64 (flag ))}; // 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 (_cafgc *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _dbeca []*PdfField ;if _cafgc .AcroForm !=nil {_dbeca =_cafgc .AcroForm .AllFields ();};_efebf :=make (map[*PdfField ]struct{},len (_dbeca ));for _ ,_gefgg :=range _dbeca {_efebf [_gefgg ]=struct{}{}; };for _ ,_eceaecf :=range _cafgc .PageList {_beaa ,_cccff :=_eceaecf .GetAnnotations ();if _cccff !=nil {return false ,_cccff ;};for _ ,_cebfb :=range _beaa {_dgba ,_aeedb :=_cebfb .GetContext ().(*PdfAnnotationWidget );if !_aeedb {continue ;};_fgfg :=_dgba .Field (); if _fgfg ==nil {return true ,nil ;};if _ ,_gcceg :=_efebf [_fgfg ];!_gcceg {return true ,nil ;};};};return false ,nil ;}; // 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 (_cceb *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eacg ,_afgbc :=_eca .GetNumbersAsFloat (objects ); if _afgbc !=nil {return nil ,_afgbc ;};return _cceb .ColorFromFloats (_eacg );};func (_deeb *PdfReader )newPdfAnnotationSquigglyFromDict (_ggbc *_eca .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_bbdab :=PdfAnnotationSquiggly {};_ggea ,_daee :=_deeb .newPdfAnnotationMarkupFromDict (_ggbc ); if _daee !=nil {return nil ,_daee ;};_bbdab .PdfAnnotationMarkup =_ggea ;_bbdab .QuadPoints =_ggbc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_bbdab ,nil ;}; // B returns the value of the B component of the color. func (_ggfa *PdfColorLab )B ()float64 {return _ggfa [2]}; // GetNumComponents returns the number of color components (4 for CMYK32). func (_cega *PdfColorDeviceCMYK )GetNumComponents ()int {return 4}; // PdfAnnotationMarkup represents additional fields for mark-up annotations. // (Section 12.5.6.2 p. 399). type PdfAnnotationMarkup struct{T _eca .PdfObject ;Popup *PdfAnnotationPopup ;CA _eca .PdfObject ;RC _eca .PdfObject ;CreationDate _eca .PdfObject ;IRT _eca .PdfObject ;Subj _eca .PdfObject ;RT _eca .PdfObject ;IT _eca .PdfObject ;ExData _eca .PdfObject ; }; // PdfWriter handles outputing PDF content. type PdfWriter struct{_bggab *_eca .PdfIndirectObject ;_bceddb *_eca .PdfIndirectObject ;_eccgd map[_eca .PdfObject ]struct{};_daecf []_eca .PdfObject ;_ceace map[_eca .PdfObject ]struct{};_cafgb []*_eca .PdfIndirectObject ;_ccgeg *PdfOutlineTreeNode ; _eeggd *_eca .PdfObjectDictionary ;_bbee []_eca .PdfObject ;_fbegc *_eca .PdfIndirectObject ;_agbgb *_b .Writer ;_eggaf int64 ;_fafa error ;_badga *_eca .PdfCrypt ;_bbfae *_eca .PdfObjectDictionary ;_fdgaf *_eca .PdfIndirectObject ;_dadf *_eca .PdfObjectArray ; _dgab _eca .Version ;_edaga *bool ;_cbfcb map[_eca .PdfObject ][]*_eca .PdfObjectDictionary ;_bebb *PdfAcroForm ;_cgfccc Optimizer ;_bfgeb StandardApplier ;_eaad map[int ]crossReference ;_bggbc int64 ;ObjNumOffset int ;_ccdgb bool ;_acdbf _eca .XrefTable ; _dcggeb int64 ;_ffeaf int64 ;_abfag map[_eca .PdfObject ]int64 ;_aeedc map[_eca .PdfObject ]struct{};_gaafc string ;_bdgggc []*PdfOutputIntent ;_dagbd bool ;_aadc ,_fcbcc string ;};func _dceac ()_d .Time {_ccbac .Lock ();defer _ccbac .Unlock ();return _bddc }; func (_ecfeb *PdfAcroForm )filteredFields (_eaaa FieldFilterFunc ,_accdbd bool )[]*PdfField {if _ecfeb ==nil {return nil ;};return _cgeed (_ecfeb .Fields ,_eaaa ,_accdbd );}; // Add appends an outline item as a child of the current outline item. func (_gacc *OutlineItem )Add (item *OutlineItem ){_gacc .Entries =append (_gacc .Entries ,item )}; // GetDocMDPPermission returns the DocMDP level of the restrictions func (_dbcbc *PdfSignature )GetDocMDPPermission ()(_ecg .DocMDPPermission ,bool ){for _ ,_dbcae :=range _dbcbc .Reference .Elements (){if _gfcfba ,_afafc :=_eca .GetDict (_dbcae );_afafc {if _gcbd ,_bgeaf :=_eca .GetNameVal (_gfcfba .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064")); _bgeaf &&_gcbd =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _afef ,_cadb :=_eca .GetDict (_gfcfba .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_cadb {if P ,_ffad :=_eca .GetIntVal (_afef .Get ("\u0050"));_ffad {return _ecg .DocMDPPermission (P ),true ; };};};};};return 0,false ;}; // Clear clears flag fl from the flag and returns the resulting flag. func (_adcgbe FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_adcgbe .Mask ()&^fl .Mask ())}; // GetRuneMetrics returns the character metrics for the specified rune. // A bool flag is returned to indicate whether or not the entry was found. func (_abefe pdfCIDFontType2 )GetRuneMetrics (r rune )(_ffd .CharMetrics ,bool ){_ggcgf ,_dcceb :=_abefe ._dgdag [r ];if !_dcceb {_dfdc ,_fdff :=_eca .GetInt (_abefe .DW );if !_fdff {return _ffd .CharMetrics {},false ;};_ggcgf =int (*_dfdc );};return _ffd .CharMetrics {Wx :float64 (_ggcgf )},true ; }; // Flags returns the field flags for the field accounting for any inherited flags. func (_cfede *PdfField )Flags ()FieldFlag {var _bgcb FieldFlag ;_aegae ,_agf :=_cfede .inherit (func (_eacaa *PdfField )bool {if _eacaa .Ff !=nil {_bgcb =FieldFlag (*_eacaa .Ff );return true ;};return false ;});if _agf !=nil {_ccb .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",_agf ); };if !_aegae {_ccb .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 _bgcb ;}; // ImageToGray returns a new grayscale image based on the passed in RGB image. func (_bbedg *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_da .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"); };_aecg ,_bbfad :=_bbg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._gcgb ,img ._cfgaa );if _bbfad !=nil {return img ,_bbfad ;};_dgecd ,_bbfad :=_bbg .GrayConverter .Convert (_aecg ); if _bbfad !=nil {return img ,_bbfad ;};return _cggae (_dgecd .Base ()),nil ;}; // GetNumComponents returns the number of color components of the colorspace device. // Returns 1 for a grayscale device. func (_fece *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1}; // EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document. type EncryptionAlgorithm int ; // ToPdfObject returns the PDF representation of the shading dictionary. func (_fbadb *PdfShadingType5 )ToPdfObject ()_eca .PdfObject {_fbadb .PdfShading .ToPdfObject ();_cgddef ,_beebd :=_fbadb .getShadingDict ();if _beebd !=nil {_ccb .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 _fbadb .BitsPerCoordinate !=nil {_cgddef .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_fbadb .BitsPerCoordinate );};if _fbadb .BitsPerComponent !=nil {_cgddef .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fbadb .BitsPerComponent ); };if _fbadb .VerticesPerRow !=nil {_cgddef .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_fbadb .VerticesPerRow );};if _fbadb .Decode !=nil {_cgddef .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_fbadb .Decode ); };if _fbadb .Function !=nil {if len (_fbadb .Function )==1{_cgddef .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fbadb .Function [0].ToPdfObject ());}else {_caeae :=_eca .MakeArray ();for _ ,_ebbdd :=range _fbadb .Function {_caeae .Append (_ebbdd .ToPdfObject ()); };_cgddef .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_caeae );};};return _fbadb ._dcbe ;}; // BorderStyle defines border type, typically used for annotations. type BorderStyle int ; // SetName sets the `Name` field of the signature. func (_aeaefc *PdfSignature )SetName (name string ){_aeaefc .Name =_eca .MakeString (name )};var _gccefc =false ; // Encrypt encrypts the output file with a specified user/owner password. func (_fbgbaf *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_ddbbe :=RC4_128bit ;if options !=nil {_ddbbe =options .Algorithm ;};_ebcafd :=_bb .PermOwner ;if options !=nil {_ebcafd =options .Permissions ;};var _agafg _db .Filter ; switch _ddbbe {case RC4_128bit :_agafg =_db .NewFilterV2 (16);case AES_128bit :_agafg =_db .NewFilterAESV2 ();case AES_256bit :_agafg =_db .NewFilterAESV3 ();default:return _g .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm ); };_cade ,_ddcbb ,_fccgg :=_eca .PdfCryptNewEncrypt (_agafg ,userPass ,ownerPass ,_ebcafd );if _fccgg !=nil {return _fccgg ;};_fbgbaf ._badga =_cade ;if _ddcbb .Major !=0{_fbgbaf .SetVersion (_ddcbb .Major ,_ddcbb .Minor );};_fbgbaf ._bbfae =_ddcbb .Encrypt ; _fbgbaf ._aadc ,_fbgbaf ._fcbcc =_ddcbb .ID0 ,_ddcbb .ID1 ;_ddeca :=_eca .MakeIndirectObject (_ddcbb .Encrypt );_fbgbaf ._fdgaf =_ddeca ;_fbgbaf .addObject (_ddeca );return nil ;}; // SetDocInfo set document info. // This will overwrite any globally declared document info. func (_bddae *PdfWriter )SetDocInfo (info *PdfInfo ){_bddae .setDocInfo (info .ToPdfObject ())};func (_cdgeg *PdfReader )newPdfAcroFormFromDict (_eacge *_eca .PdfIndirectObject ,_ccea *_eca .PdfObjectDictionary )(*PdfAcroForm ,error ){_egbeb :=NewPdfAcroForm (); if _eacge !=nil {_egbeb ._aeac =_eacge ;_eacge .PdfObject =_eca .MakeDict ();};if _bfdgf :=_ccea .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_bfdgf !=nil &&!_eca .IsNullObject (_bfdgf ){_dffbb ,_fefg :=_eca .GetArray (_bfdgf );if !_fefg {return nil ,_g .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_bfdgf ); };var _ebcd []*PdfField ;for _ ,_ecdf :=range _dffbb .Elements (){_gcbf ,_afeaa :=_eca .GetIndirect (_ecdf );if !_afeaa {if _ ,_bedb :=_ecdf .(*_eca .PdfObjectNull );_bedb {_ccb .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 ;};_ccb .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",_ecdf ); return nil ,_g .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");};_ceege ,_fecgg :=_cdgeg .newPdfFieldFromIndirectObject (_gcbf ,nil ); if _fecgg !=nil {return nil ,_fecgg ;};_ccb .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_ceege );_ebcd =append (_ebcd ,_ceege );};_egbeb .Fields =&_ebcd ;};if _befbb :=_ccea .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073"); _befbb !=nil {_efdb ,_ggda :=_eca .GetBool (_befbb );if _ggda {_egbeb .NeedAppearances =_efdb ;}else {_ccb .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",_befbb ); };};if _ecec :=_ccea .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_ecec !=nil {_aggc ,_fcgdf :=_eca .GetInt (_ecec );if _fcgdf {_egbeb .SigFlags =_aggc ;}else {_ccb .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",_ecec ); };};if _eag :=_ccea .Get ("\u0043\u004f");_eag !=nil {_ffbab ,_bfgg :=_eca .GetArray (_eag );if _bfgg {_egbeb .CO =_ffbab ;}else {_ccb .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",_eag ); };};if _edbae :=_ccea .Get ("\u0044\u0052");_edbae !=nil {if _dadg ,_cddgd :=_eca .GetDict (_edbae );_cddgd {_bcgbb ,_egcgf :=NewPdfPageResourcesFromDict (_dadg );if _egcgf !=nil {_ccb .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_egcgf ); return nil ,_egcgf ;};_egbeb .DR =_bcgbb ;}else {_ccb .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",_edbae );};};if _bgddb :=_ccea .Get ("\u0044\u0041"); _bgddb !=nil {_bbceg ,_faafg :=_eca .GetString (_bgddb );if _faafg {_egbeb .DA =_bbceg ;}else {_ccb .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",_bgddb ); };};if _aegec :=_ccea .Get ("\u0051");_aegec !=nil {_fbde ,_dbeec :=_eca .GetInt (_aegec );if _dbeec {_egbeb .Q =_fbde ;}else {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_aegec ); };};if _cgfe :=_ccea .Get ("\u0058\u0046\u0041");_cgfe !=nil {_egbeb .XFA =_cgfe ;};if _adbg :=_ccea .Get ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e");_adbg !=nil {_egbeb .ADBEEchoSign =_adbg ;};_egbeb .ToPdfObject (); return _egbeb ,nil ;};func (_ceca *PdfReader )newPdfSignatureFromIndirect (_ffgc *_eca .PdfIndirectObject )(*PdfSignature ,error ){_bcba ,_becged :=_ffgc .PdfObject .(*_eca .PdfObjectDictionary );if !_becged {_ccb .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 _dddgc ,_fecdd :=_ceca ._dcddd .GetModelFromPrimitive (_ffgc ).(*PdfSignature );_fecdd {return _dddgc ,nil ;};_cagfc :=&PdfSignature {};_cagfc ._bfebg =_ffgc ;_cagfc .Type ,_ =_eca .GetName (_bcba .Get ("\u0054\u0079\u0070\u0065")); _cagfc .Filter ,_becged =_eca .GetName (_bcba .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_becged {_ccb .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 ;};_cagfc .SubFilter ,_ =_eca .GetName (_bcba .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_cagfc .Contents ,_becged =_eca .GetString (_bcba .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_becged {_ccb .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 _bbagge ,_dffdd :=_eca .GetArray (_bcba .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_dffdd {_cagfc .Reference =_eca .MakeArray ();for _ ,_bgfag :=range _bbagge .Elements (){_aeca ,_ffaba :=_eca .GetDict (_bgfag ); if !_ffaba {_ccb .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 ; };_beff ,_degad :=_ceca .newPdfSignatureReferenceFromDict (_aeca );if _degad !=nil {return nil ,_degad ;};_cagfc .Reference .Append (_beff .ToPdfObject ());};};_cagfc .Cert =_bcba .Get ("\u0043\u0065\u0072\u0074");_cagfc .ByteRange ,_ =_eca .GetArray (_bcba .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e")); _cagfc .Changes ,_ =_eca .GetArray (_bcba .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_cagfc .Name ,_ =_eca .GetString (_bcba .Get ("\u004e\u0061\u006d\u0065"));_cagfc .M ,_ =_eca .GetString (_bcba .Get ("\u004d"));_cagfc .Location ,_ =_eca .GetString (_bcba .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e")); _cagfc .Reason ,_ =_eca .GetString (_bcba .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_cagfc .ContactInfo ,_ =_eca .GetString (_bcba .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_cagfc .R ,_ =_eca .GetInt (_bcba .Get ("\u0052")); _cagfc .V ,_ =_eca .GetInt (_bcba .Get ("\u0056"));_cagfc .PropBuild ,_ =_eca .GetDict (_bcba .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_cagfc .PropAuthTime ,_ =_eca .GetInt (_bcba .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065")); _cagfc .PropAuthType ,_ =_eca .GetName (_bcba .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_ceca ._dcddd .Register (_ffgc ,_cagfc );return _cagfc ,nil ;}; // GetPdfInfo returns the PDF info dictionary. func (_gfbf *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_abcca ,_cgbcdc :=_gfbf .GetTrailer ();if _cgbcdc !=nil {return nil ,_cgbcdc ;};var _bgbgb *_eca .PdfObjectDictionary ;_fdfgg :=_abcca .Get ("\u0049\u006e\u0066\u006f");switch _fgecb :=_fdfgg .(type ){case *_eca .PdfObjectReference :_gfgff :=_fgecb ; _fdfgg ,_cgbcdc =_gfbf .GetIndirectObjectByNumber (int (_gfgff .ObjectNumber ));_fdfgg =_eca .TraceToDirectObject (_fdfgg );if _cgbcdc !=nil {return nil ,_cgbcdc ;};_bgbgb ,_ =_fdfgg .(*_eca .PdfObjectDictionary );case *_eca .PdfObjectDictionary :_bgbgb =_fgecb ; };if _bgbgb ==nil {return nil ,_da .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_gbefa ,_cgbcdc :=NewPdfInfoFromObject (_bgbgb );if _cgbcdc !=nil {return nil ,_cgbcdc ; };return _gbefa ,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 (_cgbfc *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _bdgf []*PdfField ;_dbbc :=map[*_eca .PdfIndirectObject ]struct{}{};for _ ,_abeff :=range _cgbfc .PageList {_eeddg ,_accdd :=_abeff .GetAnnotations ();if _accdd !=nil {return _accdd ; };for _ ,_fggcb :=range _eeddg {var _eeedd *PdfField ;switch _dbab :=_fggcb .GetContext ().(type ){case *PdfAnnotationWidget :if _dbab ._ebc !=nil {_eeedd =_dbab ._ebc ;break ;};if _fafd ,_ffffa :=_eca .GetIndirect (_dbab .Parent );_ffffa {_eeedd ,_accdd =_cgbfc .newPdfFieldFromIndirectObject (_fafd ,nil ); if _accdd ==nil {break ;};_ccb .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",_fafd ,_accdd ); };if _dbab ._cdc !=nil {_eeedd ,_accdd =_cgbfc .newPdfFieldFromIndirectObject (_dbab ._cdc ,nil );if _accdd ==nil {break ;};_ccb .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",_dbab ._cdc ,_accdd ); };};if _eeedd ==nil {continue ;};if _ ,_cfcde :=_dbbc [_eeedd ._geaa ];_cfcde {continue ;};_dbbc [_eeedd ._geaa ]=struct{}{};_bdgf =append (_bdgf ,_eeedd );};};if len (_bdgf )==0{return nil ;};if _cgbfc .AcroForm ==nil {_cgbfc .AcroForm =NewPdfAcroForm (); };_cgbfc .AcroForm .Fields =&_bdgf ;return nil ;}; // ToPdfObject implements model.PdfModel interface. func (_fdaec *PdfOutputIntent )ToPdfObject ()_eca .PdfObject {if _fdaec ._bfbdb ==nil {_fdaec ._bfbdb =_eca .MakeDict ();};_dgafee :=_fdaec ._bfbdb ;if _fdaec .Type !=""{_dgafee .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName (_fdaec .Type ));};_dgafee .Set ("\u0053",_eca .MakeName (_fdaec .S .String ())); if _fdaec .OutputCondition !=""{_dgafee .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_eca .MakeString (_fdaec .OutputCondition ));};_dgafee .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_eca .MakeString (_fdaec .OutputConditionIdentifier )); _dgafee .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_eca .MakeString (_fdaec .RegistryName ));if _fdaec .Info !=""{_dgafee .Set ("\u0049\u006e\u0066\u006f",_eca .MakeString (_fdaec .Info ));};if len (_fdaec .DestOutputProfile )!=0{_acdg ,_fadaa :=_eca .MakeStream (_fdaec .DestOutputProfile ,_eca .NewFlateEncoder ()); if _fadaa !=nil {_ccb .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",_fadaa ); };_acdg .PdfObjectDictionary .Set ("\u004e",_eca .MakeInteger (int64 (_fdaec .ColorComponents )));_ddgdg :=make ([]float64 ,_fdaec .ColorComponents *2);for _bfcd :=0;_bfcd < _fdaec .ColorComponents *2;_bfcd ++{_dbccd :=0.0;if _bfcd %2!=0{_dbccd =1.0;}; _ddgdg [_bfcd ]=_dbccd ;};_acdg .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_eca .MakeArrayFromFloats (_ddgdg ));_dgafee .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_acdg );};return _dgafee ; }; // ToOutlineTree returns a low level PdfOutlineTreeNode object, based on // the current instance. func (_gdggc *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_gdggc .ToPdfOutline ().PdfOutlineTreeNode ;}; // Has checks if flag fl is set in flag and returns true if so, false otherwise. func (_bcbgf FieldFlag )Has (fl FieldFlag )bool {return (_bcbgf .Mask ()&fl .Mask ())> 0}; // CustomKeys returns all custom info keys as list. func (_gbcg *PdfInfo )CustomKeys ()[]string {if _gbcg ._bcfd ==nil {return nil ;};_becfb :=make ([]string ,len (_gbcg ._bcfd .Keys ()));for _ ,_baef :=range _gbcg ._bcfd .Keys (){_becfb =append (_becfb ,_baef .String ());};return _becfb ;};func (_bba *PdfReader )newPdfActionResetFormFromDict (_eda *_eca .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_eda .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_eda .Get ("\u0046\u006c\u0061g\u0073")},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 (_aceef *LTV )EnableChain (chain []*_ad .Certificate )error {return _aceef .enable (nil ,chain ,"")}; // ToPdfObject implements interface PdfModel. func (_dfdf *PdfAnnotationCircle )ToPdfObject ()_eca .PdfObject {_dfdf .PdfAnnotation .ToPdfObject ();_afgb :=_dfdf ._cdc ;_eade :=_afgb .PdfObject .(*_eca .PdfObjectDictionary );_dfdf .PdfAnnotationMarkup .appendToPdfDictionary (_eade );_eade .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065")); _eade .SetIfNotNil ("\u0042\u0053",_dfdf .BS );_eade .SetIfNotNil ("\u0049\u0043",_dfdf .IC );_eade .SetIfNotNil ("\u0042\u0045",_dfdf .BE );_eade .SetIfNotNil ("\u0052\u0044",_dfdf .RD );return _afgb ;}; // PdfShadingType1 is a Function-based shading. type PdfShadingType1 struct{*PdfShading ;Domain *_eca .PdfObjectArray ;Matrix *_eca .PdfObjectArray ;Function []PdfFunction ;}; // NewPdfActionJavaScript returns a new "javaScript" action. func NewPdfActionJavaScript ()*PdfActionJavaScript {_fdg :=NewPdfAction ();_gae :=&PdfActionJavaScript {};_gae .PdfAction =_fdg ;_fdg .SetContext (_gae );return _gae ;}; // ParsePdfObject parses input pdf object into given output intent. func (_efgb *PdfOutputIntent )ParsePdfObject (object _eca .PdfObject )error {_ggddf ,_ffea :=_eca .GetDict (object );if !_ffea {_ccb .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 _da .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"); };_efgb ._bfbdb =_ggddf ;_efgb .Type ,_ =_ggddf .GetString ("\u0054\u0079\u0070\u0065");_fbbdd ,_ffea :=_ggddf .GetString ("\u0053");if _ffea {switch _fbbdd {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_efgb .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_efgb .S =PdfOutputIntentTypeA2 ; case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_efgb .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_efgb .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_efgb .S =PdfOutputIntentTypeX ; };};_efgb .OutputCondition ,_ =_ggddf .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_efgb .OutputConditionIdentifier ,_ =_ggddf .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r"); _efgb .RegistryName ,_ =_ggddf .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_efgb .Info ,_ =_ggddf .GetString ("\u0049\u006e\u0066\u006f");if _bggcc ,_daea :=_eca .GetStream (_ggddf .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065")); _daea {_efgb .ColorComponents ,_ =_eca .GetIntVal (_bggcc .Get ("\u004e"));_gfcd ,_ddfgg :=_eca .DecodeStream (_bggcc );if _ddfgg !=nil {return _ddfgg ;};_efgb .DestOutputProfile =_gfcd ;};return nil ;}; // ToPdfObject implements interface PdfModel. func (_faab *PdfAnnotationPrinterMark )ToPdfObject ()_eca .PdfObject {_faab .PdfAnnotation .ToPdfObject ();_dgef :=_faab ._cdc ;_aace :=_dgef .PdfObject .(*_eca .PdfObjectDictionary );_aace .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b")); _aace .SetIfNotNil ("\u004d\u004e",_faab .MN );return _dgef ;}; // ToPdfObject returns the PDF representation of the DSS dictionary. func (_bdcc *DSS )ToPdfObject ()_eca .PdfObject {_afafe :=_bdcc ._cdaa .PdfObject .(*_eca .PdfObjectDictionary );_afafe .Clear ();_aafdf :=_eca .MakeDict ();for _daae ,_aebae :=range _bdcc .VRI {_aafdf .Set (*_eca .MakeName (_daae ),_aebae .ToPdfObject ()); };_afafe .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_gaged (_bdcc .Certs ));_afafe .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_gaged (_bdcc .OCSPs ));_afafe .SetIfNotNil ("\u0043\u0052\u004c\u0073",_gaged (_bdcc .CRLs ));_afafe .Set ("\u0056\u0052\u0049",_aafdf ); return _bdcc ._cdaa ;}; // 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 ;_agcab *_eca .PdfIndirectObject ;}; // SetOCProperties sets the optional content properties. func (_abdaec *PdfWriter )SetOCProperties (ocProperties _eca .PdfObject )error {_fadaac :=_abdaec ._eeggd ;if ocProperties !=nil {_ccb .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e"); _fadaac .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _abdaec .addObjects (ocProperties );};return nil ;};func (_abecc *pdfFontType0 )bytesToCharcodes (_acgc []byte )([]_dbb .CharCode ,bool ){if _abecc ._bfefe ==nil {return nil ,false ; };_deae ,_fgeg :=_abecc ._bfefe .BytesToCharcodes (_acgc );if !_fgeg {return nil ,false ;};_dcfbg :=make ([]_dbb .CharCode ,len (_deae ));for _abcfa ,_bcede :=range _deae {_dcfbg [_abcfa ]=_dbb .CharCode (_bcede );};return _dcfbg ,true ;};func (_eab *PdfReader )newPdfActionGoTo3DViewFromDict (_bcd *_eca .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_bcd .Get ("\u0054\u0041"),V :_bcd .Get ("\u0056")},nil ; }; // NewPdfActionGoTo3DView returns a new "goTo3DView" action. func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_df :=NewPdfAction ();_dge :=&PdfActionGoTo3DView {};_dge .PdfAction =_df ;_df .SetContext (_dge );return _dge ;}; // NewPdfActionGoTo returns a new "go to" action. func NewPdfActionGoTo ()*PdfActionGoTo {_cad :=NewPdfAction ();_fd :=&PdfActionGoTo {};_fd .PdfAction =_cad ;_cad .SetContext (_fd );return _fd ;}; // SetContext set the sub annotation (context). func (_bcfff *PdfShading )SetContext (ctx PdfModel ){_bcfff ._abefa =ctx };var _ pdfFont =(*pdfFontType0 )(nil ); // ToPdfObject implements interface PdfModel. func (_aeafb *PdfAnnotationFreeText )ToPdfObject ()_eca .PdfObject {_aeafb .PdfAnnotation .ToPdfObject ();_cgbce :=_aeafb ._cdc ;_fffc :=_cgbce .PdfObject .(*_eca .PdfObjectDictionary );_aeafb .PdfAnnotationMarkup .appendToPdfDictionary (_fffc );_fffc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074")); _fffc .SetIfNotNil ("\u0044\u0041",_aeafb .DA );_fffc .SetIfNotNil ("\u0051",_aeafb .Q );_fffc .SetIfNotNil ("\u0052\u0043",_aeafb .RC );_fffc .SetIfNotNil ("\u0044\u0053",_aeafb .DS );_fffc .SetIfNotNil ("\u0043\u004c",_aeafb .CL );_fffc .SetIfNotNil ("\u0049\u0054",_aeafb .IT ); _fffc .SetIfNotNil ("\u0042\u0045",_aeafb .BE );_fffc .SetIfNotNil ("\u0052\u0044",_aeafb .RD );_fffc .SetIfNotNil ("\u0042\u0053",_aeafb .BS );_fffc .SetIfNotNil ("\u004c\u0045",_aeafb .LE );return _cgbce ;};func (_agce *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"}; // AddContentStreamByString adds content stream by string. Puts the content // string into a stream object and points the content stream towards it. func (_faddc *PdfPage )AddContentStreamByString (contentStr string )error {_abbca ,_fface :=_eca .MakeStream ([]byte (contentStr ),_eca .NewFlateEncoder ());if _fface !=nil {return _fface ;};if _faddc .Contents ==nil {_faddc .Contents =_abbca ;}else {_abebd :=_eca .TraceToDirectObject (_faddc .Contents ); _eaaaf ,_ccdec :=_abebd .(*_eca .PdfObjectArray );if !_ccdec {_eaaaf =_eca .MakeArray (_abebd );};_eaaaf .Append (_abbca );_faddc .Contents =_eaaaf ;};return nil ;};func _dgedc (_ffag *_eca .PdfObjectDictionary )*VRI {_ageaf ,_ :=_eca .GetString (_ffag .Get ("\u0054\u0055")); _fdeac ,_ :=_eca .GetString (_ffag .Get ("\u0054\u0053"));return &VRI {Cert :_abcgdc (_ffag .Get ("\u0043\u0065\u0072\u0074")),OCSP :_abcgdc (_ffag .Get ("\u004f\u0043\u0053\u0050")),CRL :_abcgdc (_ffag .Get ("\u0043\u0052\u004c")),TU :_ageaf ,TS :_fdeac }; };const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);func (_acdgb *PdfWriter )hasObject (_gcceff _eca .PdfObject )bool {_ ,_eecce :=_acdgb ._ceace [_gcceff ];return _eecce ;}; // PdfColorspaceDeviceGray represents a grayscale colorspace. type PdfColorspaceDeviceGray struct{}; // NewPdfAnnotationCaret returns a new caret annotation. func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_cefc :=NewPdfAnnotation ();_bage :=&PdfAnnotationCaret {};_bage .PdfAnnotation =_cefc ;_bage .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cefc .SetContext (_bage );return _bage ;}; // PdfShadingType3 is a Radial shading. type PdfShadingType3 struct{*PdfShading ;Coords *_eca .PdfObjectArray ;Domain *_eca .PdfObjectArray ;Function []PdfFunction ;Extend *_eca .PdfObjectArray ;}; // String returns a string representation of PdfTransformParamsDocMDP. func (_efegc *PdfTransformParamsDocMDP )String ()string {return _g .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_efegc .Type ,_efegc .P ,_efegc .V );}; // PdfColorCalGray represents a CalGray colorspace. type PdfColorCalGray float64 ; // NewPdfActionResetForm returns a new "reset form" action. func NewPdfActionResetForm ()*PdfActionResetForm {_adf :=NewPdfAction ();_aaa :=&PdfActionResetForm {};_aaa .PdfAction =_adf ;_adf .SetContext (_aaa );return _aaa ;};func (_cbcf *PdfReader )newPdfAnnotationHighlightFromDict (_ecgd *_eca .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_cddd :=PdfAnnotationHighlight {}; _ebfc ,_gaa :=_cbcf .newPdfAnnotationMarkupFromDict (_ecgd );if _gaa !=nil {return nil ,_gaa ;};_cddd .PdfAnnotationMarkup =_ebfc ;_cddd .QuadPoints =_ecgd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_cddd ,nil ;}; // PdfActionThread represents a thread action. type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _eca .PdfObject ;B _eca .PdfObject ;}; // PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh. type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_eca .PdfObjectInteger ;BitsPerComponent *_eca .PdfObjectInteger ;BitsPerFlag *_eca .PdfObjectInteger ;Decode *_eca .PdfObjectArray ;Function []PdfFunction ;}; // ImageToRGB convert an indexed image to RGB. func (_cbbe *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_cbbe .Base .GetNumComponents ();if N < 1{return Image {},_g .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 ); };_ggagc :=_bbg .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._gcgb ,img ._cfgaa );_bgace :=_bf .NewReader (img .getBase ());_dgdg :=_bf .NewWriter (_ggagc );var (_efce uint32 ;_bgeb int ;_bcga error ;);for {_efce ,_bcga =_bgace .ReadSample (); if _bcga ==_beg .EOF {break ;}else if _bcga !=nil {return img ,_bcga ;};_bgeb =int (_efce );_ccb .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",_bgeb ,N ,len (_cbbe ._eaea )); if (_bgeb +1)*N > len (_cbbe ._eaea ){_bgeb =len (_cbbe ._eaea )/N -1;_ccb .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_bgeb );if _bgeb < 0{_ccb .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 _daca :=_bgeb *N ;_daca < (_bgeb +1)*N ;_daca ++{if _bcga =_dgdg .WriteSample (uint32 (_cbbe ._eaea [_daca ]));_bcga !=nil {return img ,_bcga ;};};};return _cbbe .Base .ImageToRGB (_cggae (&_ggagc ));};func (_gbeaa *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"}; func (_ffab *PdfReader )traverseObjectData (_ebdcc _eca .PdfObject )error {return _eca .ResolveReferencesDeep (_ebdcc ,_ffab ._fgbbd );}; // 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 (_gegfgb int ,_gdafc *PdfPage );var _ pdfFont =(*pdfCIDFontType2 )(nil ); // ImageToRGB converts ICCBased colorspace image to RGB and returns the result. func (_gfgg *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _gfgg .Alternate ==nil {_ccb .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 _gfgg .N ==1{_ccb .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"); _eefac :=NewPdfColorspaceDeviceGray ();return _eefac .ImageToRGB (img );}else if _gfgg .N ==3{_ccb .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 _gfgg .N ==4{_ccb .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"); _caec :=NewPdfColorspaceDeviceCMYK ();return _caec .ImageToRGB (img );}else {return img ,_da .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"); };};_ccb .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",_gfgg ); _efcbg ,_bebf :=_gfgg .Alternate .ImageToRGB (img );_ccb .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_ccb .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_efcbg ); return _efcbg ,_bebf ;}; // NewPdfFieldSignature returns an initialized signature field. func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_fecgf :=&PdfFieldSignature {};_fecgf .PdfField =NewPdfField ();_fecgf .PdfField .SetContext (_fecgf );_fecgf .PdfAnnotationWidget =NewPdfAnnotationWidget ();_fecgf .PdfAnnotationWidget .SetContext (_fecgf ); _fecgf .PdfAnnotationWidget ._cdc =_fecgf .PdfField ._geaa ;_fecgf .T =_eca .MakeString ("");_fecgf .F =_eca .MakeInteger (132);_fecgf .V =signature ;return _fecgf ;};func (_fcfde *PdfWriter )writeObjectsInStreams (_adda map[_eca .PdfObject ]bool )error {for _ ,_caffe :=range _fcfde ._daecf {if _agebd :=_adda [_caffe ]; _agebd {continue ;};_acdgf :=int64 (0);switch _aeafg :=_caffe .(type ){case *_eca .PdfIndirectObject :_acdgf =_aeafg .ObjectNumber ;case *_eca .PdfObjectStream :_acdgf =_aeafg .ObjectNumber ;case *_eca .PdfObjectStreams :_acdgf =_aeafg .ObjectNumber ;default:_ccb .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",_caffe ); return ErrTypeCheck ;};if _fcfde ._badga !=nil &&_caffe !=_fcfde ._fdgaf {_bcfaa :=_fcfde ._badga .Encrypt (_caffe ,_acdgf ,0);if _bcfaa !=nil {_ccb .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",_bcfaa ); return _bcfaa ;};};_fcfde .writeObject (int (_acdgf ),_caffe );};return nil ;};func (_gbcb *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";}; // GetContainingPdfObject returns the container of the resources object (indirect object). func (_cgff *PdfPageResources )GetContainingPdfObject ()_eca .PdfObject {return _cgff ._gcbce }; // ToPdfObject sets the common field elements. // Note: Call the more field context's ToPdfObject to set both the generic and // non-generic information. func (_fggf *PdfField )ToPdfObject ()_eca .PdfObject {_gbaeg :=_fggf ._geaa ;_ecdg :=_gbaeg .PdfObject .(*_eca .PdfObjectDictionary );_faedd :=_eca .MakeArray ();for _ ,_ecgca :=range _fggf .Kids {_faedd .Append (_ecgca .ToPdfObject ());};for _ ,_cebc :=range _fggf .Annotations {if _cebc ._cdc !=_fggf ._geaa {_faedd .Append (_cebc .GetContext ().ToPdfObject ()); };};if _fggf .Parent !=nil {_ecdg .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_fggf .Parent .GetContainingPdfObject ());};if _faedd .Len ()> 0{_ecdg .Set ("\u004b\u0069\u0064\u0073",_faedd );};_ecdg .SetIfNotNil ("\u0046\u0054",_fggf .FT );_ecdg .SetIfNotNil ("\u0054",_fggf .T ); _ecdg .SetIfNotNil ("\u0054\u0055",_fggf .TU );_ecdg .SetIfNotNil ("\u0054\u004d",_fggf .TM );_ecdg .SetIfNotNil ("\u0046\u0066",_fggf .Ff );_ecdg .SetIfNotNil ("\u0056",_fggf .V );_ecdg .SetIfNotNil ("\u0044\u0056",_fggf .DV );_ecdg .SetIfNotNil ("\u0041\u0041",_fggf .AA ); if _fggf .VariableText !=nil {_ecdg .SetIfNotNil ("\u0044\u0041",_fggf .VariableText .DA );_ecdg .SetIfNotNil ("\u0051",_fggf .VariableText .Q );_ecdg .SetIfNotNil ("\u0044\u0053",_fggf .VariableText .DS );_ecdg .SetIfNotNil ("\u0052\u0056",_fggf .VariableText .RV ); };return _gbaeg ;}; // ToPdfObject implements interface PdfModel. func (_dafa *PdfAnnotationInk )ToPdfObject ()_eca .PdfObject {_dafa .PdfAnnotation .ToPdfObject ();_edce :=_dafa ._cdc ;_dgaf :=_edce .PdfObject .(*_eca .PdfObjectDictionary );_dafa .PdfAnnotationMarkup .appendToPdfDictionary (_dgaf );_dgaf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0049\u006e\u006b")); _dgaf .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_dafa .InkList );_dgaf .SetIfNotNil ("\u0042\u0053",_dafa .BS );return _edce ;};func (_fb *PdfReader )newPdfActionFromIndirectObject (_gfb *_eca .PdfIndirectObject )(*PdfAction ,error ){_aea ,_bgg :=_gfb .PdfObject .(*_eca .PdfObjectDictionary ); if !_bgg {return nil ,_g .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 :=_fb ._dcddd .GetModelFromPrimitive (_aea );model !=nil {_bgff ,_dce :=model .(*PdfAction );if !_dce {return nil ,_g .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 _bgff ,nil ;};_ab :=&PdfAction {};_ab ._bee =_gfb ;_fb ._dcddd .Register (_aea ,_ab );if _bbgf :=_aea .Get ("\u0054\u0079\u0070\u0065");_bbgf !=nil {_acb ,_edeb :=_bbgf .(*_eca .PdfObjectName );if !_edeb {_ccb .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",_bbgf ); }else {if *_acb !="\u0041\u0063\u0074\u0069\u006f\u006e"{_ccb .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",*_acb ); };_ab .Type =_acb ;};};if _dae :=_aea .Get ("\u004e\u0065\u0078\u0074");_dae !=nil {_ab .Next =_dae ;};if _bgc :=_aea .Get ("\u0053");_bgc !=nil {_ab .S =_bgc ;};_gdg ,_acbc :=_ab .S .(*_eca .PdfObjectName );if !_acbc {_ccb .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",_ab .S ); return nil ,_g .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",_ab .S );};_faa :=PdfActionType (_gdg .String ());switch _faa {case ActionTypeGoTo :_fg ,_bfec :=_fb .newPdfActionGotoFromDict (_aea ); if _bfec !=nil {return nil ,_bfec ;};_fg .PdfAction =_ab ;_ab ._cd =_fg ;return _ab ,nil ;case ActionTypeGoToR :_ead ,_gcc :=_fb .newPdfActionGotoRFromDict (_aea );if _gcc !=nil {return nil ,_gcc ;};_ead .PdfAction =_ab ;_ab ._cd =_ead ;return _ab ,nil ; case ActionTypeGoToE :_bec ,_dff :=_fb .newPdfActionGotoEFromDict (_aea );if _dff !=nil {return nil ,_dff ;};_bec .PdfAction =_ab ;_ab ._cd =_bec ;return _ab ,nil ;case ActionTypeLaunch :_gcb ,_dbe :=_fb .newPdfActionLaunchFromDict (_aea );if _dbe !=nil {return nil ,_dbe ; };_gcb .PdfAction =_ab ;_ab ._cd =_gcb ;return _ab ,nil ;case ActionTypeThread :_bae ,_bbf :=_fb .newPdfActionThreadFromDict (_aea );if _bbf !=nil {return nil ,_bbf ;};_bae .PdfAction =_ab ;_ab ._cd =_bae ;return _ab ,nil ;case ActionTypeURI :_gbe ,_adb :=_fb .newPdfActionURIFromDict (_aea ); if _adb !=nil {return nil ,_adb ;};_gbe .PdfAction =_ab ;_ab ._cd =_gbe ;return _ab ,nil ;case ActionTypeSound :_gga ,_ffge :=_fb .newPdfActionSoundFromDict (_aea );if _ffge !=nil {return nil ,_ffge ;};_gga .PdfAction =_ab ;_ab ._cd =_gga ;return _ab ,nil ; case ActionTypeMovie :_dbee ,_fgd :=_fb .newPdfActionMovieFromDict (_aea );if _fgd !=nil {return nil ,_fgd ;};_dbee .PdfAction =_ab ;_ab ._cd =_dbee ;return _ab ,nil ;case ActionTypeHide :_bbc ,_ege :=_fb .newPdfActionHideFromDict (_aea );if _ege !=nil {return nil ,_ege ; };_bbc .PdfAction =_ab ;_ab ._cd =_bbc ;return _ab ,nil ;case ActionTypeNamed :_cecf ,_gec :=_fb .newPdfActionNamedFromDict (_aea );if _gec !=nil {return nil ,_gec ;};_cecf .PdfAction =_ab ;_ab ._cd =_cecf ;return _ab ,nil ;case ActionTypeSubmitForm :_bfb ,_geb :=_fb .newPdfActionSubmitFormFromDict (_aea ); if _geb !=nil {return nil ,_geb ;};_bfb .PdfAction =_ab ;_ab ._cd =_bfb ;return _ab ,nil ;case ActionTypeResetForm :_gea ,_gbb :=_fb .newPdfActionResetFormFromDict (_aea );if _gbb !=nil {return nil ,_gbb ;};_gea .PdfAction =_ab ;_ab ._cd =_gea ;return _ab ,nil ; case ActionTypeImportData :_dea ,_gab :=_fb .newPdfActionImportDataFromDict (_aea );if _gab !=nil {return nil ,_gab ;};_dea .PdfAction =_ab ;_ab ._cd =_dea ;return _ab ,nil ;case ActionTypeSetOCGState :_fffa ,_fgdd :=_fb .newPdfActionSetOCGStateFromDict (_aea ); if _fgdd !=nil {return nil ,_fgdd ;};_fffa .PdfAction =_ab ;_ab ._cd =_fffa ;return _ab ,nil ;case ActionTypeRendition :_fbd ,_dfa :=_fb .newPdfActionRenditionFromDict (_aea );if _dfa !=nil {return nil ,_dfa ;};_fbd .PdfAction =_ab ;_ab ._cd =_fbd ;return _ab ,nil ; case ActionTypeTrans :_dgf ,_gba :=_fb .newPdfActionTransFromDict (_aea );if _gba !=nil {return nil ,_gba ;};_dgf .PdfAction =_ab ;_ab ._cd =_dgf ;return _ab ,nil ;case ActionTypeGoTo3DView :_dfc ,_ag :=_fb .newPdfActionGoTo3DViewFromDict (_aea );if _ag !=nil {return nil ,_ag ; };_dfc .PdfAction =_ab ;_ab ._cd =_dfc ;return _ab ,nil ;case ActionTypeJavaScript :_bdfg ,_cbbc :=_fb .newPdfActionJavaScriptFromDict (_aea );if _cbbc !=nil {return nil ,_cbbc ;};_bdfg .PdfAction =_ab ;_ab ._cd =_bdfg ;return _ab ,nil ;};_ccb .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",_faa ); return nil ,nil ;}; // NewPdfAnnotation returns an initialized generic PDF annotation model. func NewPdfAnnotation ()*PdfAnnotation {_fffe :=&PdfAnnotation {};_fffe ._cdc =_eca .MakeIndirectObject (_eca .MakeDict ());return _fffe ;}; // GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this. func (_ddfad *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _ddfad ._cegb .(*PdfShadingPattern );}; // ToPdfObject implements interface PdfModel. func (_cbedc *PdfSignatureReference )ToPdfObject ()_eca .PdfObject {_gdgaf :=_eca .MakeDict ();_gdgaf .SetIfNotNil ("\u0054\u0079\u0070\u0065",_cbedc .Type );_gdgaf .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_cbedc .TransformMethod ); _gdgaf .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_cbedc .TransformParams );_gdgaf .SetIfNotNil ("\u0044\u0061\u0074\u0061",_cbedc .Data );_gdgaf .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_cbedc .DigestMethod ); return _gdgaf ;}; // NewPdfAnnotationInk returns a new ink annotation. func NewPdfAnnotationInk ()*PdfAnnotationInk {_aff :=NewPdfAnnotation ();_bbec :=&PdfAnnotationInk {};_bbec .PdfAnnotation =_aff ;_bbec .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aff .SetContext (_bbec );return _bbec ;}; // SetVersion sets the PDF version of the output file. func (_edabf *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_edabf ._dgab .Major =majorVersion ;_edabf ._dgab .Minor =minorVersion ;}; // HasFontByName checks if has font resource by name. func (_afgc *PdfPage )HasFontByName (name _eca .PdfObjectName )bool {_dafd ,_beefd :=_afgc .Resources .Font .(*_eca .PdfObjectDictionary );if !_beefd {return false ;};if _dgffc :=_dafd .Get (name );_dgffc !=nil {return true ;};return false ;}; // ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup] func (_aedc *PdfColorspaceSpecialIndexed )ToPdfObject ()_eca .PdfObject {_cagac :=_eca .MakeArray (_eca .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_cagac .Append (_aedc .Base .ToPdfObject ());_cagac .Append (_eca .MakeInteger (int64 (_aedc .HiVal ))); _cagac .Append (_aedc .Lookup );if _aedc ._dbcc !=nil {_aedc ._dbcc .PdfObject =_cagac ;return _aedc ._dbcc ;};return _cagac ;}; // GetContainingPdfObject returns the container of the DSS (indirect object). func (_fffda *DSS )GetContainingPdfObject ()_eca .PdfObject {return _fffda ._cdaa }; // 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 (_cdeae *PdfReader )GetObjectNums ()[]int {return _cdeae ._ecfeba .GetObjectNums ()};type pdfSignDictionary struct{*_eca .PdfObjectDictionary ;_ceaad *SignatureHandler ;_eacaae *PdfSignature ;_fegcb int64 ;_cbdga int ;_aaead int ;_aagfc int ;_fgbbb int ; }; // Read reads an image and loads into a new Image object with an RGB // colormap and 8 bits per component. func (_effff DefaultImageHandler )Read (reader _beg .Reader )(*Image ,error ){_becd ,_ ,_gbegb :=_cc .Decode (reader );if _gbegb !=nil {_ccb .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_gbegb ); return nil ,_gbegb ;};return _effff .NewImageFromGoImage (_becd );}; // 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 ;_bffgb *_eca .PdfObjectDictionary ;}; // GetNumComponents returns the number of color components (3 for Lab). func (_efcb *PdfColorLab )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{_fdgfa *_eca .PdfObjectDictionary ;Type *_eca .PdfObjectName ;TransformMethod *_eca .PdfObjectName ;TransformParams _eca .PdfObject ;Data _eca .PdfObject ;DigestMethod *_eca .PdfObjectName ;}; // ToPdfObject implements interface PdfModel. func (_fceg *PdfAnnotationWatermark )ToPdfObject ()_eca .PdfObject {_fceg .PdfAnnotation .ToPdfObject ();_bcbc :=_fceg ._cdc ;_cbcfc :=_bcbc .PdfObject .(*_eca .PdfObjectDictionary );_cbcfc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k")); _cbcfc .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_fceg .FixedPrint );return _bcbc ;}; // SetSubtype sets the Subtype S for given PdfOutputIntent. func (_fadde *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _da .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"); };_fadde .S =subtype ;return nil ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_caaga *PdfShadingType4 )ToPdfObject ()_eca .PdfObject {_caaga .PdfShading .ToPdfObject ();_ebgae ,_cddaf :=_caaga .getShadingDict ();if _cddaf !=nil {_ccb .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 _caaga .BitsPerCoordinate !=nil {_ebgae .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_caaga .BitsPerCoordinate );};if _caaga .BitsPerComponent !=nil {_ebgae .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_caaga .BitsPerComponent ); };if _caaga .BitsPerFlag !=nil {_ebgae .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_caaga .BitsPerFlag );};if _caaga .Decode !=nil {_ebgae .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_caaga .Decode );};if _caaga .Function !=nil {if len (_caaga .Function )==1{_ebgae .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_caaga .Function [0].ToPdfObject ()); }else {_egbaa :=_eca .MakeArray ();for _ ,_ggcdd :=range _caaga .Function {_egbaa .Append (_ggcdd .ToPdfObject ());};_ebgae .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_egbaa );};};return _caaga ._dcbe ;}; // GetCharMetrics returns the char metrics for character code `code`. func (_cgga pdfCIDFontType0 )GetCharMetrics (code _dbb .CharCode )(_ffd .CharMetrics ,bool ){_fcea :=_cgga ._eegbc ;if _cbeae ,_eabeg :=_cgga ._ccfe [code ];_eabeg {_fcea =_cbeae ;};return _ffd .CharMetrics {Wx :_fcea },true ;};func _gbab (_ffac *_eca .PdfIndirectObject ,_babe *_eca .PdfObjectDictionary )(*DSS ,error ){if _ffac ==nil {_ffac =_eca .MakeIndirectObject (nil ); };_ffac .PdfObject =_eca .MakeDict ();_ccca :=map[string ]*VRI {};if _dgecb ,_ffbf :=_eca .GetDict (_babe .Get ("\u0056\u0052\u0049"));_ffbf {for _ ,_cafcf :=range _dgecb .Keys (){if _ddab ,_cfdgg :=_eca .GetDict (_dgecb .Get (_cafcf ));_cfdgg {_ccca [_ec .ToUpper (_cafcf .String ())]=_dgedc (_ddab ); };};};return &DSS {Certs :_abcgdc (_babe .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_abcgdc (_babe .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_abcgdc (_babe .Get ("\u0043\u0052\u004c\u0073")),VRI :_ccca ,_cdaa :_ffac },nil ;}; // NewPdfColorPattern returns an empty color pattern. func NewPdfColorPattern ()*PdfColorPattern {_dafe :=&PdfColorPattern {};return _dafe };func _degfg (_eccdg _eca .PdfObject ,_bcbeg *PdfReader )(*OutlineDest ,error ){_efbgf ,_ebdd :=_eca .GetArray (_eccdg );if !_ebdd {return nil ,_da .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"); };_dccg :=_efbgf .Len ();if _dccg < 2{return nil ,_g .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",_dccg ); };_cfcbb :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_bdbag :=_efbgf .Get (0);if _agfc ,_eceaec :=_eca .GetIndirect (_bdbag );_eceaec {if _ ,_febgd ,_faee :=_bcbeg .PageFromIndirectObject (_agfc );_faee ==nil {_cfcbb .Page =int64 (_febgd -1);}else {_ccb .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",_agfc ); };_cfcbb .PageObj =_agfc ;}else if _gbdcf ,_fgaa :=_eca .GetIntVal (_bdbag );_fgaa {if _gbdcf >=0&&_gbdcf < len (_bcbeg .PageList ){_cfcbb .PageObj =_bcbeg .PageList [_gbdcf ].GetPageAsIndirectObject ();}else {_ccb .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",_gbdcf ); };_cfcbb .Page =int64 (_gbdcf );}else {return nil ,_g .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",_bdbag );};_ffbg ,_ebdd :=_eca .GetNameVal (_efbgf .Get (1)); if !_ebdd {_ccb .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",_efbgf .Get (1)); return _cfcbb ,nil ;};switch _ffbg {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _dccg > 2{_cfcbb .Y ,_ =_eca .GetNumberAsFloat (_eca .TraceToDirectObject (_efbgf .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _dccg > 2{_cfcbb .X ,_ =_eca .GetNumberAsFloat (_eca .TraceToDirectObject (_efbgf .Get (2))); };case "\u0058\u0059\u005a":if _dccg > 4{_cfcbb .X ,_ =_eca .GetNumberAsFloat (_eca .TraceToDirectObject (_efbgf .Get (2)));_cfcbb .Y ,_ =_eca .GetNumberAsFloat (_eca .TraceToDirectObject (_efbgf .Get (3)));_cfcbb .Zoom ,_ =_eca .GetNumberAsFloat (_eca .TraceToDirectObject (_efbgf .Get (4))); };default:_ffbg ="\u0046\u0069\u0074";};_cfcbb .Mode =_ffbg ;return _cfcbb ,nil ;};func _accgb (_ggge _eca .PdfObject ,_cccag *fontCommon )(*_ded .CMap ,error ){_debb ,_agcc :=_eca .GetStream (_ggge );if !_agcc {_ccb .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",_ggge ); return nil ,_eca .ErrTypeError ;};_bfede ,_aedfe :=_eca .DecodeStream (_debb );if _aedfe !=nil {return nil ,_aedfe ;};_egafc ,_aedfe :=_ded .LoadCmapFromData (_bfede ,!_cccag .isCIDFont ());if _aedfe !=nil {_ccb .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",_debb .ObjectNumber ,_aedfe ); };return _egafc ,_aedfe ;}; // PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons. type PdfFieldButton struct{*PdfField ;Opt *_eca .PdfObjectArray ;_fbffd *Image ;}; // NewPdfColorspaceLab returns a new Lab colorspace object. func NewPdfColorspaceLab ()*PdfColorspaceLab {_fdbf :=&PdfColorspaceLab {};_fdbf .BlackPoint =[]float64 {0.0,0.0,0.0};_fdbf .Range =[]float64 {-100,100,-100,100};return _fdbf ;}; // 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 (_afecf *PdfFont )SubsetRegistered ()error {switch _dfcf :=_afecf ._dbgb .(type ){case *pdfFontType0 :_eefb :=_dfcf .subsetRegistered ();if _eefb !=nil {_ccb .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_eefb ); return _eefb ;};if _dfcf ._cgaae !=nil {if _dfcf ._gdcea !=nil {_dfcf ._gdcea .ToPdfObject ();};_dfcf .ToPdfObject ();};default:_ccb .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",_dfcf ); };return nil ;}; // PdfAnnotationWatermark represents Watermark annotations. // (Section 12.5.6.22). type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _eca .PdfObject ;}; // 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 (_cggb *PdfWriter )SetRotation (rotate int64 )error {_baddc ,_gabgff :=_eca .GetDict (_cggb ._bceddb );if !_gabgff {return ErrTypeCheck ;};_baddc .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_eca .MakeInteger (rotate ));return nil ;}; // PdfColorspaceCalRGB stores A, B, C components type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_fagg *_eca .PdfObjectDictionary ;_eceae *_eca .PdfIndirectObject ;}; // 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 (_dbae _beg .Reader )(*Image ,error ); // NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure. NewImageFromGoImage (_ceegf _cc .Image )(*Image ,error ); // NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure. NewGrayImageFromGoImage (_dcbad _cc .Image )(*Image ,error ); // Compress an image. Compress (_dgaa *Image ,_efgg int64 )(*Image ,error );}; // 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 ;}; // NewPdfAnnotationHighlight returns a new text highlight annotation. func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_cgdb :=NewPdfAnnotation ();_bac :=&PdfAnnotationHighlight {};_bac .PdfAnnotation =_cgdb ;_bac .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cgdb .SetContext (_bac );return _bac ;}; // ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks. type ContentStreamWrapper interface{WrapContentStream (_afegb *PdfPage )error ;}; // PdfOutline represents a PDF outline dictionary (Table 152 - p. 376). type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_gfaag *_eca .PdfIndirectObject ;};func (_gca *PdfReader )newPdfAnnotationMovieFromDict (_afeg *_eca .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_fgddg :=PdfAnnotationMovie {}; _fgddg .T =_afeg .Get ("\u0054");_fgddg .Movie =_afeg .Get ("\u004d\u006f\u0076i\u0065");_fgddg .A =_afeg .Get ("\u0041");return &_fgddg ,nil ;};func (_gcba *PdfReader )newPdfActionSoundFromDict (_gecc *_eca .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_gecc .Get ("\u0053\u006f\u0075n\u0064"),Volume :_gecc .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_gecc .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_gecc .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_gecc .Get ("\u004d\u0069\u0078")},nil ; }; // SetNameDictionary sets the Names entry in the PDF catalog. // See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008). func (_gaabac *PdfWriter )SetNameDictionary (names _eca .PdfObject )error {if names ==nil {return nil ;};_ccb .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e"); _gaabac ._eeggd .Set ("\u004e\u0061\u006de\u0073",names );return _gaabac .addObjects (names );}; // 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 ;_gcgb []byte ;_cfgaa []float64 ;}; // NewPdfWriter initializes a new PdfWriter. func NewPdfWriter ()PdfWriter {_cbdce :=PdfWriter {};_cbdce ._ceace =map[_eca .PdfObject ]struct{}{};_cbdce ._daecf =[]_eca .PdfObject {};_cbdce ._cbfcb =map[_eca .PdfObject ][]*_eca .PdfObjectDictionary {};_cbdce ._aeedc =map[_eca .PdfObject ]struct{}{}; _cbdce ._dgab .Major =1;_cbdce ._dgab .Minor =3;_edff :=_eca .MakeDict ();_efdac :=[]struct{_aagab _eca .PdfObjectName ;_ddcba string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_egdb ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_ddfbd ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_aabge ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_dddac ()},{"\u0054\u0069\u0074l\u0065",_cgccc ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_cebgd ()}}; for _ ,_gafe :=range _efdac {if _gafe ._ddcba !=""{_edff .Set (_gafe ._aagab ,_eca .MakeString (_gafe ._ddcba ));};};if _bfged :=_bcedebe ();!_bfged .IsZero (){if _edefd ,_cbdgg :=NewPdfDateFromTime (_bfged );_cbdgg ==nil {_edff .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_edefd .ToPdfObject ()); };};if _egaec :=_dceac ();!_egaec .IsZero (){if _eaec ,_defga :=NewPdfDateFromTime (_egaec );_defga ==nil {_edff .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_eaec .ToPdfObject ());};};_cdbad :=_eca .PdfIndirectObject {};_cdbad .PdfObject =_edff ;_cbdce ._fbegc =&_cdbad ; _cbdce .addObject (&_cdbad );_gfedea :=_eca .PdfIndirectObject {};_cgfff :=_eca .MakeDict ();_cgfff .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_gfedea .PdfObject =_cgfff ;_cbdce ._bggab =&_gfedea ;_cbdce .addObject (_cbdce ._bggab ); _eaedc ,_bgfbe :=_agcee ("\u0077");if _bgfbe !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bgfbe );};_cbdce ._gaafc =_eaedc ;_ageba :=_eca .PdfIndirectObject {};_afcbb :=_eca .MakeDict ();_afcbb .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0050\u0061\u0067e\u0073")); _aacfg :=_eca .PdfObjectArray {};_afcbb .Set ("\u004b\u0069\u0064\u0073",&_aacfg );_afcbb .Set ("\u0043\u006f\u0075n\u0074",_eca .MakeInteger (0));_ageba .PdfObject =_afcbb ;_cbdce ._bceddb =&_ageba ;_cbdce ._eccgd =map[_eca .PdfObject ]struct{}{};_cbdce .addObject (_cbdce ._bceddb ); _cgfff .Set ("\u0050\u0061\u0067e\u0073",&_ageba );_cbdce ._eeggd =_cgfff ;_ccb .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_gfedea );return _cbdce ;}; // 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 (_gbdea *LTV )EnableAll (extraCerts []*_ad .Certificate )error {_gcge :=_gbdea ._deaee ._badg .AcroForm ;for _ ,_acdef :=range _gcge .AllFields (){_ddaab ,_ :=_acdef .GetContext ().(*PdfFieldSignature );if _ddaab ==nil {continue ;};_aedfaa :=_ddaab .V ; if _faggf :=_gbdea .validateSig (_aedfaa );_faggf !=nil {_ccb .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",_faggf ); };if _dabf :=_gbdea .Enable (_aedfaa ,extraCerts );_dabf !=nil {return _dabf ;};};return nil ;}; // ToPdfObject returns the PDF representation of the shading dictionary. func (_ffffae *PdfShading )ToPdfObject ()_eca .PdfObject {_gegad :=_ffffae ._dcbe ;_fdgba ,_eaeb :=_ffffae .getShadingDict ();if _eaeb !=nil {_ccb .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 _ffffae .ShadingType !=nil {_fdgba .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_ffffae .ShadingType );};if _ffffae .ColorSpace !=nil {_fdgba .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_ffffae .ColorSpace .ToPdfObject ()); };if _ffffae .Background !=nil {_fdgba .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_ffffae .Background );};if _ffffae .BBox !=nil {_fdgba .Set ("\u0042\u0042\u006f\u0078",_ffffae .BBox .ToPdfObject ());};if _ffffae .AntiAlias !=nil {_fdgba .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_ffffae .AntiAlias ); };return _gegad ;}; // FieldValueProvider provides field values from a data source such as FDF, JSON or any other. type FieldValueProvider interface{FieldValues ()(map[string ]_eca .PdfObject ,error );}; // Initialize initializes the PdfSignature. func (_aacfc *PdfSignature )Initialize ()error {if _aacfc .Handler ==nil {return _da .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 _aacfc .Handler .InitSignature (_aacfc );}; // ColorToRGB verifies that the input color is an RGB color. Method exists in // order to satisfy the PdfColorspace interface. func (_eegcc *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_gebg ,_bcddf :=color .(*PdfColorDeviceRGB );if !_bcddf {_ccb .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 ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _gebg ,nil ;}; // PdfAnnotationLine represents Line annotations. // (Section 12.5.6.7). type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _eca .PdfObject ;BS _eca .PdfObject ;LE _eca .PdfObject ;IC _eca .PdfObject ;LL _eca .PdfObject ;LLE _eca .PdfObject ;Cap _eca .PdfObject ;IT _eca .PdfObject ;LLO _eca .PdfObject ;CP _eca .PdfObject ; Measure _eca .PdfObject ;CO _eca .PdfObject ;};func (_dgbce *PdfReader )buildPageList (_egaa *_eca .PdfIndirectObject ,_cefd *_eca .PdfIndirectObject ,_geff map[_eca .PdfObject ]struct{})error {if _egaa ==nil {return nil ;};if _ ,_ccdgc :=_geff [_egaa ]; _ccdgc {_ccb .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",_egaa .ObjectNumber );return nil ;};_geff [_egaa ]=struct{}{}; _gdgce ,_bdfcd :=_egaa .PdfObject .(*_eca .PdfObjectDictionary );if !_bdfcd {return _da .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_gcbc ,_bdfcd :=(*_gdgce ).Get ("\u0054\u0079\u0070\u0065").(*_eca .PdfObjectName ); if !_bdfcd {if _gdgce .Get ("\u004b\u0069\u0064\u0073")==nil {return _da .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");};_ccb .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."); _gcbc =_eca .MakeName ("\u0050\u0061\u0067e\u0073");_gdgce .Set ("\u0054\u0079\u0070\u0065",_gcbc );};_ccb .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",*_gcbc ,_egaa ); if *_gcbc =="\u0050\u0061\u0067\u0065"{_ggga ,_ffaa :=_dgbce .newPdfPageFromDict (_gdgce );if _ffaa !=nil {return _ffaa ;};_ggga .setContainer (_egaa );if _cefd !=nil {_gdgce .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cefd );};_dgbce ._gfabb =append (_dgbce ._gfabb ,_egaa ); _dgbce .PageList =append (_dgbce .PageList ,_ggga );return nil ;};if *_gcbc !="\u0050\u0061\u0067e\u0073"{_ccb .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",_gcbc ); return _da .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 _cefd !=nil {_gdgce .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cefd );};if !_dgbce ._gggcg {_becadc :=_dgbce .traverseObjectData (_egaa );if _becadc !=nil {return _becadc ;};};_cfca ,_fdcfc :=_dgbce ._ecfeba .Resolve (_gdgce .Get ("\u004b\u0069\u0064\u0073")); if _fdcfc !=nil {_ccb .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 _fdcfc ;};var _egbcd *_eca .PdfObjectArray ; _egbcd ,_bdfcd =_cfca .(*_eca .PdfObjectArray );if !_bdfcd {_ceacf ,_efgec :=_cfca .(*_eca .PdfIndirectObject );if !_efgec {return _da .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_egbcd ,_bdfcd =_ceacf .PdfObject .(*_eca .PdfObjectArray ); if !_bdfcd {return _da .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");};};_ccb .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_egbcd ); for _gdeg ,_cecda :=range _egbcd .Elements (){_gccef ,_ebagf :=_eca .GetIndirect (_cecda );if !_ebagf {_ccb .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",_gccef ); return _da .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_egbcd .Set (_gdeg ,_gccef );_fdcfc =_dgbce .buildPageList (_gccef ,_egaa ,_geff );if _fdcfc !=nil {return _fdcfc ; };};return nil ;}; // PdfFunction interface represents the common methods of a function in PDF. type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_eca .PdfObject ;}; // SetPatternByName sets a pattern resource specified by keyName. func (_dgcb *PdfPageResources )SetPatternByName (keyName _eca .PdfObjectName ,pattern _eca .PdfObject )error {if _dgcb .Pattern ==nil {_dgcb .Pattern =_eca .MakeDict ();};_cddbc ,_gbdgd :=_eca .GetDict (_dgcb .Pattern );if !_gbdgd {return _eca .ErrTypeError ; };_cddbc .Set (keyName ,pattern );return nil ;}; // NewPdfAnnotationPrinterMark returns a new printermark annotation. func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_dee :=NewPdfAnnotation ();_bdfa :=&PdfAnnotationPrinterMark {};_bdfa .PdfAnnotation =_dee ;_dee .SetContext (_bdfa );return _bdfa ;};func (_eeef *PdfAcroForm )fill (_eeggg FieldValueProvider ,_dfcg FieldAppearanceGenerator )error {if _eeef ==nil {return nil ; };_gedgd ,_dfdg :=_eeggg .FieldValues ();if _dfdg !=nil {return _dfdg ;};for _ ,_bdbe :=range _eeef .AllFields (){_bgaea :=_bdbe .PartialName ();_gcbe ,_fgec :=_gedgd [_bgaea ];if !_fgec {if _cgdd ,_ceefd :=_bdbe .FullName ();_ceefd ==nil {_gcbe ,_fgec =_gedgd [_cgdd ]; };};if !_fgec {_ccb .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",_bgaea ); continue ;};if _fedbe :=_bbba (_bdbe ,_gcbe );_fedbe !=nil {return _fedbe ;};if _dfcg ==nil {continue ;};for _ ,_abbaf :=range _bdbe .Annotations {_fcefd ,_fgbb :=_dfcg .GenerateAppearanceDict (_eeef ,_bdbe ,_abbaf );if _fgbb !=nil {return _fgbb ;};_abbaf .AP =_fcefd ; _abbaf .ToPdfObject ();};};return nil ;}; // GetContainingPdfObject implements model.PdfModel interface. func (_efagb *PdfOutputIntent )GetContainingPdfObject ()_eca .PdfObject {return _efagb ._bfbdb }; // NewPdfColorPatternType2 returns an empty color shading pattern type 2 (Axial). func NewPdfColorPatternType2 ()*PdfColorPatternType2 {_bdce :=&PdfColorPatternType2 {};return _bdce };func (_fege *PdfWriter )copyObject (_ecaga _eca .PdfObject ,_fcgca map[_eca .PdfObject ]_eca .PdfObject ,_fgbfa map[_eca .PdfObject ]struct{},_efcbb bool )_eca .PdfObject {_bffeb :=!_fege ._ccdgb &&_fgbfa !=nil ; if _ffddb ,_ffdbg :=_fcgca [_ecaga ];_ffdbg {if _bffeb &&!_efcbb {delete (_fgbfa ,_ecaga );};return _ffddb ;};if _ecaga ==nil {_fcfbd :=_eca .MakeNull ();return _fcfbd ;};_gccga :=_ecaga ;switch _edgag :=_ecaga .(type ){case *_eca .PdfObjectArray :_gafee :=_eca .MakeArray (); _gccga =_gafee ;_fcgca [_ecaga ]=_gccga ;for _ ,_bcaaf :=range _edgag .Elements (){_gafee .Append (_fege .copyObject (_bcaaf ,_fcgca ,_fgbfa ,_efcbb ));};case *_eca .PdfObjectStreams :_ggdee :=&_eca .PdfObjectStreams {PdfObjectReference :_edgag .PdfObjectReference }; _gccga =_ggdee ;_fcgca [_ecaga ]=_gccga ;for _ ,_eegbgf :=range _edgag .Elements (){_ggdee .Append (_fege .copyObject (_eegbgf ,_fcgca ,_fgbfa ,_efcbb ));};case *_eca .PdfObjectStream :_cgage :=&_eca .PdfObjectStream {Stream :_edgag .Stream ,PdfObjectReference :_edgag .PdfObjectReference }; _gccga =_cgage ;_fcgca [_ecaga ]=_gccga ;_cgage .PdfObjectDictionary =_fege .copyObject (_edgag .PdfObjectDictionary ,_fcgca ,_fgbfa ,_efcbb ).(*_eca .PdfObjectDictionary );case *_eca .PdfObjectDictionary :var _acgeg bool ;if _bffeb &&!_efcbb {if _gdebd ,_ :=_eca .GetNameVal (_edgag .Get ("\u0054\u0079\u0070\u0065")); _gdebd =="\u0050\u0061\u0067\u0065"{_ ,_eagbf :=_fege ._eccgd [_edgag ];_efcbb =!_eagbf ;_acgeg =_efcbb ;};};_cdcceg :=_eca .MakeDict ();_gccga =_cdcceg ;_fcgca [_ecaga ]=_gccga ;for _ ,_eaaab :=range _edgag .Keys (){_cdcceg .Set (_eaaab ,_fege .copyObject (_edgag .Get (_eaaab ),_fcgca ,_fgbfa ,_efcbb )); };if _acgeg {_gccga =_eca .MakeNull ();_efcbb =false ;};case *_eca .PdfIndirectObject :_aaeae :=&_eca .PdfIndirectObject {PdfObjectReference :_edgag .PdfObjectReference };_gccga =_aaeae ;_fcgca [_ecaga ]=_gccga ;_aaeae .PdfObject =_fege .copyObject (_edgag .PdfObject ,_fcgca ,_fgbfa ,_efcbb ); case *_eca .PdfObjectString :_bfggd :=*_edgag ;_gccga =&_bfggd ;_fcgca [_ecaga ]=_gccga ;case *_eca .PdfObjectName :_dagd :=*_edgag ;_gccga =&_dagd ;_fcgca [_ecaga ]=_gccga ;case *_eca .PdfObjectNull :_gccga =_eca .MakeNull ();_fcgca [_ecaga ]=_gccga ; case *_eca .PdfObjectInteger :_gaddf :=*_edgag ;_gccga =&_gaddf ;_fcgca [_ecaga ]=_gccga ;case *_eca .PdfObjectReference :_aeegd :=*_edgag ;_gccga =&_aeegd ;_fcgca [_ecaga ]=_gccga ;case *_eca .PdfObjectFloat :_baaa :=*_edgag ;_gccga =&_baaa ;_fcgca [_ecaga ]=_gccga ; case *_eca .PdfObjectBool :_degg :=*_edgag ;_gccga =&_degg ;_fcgca [_ecaga ]=_gccga ;case *pdfSignDictionary :_eddcf :=&pdfSignDictionary {PdfObjectDictionary :_eca .MakeDict (),_ceaad :_edgag ._ceaad ,_eacaae :_edgag ._eacaae };_gccga =_eddcf ;_fcgca [_ecaga ]=_gccga ; for _ ,_caabgb :=range _edgag .Keys (){_eddcf .Set (_caabgb ,_fege .copyObject (_edgag .Get (_caabgb ),_fcgca ,_fgbfa ,_efcbb ));};default:_ccb .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",_ecaga ); };if _bffeb &&_efcbb {_fgbfa [_ecaga ]=struct{}{};};return _gccga ;}; // NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing. func NewReaderForText (txt string )*PdfReader {return &PdfReader {_fgbbd :map[_eca .PdfObject ]struct{}{},_dcddd :_cdeeb (),_ecfeba :_eca .NewParserFromString (txt )};}; // GetRuneMetrics returns the character metrics for the rune. // A bool flag is returned to indicate whether or not the entry was found. func (_bebcd pdfFontSimple )GetRuneMetrics (r rune )(_ffd .CharMetrics ,bool ){if _bebcd ._cedde !=nil {_eeab ,_cccga :=_bebcd ._cedde .Read (r );if _cccga {return _eeab ,true ;};};_daag :=_bebcd .Encoder ();if _daag ==nil {_ccb .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_bebcd ); return _ffd .CharMetrics {},false ;};_fafc ,_abfe :=_daag .RuneToCharcode (r );if !_abfe {if r !=' '{_ccb .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 ,_bebcd ); };return _ffd .CharMetrics {},false ;};_cbfce ,_cded :=_bebcd .GetCharMetrics (_fafc );return _cbfce ,_cded ;}; // ToPdfObject returns a stream object. func (_gccgaf *XObjectImage )ToPdfObject ()_eca .PdfObject {_efbfbf :=_gccgaf ._gddeaa ;_aaebc :=_efbfbf .PdfObjectDictionary ;if _gccgaf .Filter !=nil {_aaebc =_gccgaf .Filter .MakeStreamDict ();_efbfbf .PdfObjectDictionary =_aaebc ;};_aaebc .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074")); _aaebc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0049\u006d\u0061g\u0065"));_aaebc .Set ("\u0057\u0069\u0064t\u0068",_eca .MakeInteger (*(_gccgaf .Width )));_aaebc .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_eca .MakeInteger (*(_gccgaf .Height ))); if _gccgaf .BitsPerComponent !=nil {_aaebc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eca .MakeInteger (*(_gccgaf .BitsPerComponent )));};if _gccgaf .ColorSpace !=nil {_aaebc .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_gccgaf .ColorSpace .ToPdfObject ()); };_aaebc .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_gccgaf .Intent );_aaebc .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_gccgaf .ImageMask );_aaebc .SetIfNotNil ("\u004d\u0061\u0073\u006b",_gccgaf .Mask );_gddda :=_aaebc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ; if _gccgaf .Decode ==nil &&_gddda {_aaebc .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _gccgaf .Decode !=nil {_aaebc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_gccgaf .Decode );};_aaebc .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_gccgaf .Interpolate ); _aaebc .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_gccgaf .Alternatives );_aaebc .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_gccgaf .SMask );_aaebc .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_gccgaf .SMaskInData ); _aaebc .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_gccgaf .Matte );_aaebc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gccgaf .Name );_aaebc .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_gccgaf .StructParent );_aaebc .SetIfNotNil ("\u0049\u0044",_gccgaf .ID ); _aaebc .SetIfNotNil ("\u004f\u0050\u0049",_gccgaf .OPI );_aaebc .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_gccgaf .Metadata );_aaebc .SetIfNotNil ("\u004f\u0043",_gccgaf .OC );_aaebc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eca .MakeInteger (int64 (len (_gccgaf .Stream )))); _efbfbf .Stream =_gccgaf .Stream ;return _efbfbf ;}; // GetFontDescriptor returns the font descriptor for `font`. func (_bfcgd PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _bfcgd ._dbgb .getFontDescriptor (),nil ;}; // GetOutlinesFlattened returns a flattened list of tree nodes and titles. // NOTE: for most use cases, it is recommended to use the high-level GetOutlines // method instead, which also provides information regarding the destination // of the outline items. func (_aaebg *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _fgffe []*PdfOutlineTreeNode ;var _beafa []string ;var _cceee func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_cceee =func (_bgafa *PdfOutlineTreeNode ,_efba *[]*PdfOutlineTreeNode ,_dcad *[]string ,_gdbdc int ){if _bgafa ==nil {return ; };if _bgafa ._dcfbf ==nil {_ccb .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 ;};_agfe ,_ggggd :=_bgafa ._dcfbf .(*PdfOutlineItem );if _ggggd {*_efba =append (*_efba ,&_agfe .PdfOutlineTreeNode ); _fgae :=_ec .Repeat ("\u0020",_gdbdc *2)+_agfe .Title .Decoded ();*_dcad =append (*_dcad ,_fgae );};if _bgafa .First !=nil {_bbcea :=_ec .Repeat ("\u0020",_gdbdc *2)+"\u002b";*_dcad =append (*_dcad ,_bbcea );_cceee (_bgafa .First ,_efba ,_dcad ,_gdbdc +1); };if _ggggd &&_agfe .Next !=nil {_cceee (_agfe .Next ,_efba ,_dcad ,_gdbdc );};};_cceee (_aaebg ._eabaf ,&_fgffe ,&_beafa ,0);return _fgffe ,_beafa ,nil ;}; // PdfAnnotationCaret represents Caret annotations. // (Section 12.5.6.11). type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _eca .PdfObject ;Sy _eca .PdfObject ;}; // PdfAnnotationCircle represents Circle annotations. // (Section 12.5.6.8). type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _eca .PdfObject ;IC _eca .PdfObject ;BE _eca .PdfObject ;RD _eca .PdfObject ;};func (_adead *PdfWriter )setDocumentIDs (_ddce ,_aegdg string ){_adead ._dadf =_eca .MakeArray (_eca .MakeHexString (_ddce ),_eca .MakeHexString (_aegdg )); }; // NewPdfActionRendition returns a new "rendition" action. func NewPdfActionRendition ()*PdfActionRendition {_gge :=NewPdfAction ();_gbf :=&PdfActionRendition {};_gbf .PdfAction =_gge ;_gge .SetContext (_gbf );return _gbf ;}; // PdfAnnotationStrikeOut represents StrikeOut annotations. // (Section 12.5.6.10). type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eca .PdfObject ;}; // NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object. func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_face :=&PdfPageResourcesColorspaces {};_face .Names =[]string {};_face .Colorspaces =map[string ]PdfColorspace {};_face ._faddg =&_eca .PdfIndirectObject {};return _face ;}; // ColorFromFloats returns a new PdfColor based on input color components. func (_faaf *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_faaf .GetNumComponents (){return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cgde ,_ccfbc :=_faaf .TintTransform .Evaluate (vals ); if _ccfbc !=nil {return nil ,_ccfbc ;};_edac ,_ccfbc :=_faaf .AlternateSpace .ColorFromFloats (_cgde );if _ccfbc !=nil {return nil ,_ccfbc ;};return _edac ,nil ;};func (_bbgc *PdfReader )newPdfAnnotationSoundFromDict (_cefa *_eca .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_aebcd :=PdfAnnotationSound {}; _fgcb ,_gcdb :=_bbgc .newPdfAnnotationMarkupFromDict (_cefa );if _gcdb !=nil {return nil ,_gcdb ;};_aebcd .PdfAnnotationMarkup =_fgcb ;_aebcd .Name =_cefa .Get ("\u004e\u0061\u006d\u0065");_aebcd .Sound =_cefa .Get ("\u0053\u006f\u0075n\u0064");return &_aebcd ,nil ; }; // GetContainingPdfObject returns the container of the shading object (indirect object). func (_aecfb *PdfShading )GetContainingPdfObject ()_eca .PdfObject {return _aecfb ._dcbe }; // SetOptimizer sets the optimizer to optimize PDF before writing. func (_acgbae *PdfWriter )SetOptimizer (optimizer Optimizer ){_acgbae ._cgfccc =optimizer };