unipdf/model/model.go
2023-10-07 13:58:01 +00:00

5014 lines
747 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// 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 &LTV {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 };