unipdf/model/model.go
2022-03-13 12:41:53 +00:00

4911 lines
736 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 (_d "bufio";_dd "bytes";_ea "crypto/md5";_c "crypto/rand";_bbd "crypto/sha1";_dg "crypto/x509";_bg "encoding/binary";_fg "encoding/hex";_gd "errors";_f "fmt";_df "github.com/unidoc/pkcs7";_bag "github.com/unidoc/unipdf/v3/common";
_egg "github.com/unidoc/unipdf/v3/core";_fe "github.com/unidoc/unipdf/v3/core/security";_gfc "github.com/unidoc/unipdf/v3/core/security/crypt";_ga "github.com/unidoc/unipdf/v3/internal/cmap";_eg "github.com/unidoc/unipdf/v3/internal/imageutil";_ace "github.com/unidoc/unipdf/v3/internal/license";
_fb "github.com/unidoc/unipdf/v3/internal/sampling";_ef "github.com/unidoc/unipdf/v3/internal/textencoding";_ce "github.com/unidoc/unipdf/v3/internal/timeutils";_gdg "github.com/unidoc/unipdf/v3/internal/transform";_dc "github.com/unidoc/unipdf/v3/model/internal/docutil";
_bgd "github.com/unidoc/unipdf/v3/model/internal/fonts";_be "github.com/unidoc/unipdf/v3/model/mdp";_gfa "github.com/unidoc/unipdf/v3/model/sigutil";_cde "github.com/unidoc/unipdf/v3/ps";_ec "github.com/unidoc/unitype";_de "golang.org/x/xerrors";_bb "hash";
_cd "image";_ba "image/color";_ "image/gif";_ "image/png";_dag "io";_ac "io/ioutil";_dgb "math";_cg "math/rand";_gf "os";_bae "regexp";_cf "sort";_da "strconv";_fc "strings";_b "sync";_e "time";_ad "unicode";_ab "unicode/utf8";);
// FlattenFields flattens the form fields and annotations for the PDF loaded in `pdf` and makes
// non-editable.
// Looks up all widget annotations corresponding to form fields and flattens them by drawing the content
// through the content stream rather than annotations.
// References to flattened annotations will be removed from Page Annots array. For fields the AcroForm entry
// will be emptied.
// When `allannots` is true, all annotations will be flattened. Keep false if want to keep non-form related
// annotations intact.
// When `appgen` is not nil, it will be used to generate appearance streams for the field annotations.
func (_gfee *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _gfee .flattenFieldsWithOpts (allannots ,appgen ,nil );};func (_gbfe *PdfReader )newPdfActionFromIndirectObject (_dbd *_egg .PdfIndirectObject )(*PdfAction ,error ){_cac ,_dbb :=_dbd .PdfObject .(*_egg .PdfObjectDictionary );
if !_dbb {return nil ,_f .Errorf ("\u0061\u0063\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u006e\u006f\u0074 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};if model :=_gbfe ._dabaf .GetModelFromPrimitive (_cac );model !=nil {_gdb ,_cacc :=model .(*PdfAction );if !_cacc {return nil ,_f .Errorf ("\u0063\u0061c\u0068\u0065\u0064\u0020\u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050\u0044\u0046\u0020\u0061\u0063ti\u006f\u006e");
};return _gdb ,nil ;};_cbf :=&PdfAction {};_cbf ._bf =_dbd ;_gbfe ._dabaf .Register (_cac ,_cbf );if _dbc :=_cac .Get ("\u0054\u0079\u0070\u0065");_dbc !=nil {_dadg ,_abc :=_dbc .(*_egg .PdfObjectName );if !_abc {_bag .Log .Trace ("\u0049\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u0021\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u006f\u0066\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029\u0020\u002d\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u004e\u0061m\u0065",_dbc );
}else {if *_dadg !="\u0041\u0063\u0074\u0069\u006f\u006e"{_bag .Log .Trace ("\u0055\u006e\u0073u\u0073\u0070\u0065\u0063t\u0065\u0064\u0020\u0054\u0079\u0070\u0065 \u0021\u003d\u0020\u0041\u0063\u0074\u0069\u006f\u006e\u0020\u0028\u0025\u0073\u0029",*_dadg );
};_cbf .Type =_dadg ;};};if _efad :=_cac .Get ("\u004e\u0065\u0078\u0074");_efad !=nil {_cbf .Next =_efad ;};if _dee :=_cac .Get ("\u0053");_dee !=nil {_cbf .S =_dee ;};_cabc ,_agf :=_cbf .S .(*_egg .PdfObjectName );if !_agf {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_cbf .S );
return nil ,_f .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0053\u0020\u006f\u0062\u006a\u0065c\u0074 \u0074y\u0070e\u0020\u0021\u003d\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_cbf .S );};_cecbd :=PdfActionType (_cabc .String ());
switch _cecbd {case ActionTypeGoTo :_dbf ,_ecd :=_gbfe .newPdfActionGotoFromDict (_cac );if _ecd !=nil {return nil ,_ecd ;};_dbf .PdfAction =_cbf ;_cbf ._abb =_dbf ;return _cbf ,nil ;case ActionTypeGoToR :_gee ,_fbe :=_gbfe .newPdfActionGotoRFromDict (_cac );
if _fbe !=nil {return nil ,_fbe ;};_gee .PdfAction =_cbf ;_cbf ._abb =_gee ;return _cbf ,nil ;case ActionTypeGoToE :_fee ,_cfd :=_gbfe .newPdfActionGotoEFromDict (_cac );if _cfd !=nil {return nil ,_cfd ;};_fee .PdfAction =_cbf ;_cbf ._abb =_fee ;return _cbf ,nil ;
case ActionTypeLaunch :_eedf ,_ebc :=_gbfe .newPdfActionLaunchFromDict (_cac );if _ebc !=nil {return nil ,_ebc ;};_eedf .PdfAction =_cbf ;_cbf ._abb =_eedf ;return _cbf ,nil ;case ActionTypeThread :_cfc ,_geee :=_gbfe .newPdfActionThreadFromDict (_cac );
if _geee !=nil {return nil ,_geee ;};_cfc .PdfAction =_cbf ;_cbf ._abb =_cfc ;return _cbf ,nil ;case ActionTypeURI :_ffb ,_cgg :=_gbfe .newPdfActionURIFromDict (_cac );if _cgg !=nil {return nil ,_cgg ;};_ffb .PdfAction =_cbf ;_cbf ._abb =_ffb ;return _cbf ,nil ;
case ActionTypeSound :_bde ,_ddf :=_gbfe .newPdfActionSoundFromDict (_cac );if _ddf !=nil {return nil ,_ddf ;};_bde .PdfAction =_cbf ;_cbf ._abb =_bde ;return _cbf ,nil ;case ActionTypeMovie :_cba ,_gaa :=_gbfe .newPdfActionMovieFromDict (_cac );if _gaa !=nil {return nil ,_gaa ;
};_cba .PdfAction =_cbf ;_cbf ._abb =_cba ;return _cbf ,nil ;case ActionTypeHide :_dade ,_fcbbe :=_gbfe .newPdfActionHideFromDict (_cac );if _fcbbe !=nil {return nil ,_fcbbe ;};_dade .PdfAction =_cbf ;_cbf ._abb =_dade ;return _cbf ,nil ;case ActionTypeNamed :_gdbe ,_bgc :=_gbfe .newPdfActionNamedFromDict (_cac );
if _bgc !=nil {return nil ,_bgc ;};_gdbe .PdfAction =_cbf ;_cbf ._abb =_gdbe ;return _cbf ,nil ;case ActionTypeSubmitForm :_feea ,_dbe :=_gbfe .newPdfActionSubmitFormFromDict (_cac );if _dbe !=nil {return nil ,_dbe ;};_feea .PdfAction =_cbf ;_cbf ._abb =_feea ;
return _cbf ,nil ;case ActionTypeResetForm :_ggf ,_gdc :=_gbfe .newPdfActionResetFormFromDict (_cac );if _gdc !=nil {return nil ,_gdc ;};_ggf .PdfAction =_cbf ;_cbf ._abb =_ggf ;return _cbf ,nil ;case ActionTypeImportData :_adg ,_dbg :=_gbfe .newPdfActionImportDataFromDict (_cac );
if _dbg !=nil {return nil ,_dbg ;};_adg .PdfAction =_cbf ;_cbf ._abb =_adg ;return _cbf ,nil ;case ActionTypeSetOCGState :_ggc ,_feaf :=_gbfe .newPdfActionSetOCGStateFromDict (_cac );if _feaf !=nil {return nil ,_feaf ;};_ggc .PdfAction =_cbf ;_cbf ._abb =_ggc ;
return _cbf ,nil ;case ActionTypeRendition :_eec ,_gcg :=_gbfe .newPdfActionRenditionFromDict (_cac );if _gcg !=nil {return nil ,_gcg ;};_eec .PdfAction =_cbf ;_cbf ._abb =_eec ;return _cbf ,nil ;case ActionTypeTrans :_dgdg ,_cecd :=_gbfe .newPdfActionTransFromDict (_cac );
if _cecd !=nil {return nil ,_cecd ;};_dgdg .PdfAction =_cbf ;_cbf ._abb =_dgdg ;return _cbf ,nil ;case ActionTypeGoTo3DView :_gdce ,_adb :=_gbfe .newPdfActionGoTo3DViewFromDict (_cac );if _adb !=nil {return nil ,_adb ;};_gdce .PdfAction =_cbf ;_cbf ._abb =_gdce ;
return _cbf ,nil ;case ActionTypeJavaScript :_dede ,_ebcf :=_gbfe .newPdfActionJavaScriptFromDict (_cac );if _ebcf !=nil {return nil ,_ebcf ;};_dede .PdfAction =_cbf ;_cbf ._abb =_dede ;return _cbf ,nil ;};_bag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u0067\u006e\u006f\u0072\u0069\u006eg\u0020u\u006ek\u006eo\u0077\u006e\u0020\u0061\u0063\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073",_cecbd );
return nil ,nil ;};
// ToPdfObject returns a stream object.
func (_cegecg *XObjectForm )ToPdfObject ()_egg .PdfObject {_dfecc :=_cegecg ._acgef ;_beacbc :=_dfecc .PdfObjectDictionary ;if _cegecg .Filter !=nil {_beacbc =_cegecg .Filter .MakeStreamDict ();_dfecc .PdfObjectDictionary =_beacbc ;};_beacbc .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
_beacbc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0046\u006f\u0072\u006d"));_beacbc .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_cegecg .FormType );_beacbc .SetIfNotNil ("\u0042\u0042\u006f\u0078",_cegecg .BBox );
_beacbc .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_cegecg .Matrix );if _cegecg .Resources !=nil {_beacbc .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_cegecg .Resources .ToPdfObject ());};_beacbc .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_cegecg .Group );
_beacbc .SetIfNotNil ("\u0052\u0065\u0066",_cegecg .Ref );_beacbc .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_cegecg .MetaData );_beacbc .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_cegecg .PieceInfo );_beacbc .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_cegecg .LastModified );
_beacbc .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_cegecg .StructParent );_beacbc .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_cegecg .StructParents );_beacbc .SetIfNotNil ("\u004f\u0050\u0049",_cegecg .OPI );
_beacbc .SetIfNotNil ("\u004f\u0043",_cegecg .OC );_beacbc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cegecg .Name );_beacbc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_cegecg .Stream ))));_dfecc .Stream =_cegecg .Stream ;
return _dfecc ;};
// ToInteger convert to an integer format.
func (_gffge *PdfColorCalGray )ToInteger (bits int )uint32 {_gcd :=_dgb .Pow (2,float64 (bits ))-1;return uint32 (_gcd *_gffge .Val ());};
// PdfTilingPattern is a Tiling pattern that consists of repetitions of a pattern cell with defined intervals.
// It is a type 1 pattern. (PatternType = 1).
// A tiling pattern is represented by a stream object, where the stream content is
// a content stream that describes the pattern cell.
type PdfTilingPattern struct{*PdfPattern ;PaintType *_egg .PdfObjectInteger ;TilingType *_egg .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_egg .PdfObjectFloat ;YStep *_egg .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_egg .PdfObjectArray ;};
func (_eddded *PdfWriter )writeOutputIntents ()error {if len (_eddded ._fadef )==0{return nil ;};_gcaca :=make ([]_egg .PdfObject ,len (_eddded ._fadef ));for _fbbed ,_aeda :=range _eddded ._fadef {_dgbgf :=_aeda .ToPdfObject ();_gcaca [_fbbed ]=_egg .MakeIndirectObject (_dgbgf );
};_aeegb :=_egg .MakeIndirectObject (_egg .MakeArray (_gcaca ...));_eddded ._acea .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_aeegb );if _acegg :=_eddded .addObjects (_aeegb );_acegg !=nil {return _acegg ;};return nil ;
};
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
func (_eeac *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_fcde :=_fb .NewReader (img .getBase ());_fdcda :=_eg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_gece :=_fb .NewWriter (_fdcda );
_agde :=_dgb .Pow (2,float64 (img .BitsPerComponent ))-1;_fgaeb :=make ([]uint32 ,3);var (_fddb error ;_cfabf ,_cee ,_cagdf ,_cgfd ,_bcbd ,_dfdc float64 ;);for {_fddb =_fcde .ReadSamples (_fgaeb );if _fddb ==_dag .EOF {break ;}else if _fddb !=nil {return img ,_fddb ;
};_cfabf =float64 (_fgaeb [0])/_agde ;_cee =float64 (_fgaeb [1])/_agde ;_cagdf =float64 (_fgaeb [2])/_agde ;_cgfd =_eeac .Matrix [0]*_dgb .Pow (_cfabf ,_eeac .Gamma [0])+_eeac .Matrix [3]*_dgb .Pow (_cee ,_eeac .Gamma [1])+_eeac .Matrix [6]*_dgb .Pow (_cagdf ,_eeac .Gamma [2]);
_bcbd =_eeac .Matrix [1]*_dgb .Pow (_cfabf ,_eeac .Gamma [0])+_eeac .Matrix [4]*_dgb .Pow (_cee ,_eeac .Gamma [1])+_eeac .Matrix [7]*_dgb .Pow (_cagdf ,_eeac .Gamma [2]);_dfdc =_eeac .Matrix [2]*_dgb .Pow (_cfabf ,_eeac .Gamma [0])+_eeac .Matrix [5]*_dgb .Pow (_cee ,_eeac .Gamma [1])+_eeac .Matrix [8]*_dgb .Pow (_cagdf ,_eeac .Gamma [2]);
_cfabf =3.240479*_cgfd +-1.537150*_bcbd +-0.498535*_dfdc ;_cee =-0.969256*_cgfd +1.875992*_bcbd +0.041556*_dfdc ;_cagdf =0.055648*_cgfd +-0.204043*_bcbd +1.057311*_dfdc ;_cfabf =_dgb .Min (_dgb .Max (_cfabf ,0),1.0);_cee =_dgb .Min (_dgb .Max (_cee ,0),1.0);
_cagdf =_dgb .Min (_dgb .Max (_cagdf ,0),1.0);_fgaeb [0]=uint32 (_cfabf *_agde );_fgaeb [1]=uint32 (_cee *_agde );_fgaeb [2]=uint32 (_cagdf *_agde );if _fddb =_gece .WriteSamples (_fgaeb );_fddb !=nil {return img ,_fddb ;};};return _cggba (&_fdcda ),nil ;
};
// BytesToCharcodes converts the bytes in a PDF string to character codes.
func (_gfaaf *PdfFont )BytesToCharcodes (data []byte )[]_ef .CharCode {_bag .Log .Trace ("\u0042\u0079\u0074es\u0054\u006f\u0043\u0068\u0061\u0072\u0063\u006f\u0064e\u0073:\u0020d\u0061t\u0061\u003d\u005b\u0025\u0020\u0030\u0032\u0078\u005d\u003d\u0025\u0023\u0071",data ,data );
if _deca ,_cgfcf :=_gfaaf ._edde .(*pdfFontType0 );_cgfcf &&_deca ._fcffd !=nil {if _afbfb ,_eddd :=_deca .bytesToCharcodes (data );_eddd {return _afbfb ;};};var (_cabgb =make ([]_ef .CharCode ,0,len (data )+len (data )%2);_bcgg =_gfaaf .baseFields ();
);if _bcgg ._bfbgf !=nil {if _bgddf ,_daccg :=_bcgg ._bfbgf .BytesToCharcodes (data );_daccg {for _ ,_afbbe :=range _bgddf {_cabgb =append (_cabgb ,_ef .CharCode (_afbbe ));};return _cabgb ;};};if _bcgg .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};
};if len (data )%2!=0{_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0064\u0064\u0069\u006e\u0067\u0020\u0064\u0061\u0074\u0061\u003d\u0025\u002b\u0076\u0020t\u006f\u0020\u0065\u0076\u0065n\u0020\u006ce\u006e\u0067\u0074\u0068",data );
data =append (data ,0);};for _ebfg :=0;_ebfg < len (data );_ebfg +=2{_efgge :=uint16 (data [_ebfg ])<<8|uint16 (data [_ebfg +1]);_cabgb =append (_cabgb ,_ef .CharCode (_efgge ));};}else {for _ ,_fdgad :=range data {_cabgb =append (_cabgb ,_ef .CharCode (_fdgad ));
};};return _cabgb ;};
// Decrypt decrypts the PDF file with a specified password. Also tries to
// decrypt with an empty password. Returns true if successful,
// false otherwise.
func (_dacd *PdfReader )Decrypt (password []byte )(bool ,error ){_cgbge ,_fbdfe :=_dacd ._dafgab .Decrypt (password );if _fbdfe !=nil {return false ,_fbdfe ;};if !_cgbge {return false ,nil ;};_fbdfe =_dacd .loadStructure ();if _fbdfe !=nil {_bag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0046\u0061\u0069\u006c\u0020\u0074\u006f \u006co\u0061d\u0020s\u0074\u0072\u0075\u0063\u0074\u0075\u0072\u0065\u0020\u0028\u0025\u0073\u0029",_fbdfe );
return false ,_fbdfe ;};return true ,nil ;};
// GetXObjectByName returns the XObject with the specified keyName and the object type.
func (_bfafc *PdfPageResources )GetXObjectByName (keyName _egg .PdfObjectName )(*_egg .PdfObjectStream ,XObjectType ){if _bfafc .XObject ==nil {return nil ,XObjectTypeUndefined ;};_fgffg ,_fedcc :=_egg .TraceToDirectObject (_bfafc .XObject ).(*_egg .PdfObjectDictionary );
if !_fedcc {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0021\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_egg .TraceToDirectObject (_bfafc .XObject ));
return nil ,XObjectTypeUndefined ;};if _fgfgf :=_fgffg .Get (keyName );_fgfgf !=nil {_ggdcb ,_aecfa :=_egg .GetStream (_fgfgf );if !_aecfa {_bag .Log .Debug ("X\u004f\u0062\u006a\u0065\u0063\u0074 \u006e\u006f\u0074\u0020\u0070\u006fi\u006e\u0074\u0069\u006e\u0067\u0020\u0074o\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020%\u0054",_fgfgf );
return nil ,XObjectTypeUndefined ;};_aggeg :=_ggdcb .PdfObjectDictionary ;_cgfag ,_aecfa :=_egg .TraceToDirectObject (_aggeg .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_egg .PdfObjectName );if !_aecfa {_bag .Log .Debug ("\u0058\u004fbj\u0065\u0063\u0074 \u0053\u0075\u0062\u0074ype\u0020no\u0074\u0020\u0061\u0020\u004e\u0061\u006de,\u0020\u0064\u0069\u0063\u0074\u003a\u0020%\u0073",_aggeg .String ());
return nil ,XObjectTypeUndefined ;};if *_cgfag =="\u0049\u006d\u0061g\u0065"{return _ggdcb ,XObjectTypeImage ;}else if *_cgfag =="\u0046\u006f\u0072\u006d"{return _ggdcb ,XObjectTypeForm ;}else if *_cgfag =="\u0050\u0053"{return _ggdcb ,XObjectTypePS ;
}else {_bag .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0053\u0075b\u0074\u0079\u0070\u0065\u0020\u006e\u006ft\u0020\u006b\u006e\u006f\u0077\u006e\u0020\u0028\u0025\u0073\u0029",*_cgfag );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;
};};
// PdfActionHide represents a hide action.
type PdfActionHide struct{*PdfAction ;T _egg .PdfObject ;H _egg .PdfObject ;};func _bagfg (_cfbab *_egg .PdfIndirectObject )(*PdfOutline ,error ){_affa ,_dbafd :=_cfbab .PdfObject .(*_egg .PdfObjectDictionary );if !_dbafd {return nil ,_f .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};_egce :=NewPdfOutline ();if _ddbda :=_affa .Get ("\u0054\u0079\u0070\u0065");_ddbda !=nil {_eccc ,_cdgcf :=_ddbda .(*_egg .PdfObjectName );if _cdgcf {if *_eccc !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u0020\u0054y\u0070\u0065\u0020\u0021\u003d\u0020\u004f\u0075\u0074l\u0069\u006e\u0065s\u0020(\u0025\u0073\u0029",*_eccc );
};};};if _aage :=_affa .Get ("\u0043\u006f\u0075n\u0074");_aage !=nil {_cgfda ,_cgbfc :=_egg .GetNumberAsInt64 (_aage );if _cgbfc !=nil {return nil ,_cgbfc ;};_egce .Count =&_cgfda ;};return _egce ,nil ;};
// DecodeArray returns the component range values for the Indexed colorspace.
func (_cecad *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_cecad .HiVal )};};
// VariableText contains the common attributes of a variable text.
// The VariableText is typically not used directly, but is can encapsulate by PdfField
// See section 12.7.3.3 "Variable Text" and Table 222 (pp. 434-436 PDF32000_2008).
type VariableText struct{DA *_egg .PdfObjectString ;Q *_egg .PdfObjectInteger ;DS *_egg .PdfObjectString ;RV _egg .PdfObject ;};
// PdfColorspaceCalRGB stores A, B, C components
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_fcdg *_egg .PdfObjectDictionary ;_fcgc *_egg .PdfIndirectObject ;};func _fedbe ()*modelManager {_gcdff :=modelManager {};_gcdff ._eefgc =map[PdfModel ]_egg .PdfObject {};
_gcdff ._ggbg =map[_egg .PdfObject ]PdfModel {};return &_gcdff ;};
// String returns a string representation of what flags are set.
func (_gedde FieldFlag )String ()string {_aedec :="";if _gedde ==FieldFlagClear {_aedec ="\u0043\u006c\u0065a\u0072";return _aedec ;};if _gedde &FieldFlagReadOnly > 0{_aedec +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _gedde &FieldFlagRequired > 0{_aedec +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";
};if _gedde &FieldFlagNoExport > 0{_aedec +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _gedde &FieldFlagNoToggleToOff > 0{_aedec +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _gedde &FieldFlagRadio > 0{_aedec +="\u007c\u0052\u0061\u0064\u0069\u006f";
};if _gedde &FieldFlagPushbutton > 0{_aedec +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _gedde &FieldFlagRadiosInUnision > 0{_aedec +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};
if _gedde &FieldFlagMultiline > 0{_aedec +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";};if _gedde &FieldFlagPassword > 0{_aedec +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _gedde &FieldFlagFileSelect > 0{_aedec +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";
};if _gedde &FieldFlagDoNotScroll > 0{_aedec +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";};if _gedde &FieldFlagComb > 0{_aedec +="\u007c\u0043\u006fm\u0062";};if _gedde &FieldFlagRichText > 0{_aedec +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";
};if _gedde &FieldFlagDoNotSpellCheck > 0{_aedec +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";};if _gedde &FieldFlagCombo > 0{_aedec +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _gedde &FieldFlagEdit > 0{_aedec +="\u007c\u0045\u0064i\u0074";
};if _gedde &FieldFlagSort > 0{_aedec +="\u007c\u0053\u006fr\u0074";};if _gedde &FieldFlagMultiSelect > 0{_aedec +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";};if _gedde &FieldFlagCommitOnSelChange > 0{_aedec +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";
};return _fc .Trim (_aedec ,"\u007c");};
// NewPdfAnnotationSound returns a new sound annotation.
func NewPdfAnnotationSound ()*PdfAnnotationSound {_aaba :=NewPdfAnnotation ();_feb :=&PdfAnnotationSound {};_feb .PdfAnnotation =_aaba ;_feb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aaba .SetContext (_feb );return _feb ;};
// ToPdfObject implements interface PdfModel.
func (_egfde *PdfFilespec )ToPdfObject ()_egg .PdfObject {_edfc :=_egfde .getDict ();_edfc .Clear ();_edfc .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_edfc .SetIfNotNil ("\u0046\u0053",_egfde .FS );
_edfc .SetIfNotNil ("\u0046",_egfde .F );_edfc .SetIfNotNil ("\u0055\u0046",_egfde .UF );_edfc .SetIfNotNil ("\u0044\u004f\u0053",_egfde .DOS );_edfc .SetIfNotNil ("\u004d\u0061\u0063",_egfde .Mac );_edfc .SetIfNotNil ("\u0055\u006e\u0069\u0078",_egfde .Unix );
_edfc .SetIfNotNil ("\u0049\u0044",_egfde .ID );_edfc .SetIfNotNil ("\u0056",_egfde .V );_edfc .SetIfNotNil ("\u0045\u0046",_egfde .EF );_edfc .SetIfNotNil ("\u0052\u0046",_egfde .RF );_edfc .SetIfNotNil ("\u0044\u0065\u0073\u0063",_egfde .Desc );_edfc .SetIfNotNil ("\u0043\u0049",_egfde .CI );
return _egfde ._fbdd ;};type crossReference struct{Type int ;
// Type 1
Offset int64 ;Generation int64 ;
// Type 2
ObjectNumber int ;Index int ;};
// SetName sets the `Name` field of the signature.
func (_agcab *PdfSignature )SetName (name string ){_agcab .Name =_egg .MakeString (name )};
// DecodeArray returns the range of color component values in CalRGB colorspace.
func (_babd *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};func (_bcff *PdfReader )newPdfAnnotationTextFromDict (_fcea *_egg .PdfObjectDictionary )(*PdfAnnotationText ,error ){_ggfb :=PdfAnnotationText {};_fagf ,_gef :=_bcff .newPdfAnnotationMarkupFromDict (_fcea );
if _gef !=nil {return nil ,_gef ;};_ggfb .PdfAnnotationMarkup =_fagf ;_ggfb .Open =_fcea .Get ("\u004f\u0070\u0065\u006e");_ggfb .Name =_fcea .Get ("\u004e\u0061\u006d\u0065");_ggfb .State =_fcea .Get ("\u0053\u0074\u0061t\u0065");_ggfb .StateModel =_fcea .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");
return &_ggfb ,nil ;};
// NewPdfActionSetOCGState returns a new "named" action.
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_ddg :=NewPdfAction ();_bbf :=&PdfActionSetOCGState {};_bbf .PdfAction =_ddg ;_ddg .SetContext (_bbf );return _bbf ;};
// ToPdfObject implements interface PdfModel.
func (_agcg *PdfAnnotationCircle )ToPdfObject ()_egg .PdfObject {_agcg .PdfAnnotation .ToPdfObject ();_adfe :=_agcg ._cef ;_cdad :=_adfe .PdfObject .(*_egg .PdfObjectDictionary );_agcg .PdfAnnotationMarkup .appendToPdfDictionary (_cdad );_cdad .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));
_cdad .SetIfNotNil ("\u0042\u0053",_agcg .BS );_cdad .SetIfNotNil ("\u0049\u0043",_agcg .IC );_cdad .SetIfNotNil ("\u0042\u0045",_agcg .BE );_cdad .SetIfNotNil ("\u0052\u0044",_agcg .RD );return _adfe ;};func _babdd ()string {_cgag .Lock ();defer _cgag .Unlock ();
return _fcfbd };func _cegee (_bdfbc *_egg .PdfObjectStream )(*PdfFunctionType4 ,error ){_ceab :=&PdfFunctionType4 {};_ceab ._cbebd =_bdfbc ;_efcfd :=_bdfbc .PdfObjectDictionary ;_fgcaa ,_gfcc :=_egg .TraceToDirectObject (_efcfd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_egg .PdfObjectArray );
if !_gfcc {_bag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};if _fgcaa .Len ()%2!=0{_bag .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_beaa ,_gaee :=_fgcaa .ToFloat64Array ();
if _gaee !=nil {return nil ,_gaee ;};_ceab .Domain =_beaa ;_fgcaa ,_gfcc =_egg .TraceToDirectObject (_efcfd .Get ("\u0052\u0061\u006eg\u0065")).(*_egg .PdfObjectArray );if _gfcc {if _fgcaa .Len ()< 0||_fgcaa .Len ()%2!=0{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_adbe ,_ggfdg :=_fgcaa .ToFloat64Array ();if _ggfdg !=nil {return nil ,_ggfdg ;};_ceab .Range =_adbe ;};_dfffg ,_gaee :=_egg .DecodeStream (_bdfbc );if _gaee !=nil {return nil ,_gaee ;};_ceab ._fafff =_dfffg ;_dcef :=_cde .NewPSParser (_dfffg );_gdece ,_gaee :=_dcef .Parse ();
if _gaee !=nil {return nil ,_gaee ;};_ceab .Program =_gdece ;return _ceab ,nil ;};
// GetContext returns the context of the outline tree node, which is either a
// *PdfOutline or a *PdfOutlineItem. The method returns nil for uninitialized
// tree nodes.
func (_cgaa *PdfOutlineTreeNode )GetContext ()PdfModel {if _bfgb ,_gdgg :=_cgaa ._bgbfg .(*PdfOutline );_gdgg {return _bfgb ;};if _bbgfa ,_dacb :=_cgaa ._bgbfg .(*PdfOutlineItem );_dacb {return _bbgfa ;};_bag .Log .Debug ("\u0045\u0052RO\u0052\u0020\u0049n\u0076\u0061\u006c\u0069d o\u0075tl\u0069\u006e\u0065\u0020\u0074\u0072\u0065e \u006e\u006f\u0064\u0065\u0020\u0069\u0074e\u006d");
return nil ;};func (_cdgd *PdfReader )newPdfActionLaunchFromDict (_fga *_egg .PdfObjectDictionary )(*PdfActionLaunch ,error ){_aadc ,_ecfg :=_fgb (_fga .Get ("\u0046"));if _ecfg !=nil {return nil ,_ecfg ;};return &PdfActionLaunch {Win :_fga .Get ("\u0057\u0069\u006e"),Mac :_fga .Get ("\u004d\u0061\u0063"),Unix :_fga .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_fga .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_aadc },nil ;
};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_bbgf *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_bbgf .Base .GetNumComponents ();_beca :=int (vals [0])*N ;
if _beca < 0||(_beca +N -1)>=len (_bbgf ._defc ){_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_beca );return nil ,ErrColorOutOfRange ;};_bccd :=_bbgf ._defc [_beca :_beca +N ];
var _bbaf []float64 ;for _ ,_ccad :=range _bccd {_bbaf =append (_bbaf ,float64 (_ccad )/255.0);};_acce ,_cfcaa :=_bbgf .Base .ColorFromFloats (_bbaf );if _cfcaa !=nil {return nil ,_cfcaa ;};return _acce ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_ead *PdfActionGoTo )ToPdfObject ()_egg .PdfObject {_ead .PdfAction .ToPdfObject ();_eea :=_ead ._bf ;_ca :=_eea .PdfObject .(*_egg .PdfObjectDictionary );_ca .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeGoTo )));_ca .SetIfNotNil ("\u0044",_ead .D );
return _eea ;};
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
func (_eddc *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0049\u006d\u0061\u0067\u0065\u0020\u0063\u0061n\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u0073\u0070\u0065\u0063\u0069\u0066i\u0065\u0064\u0020\u0069\u006e\u0020\u0050\u0061\u0074\u0074\u0065\u0072n \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");
return img ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0066\u006f\u0072\u0020\u0069m\u0061\u0067\u0065\u0020\u0028p\u0061\u0074t\u0065\u0072\u006e\u0029");};
// NewPdfActionSubmitForm returns a new "submit form" action.
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_eab :=NewPdfAction ();_dff :=&PdfActionSubmitForm {};_dff .PdfAction =_eab ;_eab .SetContext (_dff );return _dff ;};
// PdfShadingType2 is an Axial shading.
type PdfShadingType2 struct{*PdfShading ;Coords *_egg .PdfObjectArray ;Domain *_egg .PdfObjectArray ;Function []PdfFunction ;Extend *_egg .PdfObjectArray ;};type pdfSignDictionary struct{*_egg .PdfObjectDictionary ;_ebdca *SignatureHandler ;_gbbba *PdfSignature ;
_cagab int64 ;_fcade int ;_aabac int ;_dcfaa int ;_gbeab int ;};
// ToInteger convert to an integer format.
func (_dfdb *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_cbdc :=_dgb .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_cbdc *_dfdb .C ()),uint32 (_cbdc *_dfdb .M ()),uint32 (_cbdc *_dfdb .Y ()),uint32 (_cbdc *_dfdb .K ())};};
// NewCompositePdfFontFromTTFFile loads a composite font from a TTF font file. Composite fonts can
// be used to represent unicode fonts which can have multi-byte character codes, representing a wide
// range of values. They are often used for symbolic languages, including Chinese, Japanese and Korean.
// It is represented by a Type0 Font with an underlying CIDFontType2 and an Identity-H encoding map.
// TODO: May be extended in the future to support a larger variety of CMaps and vertical fonts.
// NOTE: For simple fonts, use NewPdfFontFromTTFFile.
func NewCompositePdfFontFromTTFFile (filePath string )(*PdfFont ,error ){_gaabc ,_ceedg :=_gf .Open (filePath );if _ceedg !=nil {_bag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_ceedg );
return nil ,_ceedg ;};defer _gaabc .Close ();return NewCompositePdfFontFromTTF (_gaabc );};
// AddAnnotation appends `annot` to the list of page annotations.
func (_fcgfg *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _fcgfg ._bcce ==nil {_fcgfg .GetAnnotations ();};_fcgfg ._bcce =append (_fcgfg ._bcce ,annot );};
// PdfPageResourcesColorspaces contains the colorspace in the PdfPageResources.
// Needs to have matching name and colorspace map entry. The Names define the order.
type PdfPageResourcesColorspaces struct{Names []string ;Colorspaces map[string ]PdfColorspace ;_bcecc *_egg .PdfIndirectObject ;};func (_cca *PdfReader )newPdfAnnotationPolyLineFromDict (_dec *_egg .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_bec :=PdfAnnotationPolyLine {};
_ggga ,_cbc :=_cca .newPdfAnnotationMarkupFromDict (_dec );if _cbc !=nil {return nil ,_cbc ;};_bec .PdfAnnotationMarkup =_ggga ;_bec .Vertices =_dec .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_bec .LE =_dec .Get ("\u004c\u0045");_bec .BS =_dec .Get ("\u0042\u0053");
_bec .IC =_dec .Get ("\u0049\u0043");_bec .BE =_dec .Get ("\u0042\u0045");_bec .IT =_dec .Get ("\u0049\u0054");_bec .Measure =_dec .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_bec ,nil ;};func _ecaae (_dffda *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_dffda }};
// NewPdfRectangle creates a PDF rectangle object based on an input array of 4 integers.
// Defining the lower left (LL) and upper right (UR) corners with
// floating point numbers.
func NewPdfRectangle (arr _egg .PdfObjectArray )(*PdfRectangle ,error ){_dabg :=PdfRectangle {};if arr .Len ()!=4{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u0072\u0065\u0063\u0074\u0061\u006e\u0067\u006c\u0065\u0020\u0061\u0072r\u0061\u0079\u002c\u0020\u006c\u0065\u006e \u0021\u003d\u0020\u0034");
};var _cbdf error ;_dabg .Llx ,_cbdf =_egg .GetNumberAsFloat (arr .Get (0));if _cbdf !=nil {return nil ,_cbdf ;};_dabg .Lly ,_cbdf =_egg .GetNumberAsFloat (arr .Get (1));if _cbdf !=nil {return nil ,_cbdf ;};_dabg .Urx ,_cbdf =_egg .GetNumberAsFloat (arr .Get (2));
if _cbdf !=nil {return nil ,_cbdf ;};_dabg .Ury ,_cbdf =_egg .GetNumberAsFloat (arr .Get (3));if _cbdf !=nil {return nil ,_cbdf ;};return &_dabg ,nil ;};
// NewPdfColorCalRGB returns a new CalRBG color.
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_baeg :=PdfColorCalRGB {a ,b ,c };return &_baeg ;};func (_dgaa fontCommon )asPdfObjectDictionary (_cebg string )*_egg .PdfObjectDictionary {if _cebg !=""&&_dgaa ._ebdf !=""&&_cebg !=_dgaa ._ebdf {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0061\u0073\u0050\u0064\u0066\u004f\u0062\u006a\u0065\u0063\u0074\u0044\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002e\u0020O\u0076\u0065\u0072\u0072\u0069\u0064\u0069\u006e\u0067\u0020\u0073\u0075\u0062t\u0079\u0070\u0065\u0020\u0074\u006f \u0025\u0023\u0071 \u0025\u0073",_cebg ,_dgaa );
}else if _cebg ==""&&_dgaa ._ebdf ==""{_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0061s\u0050\u0064\u0066Ob\u006a\u0065\u0063\u0074\u0044\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006e\u006f\u0020\u0073\u0075\u0062\u0074y\u0070\u0065\u002e\u0020\u0066\u006f\u006e\u0074=\u0025\u0073",_dgaa );
}else if _dgaa ._ebdf ==""{_dgaa ._ebdf =_cebg ;};_acgb :=_egg .MakeDict ();_acgb .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0046\u006f\u006e\u0074"));_acgb .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_egg .MakeName (_dgaa ._dgfdc ));
_acgb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName (_dgaa ._ebdf ));if _dgaa ._bgacg !=nil {_acgb .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_dgaa ._bgacg .ToPdfObject ());};if _dgaa ._gdbae !=nil {_acgb .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_dgaa ._gdbae );
}else if _dgaa ._bfbgf !=nil {_ecdgad ,_beace :=_dgaa ._bfbgf .Stream ();if _beace !=nil {_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006eo\u0074\u0020\u0067\u0065\u0074\u0020C\u004d\u0061\u0070\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u002e\u0020\u0065r\u0072\u003d\u0025\u0076",_beace );
}else {_acgb .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_ecdgad );};};return _acgb ;};func _afcaa (_ceaad _egg .PdfObject ,_cbcf *PdfReader )(*OutlineDest ,error ){_bgcecc ,_aegfae :=_egg .GetArray (_ceaad );if !_aegfae {return nil ,_gd .New ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0064\u0065\u0073t\u0069\u006e\u0061\u0074i\u006f\u006e\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006d\u0075\u0073\u0074\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
};_ebac :=_bgcecc .Len ();if _ebac < 2{return nil ,_f .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u006fu\u0074\u006c\u0069n\u0065\u0020\u0064\u0065\u0073\u0074\u0069\u006e\u0061ti\u006f\u006e\u0020a\u0072\u0072a\u0079\u0020\u006c\u0065\u006e\u0067t\u0068\u003a \u0025\u0064",_ebac );
};_gaegg :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_adabd :=_bgcecc .Get (0);if _bcbdf ,_fccee :=_egg .GetIndirect (_adabd );_fccee {if _ ,_becad ,_ggege :=_cbcf .PageFromIndirectObject (_bcbdf );_ggege ==nil {_gaegg .Page =int64 (_becad -1);}else {_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020g\u0065\u0074\u0020\u0070\u0061\u0067\u0065\u0020\u0069\u006e\u0064\u0065\u0078\u0020\u0066\u006f\u0072\u0020\u0070\u0061\u0067\u0065\u0020\u0025\u002b\u0076",_bcbdf );
};_gaegg .PageObj =_bcbdf ;}else if _gebbb ,_ecda :=_egg .GetIntVal (_adabd );_ecda {if _gebbb >=0&&_gebbb < len (_cbcf .PageList ){_gaegg .PageObj =_cbcf .PageList [_gebbb ].GetPageAsIndirectObject ();}else {_bag .Log .Debug ("\u0057\u0041R\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0067\u0065\u0074\u0020\u0070\u0061\u0067\u0065\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0070\u0061\u0067\u0065\u0020\u0025\u0064",_gebbb );
};_gaegg .Page =int64 (_gebbb );}else {return nil ,_f .Errorf ("\u0069\u006eva\u006c\u0069\u0064 \u006f\u0075\u0074\u006cine\u0020de\u0073\u0074\u0069\u006e\u0061\u0074\u0069on\u0020\u0070\u0061\u0067\u0065\u003a\u0020%\u0054",_adabd );};_fgeb ,_aegfae :=_egg .GetNameVal (_bgcecc .Get (1));
if !_aegfae {_bag .Log .Debug ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0064\u0065s\u0074\u0069\u006e\u0061\u0074\u0069\u006fn\u0020\u006d\u0061\u0067\u006e\u0069\u0066\u0069\u0063\u0061\u0074i\u006f\u006e\u0020\u006d\u006f\u0064\u0065\u003a\u0020\u0025\u0076",_bgcecc .Get (1));
return _gaegg ,nil ;};switch _fgeb {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _ebac > 2{_gaegg .Y ,_ =_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_bgcecc .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _ebac > 2{_gaegg .X ,_ =_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_bgcecc .Get (2)));
};case "\u0058\u0059\u005a":if _ebac > 4{_gaegg .X ,_ =_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_bgcecc .Get (2)));_gaegg .Y ,_ =_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_bgcecc .Get (3)));_gaegg .Zoom ,_ =_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_bgcecc .Get (4)));
};default:_fgeb ="\u0046\u0069\u0074";};_gaegg .Mode =_fgeb ;return _gaegg ,nil ;};func (_geeed *Image )samplesTrimPadding (_gddaf []uint32 )[]uint32 {_gdacc :=_geeed .ColorComponents *int (_geeed .Width )*int (_geeed .Height );if len (_gddaf )==_gdacc {return _gddaf ;
};_gaaca :=make ([]uint32 ,_gdacc );_bcfff :=int (_geeed .Width )*_geeed .ColorComponents ;var _fdab ,_gfafa ,_bfgfe ,_bfcfd int ;_eaaf :=_eg .BytesPerLine (int (_geeed .Width ),int (_geeed .BitsPerComponent ),_geeed .ColorComponents );for _fdab =0;_fdab < int (_geeed .Height );
_fdab ++{_gfafa =_fdab *int (_geeed .Width );_bfgfe =_fdab *_eaaf ;for _bfcfd =0;_bfcfd < _bcfff ;_bfcfd ++{_gaaca [_gfafa +_bfcfd ]=_gddaf [_bfgfe +_bfcfd ];};};return _gaaca ;};func (_dcgge *PdfWriter )optimizeDocument ()error {if _dcgge ._ebgad ==nil {return nil ;
};_bfbf ,_eaaae :=_egg .GetDict (_dcgge ._efage );if !_eaaae {return _gd .New ("\u0061\u006e\u0020in\u0066\u006f\u0020\u006f\u0062\u006a\u0065\u0063\u0074 \u0069s\u0020n\u006ft\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};_fegf :=_dc .Document {ID :[2]string {_dcgge ._caddc ,_dcgge ._bagaa },Version :_dcgge ._dacce ,Objects :_dcgge ._bbead ,Info :_bfbf ,Crypt :_dcgge ._agdag ,UseHashBasedID :_dcgge ._aafeg };if _fdggd :=_dcgge ._ebgad .ApplyStandard (&_fegf );_fdggd !=nil {return _fdggd ;
};_dcgge ._caddc ,_dcgge ._bagaa =_fegf .ID [0],_fegf .ID [1];_dcgge ._dacce =_fegf .Version ;_dcgge ._bbead =_fegf .Objects ;_dcgge ._efage .PdfObject =_fegf .Info ;_dcgge ._aafeg =_fegf .UseHashBasedID ;_dcgge ._agdag =_fegf .Crypt ;_fgfcf :=make (map[_egg .PdfObject ]struct{},len (_dcgge ._bbead ));
for _ ,_fbeee :=range _dcgge ._bbead {_fgfcf [_fbeee ]=struct{}{};};_dcgge ._bacec =_fgfcf ;return nil ;};
// ToPdfObject implements interface PdfModel.
func (_gcfc *PdfAnnotationProjection )ToPdfObject ()_egg .PdfObject {_gcfc .PdfAnnotation .ToPdfObject ();_ffab :=_gcfc ._cef ;_ceaf :=_ffab .PdfObject .(*_egg .PdfObjectDictionary );_gcfc .PdfAnnotationMarkup .appendToPdfDictionary (_ceaf );return _ffab ;
};
// NewPdfActionGoToE returns a new "go to embedded" action.
func NewPdfActionGoToE ()*PdfActionGoToE {_bfc :=NewPdfAction ();_dfg :=&PdfActionGoToE {};_dfg .PdfAction =_bfc ;_bfc .SetContext (_dfg );return _dfg ;};
// GetPdfInfo returns the PDF info dictionary.
func (_gcbd *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_efdgc ,_bgccg :=_gcbd .GetTrailer ();if _bgccg !=nil {return nil ,_bgccg ;};var _dabf *_egg .PdfObjectDictionary ;_gfbddb :=_efdgc .Get ("\u0049\u006e\u0066\u006f");switch _fbddd :=_gfbddb .(type ){case *_egg .PdfObjectReference :_bcca :=_fbddd ;
_gfbddb ,_bgccg =_gcbd .GetIndirectObjectByNumber (int (_bcca .ObjectNumber ));_gfbddb =_egg .TraceToDirectObject (_gfbddb );if _bgccg !=nil {return nil ,_bgccg ;};_dabf ,_ =_gfbddb .(*_egg .PdfObjectDictionary );case *_egg .PdfObjectDictionary :_dabf =_fbddd ;
};if _dabf ==nil {return nil ,_gd .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_ffdbg ,_bgccg :=NewPdfInfoFromObject (_dabf );if _bgccg !=nil {return nil ,_bgccg ;
};return _ffdbg ,nil ;};func (_ceecc *PdfWriter )writeString (_fdfed string ){if _ceecc ._gdbeb !=nil {return ;};_fgbe ,_dffab :=_ceecc ._beegad .WriteString (_fdfed );_ceecc ._cdaab +=int64 (_fgbe );_ceecc ._gdbeb =_dffab ;};
// CharcodesToUnicode converts the character codes `charcodes` to a slice of runes.
// How it works:
// 1) Use the ToUnicode CMap if there is one.
// 2) Use the underlying font's encoding.
func (_fdcgg *PdfFont )CharcodesToUnicode (charcodes []_ef .CharCode )[]rune {_aaab ,_ ,_ :=_fdcgg .CharcodesToUnicodeWithStats (charcodes );return _aaab ;};func _aeac (_dagb *PdfPage )map[_egg .PdfObjectName ]_egg .PdfObject {_facd :=make (map[_egg .PdfObjectName ]_egg .PdfObject );
if _dagb .Resources ==nil {return _facd ;};if _dagb .Resources .Font !=nil {if _cfdgb ,_aabg :=_egg .GetDict (_dagb .Resources .Font );_aabg {for _ ,_abad :=range _cfdgb .Keys (){_facd [_abad ]=_cfdgb .Get (_abad );};};};if _dagb .Resources .ExtGState !=nil {if _fbda ,_adfd :=_egg .GetDict (_dagb .Resources .ExtGState );
_adfd {for _ ,_gdef :=range _fbda .Keys (){_facd [_gdef ]=_fbda .Get (_gdef );};};};if _dagb .Resources .XObject !=nil {if _dfdd ,_dbffc :=_egg .GetDict (_dagb .Resources .XObject );_dbffc {for _ ,_gfbb :=range _dfdd .Keys (){_facd [_gfbb ]=_dfdd .Get (_gfbb );
};};};if _dagb .Resources .Pattern !=nil {if _afgd ,_gaab :=_egg .GetDict (_dagb .Resources .Pattern );_gaab {for _ ,_egfd :=range _afgd .Keys (){_facd [_egfd ]=_afgd .Get (_egfd );};};};if _dagb .Resources .Shading !=nil {if _acdg ,_ggec :=_egg .GetDict (_dagb .Resources .Shading );
_ggec {for _ ,_egde :=range _acdg .Keys (){_facd [_egde ]=_acdg .Get (_egde );};};};if _dagb .Resources .ProcSet !=nil {if _cfbad ,_afe :=_egg .GetDict (_dagb .Resources .ProcSet );_afe {for _ ,_bgag :=range _cfbad .Keys (){_facd [_bgag ]=_cfbad .Get (_bgag );
};};};if _dagb .Resources .Properties !=nil {if _dfbd ,_adcg :=_egg .GetDict (_dagb .Resources .Properties );_adcg {for _ ,_dfe :=range _dfbd .Keys (){_facd [_dfe ]=_dfbd .Get (_dfe );};};};return _facd ;};
// NewPdfFontFromTTF loads a TTF font and returns a PdfFont type that can be
// used in text styling functions.
// Uses a WinAnsiTextEncoder and loads only character codes 32-255.
// NOTE: For composite fonts such as used in symbolic languages, use NewCompositePdfFontFromTTF.
func NewPdfFontFromTTF (r _dag .ReadSeeker )(*PdfFont ,error ){const _efgd =_ef .CharCode (32);const _dddb =_ef .CharCode (255);_cgcbg ,_eddbd :=_ac .ReadAll (r );if _eddbd !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065 \u0074\u006f\u0020\u0072\u0065\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074s\u003a\u0020\u0025\u0076",_eddbd );
return nil ,_eddbd ;};_efegb ,_eddbd :=_bgd .TtfParse (_dd .NewReader (_cgcbg ));if _eddbd !=nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020l\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0054\u0054F\u0020\u0066\u006fn\u0074:\u0020\u0025\u0076",_eddbd );
return nil ,_eddbd ;};_ecfe :=&pdfFontSimple {_babec :make (map[_ef .CharCode ]float64 ),fontCommon :fontCommon {_ebdf :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_ecfe ._cbdegf =_ef .NewWinAnsiEncoder ();_ecfe ._dgfdc =_efegb .PostScriptName ;
_ecfe .FirstChar =_egg .MakeInteger (int64 (_efgd ));_ecfe .LastChar =_egg .MakeInteger (int64 (_dddb ));_dgff :=1000.0/float64 (_efegb .UnitsPerEm );if len (_efegb .Widths )<=0{return nil ,_gd .New ("\u0045\u0052\u0052O\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065 \u0028\u0057\u0069\u0064\u0074\u0068\u0073\u0029");
};_ccgaf :=_dgff *float64 (_efegb .Widths [0]);_dced :=make ([]float64 ,0,_dddb -_efgd +1);for _ddec :=_efgd ;_ddec <=_dddb ;_ddec ++{_dcfa ,_ceaec :=_ecfe .Encoder ().CharcodeToRune (_ddec );if !_ceaec {_bag .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_ddec );
_dced =append (_dced ,_ccgaf );continue ;};_aeca ,_acbb :=_efegb .Chars [_dcfa ];if !_acbb {_bag .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_dced =append (_dced ,_ccgaf );continue ;
};_afdgc :=_dgff *float64 (_efegb .Widths [_aeca ]);_dced =append (_dced ,_afdgc );};_ecfe .Widths =_egg .MakeIndirectObject (_egg .MakeArrayFromFloats (_dced ));if len (_dced )< int (_dddb -_efgd +1){_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0065\u006e\u0067t\u0068\u0020\u006f\u0066\u0020\u0077\u0069\u0064\u0074\u0068s,\u0020\u0025\u0064 \u003c \u0025\u0064",len (_dced ),255-32+1);
return nil ,_egg .ErrRangeError ;};for _bffd :=_efgd ;_bffd <=_dddb ;_bffd ++{_ecfe ._babec [_bffd ]=_dced [_bffd -_efgd ];};_ecfe .Encoding =_egg .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_efeag :=&PdfFontDescriptor {};
_efeag .FontName =_egg .MakeName (_efegb .PostScriptName );_efeag .Ascent =_egg .MakeFloat (_dgff *float64 (_efegb .TypoAscender ));_efeag .Descent =_egg .MakeFloat (_dgff *float64 (_efegb .TypoDescender ));_efeag .CapHeight =_egg .MakeFloat (_dgff *float64 (_efegb .CapHeight ));
_efeag .FontBBox =_egg .MakeArrayFromFloats ([]float64 {_dgff *float64 (_efegb .Xmin ),_dgff *float64 (_efegb .Ymin ),_dgff *float64 (_efegb .Xmax ),_dgff *float64 (_efegb .Ymax )});_efeag .ItalicAngle =_egg .MakeFloat (_efegb .ItalicAngle );_efeag .MissingWidth =_egg .MakeFloat (_dgff *float64 (_efegb .Widths [0]));
_fagd ,_eddbd :=_egg .MakeStream (_cgcbg ,_egg .NewFlateEncoder ());if _eddbd !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074o\u0020m\u0061\u006b\u0065\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020\u0025\u0076",_eddbd );
return nil ,_eddbd ;};_fagd .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_egg .MakeInteger (int64 (len (_cgcbg ))));_efeag .FontFile2 =_fagd ;if _efegb .Bold {_efeag .StemV =_egg .MakeInteger (120);}else {_efeag .StemV =_egg .MakeInteger (70);
};_bfafb :=_cdadd ;if _efegb .IsFixedPitch {_bfafb |=_ebaa ;};if _efegb .ItalicAngle !=0{_bfafb |=_ggcggf ;};_efeag .Flags =_egg .MakeInteger (int64 (_bfafb ));_ecfe ._bgacg =_efeag ;_feged :=&PdfFont {_edde :_ecfe };return _feged ,nil ;};
// ToInteger convert to an integer format.
func (_caga *PdfColorDeviceGray )ToInteger (bits int )uint32 {_eadd :=_dgb .Pow (2,float64 (bits ))-1;return uint32 (_eadd *_caga .Val ());};
// ColorToRGB converts a Lab color to an RGB color.
func (_gcdg *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_cagac :=func (_fbdbc float64 )float64 {if _fbdbc >=6.0/29{return _fbdbc *_fbdbc *_fbdbc ;};return 108.0/841*(_fbdbc -4/29);};_babb ,_bbfc :=color .(*PdfColorLab );if !_bbfc {_bag .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");
return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_babb .L ();AStar :=_babb .A ();BStar :=_babb .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;
X :=_gcdg .WhitePoint [0]*_cagac (L );Y :=_gcdg .WhitePoint [1]*_cagac (M );Z :=_gcdg .WhitePoint [2]*_cagac (N );_adec :=3.240479*X +-1.537150*Y +-0.498535*Z ;_cdcb :=-0.969256*X +1.875992*Y +0.041556*Z ;_bdfab :=0.055648*X +-0.204043*Y +1.057311*Z ;_adec =_dgb .Min (_dgb .Max (_adec ,0),1.0);
_cdcb =_dgb .Min (_dgb .Max (_cdcb ,0),1.0);_bdfab =_dgb .Min (_dgb .Max (_bdfab ,0),1.0);return NewPdfColorDeviceRGB (_adec ,_cdcb ,_bdfab ),nil ;};
// NewPdfActionTrans returns a new "trans" action.
func NewPdfActionTrans ()*PdfActionTrans {_fdf :=NewPdfAction ();_gff :=&PdfActionTrans {};_gff .PdfAction =_fdf ;_fdf .SetContext (_gff );return _gff ;};func (_gec *PdfReader )newPdfAnnotationLinkFromDict (_gbbg *_egg .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_egd :=PdfAnnotationLink {};
_egd .A =_gbbg .Get ("\u0041");_egd .Dest =_gbbg .Get ("\u0044\u0065\u0073\u0074");_egd .H =_gbbg .Get ("\u0048");_egd .PA =_gbbg .Get ("\u0050\u0041");_egd .QuadPoints =_gbbg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_egd .BS =_gbbg .Get ("\u0042\u0053");
return &_egd ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_cbde *PdfAnnotationPrinterMark )ToPdfObject ()_egg .PdfObject {_cbde .PdfAnnotation .ToPdfObject ();_eccd :=_cbde ._cef ;_baga :=_eccd .PdfObject .(*_egg .PdfObjectDictionary );_baga .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));
_baga .SetIfNotNil ("\u004d\u004e",_cbde .MN );return _eccd ;};
// NewPdfAnnotationRichMedia returns a new rich media annotation.
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_ggcd :=NewPdfAnnotation ();_efe :=&PdfAnnotationRichMedia {};_efe .PdfAnnotation =_ggcd ;_ggcd .SetContext (_efe );return _efe ;};
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_fcce :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_fcce ;};
// NewPdfActionThread returns a new "thread" action.
func NewPdfActionThread ()*PdfActionThread {_ed :=NewPdfAction ();_dce :=&PdfActionThread {};_dce .PdfAction =_ed ;_ed .SetContext (_dce );return _dce ;};
// ToPdfObject implements interface PdfModel.
func (_defb *PdfAnnotationSound )ToPdfObject ()_egg .PdfObject {_defb .PdfAnnotation .ToPdfObject ();_bbbg :=_defb ._cef ;_aegg :=_bbbg .PdfObject .(*_egg .PdfObjectDictionary );_defb .PdfAnnotationMarkup .appendToPdfDictionary (_aegg );_aegg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053\u006f\u0075n\u0064"));
_aegg .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_defb .Sound );_aegg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_defb .Name );return _bbbg ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain three elements representing the
// L (range 0-100), A (range -100-100) and B (range -100-100) components of
// the color.
func (_effb *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ggae :=vals [0];if _ggae < 0.0||_ggae > 100.0{_bag .Log .Debug ("\u004c\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0072\u0061\u006e\u0067e\u0020\u0028\u0067\u006f\u0074\u0020%\u0076\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030-\u0031\u0030\u0030\u0029",_ggae );
return nil ,ErrColorOutOfRange ;};_ebab :=vals [1];_aedc :=float64 (-100);_gegad :=float64 (100);if len (_effb .Range )> 1{_aedc =_effb .Range [0];_gegad =_effb .Range [1];};if _ebab < _aedc ||_ebab > _gegad {_bag .Log .Debug ("\u0041\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0072\u0061\u006e\u0067e\u0020\u0028\u0067\u006f\u0074\u0020%\u0076\u003b\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0025\u0076\u0020\u0074o\u0020\u0025\u0076\u0029",_ebab ,_aedc ,_gegad );
return nil ,ErrColorOutOfRange ;};_gfba :=vals [2];_cafg :=float64 (-100);_edcg :=float64 (100);if len (_effb .Range )> 3{_cafg =_effb .Range [2];_edcg =_effb .Range [3];};if _gfba < _cafg ||_gfba > _edcg {_bag .Log .Debug ("\u0062\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0072\u0061\u006e\u0067e\u0020\u0028\u0067\u006f\u0074\u0020%\u0076\u003b\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0025\u0076\u0020\u0074o\u0020\u0025\u0076\u0029",_gfba ,_cafg ,_edcg );
return nil ,ErrColorOutOfRange ;};_dgge :=NewPdfColorLab (_ggae ,_ebab ,_gfba );return _dgge ,nil ;};
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
func (_fdgga *PdfFieldButton )IsCheckbox ()bool {return _fdgga .GetType ()==ButtonTypeCheckbox };
// GetFillImage get attached model.Image in push button.
func (_egef *PdfFieldButton )GetFillImage ()*Image {if _egef .IsPush (){return _egef ._ffcc ;};return nil ;};func (_cafge *LTV )buildCertChain (_fdbb ,_ffgfa []*_dg .Certificate )([]*_dg .Certificate ,map[string ]*_dg .Certificate ,error ){_gccb :=map[string ]*_dg .Certificate {};
for _ ,_eedd :=range _fdbb {_gccb [_eedd .Subject .CommonName ]=_eedd ;};_ddde :=_fdbb ;for _ ,_dbbfd :=range _ffgfa {_dgfc :=_dbbfd .Subject .CommonName ;if _ ,_ecgg :=_gccb [_dgfc ];_ecgg {continue ;};_gccb [_dgfc ]=_dbbfd ;_ddde =append (_ddde ,_dbbfd );
};if len (_ddde )==0{return nil ,nil ,ErrSignNoCertificates ;};var _fgfab error ;for _cacaa :=_ddde [0];_cacaa !=nil &&!_cafge .CertClient .IsCA (_cacaa );{_gfdgd ,_dbde :=_gccb [_cacaa .Issuer .CommonName ];if !_dbde {if _gfdgd ,_fgfab =_cafge .CertClient .GetIssuer (_cacaa );
_fgfab !=nil {_bag .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0043\u006f\u0075\u006cd\u0020\u006e\u006f\u0074\u0020\u0072\u0065tr\u0069\u0065\u0076\u0065 \u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061te\u0020\u0069s\u0073\u0075\u0065\u0072\u003a\u0020\u0025\u0076",_fgfab );
break ;};_gccb [_cacaa .Issuer .CommonName ]=_gfdgd ;_ddde =append (_ddde ,_gfdgd );};_cacaa =_gfdgd ;};return _ddde ,_gccb ,nil ;};
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
func (_ccgcb *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_acfac :=func (_adgf float64 )float64 {if _adgf >=6.0/29{return _adgf *_adgf *_adgf ;};return 108.0/841*(_adgf -4/29);};_deea :=img ._abfae ;if len (_deea )!=6{_bag .Log .Trace ("\u0049\u006d\u0061\u0067\u0065\u0020\u002d\u0020\u004c\u0061\u0062\u0020\u0044e\u0063\u006f\u0064\u0065\u0020\u0072\u0061\u006e\u0067e\u0020\u0021\u003d\u0020\u0036\u002e\u002e\u002e\u0020\u0075\u0073\u0065\u0020\u005b0\u0020\u0031\u0030\u0030\u0020\u0061\u006d\u0069\u006e\u0020\u0061\u006d\u0061\u0078\u0020\u0062\u006d\u0069\u006e\u0020\u0062\u006d\u0061\u0078\u005d\u0020\u0064\u0065\u0066\u0061u\u006c\u0074\u0020\u0064\u0065\u0063\u006f\u0064\u0065 \u0061\u0072r\u0061\u0079");
_deea =_ccgcb .DecodeArray ();};_fgef :=_fb .NewReader (img .getBase ());_daafa :=_eg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._fgggb ,img ._abfae );_ebgeg :=_fb .NewWriter (_daafa );_afed :=_dgb .Pow (2,float64 (img .BitsPerComponent ))-1;
_addd :=make ([]uint32 ,3);var (_gcac error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_dcda ,_cbegg ,_bedc float64 ;);for {_gcac =_fgef .ReadSamples (_addd );if _gcac ==_dag .EOF {break ;}else if _gcac !=nil {return img ,_gcac ;};Ls =float64 (_addd [0])/_afed ;As =float64 (_addd [1])/_afed ;
Bs =float64 (_addd [2])/_afed ;Ls =_eg .LinearInterpolate (Ls ,0.0,1.0,_deea [0],_deea [1]);As =_eg .LinearInterpolate (As ,0.0,1.0,_deea [2],_deea [3]);Bs =_eg .LinearInterpolate (Bs ,0.0,1.0,_deea [4],_deea [5]);L =(Ls +16)/116+As /500;M =(Ls +16)/116;
N =(Ls +16)/116-Bs /200;X =_ccgcb .WhitePoint [0]*_acfac (L );Y =_ccgcb .WhitePoint [1]*_acfac (M );Z =_ccgcb .WhitePoint [2]*_acfac (N );_dcda =3.240479*X +-1.537150*Y +-0.498535*Z ;_cbegg =-0.969256*X +1.875992*Y +0.041556*Z ;_bedc =0.055648*X +-0.204043*Y +1.057311*Z ;
_dcda =_dgb .Min (_dgb .Max (_dcda ,0),1.0);_cbegg =_dgb .Min (_dgb .Max (_cbegg ,0),1.0);_bedc =_dgb .Min (_dgb .Max (_bedc ,0),1.0);_addd [0]=uint32 (_dcda *_afed );_addd [1]=uint32 (_cbegg *_afed );_addd [2]=uint32 (_bedc *_afed );if _gcac =_ebgeg .WriteSamples (_addd );
_gcac !=nil {return img ,_gcac ;};};return _cggba (&_daafa ),nil ;};
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
func NewOutlineBookmark (title string ,page *_egg .PdfIndirectObject )*PdfOutlineItem {_cgdb :=PdfOutlineItem {};_cgdb ._bgbfg =&_cgdb ;_cgdb .Title =_egg .MakeString (title );_beddb :=_egg .MakeArray ();_beddb .Append (page );_beddb .Append (_egg .MakeName ("\u0046\u0069\u0074"));
_cgdb .Dest =_beddb ;return &_cgdb ;};func _bdcd ()_e .Time {_cgag .Lock ();defer _cgag .Unlock ();return _fabb };func _fgafa (_agbc _egg .PdfObject )(*_egg .PdfObjectDictionary ,*fontCommon ,error ){_febee :=&fontCommon {};if _gagg ,_gggfe :=_agbc .(*_egg .PdfIndirectObject );
_gggfe {_febee ._ccaae =_gagg .ObjectNumber ;};_edbbbb ,_ddbb :=_egg .GetDict (_agbc );if !_ddbb {_bag .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0067\u0069\u0076\u0065\u006e\u0020\u0062\u0079\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_agbc );
return nil ,nil ,ErrFontNotSupported ;};_dfgd ,_ddbb :=_egg .GetNameVal (_edbbbb .Get ("\u0054\u0079\u0070\u0065"));if !_ddbb {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046o\u006e\u0074\u0020\u0049\u006ec\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u002e\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
return nil ,nil ,ErrRequiredAttributeMissing ;};if _dfgd !="\u0046\u006f\u006e\u0074"{_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0046\u006f\u006e\u0074\u0020\u0049\u006e\u0063\u006f\u006d\u0070\u0061t\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u002e\u0020\u0054\u0079\u0070\u0065\u003d\u0025\u0071\u002e\u0020\u0053\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0025\u0071.",_dfgd ,"\u0046\u006f\u006e\u0074");
return nil ,nil ,_egg .ErrTypeError ;};_afcga ,_ddbb :=_egg .GetNameVal (_edbbbb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_ddbb {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020F\u006f\u006e\u0074 \u0049\u006e\u0063o\u006d\u0070a\u0074\u0069\u0062\u0069\u006c\u0069t\u0079. \u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
return nil ,nil ,ErrRequiredAttributeMissing ;};_febee ._ebdf =_afcga ;_febb ,_ddbb :=_egg .GetNameVal (_edbbbb .Get ("\u004e\u0061\u006d\u0065"));if _ddbb {_febee ._cbgce =_febb ;};_aeea :=_edbbbb .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");
if _aeea !=nil {_febee ._gdbae =_egg .TraceToDirectObject (_aeea );_fcagg ,_cgacd :=_ebfda (_febee ._gdbae ,_febee );if _cgacd !=nil {return _edbbbb ,_febee ,_cgacd ;};_febee ._bfbgf =_fcagg ;}else if _afcga =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_afcga =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_dcfc ,_bdgb :=_ga .NewCIDSystemInfo (_edbbbb .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
if _bdgb !=nil {return _edbbbb ,_febee ,_bdgb ;};_bfacg :=_f .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_dcfc .Registry ,_dcfc .Ordering );if _ga .IsPredefinedCMap (_bfacg ){_febee ._bfbgf ,_bdgb =_ga .LoadPredefinedCMap (_bfacg );
if _bdgb !=nil {_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020l\u006f\u0061\u0064\u0020\u0070\u0072\u0065\u0064\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0043\u004d\u0061\u0070\u0020\u0025\u0073\u003a\u0020\u0025\u0076",_bfacg ,_bdgb );
};};};_fcge :=_edbbbb .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _fcge !=nil {_efcg ,_ggbd :=_gcgfb (_fcge );if _ggbd !=nil {_bag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0042\u0061\u0064\u0020\u0066\u006f\u006et\u0020d\u0065s\u0063r\u0069\u0070\u0074\u006f\u0072\u002e\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_ggbd );
return _edbbbb ,_febee ,_ggbd ;};_febee ._bgacg =_efcg ;};if _afcga !="\u0054\u0079\u0070e\u0033"{_ccbe ,_cfaa :=_egg .GetNameVal (_edbbbb .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_cfaa {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0046\u006f\u006et\u0020\u0049\u006ec\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069t\u0079\u002e\u0020\u0042\u0061se\u0046\u006f\u006e\u0074\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
return _edbbbb ,_febee ,ErrRequiredAttributeMissing ;};_febee ._dgfdc =_ccbe ;};return _edbbbb ,_febee ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_dfbc *PdfAnnotationStrikeOut )ToPdfObject ()_egg .PdfObject {_dfbc .PdfAnnotation .ToPdfObject ();_bed :=_dfbc ._cef ;_bdgd :=_bed .PdfObject .(*_egg .PdfObjectDictionary );_dfbc .PdfAnnotationMarkup .appendToPdfDictionary (_bdgd );_bdgd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));
_bdgd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_dfbc .QuadPoints );return _bed ;};
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_fgbgg :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");
};_fgbgg .N =N ;return _fgbgg ,nil ;};
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
type PdfActionType string ;func _fgb (_fdcd _egg .PdfObject )(*PdfFilespec ,error ){if _fdcd ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_fdcd );};
// ToPdfObject sets the common field elements.
// Note: Call the more field context's ToPdfObject to set both the generic and
// non-generic information.
func (_efcf *PdfField )ToPdfObject ()_egg .PdfObject {_fbgge :=_efcf ._agef ;_begc :=_fbgge .PdfObject .(*_egg .PdfObjectDictionary );_bbagg :=_egg .MakeArray ();for _ ,_bacg :=range _efcf .Kids {_bbagg .Append (_bacg .ToPdfObject ());};for _ ,_bebcc :=range _efcf .Annotations {if _bebcc ._cef !=_efcf ._agef {_bbagg .Append (_bebcc .GetContext ().ToPdfObject ());
};};if _efcf .Parent !=nil {_begc .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_efcf .Parent .GetContainingPdfObject ());};if _bbagg .Len ()> 0{_begc .Set ("\u004b\u0069\u0064\u0073",_bbagg );};_begc .SetIfNotNil ("\u0046\u0054",_efcf .FT );_begc .SetIfNotNil ("\u0054",_efcf .T );
_begc .SetIfNotNil ("\u0054\u0055",_efcf .TU );_begc .SetIfNotNil ("\u0054\u004d",_efcf .TM );_begc .SetIfNotNil ("\u0046\u0066",_efcf .Ff );_begc .SetIfNotNil ("\u0056",_efcf .V );_begc .SetIfNotNil ("\u0044\u0056",_efcf .DV );_begc .SetIfNotNil ("\u0041\u0041",_efcf .AA );
if _efcf .VariableText !=nil {_begc .SetIfNotNil ("\u0044\u0041",_efcf .VariableText .DA );_begc .SetIfNotNil ("\u0051",_efcf .VariableText .Q );_begc .SetIfNotNil ("\u0044\u0053",_efcf .VariableText .DS );_begc .SetIfNotNil ("\u0052\u0056",_efcf .VariableText .RV );
};return _fbgge ;};
// NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject.
func NewPdfInfoFromObject (obj _egg .PdfObject )(*PdfInfo ,error ){var _bfbd PdfInfo ;_gagcd ,_dadgd :=obj .(*_egg .PdfObjectDictionary );if !_dadgd {return nil ,_f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0070\u0064\u0066\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079p\u0065:\u0020\u0025\u0054",obj );
};for _ ,_cbfff :=range _gagcd .Keys (){switch _cbfff {case "\u0054\u0069\u0074l\u0065":_bfbd .Title ,_ =_egg .GetString (_gagcd .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_bfbd .Author ,_ =_egg .GetString (_gagcd .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));
case "\u0053u\u0062\u006a\u0065\u0063\u0074":_bfbd .Subject ,_ =_egg .GetString (_gagcd .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_bfbd .Keywords ,_ =_egg .GetString (_gagcd .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));
case "\u0043r\u0065\u0061\u0074\u006f\u0072":_bfbd .Creator ,_ =_egg .GetString (_gagcd .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_bfbd .Producer ,_ =_egg .GetString (_gagcd .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));
case "\u0054r\u0061\u0070\u0070\u0065\u0064":_bfbd .Trapped ,_ =_egg .GetName (_gagcd .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _dgfge ,_eaagb :=_egg .GetString (_gagcd .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));
_eaagb &&_dgfge .String ()!=""{_cgfad ,_cdcd :=NewPdfDate (_dgfge .String ());if _cdcd !=nil {return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0072e\u0061\u0074\u0069\u006f\u006e\u0044\u0061t\u0065\u0020\u0066\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0077",_cdcd );
};_bfbd .CreationDate =&_cgfad ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _bcea ,_fcgfd :=_egg .GetString (_gagcd .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_fcgfd &&_bcea .String ()!=""{_aggd ,_dgca :=NewPdfDate (_bcea .String ());if _dgca !=nil {return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_dgca );
};_bfbd .ModifiedDate =&_aggd ;};default:_dgcba ,_ :=_egg .GetString (_gagcd .Get (_cbfff ));if _bfbd ._eggg ==nil {_bfbd ._eggg =_egg .MakeDict ();};_bfbd ._eggg .Set (_cbfff ,_dgcba );};};return &_bfbd ,nil ;};func _cfdec (_abag _egg .PdfObject )[]*_egg .PdfObjectStream {if _abag ==nil {return nil ;
};_ccgee ,_bccdf :=_egg .GetArray (_abag );if !_bccdf ||_ccgee .Len ()==0{return nil ;};_begcf :=make ([]*_egg .PdfObjectStream ,0,_ccgee .Len ());for _ ,_abbfa :=range _ccgee .Elements (){if _gdcddb ,_bbegg :=_egg .GetStream (_abbfa );_bbegg {_begcf =append (_begcf ,_gdcddb );
};};return _begcf ;};
// SetVersion sets the PDF version of the output file.
func (_bgfcd *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_bgfcd ._dacce .Major =majorVersion ;_bgfcd ._dacce .Minor =minorVersion ;};
// UpdatePage updates the `page` in the new revision if it has changed.
func (_ffag *PdfAppender )UpdatePage (page *PdfPage ){_ffag .updateObjectsDeep (page .ToPdfObject (),nil )};
// ToPdfObject implements interface PdfModel.
func (_abd *PdfActionLaunch )ToPdfObject ()_egg .PdfObject {_abd .PdfAction .ToPdfObject ();_bad :=_abd ._bf ;_fcb :=_bad .PdfObject .(*_egg .PdfObjectDictionary );_fcb .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeLaunch )));if _abd .F !=nil {_fcb .Set ("\u0046",_abd .F .ToPdfObject ());
};_fcb .SetIfNotNil ("\u0057\u0069\u006e",_abd .Win );_fcb .SetIfNotNil ("\u004d\u0061\u0063",_abd .Mac );_fcb .SetIfNotNil ("\u0055\u006e\u0069\u0078",_abd .Unix );_fcb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_abd .NewWindow );return _bad ;
};
// A PdfPattern can represent a Pattern, either a tiling pattern or a shading pattern.
// Note that all patterns shall be treated as colours; a Pattern colour space shall be established with the CS or cs
// operator just like other colour spaces, and a particular pattern shall be installed as the current colour with the
// SCN or scn operator.
type PdfPattern struct{
// Type: Pattern
PatternType int64 ;_fcbdg PdfModel ;_fgec _egg .PdfObject ;};
// GetPreviousRevision returns the previous revision of PdfReader for the Pdf document
func (_aggfc *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _aggfc ._dafgab .GetRevisionNumber ()==0{return nil ,_gd .New ("\u0070\u0072e\u0076\u0069\u006f\u0075\u0073\u0020\u0076\u0065\u0072\u0073\u0069\u006f\u006e\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0065xi\u0073\u0074");
};if _fceg ,_cgec :=_aggfc ._gcfcf [_aggfc ];_cgec {return _fceg ,nil ;};_gadfb ,_deaffb :=_aggfc ._dafgab .GetPreviousRevisionReadSeeker ();if _deaffb !=nil {return nil ,_deaffb ;};_gfdfc ,_deaffb :=_ffee (_gadfb ,_aggfc ._ecbf ,_aggfc ._gddafb ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn");
if _deaffb !=nil {return nil ,_deaffb ;};_aggfc ._acad [_aggfc ._dafgab .GetRevisionNumber ()-1]=_gfdfc ;_aggfc ._gcfcf [_aggfc ]=_gfdfc ;_gfdfc ._gcfcf =_aggfc ._gcfcf ;return _gfdfc ,nil ;};
// PdfInfoTrapped specifies pdf trapped information.
type PdfInfoTrapped string ;
// PdfActionURI represents an URI action.
type PdfActionURI struct{*PdfAction ;URI _egg .PdfObject ;IsMap _egg .PdfObject ;};
// PdfAnnotationHighlight represents Highlight annotations.
// (Section 12.5.6.10).
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _egg .PdfObject ;};
// GetNumComponents returns the number of color components (1 for CalGray).
func (_aafd *PdfColorCalGray )GetNumComponents ()int {return 1};func (_adbb *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";};
// PdfShadingType1 is a Function-based shading.
type PdfShadingType1 struct{*PdfShading ;Domain *_egg .PdfObjectArray ;Matrix *_egg .PdfObjectArray ;Function []PdfFunction ;};
// ColorToRGB converts a CalGray color to an RGB color.
func (_cebf *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_eaee ,_cega :=color .(*PdfColorCalGray );if !_cega {_bag .Log .Debug ("\u0049n\u0070\u0075\u0074\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u006eo\u0074\u0020\u0063\u0061\u006c\u0020\u0067\u0072\u0061\u0079");
return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_eaee .Val ();X :=_cebf .WhitePoint [0]*_dgb .Pow (ANorm ,_cebf .Gamma );Y :=_cebf .WhitePoint [1]*_dgb .Pow (ANorm ,_cebf .Gamma );
Z :=_cebf .WhitePoint [2]*_dgb .Pow (ANorm ,_cebf .Gamma );_dedg :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ffe :=-0.969256*X +1.875992*Y +0.041556*Z ;_ggecd :=0.055648*X +-0.204043*Y +1.057311*Z ;_dedg =_dgb .Min (_dgb .Max (_dedg ,0),1.0);_ffe =_dgb .Min (_dgb .Max (_ffe ,0),1.0);
_ggecd =_dgb .Min (_dgb .Max (_ggecd ,0),1.0);return NewPdfColorDeviceRGB (_dedg ,_ffe ,_ggecd ),nil ;};func _dacc (_dbga _egg .PdfObject )(*PdfBorderStyle ,error ){_cddd :=&PdfBorderStyle {};_cddd ._fffd =_dbga ;var _bdc *_egg .PdfObjectDictionary ;_dbga =_egg .TraceToDirectObject (_dbga );
_bdc ,_gdeb :=_dbga .(*_egg .PdfObjectDictionary );if !_gdeb {return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _fcbc :=_bdc .Get ("\u0054\u0079\u0070\u0065");_fcbc !=nil {_agb ,_ebea :=_fcbc .(*_egg .PdfObjectName );
if !_ebea {_bag .Log .Debug ("I\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062i\u006c\u0069\u0074\u0079\u0020\u0077\u0069th\u0020\u0054\u0079\u0070e\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u006e\u0061me\u0020\u006fb\u006a\u0065\u0063\u0074\u003a\u0020\u0025\u0054",_fcbc );
}else {if *_agb !="\u0042\u006f\u0072\u0064\u0065\u0072"{_bag .Log .Debug ("W\u0061\u0072\u006e\u0069\u006e\u0067,\u0020\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020B\u006f\u0072\u0064e\u0072:\u0020\u0025\u0073",*_agb );};};};if _fad :=_bdc .Get ("\u0057");
_fad !=nil {_cgad ,_cbcg :=_egg .GetNumberAsFloat (_fad );if _cbcg !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_cbcg );return nil ,_cbcg ;};_cddd .W =&_cgad ;
};if _ccdd :=_bdc .Get ("\u0053");_ccdd !=nil {_daga ,_bdaa :=_ccdd .(*_egg .PdfObjectName );if !_bdaa {return nil ,_gd .New ("\u0062\u006f\u0072\u0064\u0065\u0072\u0020\u0053\u0020\u006e\u006ft\u0020\u0061\u0020\u006e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");
};var _fgaf BorderStyle ;switch *_daga {case "\u0053":_fgaf =BorderStyleSolid ;case "\u0044":_fgaf =BorderStyleDashed ;case "\u0042":_fgaf =BorderStyleBeveled ;case "\u0049":_fgaf =BorderStyleInset ;case "\u0055":_fgaf =BorderStyleUnderline ;default:_bag .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_daga );
return nil ,_gd .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_cddd .S =&_fgaf ;};if _bdeg :=_bdc .Get ("\u0044");_bdeg !=nil {_bdbc ,_edgb :=_bdeg .(*_egg .PdfObjectArray );
if !_edgb {_bag .Log .Debug ("\u0042\u006f\u0072\u0064\u0065\u0072\u0020\u0044\u0020\u0064a\u0073\u0068\u0020\u006e\u006f\u0074\u0020a\u006e\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0054",_bdeg );return nil ,_gd .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");
};_cgd ,_ade :=_bdbc .ToIntegerArray ();if _ade !=nil {_bag .Log .Debug ("\u0042\u006f\u0072\u0064\u0065\u0072\u0020\u0044 \u0050\u0072\u006fbl\u0065\u006d\u0020\u0063\u006f\u006ev\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0069\u006e\u0074\u0065\u0067e\u0072\u0020\u0061\u0072\u0072\u0061\u0079\u003a \u0025\u0076",_ade );
return nil ,_ade ;};_cddd .D =&_cgd ;};return _cddd ,nil ;};func (_ccag *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _ccag ._dafgab .GetCrypter ()!=nil &&!_ccag ._dafgab .IsAuthenticated (){return nil ,_f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_gdfcf :=_ccag ._eacf ;_bddff :=_gdfcf .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _bddff ==nil {return nil ,nil ;};_caggec ,_ :=_egg .GetIndirect (_bddff );_bddff =_egg .TraceToDirectObject (_bddff );if _egg .IsNullObject (_bddff ){_bag .Log .Trace ("\u0041\u0063\u0072of\u006f\u0072\u006d\u0020\u0069\u0073\u0020\u0061\u0020n\u0075l\u006c \u006fb\u006a\u0065\u0063\u0074\u0020\u0028\u0065\u006d\u0070\u0074\u0079\u0029\u000a");
return nil ,nil ;};_adage ,_ggbfg :=_egg .GetDict (_bddff );if !_ggbfg {_bag .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_bddff );_bag .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");
return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_bddff );};_bag .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");
_bag .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0065\u0020\u0074\u0068\u0065\u0020\u0041\u0063r\u006ff\u006f\u0072\u006d\u0073\u0020\u0073\u0074\u0072\u0075\u0063\u0074\u0075\u0072\u0065");if !_ccag ._cede {_gbge :=_ccag .traverseObjectData (_adage );
if _gbge !=nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0074\u0072a\u0076\u0065\u0072\u0073\u0065\u0020\u0041\u0063\u0072\u006fFo\u0072\u006d\u0073 \u0028%\u0073\u0029",_gbge );
return nil ,_gbge ;};};_dbbb ,_begfc :=_ccag .newPdfAcroFormFromDict (_caggec ,_adage );if _begfc !=nil {return nil ,_begfc ;};return _dbbb ,nil ;};func (_egea *LTV )getCRLs (_adgbc []*_dg .Certificate )([][]byte ,error ){_eggee :=make ([][]byte ,0,len (_adgbc ));
for _ ,_fcgb :=range _adgbc {for _ ,_agfd :=range _fcgb .CRLDistributionPoints {if _egea .CertClient .IsCA (_fcgb ){continue ;};_gaaac ,_egec :=_egea .CRLClient .MakeRequest (_agfd ,_fcgb );if _egec !=nil {_bag .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0043R\u004c\u0020\u0072\u0065\u0071\u0075\u0065\u0073\u0074 \u0065\u0072\u0072o\u0072:\u0020\u0025\u0076",_egec );
continue ;};_eggee =append (_eggee ,_gaaac );};};return _eggee ,nil ;};
// Sign signs a specific page with a digital signature.
// The signature field parameter must have a valid signature dictionary
// specified by its V field.
func (_gbdcd *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _gd .New ("\u0073\u0069g\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0062\u0065 n\u0069\u006c");
};_ddge :=field .V ;if _ddge ==nil {return _gd .New ("\u0073\u0069\u0067na\u0074\u0075\u0072\u0065\u0020\u0064\u0069\u0063\u0074i\u006fn\u0061r\u0079 \u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u006e\u0069\u006c");};_cag :=pageNum -1;if _cag < 0||_cag > len (_gbdcd ._beac )-1{return _f .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );
};_bbagd :=_gbdcd .Reader .PageList [_cag ];field .P =_bbagd .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_egg .MakeString (_f .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));};_bbagd .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );
if _gbdcd ._aeec ==_gbdcd ._bgaa .AcroForm {_gbdcd ._aeec =_gbdcd .Reader .AcroForm ;};_gffd :=_gbdcd ._aeec ;if _gffd ==nil {_gffd =NewPdfAcroForm ();};_gffd .SigFlags =_egg .MakeInteger (3);_ccgc :=append (_gffd .AllFields (),field .PdfField );_gffd .Fields =&_ccgc ;
_gbdcd .ReplaceAcroForm (_gffd );_gbdcd .UpdatePage (_bbagd );_gbdcd ._beac [_cag ]=_bbagd ;if _ ,_eede :=field .V .GetDocMDPPermission ();_eede {_gbdcd ._aga =NewPermissions (field .V );};return nil ;};func (_cffad *pdfCIDFontType2 )baseFields ()*fontCommon {return &_cffad .fontCommon };
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
// a failure in loading.
func NewPdfColorspaceFromPdfObject (obj _egg .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _bdea *_egg .PdfIndirectObject ;var _caba *_egg .PdfObjectName ;var _gbaed *_egg .PdfObjectArray ;if _ggfdc ,_eeda :=obj .(*_egg .PdfIndirectObject );
_eeda {_bdea =_ggfdc ;};obj =_egg .TraceToDirectObject (obj );switch _cecde :=obj .(type ){case *_egg .PdfObjectArray :_gbaed =_cecde ;case *_egg .PdfObjectName :_caba =_cecde ;};if _caba !=nil {switch *_caba {case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":return NewPdfColorspaceDeviceGray (),nil ;
case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":return NewPdfColorspaceDeviceRGB (),nil ;case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":return NewPdfColorspaceDeviceCMYK (),nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return NewPdfColorspaceSpecialPattern (),nil ;
default:_bag .Log .Debug ("\u0045\u0052\u0052\u004fR\u003a\u0020\u0055\u006e\u006b\u006e\u006f\u0077\u006e\u0020c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065 \u0025\u0073",*_caba );return nil ,_ccgg ;};};if _gbaed !=nil &&_gbaed .Len ()> 0{var _ecef _egg .PdfObject =_bdea ;
if _bdea ==nil {_ecef =_gbaed ;};if _gddd ,_cbeg :=_egg .GetName (_gbaed .Get (0));_cbeg {switch _gddd .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _gbaed .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _gbaed .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;
};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _gbaed .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _deec (_ecef );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _ffc (_ecef );
case "\u004c\u0061\u0062":return _dagag (_ecef );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _gbbb (_ecef );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _fef (_ecef );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _feaa (_ecef );
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _bcgcb (_ecef );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _eggba (_ecef );default:_bag .Log .Debug ("A\u0072\u0072\u0061\u0079\u0020\u0077i\u0074\u0068\u0020\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u006e\u0061m\u0065:\u0020\u0025\u0073",*_gddd );
};};};_bag .Log .Debug ("\u0050\u0044\u0046\u0020\u0046i\u006c\u0065\u0020\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0043\u006f\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0073",obj .String ());
return nil ,ErrTypeCheck ;};
// GetOutlineTree returns the outline tree.
func (_agac *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _agac ._cccbg };
// G returns the value of the green component of the color.
func (_edd *PdfColorDeviceRGB )G ()float64 {return _edd [1]};
// ToPdfObject implements interface PdfModel.
func (_faf *PdfActionImportData )ToPdfObject ()_egg .PdfObject {_faf .PdfAction .ToPdfObject ();_gbde :=_faf ._bf ;_fde :=_gbde .PdfObject .(*_egg .PdfObjectDictionary );_fde .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeImportData )));if _faf .F !=nil {_fde .Set ("\u0046",_faf .F .ToPdfObject ());
};return _gbde ;};
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
// error is returned.
func NewPdfFontFromPdfObject (fontObj _egg .PdfObject )(*PdfFont ,error ){return _faffdb (fontObj ,true )};
// ToGoImage converts the unidoc Image to a golang Image structure.
func (_aacgd *Image )ToGoImage ()(_cd .Image ,error ){_bag .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_dfce ,_fbaf :=_eg .NewImage (int (_aacgd .Width ),int (_aacgd .Height ),int (_aacgd .BitsPerComponent ),_aacgd .ColorComponents ,_aacgd .Data ,_aacgd ._fgggb ,_aacgd ._abfae );
if _fbaf !=nil {return nil ,_fbaf ;};return _dfce ,nil ;};
// NewPdfAnnotation3D returns a new 3d annotation.
func NewPdfAnnotation3D ()*PdfAnnotation3D {_bbde :=NewPdfAnnotation ();_fgc :=&PdfAnnotation3D {};_fgc .PdfAnnotation =_bbde ;_bbde .SetContext (_fgc );return _fgc ;};func _acfec (_bebd *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_agcag ,_bbcg :=_egg .GetDict (_bebd .AP );
if !_bbcg {return nil ,nil ,_gd .New ("f\u0069\u0065\u006c\u0064\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u0020\u0041\u0050\u0020d\u0069\u0063\u0074i\u006fn\u0061\u0072\u0079");};if _agcag ==nil {return nil ,nil ,nil ;};_gfdg ,_bbcg :=_egg .GetArray (_bebd .Rect );
if !_bbcg ||_gfdg .Len ()!=4{return nil ,nil ,_gd .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_cbge ,_ccaee :=NewPdfRectangle (*_gfdg );if _ccaee !=nil {return nil ,nil ,_ccaee ;};_efgfg :=_egg .TraceToDirectObject (_agcag .Get ("\u004e"));
switch _feebd :=_efgfg .(type ){case *_egg .PdfObjectStream :_acdfa :=_feebd ;_bcgfe ,_gfeg :=NewXObjectFormFromStream (_acdfa );return _bcgfe ,_cbge ,_gfeg ;case *_egg .PdfObjectDictionary :_abcbd :=_feebd ;_aada ,_efffb :=_egg .GetName (_bebd .AS );if !_efffb {return nil ,nil ,nil ;
};if _abcbd .Get (*_aada )==nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0041\u0053\u0020\u0073\u0074\u0061\u0074\u0065\u0020\u006e\u006f\u0074 \u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0069\u006e\u0020\u0041\u0050\u0020\u0064\u0069\u0063\u0074\u0020\u002d\u0020\u0069\u0067\u006e\u006f\u0072\u0069\u006eg");
return nil ,nil ,nil ;};_daadg ,_efffb :=_egg .GetStream (_abcbd .Get (*_aada ));if !_efffb {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055n\u0061\u0062\u006ce \u0074\u006f\u0020\u0061\u0063\u0063e\u0073\u0073\u0020\u0061\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u0073t\u0072\u0065\u0061\u006d\u0020\u0066\u006f\u0072 \u0025\u0076",_aada );
return nil ,nil ,_gd .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_edgfb ,_begce :=NewXObjectFormFromStream (_daadg );return _edgfb ,_cbge ,_begce ;};_bag .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_efgfg );
return nil ,nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;
BorderStyleUnderline BorderStyle =iota ;);func (_egdcad *PdfWriter )writeBytes (_cfaee []byte ){if _egdcad ._gdbeb !=nil {return ;};_bedeb ,_ddfcc :=_egdcad ._beegad .Write (_cfaee );_egdcad ._cdaab +=int64 (_bedeb );_egdcad ._gdbeb =_ddfcc ;};
// NewPdfColorCalGray returns a new CalGray color.
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_ccea :=PdfColorCalGray (grayVal );return &_ccea ;};func _caafc (_caae *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_caae }};func _dbffb (_dgbge *_egg .PdfObjectDictionary ,_ddeb *fontCommon )(*pdfCIDFontType2 ,error ){if _ddeb ._ebdf !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_bag .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0046\u006fn\u0074\u0020\u0053u\u0062\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020CI\u0044\u0046\u006fn\u0074\u0054y\u0070\u0065\u0032\u002e\u0020\u0066o\u006e\u0074=\u0025\u0073",_ddeb );
return nil ,_egg .ErrRangeError ;};_fbgbb :=_geeb (_ddeb );_dfea ,_eefa :=_egg .GetDict (_dgbge .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_eefa {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043I\u0044\u0053\u0079st\u0065\u006d\u0049\u006e\u0066\u006f \u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u002e\u0020\u0066\u006f\u006e\u0074=\u0025\u0073",_ddeb );
return nil ,ErrRequiredAttributeMissing ;};_fbgbb .CIDSystemInfo =_dfea ;_fbgbb .DW =_dgbge .Get ("\u0044\u0057");_fbgbb .W =_dgbge .Get ("\u0057");_fbgbb .DW2 =_dgbge .Get ("\u0044\u0057\u0032");_fbgbb .W2 =_dgbge .Get ("\u0057\u0032");_fbgbb .CIDToGIDMap =_dgbge .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");
_fbgbb ._bgec =1000.0;if _gbdae ,_fgdd :=_egg .GetNumberAsFloat (_fbgbb .DW );_fgdd ==nil {_fbgbb ._bgec =_gbdae ;};_dffb ,_cddcb :=_babef (_fbgbb .W );if _cddcb !=nil {return nil ,_cddcb ;};if _dffb ==nil {_dffb =map[_ef .CharCode ]float64 {};};_fbgbb ._fafe =_dffb ;
return _fbgbb ,nil ;};
// Initialize initializes the PdfSignature.
func (_edgba *PdfSignature )Initialize ()error {if _edgba .Handler ==nil {return _gd .New ("\u0073\u0069\u0067n\u0061\u0074\u0075\u0072e\u0020\u0068\u0061\u006e\u0064\u006c\u0065r\u0020\u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u006e\u0069\u006c");
};return _edgba .Handler .InitSignature (_edgba );};
// CheckAccessRights checks access rights and permissions for a specified password. If either user/owner
// password is specified, full rights are granted, otherwise the access rights are specified by the
// Permissions flag.
//
// The bool flag indicates that the user can access and view the file.
// The AccessPermissions shows what access the user has for editing etc.
// An error is returned if there was a problem performing the authentication.
func (_ebgbd *PdfReader )CheckAccessRights (password []byte )(bool ,_fe .Permissions ,error ){return _ebgbd ._dafgab .CheckAccessRights (password );};
// PdfOutlineTreeNode contains common fields used by the outline and outline
// item objects.
type PdfOutlineTreeNode struct{_bgbfg interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};func (_afbf *PdfReader )newPdfAnnotationInkFromDict (_fgfc *_egg .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_dgcb :=PdfAnnotationInk {};_dgbc ,_eagg :=_afbf .newPdfAnnotationMarkupFromDict (_fgfc );
if _eagg !=nil {return nil ,_eagg ;};_dgcb .PdfAnnotationMarkup =_dgbc ;_dgcb .InkList =_fgfc .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_dgcb .BS =_fgfc .Get ("\u0042\u0053");return &_dgcb ,nil ;};func _ddfce (_eedef *_egg .PdfObjectDictionary )(*PdfFieldChoice ,error ){_bagdb :=&PdfFieldChoice {};
_bagdb .Opt ,_ =_egg .GetArray (_eedef .Get ("\u004f\u0070\u0074"));_bagdb .TI ,_ =_egg .GetInt (_eedef .Get ("\u0054\u0049"));_bagdb .I ,_ =_egg .GetArray (_eedef .Get ("\u0049"));return _bagdb ,nil ;};
// PdfAnnotationTrapNet represents TrapNet annotations.
// (Section 12.5.6.21).
type PdfAnnotationTrapNet struct{*PdfAnnotation };func _fccda (_aeeaf *_egg .PdfObjectDictionary )(*PdfShadingType4 ,error ){_cbfdd :=PdfShadingType4 {};_fdgae :=_aeeaf .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
if _fdgae ==nil {_bag .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064 \u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065\u0072C\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065");
return nil ,ErrRequiredAttributeMissing ;};_cadfg ,_fggbf :=_fdgae .(*_egg .PdfObjectInteger );if !_fggbf {_bag .Log .Debug ("\u0042\u0069\u0074\u0073\u0050e\u0072\u0043\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_fdgae );
return nil ,_egg .ErrTypeError ;};_cbfdd .BitsPerCoordinate =_cadfg ;_fdgae =_aeeaf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fdgae ==nil {_bag .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064\u0020a\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073in\u0067\u003a\u0020B\u0069\u0074s\u0050\u0065\u0072\u0043\u006f\u006dp\u006f\u006ee\u006e\u0074");
return nil ,ErrRequiredAttributeMissing ;};_cadfg ,_fggbf =_fdgae .(*_egg .PdfObjectInteger );if !_fggbf {_bag .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065r \u0028\u0067\u006ft\u0020%\u0054\u0029",_fdgae );
return nil ,_egg .ErrTypeError ;};_cbfdd .BitsPerComponent =_cadfg ;_fdgae =_aeeaf .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fdgae ==nil {_bag .Log .Debug ("\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065r\u0046\u006c\u0061\u0067");
return nil ,ErrRequiredAttributeMissing ;};_cadfg ,_fggbf =_fdgae .(*_egg .PdfObjectInteger );if !_fggbf {_bag .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072F\u006c\u0061\u0067\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074e\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025T\u0029",_fdgae );
return nil ,_egg .ErrTypeError ;};_cbfdd .BitsPerComponent =_cadfg ;_fdgae =_aeeaf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fdgae ==nil {_bag .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0044\u0065\u0063\u006f\u0064\u0065");
return nil ,ErrRequiredAttributeMissing ;};_gbfb ,_fggbf :=_fdgae .(*_egg .PdfObjectArray );if !_fggbf {_bag .Log .Debug ("\u0044\u0065\u0063\u006fd\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_fdgae );
return nil ,_egg .ErrTypeError ;};_cbfdd .Decode =_gbfb ;_fdgae =_aeeaf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _fdgae ==nil {_bag .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0020\u0046\u0075\u006ec\u0074\u0069\u006f\u006e");
return nil ,ErrRequiredAttributeMissing ;};_cbfdd .Function =[]PdfFunction {};if _cgcba ,_egbda :=_fdgae .(*_egg .PdfObjectArray );_egbda {for _ ,_fcaa :=range _cgcba .Elements (){_bbee ,_eddg :=_bdefe (_fcaa );if _eddg !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_eddg );
return nil ,_eddg ;};_cbfdd .Function =append (_cbfdd .Function ,_bbee );};}else {_aeaacg ,_fdgda :=_bdefe (_fdgae );if _fdgda !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_fdgda );
return nil ,_fdgda ;};_cbfdd .Function =append (_cbfdd .Function ,_aeaacg );};return &_cbfdd ,nil ;};
// PdfAnnotationFileAttachment represents FileAttachment annotations.
// (Section 12.5.6.15).
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _egg .PdfObject ;Name _egg .PdfObject ;};
// Resample resamples the image data converting from current BitsPerComponent to a target BitsPerComponent
// value. Sets the image's BitsPerComponent to the target value following resampling.
//
// For example, converting an 8-bit RGB image to 1-bit grayscale (common for scanned images):
// // Convert RGB image to grayscale.
// rgbColorSpace := pdf.NewPdfColorspaceDeviceRGB()
// grayImage, err := rgbColorSpace.ImageToGray(rgbImage)
// if err != nil {
// return err
// }
// // Resample as 1 bit.
// grayImage.Resample(1)
func (_bddb *Image )Resample (targetBitsPerComponent int64 ){if _bddb .BitsPerComponent ==targetBitsPerComponent {return ;};_fbdf :=_bddb .GetSamples ();if targetBitsPerComponent < _bddb .BitsPerComponent {_dbcg :=_bddb .BitsPerComponent -targetBitsPerComponent ;
for _cgdaa :=range _fbdf {_fbdf [_cgdaa ]>>=uint (_dbcg );};}else if targetBitsPerComponent > _bddb .BitsPerComponent {_cbae :=targetBitsPerComponent -_bddb .BitsPerComponent ;for _efbdd :=range _fbdf {_fbdf [_efbdd ]<<=uint (_cbae );};};_bddb .BitsPerComponent =targetBitsPerComponent ;
if _bddb .BitsPerComponent < 8{_bddb .resampleLowBits (_fbdf );return ;};_edae :=_eg .BytesPerLine (int (_bddb .Width ),int (_bddb .BitsPerComponent ),_bddb .ColorComponents );_aaedd :=make ([]byte ,_edae *int (_bddb .Height ));var (_ffgg ,_dffged ,_feag ,_ecagf int ;
_bcggd uint32 ;);for _feag =0;_feag < int (_bddb .Height );_feag ++{_ffgg =_feag *_edae ;_dffged =(_feag +1)*_edae -1;_cfgad :=_fb .ResampleUint32 (_fbdf [_ffgg :_dffged ],int (targetBitsPerComponent ),8);for _ecagf ,_bcggd =range _cfgad {_aaedd [_ecagf +_ffgg ]=byte (_bcggd );
};};_bddb .Data =_aaedd ;};
// SetContext sets the sub annotation (context).
func (_fbb *PdfAnnotation )SetContext (ctx PdfModel ){_fbb ._gcf =ctx };
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
func (_egcgf *Image )GetParamsDict ()*_egg .PdfObjectDictionary {_gefdg :=_egg .MakeDict ();_gefdg .Set ("\u0057\u0069\u0064t\u0068",_egg .MakeInteger (_egcgf .Width ));_gefdg .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_egg .MakeInteger (_egcgf .Height ));
_gefdg .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_egg .MakeInteger (int64 (_egcgf .ColorComponents )));_gefdg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_egg .MakeInteger (_egcgf .BitsPerComponent ));
return _gefdg ;};
// ToPdfObject implements interface PdfModel.
func (_edaf *PdfAnnotationScreen )ToPdfObject ()_egg .PdfObject {_edaf .PdfAnnotation .ToPdfObject ();_debe :=_edaf ._cef ;_eba :=_debe .PdfObject .(*_egg .PdfObjectDictionary );_eba .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));
_eba .SetIfNotNil ("\u0054",_edaf .T );_eba .SetIfNotNil ("\u004d\u004b",_edaf .MK );_eba .SetIfNotNil ("\u0041",_edaf .A );_eba .SetIfNotNil ("\u0041\u0041",_edaf .AA );return _debe ;};func (_fdggg *DSS )addCRLs (_acca [][]byte )([]*_egg .PdfObjectStream ,error ){return _fdggg .add (&_fdggg .CRLs ,_fdggg ._eeecd ,_acca );
};
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
func (_fdaf *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
// AllFields returns a flattened list of all fields in the form.
func (_gacef *PdfAcroForm )AllFields ()[]*PdfField {if _gacef ==nil {return nil ;};var _bdae []*PdfField ;if _gacef .Fields !=nil {for _ ,_efbc :=range *_gacef .Fields {_bdae =append (_bdae ,_dgdba (_efbc )...);};};return _bdae ;};func (_fdee *PdfReader )newPdfAnnotationRichMediaFromDict (_fab *_egg .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_bee :=&PdfAnnotationRichMedia {};
_bee .RichMediaSettings =_fab .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_bee .RichMediaContent =_fab .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");
return _bee ,nil ;};func (_aacfc *PdfWriter )setDocumentIDs (_aecgbf ,_efbgg string ){_aacfc ._aaea =_egg .MakeArray (_egg .MakeHexString (_aecgbf ),_egg .MakeHexString (_efbgg ));};
// GetPage returns the PdfPage model for the specified page number.
func (_caabf *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _caabf ._dafgab .GetCrypter ()!=nil &&!_caabf ._dafgab .IsAuthenticated (){return nil ,_f .Errorf ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};if len (_caabf ._abgbc )< pageNumber {return nil ,_gd .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020\u0028\u0070\u0061\u0067\u0065\u0020\u0063\u006f\u0075\u006e\u0074\u0020\u0074o\u006f\u0020\u0073\u0068\u006f\u0072\u0074\u0029");
};_afcfc :=pageNumber -1;if _afcfc < 0{return nil ,_f .Errorf ("\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065r\u0069\u006e\u0067\u0020\u006d\u0075\u0073t\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0061\u0074\u0020\u0031");};_fgbde :=_caabf .PageList [_afcfc ];
return _fgbde ,nil ;};
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_fffa :=NewPdfAnnotation ();_adc :=&PdfAnnotationPrinterMark {};_adc .PdfAnnotation =_fffa ;_fffa .SetContext (_adc );return _adc ;};
// K returns the value of the key component of the color.
func (_adfbc *PdfColorDeviceCMYK )K ()float64 {return _adfbc [3]};
// ImageToRGB convert an indexed image to RGB.
func (_gdecd *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_gdecd .Base .GetNumComponents ();if N < 1{return Image {},_f .Errorf ("\u0062\u0061d \u0062\u0061\u0073e\u0020\u0063\u006f\u006cors\u0070ac\u0065\u0020\u004e\u0075\u006d\u0043\u006fmp\u006f\u006e\u0065\u006e\u0074\u0073\u003d%\u0064",N );
};_fcfdf :=_eg .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._fgggb ,img ._abfae );_bfaa :=_fb .NewReader (img .getBase ());_fecc :=_fb .NewWriter (_fcfdf );var (_fcbe uint32 ;_bade int ;_dded error ;);for {_fcbe ,_dded =_bfaa .ReadSample ();
if _dded ==_dag .EOF {break ;}else if _dded !=nil {return img ,_dded ;};_bade =int (_fcbe );_bag .Log .Trace ("\u0049\u006ed\u0065\u0078\u0065\u0064\u003a\u0020\u0069\u006e\u0064\u0065\u0078\u003d\u0025\u0064\u0020\u004e\u003d\u0025\u0064\u0020\u006c\u0075t=\u0025\u0064",_bade ,N ,len (_gdecd ._defc ));
if (_bade +1)*N > len (_gdecd ._defc ){_bade =len (_gdecd ._defc )/N -1;_bag .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_bade );if _bade < 0{_bag .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0043a\u006e\u0027\u0074\u0020\u0063\u006c\u0069p\u0020\u0069\u006e\u0064\u0065\u0078.\u0020\u0049\u0073\u0020\u0050\u0044\u0046\u0020\u0066\u0069\u006ce\u0020\u0064\u0061\u006d\u0061\u0067\u0065\u0064\u003f");
break ;};};for _bbed :=_bade *N ;_bbed < (_bade +1)*N ;_bbed ++{if _dded =_fecc .WriteSample (uint32 (_gdecd ._defc [_bbed ]));_dded !=nil {return img ,_dded ;};};};return _gdecd .Base .ImageToRGB (_cggba (&_fcfdf ));};
// Image interface is a basic representation of an image used in PDF.
// The colorspace is not specified, but must be known when handling the image.
type Image struct{Width int64 ;Height int64 ;BitsPerComponent int64 ;ColorComponents int ;Data []byte ;_fgggb []byte ;_abfae []float64 ;};func _bdefe (_dabd _egg .PdfObject )(PdfFunction ,error ){_dabd =_egg .ResolveReference (_dabd );if _aaedb ,_ffbeb :=_dabd .(*_egg .PdfObjectStream );
_ffbeb {_dcfcc :=_aaedb .PdfObjectDictionary ;_fgcfaa ,_ffedb :=_dcfcc .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_egg .PdfObjectInteger );if !_ffedb {_bag .Log .Error ("F\u0075\u006e\u0063\u0074\u0069\u006fn\u0054\u0079\u0070\u0065\u0020\u006e\u0075\u006d\u0062e\u0072\u0020\u006di\u0073s\u0069\u006e\u0067");
return nil ,_gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");};if *_fgcfaa ==0{return _bcbae (_aaedb );}else if *_fgcfaa ==4{return _cegee (_aaedb );
}else {return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _ebagbb ,_gfdbd :=_dabd .(*_egg .PdfIndirectObject );_gfdbd {_deag ,_debbe :=_ebagbb .PdfObject .(*_egg .PdfObjectDictionary );
if !_debbe {_bag .Log .Error ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006eg\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
return nil ,_gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");};_fdcdd ,_debbe :=_deag .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_egg .PdfObjectInteger );
if !_debbe {_bag .Log .Error ("F\u0075\u006e\u0063\u0074\u0069\u006fn\u0054\u0079\u0070\u0065\u0020\u006e\u0075\u006d\u0062e\u0072\u0020\u006di\u0073s\u0069\u006e\u0067");return nil ,_gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");
};if *_fdcdd ==2{return _ceeb (_ebagbb );}else if *_fdcdd ==3{return _gaec (_ebagbb );}else {return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _cecf ,_afbae :=_dabd .(*_egg .PdfObjectDictionary );
_afbae {_dcadb ,_dcdf :=_cecf .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_egg .PdfObjectInteger );if !_dcdf {_bag .Log .Error ("F\u0075\u006e\u0063\u0074\u0069\u006fn\u0054\u0079\u0070\u0065\u0020\u006e\u0075\u006d\u0062e\u0072\u0020\u006di\u0073s\u0069\u006e\u0067");
return nil ,_gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");};if *_dcadb ==2{return _ceeb (_cecf );}else if *_dcadb ==3{return _gaec (_cecf );
}else {return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_bag .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_dabd );
return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};
// PdfColorspaceDeviceN represents a DeviceN color space. DeviceN color spaces are similar to Separation color
// spaces, except they can contain an arbitrary number of color components.
//
// Format: [/DeviceN names alternateSpace tintTransform]
// or: [/DeviceN names alternateSpace tintTransform attributes]
type PdfColorspaceDeviceN struct{ColorantNames *_egg .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_dadga *_egg .PdfIndirectObject ;};func (_gbff *PdfReader )newPdfActionNamedFromDict (_fbg *_egg .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_fbg .Get ("\u004e")},nil ;
};
// NewPdfPage returns a new PDF page.
func NewPdfPage ()*PdfPage {_dggad :=PdfPage {};_dggad ._fgfd =_egg .MakeDict ();_dggad .Resources =NewPdfPageResources ();_acga :=_egg .PdfIndirectObject {};_acga .PdfObject =_dggad ._fgfd ;_dggad ._dfee =&_acga ;return &_dggad ;};
// NewPdfColorLab returns a new Lab color.
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_ebfe :=PdfColorLab {l ,a ,b };return &_ebfe };
// NewCustomPdfOutputIntent creates a new custom PdfOutputIntent.
func NewCustomPdfOutputIntent (outputCondition ,outputConditionIdentifier ,info string ,destOutputProfile []byte ,colorComponents int )*PdfOutputIntent {return &PdfOutputIntent {Type :"\u004f\u0075\u0074p\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074",OutputCondition :outputCondition ,OutputConditionIdentifier :outputConditionIdentifier ,Info :info ,DestOutputProfile :destOutputProfile ,_gdaaa :_egg .MakeDict (),ColorComponents :colorComponents };
};
// RepairAcroForm attempts to rebuild the AcroForm fields using the widget
// annotations present in the document pages. Pass nil for the opts parameter
// in order to use the default options.
// NOTE: Currently, the opts parameter is declared in order to enable adding
// future options, but passing nil will always result in the default options
// being used.
func (_aabaa *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _debf []*PdfField ;_dcgae :=map[*_egg .PdfIndirectObject ]struct{}{};for _ ,_ceba :=range _aabaa .PageList {_dfabb ,_cfadg :=_ceba .GetAnnotations ();if _cfadg !=nil {return _cfadg ;
};for _ ,_baebe :=range _dfabb {var _afeag *PdfField ;switch _ddbc :=_baebe .GetContext ().(type ){case *PdfAnnotationWidget :if _ddbc ._daa !=nil {_afeag =_ddbc ._daa ;break ;};if _dgace ,_cdbaf :=_egg .GetIndirect (_ddbc .Parent );_cdbaf {_afeag ,_cfadg =_aabaa .newPdfFieldFromIndirectObject (_dgace ,nil );
if _cfadg ==nil {break ;};_bag .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0070\u0061\u0072s\u0065\u0020\u0066\u006f\u0072\u006d\u0020\u0066\u0069\u0065ld\u0020\u0025\u002bv\u003a \u0025\u0076",_dgace ,_cfadg );
};if _ddbc ._cef !=nil {_afeag ,_cfadg =_aabaa .newPdfFieldFromIndirectObject (_ddbc ._cef ,nil );if _cfadg ==nil {break ;};_bag .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0070\u0061\u0072s\u0065\u0020\u0066\u006f\u0072\u006d\u0020\u0066\u0069\u0065ld\u0020\u0025\u002bv\u003a \u0025\u0076",_ddbc ._cef ,_cfadg );
};};if _afeag ==nil {continue ;};if _ ,_gdbea :=_dcgae [_afeag ._agef ];_gdbea {continue ;};_dcgae [_afeag ._agef ]=struct{}{};_debf =append (_debf ,_afeag );};};if len (_debf )==0{return nil ;};if _aabaa .AcroForm ==nil {_aabaa .AcroForm =NewPdfAcroForm ();
};_aabaa .AcroForm .Fields =&_debf ;return nil ;};
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
func (_egfdf *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _egfdf .AlternateSpace ==nil {return nil ,_gd .New ("\u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0065\u0020c\u006f\u006c\u006f\u0072\u0073\u0070\u0061c\u0065\u0020\u0075\u006e\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
};return _egfdf .AlternateSpace .ColorToRGB (color );};
// IsTerminal returns true for terminal fields, false otherwise.
// Terminal fields are fields whose descendants are only widget annotations.
func (_eedeg *PdfField )IsTerminal ()bool {return len (_eedeg .Kids )==0};func (_gfd *PdfReader )newPdfActionURIFromDict (_cgc *_egg .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_cgc .Get ("\u0055\u0052\u0049"),IsMap :_cgc .Get ("\u0049\u0073\u004da\u0070")},nil ;
};
// NewPdfAnnotationRedact returns a new redact annotation.
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_daf :=NewPdfAnnotation ();_fcg :=&PdfAnnotationRedact {};_fcg .PdfAnnotation =_daf ;_fcg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_daf .SetContext (_fcg );return _fcg ;};
// FullName returns the full name of the field as in rootname.parentname.partialname.
func (_dcea *PdfField )FullName ()(string ,error ){var _deacb _dd .Buffer ;_ebfc :=[]string {};if _dcea .T !=nil {_ebfc =append (_ebfc ,_dcea .T .Decoded ());};_efdda :=map[*PdfField ]bool {};_efdda [_dcea ]=true ;_fgca :=_dcea .Parent ;for _fgca !=nil {if _ ,_faca :=_efdda [_fgca ];
_faca {return _deacb .String (),_gd .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _fgca .T ==nil {return _deacb .String (),_gd .New ("\u0066\u0069el\u0064\u0020\u0070a\u0072\u0074\u0069\u0061l n\u0061me\u0020\u0028\u0054\u0029\u0020\u006e\u006ft \u0073\u0070\u0065\u0063\u0069\u0066\u0069e\u0064");
};_ebfc =append (_ebfc ,_fgca .T .Decoded ());_efdda [_fgca ]=true ;_fgca =_fgca .Parent ;};for _bdaf :=len (_ebfc )-1;_bdaf >=0;_bdaf --{_deacb .WriteString (_ebfc [_bdaf ]);if _bdaf > 0{_deacb .WriteString ("\u002e");};};return _deacb .String (),nil ;
};func (_gba *PdfReader )newPdfAnnotationStrikeOut (_fdcg *_egg .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_ege :=PdfAnnotationStrikeOut {};_ffa ,_afbe :=_gba .newPdfAnnotationMarkupFromDict (_fdcg );if _afbe !=nil {return nil ,_afbe ;};_ege .PdfAnnotationMarkup =_ffa ;
_ege .QuadPoints =_fdcg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_ege ,nil ;};func (_bded *PdfReader )newPdfAnnotationHighlightFromDict (_cgfa *_egg .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_cae :=PdfAnnotationHighlight {};
_fgabf ,_ffbc :=_bded .newPdfAnnotationMarkupFromDict (_cgfa );if _ffbc !=nil {return nil ,_ffbc ;};_cae .PdfAnnotationMarkup =_fgabf ;_cae .QuadPoints =_cgfa .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_cae ,nil ;};func (_adbff *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";
};
// PdfActionSetOCGState represents a SetOCGState action.
type PdfActionSetOCGState struct{*PdfAction ;State _egg .PdfObject ;PreserveRB _egg .PdfObject ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_gcff *PdfShadingType2 )ToPdfObject ()_egg .PdfObject {_gcff .PdfShading .ToPdfObject ();_dgecb ,_cbcgb :=_gcff .getShadingDict ();if _cbcgb !=nil {_bag .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
return nil ;};if _dgecb ==nil {_bag .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _gcff .Coords !=nil {_dgecb .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_gcff .Coords );
};if _gcff .Domain !=nil {_dgecb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gcff .Domain );};if _gcff .Function !=nil {if len (_gcff .Function )==1{_dgecb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gcff .Function [0].ToPdfObject ());}else {_bbbca :=_egg .MakeArray ();
for _ ,_badee :=range _gcff .Function {_bbbca .Append (_badee .ToPdfObject ());};_dgecb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bbbca );};};if _gcff .Extend !=nil {_dgecb .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_gcff .Extend );};
return _gcff ._cfdbd ;};func (_gedd *PdfReader )newPdfAnnotationWatermarkFromDict (_gfge *_egg .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_abdb :=PdfAnnotationWatermark {};_abdb .FixedPrint =_gfge .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");
return &_abdb ,nil ;};func _dead (_gdcf string )map[string ]string {_fbdce :=_efdg .Split (_gdcf ,-1);_gecee :=map[string ]string {};for _ ,_aabda :=range _fbdce {_eacef :=_aafbcd .FindStringSubmatch (_aabda );if _eacef ==nil {continue ;};_afeed ,_baba :=_eacef [1],_eacef [2];
_gecee [_afeed ]=_baba ;};return _gecee ;};
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_fffd _egg .PdfObject ;};
// PdfFunctionType4 is a Postscript calculator functions.
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_cde .PSProgram ;_aafea *_cde .PSExecutor ;_fafff []byte ;_cbebd *_egg .PdfObjectStream ;};
// PdfSignature represents a PDF signature dictionary and is used for signing via form signature fields.
// (Section 12.8, Table 252 - Entries in a signature dictionary p. 475 in PDF32000_2008).
type PdfSignature struct{Handler SignatureHandler ;_ccbda *_egg .PdfIndirectObject ;
// Type: Sig/DocTimeStamp
Type *_egg .PdfObjectName ;Filter *_egg .PdfObjectName ;SubFilter *_egg .PdfObjectName ;Contents *_egg .PdfObjectString ;Cert _egg .PdfObject ;ByteRange *_egg .PdfObjectArray ;Reference *_egg .PdfObjectArray ;Changes *_egg .PdfObjectArray ;Name *_egg .PdfObjectString ;
M *_egg .PdfObjectString ;Location *_egg .PdfObjectString ;Reason *_egg .PdfObjectString ;ContactInfo *_egg .PdfObjectString ;R *_egg .PdfObjectInteger ;V *_egg .PdfObjectInteger ;PropBuild *_egg .PdfObjectDictionary ;PropAuthTime *_egg .PdfObjectInteger ;
PropAuthType *_egg .PdfObjectName ;};func _ebafc (_gdcgd *_egg .PdfObjectDictionary )(*PdfShadingType3 ,error ){_cbcfb :=PdfShadingType3 {};_agbdd :=_gdcgd .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _agbdd ==nil {_bag .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0043\u006f\u006f\u0072\u0064\u0073");
return nil ,ErrRequiredAttributeMissing ;};_gebbc ,_ggffg :=_agbdd .(*_egg .PdfObjectArray );if !_ggffg {_bag .Log .Debug ("\u0043\u006f\u006f\u0072d\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_agbdd );
return nil ,_egg .ErrTypeError ;};if _gebbc .Len ()!=6{_bag .Log .Debug ("\u0043\u006f\u006f\u0072d\u0073\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006eo\u0074 \u0036\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",_gebbc .Len ());return nil ,ErrInvalidAttribute ;
};_cbcfb .Coords =_gebbc ;if _egffb :=_gdcgd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_egffb !=nil {_egffb =_egg .TraceToDirectObject (_egffb );_gfdbb ,_cgabd :=_egffb .(*_egg .PdfObjectArray );if !_cgabd {_bag .Log .Debug ("\u0044\u006f\u006d\u0061i\u006e\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_egffb );
return nil ,_egg .ErrTypeError ;};_cbcfb .Domain =_gfdbb ;};_agbdd =_gdcgd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _agbdd ==nil {_bag .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0020\u0046\u0075\u006ec\u0074\u0069\u006f\u006e");
return nil ,ErrRequiredAttributeMissing ;};_cbcfb .Function =[]PdfFunction {};if _ddbce ,_dgfed :=_agbdd .(*_egg .PdfObjectArray );_dgfed {for _ ,_bagff :=range _ddbce .Elements (){_bedfa ,_bedda :=_bdefe (_bagff );if _bedda !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_bedda );
return nil ,_bedda ;};_cbcfb .Function =append (_cbcfb .Function ,_bedfa );};}else {_fafcd ,_fdfef :=_bdefe (_agbdd );if _fdfef !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_fdfef );
return nil ,_fdfef ;};_cbcfb .Function =append (_cbcfb .Function ,_fafcd );};if _fgbdd :=_gdcgd .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_fgbdd !=nil {_fgbdd =_egg .TraceToDirectObject (_fgbdd );_aecfg ,_ageagb :=_fgbdd .(*_egg .PdfObjectArray );if !_ageagb {_bag .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_fgbdd );
return nil ,_egg .ErrTypeError ;};if _aecfg .Len ()!=2{_bag .Log .Debug ("\u0045\u0078\u0074\u0065n\u0064\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006eo\u0074 \u0032\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",_aecfg .Len ());return nil ,ErrInvalidAttribute ;
};_cbcfb .Extend =_aecfg ;};return &_cbcfb ,nil ;};
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_egdd *_egg .PdfIndirectObject ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_cgbdb *PdfShading )ToPdfObject ()_egg .PdfObject {_gfeded :=_cgbdb ._cfdbd ;_dbdd ,_ddba :=_cgbdb .getShadingDict ();if _ddba !=nil {_bag .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
return nil ;};if _cgbdb .ShadingType !=nil {_dbdd .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_cgbdb .ShadingType );};if _cgbdb .ColorSpace !=nil {_dbdd .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_cgbdb .ColorSpace .ToPdfObject ());
};if _cgbdb .Background !=nil {_dbdd .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_cgbdb .Background );};if _cgbdb .BBox !=nil {_dbdd .Set ("\u0042\u0042\u006f\u0078",_cgbdb .BBox .ToPdfObject ());};if _cgbdb .AntiAlias !=nil {_dbdd .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_cgbdb .AntiAlias );
};return _gfeded ;};
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
// replaces the original AcroForm.
func (_cecg *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_cecg .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_cecg ._aeec =acroForm ;};
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_egg .PdfObjectInteger ;BitsPerComponent *_egg .PdfObjectInteger ;BitsPerFlag *_egg .PdfObjectInteger ;Decode *_egg .PdfObjectArray ;Function []PdfFunction ;};
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
func (_cgfgc *PdfRectangle )Normalize (){if _cgfgc .Llx > _cgfgc .Urx {_cgfgc .Llx ,_cgfgc .Urx =_cgfgc .Urx ,_cgfgc .Llx ;};if _cgfgc .Lly > _cgfgc .Ury {_cgfgc .Lly ,_cgfgc .Ury =_cgfgc .Ury ,_cgfgc .Lly ;};};
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
func (_ebfca *Image )AlphaMap (mapFunc AlphaMapFunc ){for _fecdf ,_cdgca :=range _ebfca ._fgggb {_ebfca ._fgggb [_fecdf ]=mapFunc (_cdgca );};};
// GetContainingPdfObject implements interface PdfModel.
func (_feee *Permissions )GetContainingPdfObject ()_egg .PdfObject {return _feee ._ffgafc };
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
func (_dafbe *PdfPattern )GetContext ()PdfModel {return _dafbe ._fcbdg };
// DecodeArray returns the range of color component values in the Lab colorspace.
func (_edec *PdfColorspaceLab )DecodeArray ()[]float64 {_gbdbd :=[]float64 {0,100};if _edec .Range !=nil &&len (_edec .Range )==4{_gbdbd =append (_gbdbd ,_edec .Range ...);}else {_gbdbd =append (_gbdbd ,-100,100,-100,100);};return _gbdbd ;};
// Items returns all children outline items.
func (_abfb *OutlineItem )Items ()[]*OutlineItem {return _abfb .Entries };func _eeceg (_bddce *[]*PdfField ,_agefd FieldFilterFunc ,_acfef bool )[]*PdfField {if _bddce ==nil {return nil ;};_ccda :=*_bddce ;if len (*_bddce )==0{return nil ;};_fdacd :=_ccda [:0];
if _agefd ==nil {_agefd =func (*PdfField )bool {return true };};var _eefcgb []*PdfField ;for _ ,_bcdgb :=range _ccda {_fafgb :=_agefd (_bcdgb );if _fafgb {_eefcgb =append (_eefcgb ,_bcdgb );if len (_bcdgb .Kids )> 0{_eefcgb =append (_eefcgb ,_eeceg (&_bcdgb .Kids ,_agefd ,_acfef )...);
};};if !_acfef ||!_fafgb ||len (_bcdgb .Kids )> 0{_fdacd =append (_fdacd ,_bcdgb );};};*_bddce =_fdacd ;return _eefcgb ;};func (_fdgdb *pdfFontType0 )baseFields ()*fontCommon {return &_fdgdb .fontCommon };
// ToPdfObject implements interface PdfModel.
func (_eef *PdfActionThread )ToPdfObject ()_egg .PdfObject {_eef .PdfAction .ToPdfObject ();_ded :=_eef ._bf ;_edb :=_ded .PdfObject .(*_egg .PdfObjectDictionary );_edb .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeThread )));if _eef .F !=nil {_edb .Set ("\u0046",_eef .F .ToPdfObject ());
};_edb .SetIfNotNil ("\u0044",_eef .D );_edb .SetIfNotNil ("\u0042",_eef .B );return _ded ;};
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
func (_fdddaf *PdfReader )PageFromIndirectObject (ind *_egg .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_fdddaf .PageList )!=len (_fdddaf ._abgbc ){return nil ,0,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};for _fegdd ,_gcfg :=range _fdddaf ._abgbc {if _gcfg ==ind {return _fdddaf .PageList [_fegdd ],_fegdd +1,nil ;};};return nil ,0,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};func (_cfgfa *PdfWriter )copyObjects (){_acfab :=make (map[_egg .PdfObject ]_egg .PdfObject );
_bccbe :=make ([]_egg .PdfObject ,0,len (_cfgfa ._bbead ));_dffag :=make (map[_egg .PdfObject ]struct{},len (_cfgfa ._bbead ));_dfbdd :=make (map[_egg .PdfObject ]struct{});for _ ,_efabc :=range _cfgfa ._bbead {_gadbf :=_cfgfa .copyObject (_efabc ,_acfab ,_dfbdd ,false );
if _ ,_gaffa :=_dfbdd [_efabc ];_gaffa {continue ;};_bccbe =append (_bccbe ,_gadbf );_dffag [_gadbf ]=struct{}{};};_cfgfa ._bbead =_bccbe ;_cfgfa ._bacec =_dffag ;_cfgfa ._efage =_cfgfa .copyObject (_cfgfa ._efage ,_acfab ,nil ,false ).(*_egg .PdfIndirectObject );
_cfgfa ._egad =_cfgfa .copyObject (_cfgfa ._egad ,_acfab ,nil ,false ).(*_egg .PdfIndirectObject );if _cfgfa ._afcc !=nil {_cfgfa ._afcc =_cfgfa .copyObject (_cfgfa ._afcc ,_acfab ,nil ,false ).(*_egg .PdfIndirectObject );};if _cfgfa ._gabaca {_fdgbe :=make (map[_egg .PdfObject ]int64 );
for _cdbc ,_bbdc :=range _cfgfa ._fcgfe {if _gefcd ,_bffc :=_acfab [_cdbc ];_bffc {_fdgbe [_gefcd ]=_bbdc ;}else {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020a\u0070\u0070\u0065n\u0064\u0020\u006d\u006fd\u0065\u0020\u002d\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0063\u006f\u0070\u0079\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0020\u006d\u0061\u0070");
};};_cfgfa ._fcgfe =_fdgbe ;};};
// NewPdfDateFromTime will create a PdfDate based on the given time
func NewPdfDateFromTime (timeObj _e .Time )(PdfDate ,error ){_ecafd :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_ageaf ,_ :=_da .ParseInt (_ecafd [1:3],10,32);_cbdgdd ,_ :=_da .ParseInt (_ecafd [4:6],10,32);return PdfDate {_acadbc :int64 (timeObj .Year ()),_cbffc :int64 (timeObj .Month ()),_fgddd :int64 (timeObj .Day ()),_bfcd :int64 (timeObj .Hour ()),_fceaf :int64 (timeObj .Minute ()),_ffccc :int64 (timeObj .Second ()),_ebcdc :_ecafd [0],_ebeed :_ageaf ,_fcafb :_cbdgdd },nil ;
};
// GetContainingPdfObject implements model.PdfModel interface.
func (_efaef *PdfOutputIntent )GetContainingPdfObject ()_egg .PdfObject {return _efaef ._gdaaa };
// NewStandard14FontMustCompile returns the standard 14 font named `basefont` as a *PdfFont.
// If `basefont` is one of the 14 Standard14Font values defined above then NewStandard14FontMustCompile
// is guaranteed to succeed.
func NewStandard14FontMustCompile (basefont StdFontName )*PdfFont {_daace ,_bdead :=NewStandard14Font (basefont );if _bdead !=nil {panic (_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0074\u0061n\u0064\u0061\u0072\u0064\u0031\u0034\u0046\u006f\u006e\u0074 \u0025\u0023\u0071",basefont ));
};return _daace ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_cdba pdfFontType0 )GetRuneMetrics (r rune )(_bgd .CharMetrics ,bool ){if _cdba .DescendantFont ==nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0064\u0065\u0073\u0063\u0065\u006e\u0064\u0061\u006e\u0074\u002e\u0020\u0066\u006f\u006et=\u0025\u0073",_cdba );
return _bgd .CharMetrics {},false ;};return _cdba .DescendantFont .GetRuneMetrics (r );};
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
func (_fgfaa *XObjectForm )GetContainingPdfObject ()_egg .PdfObject {return _fgfaa ._acgef };
// ColorFromPdfObjects loads the color from PDF objects.
// The first objects (if present) represent the color in underlying colorspace. The last one represents
// the name of the pattern.
func (_eedc *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020o\u0066 \u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072\u0073");
};_cbegd :=&PdfColorPattern {};_fbeb ,_bbcaa :=objects [len (objects )-1].(*_egg .PdfObjectName );if !_bbcaa {_bag .Log .Debug ("\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020a\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",objects [len (objects )-1]);
return nil ,ErrTypeCheck ;};_cbegd .PatternName =*_fbeb ;if len (objects )> 1{_gdfe :=objects [0:len (objects )-1];if _eedc .UnderlyingCS ==nil {_bag .Log .Debug ("P\u0061\u0074t\u0065\u0072\u006e\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0077\u0069\u0074\u0068\u0020\u0064\u0065\u0066\u0069\u006ee\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0063\u006f\u006d\u0070\u006f\u006e\u0065\u006et\u0073\u0020\u0062\u0075\u0074\u0020\u0075\u006e\u0064\u0065\u0072\u006c\u0079i\u006e\u0067\u0020\u0063\u0073\u0020\u006d\u0069\u0073\u0073\u0069n\u0067");
return nil ,_gd .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_deecb ,_gfdcc :=_eedc .UnderlyingCS .ColorFromPdfObjects (_gdfe );if _gfdcc !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0055n\u0061\u0062\u006c\u0065\u0020t\u006f\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0076\u0069\u0061\u0020\u0075\u006e\u0064\u0065\u0072\u006c\u0079\u0069\u006e\u0067\u0020\u0063\u0073\u003a\u0020\u0025\u0076",_gfdcc );
return nil ,_gfdcc ;};_cbegd .Color =_deecb ;};return _cbegd ,nil ;};
// GetPageLabels returns the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_gagbgc *PdfReader )GetPageLabels ()(_egg .PdfObject ,error ){_aafae :=_egg .ResolveReference (_gagbgc ._eacf .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _aafae ==nil {return nil ,nil ;};if !_gagbgc ._cede {_feedg :=_gagbgc .traverseObjectData (_aafae );
if _feedg !=nil {return nil ,_feedg ;};};return _aafae ,nil ;};
// FieldImageProvider provides fields images for specified fields.
type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );};
// PdfActionRendition represents a Rendition action.
type PdfActionRendition struct{*PdfAction ;R _egg .PdfObject ;AN _egg .PdfObject ;OP _egg .PdfObject ;JS _egg .PdfObject ;};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_badb *PdfColorspaceCalRGB )ToPdfObject ()_egg .PdfObject {_ebcb :=&_egg .PdfObjectArray {};_ebcb .Append (_egg .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_cdec :=_egg .MakeDict ();if _badb .WhitePoint !=nil {_cecded :=_egg .MakeArray (_egg .MakeFloat (_badb .WhitePoint [0]),_egg .MakeFloat (_badb .WhitePoint [1]),_egg .MakeFloat (_badb .WhitePoint [2]));
_cdec .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_cecded );}else {_bag .Log .Error ("\u0043\u0061l\u0052\u0047\u0042\u003a \u004d\u0069s\u0073\u0069\u006e\u0067\u0020\u0057\u0068\u0069t\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0028\u0052\u0065\u0071\u0075i\u0072\u0065\u0064\u0029");
};if _badb .BlackPoint !=nil {_aefe :=_egg .MakeArray (_egg .MakeFloat (_badb .BlackPoint [0]),_egg .MakeFloat (_badb .BlackPoint [1]),_egg .MakeFloat (_badb .BlackPoint [2]));_cdec .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_aefe );
};if _badb .Gamma !=nil {_agbda :=_egg .MakeArray (_egg .MakeFloat (_badb .Gamma [0]),_egg .MakeFloat (_badb .Gamma [1]),_egg .MakeFloat (_badb .Gamma [2]));_cdec .Set ("\u0047\u0061\u006dm\u0061",_agbda );};if _badb .Matrix !=nil {_gcbc :=_egg .MakeArray (_egg .MakeFloat (_badb .Matrix [0]),_egg .MakeFloat (_badb .Matrix [1]),_egg .MakeFloat (_badb .Matrix [2]),_egg .MakeFloat (_badb .Matrix [3]),_egg .MakeFloat (_badb .Matrix [4]),_egg .MakeFloat (_badb .Matrix [5]),_egg .MakeFloat (_badb .Matrix [6]),_egg .MakeFloat (_badb .Matrix [7]),_egg .MakeFloat (_badb .Matrix [8]));
_cdec .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gcbc );};_ebcb .Append (_cdec );if _badb ._fcgc !=nil {_badb ._fcgc .PdfObject =_ebcb ;return _badb ._fcgc ;};return _ebcb ;};
// PdfAnnotationStamp represents Stamp annotations.
// (Section 12.5.6.12).
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _egg .PdfObject ;};
// ToPdfObject returns colorspace in a PDF object format [name stream]
func (_efbfg *PdfColorspaceICCBased )ToPdfObject ()_egg .PdfObject {_cded :=&_egg .PdfObjectArray {};_cded .Append (_egg .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _bdfe *_egg .PdfObjectStream ;if _efbfg ._bcda !=nil {_bdfe =_efbfg ._bcda ;
}else {_bdfe =&_egg .PdfObjectStream {};};_deg :=_egg .MakeDict ();_deg .Set ("\u004e",_egg .MakeInteger (int64 (_efbfg .N )));if _efbfg .Alternate !=nil {_deg .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_efbfg .Alternate .ToPdfObject ());};if _efbfg .Metadata !=nil {_deg .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_efbfg .Metadata );
};if _efbfg .Range !=nil {var _gcc []_egg .PdfObject ;for _ ,_gfbd :=range _efbfg .Range {_gcc =append (_gcc ,_egg .MakeFloat (_gfbd ));};_deg .Set ("\u0052\u0061\u006eg\u0065",_egg .MakeArray (_gcc ...));};_deg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_efbfg .Data ))));
_bdfe .Stream =_efbfg .Data ;_bdfe .PdfObjectDictionary =_deg ;_cded .Append (_bdfe );if _efbfg ._dcf !=nil {_efbfg ._dcf .PdfObject =_cded ;return _efbfg ._dcf ;};return _cded ;};
// ToInteger convert to an integer format.
func (_aeag *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_cdgag :=_dgb .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_cdgag *_aeag .R ()),uint32 (_cdgag *_aeag .G ()),uint32 (_cdgag *_aeag .B ())};};
// Evaluate runs the function on the passed in slice and returns the results.
func (_fdafg *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_bag .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};return nil ,_gd .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};func _gcgfb (_dggef _egg .PdfObject )(*PdfFontDescriptor ,error ){_cfefd :=&PdfFontDescriptor {};_dggef =_egg .ResolveReference (_dggef );
if _gdge ,_gebdb :=_dggef .(*_egg .PdfIndirectObject );_gebdb {_cfefd ._faeb =_gdge ;_dggef =_gdge .PdfObject ;};_ggadc ,_bedgc :=_egg .GetDict (_dggef );if !_bedgc {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046o\u006e\u0074\u0044\u0065\u0073c\u0072\u0069\u0070\u0074\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0067\u0069\u0076\u0065\u006e\u0020\u0062\u0079\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_dggef );
return nil ,_egg .ErrTypeError ;};if _cbea :=_ggadc .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_cbea !=nil {_cfefd .FontName =_cbea ;}else {_bag .Log .Debug ("\u0049n\u0063\u006fm\u0070\u0061\u0074\u0069b\u0069\u006c\u0069t\u0079\u003a\u0020\u0046\u006f\u006e\u0074\u004e\u0061me\u0020\u0028\u0052e\u0071\u0075i\u0072\u0065\u0064\u0029\u0020\u006di\u0073\u0073i\u006e\u0067");
};_gceg ,_ :=_egg .GetName (_cfefd .FontName );if _fdfe :=_ggadc .Get ("\u0054\u0079\u0070\u0065");_fdfe !=nil {_fedg ,_dddg :=_fdfe .(*_egg .PdfObjectName );if !_dddg ||string (*_fedg )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_bag .Log .Debug ("I\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0064\u0065\u0073\u0063\u0072i\u0070t\u006f\u0072\u0020\u0054y\u0070\u0065 \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0025\u0054\u0029\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0071\u0020\u0025\u0054",_fdfe ,_gceg ,_cfefd .FontName );
};}else {_bag .Log .Trace ("\u0049\u006ec\u006f\u006d\u0070\u0061\u0074i\u0062\u0069\u006c\u0069\u0074y\u003a\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0071\u0020\u0025\u0054",_gceg ,_cfefd .FontName );
};_cfefd .FontFamily =_ggadc .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_cfefd .FontStretch =_ggadc .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_cfefd .FontWeight =_ggadc .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");
_cfefd .Flags =_ggadc .Get ("\u0046\u006c\u0061g\u0073");_cfefd .FontBBox =_ggadc .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_cfefd .ItalicAngle =_ggadc .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_cfefd .Ascent =_ggadc .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");
_cfefd .Descent =_ggadc .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_cfefd .Leading =_ggadc .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_cfefd .CapHeight =_ggadc .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_cfefd .XHeight =_ggadc .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");
_cfefd .StemV =_ggadc .Get ("\u0053\u0074\u0065m\u0056");_cfefd .StemH =_ggadc .Get ("\u0053\u0074\u0065m\u0048");_cfefd .AvgWidth =_ggadc .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_cfefd .MaxWidth =_ggadc .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");
_cfefd .MissingWidth =_ggadc .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_cfefd .FontFile =_ggadc .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_cfefd .FontFile2 =_ggadc .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");
_cfefd .FontFile3 =_ggadc .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_cfefd .CharSet =_ggadc .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_cfefd .Style =_ggadc .Get ("\u0053\u0074\u0079l\u0065");_cfefd .Lang =_ggadc .Get ("\u004c\u0061\u006e\u0067");
_cfefd .FD =_ggadc .Get ("\u0046\u0044");_cfefd .CIDSet =_ggadc .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _cfefd .Flags !=nil {if _faac ,_gbdcb :=_egg .GetIntVal (_cfefd .Flags );_gbdcb {_cfefd ._adfdfe =_faac ;};};if _cfefd .MissingWidth !=nil {if _cfad ,_gace :=_egg .GetNumberAsFloat (_cfefd .MissingWidth );
_gace ==nil {_cfefd ._eedab =_cfad ;};};if _cfefd .FontFile !=nil {_agbg ,_febdf :=_dbggc (_cfefd .FontFile );if _febdf !=nil {return _cfefd ,_febdf ;};_bag .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_agbg );_cfefd .fontFile =_agbg ;
};if _cfefd .FontFile2 !=nil {_ggca ,_edddg :=_bgd .NewFontFile2FromPdfObject (_cfefd .FontFile2 );if _edddg !=nil {return _cfefd ,_edddg ;};_bag .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_ggca .String ());_cfefd ._eccg =&_ggca ;
};return _cfefd ,nil ;};func (_gdcc *PdfReader )newPdfAnnotationSoundFromDict (_debg *_egg .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_faef :=PdfAnnotationSound {};_gagaf ,_dcc :=_gdcc .newPdfAnnotationMarkupFromDict (_debg );if _dcc !=nil {return nil ,_dcc ;
};_faef .PdfAnnotationMarkup =_gagaf ;_faef .Name =_debg .Get ("\u004e\u0061\u006d\u0065");_faef .Sound =_debg .Get ("\u0053\u006f\u0075n\u0064");return &_faef ,nil ;};
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
func (_ebef *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_bag .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_bag .Log .Trace ("I\u006d\u0061\u0067\u0065\u0020\u0042P\u0043\u003a\u0020\u0025\u0064\u002c \u0043\u006f\u006c\u006f\u0072\u0020\u0063o\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073\u003a\u0020%\u0064",img .BitsPerComponent ,img .ColorComponents );
_bag .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_bag .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );
_bfaf ,_gffgd :=_eg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fgggb ,img ._abfae );if _gffgd !=nil {return Image {},_gffgd ;};_cdfb ,_gffgd :=_eg .NRGBAConverter .Convert (_bfaf );
if _gffgd !=nil {return Image {},_gffgd ;};return _cggba (_cdfb .Base ()),nil ;};
// ApplyStandard is used to apply changes required on the document to match the rules required by the input standard.
// The writer's content would be changed after all the document parts are already established during the Write method.
// A good example of the StandardApplier could be a PDF/A Profile (i.e.: pdfa.Profile1A). In such a case PdfWriter would
// set up all rules required by that Profile.
func (_bcga *PdfWriter )ApplyStandard (optimizer StandardApplier ){_bcga ._ebgad =optimizer };func _dadge (_dega string )(map[_ef .CharCode ]_ef .GlyphName ,error ){_gffe :=_fc .Split (_dega ,"\u000a");_affe :=make (map[_ef .CharCode ]_ef .GlyphName );
for _ ,_babc :=range _gffe {_gbc :=_daaa .FindStringSubmatch (_babc );if _gbc ==nil {continue ;};_cdae ,_gcgfg :=_gbc [1],_gbc [2];_gdcce ,_ecgd :=_da .Atoi (_cdae );if _ecgd !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004fR\u003a\u0020\u0042\u0061\u0064\u0020\u0065\u006e\u0063\u006fd\u0069n\u0067\u0020\u006c\u0069\u006e\u0065\u002e \u0025\u0071",_babc );
return nil ,_egg .ErrTypeError ;};_affe [_ef .CharCode (_gdcce )]=_ef .GlyphName (_gcgfg );};_bag .Log .Trace ("g\u0065\u0074\u0045\u006e\u0063\u006fd\u0069\u006e\u0067\u0073\u003a\u0020\u006b\u0065\u0079V\u0061\u006c\u0075e\u0073=\u0025\u0023\u0076",_affe );
return _affe ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_aeeb *PdfAnnotationSquiggly )ToPdfObject ()_egg .PdfObject {_aeeb .PdfAnnotation .ToPdfObject ();_agea :=_aeeb ._cef ;_fecf :=_agea .PdfObject .(*_egg .PdfObjectDictionary );_aeeb .PdfAnnotationMarkup .appendToPdfDictionary (_fecf );_fecf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));
_fecf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_aeeb .QuadPoints );return _agea ;};
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
type PdfFieldButton struct{*PdfField ;Opt *_egg .PdfObjectArray ;_ffcc *Image ;};func (_gdf *PdfReader )newPdfAnnotationSquigglyFromDict (_cfbd *_egg .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_eaeg :=PdfAnnotationSquiggly {};_deda ,_fdba :=_gdf .newPdfAnnotationMarkupFromDict (_cfbd );
if _fdba !=nil {return nil ,_fdba ;};_eaeg .PdfAnnotationMarkup =_deda ;_eaeg .QuadPoints =_cfbd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_eaeg ,nil ;};
// PdfAnnotationMovie represents Movie annotations.
// (Section 12.5.6.17).
type PdfAnnotationMovie struct{*PdfAnnotation ;T _egg .PdfObject ;Movie _egg .PdfObject ;A _egg .PdfObject ;};
// Width returns the width of `rect`.
func (_fgcac *PdfRectangle )Width ()float64 {return _dgb .Abs (_fgcac .Urx -_fgcac .Llx )};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
func NewPdfOutlineItem ()*PdfOutlineItem {_aecgb :=&PdfOutlineItem {_gfcb :_egg .MakeIndirectObject (_egg .MakeDict ())};_aecgb ._bgbfg =_aecgb ;return _aecgb ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_bfed *PdfColorspaceDeviceCMYK )ToPdfObject ()_egg .PdfObject {return _egg .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
// AddCustomInfo adds a custom info into document info dictionary.
func (_cgdag *PdfInfo )AddCustomInfo (name string ,value string )error {if _cgdag ._eggg ==nil {_cgdag ._eggg =_egg .MakeDict ();};if _ ,_gebd :=_cbaa [name ];_gebd {return _f .Errorf ("\u0063\u0061\u006e\u006e\u006ft\u0020\u0075\u0073\u0065\u0020\u0073\u0074\u0061\u006e\u0064\u0061\u0072\u0064 \u0069\u006e\u0066\u006f\u0020\u006b\u0065\u0079\u0020\u0025\u0073\u0020\u0061\u0073\u0020\u0063\u0075\u0073\u0074\u006f\u006d\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u006b\u0065y",name );
};_cgdag ._eggg .SetIfNotNil (*_egg .MakeName (name ),_egg .MakeString (value ));return nil ;};
// NewBorderStyle returns an initialized PdfBorderStyle.
func NewBorderStyle ()*PdfBorderStyle {_aceb :=&PdfBorderStyle {};return _aceb };
// GetNumComponents returns the number of color components (1 for grayscale).
func (_debc *PdfColorDeviceGray )GetNumComponents ()int {return 1};
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
type FieldValueProvider interface{FieldValues ()(map[string ]_egg .PdfObject ,error );};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element between 0 and 1.
func (_ggb *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aafa :=vals [0];if _aafa < 0.0||_aafa > 1.0{_bag .Log .Debug ("\u0049\u006eco\u006d\u0070\u0061t\u0069\u0062\u0069\u006city\u003a R\u0061\u006e\u0067\u0065\u0020\u006f\u0075ts\u0069\u0064\u0065\u0020\u005b\u0030\u002c1\u005d");
};if _aafa < 0.0{_aafa =0.0;}else if _aafa > 1.0{_aafa =1.0;};return NewPdfColorDeviceGray (_aafa ),nil ;};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_dcdb *PdfOutline )ToPdfObject ()_egg .PdfObject {_begf :=_dcdb ._egdd ;_aced :=_begf .PdfObject .(*_egg .PdfObjectDictionary );_aced .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _dcdb .First !=nil {_aced .Set ("\u0046\u0069\u0072s\u0074",_dcdb .First .ToPdfObject ());
};if _dcdb .Last !=nil {_aced .Set ("\u004c\u0061\u0073\u0074",_dcdb .Last .GetContext ().GetContainingPdfObject ());};if _dcdb .Parent !=nil {_aced .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_dcdb .Parent .GetContext ().GetContainingPdfObject ());};
if _dcdb .Count !=nil {_aced .Set ("\u0043\u006f\u0075n\u0074",_egg .MakeInteger (*_dcdb .Count ));};return _begf ;};
// ToPdfObject returns the choice field dictionary within an indirect object (container).
func (_fdfag *PdfFieldChoice )ToPdfObject ()_egg .PdfObject {_fdfag .PdfField .ToPdfObject ();_cdef :=_fdfag ._agef ;_gfag :=_cdef .PdfObject .(*_egg .PdfObjectDictionary );_gfag .Set ("\u0046\u0054",_egg .MakeName ("\u0043\u0068"));if _fdfag .Opt !=nil {_gfag .Set ("\u004f\u0070\u0074",_fdfag .Opt );
};if _fdfag .TI !=nil {_gfag .Set ("\u0054\u0049",_fdfag .TI );};if _fdfag .I !=nil {_gfag .Set ("\u0049",_fdfag .I );};return _cdef ;};
// A returns the value of the A component of the color.
func (_dfgfb *PdfColorLab )A ()float64 {return _dfgfb [1]};func _gfgfd (_cadga string )(string ,error ){var _abccd _dd .Buffer ;_abccd .WriteString (_cadga );_gfdbbe :=make ([]byte ,8+16);_bfcec :=_e .Now ().UTC ().UnixNano ();_bg .BigEndian .PutUint64 (_gfdbbe ,uint64 (_bfcec ));
_ ,_gabbg :=_c .Read (_gfdbbe [8:]);if _gabbg !=nil {return "",_gabbg ;};_abccd .WriteString (_fg .EncodeToString (_gfdbbe ));return _abccd .String (),nil ;};
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_bffa :=&PdfPageResourcesColorspaces {};_bffa .Names =[]string {};_bffa .Colorspaces =map[string ]PdfColorspace {};_bffa ._bcecc =&_egg .PdfIndirectObject {};return _bffa ;};
// FillWithAppearance populates `form` with values provided by `provider`.
// If not nil, `appGen` is used to generate appearance dictionaries for the
// field annotations, based on the specified settings. Otherwise, appearance
// generation is skipped.
// e.g.: appGen := annotator.FieldAppearance{OnlyIfMissing: true, RegenerateTextFields: true}
// NOTE: In next major version this functionality will be part of Fill. (v4)
func (_accaff *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_fgdcf :=_accaff .fill (provider ,appGen );if _fgdcf !=nil {return _fgdcf ;};if _ ,_ceggc :=provider .(FieldImageProvider );_ceggc {_fgdcf =_accaff .fillImageWithAppearance (provider .(FieldImageProvider ),appGen );
};return _fgdcf ;};
// SignatureValidationResult defines the response from the signature validation handler.
type SignatureValidationResult struct{
// List of errors when validating the signature.
Errors []string ;IsSigned bool ;IsVerified bool ;IsTrusted bool ;Fields []*PdfField ;Name string ;Date PdfDate ;Reason string ;Location string ;ContactInfo string ;DiffResults *_be .DiffResults ;
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
GeneralizedTime _e .Time ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_bceb pdfCIDFontType2 )GetCharMetrics (code _ef .CharCode )(_bgd .CharMetrics ,bool ){if _ffbcc ,_dafc :=_bceb ._fafe [code ];_dafc {return _bgd .CharMetrics {Wx :_ffbcc },true ;};_edab :=rune (code );_cbcef ,_dagbf :=_bceb ._beec [_edab ];if !_dagbf {_cbcef =int (_bceb ._bgec );
};return _bgd .CharMetrics {Wx :float64 (_cbcef )},true ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_fbbag pdfFontType0 )GetCharMetrics (code _ef .CharCode )(_bgd .CharMetrics ,bool ){if _fbbag .DescendantFont ==nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0064\u0065\u0073\u0063\u0065\u006e\u0064\u0061\u006e\u0074\u002e\u0020\u0066\u006f\u006et=\u0025\u0073",_fbbag );
return _bgd .CharMetrics {},false ;};return _fbbag .DescendantFont .GetCharMetrics (code );};
// AddOutlineTree adds outlines to a PDF file.
func (_aacca *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_aacca ._dcedg =outlineTree };
// Flags returns the field flags for the field accounting for any inherited flags.
func (_cccbe *PdfField )Flags ()FieldFlag {var _egab FieldFlag ;_gedb ,_dagf :=_cccbe .inherit (func (_cdgg *PdfField )bool {if _cdgg .Ff !=nil {_egab =FieldFlag (*_cdgg .Ff );return true ;};return false ;});if _dagf !=nil {_bag .Log .Debug ("\u0045\u0072\u0072o\u0072\u0020\u0065\u0076\u0061\u006c\u0075\u0061\u0074\u0069\u006e\u0067\u0020\u0066\u006c\u0061\u0067\u0073\u0020\u0076\u0069\u0061\u0020\u0069\u006e\u0068\u0065\u0072\u0069t\u0061\u006e\u0063\u0065\u003a\u0020\u0025\u0076",_dagf );
};if !_gedb {_bag .Log .Trace ("N\u006f\u0020\u0066\u0069\u0065\u006cd\u0020\u0066\u006c\u0061\u0067\u0073 \u0066\u006f\u0075\u006e\u0064\u0020\u002d \u0061\u0073\u0073\u0075\u006d\u0065\u0020\u0063\u006c\u0065a\u0072");};return _egab ;};
// NewPdfFilespec returns an initialized generic PDF filespec model.
func NewPdfFilespec ()*PdfFilespec {_dbgg :=&PdfFilespec {};_dbgg ._fbdd =_egg .MakeIndirectObject (_egg .MakeDict ());return _dbgg ;};
// GetNumComponents returns the number of color components of the underlying
// colorspace device.
func (_efdc *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _efdc .UnderlyingCS .GetNumComponents ();};
// GetBorderWidth returns the border style's width.
func (_gaff *PdfBorderStyle )GetBorderWidth ()float64 {if _gaff .W ==nil {return 1;};return *_gaff .W ;};
// GetContainingPdfObject implements interface PdfModel.
func (_dea *PdfAction )GetContainingPdfObject ()_egg .PdfObject {return _dea ._bf };
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_fcdf :=PdfColorDeviceGray (grayVal );return &_fcdf ;};func (_decef *pdfFontType3 )baseFields ()*fontCommon {return &_decef .fontCommon };func (_daeb PdfFont )actualFont ()pdfFont {if _daeb ._edde ==nil {_bag .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0061\u0063\u0074\u0075\u0061\u006c\u0046\u006f\u006e\u0074\u002e\u0020\u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c.\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_daeb );
};return _daeb ._edde ;};func _gdcg (_bfce *_egg .PdfObjectDictionary ,_bddaf *fontCommon )(*pdfFontType3 ,error ){_cgfdc :=_ecaae (_bddaf );_febef :=_bfce .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _febef ==nil {_febef =_egg .MakeInteger (0);
};_cgfdc .FirstChar =_febef ;_cdaad ,_acdaf :=_egg .GetIntVal (_febef );if !_acdaf {_bag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0046i\u0072s\u0074C\u0068\u0061\u0072\u0020\u0074\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029",_febef );
return nil ,_egg .ErrTypeError ;};_ffed :=_ef .CharCode (_cdaad );_febef =_bfce .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _febef ==nil {_febef =_egg .MakeInteger (255);};_cgfdc .LastChar =_febef ;_cdaad ,_acdaf =_egg .GetIntVal (_febef );
if !_acdaf {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004c\u0061\u0073\u0074\u0043h\u0061\u0072\u0020\u0074\u0079\u0070\u0065 \u0028\u0025\u0054\u0029",_febef );return nil ,_egg .ErrTypeError ;
};_cdce :=_ef .CharCode (_cdaad );_febef =_bfce .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _febef !=nil {_cgfdc .Resources =_febef ;};_febef =_bfce .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _febef ==nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0068\u0061\u0072\u0050\u0072\u006f\u0063\u0073\u0020(%\u0076\u0029",_febef );
return nil ,_egg .ErrNotSupported ;};_cgfdc .CharProcs =_febef ;_febef =_bfce .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _febef ==nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0046\u006f\u006et\u004d\u0061\u0074\u0072\u0069\u0078\u0020\u0028\u0025\u0076\u0029",_febef );
return nil ,_egg .ErrNotSupported ;};_cgfdc .FontMatrix =_febef ;_cgfdc ._ecfgb =make (map[_ef .CharCode ]float64 );_febef =_bfce .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _febef !=nil {_cgfdc .Widths =_febef ;_fgffe ,_cdcg :=_egg .GetArray (_febef );
if !_cdcg {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020W\u0069\u0064t\u0068\u0073\u0020\u0061\u0074\u0074\u0072\u0069b\u0075\u0074\u0065\u0020\u0021\u003d\u0020\u0061\u0072\u0072\u0061\u0079 \u0028\u0025\u0054\u0029",_febef );return nil ,_egg .ErrTypeError ;
};_eegff ,_bfdf :=_fgffe .ToFloat64Array ();if _bfdf !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0077\u0069d\u0074\u0068\u0073\u0020\u0074\u006f\u0020a\u0072\u0072\u0061\u0079");
return nil ,_bfdf ;};if len (_eegff )!=int (_cdce -_ffed +1){_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0074\u0068s\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u0021\u003d\u0020\u0025\u0064 \u0028\u0025\u0064\u0029",_cdce -_ffed +1,len (_eegff ));
return nil ,_egg .ErrRangeError ;};_affg ,_cdcg :=_egg .GetArray (_cgfdc .FontMatrix );if !_cdcg {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0021\u003d\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_affg );
return nil ,_bfdf ;};_gfae ,_bfdf :=_affg .ToFloat64Array ();if _bfdf !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020c\u006f\u006ev\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0046o\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078\u0020\u0074\u006f\u0020a\u0072\u0072\u0061\u0079");
return nil ,_bfdf ;};_dacaf :=_gdg .NewMatrix (_gfae [0],_gfae [1],_gfae [2],_gfae [3],_gfae [4],_gfae [5]);for _dcbe ,_ceee :=range _eegff {_fabf ,_ :=_dacaf .Transform (_ceee ,_ceee );_cgfdc ._ecfgb [_ffed +_ef .CharCode (_dcbe )]=_fabf ;};};_cgfdc .Encoding =_egg .TraceToDirectObject (_bfce .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
_ddae :=_bfce .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _ddae !=nil {_cgfdc ._gdbae =_egg .TraceToDirectObject (_ddae );_gecf ,_cfebb :=_ebfda (_cgfdc ._gdbae ,&_cgfdc .fontCommon );if _cfebb !=nil {return nil ,_cfebb ;};_cgfdc ._bfbgf =_gecf ;
};if _acagf :=_cgfdc ._bfbgf ;_acagf !=nil {_cgfdc ._fbfed =_ef .NewCMapEncoder ("",nil ,_acagf );}else {_cgfdc ._fbfed =_ef .NewPdfDocEncoder ();};return _cgfdc ,nil ;};func (_gggbb *PdfAppender )replaceObject (_bgbf ,_fadd _egg .PdfObject ){switch _cfab :=_bgbf .(type ){case *_egg .PdfIndirectObject :_gggbb ._eegc [_fadd ]=_cfab .ObjectNumber ;
case *_egg .PdfObjectStream :_gggbb ._eegc [_fadd ]=_cfab .ObjectNumber ;};};
// NewOutlineDest returns a new outline destination which can be used
// with outline items.
func NewOutlineDest (page int64 ,x ,y float64 )OutlineDest {return OutlineDest {Page :page ,Mode :"\u0058\u0059\u005a",X :x ,Y :y };};func _ceef (_fgcaf StdFontName )(pdfFontSimple ,error ){_ageag ,_aaff :=_bgd .NewStdFontByName (_fgcaf );if !_aaff {return pdfFontSimple {},ErrFontNotSupported ;
};_dgfdd :=_egaa (_ageag );return _dgfdd ,nil ;};
// DecodeArray returns the range of color component values in the ICCBased colorspace.
func (_cbbd *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _cbbd .Range };
// DecodeArray returns the range of color component values in DeviceGray colorspace.
func (_dbdg *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// NewPdfReaderWithOpts creates a new PdfReader for an input io.ReadSeeker interface
// with a ReaderOpts.
// If ReaderOpts is nil it will be set to default value from NewReaderOpts.
func NewPdfReaderWithOpts (rs _dag .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _dfbed ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0057\u0069\u0074\u0068O\u0070\u0074\u0073";return _ffee (rs ,opts ,true ,_dfbed );
};
// GetNumComponents returns the number of color components (1 for Separation).
func (_bcgc *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};
// StandardValidator is the interface that is used for the PDF StandardImplementer validation for the PDF document.
// It is using a CompliancePdfReader which is expected to give more Metadata during reading process.
// NOTE: This implementation is in experimental development state.
// Keep in mind that it might change in the subsequent minor versions.
type StandardValidator interface{
// ValidateStandard checks if the input reader
ValidateStandard (_gagce *CompliancePdfReader )error ;};func _cffe (_beefg *_egg .PdfObjectDictionary )*VRI {_ebec ,_ :=_egg .GetString (_beefg .Get ("\u0054\u0055"));_addf ,_ :=_egg .GetString (_beefg .Get ("\u0054\u0053"));return &VRI {Cert :_cfdec (_beefg .Get ("\u0043\u0065\u0072\u0074")),OCSP :_cfdec (_beefg .Get ("\u004f\u0043\u0053\u0050")),CRL :_cfdec (_beefg .Get ("\u0043\u0052\u004c")),TU :_ebec ,TS :_addf };
};func _cggba (_deddee *_eg .ImageBase )(_eebbf Image ){_eebbf .Width =int64 (_deddee .Width );_eebbf .Height =int64 (_deddee .Height );_eebbf .BitsPerComponent =int64 (_deddee .BitsPerComponent );_eebbf .ColorComponents =_deddee .ColorComponents ;_eebbf .Data =_deddee .Data ;
_eebbf ._abfae =_deddee .Decode ;_eebbf ._fgggb =_deddee .Alpha ;return _eebbf ;};
// ToPdfObject implements interface PdfModel.
func (_cdd *PdfAction )ToPdfObject ()_egg .PdfObject {_bd :=_cdd ._bf ;_efd :=_bd .PdfObject .(*_egg .PdfObjectDictionary );_efd .Clear ();_efd .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_efd .SetIfNotNil ("\u0053",_cdd .S );
_efd .SetIfNotNil ("\u004e\u0065\u0078\u0074",_cdd .Next );return _bd ;};func _ddgfga ()_e .Time {_cgag .Lock ();defer _cgag .Unlock ();return _gfeea };
// SetContentStreams sets the content streams based on a string array. Will make
// 1 object stream for each string and reference from the page Contents.
// Each stream will be encoded using the encoding specified by the StreamEncoder,
// if empty, will use identity encoding (raw data).
func (_efeca *PdfPage )SetContentStreams (cStreams []string ,encoder _egg .StreamEncoder )error {if len (cStreams )==0{_efeca .Contents =nil ;return nil ;};if encoder ==nil {encoder =_egg .NewRawEncoder ();};var _egdba []*_egg .PdfObjectStream ;for _ ,_dagdf :=range cStreams {_eaffd :=&_egg .PdfObjectStream {};
_agdeb :=encoder .MakeStreamDict ();_ecaed ,_edega :=encoder .EncodeBytes ([]byte (_dagdf ));if _edega !=nil {return _edega ;};_agdeb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_ecaed ))));_eaffd .PdfObjectDictionary =_agdeb ;
_eaffd .Stream =_ecaed ;_egdba =append (_egdba ,_eaffd );};if len (_egdba )==1{_efeca .Contents =_egdba [0];}else {_abgcc :=_egg .MakeArray ();for _ ,_dcbff :=range _egdba {_abgcc .Append (_dcbff );};_efeca .Contents =_abgcc ;};return nil ;};
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_bcd :=NewPdfAnnotation ();_bcf :=&PdfAnnotationFileAttachment {};_bcf .PdfAnnotation =_bcd ;_bcf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bcd .SetContext (_bcf );return _bcf ;};
// AddExtGState adds a graphics state to the XObject resources.
func (_gcfe *PdfPage )AddExtGState (name _egg .PdfObjectName ,egs *_egg .PdfObjectDictionary )error {if _gcfe .Resources ==nil {_gcfe .Resources =NewPdfPageResources ();};if _gcfe .Resources .ExtGState ==nil {_gcfe .Resources .ExtGState =_egg .MakeDict ();
};_cbbddf ,_bccc :=_egg .TraceToDirectObject (_gcfe .Resources .ExtGState ).(*_egg .PdfObjectDictionary );if !_bccc {_bag .Log .Debug ("\u0045\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0045\u0078t\u0047\u0053\u0074\u0061\u0074\u0065\u0020\u0064i\u0063t\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u003a\u0020\u0025\u0076",_egg .TraceToDirectObject (_gcfe .Resources .ExtGState ));
return _gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cbbddf .Set (name ,egs );return nil ;};
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_cfcc :=NewPdfAnnotation ();_baf :=&PdfAnnotationStrikeOut {};_baf .PdfAnnotation =_cfcc ;_baf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cfcc .SetContext (_baf );return _baf ;};
// Outline represents a PDF outline dictionary (Table 152 - p. 376).
// Currently, the Outline object can only be used to construct PDF outlines.
type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};func (_bfgcf *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _gabg []*PdfFieldSignature ;for _ ,_dgbged :=range _bfgcf .AllFields (){switch _dbedd :=_dgbged .GetContext ().(type ){case *PdfFieldSignature :_cbgcg :=_dbedd ;
_gabg =append (_gabg ,_cbgcg );};};return _gabg ;};func (_adbcb *pdfFontType0 )bytesToCharcodes (_gadf []byte )([]_ef .CharCode ,bool ){if _adbcb ._fcffd ==nil {return nil ,false ;};_gagca ,_gggda :=_adbcb ._fcffd .BytesToCharcodes (_gadf );if !_gggda {return nil ,false ;
};_fgda :=make ([]_ef .CharCode ,len (_gagca ));for _afffb ,_cbbdd :=range _gagca {_fgda [_afffb ]=_ef .CharCode (_cbbdd );};return _fgda ,true ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain three elements representing the
// red, green and blue components of the color. The values of the elements
// should be between 0 and 1.
func (_gafc *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cagg :=vals [0];if _cagg < 0.0||_cagg > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cagg );
return nil ,ErrColorOutOfRange ;};_dde :=vals [1];if _dde < 0.0||_dde > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cagg );return nil ,ErrColorOutOfRange ;
};_ecdga :=vals [2];if _ecdga < 0.0||_ecdga > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cagg );return nil ,ErrColorOutOfRange ;};_gefce :=NewPdfColorDeviceRGB (_cagg ,_dde ,_ecdga );
return _gefce ,nil ;};
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
// The added XObjectForm is identified by the specified name.
func (_abgcb *PdfPageResources )SetXObjectFormByName (keyName _egg .PdfObjectName ,xform *XObjectForm )error {_eadff :=xform .ToPdfObject ().(*_egg .PdfObjectStream );_acgbf :=_abgcb .SetXObjectByName (keyName ,_eadff );return _acgbf ;};
// SetPdfKeywords sets the Keywords attribute of the output PDF.
func SetPdfKeywords (keywords string ){_cgag .Lock ();defer _cgag .Unlock ();_fafb =keywords };
// RemovePage removes a page by number.
func (_dagaa *PdfAppender )RemovePage (pageNum int ){_cabb :=pageNum -1;_dagaa ._beac =append (_dagaa ._beac [0:_cabb ],_dagaa ._beac [pageNum :]...);};func (_egff *DSS )generateHashMaps ()error {_fdcab ,_aebed :=_egff .generateHashMap (_egff .Certs );
if _aebed !=nil {return _aebed ;};_aafbc ,_aebed :=_egff .generateHashMap (_egff .OCSPs );if _aebed !=nil {return _aebed ;};_bbac ,_aebed :=_egff .generateHashMap (_egff .CRLs );if _aebed !=nil {return _aebed ;};_egff ._gafe =_fdcab ;_egff ._gaaec =_aafbc ;
_egff ._eeecd =_bbac ;return nil ;};func _faffdb (_fccag _egg .PdfObject ,_dgfa bool )(*PdfFont ,error ){_adafc ,_abef ,_efge :=_fgafa (_fccag );if _adafc !=nil {_afaa (_adafc );};if _efge !=nil {if _efge ==ErrType1CFontNotSupported {_daec ,_ffbe :=_fbbfc (_adafc ,_abef ,nil );
if _ffbe !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0057h\u0069\u006c\u0065 l\u006f\u0061\u0064\u0069\u006e\u0067 \u0073\u0069\u006d\u0070\u006c\u0065\u0020\u0066\u006f\u006e\u0074\u003a\u0020\u0066\u006fn\u0074\u003d\u0025\u0073\u0020\u0065\u0072\u0072=\u0025\u0076",_abef ,_ffbe );
return nil ,_efge ;};return &PdfFont {_edde :_daec },_efge ;};return nil ,_efge ;};_geec :=&PdfFont {};switch _abef ._ebdf {case "\u0054\u0079\u0070e\u0030":if !_dgfa {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u004c\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0074\u0079\u0070\u00650\u0020\u006e\u006f\u0074\u0020\u0061\u006c\u006c\u006f\u0077\u0065\u0064\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_abef );
return nil ,_gd .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_ecaf ,_adad :=_bedd (_adafc ,_abef );if _adad !=nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0057\u0068\u0069l\u0065\u0020\u006c\u006f\u0061\u0064\u0069ng\u0020\u0054\u0079\u0070e\u0030\u0020\u0066\u006f\u006e\u0074\u002e\u0020\u0066on\u0074\u003d%\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_abef ,_adad );
return nil ,_adad ;};_geec ._edde =_ecaf ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _bfdd *pdfFontSimple ;_fdafe ,_bagaf :=_bgd .NewStdFontByName (_bgd .StdFontName (_abef ._dgfdc ));
if _bagaf {_gdaa :=_egaa (_fdafe );_geec ._edde =&_gdaa ;_bdec :=_egg .TraceToDirectObject (_gdaa .ToPdfObject ());_aefef ,_gaba ,_aagca :=_fgafa (_bdec );if _aagca !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0042\u0061\u0064\u0020\u0053\u0074a\u006e\u0064\u0061\u0072\u0064\u00314\u000a\u0009\u0066\u006f\u006e\u0074\u003d\u0025\u0073\u000a\u0009\u0073\u0074d\u003d\u0025\u002b\u0076",_abef ,_gdaa );
return nil ,_aagca ;};for _ ,_gced :=range _adafc .Keys (){_aefef .Set (_gced ,_adafc .Get (_gced ));};_bfdd ,_aagca =_fbbfc (_aefef ,_gaba ,_gdaa ._cdee );if _aagca !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0042\u0061\u0064\u0020\u0053\u0074a\u006e\u0064\u0061\u0072\u0064\u00314\u000a\u0009\u0066\u006f\u006e\u0074\u003d\u0025\u0073\u000a\u0009\u0073\u0074d\u003d\u0025\u002b\u0076",_abef ,_gdaa );
return nil ,_aagca ;};_bfdd ._babec =_gdaa ._babec ;_bfdd ._dddd =_gdaa ._dddd ;if _bfdd ._dbbfc ==nil {_bfdd ._dbbfc =_gdaa ._dbbfc ;};}else {_bfdd ,_efge =_fbbfc (_adafc ,_abef ,nil );if _efge !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0057h\u0069\u006c\u0065 l\u006f\u0061\u0064\u0069\u006e\u0067 \u0073\u0069\u006d\u0070\u006c\u0065\u0020\u0066\u006f\u006e\u0074\u003a\u0020\u0066\u006fn\u0074\u003d\u0025\u0073\u0020\u0065\u0072\u0072=\u0025\u0076",_abef ,_efge );
return nil ,_efge ;};};_efge =_bfdd .addEncoding ();if _efge !=nil {return nil ,_efge ;};if _bagaf {_bfdd .updateStandard14Font ();};if _bagaf &&_bfdd ._cbdegf ==nil &&_bfdd ._cdee ==nil {_bag .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_bfdd );
_bag .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_fdafe );};if len (_bfdd ._babec )==0{_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_bfdd );};_geec ._edde =_bfdd ;
case "\u0054\u0079\u0070e\u0033":_dbgdb ,_fgcbf :=_gdcg (_adafc ,_abef );if _fgcbf !=nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020W\u0068\u0069\u006c\u0065\u0020\u006co\u0061\u0064\u0069\u006e\u0067\u0020\u0074y\u0070\u0065\u0033\u0020\u0066\u006f\u006e\u0074\u003a\u0020%\u0076",_fgcbf );
return nil ,_fgcbf ;};_geec ._edde =_dbgdb ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_aggc ,_bgfbff :=_cbfde (_adafc ,_abef );if _bgfbff !=nil {_bag .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0057\u0068i\u006c\u0065\u0020l\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0063\u0069d \u0066\u006f\u006et\u0020\u0074y\u0070\u0065\u0030\u0020\u0066\u006fn\u0074\u003a \u0025\u0076",_bgfbff );
return nil ,_bgfbff ;};_geec ._edde =_aggc ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_caaa ,_beedc :=_dbffb (_adafc ,_abef );if _beedc !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0057\u0068\u0069l\u0065\u0020\u006co\u0061\u0064\u0069\u006e\u0067\u0020\u0063\u0069\u0064\u0020f\u006f\u006e\u0074\u0020\u0074yp\u0065\u0032\u0020\u0066\u006f\u006e\u0074\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_abef ,_beedc );
return nil ,_beedc ;};_geec ._edde =_caaa ;default:_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020U\u006e\u0073u\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020f\u006f\u006e\u0074\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0066\u006fn\u0074\u003d\u0025\u0073",_abef );
return nil ,_f .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0066\u006f\u006e\u0074\u0020\u0074y\u0070\u0065\u003a\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_abef );};return _geec ,nil ;};
// FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other
// flags are specific.
type FieldFlag uint32 ;
// NewPdfAnnotationLink returns a new link annotation.
func NewPdfAnnotationLink ()*PdfAnnotationLink {_bgf :=NewPdfAnnotation ();_afb :=&PdfAnnotationLink {};_afb .PdfAnnotation =_bgf ;_bgf .SetContext (_afb );return _afb ;};
// GetOptimizer returns current PDF optimizer.
func (_gfcabd *PdfWriter )GetOptimizer ()Optimizer {return _gfcabd ._cfgb };func (_ffedbd *Image )samplesAddPadding (_badffg []uint32 )[]uint32 {_efgace :=_eg .BytesPerLine (int (_ffedbd .Width ),int (_ffedbd .BitsPerComponent ),_ffedbd .ColorComponents )*(8/int (_ffedbd .BitsPerComponent ));
_cegf :=_efgace *int (_ffedbd .Height );if len (_badffg )==_cegf {return _badffg ;};_bgcff :=make ([]uint32 ,_cegf );_cgdda :=int (_ffedbd .Width )*_ffedbd .ColorComponents ;for _ecacd :=0;_ecacd < int (_ffedbd .Height );_ecacd ++{_edeff :=_ecacd *int (_ffedbd .Width );
_efgca :=_ecacd *_efgace ;for _gffgf :=0;_gffgf < _cgdda ;_gffgf ++{_bgcff [_efgca +_gffgf ]=_badffg [_edeff +_gffgf ];};};return _bgcff ;};func _gbbb (_gebc _egg .PdfObject )(*PdfColorspaceICCBased ,error ){_dggca :=&PdfColorspaceICCBased {};if _gafd ,_fcfef :=_gebc .(*_egg .PdfIndirectObject );
_fcfef {_dggca ._dcf =_gafd ;};_gebc =_egg .TraceToDirectObject (_gebc );_gfdd ,_ccbd :=_gebc .(*_egg .PdfObjectArray );if !_ccbd {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gfdd .Len ()!=2{return nil ,_f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");
};_gebc =_egg .TraceToDirectObject (_gfdd .Get (0));_fddd ,_ccbd :=_gebc .(*_egg .PdfObjectName );if !_ccbd {return nil ,_f .Errorf ("\u0049\u0043\u0043B\u0061\u0073\u0065\u0064 \u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
};if *_fddd !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_f .Errorf ("\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0049\u0043\u0043\u0042a\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_gebc =_gfdd .Get (1);
_gggad ,_ccbd :=_egg .GetStream (_gebc );if !_ccbd {_bag .Log .Error ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u006e\u006f\u0074\u0020\u0070o\u0069\u006e\u0074\u0069\u006e\u0067\u0020t\u006f\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020%\u0054",_gebc );
return nil ,_f .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_feae :=_gggad .PdfObjectDictionary ;_aebe ,_ccbd :=_feae .Get ("\u004e").(*_egg .PdfObjectInteger );
if !_ccbd {return nil ,_f .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u006d\u0069\u0073\u0073\u0069n\u0067\u0020\u004e\u0020\u0066\u0072\u006fm\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0064\u0069c\u0074");};if *_aebe !=1&&*_aebe !=3&&*_aebe !=4{return nil ,_f .Errorf ("\u0049\u0043\u0043\u0042\u0061s\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065 \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u006e\u006f\u0074\u0020\u0031\u002c\u0033\u002c\u0034\u0029");
};_dggca .N =int (*_aebe );if _efcb :=_feae .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_efcb !=nil {_egae ,_ccgf :=NewPdfColorspaceFromPdfObject (_efcb );if _ccgf !=nil {return nil ,_ccgf ;};_dggca .Alternate =_egae ;};if _dfed :=_feae .Get ("\u0052\u0061\u006eg\u0065");
_dfed !=nil {_dfed =_egg .TraceToDirectObject (_dfed );_fffcc ,_dbef :=_dfed .(*_egg .PdfObjectArray );if !_dbef {return nil ,_f .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0061\u006e \u0061r\u0072\u0061\u0079");
};if _fffcc .Len ()!=2*_dggca .N {return nil ,_f .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u0052\u0061\u006e\u0067e\u0020\u0077\u0072\u006f\u006e\u0067 \u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0065\u006c\u0065m\u0065\u006e\u0074\u0073");
};_bgda ,_ccf :=_fffcc .GetAsFloat64Slice ();if _ccf !=nil {return nil ,_ccf ;};_dggca .Range =_bgda ;}else {_dggca .Range =make ([]float64 ,2*_dggca .N );for _cgba :=0;_cgba < _dggca .N ;_cgba ++{_dggca .Range [2*_cgba ]=0.0;_dggca .Range [2*_cgba +1]=1.0;
};};if _agbb :=_feae .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_agbb !=nil {_cfde ,_acffa :=_agbb .(*_egg .PdfObjectStream );if !_acffa {return nil ,_f .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u004de\u0074\u0061\u0064\u0061\u0074\u0061\u0020n\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d");
};_dggca .Metadata =_cfde ;};_agfe ,_fdgd :=_egg .DecodeStream (_gggad );if _fdgd !=nil {return nil ,_fdgd ;};_dggca .Data =_agfe ;_dggca ._bcda =_gggad ;return _dggca ,nil ;};
// SetImage updates XObject Image with new image data.
func (_decf *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_decf .Filter .UpdateParams (img .GetParamsDict ());_beeffb ,_dbgca :=_decf .Filter .EncodeBytes (img .Data );if _dbgca !=nil {return _dbgca ;};_decf .Stream =_beeffb ;_cgfde :=img .Width ;
_decf .Width =&_cgfde ;_dbfcg :=img .Height ;_decf .Height =&_dbfcg ;_cabbcc :=img .BitsPerComponent ;_decf .BitsPerComponent =&_cabbcc ;if cs ==nil {if img .ColorComponents ==1{_decf .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_decf .ColorSpace =NewPdfColorspaceDeviceRGB ();
}else if img .ColorComponents ==4{_decf .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _gd .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_decf .ColorSpace =cs ;};return nil ;
};func (_fdeb fontCommon )fontFlags ()int {if _fdeb ._bgacg ==nil {return 0;};return _fdeb ._bgacg ._adfdfe ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_bggg *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_geab :=vals [0];_ddedc :=[]float64 {_geab };_faeg ,_efba :=_bggg .TintTransform .Evaluate (_ddedc );
if _efba !=nil {_bag .Log .Debug ("\u0045\u0072r\u006f\u0072\u002c\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0065\u0076\u0061\u006c\u0075\u0061\u0074\u0065: \u0025\u0076",_efba );_bag .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_bggg .TintTransform );
return nil ,_efba ;};_bag .Log .Trace ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0043\u006f\u006c\u006fr\u0046\u0072\u006f\u006d\u0046\u006c\u006f\u0061\u0074\u0073\u0028\u0025\u002bv\u0029\u0020\u006f\u006e\u0020\u0041\u006c\u0074\u0065\u0072\u006e\u0061te\u0053\u0070\u0061\u0063\u0065\u003a\u0020\u0025\u0023\u0076",_faeg ,_bggg .AlternateSpace );
_ggac ,_efba :=_bggg .AlternateSpace .ColorFromFloats (_faeg );if _efba !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u002c\u0020\u0066a\u0069\u006c\u0065d \u0074\u006f\u0020\u0065\u0076\u0061l\u0075\u0061\u0074\u0065\u0020\u0069\u006e\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061t\u0065\u0020\u0073\u0070\u0061\u0063\u0065\u003a \u0025\u0076",_efba );
return nil ,_efba ;};return _ggac ,nil ;};func (_cbfdg *PdfReader )buildOutlineTree (_ggcgga _egg .PdfObject ,_adecba *PdfOutlineTreeNode ,_fcfbe *PdfOutlineTreeNode ,_adgbd map[_egg .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _adgbd ==nil {_adgbd =map[_egg .PdfObject ]struct{}{};
};_adgbd [_ggcgga ]=struct{}{};_dbbfcd ,_cbbdc :=_ggcgga .(*_egg .PdfIndirectObject );if !_cbbdc {return nil ,nil ,_f .Errorf ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0063\u006f\u006et\u0061\u0069\u006e\u0065r\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0054",_ggcgga );
};_cfgdg ,_fcfc :=_dbbfcd .PdfObject .(*_egg .PdfObjectDictionary );if !_fcfc {return nil ,nil ,_gd .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_bag .Log .Trace ("\u0062\u0075\u0069\u006c\u0064\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0074\u0072\u0065\u0065\u003a\u0020d\u0069\u0063\u0074\u003a\u0020\u0025\u0076\u0020\u0028\u0025\u0076\u0029\u0020p\u003a\u0020\u0025\u0070",_cfgdg ,_dbbfcd ,_dbbfcd );
if _ggagg :=_cfgdg .Get ("\u0054\u0069\u0074l\u0065");_ggagg !=nil {_faddf ,_gadc :=_cbfdg .newPdfOutlineItemFromIndirectObject (_dbbfcd );if _gadc !=nil {return nil ,nil ,_gadc ;};_faddf .Parent =_adecba ;_faddf .Prev =_fcfbe ;_degdc :=_egg .ResolveReference (_cfgdg .Get ("\u0046\u0069\u0072s\u0074"));
if _ ,_bbfg :=_adgbd [_degdc ];_degdc !=nil &&_degdc !=_dbbfcd &&!_bbfg {if !_egg .IsNullObject (_degdc ){_dggeb ,_fgcgfe ,_agafg :=_cbfdg .buildOutlineTree (_degdc ,&_faddf .PdfOutlineTreeNode ,nil ,_adgbd );if _agafg !=nil {_bag .Log .Debug ("D\u0045\u0042U\u0047\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0062\u0075\u0069\u006c\u0064\u0020\u006fu\u0074\u006c\u0069\u006e\u0065\u0020\u0069\u0074\u0065\u006d\u0020\u0074\u0072\u0065\u0065\u003a \u0025\u0076\u002e\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020n\u006f\u0064\u0065\u0020\u0063\u0068\u0069\u006c\u0064\u0072\u0065n\u002e",_agafg );
}else {_faddf .First =_dggeb ;_faddf .Last =_fgcgfe ;};};};_bfaff :=_egg .ResolveReference (_cfgdg .Get ("\u004e\u0065\u0078\u0074"));if _ ,_cfdeb :=_adgbd [_bfaff ];_bfaff !=nil &&_bfaff !=_dbbfcd &&!_cfdeb {if !_egg .IsNullObject (_bfaff ){_cgabc ,_addc ,_edbfd :=_cbfdg .buildOutlineTree (_bfaff ,_adecba ,&_faddf .PdfOutlineTreeNode ,_adgbd );
if _edbfd !=nil {_bag .Log .Debug ("D\u0045\u0042U\u0047\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0062\u0075\u0069\u006c\u0064\u0020\u006fu\u0074\u006c\u0069\u006e\u0065\u0020\u0074\u0072\u0065\u0065\u0020\u0066\u006f\u0072\u0020\u004ee\u0078\u0074\u0020\u006e\u006f\u0064\u0065\u003a\u0020\u0025\u0076\u002e\u0020S\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u006e\u006f\u0064e\u002e",_edbfd );
}else {_faddf .Next =_cgabc ;return &_faddf .PdfOutlineTreeNode ,_addc ,nil ;};};};return &_faddf .PdfOutlineTreeNode ,&_faddf .PdfOutlineTreeNode ,nil ;};_bfff ,_ecffa :=_bagfg (_dbbfcd );if _ecffa !=nil {return nil ,nil ,_ecffa ;};_bfff .Parent =_adecba ;
if _ddgeg :=_cfgdg .Get ("\u0046\u0069\u0072s\u0074");_ddgeg !=nil {_ddgeg =_egg .ResolveReference (_ddgeg );if _ ,_acccb :=_adgbd [_ddgeg ];_ddgeg !=nil &&_ddgeg !=_dbbfcd &&!_acccb {_cabfc :=_egg .TraceToDirectObject (_ddgeg );if _ ,_bbfa :=_cabfc .(*_egg .PdfObjectNull );
!_bbfa &&_cabfc !=nil {_feeab ,_cccde ,_aeffg :=_cbfdg .buildOutlineTree (_ddgeg ,&_bfff .PdfOutlineTreeNode ,nil ,_adgbd );if _aeffg !=nil {_bag .Log .Debug ("\u0044\u0045\u0042\u0055\u0047\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020b\u0075\u0069\u006c\u0064\u0020\u006f\u0075\u0074\u006c\u0069n\u0065\u0020\u0074\u0072\u0065\u0065\u003a\u0020\u0025\u0076\u002e\u0020\u0053\u006b\u0069\u0070\u0070\u0069n\u0067\u0020\u006e\u006f\u0064\u0065 \u0063\u0068i\u006c\u0064r\u0065n\u002e",_aeffg );
}else {_bfff .First =_feeab ;_bfff .Last =_cccde ;};};};};return &_bfff .PdfOutlineTreeNode ,&_bfff .PdfOutlineTreeNode ,nil ;};
// SetPdfAuthor sets the Author attribute of the output PDF.
func SetPdfAuthor (author string ){_cgag .Lock ();defer _cgag .Unlock ();_cdcf =author };func (_cff *PdfReader )newPdfActionGotoRFromDict (_bc *_egg .PdfObjectDictionary )(*PdfActionGoToR ,error ){_cdg ,_ffbb :=_fgb (_bc .Get ("\u0046"));if _ffbb !=nil {return nil ,_ffbb ;
};return &PdfActionGoToR {D :_bc .Get ("\u0044"),NewWindow :_bc .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_cdg },nil ;};func _eaebg ()string {_abgc :="\u0051\u0057\u0045\u0052\u0054\u0059\u0055\u0049\u004f\u0050\u0041S\u0044\u0046\u0047\u0048\u004a\u004b\u004c\u005a\u0058\u0043V\u0042\u004e\u004d";
var _daaeba _dd .Buffer ;for _ccgba :=0;_ccgba < 6;_ccgba ++{_daaeba .WriteRune (rune (_abgc [_cg .Intn (len (_abgc ))]));};return _daaeba .String ();};
// PdfVersion returns version of the PDF file.
func (_aadbb *PdfReader )PdfVersion ()_egg .Version {return _aadbb ._dafgab .PdfVersion ()};
// Hasher is the interface that wraps the basic Write method.
type Hasher interface{Write (_dfceg []byte )(_eadeeg int ,_bfdfd error );};
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
type AcroFormRepairOptions struct{};
// NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams.
func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_egg .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_egg .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()};
};
// ReaderToWriterOpts options used to generate a PdfWriter.
type ReaderToWriterOpts struct{SkipAcroForm bool ;SkipInfo bool ;SkipNameDictionary bool ;SkipNamedDests bool ;SkipOCProperties bool ;SkipOutlines bool ;SkipPageLabels bool ;SkipRotation bool ;SkipMetadata bool ;PageProcessCallback PageProcessCallback ;
// Deprecated: will be removed in v4. Use PageProcessCallback instead.
PageCallback PageCallback ;};func (_feff *pdfCIDFontType0 )baseFields ()*fontCommon {return &_feff .fontCommon };func (_fdecg *PdfReader )loadDSS ()(*DSS ,error ){if _fdecg ._dafgab .GetCrypter ()!=nil &&!_fdecg ._dafgab .IsAuthenticated (){return nil ,_f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_gfefe :=_fdecg ._eacf .Get ("\u0044\u0053\u0053");if _gfefe ==nil {return nil ,nil ;};_gdeced ,_ :=_egg .GetIndirect (_gfefe );_gfefe =_egg .TraceToDirectObject (_gfefe );switch _efed :=_gfefe .(type ){case *_egg .PdfObjectNull :return nil ,nil ;case *_egg .PdfObjectDictionary :return _gfgga (_gdeced ,_efed );
};return nil ,_f .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_gfefe );};
// GetNameDictionary returns the Names entry in the PDF catalog.
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
func (_dbcga *PdfReader )GetNameDictionary ()(_egg .PdfObject ,error ){_cdgggc :=_egg .ResolveReference (_dbcga ._eacf .Get ("\u004e\u0061\u006de\u0073"));if _cdgggc ==nil {return nil ,nil ;};if !_dbcga ._cede {_bcfa :=_dbcga .traverseObjectData (_cdgggc );
if _bcfa !=nil {return nil ,_bcfa ;};};return _cdgggc ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_gfca *PdfActionJavaScript )ToPdfObject ()_egg .PdfObject {_gfca .PdfAction .ToPdfObject ();_aefc :=_gfca ._bf ;_eed :=_aefc .PdfObject .(*_egg .PdfObjectDictionary );_eed .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeJavaScript )));_eed .SetIfNotNil ("\u004a\u0053",_gfca .JS );
return _aefc ;};
// NewStandard14FontWithEncoding returns the standard 14 font named `basefont` as a *PdfFont and
// a TextEncoder that encodes all the runes in `alphabet`, or an error if this is not possible.
// An error can occur if `basefont` is not one the standard 14 font names.
func NewStandard14FontWithEncoding (basefont StdFontName ,alphabet map[rune ]int )(*PdfFont ,_ef .SimpleEncoder ,error ){_baega ,_cffec :=_ceef (basefont );if _cffec !=nil {return nil ,nil ,_cffec ;};_bfda ,_eefge :=_baega .Encoder ().(_ef .SimpleEncoder );
if !_eefge {return nil ,nil ,_f .Errorf ("\u006f\u006e\u006c\u0079\u0020s\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006eg\u0020\u0069\u0073\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u002c\u0020\u0067\u006f\u0074\u0020\u0025\u0054",_baega .Encoder ());
};_aefdc :=make (map[rune ]_ef .GlyphName );for _cfcd :=range alphabet {if _ ,_eedgg :=_bfda .RuneToCharcode (_cfcd );!_eedgg {_ ,_bgdc :=_baega ._dddd .Read (_cfcd );if !_bgdc {_bag .Log .Trace ("r\u0075\u006e\u0065\u0020\u0025\u0023x\u003d\u0025\u0071\u0020\u006e\u006f\u0074\u0020\u0069n\u0020\u0074\u0068e\u0020f\u006f\u006e\u0074",_cfcd ,_cfcd );
continue ;};_bbbd ,_bgdc :=_ef .RuneToGlyph (_cfcd );if !_bgdc {_bag .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_cfcd ,_cfcd );continue ;};if len (_aefdc )>=255{return nil ,nil ,_gd .New ("\u0074\u006f\u006f\u0020\u006d\u0061\u006e\u0079\u0020\u0063\u0068\u0061\u0072a\u0063\u0074\u0065\u0072\u0073\u0020f\u006f\u0072\u0020\u0073\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063o\u0064\u0069\u006e\u0067");
};_aefdc [_cfcd ]=_bbbd ;};};var (_aaaf []_ef .CharCode ;_dafb []_ef .CharCode ;);for _bccdb :=_ef .CharCode (1);_bccdb <=0xff;_bccdb ++{_dffgf ,_gacgd :=_bfda .CharcodeToRune (_bccdb );if !_gacgd {_aaaf =append (_aaaf ,_bccdb );continue ;};if _ ,_gacgd =alphabet [_dffgf ];
!_gacgd {_dafb =append (_dafb ,_bccdb );};};_efdfe :=append (_aaaf ,_dafb ...);if len (_efdfe )< len (_aefdc ){return nil ,nil ,_f .Errorf ("n\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0065\u006ec\u006f\u0064\u0065\u0020\u0025\u0064\u0020ru\u006e\u0065\u0073\u002c \u0062\u0075\u0074\u0020\u0068\u0061\u0076\u0065\u0020on\u006c\u0079 \u0025\u0064\u0020\u0073\u006c\u006f\u0074\u0073",len (_aefdc ),len (_efdfe ));
};_gggd :=make ([]rune ,0,len (_aefdc ));for _fadcf :=range _aefdc {_gggd =append (_gggd ,_fadcf );};_cf .Slice (_gggd ,func (_afddf ,_adecb int )bool {return _gggd [_afddf ]< _gggd [_adecb ]});_eega :=make (map[_ef .CharCode ]_ef .GlyphName ,len (_gggd ));
for _ ,_bdde :=range _gggd {_cacce :=_efdfe [0];_efdfe =_efdfe [1:];_eega [_cacce ]=_aefdc [_bdde ];};_bfda =_ef .ApplyDifferences (_bfda ,_eega );_baega .SetEncoder (_bfda );return &PdfFont {_edde :&_baega },_bfda ,nil ;};
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_bdda :=&PdfColorspaceCalRGB {};_bdda .BlackPoint =[]float64 {0.0,0.0,0.0};_bdda .Gamma =[]float64 {1.0,1.0,1.0};_bdda .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _bdda ;};
// M returns the value of the magenta component of the color.
func (_dbeg *PdfColorDeviceCMYK )M ()float64 {return _dbeg [1]};var ErrColorOutOfRange =_gd .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");
// NewPdfAnnotationFreeText returns a new free text annotation.
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_ecdg :=NewPdfAnnotation ();_ggg :=&PdfAnnotationFreeText {};_ggg .PdfAnnotation =_ecdg ;_ggg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ecdg .SetContext (_ggg );return _ggg ;};
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
func (_abdgb *PdfColorspaceSpecialIndexed )ToPdfObject ()_egg .PdfObject {_eeded :=_egg .MakeArray (_egg .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_eeded .Append (_abdgb .Base .ToPdfObject ());_eeded .Append (_egg .MakeInteger (int64 (_abdgb .HiVal )));
_eeded .Append (_abdgb .Lookup );if _abdgb ._ceed !=nil {_abdgb ._ceed .PdfObject =_eeded ;return _abdgb ._ceed ;};return _eeded ;};
// ToPdfObject implements interface PdfModel.
func (_bgce *PdfAnnotationInk )ToPdfObject ()_egg .PdfObject {_bgce .PdfAnnotation .ToPdfObject ();_aeab :=_bgce ._cef ;_edeg :=_aeab .PdfObject .(*_egg .PdfObjectDictionary );_bgce .PdfAnnotationMarkup .appendToPdfDictionary (_edeg );_edeg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0049\u006e\u006b"));
_edeg .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_bgce .InkList );_edeg .SetIfNotNil ("\u0042\u0053",_bgce .BS );return _aeab ;};func (_bfa *PdfReader )newPdfActionTransFromDict (_gbg *_egg .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_gbg .Get ("\u0054\u0072\u0061n\u0073")},nil ;
};
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
// (Section 12.5.6.2 p. 399).
type PdfAnnotationMarkup struct{T _egg .PdfObject ;Popup *PdfAnnotationPopup ;CA _egg .PdfObject ;RC _egg .PdfObject ;CreationDate _egg .PdfObject ;IRT _egg .PdfObject ;Subj _egg .PdfObject ;RT _egg .PdfObject ;IT _egg .PdfObject ;ExData _egg .PdfObject ;
};
// NewDSS returns a new DSS dictionary.
func NewDSS ()*DSS {return &DSS {_eaceg :_egg .MakeIndirectObject (_egg .MakeDict ()),VRI :map[string ]*VRI {}};};
// GetCharMetrics returns the char metrics for character code `code`.
func (_afgde pdfCIDFontType0 )GetCharMetrics (code _ef .CharCode )(_bgd .CharMetrics ,bool ){_decee :=_afgde ._afdcf ;if _cbdgd ,_dbcbc :=_afgde ._decd [code ];_dbcbc {_decee =_cbdgd ;};return _bgd .CharMetrics {Wx :_decee },true ;};
// PartialName returns the partial name of the field.
func (_decc *PdfField )PartialName ()string {_gfafe :="";if _decc .T !=nil {_gfafe =_decc .T .Decoded ();}else {_bag .Log .Debug ("\u0046\u0069el\u0064\u0020\u006di\u0073\u0073\u0069\u006eg T\u0020fi\u0065\u006c\u0064\u0020\u0028\u0069\u006eco\u006d\u0070\u0061\u0074\u0069\u0062\u006ce\u0029");
};return _gfafe ;};const (FieldFlagClear FieldFlag =0;FieldFlagReadOnly FieldFlag =1;FieldFlagRequired FieldFlag =(1<<1);FieldFlagNoExport FieldFlag =(2<<1);FieldFlagNoToggleToOff FieldFlag =(1<<14);FieldFlagRadio FieldFlag =(1<<15);FieldFlagPushbutton FieldFlag =(1<<16);
FieldFlagRadiosInUnision FieldFlag =(1<<25);FieldFlagMultiline FieldFlag =(1<<12);FieldFlagPassword FieldFlag =(1<<13);FieldFlagFileSelect FieldFlag =(1<<20);FieldFlagDoNotScroll FieldFlag =(1<<23);FieldFlagComb FieldFlag =(1<<24);FieldFlagRichText FieldFlag =(1<<25);
FieldFlagDoNotSpellCheck FieldFlag =(1<<22);FieldFlagCombo FieldFlag =(1<<17);FieldFlagEdit FieldFlag =(1<<18);FieldFlagSort FieldFlag =(1<<19);FieldFlagMultiSelect FieldFlag =(1<<21);FieldFlagCommitOnSelChange FieldFlag =(1<<26););func (_ccbdg *PdfWriter )copyObject (_gcgde _egg .PdfObject ,_abgbg map[_egg .PdfObject ]_egg .PdfObject ,_bgddca map[_egg .PdfObject ]struct{},_befee bool )_egg .PdfObject {_fecfd :=!_ccbdg ._gabaca &&_bgddca !=nil ;
if _dcffd ,_accbd :=_abgbg [_gcgde ];_accbd {if _fecfd &&!_befee {delete (_bgddca ,_gcgde );};return _dcffd ;};_deedd :=_gcgde ;switch _bdggc :=_gcgde .(type ){case *_egg .PdfObjectArray :_ecbag :=_egg .MakeArray ();_deedd =_ecbag ;_abgbg [_gcgde ]=_deedd ;
for _ ,_ccgfe :=range _bdggc .Elements (){_ecbag .Append (_ccbdg .copyObject (_ccgfe ,_abgbg ,_bgddca ,_befee ));};case *_egg .PdfObjectStreams :_aeeacc :=&_egg .PdfObjectStreams {PdfObjectReference :_bdggc .PdfObjectReference };_deedd =_aeeacc ;_abgbg [_gcgde ]=_deedd ;
for _ ,_eafbf :=range _bdggc .Elements (){_aeeacc .Append (_ccbdg .copyObject (_eafbf ,_abgbg ,_bgddca ,_befee ));};case *_egg .PdfObjectStream :_efdbc :=&_egg .PdfObjectStream {Stream :_bdggc .Stream ,PdfObjectReference :_bdggc .PdfObjectReference };_deedd =_efdbc ;
_abgbg [_gcgde ]=_deedd ;_efdbc .PdfObjectDictionary =_ccbdg .copyObject (_bdggc .PdfObjectDictionary ,_abgbg ,_bgddca ,_befee ).(*_egg .PdfObjectDictionary );case *_egg .PdfObjectDictionary :var _gfgfc bool ;if _fecfd &&!_befee {if _dagdc ,_ :=_egg .GetNameVal (_bdggc .Get ("\u0054\u0079\u0070\u0065"));
_dagdc =="\u0050\u0061\u0067\u0065"{_ ,_efaac :=_ccbdg ._fcdab [_bdggc ];_befee =!_efaac ;_gfgfc =_befee ;};};_egggb :=_egg .MakeDict ();_deedd =_egggb ;_abgbg [_gcgde ]=_deedd ;for _ ,_efffe :=range _bdggc .Keys (){_egggb .Set (_efffe ,_ccbdg .copyObject (_bdggc .Get (_efffe ),_abgbg ,_bgddca ,_befee ));
};if _gfgfc {_deedd =_egg .MakeNull ();_befee =false ;};case *_egg .PdfIndirectObject :_gbcfg :=&_egg .PdfIndirectObject {PdfObjectReference :_bdggc .PdfObjectReference };_deedd =_gbcfg ;_abgbg [_gcgde ]=_deedd ;_gbcfg .PdfObject =_ccbdg .copyObject (_bdggc .PdfObject ,_abgbg ,_bgddca ,_befee );
case *_egg .PdfObjectString :_beaae :=*_bdggc ;_deedd =&_beaae ;_abgbg [_gcgde ]=_deedd ;case *_egg .PdfObjectName :_beeee :=*_bdggc ;_deedd =&_beeee ;_abgbg [_gcgde ]=_deedd ;case *_egg .PdfObjectNull :_deedd =_egg .MakeNull ();_abgbg [_gcgde ]=_deedd ;
case *_egg .PdfObjectInteger :_dfbb :=*_bdggc ;_deedd =&_dfbb ;_abgbg [_gcgde ]=_deedd ;case *_egg .PdfObjectReference :_geeeb :=*_bdggc ;_deedd =&_geeeb ;_abgbg [_gcgde ]=_deedd ;case *_egg .PdfObjectFloat :_fgcd :=*_bdggc ;_deedd =&_fgcd ;_abgbg [_gcgde ]=_deedd ;
case *_egg .PdfObjectBool :_ebfdgb :=*_bdggc ;_deedd =&_ebfdgb ;_abgbg [_gcgde ]=_deedd ;case *pdfSignDictionary :_addfe :=&pdfSignDictionary {PdfObjectDictionary :_egg .MakeDict (),_ebdca :_bdggc ._ebdca ,_gbbba :_bdggc ._gbbba };_deedd =_addfe ;_abgbg [_gcgde ]=_deedd ;
for _ ,_aebgg :=range _bdggc .Keys (){_addfe .Set (_aebgg ,_ccbdg .copyObject (_bdggc .Get (_aebgg ),_abgbg ,_bgddca ,_befee ));};default:_bag .Log .Info ("\u0054\u004f\u0044\u004f\u0028\u0061\u0035\u0069\u0029\u003a\u0020\u0069\u006dp\u006c\u0065\u006d\u0065\u006e\u0074 \u0063\u006f\u0070\u0079\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0066\u006fr\u0020\u0025\u002b\u0076",_gcgde );
};if _fecfd &&_befee {_bgddca [_gcgde ]=struct{}{};};return _deedd ;};
// NewPermissions returns a new permissions object.
func NewPermissions (docMdp *PdfSignature )*Permissions {_ggbcae :=Permissions {};_ggbcae .DocMDP =docMdp ;_bafb :=_egg .MakeDict ();_bafb .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_ggbcae ._ffgafc =_bafb ;return &_ggbcae ;};
// CharcodesToUnicodeWithStats is identical to CharcodesToUnicode except it returns more statistical
// information about hits and misses from the reverse mapping process.
// NOTE: The number of runes returned may be greater than the number of charcodes.
// TODO(peterwilliams97): Deprecate in v4 and use only CharcodesToStrings()
func (_ccaed *PdfFont )CharcodesToUnicodeWithStats (charcodes []_ef .CharCode )(_gfegf []rune ,_acdd ,_fgdc int ){_aagd ,_acdd ,_fgdc :=_ccaed .CharcodesToStrings (charcodes );return []rune (_fc .Join (_aagd ,"")),_acdd ,_fgdc ;};
// Fill populates `form` with values provided by `provider`.
func (_facge *PdfAcroForm )Fill (provider FieldValueProvider )error {return _facge .fill (provider ,nil )};func (_bedf *LTV )generateVRIKey (_bcdc *PdfSignature )(string ,error ){_bccda ,_cabed :=_eefdc (_bcdc .Contents .Bytes ());if _cabed !=nil {return "",_cabed ;
};return _fc .ToUpper (_fg .EncodeToString (_bccda )),nil ;};func (_age *PdfReader )newPdfActionImportDataFromDict (_aag *_egg .PdfObjectDictionary )(*PdfActionImportData ,error ){_bgb ,_ggd :=_fgb (_aag .Get ("\u0046"));if _ggd !=nil {return nil ,_ggd ;
};return &PdfActionImportData {F :_bgb },nil ;};
// PdfActionMovie represents a movie action.
type PdfActionMovie struct{*PdfAction ;Annotation _egg .PdfObject ;T _egg .PdfObject ;Operation _egg .PdfObject ;};
// PdfAnnotationText represents Text annotations.
// (Section 12.5.6.4 p. 402).
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _egg .PdfObject ;Name _egg .PdfObject ;State _egg .PdfObject ;StateModel _egg .PdfObject ;};
// PdfColorDeviceRGB represents a color in DeviceRGB colorspace with R, G, B components, where component is
// defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorDeviceRGB [3]float64 ;
// HasXObjectByName checks if an XObject with a specified keyName is defined.
func (_defd *PdfPageResources )HasXObjectByName (keyName _egg .PdfObjectName )bool {_eecdf ,_ :=_defd .GetXObjectByName (keyName );return _eecdf !=nil ;};func (_gageb *LTV )enable (_aega ,_gabce []*_dg .Certificate ,_fadf string )error {_bcaba ,_bbega ,_cbab :=_gageb .buildCertChain (_aega ,_gabce );
if _cbab !=nil {return _cbab ;};_gdag ,_cbab :=_gageb .getCerts (_bcaba );if _cbab !=nil {return _cbab ;};_cadf ,_cbab :=_gageb .getOCSPs (_bcaba ,_bbega );if _cbab !=nil {return _cbab ;};_gccg ,_cbab :=_gageb .getCRLs (_bcaba );if _cbab !=nil {return _cbab ;
};_bbegc :=_gageb ._cbbab ;_cbcae ,_cbab :=_bbegc .addCerts (_gdag );if _cbab !=nil {return _cbab ;};_aefdf ,_cbab :=_bbegc .addOCSPs (_cadf );if _cbab !=nil {return _cbab ;};_fadb ,_cbab :=_bbegc .addCRLs (_gccg );if _cbab !=nil {return _cbab ;};if _fadf !=""{_bbegc .VRI [_fadf ]=&VRI {Cert :_cbcae ,OCSP :_aefdf ,CRL :_fadb };
};_gageb ._dbdga .SetDSS (_bbegc );return nil ;};func (_cdcc *LTV )getOCSPs (_acfdd []*_dg .Certificate ,_aebg map[string ]*_dg .Certificate )([][]byte ,error ){_fcacd :=make ([][]byte ,0,len (_acfdd ));for _ ,_bdege :=range _acfdd {for _ ,_dabdf :=range _bdege .OCSPServer {if _cdcc .CertClient .IsCA (_bdege ){continue ;
};_ebed ,_ccafa :=_aebg [_bdege .Issuer .CommonName ];if !_ccafa {_bag .Log .Debug ("\u0057\u0041\u0052\u004e:\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067 \u004f\u0043\u0053\u0050\u0020\u0072\u0065\u0071\u0075\u0065\u0073\u0074\u003a\u0020\u0069\u0073\u0073\u0075e\u0072\u0020\u0063\u0065\u0072t\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");
continue ;};_ ,_becebe ,_ffgd :=_cdcc .OCSPClient .MakeRequest (_dabdf ,_bdege ,_ebed );if _ffgd !=nil {_bag .Log .Debug ("\u0057\u0041\u0052\u004e:\u0020\u004f\u0043\u0053\u0050\u0020\u0072\u0065\u0071\u0075e\u0073t\u0020\u0065\u0072\u0072\u006f\u0072\u003a \u0025\u0076",_ffgd );
continue ;};_fcacd =append (_fcacd ,_becebe );};};return _fcacd ,nil ;};
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
func SetPdfModifiedDate (modifiedDate _e .Time ){_cgag .Lock ();defer _cgag .Unlock ();_gfeea =modifiedDate ;};
// ToImage converts an object to an Image which can be transformed or saved out.
// The image data is decoded and the Image returned.
func (_gfccc *XObjectImage )ToImage ()(*Image ,error ){_cgbfe :=&Image {};if _gfccc .Height ==nil {return nil ,_gd .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
};_cgbfe .Height =*_gfccc .Height ;if _gfccc .Width ==nil {return nil ,_gd .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_cgbfe .Width =*_gfccc .Width ;if _gfccc .BitsPerComponent ==nil {switch _gfccc .Filter .(type ){case *_egg .CCITTFaxEncoder ,*_egg .JBIG2Encoder :_cgbfe .BitsPerComponent =1;
case *_egg .LZWEncoder ,*_egg .RunLengthEncoder :_cgbfe .BitsPerComponent =8;default:return nil ,_gd .New ("\u0062\u0069\u0074\u0073\u0020\u0070\u0065\u0072\u0020\u0063\u006fm\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006d\u0069\u0073s\u0069\u006e\u0067");
};}else {_cgbfe .BitsPerComponent =*_gfccc .BitsPerComponent ;};_cgbfe .ColorComponents =_gfccc .ColorSpace .GetNumComponents ();_gfccc ._gefbe .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_egg .MakeInteger (int64 (_cgbfe .ColorComponents )));
_gfgc ,_aeaae :=_egg .DecodeStream (_gfccc ._gefbe );if _aeaae !=nil {return nil ,_aeaae ;};_cgbfe .Data =_gfgc ;if _gfccc .Decode !=nil {_fegef ,_gegb :=_gfccc .Decode .(*_egg .PdfObjectArray );if !_gegb {_bag .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");
return nil ,_gd .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_aecfe ,_gegcf :=_fegef .ToFloat64Array ();if _gegcf !=nil {return nil ,_gegcf ;};_cgbfe ._abfae =_aecfe ;};return _cgbfe ,nil ;};
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_ece :=NewPdfAnnotation ();_bcg :=&PdfAnnotationTrapNet {};_bcg .PdfAnnotation =_ece ;_ece .SetContext (_bcg );return _bcg ;};
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
// the current instance.
func (_cbcb *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_cbcb .ToPdfOutline ().PdfOutlineTreeNode ;};func (_fgae *PdfReader )newPdfAnnotationPopupFromDict (_cbad *_egg .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_dcdg :=PdfAnnotationPopup {};
_dcdg .Parent =_cbad .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_dcdg .Open =_cbad .Get ("\u004f\u0070\u0065\u006e");return &_dcdg ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_aecg *PdfAnnotationWidget )ToPdfObject ()_egg .PdfObject {_aecg .PdfAnnotation .ToPdfObject ();_cdfe :=_aecg ._cef ;_ffaa :=_cdfe .PdfObject .(*_egg .PdfObjectDictionary );if _aecg ._gae {return _cdfe ;};_aecg ._gae =true ;_ffaa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));
_ffaa .SetIfNotNil ("\u0048",_aecg .H );_ffaa .SetIfNotNil ("\u004d\u004b",_aecg .MK );_ffaa .SetIfNotNil ("\u0041",_aecg .A );_ffaa .SetIfNotNil ("\u0041\u0041",_aecg .AA );_ffaa .SetIfNotNil ("\u0042\u0053",_aecg .BS );_bbag :=_aecg .Parent ;if _aecg ._daa !=nil {if _aecg ._daa ._agef ==_aecg ._cef {_aecg ._daa .ToPdfObject ();
};_bbag =_aecg ._daa .GetContainingPdfObject ();};if _bbag !=_cdfe {_ffaa .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_bbag );};_aecg ._gae =false ;return _cdfe ;};
// PdfAnnotationLine represents Line annotations.
// (Section 12.5.6.7).
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _egg .PdfObject ;BS _egg .PdfObject ;LE _egg .PdfObject ;IC _egg .PdfObject ;LL _egg .PdfObject ;LLE _egg .PdfObject ;Cap _egg .PdfObject ;IT _egg .PdfObject ;LLO _egg .PdfObject ;CP _egg .PdfObject ;
Measure _egg .PdfObject ;CO _egg .PdfObject ;};
// B returns the value of the B component of the color.
func (_edbbb *PdfColorCalRGB )B ()float64 {return _edbbb [1]};
// PdfShadingType6 is a Coons patch mesh.
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_egg .PdfObjectInteger ;BitsPerComponent *_egg .PdfObjectInteger ;BitsPerFlag *_egg .PdfObjectInteger ;Decode *_egg .PdfObjectArray ;Function []PdfFunction ;};
// PdfColorspaceDeviceNAttributes contains additional information about the components of colour space that
// conforming readers may use. Conforming readers need not use the alternateSpace and tintTransform parameters,
// and may instead use a custom blending algorithms, along with other information provided in the attributes
// dictionary if present.
type PdfColorspaceDeviceNAttributes struct{Subtype *_egg .PdfObjectName ;Colorants _egg .PdfObject ;Process _egg .PdfObject ;MixingHints _egg .PdfObject ;_cdgc *_egg .PdfIndirectObject ;};var _effdb =map[string ]struct{}{"\u0046\u0054":{},"\u004b\u0069\u0064\u0073":{},"\u0054":{},"\u0054\u0055":{},"\u0054\u004d":{},"\u0046\u0066":{},"\u0056":{},"\u0044\u0056":{},"\u0041\u0041":{},"\u0044\u0041":{},"\u0051":{},"\u0044\u0053":{},"\u0052\u0056":{}};
// String returns a string representation of PdfTransformParamsDocMDP.
func (_abcdf *PdfTransformParamsDocMDP )String ()string {return _f .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_abcdf .Type ,_abcdf .P ,_abcdf .V );};func (_ddaf *PdfReader )lookupPageByObject (_faffg _egg .PdfObject )(*PdfPage ,error ){return nil ,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");
};
// PdfInfo holds document information that will overwrite
// document information global variables defined above.
type PdfInfo struct{Title *_egg .PdfObjectString ;Author *_egg .PdfObjectString ;Subject *_egg .PdfObjectString ;Keywords *_egg .PdfObjectString ;Creator *_egg .PdfObjectString ;Producer *_egg .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;
Trapped *_egg .PdfObjectName ;_eggg *_egg .PdfObjectDictionary ;};func _dbefa (_gdecda *_egg .PdfObjectDictionary )(*PdfShadingType2 ,error ){_gfaff :=PdfShadingType2 {};_ecfdd :=_gdecda .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _ecfdd ==nil {_bag .Log .Debug ("R\u0065\u0071\u0075\u0069\u0072\u0065d\u0020\u0061\u0074\u0074\u0072\u0069b\u0075\u0074\u0065\u0020\u006d\u0069\u0073s\u0069\u006e\u0067\u003a\u0020\u0020\u0043\u006f\u006f\u0072d\u0073");
return nil ,ErrRequiredAttributeMissing ;};_dcede ,_abga :=_ecfdd .(*_egg .PdfObjectArray );if !_abga {_bag .Log .Debug ("\u0043\u006f\u006f\u0072d\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_ecfdd );
return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _dcede .Len ()!=4{_bag .Log .Debug ("\u0043\u006f\u006f\u0072d\u0073\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006eo\u0074 \u0034\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",_dcede .Len ());
return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_gfaff .Coords =_dcede ;if _cfdaa :=_gdecda .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_cfdaa !=nil {_cfdaa =_egg .TraceToDirectObject (_cfdaa );
_dcca ,_fgcgd :=_cfdaa .(*_egg .PdfObjectArray );if !_fgcgd {_bag .Log .Debug ("\u0044\u006f\u006d\u0061i\u006e\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_cfdaa );return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_gfaff .Domain =_dcca ;};_ecfdd =_gdecda .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _ecfdd ==nil {_bag .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0020\u0046\u0075\u006ec\u0074\u0069\u006f\u006e");
return nil ,ErrRequiredAttributeMissing ;};_gfaff .Function =[]PdfFunction {};if _bdcc ,_cdfbb :=_ecfdd .(*_egg .PdfObjectArray );_cdfbb {for _ ,_ddgcb :=range _bdcc .Elements (){_eeddea ,_fedfc :=_bdefe (_ddgcb );if _fedfc !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_fedfc );
return nil ,_fedfc ;};_gfaff .Function =append (_gfaff .Function ,_eeddea );};}else {_dcffb ,_aaafe :=_bdefe (_ecfdd );if _aaafe !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_aaafe );
return nil ,_aaafe ;};_gfaff .Function =append (_gfaff .Function ,_dcffb );};if _dgdce :=_gdecda .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_dgdce !=nil {_dgdce =_egg .TraceToDirectObject (_dgdce );_cceaff ,_gabe :=_dgdce .(*_egg .PdfObjectArray );if !_gabe {_bag .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_dgdce );
return nil ,_egg .ErrTypeError ;};if _cceaff .Len ()!=2{_bag .Log .Debug ("\u0045\u0078\u0074\u0065n\u0064\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006eo\u0074 \u0032\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",_cceaff .Len ());return nil ,ErrInvalidAttribute ;
};_gfaff .Extend =_cceaff ;};return &_gfaff ,nil ;};
// AlphaMapFunc represents a alpha mapping function: byte -> byte. Can be used for
// thresholding the alpha channel, i.e. setting all alpha values below threshold to transparent.
type AlphaMapFunc func (_bdagf byte )byte ;func (_geaa *PdfWriter )adjustXRefAffectedVersion (_egaec bool ){if _egaec &&_geaa ._dacce .Major ==1&&_geaa ._dacce .Minor < 5{_geaa ._dacce .Minor =5;};};
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
func (_dccd *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_facb :=_fb .NewReader (img .getBase ());_bccgc :=_eg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_cggd :=_fb .NewWriter (_bccgc );
_ccae :=_dgb .Pow (2,float64 (img .BitsPerComponent ))-1;_affff :=make ([]uint32 ,3);var (_dgbg uint32 ;ANorm ,X ,Y ,Z ,_ccee ,_eeee ,_daege float64 ;_ceafg error ;);for {_dgbg ,_ceafg =_facb .ReadSample ();if _ceafg ==_dag .EOF {break ;}else if _ceafg !=nil {return img ,_ceafg ;
};ANorm =float64 (_dgbg )/_ccae ;X =_dccd .WhitePoint [0]*_dgb .Pow (ANorm ,_dccd .Gamma );Y =_dccd .WhitePoint [1]*_dgb .Pow (ANorm ,_dccd .Gamma );Z =_dccd .WhitePoint [2]*_dgb .Pow (ANorm ,_dccd .Gamma );_ccee =3.240479*X +-1.537150*Y +-0.498535*Z ;
_eeee =-0.969256*X +1.875992*Y +0.041556*Z ;_daege =0.055648*X +-0.204043*Y +1.057311*Z ;_ccee =_dgb .Min (_dgb .Max (_ccee ,0),1.0);_eeee =_dgb .Min (_dgb .Max (_eeee ,0),1.0);_daege =_dgb .Min (_dgb .Max (_daege ,0),1.0);_affff [0]=uint32 (_ccee *_ccae );
_affff [1]=uint32 (_eeee *_ccae );_affff [2]=uint32 (_daege *_ccae );if _ceafg =_cggd .WriteSamples (_affff );_ceafg !=nil {return img ,_ceafg ;};};return _cggba (&_bccgc ),nil ;};var _ pdfFont =(*pdfFontSimple )(nil );
// PdfFunction interface represents the common methods of a function in PDF.
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_egg .PdfObject ;};func (_aeacc *PdfField )inherit (_accg func (*PdfField )bool )(bool ,error ){_befb :=map[*PdfField ]bool {};_bada :=false ;_fgaaa :=_aeacc ;for _fgaaa !=nil {if _ ,_febgb :=_befb [_fgaaa ];
_febgb {return false ,_gd .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_eecdd :=_accg (_fgaaa );if _eecdd {_bada =true ;break ;};_befb [_fgaaa ]=true ;_fgaaa =_fgaaa .Parent ;};return _bada ,nil ;
};
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
func NewXObjectForm ()*XObjectForm {_eeeec :=&XObjectForm {};_dcfccb :=&_egg .PdfObjectStream {};_dcfccb .PdfObjectDictionary =_egg .MakeDict ();_eeeec ._acgef =_dcfccb ;return _eeeec ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_dgfabf *PdfShadingType4 )ToPdfObject ()_egg .PdfObject {_dgfabf .PdfShading .ToPdfObject ();_abcda ,_cfded :=_dgfabf .getShadingDict ();if _cfded !=nil {_bag .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
return nil ;};if _dgfabf .BitsPerCoordinate !=nil {_abcda .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_dgfabf .BitsPerCoordinate );};if _dgfabf .BitsPerComponent !=nil {_abcda .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_dgfabf .BitsPerComponent );
};if _dgfabf .BitsPerFlag !=nil {_abcda .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_dgfabf .BitsPerFlag );};if _dgfabf .Decode !=nil {_abcda .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dgfabf .Decode );};if _dgfabf .Function !=nil {if len (_dgfabf .Function )==1{_abcda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dgfabf .Function [0].ToPdfObject ());
}else {_acbac :=_egg .MakeArray ();for _ ,_dcgff :=range _dgfabf .Function {_acbac .Append (_dcgff .ToPdfObject ());};_abcda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_acbac );};};return _dgfabf ._cfdbd ;};func (_aegec *PdfAcroForm )fill (_feeag FieldValueProvider ,_edbfb FieldAppearanceGenerator )error {if _aegec ==nil {return nil ;
};_adgac ,_fbbagf :=_feeag .FieldValues ();if _fbbagf !=nil {return _fbbagf ;};for _ ,_bbbb :=range _aegec .AllFields (){_dcfb :=_bbbb .PartialName ();_ddfd ,_defff :=_adgac [_dcfb ];if !_defff {if _ddgc ,_adfab :=_bbbb .FullName ();_adfab ==nil {_ddfd ,_defff =_adgac [_ddgc ];
};};if !_defff {_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020f\u006f\u0072\u006d \u0066\u0069\u0065l\u0064\u0020\u0025\u0073\u0020\u006e\u006f\u0074\u0020\u0066o\u0075\u006e\u0064\u0020\u0069n \u0074\u0068\u0065\u0020\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0072\u002e\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u002e",_dcfb );
continue ;};if _bgae :=_ccaeg (_bbbb ,_ddfd );_bgae !=nil {return _bgae ;};if _edbfb ==nil {continue ;};for _ ,_cdcbf :=range _bbbb .Annotations {_fgfg ,_gecb :=_edbfb .GenerateAppearanceDict (_aegec ,_bbbb ,_cdcbf );if _gecb !=nil {return _gecb ;};_cdcbf .AP =_fgfg ;
_cdcbf .ToPdfObject ();};};return nil ;};
// AddImageResource adds an image to the XObject resources.
func (_faaef *PdfPage )AddImageResource (name _egg .PdfObjectName ,ximg *XObjectImage )error {var _dcde *_egg .PdfObjectDictionary ;if _faaef .Resources .XObject ==nil {_dcde =_egg .MakeDict ();_faaef .Resources .XObject =_dcde ;}else {var _gdgad bool ;
_dcde ,_gdgad =(_faaef .Resources .XObject ).(*_egg .PdfObjectDictionary );if !_gdgad {return _gd .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_dcde .Set (name ,ximg .ToPdfObject ());
return nil ;};
// PdfActionThread represents a thread action.
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _egg .PdfObject ;B _egg .PdfObject ;};
// NewOutlineItem returns a new outline item instance.
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};func (_eebb *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};
// PdfAnnotationPolyLine represents PolyLine annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _egg .PdfObject ;LE _egg .PdfObject ;BS _egg .PdfObject ;IC _egg .PdfObject ;BE _egg .PdfObject ;IT _egg .PdfObject ;Measure _egg .PdfObject ;};
// PdfAnnotationPrinterMark represents PrinterMark annotations.
// (Section 12.5.6.20).
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _egg .PdfObject ;};
// GetContentStreamObjs returns a slice of PDF objects containing the content
// streams of the page.
func (_edfcdb *PdfPage )GetContentStreamObjs ()[]_egg .PdfObject {if _edfcdb .Contents ==nil {return nil ;};_bdaeb :=_egg .TraceToDirectObject (_edfcdb .Contents );if _edada ,_gdfef :=_bdaeb .(*_egg .PdfObjectArray );_gdfef {return _edada .Elements ();
};return []_egg .PdfObject {_bdaeb };};
// AddWatermarkImage adds a watermark to the page.
func (_egdca *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_gdcbf ,_adaa :=_egdca .GetMediaBox ();if _adaa !=nil {return _adaa ;};_fadda :=_gdcbf .Urx -_gdcbf .Llx ;_abfdf :=_gdcbf .Ury -_gdcbf .Lly ;_gded :=float64 (*ximg .Width );
_dagd :=(_fadda -_gded )/2;if opt .FitToWidth {_gded =_fadda ;_dagd =0;};_cdeb :=_abfdf ;_dfeeg :=float64 (0);if opt .PreserveAspectRatio {_cdeb =_gded *float64 (*ximg .Height )/float64 (*ximg .Width );_dfeeg =(_abfdf -_cdeb )/2;};if _egdca .Resources ==nil {_egdca .Resources =NewPdfPageResources ();
};_gdbcgb :=0;_bgegg :=_egg .PdfObjectName (_f .Sprintf ("\u0049\u006d\u0077%\u0064",_gdbcgb ));for _egdca .Resources .HasXObjectByName (_bgegg ){_gdbcgb ++;_bgegg =_egg .PdfObjectName (_f .Sprintf ("\u0049\u006d\u0077%\u0064",_gdbcgb ));};_adaa =_egdca .AddImageResource (_bgegg ,ximg );
if _adaa !=nil {return _adaa ;};_gdbcgb =0;_aaacg :=_egg .PdfObjectName (_f .Sprintf ("\u0047\u0053\u0025\u0064",_gdbcgb ));for _egdca .HasExtGState (_aaacg ){_gdbcgb ++;_aaacg =_egg .PdfObjectName (_f .Sprintf ("\u0047\u0053\u0025\u0064",_gdbcgb ));};
_agfgcd :=_egg .MakeDict ();_agfgcd .Set ("\u0042\u004d",_egg .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_agfgcd .Set ("\u0043\u0041",_egg .MakeFloat (opt .Alpha ));_agfgcd .Set ("\u0063\u0061",_egg .MakeFloat (opt .Alpha ));_adaa =_egdca .AddExtGState (_aaacg ,_agfgcd );
if _adaa !=nil {return _adaa ;};_afce :=_f .Sprintf ("\u0071\u000a"+"\u002f%\u0073\u0020\u0067\u0073\u000a"+"%\u002e\u0030\u0066\u0020\u0030\u00200\u0020\u0025\u002e\u0030\u0066\u0020\u0025\u002e\u0034f\u0020\u0025\u002e4\u0066 \u0063\u006d\u000a"+"\u002f%\u0073\u0020\u0044\u006f\u000a"+"\u0051",_aaacg ,_gded ,_cdeb ,_dagd ,_dfeeg ,_bgegg );
_egdca .AddContentStreamByString (_afce );return nil ;};
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_ceaag *_egg .PdfIndirectObject ;};
// ToPdfObject returns the PDF representation of the outline tree node.
func (_cdbac *PdfOutlineTreeNode )ToPdfObject ()_egg .PdfObject {return _cdbac .GetContext ().ToPdfObject ();};
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
func (_egbce *PdfAcroForm )GetContainingPdfObject ()_egg .PdfObject {return _egbce ._befdb };
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
// The added XObjectImage is identified by the specified name.
func (_efgga *PdfPageResources )SetXObjectImageByName (keyName _egg .PdfObjectName ,ximg *XObjectImage )error {_dfgfgf :=ximg .ToPdfObject ().(*_egg .PdfObjectStream );_bfdce :=_efgga .SetXObjectByName (keyName ,_dfgfgf );return _bfdce ;};
// GetXObjectFormByName returns the XObjectForm with the specified name from the
// page resources, if it exists.
func (_gbdca *PdfPageResources )GetXObjectFormByName (keyName _egg .PdfObjectName )(*XObjectForm ,error ){_gagd ,_gfefee :=_gbdca .GetXObjectByName (keyName );if _gagd ==nil {return nil ,nil ;};if _gfefee !=XObjectTypeForm {return nil ,_gd .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");
};_acfdc ,_ebcea :=NewXObjectFormFromStream (_gagd );if _ebcea !=nil {return nil ,_ebcea ;};return _acfdc ,nil ;};
// PdfActionGoToE represents a GoToE action.
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _egg .PdfObject ;NewWindow _egg .PdfObject ;T _egg .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_bgdf *PdfActionNamed )ToPdfObject ()_egg .PdfObject {_bgdf .PdfAction .ToPdfObject ();_efff :=_bgdf ._bf ;_aab :=_efff .PdfObject .(*_egg .PdfObjectDictionary );_aab .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeNamed )));_aab .SetIfNotNil ("\u004e",_bgdf .N );
return _efff ;};
// NewPdfAnnotationScreen returns a new screen annotation.
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_bafd :=NewPdfAnnotation ();_ebg :=&PdfAnnotationScreen {};_ebg .PdfAnnotation =_bafd ;_bafd .SetContext (_ebg );return _ebg ;};
// String returns the name of the colorspace (DeviceN).
func (_bcgf *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};const (_ebaa =0x00001;_gcce =0x00002;_eeeef =0x00004;_cebff =0x00008;_cdadd =0x00020;_ggcggf =0x00040;_geggb =0x10000;_gadb =0x20000;_abacd =0x40000;);
// GetType returns the button field type which returns one of the following
// - PdfFieldButtonPush for push button fields
// - PdfFieldButtonCheckbox for checkbox fields
// - PdfFieldButtonRadio for radio button fields
func (_fage *PdfFieldButton )GetType ()ButtonType {_ggdb :=ButtonTypeCheckbox ;if _fage .Ff !=nil {if (uint32 (*_fage .Ff )&FieldFlagPushbutton .Mask ())> 0{_ggdb =ButtonTypePush ;}else if (uint32 (*_fage .Ff )&FieldFlagRadio .Mask ())> 0{_ggdb =ButtonTypeRadio ;
};};return _ggdb ;};
// PdfColorCalGray represents a CalGray colorspace.
type PdfColorCalGray float64 ;
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 4 for a CMYK32 device.
func (_aagcb *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};
// SignatureHandlerDocMDP extends SignatureHandler with the ValidateWithOpts method for checking the DocMDP policy.
type SignatureHandlerDocMDP interface{SignatureHandler ;
// ValidateWithOpts validates a PDF signature by checking PdfReader or PdfParser
// ValidateWithOpts shall contain Validate call
ValidateWithOpts (_gaagd *PdfSignature ,_gddag Hasher ,_gddff SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";
TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";);
// GetXObjectByName gets XObject by name.
func (_cfgf *PdfPage )GetXObjectByName (name _egg .PdfObjectName )(_egg .PdfObject ,bool ){_gbca ,_dbfaf :=_cfgf .Resources .XObject .(*_egg .PdfObjectDictionary );if !_dbfaf {return nil ,false ;};if _baec :=_gbca .Get (name );_baec !=nil {return _baec ,true ;
};return nil ,false ;};
// NewPdfFontFromTTFFile loads a TTF font file and returns a PdfFont type
// that can be used in text styling functions.
// Uses a WinAnsiTextEncoder and loads only character codes 32-255.
// NOTE: For composite fonts such as used in symbolic languages, use NewCompositePdfFontFromTTFFile.
func NewPdfFontFromTTFFile (filePath string )(*PdfFont ,error ){_abadc ,_fcbae :=_gf .Open (filePath );if _fcbae !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0072\u0065\u0061\u0064\u0069\u006e\u0067\u0020T\u0054F\u0020\u0066\u006f\u006e\u0074\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_fcbae );
return nil ,_fcbae ;};defer _abadc .Close ();return NewPdfFontFromTTF (_abadc );};
// GetDescent returns the Descent of the font `descriptor`.
func (_bbfbc *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _egg .GetNumberAsFloat (_bbfbc .Descent );};
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_aegc :=NewPdfAnnotation ();_cabg :=&PdfAnnotationSquiggly {};_cabg .PdfAnnotation =_aegc ;_cabg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aegc .SetContext (_cabg );return _cabg ;};
// ToPdfObject implements interface PdfModel.
func (_cbdb *PdfSignatureReference )ToPdfObject ()_egg .PdfObject {_dedf :=_egg .MakeDict ();_dedf .SetIfNotNil ("\u0054\u0079\u0070\u0065",_cbdb .Type );_dedf .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_cbdb .TransformMethod );
_dedf .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_cbdb .TransformParams );_dedf .SetIfNotNil ("\u0044\u0061\u0074\u0061",_cbdb .Data );_dedf .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_cbdb .DigestMethod );
return _dedf ;};
// ToPdfObject returns a PDF object representation of the outline item.
func (_bbdd *OutlineItem )ToPdfObject ()_egg .PdfObject {_fgdg ,_ :=_bbdd .ToPdfOutlineItem ();return _fgdg .ToPdfObject ();};
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
// containing the field dictionary.
func (_acgc *PdfField )GetContainingPdfObject ()_egg .PdfObject {return _acgc ._agef };func (_fggcg *PdfWriter )writeObject (_ffddb int ,_afeg _egg .PdfObject ){_bag .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_ffddb );
if _daeae ,_gcdfca :=_afeg .(*_egg .PdfIndirectObject );_gcdfca {_fggcg ._ccceb [_ffddb ]=crossReference {Type :1,Offset :_fggcg ._cdaab ,Generation :_daeae .GenerationNumber };_ccegg :=_f .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ffddb );
if _defg ,_cabbca :=_daeae .PdfObject .(*pdfSignDictionary );_cabbca {_defg ._cagab =_fggcg ._cdaab +int64 (len (_ccegg ));};if _daeae .PdfObject ==nil {_bag .Log .Debug ("E\u0072\u0072\u006fr\u003a\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0027\u0073\u0020\u0050\u0064\u0066\u004f\u0062j\u0065\u0063\u0074 \u0073\u0068\u006f\u0075\u006c\u0064\u0020\u006e\u0065\u0076\u0065\u0072\u0020b\u0065\u0020\u006e\u0069l\u0020\u002d\u0020\u0073e\u0074\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0050\u0064\u0066\u004f\u0062\u006a\u0065\u0063t\u004e\u0075\u006c\u006c");
_daeae .PdfObject =_egg .MakeNull ();};_ccegg +=_daeae .PdfObject .WriteString ();_ccegg +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_fggcg .writeString (_ccegg );return ;};if _afaad ,_afcab :=_afeg .(*_egg .PdfObjectStream );_afcab {_fggcg ._ccceb [_ffddb ]=crossReference {Type :1,Offset :_fggcg ._cdaab ,Generation :_afaad .GenerationNumber };
_bebed :=_f .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ffddb );_bebed +=_afaad .PdfObjectDictionary .WriteString ();_bebed +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_fggcg .writeString (_bebed );_fggcg .writeBytes (_afaad .Stream );
_fggcg .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _gaccgf ,_bbfea :=_afeg .(*_egg .PdfObjectStreams );_bbfea {_fggcg ._ccceb [_ffddb ]=crossReference {Type :1,Offset :_fggcg ._cdaab ,Generation :_gaccgf .GenerationNumber };
_cgcgf :=_f .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ffddb );var _acfddf []string ;var _aaaa string ;var _dfdbg int64 ;for _gbfcd ,_fbbdg :=range _gaccgf .Elements (){_bgcgf ,_bbgbc :=_fbbdg .(*_egg .PdfIndirectObject );if !_bbgbc {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0073\u0074\u0072\u0065am\u0073 \u004e\u0020\u0025\u0064\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006es\u0020\u006e\u006f\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u0070\u0064\u0066 \u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0076",_ffddb ,_fbbdg );
continue ;};_fedge :=_bgcgf .PdfObject .WriteString ()+"\u0020";_aaaa =_aaaa +_fedge ;_acfddf =append (_acfddf ,_f .Sprintf ("\u0025\u0064\u0020%\u0064",_bgcgf .ObjectNumber ,_dfdbg ));_fggcg ._ccceb [int (_bgcgf .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_ffddb ,Index :_gbfcd };
_dfdbg =_dfdbg +int64 (len ([]byte (_fedge )));};_eefdcb :=_fc .Join (_acfddf ,"\u0020")+"\u0020";_bead :=_egg .NewFlateEncoder ();_dgdebd :=_bead .MakeStreamDict ();_dgdebd .Set (_egg .PdfObjectName ("\u0054\u0079\u0070\u0065"),_egg .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));
_fgdgc :=int64 (_gaccgf .Len ());_dgdebd .Set (_egg .PdfObjectName ("\u004e"),_egg .MakeInteger (_fgdgc ));_aegb :=int64 (len (_eefdcb ));_dgdebd .Set (_egg .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_egg .MakeInteger (_aegb ));_acfb ,_ :=_bead .EncodeBytes ([]byte (_eefdcb +_aaaa ));
_bfdga :=int64 (len (_acfb ));_dgdebd .Set (_egg .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_egg .MakeInteger (_bfdga ));_cgcgf +=_dgdebd .WriteString ();_cgcgf +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_fggcg .writeString (_cgcgf );
_fggcg .writeBytes (_acfb );_fggcg .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_fggcg .writeString (_afeg .WriteString ());};
// GetContentStreams returns the content stream as an array of strings.
func (_dgbde *PdfPage )GetContentStreams ()([]string ,error ){_fdae :=_dgbde .GetContentStreamObjs ();var _dfec []string ;for _ ,_fdgc :=range _fdae {_cbfc ,_geaea :=_bcfdf (_fdgc );if _geaea !=nil {return nil ,_geaea ;};_dfec =append (_dfec ,_cbfc );};
return _dfec ,nil ;};
// ValidateSignatures validates digital signatures in the document.
func (_fedcf *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _fedcf .AcroForm ==nil {return nil ,nil ;};if _fedcf .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_beebf *PdfSignature ;
_fdgffe *PdfField ;_fgcfg SignatureHandler ;};var _eacfc []*sigFieldPair ;for _ ,_eaeec :=range _fedcf .AcroForm .AllFields (){if _eaeec .V ==nil {continue ;};if _badcb ,_dgaac :=_egg .GetDict (_eaeec .V );_dgaac {if _edeee ,_efggf :=_egg .GetNameVal (_badcb .Get ("\u0054\u0079\u0070\u0065"));
_efggf &&_edeee =="\u0053\u0069\u0067"{_afbda ,_aecde :=_egg .GetIndirect (_eaeec .V );if !_aecde {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006et\u0061\u0069\u006e\u0065\u0072\u0020\u0069s\u0020\u006e\u0069\u006c");
return nil ,ErrTypeCheck ;};_gbdab ,_dbgcf :=_fedcf .newPdfSignatureFromIndirect (_afbda );if _dbgcf !=nil {return nil ,_dbgcf ;};var _fdeg SignatureHandler ;for _ ,_bbdef :=range handlers {if _bbdef .IsApplicable (_gbdab ){_fdeg =_bbdef ;break ;};};_eacfc =append (_eacfc ,&sigFieldPair {_beebf :_gbdab ,_fdgffe :_eaeec ,_fgcfg :_fdeg });
};};};var _dabeb []SignatureValidationResult ;for _ ,_dfgdd :=range _eacfc {_aebca :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_dfgdd ._fdgffe }};if _dfgdd ._fgcfg ==nil {_aebca .Errors =append (_aebca .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");
_dabeb =append (_dabeb ,_aebca );continue ;};_bafeac ,_deed :=_dfgdd ._fgcfg .NewDigest (_dfgdd ._beebf );if _deed !=nil {_aebca .Errors =append (_aebca .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_deed .Error ());_dabeb =append (_dabeb ,_aebca );
continue ;};_fcbacf :=_dfgdd ._beebf .ByteRange ;if _fcbacf ==nil {_aebca .Errors =append (_aebca .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_dabeb =append (_dabeb ,_aebca );continue ;};
for _feedb :=0;_feedb < _fcbacf .Len ();_feedb =_feedb +2{_gbbd ,_ :=_egg .GetNumberAsInt64 (_fcbacf .Get (_feedb ));_cbcfbd ,_ :=_egg .GetIntVal (_fcbacf .Get (_feedb +1));if _ ,_dbbge :=_fedcf ._eefb .Seek (_gbbd ,_dag .SeekStart );_dbbge !=nil {return nil ,_dbbge ;
};_fbcbe :=make ([]byte ,_cbcfbd );if _ ,_adbfa :=_fedcf ._eefb .Read (_fbcbe );_adbfa !=nil {return nil ,_adbfa ;};_bafeac .Write (_fbcbe );};var _eeddeg SignatureValidationResult ;if _eadeg ,_gcdef :=_dfgdd ._fgcfg .(SignatureHandlerDocMDP );_gcdef {_eeddeg ,_deed =_eadeg .ValidateWithOpts (_dfgdd ._beebf ,_bafeac ,SignatureHandlerDocMDPParams {Parser :_fedcf ._dafgab });
}else {_eeddeg ,_deed =_dfgdd ._fgcfg .Validate (_dfgdd ._beebf ,_bafeac );};if _deed !=nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_deed ,_dfgdd ._fgcfg );_eeddeg .Errors =append (_eeddeg .Errors ,_deed .Error ());
};_eeddeg .Name =_dfgdd ._beebf .Name .Decoded ();_eeddeg .Reason =_dfgdd ._beebf .Reason .Decoded ();if _dfgdd ._beebf .M !=nil {_ddgaf ,_dcade :=NewPdfDate (_dfgdd ._beebf .M .String ());if _dcade !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dcade );
_eeddeg .Errors =append (_eeddeg .Errors ,_dcade .Error ());continue ;};_eeddeg .Date =_ddgaf ;};_eeddeg .ContactInfo =_dfgdd ._beebf .ContactInfo .Decoded ();_eeddeg .Location =_dfgdd ._beebf .Location .Decoded ();_eeddeg .Fields =_aebca .Fields ;_dabeb =append (_dabeb ,_eeddeg );
};return _dabeb ,nil ;};
// PdfAnnotationFreeText represents FreeText annotations.
// (Section 12.5.6.6).
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _egg .PdfObject ;Q _egg .PdfObject ;RC _egg .PdfObject ;DS _egg .PdfObject ;CL _egg .PdfObject ;IT _egg .PdfObject ;BE _egg .PdfObject ;RD _egg .PdfObject ;BS _egg .PdfObject ;LE _egg .PdfObject ;
};func (_abae *PdfPage )getParentResources ()(*PdfPageResources ,error ){_eecedf :=_abae .Parent ;for _eecedf !=nil {_edbbe ,_gdabd :=_egg .GetDict (_eecedf );if !_gdabd {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u0020n\u006f\u0064\u0065");
return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};if _abab :=_edbbe .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_abab !=nil {_ddbdd ,_dfabee :=_egg .GetDict (_abab );
if !_dfabee {return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");};_ebefg ,_aagf :=NewPdfPageResourcesFromDict (_ddbdd );if _aagf !=nil {return nil ,_aagf ;};return _ebefg ,nil ;
};_eecedf =_edbbe .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain three elements representing the
// A, B and C components of the color. The values of the elements should be
// between 0 and 1.
func (_gcfd *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bffg :=vals [0];if _bffg < 0.0||_bffg > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bffg );
return nil ,ErrColorOutOfRange ;};_cgda :=vals [1];if _cgda < 0.0||_cgda > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cgda );return nil ,ErrColorOutOfRange ;
};_gggf :=vals [2];if _gggf < 0.0||_gggf > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gggf );return nil ,ErrColorOutOfRange ;};_bece :=NewPdfColorCalRGB (_bffg ,_cgda ,_gggf );
return _bece ,nil ;};
// PdfFunctionType0 uses a sequence of sample values (contained in a stream) to provide an approximation
// for functions whose domains and ranges are bounded. The samples are organized as an m-dimensional
// table in which each entry has n components
type PdfFunctionType0 struct{Domain []float64 ;Range []float64 ;NumInputs int ;NumOutputs int ;Size []int ;BitsPerSample int ;Order int ;Encode []float64 ;Decode []float64 ;_efacf []byte ;_efbce []uint32 ;_adfae *_egg .PdfObjectStream ;};var (_bgegd =_bae .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");
_aafbcd =_bae .MustCompile ("\u005e\u005cs\u002a\u002f\u0028\u005c\u0053\u002b\u003f\u0029\u005c\u0073\u002b\u0028\u002e\u002b\u003f\u0029\u005c\u0073\u002b\u0064\u0065\u0066\\s\u002a\u0024");_daaa =_bae .MustCompile ("\u005e\u005c\u0073*\u0064\u0075\u0070\u005c\u0073\u002b\u0028\u005c\u0064\u002b\u0029\u005c\u0073\u002a\u002f\u0028\u005c\u0077\u002b\u003f\u0029\u0028\u003f\u003a\u005c\u002e\u005c\u0064\u002b)\u003f\u005c\u0073\u002b\u0070\u0075\u0074\u0024");
_afbc ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_gcfbf ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_afba ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";
);func _ceeb (_aagbb _egg .PdfObject )(*PdfFunctionType2 ,error ){_bdbe :=&PdfFunctionType2 {};var _cgbb *_egg .PdfObjectDictionary ;if _daedg ,_eeeca :=_aagbb .(*_egg .PdfIndirectObject );_eeeca {_becd ,_fbfc :=_daedg .PdfObject .(*_egg .PdfObjectDictionary );
if !_fbfc {return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bdbe ._ffcfb =_daedg ;_cgbb =_becd ;}else if _gaagaa ,_aafe :=_aagbb .(*_egg .PdfObjectDictionary );_aafe {_cgbb =_gaagaa ;}else {return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_bag .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_cgbb .String ());_bgbc ,_ddbbg :=_egg .TraceToDirectObject (_cgbb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_egg .PdfObjectArray );if !_ddbbg {_bag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};if _bgbc .Len ()< 0||_bgbc .Len ()%2!=0{_bag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");
return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_agbec ,_faabd :=_bgbc .ToFloat64Array ();if _faabd !=nil {return nil ,_faabd ;};_bdbe .Domain =_agbec ;_bgbc ,_ddbbg =_egg .TraceToDirectObject (_cgbb .Get ("\u0052\u0061\u006eg\u0065")).(*_egg .PdfObjectArray );
if _ddbbg {if _bgbc .Len ()< 0||_bgbc .Len ()%2!=0{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_eeacb ,_cggfad :=_bgbc .ToFloat64Array ();if _cggfad !=nil {return nil ,_cggfad ;};_bdbe .Range =_eeacb ;
};_bgbc ,_ddbbg =_egg .TraceToDirectObject (_cgbb .Get ("\u0043\u0030")).(*_egg .PdfObjectArray );if _ddbbg {_fcefe ,_effeg :=_bgbc .ToFloat64Array ();if _effeg !=nil {return nil ,_effeg ;};_bdbe .C0 =_fcefe ;};_bgbc ,_ddbbg =_egg .TraceToDirectObject (_cgbb .Get ("\u0043\u0031")).(*_egg .PdfObjectArray );
if _ddbbg {_bdac ,_bfae :=_bgbc .ToFloat64Array ();if _bfae !=nil {return nil ,_bfae ;};_bdbe .C1 =_bdac ;};if len (_bdbe .C0 )!=len (_bdbe .C1 ){_bag .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");
return nil ,_egg .ErrRangeError ;};N ,_faabd :=_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_cgbb .Get ("\u004e")));if _faabd !=nil {_bag .Log .Error ("\u004e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020o\u0072\u0020\u0069\u006e\u0076\u0061\u006ci\u0064\u002c\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_cgbb .String ());
return nil ,_faabd ;};_bdbe .N =N ;return _bdbe ,nil ;};
// PdfActionSound represents a sound action.
type PdfActionSound struct{*PdfAction ;Sound _egg .PdfObject ;Volume _egg .PdfObject ;Synchronous _egg .PdfObject ;Repeat _egg .PdfObject ;Mix _egg .PdfObject ;};
// GetSamples converts the raw byte slice into samples which are stored in a uint32 bit array.
// Each sample is represented by BitsPerComponent consecutive bits in the raw data.
// NOTE: The method resamples the image byte data before returning the result and
// this could lead to high memory usage, especially on large images. It should
// be avoided, when possible. It is recommended to access the Data field of the
// image directly or use the ColorAt method to extract individual pixels.
func (_ecfge *Image )GetSamples ()[]uint32 {_ebdd :=_fb .ResampleBytes (_ecfge .Data ,int (_ecfge .BitsPerComponent ));if _ecfge .BitsPerComponent < 8{_ebdd =_ecfge .samplesTrimPadding (_ebdd );};_fgge :=int (_ecfge .Width )*int (_ecfge .Height )*_ecfge .ColorComponents ;
if len (_ebdd )< _fgge {_bag .Log .Debug ("\u0045r\u0072\u006fr\u003a\u0020\u0054o\u006f\u0020\u0066\u0065\u0077\u0020\u0073a\u006d\u0070\u006c\u0065\u0073\u0020(\u0067\u006f\u0074\u0020\u0025\u0064\u002c\u0020\u0065\u0078\u0070e\u0063\u0074\u0069\u006e\u0067\u0020\u0025\u0064\u0029",len (_ebdd ),_fgge );
return _ebdd ;}else if len (_ebdd )> _fgge {_bag .Log .Debug ("\u0045r\u0072\u006fr\u003a\u0020\u0054o\u006f\u0020\u006d\u0061\u006e\u0079\u0020s\u0061\u006d\u0070\u006c\u0065\u0073 \u0028\u0067\u006f\u0074\u0020\u0025\u0064\u002c\u0020\u0065\u0078p\u0065\u0063\u0074\u0069\u006e\u0067\u0020\u0025\u0064",len (_ebdd ),_fgge );
_ebdd =_ebdd [:_fgge ];};return _ebdd ;};
// GetAscent returns the Ascent of the font `descriptor`.
func (_ebcca *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _egg .GetNumberAsFloat (_ebcca .Ascent );};
// PdfPageResources is a Page resources model.
// Implements PdfModel.
type PdfPageResources struct{ExtGState _egg .PdfObject ;ColorSpace _egg .PdfObject ;Pattern _egg .PdfObject ;Shading _egg .PdfObject ;XObject _egg .PdfObject ;Font _egg .PdfObject ;ProcSet _egg .PdfObject ;Properties _egg .PdfObject ;_cbcba *_egg .PdfObjectDictionary ;
_dbbbd *PdfPageResourcesColorspaces ;};
// NewPdfOutline returns an initialized PdfOutline.
func NewPdfOutline ()*PdfOutline {_feef :=&PdfOutline {_egdd :_egg .MakeIndirectObject (_egg .MakeDict ())};_feef ._bgbfg =_feef ;return _feef ;};
// SetNameDictionary sets the Names entry in the PDF catalog.
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
func (_bdeee *PdfWriter )SetNameDictionary (names _egg .PdfObject )error {if names ==nil {return nil ;};_bag .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");
_bdeee ._acea .Set ("\u004e\u0061\u006de\u0073",names );return _bdeee .addObjects (names );};
// IsRadio returns true if the button field represents a radio button, false otherwise.
func (_aegcb *PdfFieldButton )IsRadio ()bool {return _aegcb .GetType ()==ButtonTypeRadio };var (CourierName =_bgd .CourierName ;CourierBoldName =_bgd .CourierBoldName ;CourierObliqueName =_bgd .CourierObliqueName ;CourierBoldObliqueName =_bgd .CourierBoldObliqueName ;
HelveticaName =_bgd .HelveticaName ;HelveticaBoldName =_bgd .HelveticaBoldName ;HelveticaObliqueName =_bgd .HelveticaObliqueName ;HelveticaBoldObliqueName =_bgd .HelveticaBoldObliqueName ;SymbolName =_bgd .SymbolName ;ZapfDingbatsName =_bgd .ZapfDingbatsName ;
TimesRomanName =_bgd .TimesRomanName ;TimesBoldName =_bgd .TimesBoldName ;TimesItalicName =_bgd .TimesItalicName ;TimesBoldItalicName =_bgd .TimesBoldItalicName ;);
// ToPdfObject returns the PDF representation of the shading pattern.
func (_ddddb *PdfShadingPattern )ToPdfObject ()_egg .PdfObject {_ddddb .PdfPattern .ToPdfObject ();_dabaef :=_ddddb .getDict ();if _ddddb .Shading !=nil {_dabaef .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_ddddb .Shading .ToPdfObject ());};if _ddddb .Matrix !=nil {_dabaef .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_ddddb .Matrix );
};if _ddddb .ExtGState !=nil {_dabaef .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_ddddb .ExtGState );};return _ddddb ._fgec ;};
// BaseFont returns the font's "BaseFont" field.
func (_afa *PdfFont )BaseFont ()string {return _afa .baseFields ()._dgfdc };
// SetColorSpace sets `r` colorspace object to `colorspace`.
func (_ddca *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_ddca ._dbbbd =colorspace ;};
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
func (_ageb *PdfColorspaceDeviceN )GetNumComponents ()int {return _ageb .ColorantNames .Len ()};func (_bagf *PdfReader )newPdfActionGotoEFromDict (_fac *_egg .PdfObjectDictionary )(*PdfActionGoToE ,error ){_fca ,_feg :=_fgb (_fac .Get ("\u0046"));if _feg !=nil {return nil ,_feg ;
};return &PdfActionGoToE {D :_fac .Get ("\u0044"),NewWindow :_fac .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_fac .Get ("\u0054"),F :_fca },nil ;};func (_fag *PdfReader )newPdfActionThreadFromDict (_eedb *_egg .PdfObjectDictionary )(*PdfActionThread ,error ){_gdbc ,_geeg :=_fgb (_eedb .Get ("\u0046"));
if _geeg !=nil {return nil ,_geeg ;};return &PdfActionThread {D :_eedb .Get ("\u0044"),B :_eedb .Get ("\u0042"),F :_gdbc },nil ;};
// NewPdfAnnotationStamp returns a new stamp annotation.
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_gffa :=NewPdfAnnotation ();_bcc :=&PdfAnnotationStamp {};_bcc .PdfAnnotation =_gffa ;_bcc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gffa .SetContext (_bcc );return _bcc ;};
// OutlineItem represents a PDF outline item dictionary (Table 153 - pp. 376 - 377).
type OutlineItem struct{Title string `json:"title"`;Dest OutlineDest `json:"dest"`;Entries []*OutlineItem `json:"entries,omitempty"`;};
// SetCatalogMetadata sets the catalog metadata (XMP) stream object.
func (_cdggge *PdfWriter )SetCatalogMetadata (meta _egg .PdfObject )error {if meta ==nil {_cdggge ._acea .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_ggaa ,_dddcaf :=_egg .GetStream (meta );if !_dddcaf {return _gd .New ("\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u006d\u0065\u0074\u0061\u0064a\u0074\u0061\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0061\u0020\u0076\u0061\u006c\u0069\u0064\u0020\u0073t\u0072\u0065\u0061\u006d");
};_cdggge .addObject (_ggaa );_cdggge ._acea .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_ggaa );return nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_fbabg *PdfShadingType6 )ToPdfObject ()_egg .PdfObject {_fbabg .PdfShading .ToPdfObject ();_cbdda ,_afgb :=_fbabg .getShadingDict ();if _afgb !=nil {_bag .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
return nil ;};if _fbabg .BitsPerCoordinate !=nil {_cbdda .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_fbabg .BitsPerCoordinate );};if _fbabg .BitsPerComponent !=nil {_cbdda .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fbabg .BitsPerComponent );
};if _fbabg .BitsPerFlag !=nil {_cbdda .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_fbabg .BitsPerFlag );};if _fbabg .Decode !=nil {_cbdda .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_fbabg .Decode );};if _fbabg .Function !=nil {if len (_fbabg .Function )==1{_cbdda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fbabg .Function [0].ToPdfObject ());
}else {_fgffga :=_egg .MakeArray ();for _ ,_fabfb :=range _fbabg .Function {_fgffga .Append (_fabfb .ToPdfObject ());};_cbdda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fgffga );};};return _fbabg ._cfdbd ;};
// PdfFont represents an underlying font structure which can be of type:
// - Type0
// - Type1
// - TrueType
// etc.
type PdfFont struct{_edde pdfFont };func _aagbg ()string {_cgag .Lock ();defer _cgag .Unlock ();_fgdb :=_ace .GetLicenseKey ();if len (_bdbde )> 0&&(_fgdb .IsLicensed ()||_debadf ){return _bdbde ;};return _f .Sprintf ("\u0055\u006e\u0069Do\u0063\u0020\u0076\u0025\u0073\u0020\u0028\u0025\u0073)\u0020-\u0020h\u0074t\u0070\u003a\u002f\u002f\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f",_dceb (),_fgdb .TypeToString ());
};
// DefaultFont returns the default font, which is currently the built in Helvetica.
func DefaultFont ()*PdfFont {_cfbb ,_eged :=_bgd .NewStdFontByName (HelveticaName );if !_eged {panic ("\u0048\u0065lv\u0065\u0074\u0069c\u0061\u0020\u0073\u0068oul\u0064 a\u006c\u0077\u0061\u0079\u0073\u0020\u0062e \u0061\u0076\u0061\u0069\u006c\u0061\u0062l\u0065");
};_gagae :=_egaa (_cfbb );return &PdfFont {_edde :&_gagae };};func _eecfg (_bffdc *_egg .PdfObjectArray )(float64 ,error ){_dbad ,_bbgba :=_bffdc .ToFloat64Array ();if _bbgba !=nil {_bag .Log .Debug ("\u0042\u0061\u0064\u0020\u004d\u0061\u0074\u0074\u0065\u0020\u0061\u0072\u0072\u0061\u0079:\u0020m\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_bffdc ,_bbgba );
};switch len (_dbad ){case 1:return _dbad [0],nil ;case 3:_eabbe :=PdfColorspaceDeviceRGB {};_fecfb ,_dgdbab :=_eabbe .ColorFromFloats (_dbad );if _dgdbab !=nil {return 0.0,_dgdbab ;};return _fecfb .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_acebe :=PdfColorspaceDeviceCMYK {};
_ccec ,_cfecd :=_acebe .ColorFromFloats (_dbad );if _cfecd !=nil {return 0.0,_cfecd ;};_ggfdd ,_cfecd :=_acebe .ColorToRGB (_ccec .(*PdfColorDeviceCMYK ));if _cfecd !=nil {return 0.0,_cfecd ;};return _ggfdd .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;
};_bbgba =_gd .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_bag .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_bffdc ,_bbgba );
return 0.0,_bbgba ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_cgeg *PdfColorspaceDeviceRGB )ToPdfObject ()_egg .PdfObject {return _egg .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};
// AddPage adds a page to the PDF file. The new page should be an indirect object.
func (_baefb *PdfWriter )AddPage (page *PdfPage )error {const _bfeef ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_cceebc (page );_ecbcb :=page .ToPdfObject ();_bag .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
_bag .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_ecbcb );_gdbce ,_fbgadb :=_egg .GetIndirect (_ecbcb );if !_fbgadb {return _gd .New ("\u0070\u0061\u0067\u0065\u0020\u0073h\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0069\u006ed\u0069\u0072\u0065\u0063\u0074\u0020\u006fb\u006a\u0065\u0063\u0074");
};_bag .Log .Trace ("\u0025\u0073",_gdbce );_bag .Log .Trace ("\u0025\u0073",_gdbce .PdfObject );_dfbaa ,_fbgadb :=_egg .GetDict (_gdbce .PdfObject );if !_fbgadb {return _gd .New ("\u0070\u0061\u0067e \u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0073\u0068o\u0075l\u0064 \u0062e\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};_fbbe ,_fbgadb :=_egg .GetName (_dfbaa .Get ("\u0054\u0079\u0070\u0065"));if !_fbgadb {return _f .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u0020\u0054y\u0070\u0065\u0020\u006b\u0065\u0079\u0020\u0077\u0069t\u0068\u0020\u0061\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006f\u0066\u0020t\u0079\u0070\u0065\u0020\u006e\u0061m\u0065\u0020\u0028%\u0054\u0029",_dfbaa .Get ("\u0054\u0079\u0070\u0065"));
};if _fbbe .String ()!="\u0050\u0061\u0067\u0065"{return _gd .New ("\u0066\u0069e\u006c\u0064\u0020\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020\u0050\u0061\u0067\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069re\u0064\u0029");};_edceb :=[]_egg .PdfObjectName {"\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s","\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078","\u0043r\u006f\u0070\u0042\u006f\u0078","\u0052\u006f\u0074\u0061\u0074\u0065"};
_bbge ,_cade :=_egg .GetIndirect (_dfbaa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_bag .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_dfbaa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_cade );
for _cade {_bag .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_bbge );_dffbd ,_ceafgg :=_egg .GetDict (_bbge .PdfObject );if !_ceafgg {return _gd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
};for _ ,_caff :=range _edceb {_bag .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_caff );if _dfbaa .Get (_caff )!=nil {_bag .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
};if _ebaeb :=_dffbd .Get (_caff );_ebaeb !=nil {_bag .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_caff );_dfbaa .Set (_caff ,_ebaeb );};};_bbge ,_cade =_egg .GetIndirect (_dffbd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
_bag .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_dffbd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_bag .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");
_dfbaa .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_baefb ._gfbe );_gdbce .PdfObject =_dfbaa ;_beefe ,_fbgadb :=_egg .GetDict (_baefb ._gfbe .PdfObject );if !_fbgadb {return _gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0020(\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0029");
};_faacac ,_fbgadb :=_egg .GetArray (_beefe .Get ("\u004b\u0069\u0064\u0073"));if !_fbgadb {return _gd .New ("\u0069\u006ev\u0061\u006c\u0069\u0064 \u0050\u0061g\u0065\u0073\u0020\u004b\u0069\u0064\u0073\u0020o\u0062\u006a\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079\u0029");
};_faacac .Append (_gdbce );_baefb ._fcdab [_dfbaa ]=struct{}{};_gdgaeg ,_fbgadb :=_egg .GetInt (_beefe .Get ("\u0043\u006f\u0075n\u0074"));if !_fbgadb {return _gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u0050\u0061\u0067e\u0073\u0020\u0043\u006fu\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0029");
};*_gdgaeg =*_gdgaeg +1;if page ._gcfcb ==nil {_gceee :=_ace .Track (_baefb ._fbgdb ,_bfeef );if _gceee !=nil {return _gceee ;};}else {_egcfg :=_ace .Track (page ._gcfcb ._faeea ,_bfeef );if _egcfg !=nil {return _egcfg ;};};_baefb .addObject (_gdbce );
_bcfcf :=_baefb .addObjects (_dfbaa );if _bcfcf !=nil {return _bcfcf ;};return nil ;};
// GetAlphabet returns a map of the runes in `text` and their frequencies.
func GetAlphabet (text string )map[rune ]int {_dadgc :=map[rune ]int {};for _ ,_gebea :=range text {_dadgc [_gebea ]++;};return _dadgc ;};
// ImageToGray returns a new grayscale image based on the passed in RGB image.
func (_gcgb *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_gd .New ("\u0070\u0072\u006f\u0076\u0069\u0064e\u0064\u0020\u0069\u006d\u0061\u0067\u0065\u0020\u0069\u0073\u0020\u006e\u006ft\u0020\u0061\u0020\u0044\u0065\u0076\u0069c\u0065\u0052\u0047\u0042");
};_fcfg ,_cfff :=_eg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fgggb ,img ._abfae );if _cfff !=nil {return img ,_cfff ;};_dbab ,_cfff :=_eg .GrayConverter .Convert (_fcfg );if _cfff !=nil {return img ,_cfff ;
};return _cggba (_dbab .Base ()),nil ;};type pdfFontType0 struct{fontCommon ;_ebdc *_egg .PdfIndirectObject ;_bfddc _ef .TextEncoder ;Encoding _egg .PdfObject ;DescendantFont *PdfFont ;_fcffd *_ga .CMap ;};
// PdfAnnotationScreen represents Screen annotations.
// (Section 12.5.6.18).
type PdfAnnotationScreen struct{*PdfAnnotation ;T _egg .PdfObject ;MK _egg .PdfObject ;A _egg .PdfObject ;AA _egg .PdfObject ;};
// AddExtGState add External Graphics State (GState). The gsDict can be specified
// either directly as a dictionary or an indirect object containing a dictionary.
func (_cbfac *PdfPageResources )AddExtGState (gsName _egg .PdfObjectName ,gsDict _egg .PdfObject )error {if _cbfac .ExtGState ==nil {_cbfac .ExtGState =_egg .MakeDict ();};_dadee :=_cbfac .ExtGState ;_agad ,_ccgd :=_egg .TraceToDirectObject (_dadee ).(*_egg .PdfObjectDictionary );
if !_ccgd {_bag .Log .Debug ("\u0045\u0078\u0074\u0047\u0053\u0074\u0061\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020e\u0072r\u006f\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u002f\u0025\u0054\u0029",_dadee ,_egg .TraceToDirectObject (_dadee ));
return _egg .ErrTypeError ;};_agad .Set (gsName ,gsDict );return nil ;};func (_edff *pdfFontSimple )getFontEncoding ()(_bdbg string ,_cfffdf map[_ef .CharCode ]_ef .GlyphName ,_fccd error ){_bdbg ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";
if _ggadf ,_egffd :=_fgefg [_edff ._dgfdc ];_egffd {_bdbg =_ggadf ;}else if _edff .fontFlags ()&_eeeef !=0{for _ccgcc ,_bdgc :=range _fgefg {if _fc .Contains (_edff ._dgfdc ,_ccgcc ){_bdbg =_bdgc ;break ;};};};if _edff .Encoding ==nil {return _bdbg ,nil ,nil ;
};switch _daafc :=_edff .Encoding .(type ){case *_egg .PdfObjectName :return string (*_daafc ),nil ,nil ;case *_egg .PdfObjectDictionary :_dgeb ,_ebbc :=_egg .GetName (_daafc .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
if _ebbc {_bdbg =_dgeb .String ();};if _bbeaf :=_daafc .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_bbeaf !=nil {_beceb ,_debbc :=_egg .GetArray (_bbeaf );if !_debbc {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0042a\u0064\u0020\u0066on\u0074\u0020\u0065\u006e\u0063\u006fd\u0069\u006e\u0067\u0020\u0064\u0069\u0063\u0074\u003d\u0025\u002b\u0076\u0020\u0044\u0069f\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073=\u0025\u0054",_daafc ,_daafc .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));
return "",nil ,_egg .ErrTypeError ;};_cfffdf ,_fccd =_ef .FromFontDifferences (_beceb );};return _bdbg ,_cfffdf ,_fccd ;default:_bag .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u006e\u0061\u006d\u0065\u0020\u006f\u0072\u0020\u0064\u0069\u0063t\u0020\u0028\u0025\u0054\u0029\u0020\u0025\u0073",_edff .Encoding ,_edff .Encoding );
return "",nil ,_egg .ErrTypeError ;};};type pdfCIDFontType2 struct{fontCommon ;_gcfdg *_egg .PdfIndirectObject ;_bceaf _ef .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// Dictionary that defines the character collection of the CIDFont (required).
// See Table 116.
CIDSystemInfo *_egg .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _egg .PdfObject ;W _egg .PdfObject ;DW2 _egg .PdfObject ;W2 _egg .PdfObject ;
// CIDs to glyph indices mapping (optional).
CIDToGIDMap _egg .PdfObject ;_fafe map[_ef .CharCode ]float64 ;_bgec float64 ;_beec map[rune ]int ;};func _facdg (_efdd _egg .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_fcaeg :=&PdfColorspaceDeviceNAttributes {};var _cfbe *_egg .PdfObjectDictionary ;
switch _fdgfe :=_efdd .(type ){case *_egg .PdfIndirectObject :_fcaeg ._cdgc =_fdgfe ;var _ggbc bool ;_cfbe ,_ggbc =_fdgfe .PdfObject .(*_egg .PdfObjectDictionary );if !_ggbc {_bag .Log .Error ("\u0044\u0065\u0076\u0069c\u0065\u004e\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065 \u0074\u0079\u0070\u0065\u0020\u0065\u0072r\u006f\u0072");
return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};case *_egg .PdfObjectDictionary :_cfbe =_fdgfe ;case *_egg .PdfObjectReference :_gddcg :=_fdgfe .Resolve ();return _facdg (_gddcg );default:_bag .Log .Error ("\u0044\u0065\u0076\u0069c\u0065\u004e\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065 \u0074\u0079\u0070\u0065\u0020\u0065\u0072r\u006f\u0072");
return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bgdg :=_cfbe .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_bgdg !=nil {_dafga ,_abeef :=_egg .TraceToDirectObject (_bgdg ).(*_egg .PdfObjectName );if !_abeef {_bag .Log .Error ("\u0044\u0065vi\u0063\u0065\u004e \u0061\u0074\u0074\u0072ibu\u0074e \u0053\u0075\u0062\u0074\u0079\u0070\u0065 t\u0079\u0070\u0065\u0020\u0065\u0072\u0072o\u0072");
return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_fcaeg .Subtype =_dafga ;};if _cbee :=_cfbe .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_cbee !=nil {_fcaeg .Colorants =_cbee ;};if _edfef :=_cfbe .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");
_edfef !=nil {_fcaeg .Process =_edfef ;};if _gddeb :=_cfbe .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_gddeb !=nil {_fcaeg .MixingHints =_gddeb ;};return _fcaeg ,nil ;};
// CustomKeys returns all custom info keys as list.
func (_edgee *PdfInfo )CustomKeys ()[]string {if _edgee ._eggg ==nil {return nil ;};_gcdb :=make ([]string ,len (_edgee ._eggg .Keys ()));for _ ,_dbda :=range _edgee ._eggg .Keys (){_gcdb =append (_gcdb ,_dbda .String ());};return _gcdb ;};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_abede *PdfOutlineItem )ToPdfObject ()_egg .PdfObject {_fdebf :=_abede ._gfcb ;_dfeag :=_fdebf .PdfObject .(*_egg .PdfObjectDictionary );_dfeag .Set ("\u0054\u0069\u0074l\u0065",_abede .Title );if _abede .A !=nil {_dfeag .Set ("\u0041",_abede .A );
};if _ceaaf :=_dfeag .Get ("\u0053\u0045");_ceaaf !=nil {_dfeag .Remove ("\u0053\u0045");};if _abede .C !=nil {_dfeag .Set ("\u0043",_abede .C );};if _abede .Dest !=nil {_dfeag .Set ("\u0044\u0065\u0073\u0074",_abede .Dest );};if _abede .F !=nil {_dfeag .Set ("\u0046",_abede .F );
};if _abede .Count !=nil {_dfeag .Set ("\u0043\u006f\u0075n\u0074",_egg .MakeInteger (*_abede .Count ));};if _abede .Next !=nil {_dfeag .Set ("\u004e\u0065\u0078\u0074",_abede .Next .ToPdfObject ());};if _abede .First !=nil {_dfeag .Set ("\u0046\u0069\u0072s\u0074",_abede .First .ToPdfObject ());
};if _abede .Prev !=nil {_dfeag .Set ("\u0050\u0072\u0065\u0076",_abede .Prev .GetContext ().GetContainingPdfObject ());};if _abede .Last !=nil {_dfeag .Set ("\u004c\u0061\u0073\u0074",_abede .Last .GetContext ().GetContainingPdfObject ());};if _abede .Parent !=nil {_dfeag .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_abede .Parent .GetContext ().GetContainingPdfObject ());
};return _fdebf ;};
// ToPdfObject implements interface PdfModel.
func (_egbd *PdfAnnotationPolygon )ToPdfObject ()_egg .PdfObject {_egbd .PdfAnnotation .ToPdfObject ();_eeg :=_egbd ._cef ;_cge :=_eeg .PdfObject .(*_egg .PdfObjectDictionary );_egbd .PdfAnnotationMarkup .appendToPdfDictionary (_cge );_cge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));
_cge .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_egbd .Vertices );_cge .SetIfNotNil ("\u004c\u0045",_egbd .LE );_cge .SetIfNotNil ("\u0042\u0053",_egbd .BS );_cge .SetIfNotNil ("\u0049\u0043",_egbd .IC );_cge .SetIfNotNil ("\u0042\u0045",_egbd .BE );
_cge .SetIfNotNil ("\u0049\u0054",_egbd .IT );_cge .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_egbd .Measure );return _eeg ;};
// ToPdfObject implements interface PdfModel.
func (_ecf *PdfActionGoTo3DView )ToPdfObject ()_egg .PdfObject {_ecf .PdfAction .ToPdfObject ();_fdc :=_ecf ._bf ;_cb :=_fdc .PdfObject .(*_egg .PdfObjectDictionary );_cb .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeGoTo3DView )));_cb .SetIfNotNil ("\u0054\u0041",_ecf .TA );
_cb .SetIfNotNil ("\u0056",_ecf .V );return _fdc ;};
// PdfActionNamed represents a named action.
type PdfActionNamed struct{*PdfAction ;N _egg .PdfObject ;};
// GetRevisionNumber returns the version of the current Pdf document
func (_abafb *PdfReader )GetRevisionNumber ()int {return _abafb ._dafgab .GetRevisionNumber ()};
// Encoder returns the font's text encoder.
func (_faea *pdfFontSimple )Encoder ()_ef .TextEncoder {if _faea ._cbdegf !=nil {return _faea ._cbdegf ;};if _faea ._cdee !=nil {return _faea ._cdee ;};_ddee ,_ :=_ef .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );
return _ddee ;};func (_edgfd *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _edgfd ._bgacg ==nil &&_edgfd .DescendantFont !=nil {return _edgfd .DescendantFont .FontDescriptor ();};return _edgfd ._bgacg ;};
// SetAction sets the PDF action for the annotation link.
func (_efda *PdfAnnotationLink )SetAction (action *PdfAction ){_efda ._fdb =action ;if action ==nil {_efda .A =nil ;};};
// GetRevision returns the specific version of the PdfReader for the current Pdf document
func (_ccfg *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_ecdba :=_ccfg ._dafgab .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _ecdba {return nil ,_gd .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072");
};if revisionNumber ==_ecdba {return _ccfg ,nil ;};if _ccfg ._acad [revisionNumber ]!=nil {return _ccfg ._acad [revisionNumber ],nil ;};_eedgc :=_ccfg ;for _dbgc :=_ecdba -1;_dbgc >=revisionNumber ;_dbgc --{_dceec ,_gfbf :=_eedgc .GetPreviousRevision ();
if _gfbf !=nil {return nil ,_gfbf ;};_ccfg ._acad [_dbgc ]=_dceec ;_eedgc =_dceec ;};return _eedgc ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_ebe *PdfAnnotationRichMedia )ToPdfObject ()_egg .PdfObject {_ebe .PdfAnnotation .ToPdfObject ();_efea :=_ebe ._cef ;_fdg :=_efea .PdfObject .(*_egg .PdfObjectDictionary );_fdg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));
_fdg .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_ebe .RichMediaSettings );_fdg .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_ebe .RichMediaContent );
return _efea ;};
// ParserMetadata gets the parser metadata.
func (_ddgaa *CompliancePdfReader )ParserMetadata ()_egg .ParserMetadata {if _ddgaa ._fgea ==(_egg .ParserMetadata {}){_ddgaa ._fgea ,_ =_ddgaa ._dafgab .ParserMetadata ();};return _ddgaa ._fgea ;};
// PdfColorspaceSpecialIndexed is an indexed color space is a lookup table, where the input element
// is an index to the lookup table and the output is a color defined in the lookup table in the Base
// colorspace.
// [/Indexed base hival lookup]
type PdfColorspaceSpecialIndexed struct{Base PdfColorspace ;HiVal int ;Lookup _egg .PdfObject ;_defc []byte ;_ceed *_egg .PdfIndirectObject ;};func (_daae *PdfReader )newPdfAnnotationSquareFromDict (_acfd *_egg .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_ffbf :=PdfAnnotationSquare {};
_aabd ,_cbaf :=_daae .newPdfAnnotationMarkupFromDict (_acfd );if _cbaf !=nil {return nil ,_cbaf ;};_ffbf .PdfAnnotationMarkup =_aabd ;_ffbf .BS =_acfd .Get ("\u0042\u0053");_ffbf .IC =_acfd .Get ("\u0049\u0043");_ffbf .BE =_acfd .Get ("\u0042\u0045");_ffbf .RD =_acfd .Get ("\u0052\u0044");
return &_ffbf ,nil ;};
// GetRuneMetrics returns the char metrics for a rune.
// TODO(peterwilliams97) There is nothing callers can do if no CharMetrics are found so we might as
// well give them 0 width. There is no need for the bool return.
func (_gfdcg *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_bgbgd :=_gfdcg .actualFont ();if _bgbgd ==nil {_bag .Log .Debug ("ER\u0052\u004fR\u003a\u0020\u0047\u0065\u0074\u0047\u006c\u0079\u0070h\u0043\u0068\u0061\u0072\u004d\u0065\u0074\u0072\u0069\u0063\u0073\u0020\u004e\u006f\u0074\u0020\u0069\u006d\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020f\u006fr\u0020\u0066\u006f\u006e\u0074\u0020\u0074\u0079p\u0065=\u0025\u0023T",_gfdcg ._edde );
return _bgd .CharMetrics {},false ;};if _aaag ,_dcdga :=_bgbgd .GetRuneMetrics (r );_dcdga {return _aaag ,true ;};if _gcdf ,_dgdd :=_gfdcg .GetFontDescriptor ();_dgdd ==nil &&_gcdf !=nil {return _bgd .CharMetrics {Wx :_gcdf ._eedab },true ;};_bag .Log .Debug ("\u0047\u0065\u0074\u0047\u006c\u0079\u0070h\u0043\u0068\u0061r\u004d\u0065\u0074\u0072i\u0063\u0073\u003a\u0020\u004e\u006f\u0020\u006d\u0065\u0074\u0072\u0069\u0063\u0073\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_gfdcg );
return _bgd .CharMetrics {},false ;};
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};func _cceebc (_fgabfa *PdfPage ){_cbadb :=_ace .GetLicenseKey ();if _cbadb !=nil &&_cbadb .IsLicensed (){return ;};_eadcb :=_egg .PdfObjectName ("\u0055\u0046\u0031");
if !_fgabfa .Resources .HasFontByName (_eadcb ){_fgabfa .Resources .SetFontByName (_eadcb ,DefaultFont ().ToPdfObject ());};var _ccdbb []string ;_ccdbb =append (_ccdbb ,"\u0071");_ccdbb =append (_ccdbb ,"\u0042\u0054");_ccdbb =append (_ccdbb ,_f .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_eadcb .String ()));
_ccdbb =append (_ccdbb ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");_ccdbb =append (_ccdbb ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_affbf :="\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064\u0020\u0055\u006e\u0069\u0044o\u0063\u0020\u002d\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u006c\u0069\u0063e\u006e\u0073\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070\u0073:/\u002f\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f";
_ccdbb =append (_ccdbb ,_f .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_affbf ));_ccdbb =append (_ccdbb ,"\u0045\u0054");_ccdbb =append (_ccdbb ,"\u0051");_gaaae :=_fc .Join (_ccdbb ,"\u000a");_fgabfa .AddContentStreamByString (_gaaae );_fgabfa .ToPdfObject ();
};
// Write writes the Appender output to io.Writer.
// It can only be called once and further invocations will result in an error.
func (_ffde *PdfAppender )Write (w _dag .Writer )error {if _ffde ._faab {return _gd .New ("\u0061\u0070\u0070\u0065\u006e\u0064\u0065\u0072\u0020\u0077\u0072\u0069\u0074e\u0020\u0063\u0061\u006e\u0020\u006fn\u006c\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0076\u006f\u006b\u0065\u0064 \u006f\u006e\u0063\u0065");
};_fbcd :=NewPdfWriter ();_adfb ,_bbga :=_egg .GetDict (_fbcd ._gfbe );if !_bbga {return _gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0020(\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0029");
};_bff ,_bbga :=_adfb .Get ("\u004b\u0069\u0064\u0073").(*_egg .PdfObjectArray );if !_bbga {return _gd .New ("\u0069\u006ev\u0061\u006c\u0069\u0064 \u0050\u0061g\u0065\u0073\u0020\u004b\u0069\u0064\u0073\u0020o\u0062\u006a\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079\u0029");
};_cffbd ,_bbga :=_adfb .Get ("\u0043\u006f\u0075n\u0074").(*_egg .PdfObjectInteger );if !_bbga {return _gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u0050\u0061\u0067e\u0073\u0020\u0043\u006fu\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0029");
};_dfc :=_ffde ._bgaa ._dafgab ;_caf :=_dfc .GetTrailer ();if _caf ==nil {return _gd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_gaeg ,_bbga :=_egg .GetIndirect (_caf .Get ("\u0052\u006f\u006f\u0074"));if !_bbga {return _gd .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");
};_abeea ,_bbga :=_egg .GetDict (_gaeg );if !_bbga {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0028\u0072\u006f\u006f\u0074\u0020\u0025\u0071\u0029\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u0020\u0025\u0073\u0029",_gaeg ,*_caf );
return _gd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_gfcf :=range _abeea .Keys (){if _fbcd ._acea .Get (_gfcf )==nil {_gcef :=_abeea .Get (_gfcf );_fbcd ._acea .Set (_gfcf ,_gcef );};};if _ffde ._aeec !=nil {_fbcd ._acea .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_ffde ._aeec .ToPdfObject ());
_ffde .updateObjectsDeep (_ffde ._aeec .ToPdfObject (),nil );};if _ffde ._dgdc !=nil {_ffde .updateObjectsDeep (_ffde ._dgdc .ToPdfObject (),nil );_fbcd ._acea .Set ("\u0044\u0053\u0053",_ffde ._dgdc .GetContainingPdfObject ());};if _ffde ._aga !=nil {_fbcd ._acea .Set ("\u0050\u0065\u0072m\u0073",_ffde ._aga .ToPdfObject ());
_ffde .updateObjectsDeep (_ffde ._aga .ToPdfObject (),nil );};if _fbcd ._dacce .Major < 2{_fbcd .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);_fbcd .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _fgee ,_dbea :=_egg .GetDict (_caf .Get ("\u0049\u006e\u0066\u006f"));
_dbea {if _ebgd ,_dabae :=_egg .GetDict (_fbcd ._efage );_dabae {for _ ,_eabe :=range _fgee .Keys (){if _ebgd .Get (_eabe )==nil {_ebgd .Set (_eabe ,_fgee .Get (_eabe ));};};};};if _ffde ._gaagg !=nil {_fbcd ._efage =_egg .MakeIndirectObject (_ffde ._gaagg .ToPdfObject ());
};_ffde .addNewObject (_fbcd ._efage );_ffde .addNewObject (_fbcd ._egad );_agdg :=false ;if len (_ffde ._bgaa .PageList )!=len (_ffde ._beac ){_agdg =true ;}else {for _efbf :=range _ffde ._bgaa .PageList {switch {case _ffde ._beac [_efbf ]==_ffde ._bgaa .PageList [_efbf ]:case _ffde ._beac [_efbf ]==_ffde .Reader .PageList [_efbf ]:default:_agdg =true ;
};if _agdg {break ;};};};if _agdg {_ffde .updateObjectsDeep (_fbcd ._gfbe ,nil );}else {_ffde ._eecgg [_fbcd ._gfbe ]=struct{}{};};_fbcd ._gfbe .ObjectNumber =_ffde .Reader ._cgcga .ObjectNumber ;_ffde ._eegc [_fbcd ._gfbe ]=_ffde .Reader ._cgcga .ObjectNumber ;
_fdca :=[]_egg .PdfObjectName {"\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s","\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078","\u0043r\u006f\u0070\u0042\u006f\u0078","\u0052\u006f\u0074\u0061\u0074\u0065"};for _ ,_ddff :=range _ffde ._beac {_eaad :=_ddff .ToPdfObject ();
*_cffbd =*_cffbd +1;if _fdcb ,_efgc :=_eaad .(*_egg .PdfIndirectObject );_efgc &&_fdcb .GetParser ()==_ffde ._bgaa ._dafgab {_bff .Append (&_fdcb .PdfObjectReference );continue ;};if _afffd ,_adca :=_egg .GetDict (_eaad );_adca {_gfbbf ,_bfbg :=_afffd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_egg .PdfIndirectObject );
for _bfbg {_bag .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gfbbf );_gfaf ,_cgfc :=_gfbbf .PdfObject .(*_egg .PdfObjectDictionary );if !_cgfc {return _gd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
};for _ ,_gabb :=range _fdca {_bag .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gabb );if _afffd .Get (_gabb )!=nil {_bag .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
};if _ecebc :=_gfaf .Get (_gabb );_ecebc !=nil {_bag .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gabb );_afffd .Set (_gabb ,_ecebc );};};_gfbbf ,_bfbg =_gfaf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_egg .PdfIndirectObject );
_bag .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gfaf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_afffd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fbcd ._gfbe );};_ffde .updateObjectsDeep (_eaad ,nil );
_bff .Append (_eaad );};if _ ,_effc :=_ffde ._cbe .Seek (0,_dag .SeekStart );_effc !=nil {return _effc ;};_faec :=make (map[SignatureHandler ]_dag .Writer );_eace :=_egg .MakeArray ();for _ ,_cfeb :=range _ffde ._dbbe {if _ecece ,_eecd :=_egg .GetIndirect (_cfeb );
_eecd {if _acfaf ,_aaeg :=_ecece .PdfObject .(*pdfSignDictionary );_aaeg {_bdfa :=*_acfaf ._ebdca ;var _fcfd error ;_faec [_bdfa ],_fcfd =_bdfa .NewDigest (_acfaf ._gbbba );if _fcfd !=nil {return _fcfd ;};_eace .Append (_egg .MakeInteger (0xfffff),_egg .MakeInteger (0xfffff));
};};};if _eace .Len ()> 0{_eace .Append (_egg .MakeInteger (0xfffff),_egg .MakeInteger (0xfffff));};for _ ,_dgaf :=range _ffde ._dbbe {if _ddcd ,_fgfe :=_egg .GetIndirect (_dgaf );_fgfe {if _bca ,_cddc :=_ddcd .PdfObject .(*pdfSignDictionary );_cddc {_bca .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_eace );
};};};_bgeg :=len (_faec )> 0;var _eee _dag .Reader =_ffde ._cbe ;if _bgeg {_bedg :=make ([]_dag .Writer ,0,len (_faec ));for _ ,_eefcg :=range _faec {_bedg =append (_bedg ,_eefcg );};_eee =_dag .TeeReader (_ffde ._cbe ,_dag .MultiWriter (_bedg ...));};
_eage ,_gcfb :=_dag .Copy (w ,_eee );if _gcfb !=nil {return _gcfb ;};if len (_ffde ._dbbe )==0{return nil ;};_fbcd ._ddfee =_eage ;_fbcd .ObjNumOffset =_ffde ._gfdcd ;_fbcd ._gabaca =true ;_fbcd ._ecfgc =_ffde ._beed ;_fbcd ._gccgfe =_ffde ._gfbc ;_fbcd ._ggdad =_ffde ._bbba ;
_fbcd ._dacce =_ffde ._bgaa .PdfVersion ();_fbcd ._fcgfe =_ffde ._eegc ;_fbcd ._agdag =_ffde ._daac .GetCrypter ();_fbcd ._afcc =_ffde ._daac .GetEncryptObj ();_gfgg :=_ffde ._daac .GetXrefType ();if _gfgg !=nil {_bafcc :=*_gfgg ==_egg .XrefTypeObjectStream ;
_fbcd ._bfga =&_bafcc ;};_fbcd ._bacec =map[_egg .PdfObject ]struct{}{};_fbcd ._bbead =[]_egg .PdfObject {};for _ ,_ddad :=range _ffde ._dbbe {if _ ,_abdg :=_ffde ._eecgg [_ddad ];_abdg {continue ;};_fbcd .addObject (_ddad );};_afbfc :=w ;if _bgeg {_afbfc =_dd .NewBuffer (nil );
};if _ffde ._cbdd !=""&&_fbcd ._agdag ==nil {_fbcd .Encrypt ([]byte (_ffde ._cbdd ),[]byte (_ffde ._cbdd ),_ffde ._effa );};if _ccba :=_caf .Get ("\u0049\u0044");_ccba !=nil {if _gfgb ,_fcfe :=_egg .GetArray (_ccba );_fcfe {_fbcd ._aaea =_gfgb ;};};if _eaege :=_fbcd .Write (_afbfc );
_eaege !=nil {return _eaege ;};if _bgeg {_aac :=_afbfc .(*_dd .Buffer ).Bytes ();_cagd :=_egg .MakeArray ();var _eabg []*pdfSignDictionary ;var _bgdd int64 ;for _ ,_dffe :=range _fbcd ._bbead {if _dgfg ,_bgbgb :=_egg .GetIndirect (_dffe );_bgbgb {if _ggdfd ,_acg :=_dgfg .PdfObject .(*pdfSignDictionary );
_acg {_eabg =append (_eabg ,_ggdfd );_gaaga :=_ggdfd ._cagab +int64 (_ggdfd ._fcade );_cagd .Append (_egg .MakeInteger (_bgdd ),_egg .MakeInteger (_gaaga -_bgdd ));_bgdd =_ggdfd ._cagab +int64 (_ggdfd ._aabac );};};};_cagd .Append (_egg .MakeInteger (_bgdd ),_egg .MakeInteger (_eage +int64 (len (_aac ))-_bgdd ));
_gabc :=[]byte (_cagd .WriteString ());for _ ,_dfgfa :=range _eabg {_aefd :=int (_dfgfa ._cagab -_eage );for _febd :=_dfgfa ._dcfaa ;_febd < _dfgfa ._gbeab ;_febd ++{_aac [_aefd +_febd ]=' ';};_cdb :=_aac [_aefd +_dfgfa ._dcfaa :_aefd +_dfgfa ._gbeab ];
copy (_cdb ,_gabc );};var _bgcba int ;for _ ,_aaa :=range _eabg {_dbed :=int (_aaa ._cagab -_eage );_geff :=_aac [_bgcba :_dbed +_aaa ._fcade ];_agbd :=*_aaa ._ebdca ;_faec [_agbd ].Write (_geff );_bgcba =_dbed +_aaa ._aabac ;};for _ ,_fdfg :=range _eabg {_acdc :=_aac [_bgcba :];
_dedc :=*_fdfg ._ebdca ;_faec [_dedc ].Write (_acdc );};for _ ,_fbdad :=range _eabg {_adee :=int (_fbdad ._cagab -_eage );_efc :=*_fbdad ._ebdca ;_ffae :=_faec [_efc ];if _dfcf :=_efc .Sign (_fbdad ._gbbba ,_ffae );_dfcf !=nil {return _dfcf ;};_fbdad ._gbbba .ByteRange =_cagd ;
_gdac :=[]byte (_fbdad ._gbbba .Contents .WriteString ());for _cfbf :=_fbdad ._dcfaa ;_cfbf < _fbdad ._gbeab ;_cfbf ++{_aac [_adee +_cfbf ]=' ';};for _dgde :=_fbdad ._fcade ;_dgde < _fbdad ._aabac ;_dgde ++{_aac [_adee +_dgde ]=' ';};_edac :=_aac [_adee +_fbdad ._dcfaa :_adee +_fbdad ._gbeab ];
copy (_edac ,_gabc );_edac =_aac [_adee +_fbdad ._fcade :_adee +_fbdad ._aabac ];copy (_edac ,_gdac );};_dbdc :=_dd .NewBuffer (_aac );_ ,_gcfb =_dag .Copy (w ,_dbdc );if _gcfb !=nil {return _gcfb ;};};_ffde ._faab =true ;return nil ;};
// SetNamedDestinations sets the Dests entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_fdece *PdfWriter )SetNamedDestinations (dests _egg .PdfObject )error {if dests ==nil {return nil ;};_bag .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e");
_fdece ._acea .Set ("\u0044\u0065\u0073t\u0073",dests );return _fdece .addObjects (dests );};
// ToPdfObject returns a PDF object representation of the outline.
func (_bcecb *Outline )ToPdfObject ()_egg .PdfObject {return _bcecb .ToPdfOutline ().ToPdfObject ()};
// PdfReader represents a PDF file reader. It is a frontend to the lower level parsing mechanism and provides
// a higher level access to work with PDF structure and information, such as the page structure etc.
type PdfReader struct{_dafgab *_egg .PdfParser ;_bcccb _egg .PdfObject ;_cgcga *_egg .PdfIndirectObject ;_gbeagf *_egg .PdfObjectDictionary ;_abgbc []*_egg .PdfIndirectObject ;PageList []*PdfPage ;_fced int ;_eacf *_egg .PdfObjectDictionary ;_cccbg *PdfOutlineTreeNode ;
AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_eacd *Permissions ;_gcfcf map[*PdfReader ]*PdfReader ;_acad []*PdfReader ;_dabaf *modelManager ;_cede bool ;_gbabf map[_egg .PdfObject ]struct{};_eefb _dag .ReadSeeker ;_faeea string ;_gccee bool ;_ecbf *ReaderOpts ;
_gddafb bool ;};
// ToPdfObject implements interface PdfModel.
func (_gbed *PdfAnnotationHighlight )ToPdfObject ()_egg .PdfObject {_gbed .PdfAnnotation .ToPdfObject ();_eaac :=_gbed ._cef ;_gbea :=_eaac .PdfObject .(*_egg .PdfObjectDictionary );_gbed .PdfAnnotationMarkup .appendToPdfDictionary (_gbea );_gbea .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));
_gbea .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gbed .QuadPoints );return _eaac ;};
// ToPdfObject implements interface PdfModel.
func (_gaag *PdfBorderStyle )ToPdfObject ()_egg .PdfObject {_fgcf :=_egg .MakeDict ();if _gaag ._fffd !=nil {if _efdf ,_aabbg :=_gaag ._fffd .(*_egg .PdfIndirectObject );_aabbg {_efdf .PdfObject =_fgcf ;};};_fgcf .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));
if _gaag .W !=nil {_fgcf .Set ("\u0057",_egg .MakeFloat (*_gaag .W ));};if _gaag .S !=nil {_fgcf .Set ("\u0053",_egg .MakeName (_gaag .S .GetPdfName ()));};if _gaag .D !=nil {_fgcf .Set ("\u0044",_egg .MakeArrayFromIntegers (*_gaag .D ));};if _gaag ._fffd !=nil {return _gaag ._fffd ;
};return _fgcf ;};
// CharcodesToStrings returns the unicode strings corresponding to `charcodes`.
// The int returns are the number of strings and the number of unconvereted codes.
// NOTE: The number of strings returned is equal to the number of charcodes
func (_adgfb *PdfFont )CharcodesToStrings (charcodes []_ef .CharCode )([]string ,int ,int ){_cbgg :=_adgfb .baseFields ();_aefeb :=make ([]string ,0,len (charcodes ));_cdddd :=0;_aadce :=_adgfb .Encoder ();_beacc :=_cbgg ._bfbgf !=nil &&_adgfb .IsSimple ()&&_adgfb .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_fc .Contains (_cbgg ._bfbgf .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-");
if !_beacc &&_aadce !=nil {switch _eadg :=_aadce .(type ){case _ef .SimpleEncoder :_dagab :=_eadg .BaseName ();if _ ,_dffge :=_eefde [_dagab ];_dffge {for _ ,_edad :=range charcodes {if _abccg ,_fdbcf :=_aadce .CharcodeToRune (_edad );_fdbcf {_aefeb =append (_aefeb ,string (_abccg ));
}else {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0072u\u006e\u0065\u002e\u0020\u0063\u006f\u0064\u0065=\u0030x\u0025\u0030\u0034\u0078\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0073\u003d\u005b\u0025\u00200\u0034\u0078\u005d\u0020\u0043\u0049\u0044\u003d\u0025\u0074\u000a"+"\t\u0066\u006f\u006e\u0074=%\u0073\n\u0009\u0065\u006e\u0063\u006fd\u0069\u006e\u0067\u003d\u0025\u0073",_edad ,charcodes ,_cbgg .isCIDFont (),_adgfb ,_aadce );
_cdddd ++;_aefeb =append (_aefeb ,_ga .MissingCodeString );};};return _aefeb ,len (_aefeb ),_cdddd ;};};};for _ ,_bgee :=range charcodes {if _cbgg ._bfbgf !=nil {if _bgfe ,_aggbc :=_cbgg ._bfbgf .CharcodeToUnicode (_ga .CharCode (_bgee ));_aggbc {_aefeb =append (_aefeb ,_bgfe );
continue ;};};if _aadce !=nil {if _acag ,_begdb :=_aadce .CharcodeToRune (_bgee );_begdb {_aefeb =append (_aefeb ,string (_acag ));continue ;};};_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0072u\u006e\u0065\u002e\u0020\u0063\u006f\u0064\u0065=\u0030x\u0025\u0030\u0034\u0078\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0073\u003d\u005b\u0025\u00200\u0034\u0078\u005d\u0020\u0043\u0049\u0044\u003d\u0025\u0074\u000a"+"\t\u0066\u006f\u006e\u0074=%\u0073\n\u0009\u0065\u006e\u0063\u006fd\u0069\u006e\u0067\u003d\u0025\u0073",_bgee ,charcodes ,_cbgg .isCIDFont (),_adgfb ,_aadce );
_cdddd ++;_aefeb =append (_aefeb ,_ga .MissingCodeString );};if _cdddd !=0{_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0043\u006f\u0075\u006c\u0064\u006e\u0027\u0074\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0074\u006f\u0020u\u006e\u0069\u0063\u006f\u0064\u0065\u002e\u0020\u0055\u0073\u0069\u006e\u0067\u0020i\u006ep\u0075\u0074\u002e\u000a"+"\u0009\u006e\u0075\u006d\u0043\u0068\u0061\u0072\u0073\u003d\u0025d\u0020\u006e\u0075\u006d\u004d\u0069\u0073\u0073\u0065\u0073=\u0025\u0064\u000a"+"\u0009\u0066\u006f\u006e\u0074\u003d\u0025\u0073",len (charcodes ),_cdddd ,_adgfb );
};return _aefeb ,len (_aefeb ),_cdddd ;};func _facf (_ddceg []byte )[]byte {const _efgfb =52845;const _eecfc =22719;_fdgb :=55665;for _ ,_ebcef :=range _ddceg [:4]{_fdgb =(int (_ebcef )+_fdgb )*_efgfb +_eecfc ;};_dfcfc :=make ([]byte ,len (_ddceg )-4);
for _dddc ,_ccgaga :=range _ddceg [4:]{_dfcfc [_dddc ]=byte (int (_ccgaga )^_fdgb >>8);_fdgb =(int (_ccgaga )+_fdgb )*_efgfb +_eecfc ;};return _dfcfc ;};func (_fccgb *PdfWriter )writeXRefStreams (_gcdcd int ,_eeedc int64 )error {_ggcf :=_gcdcd +1;_fccgb ._ccceb [_ggcf ]=crossReference {Type :1,ObjectNumber :_ggcf ,Offset :_eeedc };
_dabgc :=_dd .NewBuffer (nil );_cbgfc :=_egg .MakeArray ();for _gddba :=0;_gddba <=_gcdcd ;{for ;_gddba <=_gcdcd ;_gddba ++{_gfcabc ,_bffce :=_fccgb ._ccceb [_gddba ];if _bffce &&(!_fccgb ._gabaca ||_fccgb ._gabaca &&(_gfcabc .Type ==1&&_gfcabc .Offset >=_fccgb ._ggdad ||_gfcabc .Type ==0)){break ;
};};var _gcdfcd int ;for _gcdfcd =_gddba +1;_gcdfcd <=_gcdcd ;_gcdfcd ++{_baegf ,_fbca :=_fccgb ._ccceb [_gcdfcd ];if _fbca &&(!_fccgb ._gabaca ||_fccgb ._gabaca &&(_baegf .Type ==1&&_baegf .Offset > _fccgb ._ggdad )){continue ;};break ;};_cbgfc .Append (_egg .MakeInteger (int64 (_gddba )),_egg .MakeInteger (int64 (_gcdfcd -_gddba )));
for _agged :=_gddba ;_agged < _gcdfcd ;_agged ++{_abda :=_fccgb ._ccceb [_agged ];switch _abda .Type {case 0:_bg .Write (_dabgc ,_bg .BigEndian ,byte (0));_bg .Write (_dabgc ,_bg .BigEndian ,uint32 (0));_bg .Write (_dabgc ,_bg .BigEndian ,uint16 (0xFFFF));
case 1:_bg .Write (_dabgc ,_bg .BigEndian ,byte (1));_bg .Write (_dabgc ,_bg .BigEndian ,uint32 (_abda .Offset ));_bg .Write (_dabgc ,_bg .BigEndian ,uint16 (_abda .Generation ));case 2:_bg .Write (_dabgc ,_bg .BigEndian ,byte (2));_bg .Write (_dabgc ,_bg .BigEndian ,uint32 (_abda .ObjectNumber ));
_bg .Write (_dabgc ,_bg .BigEndian ,uint16 (_abda .Index ));};};_gddba =_gcdfcd +1;};_eagde ,_ecdgfd :=_egg .MakeStream (_dabgc .Bytes (),_egg .NewFlateEncoder ());if _ecdgfd !=nil {return _ecdgfd ;};_eagde .ObjectNumber =int64 (_ggcf );_eagde .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0058\u0052\u0065\u0066"));
_eagde .PdfObjectDictionary .Set ("\u0057",_egg .MakeArray (_egg .MakeInteger (1),_egg .MakeInteger (4),_egg .MakeInteger (2)));_eagde .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_cbgfc );_eagde .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_egg .MakeInteger (int64 (_ggcf +1)));
_eagde .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_fccgb ._efage );_eagde .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_fccgb ._egad );if _fccgb ._gabaca &&_fccgb ._gccgfe > 0{_eagde .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_egg .MakeInteger (_fccgb ._gccgfe ));
};if _fccgb ._agdag !=nil {_eagde .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_fccgb ._afcc );};if _fccgb ._aaea ==nil &&_fccgb ._caddc !=""&&_fccgb ._bagaa !=""{_fccgb ._aaea =_egg .MakeArray (_egg .MakeHexString (_fccgb ._caddc ),_egg .MakeHexString (_fccgb ._bagaa ));
};if _fccgb ._aaea !=nil {_bag .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_fccgb ._aaea );_eagde .Set ("\u0049\u0044",_fccgb ._aaea );};_fccgb .writeObject (int (_eagde .ObjectNumber ),_eagde );return nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_edgd *PdfShadingType3 )ToPdfObject ()_egg .PdfObject {_edgd .PdfShading .ToPdfObject ();_feac ,_dcgfa :=_edgd .getShadingDict ();if _dcgfa !=nil {_bag .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
return nil ;};if _edgd .Coords !=nil {_feac .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_edgd .Coords );};if _edgd .Domain !=nil {_feac .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_edgd .Domain );};if _edgd .Function !=nil {if len (_edgd .Function )==1{_feac .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_edgd .Function [0].ToPdfObject ());
}else {_aeaeg :=_egg .MakeArray ();for _ ,_babdg :=range _edgd .Function {_aeaeg .Append (_babdg .ToPdfObject ());};_feac .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aeaeg );};};if _edgd .Extend !=nil {_feac .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_edgd .Extend );
};return _edgd ._cfdbd ;};
// ToPdfObject implements interface PdfModel.
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
func (_ebgf *PdfAnnotation )ToPdfObject ()_egg .PdfObject {_bbdgg :=_ebgf ._cef ;_gaac :=_bbdgg .PdfObject .(*_egg .PdfObjectDictionary );_gaac .Clear ();_gaac .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0041\u006e\u006eo\u0074"));_gaac .SetIfNotNil ("\u0052\u0065\u0063\u0074",_ebgf .Rect );
_gaac .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_ebgf .Contents );_gaac .SetIfNotNil ("\u0050",_ebgf .P );_gaac .SetIfNotNil ("\u004e\u004d",_ebgf .NM );_gaac .SetIfNotNil ("\u004d",_ebgf .M );_gaac .SetIfNotNil ("\u0046",_ebgf .F );
_gaac .SetIfNotNil ("\u0041\u0050",_ebgf .AP );_gaac .SetIfNotNil ("\u0041\u0053",_ebgf .AS );_gaac .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_ebgf .Border );_gaac .SetIfNotNil ("\u0043",_ebgf .C );_gaac .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_ebgf .StructParent );
_gaac .SetIfNotNil ("\u004f\u0043",_ebgf .OC );return _bbdgg ;};
// ToPdfObject implements interface PdfModel.
func (_fdd *PdfActionSetOCGState )ToPdfObject ()_egg .PdfObject {_fdd .PdfAction .ToPdfObject ();_gbdc :=_fdd ._bf ;_fea :=_gbdc .PdfObject .(*_egg .PdfObjectDictionary );_fea .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeSetOCGState )));_fea .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_fdd .State );
_fea .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_fdd .PreserveRB );return _gbdc ;};
// GetCerts returns the signature certificate chain.
func (_ceag *PdfSignature )GetCerts ()([]*_dg .Certificate ,error ){var _cfbea []func ()([]*_dg .Certificate ,error );switch _febge ,_ :=_egg .GetNameVal (_ceag .SubFilter );_febge {case "\u0061\u0064\u0062\u0065.p\u006b\u0063\u0073\u0037\u002e\u0064\u0065\u0074\u0061\u0063\u0068\u0065\u0064","\u0045\u0054\u0053\u0049.C\u0041\u0064\u0045\u0053\u002e\u0064\u0065\u0074\u0061\u0063\u0068\u0065\u0064":_cfbea =append (_cfbea ,_ceag .extractChainFromPKCS7 ,_ceag .extractChainFromCert );
case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_cfbea =append (_cfbea ,_ceag .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_cfbea =append (_cfbea ,_ceag .extractChainFromPKCS7 );
default:return nil ,_f .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_febge );};for _ ,_dgddb :=range _cfbea {_accaa ,_egcbb :=_dgddb ();if _egcbb !=nil {return nil ,_egcbb ;
};if len (_accaa )> 0{return _accaa ,nil ;};};return nil ,ErrSignNoCertificates ;};
// UpdateObject marks `obj` as updated and to be included in the following revision.
func (_gbdb *PdfAppender )UpdateObject (obj _egg .PdfObject ){_gbdb .replaceObject (obj ,obj );if _ ,_eebc :=_gbdb ._bdba [obj ];!_eebc {_gbdb ._dbbe =append (_gbdb ._dbbe ,obj );_gbdb ._bdba [obj ]=struct{}{};};};
// Encoder returns the font's text encoder.
func (_bbbc pdfCIDFontType2 )Encoder ()_ef .TextEncoder {return _bbbc ._bceaf };func (_bgeb *PdfReader )newPdfAnnotationMarkupFromDict (_cdga *_egg .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_cfe :=&PdfAnnotationMarkup {};if _cbgb :=_cdga .Get ("\u0054");
_cbgb !=nil {_cfe .T =_cbgb ;};if _gab :=_cdga .Get ("\u0050\u006f\u0070u\u0070");_gab !=nil {_bbca ,_gddc :=_gab .(*_egg .PdfIndirectObject );if !_gddc {if _ ,_afc :=_gab .(*_egg .PdfObjectNull );!_afc {return nil ,_gd .New ("p\u006f\u0070\u0075\u0070\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074\u0020t\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072ec\u0074\u0020\u006fb\u006ae\u0063\u0074");
};}else {_gbe ,_cdgae :=_bgeb .newPdfAnnotationFromIndirectObject (_bbca );if _cdgae !=nil {return nil ,_cdgae ;};if _gbe !=nil {_eafe ,_bab :=_gbe ._gcf .(*PdfAnnotationPopup );if !_bab {return nil ,_gd .New ("\u006f\u0062\u006ae\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0072\u0065\u0066\u0065\u0072\u0072\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0061\u0020\u0070\u006f\u0070\u0075\u0070\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e");
};_cfe .Popup =_eafe ;};};};if _caa :=_cdga .Get ("\u0043\u0041");_caa !=nil {_cfe .CA =_caa ;};if _egc :=_cdga .Get ("\u0052\u0043");_egc !=nil {_cfe .RC =_egc ;};if _bgfb :=_cdga .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");
_bgfb !=nil {_cfe .CreationDate =_bgfb ;};if _dbdfg :=_cdga .Get ("\u0049\u0052\u0054");_dbdfg !=nil {_cfe .IRT =_dbdfg ;};if _edbd :=_cdga .Get ("\u0053\u0075\u0062\u006a");_edbd !=nil {_cfe .Subj =_edbd ;};if _aeee :=_cdga .Get ("\u0052\u0054");_aeee !=nil {_cfe .RT =_aeee ;
};if _egf :=_cdga .Get ("\u0049\u0054");_egf !=nil {_cfe .IT =_egf ;};if _cfcg :=_cdga .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_cfcg !=nil {_cfe .ExData =_cfcg ;};return _cfe ,nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_gbeeg *PdfShadingType1 )ToPdfObject ()_egg .PdfObject {_gbeeg .PdfShading .ToPdfObject ();_fcage ,_gcba :=_gbeeg .getShadingDict ();if _gcba !=nil {_bag .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
return nil ;};if _gbeeg .Domain !=nil {_fcage .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gbeeg .Domain );};if _gbeeg .Matrix !=nil {_fcage .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gbeeg .Matrix );};if _gbeeg .Function !=nil {if len (_gbeeg .Function )==1{_fcage .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gbeeg .Function [0].ToPdfObject ());
}else {_daebdb :=_egg .MakeArray ();for _ ,_gceb :=range _gbeeg .Function {_daebdb .Append (_gceb .ToPdfObject ());};_fcage .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_daebdb );};};return _gbeeg ._cfdbd ;};func (_gdbca *PdfReader )traverseObjectData (_egbcc _egg .PdfObject )error {return _egg .ResolveReferencesDeep (_egbcc ,_gdbca ._gbabf );
};
// GetPdfName returns the PDF name used to indicate the border style.
// (Table 166 p. 395).
func (_gdda *BorderStyle )GetPdfName ()string {switch *_gdda {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";
};return "";};
// NewPdfActionImportData returns a new "import data" action.
func NewPdfActionImportData ()*PdfActionImportData {_fgf :=NewPdfAction ();_dgd :=&PdfActionImportData {};_dgd .PdfAction =_fgf ;_fgf .SetContext (_dgd );return _dgd ;};
// GetContainingPdfObject returns the container of the pattern object (indirect object).
func (_ccddf *PdfPattern )GetContainingPdfObject ()_egg .PdfObject {return _ccddf ._fgec };func _gaec (_gebdc _egg .PdfObject )(*PdfFunctionType3 ,error ){_cagacd :=&PdfFunctionType3 {};var _dfdcd *_egg .PdfObjectDictionary ;if _eege ,_gcdgd :=_gebdc .(*_egg .PdfIndirectObject );
_gcdgd {_afdb ,_dcgd :=_eege .PdfObject .(*_egg .PdfObjectDictionary );if !_dcgd {return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cagacd ._cbbbc =_eege ;_dfdcd =_afdb ;}else if _dcdc ,_eebd :=_gebdc .(*_egg .PdfObjectDictionary );
_eebd {_dfdcd =_dcdc ;}else {return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cgbd ,_gdgab :=_egg .TraceToDirectObject (_dfdcd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_egg .PdfObjectArray );
if !_gdgab {_bag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};if _cgbd .Len ()!=2{_bag .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_bdge ,_fgeag :=_cgbd .ToFloat64Array ();
if _fgeag !=nil {return nil ,_fgeag ;};_cagacd .Domain =_bdge ;_cgbd ,_gdgab =_egg .TraceToDirectObject (_dfdcd .Get ("\u0052\u0061\u006eg\u0065")).(*_egg .PdfObjectArray );if _gdgab {if _cgbd .Len ()< 0||_cgbd .Len ()%2!=0{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_gegga ,_aagcd :=_cgbd .ToFloat64Array ();if _aagcd !=nil {return nil ,_aagcd ;};_cagacd .Range =_gegga ;};_cgbd ,_gdgab =_egg .TraceToDirectObject (_dfdcd .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_egg .PdfObjectArray );if !_gdgab {_bag .Log .Error ("\u0046\u0075\u006ect\u0069\u006f\u006e\u0073\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");
return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};_cagacd .Functions =[]PdfFunction {};
for _ ,_gecfd :=range _cgbd .Elements (){_gebca ,_fged :=_bdefe (_gecfd );if _fged !=nil {return nil ,_fged ;};_cagacd .Functions =append (_cagacd .Functions ,_gebca );};_cgbd ,_gdgab =_egg .TraceToDirectObject (_dfdcd .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_egg .PdfObjectArray );
if !_gdgab {_bag .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};_ecedc ,_fgeag :=_cgbd .ToFloat64Array ();if _fgeag !=nil {return nil ,_fgeag ;};_cagacd .Bounds =_ecedc ;if len (_cagacd .Bounds )!=len (_cagacd .Functions )-1{_bag .Log .Error ("B\u006f\u0075\u006e\u0064\u0073\u0020\u0028\u0025\u0064)\u0020\u0061\u006e\u0064\u0020\u006e\u0075m \u0066\u0075\u006e\u0063t\u0069\u006f\u006e\u0073\u0020\u0028\u0025\u0064\u0029 n\u006f\u0074 \u006d\u0061\u0074\u0063\u0068\u0069\u006e\u0067",len (_cagacd .Bounds ),len (_cagacd .Functions ));
return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cgbd ,_gdgab =_egg .TraceToDirectObject (_dfdcd .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_egg .PdfObjectArray );if !_gdgab {_bag .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};_fedd ,_fgeag :=_cgbd .ToFloat64Array ();
if _fgeag !=nil {return nil ,_fgeag ;};_cagacd .Encode =_fedd ;if len (_cagacd .Encode )!=2*len (_cagacd .Functions ){_bag .Log .Error ("\u004c\u0065\u006e\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0020\u0028\u0025\u0064\u0029 \u0061\u006e\u0064\u0020\u006e\u0075\u006d\u0020\u0066\u0075\u006e\u0063\u0074i\u006f\u006e\u0073\u0020\u0028\u0025\u0064\u0029\u0020\u006e\u006f\u0074 m\u0061\u0074\u0063\u0068\u0069\u006e\u0067\u0020\u0075\u0070",len (_cagacd .Encode ),len (_cagacd .Functions ));
return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _cagacd ,nil ;};func _bdabg (_dfgef *_egg .PdfObjectDictionary )(*PdfShadingType1 ,error ){_bccdac :=PdfShadingType1 {};if _cadd :=_dfgef .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");
_cadd !=nil {_cadd =_egg .TraceToDirectObject (_cadd );_aeeeg ,_afage :=_cadd .(*_egg .PdfObjectArray );if !_afage {_bag .Log .Debug ("\u0044\u006f\u006d\u0061i\u006e\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_cadd );
return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bccdac .Domain =_aeeeg ;};if _aebac :=_dfgef .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_aebac !=nil {_aebac =_egg .TraceToDirectObject (_aebac );
_acfcc ,_dcdef :=_aebac .(*_egg .PdfObjectArray );if !_dcdef {_bag .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_aebac );return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_bccdac .Matrix =_acfcc ;};_fcaga :=_dfgef .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _fcaga ==nil {_bag .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0020\u0046\u0075\u006ec\u0074\u0069\u006f\u006e");
return nil ,ErrRequiredAttributeMissing ;};_bccdac .Function =[]PdfFunction {};if _gdcgf ,_cdfc :=_fcaga .(*_egg .PdfObjectArray );_cdfc {for _ ,_bdbcc :=range _gdcgf .Elements (){_gfbg ,_ddfcff :=_bdefe (_bdbcc );if _ddfcff !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_ddfcff );
return nil ,_ddfcff ;};_bccdac .Function =append (_bccdac .Function ,_gfbg );};}else {_befgf ,_cbfb :=_bdefe (_fcaga );if _cbfb !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_cbfb );
return nil ,_cbfb ;};_bccdac .Function =append (_bccdac .Function ,_befgf );};return &_bccdac ,nil ;};func (_eceba *PdfWriter )seekByName (_ddcc _egg .PdfObject ,_aagdg []string ,_cefdb string )([]_egg .PdfObject ,error ){_bag .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_ddcc );
var _gggdad []_egg .PdfObject ;if _bbdaf ,_fgeeb :=_ddcc .(*_egg .PdfIndirectObject );_fgeeb {return _eceba .seekByName (_bbdaf .PdfObject ,_aagdg ,_cefdb );};if _degeb ,_dfbcb :=_ddcc .(*_egg .PdfObjectStream );_dfbcb {return _eceba .seekByName (_degeb .PdfObjectDictionary ,_aagdg ,_cefdb );
};if _beacbe ,_gadcef :=_ddcc .(*_egg .PdfObjectDictionary );_gadcef {_bag .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_dgaec :=range _beacbe .Keys (){_dccdg :=_beacbe .Get (_dgaec );if string (_dgaec )==_cefdb {_gggdad =append (_gggdad ,_dccdg );};
for _ ,_acdge :=range _aagdg {if string (_dgaec )==_acdge {_bag .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_acdge );_dfead ,_ccfb :=_eceba .seekByName (_dccdg ,_aagdg ,_cefdb );if _ccfb !=nil {return _gggdad ,_ccfb ;
};_gggdad =append (_gggdad ,_dfead ...);break ;};};};return _gggdad ,nil ;};return _gggdad ,nil ;};func _fef (_dffd _egg .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_bag .Log .Trace ("\u004e\u0065\u0077\u0020\u0050\u0061\u0074\u0074\u0065\u0072n\u0020\u0043\u0053\u0020\u0066\u0072\u006fm\u0020\u006f\u0062\u006a\u003a\u0020\u0025\u0073\u0020\u0025\u0054",_dffd .String (),_dffd );
_fafd :=NewPdfColorspaceSpecialPattern ();if _dadbb ,_fbgg :=_dffd .(*_egg .PdfIndirectObject );_fbgg {_fafd ._ceae =_dadbb ;};_dffd =_egg .TraceToDirectObject (_dffd );if _cabab ,_cgcg :=_dffd .(*_egg .PdfObjectName );_cgcg {if *_cabab !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_f .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");
};return _fafd ,nil ;};_ccddd ,_edfeg :=_dffd .(*_egg .PdfObjectArray );if !_edfeg {_bag .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061t\u0074\u0065\u0072\u006e\u0020\u0043\u0053 \u004f\u0062\u006a\u0065\u0063\u0074\u003a\u0020\u0025\u0023\u0076",_dffd );
return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _ccddd .Len ()!=1&&_ccddd .Len ()!=2{_bag .Log .Error ("\u0049\u006ev\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079\u003a %\u0023\u0076",_ccddd );
return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_dffd =_ccddd .Get (0);if _fdef ,_gfef :=_dffd .(*_egg .PdfObjectName );_gfef {if *_fdef !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_bag .Log .Error ("\u0049\u006e\u0076al\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065\u0072n\u0020C\u0053 \u0061r\u0072\u0061\u0079\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0023\u0076",_fdef );
return nil ,_f .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _ccddd .Len ()> 1{_dffd =_ccddd .Get (1);_dffd =_egg .TraceToDirectObject (_dffd );_fdfga ,_dfab :=NewPdfColorspaceFromPdfObject (_dffd );if _dfab !=nil {return nil ,_dfab ;
};_fafd .UnderlyingCS =_fdfga ;};_bag .Log .Trace ("R\u0065\u0074\u0075\u0072\u006e\u0069\u006e\u0067\u0020\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0077i\u0074\u0068\u0020\u0075\u006e\u0064\u0065\u0072\u006c\u0079in\u0067\u0020\u0063s\u003a \u0025\u0054",_fafd .UnderlyingCS );
return _fafd ,nil ;};var _ pdfFont =(*pdfCIDFontType2 )(nil );func (_ccca *PdfReader )loadAnnotations (_ffedd _egg .PdfObject )([]*PdfAnnotation ,error ){_ebdge ,_ggdba :=_egg .GetArray (_ffedd );if !_ggdba {return nil ,_f .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
};var _bcdbf []*PdfAnnotation ;for _ ,_deebg :=range _ebdge .Elements (){_deebg =_egg .ResolveReference (_deebg );if _ ,_eeecc :=_deebg .(*_egg .PdfObjectNull );_eeecc {continue ;};_fbee ,_gfcad :=_deebg .(*_egg .PdfObjectDictionary );_affc ,_bedfb :=_deebg .(*_egg .PdfIndirectObject );
if _gfcad {_affc =&_egg .PdfIndirectObject {};_affc .PdfObject =_fbee ;}else {if !_bedfb {return nil ,_f .Errorf ("\u0061\u006eno\u0074\u0061\u0074i\u006f\u006e\u0020\u006eot \u0069n \u0061\u006e\u0020\u0069\u006e\u0064\u0069re\u0063\u0074\u0020\u006f\u0062\u006a\u0065c\u0074");
};};_dgcea ,_efbcd :=_ccca .newPdfAnnotationFromIndirectObject (_affc );if _efbcd !=nil {return nil ,_efbcd ;};switch _eccgd :=_dgcea .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_aeeac :=range _ccca .AcroForm .AllFields (){if _aeeac ._agef ==_eccgd .Parent {_eccgd ._daa =_aeeac ;
break ;};};};if _dgcea !=nil {_bcdbf =append (_bcdbf ,_dgcea );};};return _bcdbf ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_dccda *PdfSignature )ToPdfObject ()_egg .PdfObject {_cabcf :=_dccda ._ccbda ;var _fcdea *_egg .PdfObjectDictionary ;if _afec ,_ccgbea :=_cabcf .PdfObject .(*pdfSignDictionary );_ccgbea {_fcdea =_afec .PdfObjectDictionary ;}else {_fcdea =_cabcf .PdfObject .(*_egg .PdfObjectDictionary );
};_fcdea .SetIfNotNil ("\u0054\u0079\u0070\u0065",_dccda .Type );_fcdea .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_dccda .Filter );_fcdea .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_dccda .SubFilter );_fcdea .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_dccda .ByteRange );
_fcdea .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_dccda .Contents );_fcdea .SetIfNotNil ("\u0043\u0065\u0072\u0074",_dccda .Cert );_fcdea .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dccda .Name );_fcdea .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_dccda .Reason );
_fcdea .SetIfNotNil ("\u004d",_dccda .M );_fcdea .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_dccda .Reference );_fcdea .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_dccda .Changes );_fcdea .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_dccda .ContactInfo );
return _cabcf ;};
// ToPdfObject implements interface PdfModel.
func (_gdbcd *PdfAnnotationLine )ToPdfObject ()_egg .PdfObject {_gdbcd .PdfAnnotation .ToPdfObject ();_ebgfc :=_gdbcd ._cef ;_bfb :=_ebgfc .PdfObject .(*_egg .PdfObjectDictionary );_gdbcd .PdfAnnotationMarkup .appendToPdfDictionary (_bfb );_bfb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u004c\u0069\u006e\u0065"));
_bfb .SetIfNotNil ("\u004c",_gdbcd .L );_bfb .SetIfNotNil ("\u0042\u0053",_gdbcd .BS );_bfb .SetIfNotNil ("\u004c\u0045",_gdbcd .LE );_bfb .SetIfNotNil ("\u0049\u0043",_gdbcd .IC );_bfb .SetIfNotNil ("\u004c\u004c",_gdbcd .LL );_bfb .SetIfNotNil ("\u004c\u004c\u0045",_gdbcd .LLE );
_bfb .SetIfNotNil ("\u0043\u0061\u0070",_gdbcd .Cap );_bfb .SetIfNotNil ("\u0049\u0054",_gdbcd .IT );_bfb .SetIfNotNil ("\u004c\u004c\u004f",_gdbcd .LLO );_bfb .SetIfNotNil ("\u0043\u0050",_gdbcd .CP );_bfb .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_gdbcd .Measure );
_bfb .SetIfNotNil ("\u0043\u004f",_gdbcd .CO );return _ebgfc ;};
// NewPdfActionResetForm returns a new "reset form" action.
func NewPdfActionResetForm ()*PdfActionResetForm {_gaf :=NewPdfAction ();_gb :=&PdfActionResetForm {};_gb .PdfAction =_gaf ;_gaf .SetContext (_gb );return _gb ;};func (_afgf *PdfWriter )makeOffSetReference (_abccb int64 ){_dfag :=_f .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_abccb );
_afgf .writeString (_dfag );_afgf .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");};
// AddPages adds pages to be appended to the end of the source PDF.
func (_afbee *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_abee :=range pages {_abee =_abee .Duplicate ();_cceebc (_abee );_afbee ._beac =append (_afbee ._beac ,_abee );};};
// SetAlpha sets the alpha layer for the image.
func (_egbdc *Image )SetAlpha (alpha []byte ){_egbdc ._fgggb =alpha };
// Add appends a top level outline item to the outline.
func (_eagbe *Outline )Add (item *OutlineItem ){_eagbe .Entries =append (_eagbe .Entries ,item )};
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
func (_bfbbe *PdfPage )GetPageAsIndirectObject ()*_egg .PdfIndirectObject {return _bfbbe ._dfee };
// PdfBorderEffect represents a PDF border effect.
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
// LTV represents an LTV (Long-Term Validation) client. It is used to LTV
// enable signatures by adding validation and revocation data (certificate,
// OCSP and CRL information) to the DSS dictionary of a PDF document.
//
// LTV is added through the DSS by:
// - Adding certificates, OCSP and CRL information in the global scope of the
// DSS. The global data is used for validating any of the signatures present
// in the document.
// - Adding certificates, OCSP and CRL information for a single signature,
// through an entry in the VRI dictionary of the DSS. The added data is used
// for validating that particular signature only. This is the recommended
// method for adding validation data for a signature. However, this is not
// is not possible in the same revision the signature is applied. Validation
// data for a signature is added based on the Contents entry of the signature,
// which is known only after the revision is written. Even if the Contents
// are known (e.g. when signing externally), updating the DSS at that point
// would invalidate the calculated signature. As a result, if adding LTV
// in the same revision is a requirement, use the first method.
// See LTV.EnableChain.
// The client applies both methods, when possible.
//
// If `LTV.SkipExisting` is set to true (the default), validations are
// not added for signatures which are already present in the VRI entry of the
// document's DSS dictionary.
type LTV struct{
// CertClient is the client used to retrieve certificates.
CertClient *_gfa .CertClient ;
// OCSPClient is the client used to retrieve OCSP validation information.
OCSPClient *_gfa .OCSPClient ;
// CRLClient is the client used to retrieve CRL validation information.
CRLClient *_gfa .CRLClient ;
// SkipExisting specifies whether existing signature validations
// should be skipped.
SkipExisting bool ;_dbdga *PdfAppender ;_cbbab *DSS ;};
// SetDecode sets the decode image float slice.
func (_dffdc *Image )SetDecode (decode []float64 ){_dffdc ._abfae =decode };
// PdfAnnotationRichMedia represents Rich Media annotations.
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _egg .PdfObject ;RichMediaContent _egg .PdfObject ;};
// NewLTV returns a new LTV client.
func NewLTV (appender *PdfAppender )(*LTV ,error ){_fcabe :=appender .Reader .DSS ;if _fcabe ==nil {_fcabe =NewDSS ();};if _gbba :=_fcabe .generateHashMaps ();_gbba !=nil {return nil ,_gbba ;};return &LTV {CertClient :_gfa .NewCertClient (),OCSPClient :_gfa .NewOCSPClient (),CRLClient :_gfa .NewCRLClient (),SkipExisting :true ,_dbdga :appender ,_cbbab :_fcabe },nil ;
};func _edbaa (_daeac _egg .PdfObject )(*PdfShading ,error ){_ggacb :=&PdfShading {};var _cedbe *_egg .PdfObjectDictionary ;if _eefce ,_gdcdd :=_egg .GetIndirect (_daeac );_gdcdd {_ggacb ._cfdbd =_eefce ;_dgffdd ,_aggee :=_eefce .PdfObject .(*_egg .PdfObjectDictionary );
if !_aggee {_bag .Log .Debug ("\u004f\u0062\u006a\u0065c\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074i\u006f\u006e\u0061\u0072\u0079\u0020\u0074y\u0070\u0065");return nil ,_egg .ErrTypeError ;};_cedbe =_dgffdd ;}else if _eeecb ,_gagcf :=_egg .GetStream (_daeac );
_gagcf {_ggacb ._cfdbd =_eeecb ;_cedbe =_eeecb .PdfObjectDictionary ;}else if _dbfafc ,_eeffb :=_egg .GetDict (_daeac );_eeffb {_ggacb ._cfdbd =_dbfafc ;_cedbe =_dbfafc ;}else {_bag .Log .Debug ("O\u0062\u006a\u0065\u0063\u0074\u0020t\u0079\u0070\u0065\u0020\u0075\u006e\u0065\u0078\u0070e\u0063\u0074\u0065d\u0020(\u0025\u0054\u0029",_daeac );
return nil ,_egg .ErrTypeError ;};if _cedbe ==nil {_bag .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_gd .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
};_daeac =_cedbe .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _daeac ==nil {_bag .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065\u0064\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020\u0074\u0079\u0070\u0065\u0020\u006d\u0069\u0073si\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_daeac =_egg .TraceToDirectObject (_daeac );_fgdff ,_gdee :=_daeac .(*_egg .PdfObjectInteger );if !_gdee {_bag .Log .Debug ("\u0049\u006e\u0076al\u0069\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066o\u0072 \u0073h\u0061d\u0069\u006e\u0067\u0020\u0074\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029",_daeac );
return nil ,_egg .ErrTypeError ;};if *_fgdff < 1||*_fgdff > 7{_bag .Log .Debug ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020\u0074\u0079\u0070\u0065\u002c\u0020\u006e\u006ft\u0020\u0031\u002d\u0037\u0020(\u0067\u006ft\u0020\u0025\u0064\u0029",*_fgdff );
return nil ,_egg .ErrTypeError ;};_ggacb .ShadingType =_fgdff ;_daeac =_cedbe .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _daeac ==nil {_bag .Log .Debug ("\u0052\u0065\u0071\u0075\u0069\u0072e\u0064\u0020\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065\u0020e\u006e\u0074\u0072\u0079\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_gcde ,_efcd :=NewPdfColorspaceFromPdfObject (_daeac );if _efcd !=nil {_bag .Log .Debug ("\u0046\u0061i\u006c\u0065\u0064\u0020\u006c\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065: \u0025\u0076",_efcd );
return nil ,_efcd ;};_ggacb .ColorSpace =_gcde ;_daeac =_cedbe .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _daeac !=nil {_daeac =_egg .TraceToDirectObject (_daeac );_cffcdc ,_daeacd :=_daeac .(*_egg .PdfObjectArray );if !_daeacd {_bag .Log .Debug ("\u0042\u0061\u0063\u006b\u0067r\u006f\u0075\u006e\u0064\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062e\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0062\u0079\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_daeac );
return nil ,_egg .ErrTypeError ;};_ggacb .Background =_cffcdc ;};_daeac =_cedbe .Get ("\u0042\u0042\u006f\u0078");if _daeac !=nil {_daeac =_egg .TraceToDirectObject (_daeac );_bacgg ,_affag :=_daeac .(*_egg .PdfObjectArray );if !_affag {_bag .Log .Debug ("\u0042\u0061\u0063\u006b\u0067r\u006f\u0075\u006e\u0064\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062e\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0062\u0079\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_daeac );
return nil ,_egg .ErrTypeError ;};_ebacf ,_cbece :=NewPdfRectangle (*_bacgg );if _cbece !=nil {_bag .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_cbece );return nil ,_cbece ;};_ggacb .BBox =_ebacf ;};_daeac =_cedbe .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");
if _daeac !=nil {_daeac =_egg .TraceToDirectObject (_daeac );_aceda ,_bafgf :=_daeac .(*_egg .PdfObjectBool );if !_bafgf {_bag .Log .Debug ("A\u006e\u0074\u0069\u0041\u006c\u0069\u0061\u0073\u0020i\u006e\u0076\u0061\u006c\u0069\u0064\u0020ty\u0070\u0065\u002c\u0020s\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020bo\u006f\u006c \u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_daeac );
return nil ,_egg .ErrTypeError ;};_ggacb .AntiAlias =_aceda ;};switch *_fgdff {case 1:_gbfef ,_aacfg :=_bdabg (_cedbe );if _aacfg !=nil {return nil ,_aacfg ;};_gbfef .PdfShading =_ggacb ;_ggacb ._fagfe =_gbfef ;return _ggacb ,nil ;case 2:_eedac ,_bcgfc :=_dbefa (_cedbe );
if _bcgfc !=nil {return nil ,_bcgfc ;};_eedac .PdfShading =_ggacb ;_ggacb ._fagfe =_eedac ;return _ggacb ,nil ;case 3:_efecg ,_cbcc :=_ebafc (_cedbe );if _cbcc !=nil {return nil ,_cbcc ;};_efecg .PdfShading =_ggacb ;_ggacb ._fagfe =_efecg ;return _ggacb ,nil ;
case 4:_gffeg ,_eeffgg :=_fccda (_cedbe );if _eeffgg !=nil {return nil ,_eeffgg ;};_gffeg .PdfShading =_ggacb ;_ggacb ._fagfe =_gffeg ;return _ggacb ,nil ;case 5:_aedcg ,_bedge :=_ggaeg (_cedbe );if _bedge !=nil {return nil ,_bedge ;};_aedcg .PdfShading =_ggacb ;
_ggacb ._fagfe =_aedcg ;return _ggacb ,nil ;case 6:_ecgcb ,_ffedbb :=_efdgd (_cedbe );if _ffedbb !=nil {return nil ,_ffedbb ;};_ecgcb .PdfShading =_ggacb ;_ggacb ._fagfe =_ecgcb ;return _ggacb ,nil ;case 7:_eceafd ,_fdgag :=_bdbba (_cedbe );if _fdgag !=nil {return nil ,_fdgag ;
};_eceafd .PdfShading =_ggacb ;_ggacb ._fagfe =_eceafd ;return _ggacb ,nil ;};return nil ,_gd .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
// String returns a string describing the font descriptor.
func (_bfgcc *PdfFontDescriptor )String ()string {var _gebfc []string ;if _bfgcc .FontName !=nil {_gebfc =append (_gebfc ,_bfgcc .FontName .String ());};if _bfgcc .FontFamily !=nil {_gebfc =append (_gebfc ,_bfgcc .FontFamily .String ());};if _bfgcc .fontFile !=nil {_gebfc =append (_gebfc ,_bfgcc .fontFile .String ());
};if _bfgcc ._eccg !=nil {_gebfc =append (_gebfc ,_bfgcc ._eccg .String ());};_gebfc =append (_gebfc ,_f .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_bfgcc .FontFile3 !=nil ));return _f .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_fc .Join (_gebfc ,"\u002c\u0020"));
};
// ColorToRGB converts a CMYK32 color to an RGB color.
func (_fege *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_aeggf ,_cffd :=color .(*PdfColorDeviceCMYK );if !_cffd {_bag .Log .Debug ("I\u006e\u0070\u0075\u0074\u0020\u0063o\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0064e\u0076\u0069\u0063e\u0020c\u006d\u0079\u006b");
return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cgb :=_aeggf .C ();_gage :=_aeggf .M ();_cgef :=_aeggf .Y ();_aacd :=_aeggf .K ();_cgb =_cgb *(1-_aacd )+_aacd ;_gage =_gage *(1-_aacd )+_aacd ;
_cgef =_cgef *(1-_aacd )+_aacd ;_eaff :=1-_cgb ;_bdbag :=1-_gage ;_egcb :=1-_cgef ;return NewPdfColorDeviceRGB (_eaff ,_bdbag ,_egcb ),nil ;};
// GetCatalogMarkInfo gets catalog MarkInfo object.
func (_fade *PdfReader )GetCatalogMarkInfo ()(_egg .PdfObject ,bool ){if _fade ._eacf ==nil {return nil ,false ;};_cbdgea :=_fade ._eacf .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _cbdgea ,_cbdgea !=nil ;};func (_cfbg *PdfReader )newPdfAnnotationLineFromDict (_efef *_egg .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_beb :=PdfAnnotationLine {};
_geb ,_fcgf :=_cfbg .newPdfAnnotationMarkupFromDict (_efef );if _fcgf !=nil {return nil ,_fcgf ;};_beb .PdfAnnotationMarkup =_geb ;_beb .L =_efef .Get ("\u004c");_beb .BS =_efef .Get ("\u0042\u0053");_beb .LE =_efef .Get ("\u004c\u0045");_beb .IC =_efef .Get ("\u0049\u0043");
_beb .LL =_efef .Get ("\u004c\u004c");_beb .LLE =_efef .Get ("\u004c\u004c\u0045");_beb .Cap =_efef .Get ("\u0043\u0061\u0070");_beb .IT =_efef .Get ("\u0049\u0054");_beb .LLO =_efef .Get ("\u004c\u004c\u004f");_beb .CP =_efef .Get ("\u0043\u0050");_beb .Measure =_efef .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");
_beb .CO =_efef .Get ("\u0043\u004f");return &_beb ,nil ;};func _cbfde (_dcbf *_egg .PdfObjectDictionary ,_eacgf *fontCommon )(*pdfCIDFontType0 ,error ){if _eacgf ._ebdf !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_bag .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0046\u006fn\u0074\u0020\u0053u\u0062\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020CI\u0044\u0046\u006fn\u0074\u0054y\u0070\u0065\u0030\u002e\u0020\u0066o\u006e\u0074=\u0025\u0073",_eacgf );
return nil ,_egg .ErrRangeError ;};_cedd :=_caafc (_eacgf );_deffd ,_bgab :=_egg .GetDict (_dcbf .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_bgab {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043I\u0044\u0053\u0079st\u0065\u006d\u0049\u006e\u0066\u006f \u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u002e\u0020\u0066\u006f\u006e\u0074=\u0025\u0073",_eacgf );
return nil ,ErrRequiredAttributeMissing ;};_cedd .CIDSystemInfo =_deffd ;_cedd .DW =_dcbf .Get ("\u0044\u0057");_cedd .W =_dcbf .Get ("\u0057");_cedd .DW2 =_dcbf .Get ("\u0044\u0057\u0032");_cedd .W2 =_dcbf .Get ("\u0057\u0032");_cedd ._afdcf =1000.0;if _bacd ,_fgaeda :=_egg .GetNumberAsFloat (_cedd .DW );
_fgaeda ==nil {_cedd ._afdcf =_bacd ;};_ffef ,_faebd :=_babef (_cedd .W );if _faebd !=nil {return nil ,_faebd ;};if _ffef ==nil {_ffef =map[_ef .CharCode ]float64 {};};_cedd ._decd =_ffef ;return _cedd ,nil ;};func (_cgbfb *fontFile )parseASCIIPart (_egegc []byte )error {if len (_egegc )< 2||string (_egegc [:2])!="\u0025\u0021"{return _gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0074a\u0072\u0074\u0020\u006f\u0066\u0020\u0041S\u0043\u0049\u0049\u0020\u0073\u0065\u0067\u006d\u0065\u006e\u0074");
};_badaf ,_dgddd ,_ggeg :=_cgdf (_egegc );if _ggeg !=nil {return _ggeg ;};_gcge :=_dead (_badaf );_cgbfb ._ebfa =_gcge ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _cgbfb ._ebfa ==""{_bag .Log .Debug ("\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0020\u0068a\u0073\u0020\u006e\u006f\u0020\u002f\u0046\u006f\u006e\u0074N\u0061\u006d\u0065");
};if _dgddd !=""{_fabd ,_bgddc :=_dadge (_dgddd );if _bgddc !=nil {return _bgddc ;};_abfdc ,_bgddc :=_ef .NewCustomSimpleTextEncoder (_fabd ,nil );if _bgddc !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004fR\u0020\u003a\u0055\u004e\u004b\u004e\u004f\u0057\u004e\u0020G\u004cY\u0050\u0048\u003a\u0020\u0065\u0072\u0072=\u0025\u0076",_bgddc );
return nil ;};_cgbfb ._gdcd =_abfdc ;};return nil ;};func (_gbb *PdfReader )newPdfActionGotoFromDict (_fec *_egg .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_fec .Get ("\u0044")},nil ;};
// NewCompositePdfFontFromTTF loads a composite TTF font. Composite fonts can
// be used to represent unicode fonts which can have multi-byte character codes, representing a wide
// range of values. They are often used for symbolic languages, including Chinese, Japanese and Korean.
// It is represented by a Type0 Font with an underlying CIDFontType2 and an Identity-H encoding map.
// TODO: May be extended in the future to support a larger variety of CMaps and vertical fonts.
// NOTE: For simple fonts, use NewPdfFontFromTTF.
func NewCompositePdfFontFromTTF (r _dag .ReadSeeker )(*PdfFont ,error ){_gcfbg ,_acfg :=_ac .ReadAll (r );if _acfg !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065 \u0074\u006f\u0020\u0072\u0065\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074s\u003a\u0020\u0025\u0076",_acfg );
return nil ,_acfg ;};_dfbe ,_acfg :=_bgd .TtfParse (_dd .NewReader (_gcfbg ));if _acfg !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0077\u0068\u0069\u006c\u0065\u0020\u006c\u006f\u0061\u0064\u0069\u006e\u0067 \u0074\u0074\u0066\u0020\u0066\u006f\u006et\u003a\u0020\u0025\u0076",_acfg );
return nil ,_acfg ;};_aedg :=&pdfCIDFontType2 {fontCommon :fontCommon {_ebdf :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_egg .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_dfbe .Widths )<=0{return nil ,_gd .New ("\u0045\u0052\u0052O\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065 \u0028\u0057\u0069\u0064\u0074\u0068\u0073\u0029");
};_egdb :=1000.0/float64 (_dfbe .UnitsPerEm );_eabec :=_egdb *float64 (_dfbe .Widths [0]);_dcagd :=make (map[rune ]int );_fccfd :=make (map[_bgd .GID ]int );_edcf :=_bgd .GID (len (_dfbe .Widths ));for _fcbea ,_aedgc :=range _dfbe .Chars {if _aedgc > _edcf -1{continue ;
};_fccage :=int (_egdb *float64 (_dfbe .Widths [_aedgc ]));_dcagd [_fcbea ]=_fccage ;_fccfd [_aedgc ]=_fccage ;};_aedg ._beec =_dcagd ;_aedg .DW =_egg .MakeInteger (int64 (_eabec ));_fbfdb :=_baff (_fccfd ,uint16 (_edcf ));_aedg .W =_egg .MakeIndirectObject (_fbfdb );
_fadgd :=_egg .MakeDict ();_fadgd .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_egg .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_fadgd .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_egg .MakeString ("\u0041\u0064\u006fb\u0065"));
_fadgd .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_egg .MakeInteger (0));_aedg .CIDSystemInfo =_fadgd ;_ddbd :=&PdfFontDescriptor {FontName :_egg .MakeName (_dfbe .PostScriptName ),Ascent :_egg .MakeFloat (_egdb *float64 (_dfbe .TypoAscender )),Descent :_egg .MakeFloat (_egdb *float64 (_dfbe .TypoDescender )),CapHeight :_egg .MakeFloat (_egdb *float64 (_dfbe .CapHeight )),FontBBox :_egg .MakeArrayFromFloats ([]float64 {_egdb *float64 (_dfbe .Xmin ),_egdb *float64 (_dfbe .Ymin ),_egdb *float64 (_dfbe .Xmax ),_egdb *float64 (_dfbe .Ymax )}),ItalicAngle :_egg .MakeFloat (_dfbe .ItalicAngle ),MissingWidth :_egg .MakeFloat (_eabec )};
_bfea ,_acfg :=_egg .MakeStream (_gcfbg ,_egg .NewFlateEncoder ());if _acfg !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074o\u0020m\u0061\u006b\u0065\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020\u0025\u0076",_acfg );
return nil ,_acfg ;};_bfea .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_egg .MakeInteger (int64 (len (_gcfbg ))));_ddbd .FontFile2 =_bfea ;if _dfbe .Bold {_ddbd .StemV =_egg .MakeInteger (120);}else {_ddbd .StemV =_egg .MakeInteger (70);
};_bgdad :=_eeeef ;if _dfbe .IsFixedPitch {_bgdad |=_ebaa ;};if _dfbe .ItalicAngle !=0{_bgdad |=_ggcggf ;};_ddbd .Flags =_egg .MakeInteger (int64 (_bgdad ));_aedg ._dgfdc =_dfbe .PostScriptName ;_aedg ._bgacg =_ddbd ;_eddeb :=pdfFontType0 {fontCommon :fontCommon {_ebdf :"\u0054\u0079\u0070e\u0030",_dgfdc :_dfbe .PostScriptName },DescendantFont :&PdfFont {_edde :_aedg },Encoding :_egg .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_bfddc :_dfbe .NewEncoder ()};
if len (_dfbe .Chars )> 0{_aeacce :=make (map[_ga .CharCode ]rune ,len (_dfbe .Chars ));for _edeae ,_fcded :=range _dfbe .Chars {_efbb :=_ga .CharCode (_fcded );if _cceag ,_agfa :=_aeacce [_efbb ];!_agfa ||(_agfa &&_cceag > _edeae ){_aeacce [_efbb ]=_edeae ;
};};_eddeb ._bfbgf =_ga .NewToUnicodeCMap (_aeacce );};_cbdge :=PdfFont {_edde :&_eddeb };return &_cbdge ,nil ;};
// GetContainingPdfObject returns the container of the outline (indirect object).
func (_eggf *PdfOutline )GetContainingPdfObject ()_egg .PdfObject {return _eggf ._egdd };
// GetCatalogMetadata gets the catalog defined XMP Metadata.
func (_gfece *PdfReader )GetCatalogMetadata ()(_egg .PdfObject ,bool ){if _gfece ._eacf ==nil {return nil ,false ;};_bbfe :=_gfece ._eacf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _bbfe ,_bbfe !=nil ;};
// Set sets the colorspace corresponding to key. Add to Names if not set.
func (_ebcfc *PdfPageResourcesColorspaces )Set (key _egg .PdfObjectName ,val PdfColorspace ){if _ ,_eedgb :=_ebcfc .Colorspaces [string (key )];!_eedgb {_ebcfc .Names =append (_ebcfc .Names ,string (key ));};_ebcfc .Colorspaces [string (key )]=val ;};
// R returns the value of the red component of the color.
func (_egcfa *PdfColorDeviceRGB )R ()float64 {return _egcfa [0]};
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_gfgeg :=&PdfColorspaceCalGray {};_gfgeg .BlackPoint =[]float64 {0.0,0.0,0.0};_gfgeg .Gamma =1;return _gfgeg ;};
// SetFilter sets compression filter. Decodes with current filter sets and
// encodes the data with the new filter.
func (_degbd *XObjectImage )SetFilter (encoder _egg .StreamEncoder )error {_cgcbc :=_degbd .Stream ;_ccaab ,_dgceb :=_degbd .Filter .DecodeBytes (_cgcbc );if _dgceb !=nil {return _dgceb ;};_degbd .Filter =encoder ;encoder .UpdateParams (_degbd .getParamsDict ());
_cgcbc ,_dgceb =encoder .EncodeBytes (_ccaab );if _dgceb !=nil {return _dgceb ;};_degbd .Stream =_cgcbc ;return nil ;};func (_cdf *PdfReader )newPdfAnnotationPolygonFromDict (_cgae *_egg .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_gfac :=PdfAnnotationPolygon {};
_fbbf ,_aged :=_cdf .newPdfAnnotationMarkupFromDict (_cgae );if _aged !=nil {return nil ,_aged ;};_gfac .PdfAnnotationMarkup =_fbbf ;_gfac .Vertices =_cgae .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_gfac .LE =_cgae .Get ("\u004c\u0045");
_gfac .BS =_cgae .Get ("\u0042\u0053");_gfac .IC =_cgae .Get ("\u0049\u0043");_gfac .BE =_cgae .Get ("\u0042\u0045");_gfac .IT =_cgae .Get ("\u0049\u0054");_gfac .Measure =_cgae .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_gfac ,nil ;};
// GetDocMDPPermission returns the DocMDP level of the restrictions
func (_bagab *PdfSignature )GetDocMDPPermission ()(_be .DocMDPPermission ,bool ){for _ ,_deafb :=range _bagab .Reference .Elements (){if _ggdgbe ,_efgae :=_egg .GetDict (_deafb );_efgae {if _cccg ,_bebbd :=_egg .GetNameVal (_ggdgbe .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
_bebbd &&_cccg =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _eface ,_cdcecf :=_egg .GetDict (_ggdgbe .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_cdcecf {if P ,_bbcc :=_egg .GetIntVal (_eface .Get ("\u0050"));
_bbcc {return _be .DocMDPPermission (P ),true ;};};};};};return 0,false ;};var _ pdfFont =(*pdfCIDFontType0 )(nil );
// GetContainingPdfObject returns the container of the image object (indirect object).
func (_eagea *XObjectImage )GetContainingPdfObject ()_egg .PdfObject {return _eagea ._gefbe };func _eegd (_effdc []byte )bool {if len (_effdc )< 4{return true ;};for _cdeac :=range _effdc [:4]{_faggd :=rune (_cdeac );if !_ad .Is (_ad .ASCII_Hex_Digit ,_faggd )&&!_ad .IsSpace (_faggd ){return true ;
};};return false ;};
// SetPatternByName sets a pattern resource specified by keyName.
func (_abgg *PdfPageResources )SetPatternByName (keyName _egg .PdfObjectName ,pattern _egg .PdfObject )error {if _abgg .Pattern ==nil {_abgg .Pattern =_egg .MakeDict ();};_fdde ,_ebbaf :=_abgg .Pattern .(*_egg .PdfObjectDictionary );if !_ebbaf {return _egg .ErrTypeError ;
};_fdde .Set (keyName ,pattern );return nil ;};
// IsTiling specifies if the pattern is a tiling pattern.
func (_bgbb *PdfPattern )IsTiling ()bool {return _bgbb .PatternType ==1};func (_bcfcc *PdfAcroForm )filteredFields (_cfccg FieldFilterFunc ,_cbdgg bool )[]*PdfField {if _bcfcc ==nil {return nil ;};return _eeceg (_bcfcc .Fields ,_cfccg ,_cbdgg );};
// GetPageDict converts the Page to a PDF object dictionary.
func (_caeg *PdfPage )GetPageDict ()*_egg .PdfObjectDictionary {_bdeaa :=_caeg ._fgfd ;_bdeaa .Clear ();_bdeaa .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0050\u0061\u0067\u0065"));_bdeaa .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_caeg .Parent );
if _caeg .LastModified !=nil {_bdeaa .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_caeg .LastModified .ToPdfObject ());};if _caeg .Resources !=nil {_bdeaa .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_caeg .Resources .ToPdfObject ());
};if _caeg .CropBox !=nil {_bdeaa .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_caeg .CropBox .ToPdfObject ());};if _caeg .MediaBox !=nil {_bdeaa .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_caeg .MediaBox .ToPdfObject ());};if _caeg .BleedBox !=nil {_bdeaa .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_caeg .BleedBox .ToPdfObject ());
};if _caeg .TrimBox !=nil {_bdeaa .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_caeg .TrimBox .ToPdfObject ());};if _caeg .ArtBox !=nil {_bdeaa .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_caeg .ArtBox .ToPdfObject ());};_bdeaa .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_caeg .BoxColorInfo );
_bdeaa .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_caeg .Contents );if _caeg .Rotate !=nil {_bdeaa .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_egg .MakeInteger (*_caeg .Rotate ));};_bdeaa .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_caeg .Group );
_bdeaa .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_caeg .Thumb );_bdeaa .SetIfNotNil ("\u0042",_caeg .B );_bdeaa .SetIfNotNil ("\u0044\u0075\u0072",_caeg .Dur );_bdeaa .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_caeg .Trans );_bdeaa .SetIfNotNil ("\u0041\u0041",_caeg .AA );
_bdeaa .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_caeg .Metadata );_bdeaa .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_caeg .PieceInfo );_bdeaa .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_caeg .StructParents );
_bdeaa .SetIfNotNil ("\u0049\u0044",_caeg .ID );_bdeaa .SetIfNotNil ("\u0050\u005a",_caeg .PZ );_bdeaa .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_caeg .SeparationInfo );_bdeaa .SetIfNotNil ("\u0054\u0061\u0062\u0073",_caeg .Tabs );
_bdeaa .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_caeg .TemplateInstantiated );_bdeaa .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_caeg .PresSteps );_bdeaa .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_caeg .UserUnit );
_bdeaa .SetIfNotNil ("\u0056\u0050",_caeg .VP );if _caeg ._bcce !=nil {_fcggg :=_egg .MakeArray ();for _ ,_caag :=range _caeg ._bcce {if _daecg :=_caag .GetContext ();_daecg !=nil {_fcggg .Append (_daecg .ToPdfObject ());}else {_fcggg .Append (_caag .ToPdfObject ());
};};if _fcggg .Len ()> 0{_bdeaa .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_fcggg );};}else if _caeg .Annots !=nil {_bdeaa .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_caeg .Annots );};return _bdeaa ;};
// GetContext returns the action context which contains the specific type-dependent context.
// The context represents the subaction.
func (_gda *PdfAction )GetContext ()PdfModel {if _gda ==nil {return nil ;};return _gda ._abb ;};
// ReplacePage replaces the original page to a new page.
func (_ggde *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_dffg :=pageNum -1;for _bcbb :=range _ggde ._beac {if _bcbb ==_dffg {_afff :=page .Duplicate ();_cceebc (_afff );_ggde ._beac [_bcbb ]=_afff ;};};};
// NewPdfAnnotationCaret returns a new caret annotation.
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_bfe :=NewPdfAnnotation ();_edge :=&PdfAnnotationCaret {};_edge .PdfAnnotation =_bfe ;_edge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bfe .SetContext (_edge );return _edge ;};
// NewStandardPdfOutputIntent creates a new standard PdfOutputIntent.
func NewStandardPdfOutputIntent (outputCondition ,outputConditionIdentifier ,registryName string ,destOutputProfile []byte ,colorComponents int )*PdfOutputIntent {return &PdfOutputIntent {Type :"\u004f\u0075\u0074p\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074",OutputCondition :outputCondition ,OutputConditionIdentifier :outputConditionIdentifier ,RegistryName :registryName ,DestOutputProfile :destOutputProfile ,ColorComponents :colorComponents ,_gdaaa :_egg .MakeDict ()};
};
// NewPdfActionHide returns a new "hide" action.
func NewPdfActionHide ()*PdfActionHide {_gc :=NewPdfAction ();_gac :=&PdfActionHide {};_gac .PdfAction =_gc ;_gc .SetContext (_gac );return _gac ;};
// ToPdfObject returns the button field dictionary within an indirect object.
func (_ccdg *PdfFieldButton )ToPdfObject ()_egg .PdfObject {_ccdg .PdfField .ToPdfObject ();_ffba :=_ccdg ._agef ;_eafc :=_ffba .PdfObject .(*_egg .PdfObjectDictionary );_eafc .Set ("\u0046\u0054",_egg .MakeName ("\u0042\u0074\u006e"));if _ccdg .Opt !=nil {_eafc .Set ("\u004f\u0070\u0074",_ccdg .Opt );
};return _ffba ;};
// SetReason sets the `Reason` field of the signature.
func (_caec *PdfSignature )SetReason (reason string ){_caec .Reason =_egg .MakeString (reason )};
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
func (_aecf *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_gfgf :=0.3*_aecf .R ()+0.59*_aecf .G ()+0.11*_aecf .B ();_gfgf =_dgb .Min (_dgb .Max (_gfgf ,0.0),1.0);return NewPdfColorDeviceGray (_gfgf );};
// Insert adds an outline item as a child of the current outline item,
// at the specified index.
func (_eabcg *OutlineItem )Insert (index uint ,item *OutlineItem ){_egee :=uint (len (_eabcg .Entries ));if index > _egee {index =_egee ;};_eabcg .Entries =append (_eabcg .Entries [:index ],append ([]*OutlineItem {item },_eabcg .Entries [index :]...)...);
};
// GetContainingPdfObject returns the container of the shading object (indirect object).
func (_eacb *PdfShading )GetContainingPdfObject ()_egg .PdfObject {return _eacb ._cfdbd };
// BorderEffect represents a border effect (Table 167 p. 395).
type BorderEffect int ;
// GetNumPages returns the number of pages in the document.
func (_eeffg *PdfReader )GetNumPages ()(int ,error ){if _eeffg ._dafgab .GetCrypter ()!=nil &&!_eeffg ._dafgab .IsAuthenticated (){return 0,_f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};return len (_eeffg ._abgbc ),nil ;};type pdfFontSimple struct{fontCommon ;_efde *_egg .PdfIndirectObject ;_babec map[_ef .CharCode ]float64 ;_cbdegf _ef .TextEncoder ;_cdee _ef .TextEncoder ;_dbbfc *PdfFontDescriptor ;
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
// BaseFont is derived differently.
FirstChar _egg .PdfObject ;LastChar _egg .PdfObject ;Widths _egg .PdfObject ;Encoding _egg .PdfObject ;_dddd *_bgd .RuneCharSafeMap ;};
// HasExtGState checks if ExtGState name is available.
func (_ecaca *PdfPage )HasExtGState (name _egg .PdfObjectName )bool {if _ecaca .Resources ==nil {return false ;};if _ecaca .Resources .ExtGState ==nil {return false ;};_efca ,_fggfa :=_egg .TraceToDirectObject (_ecaca .Resources .ExtGState ).(*_egg .PdfObjectDictionary );
if !_fggfa {_bag .Log .Debug ("\u0045\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0045\u0078t\u0047\u0053\u0074\u0061\u0074\u0065\u0020\u0064i\u0063t\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u003a\u0020\u0025\u0076",_egg .TraceToDirectObject (_ecaca .Resources .ExtGState ));
return false ;};_afdba :=_efca .Get (name );_agefa :=_afdba !=nil ;return _agefa ;};func (_dbba *PdfReader )newPdfActionJavaScriptFromDict (_abac *_egg .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_abac .Get ("\u004a\u0053")},nil ;
};
// SetFlag sets the flag for the field.
func (_bbdgga *PdfField )SetFlag (flag FieldFlag ){_bbdgga .Ff =_egg .MakeInteger (int64 (flag ))};
// PdfAnnotationCaret represents Caret annotations.
// (Section 12.5.6.11).
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _egg .PdfObject ;Sy _egg .PdfObject ;};
// PdfAnnotationPolygon represents Polygon annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _egg .PdfObject ;LE _egg .PdfObject ;BS _egg .PdfObject ;IC _egg .PdfObject ;BE _egg .PdfObject ;IT _egg .PdfObject ;Measure _egg .PdfObject ;};
// PdfActionLaunch represents a launch action.
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _egg .PdfObject ;Mac _egg .PdfObject ;Unix _egg .PdfObject ;NewWindow _egg .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_fbcg *PdfAnnotationSquare )ToPdfObject ()_egg .PdfObject {_fbcg .PdfAnnotation .ToPdfObject ();_egaf :=_fbcg ._cef ;_dgf :=_egaf .PdfObject .(*_egg .PdfObjectDictionary );if _fbcg .PdfAnnotationMarkup !=nil {_fbcg .PdfAnnotationMarkup .appendToPdfDictionary (_dgf );
};_dgf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_dgf .SetIfNotNil ("\u0042\u0053",_fbcg .BS );_dgf .SetIfNotNil ("\u0049\u0043",_fbcg .IC );_dgf .SetIfNotNil ("\u0042\u0045",_fbcg .BE );
_dgf .SetIfNotNil ("\u0052\u0044",_fbcg .RD );return _egaf ;};
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
type DefaultImageHandler struct{};
// GetCatalogStructTreeRoot gets the catalog StructTreeRoot object.
func (_cedb *PdfReader )GetCatalogStructTreeRoot ()(_egg .PdfObject ,bool ){if _cedb ._eacf ==nil {return nil ,false ;};_bdebf :=_cedb ._eacf .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return _bdebf ,_bdebf !=nil ;
};
// Optimizer is the interface that performs optimization of PDF object structure for output writing.
//
// Optimize receives a slice of input `objects`, performs optimization, including removing, replacing objects and
// output the optimized slice of objects.
type Optimizer interface{Optimize (_bgbcb []_egg .PdfObject )([]_egg .PdfObject ,error );};func _geeb (_abcag *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_abcag }};
// ColorToRGB converts gray -> rgb for a single color component.
func (_fcac *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_bcbf ,_afee :=color .(*PdfColorDeviceGray );if !_afee {_bag .Log .Debug ("\u0049\u006e\u0070\u0075\u0074\u0020\u0063\u006f\u006c\u006fr\u0020\u006e\u006f\u0074\u0020\u0064\u0065v\u0069\u0063\u0065\u0020\u0067\u0072\u0061\u0079\u0020\u0025\u0054",color );
return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_bcbf ),float64 (*_bcbf ),float64 (*_bcbf )),nil ;};func _ebfda (_gfed _egg .PdfObject ,_gfgeb *fontCommon )(*_ga .CMap ,error ){_cfga ,_ffeb :=_egg .GetStream (_gfed );
if !_ffeb {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0074\u006f\u0055\u006e\u0069\u0063\u006f\u0064\u0065\u0054\u006f\u0043m\u0061\u0070\u003a\u0020\u004e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0028\u0025\u0054\u0029",_gfed );
return nil ,_egg .ErrTypeError ;};_gfdfe ,_deef :=_egg .DecodeStream (_cfga );if _deef !=nil {return nil ,_deef ;};_gedaa ,_deef :=_ga .LoadCmapFromData (_gfdfe ,!_gfgeb .isCIDFont ());if _deef !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004f\u0062\u006a\u0065\u0063\u0074\u004e\u0075\u006d\u0062\u0065\u0072\u003d\u0025\u0064\u0020\u0065\u0072r=\u0025\u0076",_cfga .ObjectNumber ,_deef );
};return _gedaa ,_deef ;};
// ToPdfObject converts the font to a PDF representation.
func (_abdc *pdfFontType0 )ToPdfObject ()_egg .PdfObject {if _abdc ._ebdc ==nil {_abdc ._ebdc =&_egg .PdfIndirectObject {};};_gcga :=_abdc .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_abdc ._ebdc .PdfObject =_gcga ;if _abdc .Encoding !=nil {_gcga .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_abdc .Encoding );
}else if _abdc ._bfddc !=nil {_gcga .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_abdc ._bfddc .ToPdfObject ());};if _abdc .DescendantFont !=nil {_gcga .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_egg .MakeArray (_abdc .DescendantFont .ToPdfObject ()));
};return _abdc ._ebdc ;};
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
func (_dffeg *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_adfa ,_aacb :=_egg .GetNumbersAsFloat (objects );
if _aacb !=nil {return nil ,_aacb ;};return _dffeg .ColorFromFloats (_adfa );};
// String returns a string representation of the field.
func (_fcbac *PdfField )String ()string {if _cege ,_fbdac :=_fcbac .ToPdfObject ().(*_egg .PdfIndirectObject );_fbdac {return _f .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_fcbac ._gbdee ,_cege .PdfObject .String ());};return "";};
// GetCustomInfo returns a custom info value for the specified name.
func (_ddfc *PdfInfo )GetCustomInfo (name string )*_egg .PdfObjectString {var _egfc *_egg .PdfObjectString ;if _ddfc ._eggg ==nil {return _egfc ;};if _gfce ,_bagec :=_ddfc ._eggg .Get (*_egg .MakeName (name )).(*_egg .PdfObjectString );_bagec {_egfc =_gfce ;
};return _egfc ;};type pdfCIDFontType0 struct{fontCommon ;_aebag *_egg .PdfIndirectObject ;_dafeb _ef .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// (Required) Dictionary that defines the character collection of the CIDFont.
// See Table 116.
CIDSystemInfo *_egg .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _egg .PdfObject ;W _egg .PdfObject ;DW2 _egg .PdfObject ;W2 _egg .PdfObject ;_decd map[_ef .CharCode ]float64 ;_afdcf float64 ;};
// ToPdfObject implements interface PdfModel.
func (_gcgc *PdfAnnotationText )ToPdfObject ()_egg .PdfObject {_gcgc .PdfAnnotation .ToPdfObject ();_bgfa :=_gcgc ._cef ;_adcf :=_bgfa .PdfObject .(*_egg .PdfObjectDictionary );if _gcgc .PdfAnnotationMarkup !=nil {_gcgc .PdfAnnotationMarkup .appendToPdfDictionary (_adcf );
};_adcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0054\u0065\u0078\u0074"));_adcf .SetIfNotNil ("\u004f\u0070\u0065\u006e",_gcgc .Open );_adcf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gcgc .Name );_adcf .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_gcgc .State );
_adcf .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_gcgc .StateModel );return _bgfa ;};
// Clear clears flag fl from the flag and returns the resulting flag.
func (_aeff FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_aeff .Mask ()&^fl .Mask ())};
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
// for a button field.
func (_edbg *PdfField )GetContext ()PdfModel {return _edbg ._gbdee };func _ggeed ()string {_cgag .Lock ();defer _cgag .Unlock ();if len (_cefff )> 0{return _cefff ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";
};func (_fcc *PdfReader )newPdfActionSetOCGStateFromDict (_agd *_egg .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_agd .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_agd .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;
};func (_gedcd *PdfReader )newPdfFieldSignatureFromDict (_adgb *_egg .PdfObjectDictionary )(*PdfFieldSignature ,error ){_acbe :=&PdfFieldSignature {};_fbgb ,_abgbb :=_egg .GetIndirect (_adgb .Get ("\u0056"));if _abgbb {var _gagb error ;_acbe .V ,_gagb =_gedcd .newPdfSignatureFromIndirect (_fbgb );
if _gagb !=nil {return nil ,_gagb ;};};_acbe .Lock ,_ =_egg .GetIndirect (_adgb .Get ("\u004c\u006f\u0063\u006b"));_acbe .SV ,_ =_egg .GetIndirect (_adgb .Get ("\u0053\u0056"));return _acbe ,nil ;};type fontCommon struct{_dgfdc string ;_ebdf string ;_cbgce string ;
_gdbae _egg .PdfObject ;_bfbgf *_ga .CMap ;_bgacg *PdfFontDescriptor ;_ccaae int64 ;};
// StandardApplier is the interface that performs optimization of the whole PDF document.
// As a result an input document is being changed by the optimizer.
// The writer than takes back all it's parts and overwrites it.
// NOTE: This implementation is in experimental development state.
// Keep in mind that it might change in the subsequent minor versions.
type StandardApplier interface{ApplyStandard (_gcdeg *_dc .Document )error ;};func _baff (_deeb map[_bgd .GID ]int ,_gdbb uint16 )*_egg .PdfObjectArray {_bfbb :=&_egg .PdfObjectArray {};_dfff :=_bgd .GID (_gdbb );for _gddab :=_bgd .GID (0);_gddab < _dfff ;
{_ccgag ,_ebgdd :=_deeb [_gddab ];if !_ebgdd {_gddab ++;continue ;};_decde :=_gddab ;for _gagbg :=_decde +1;_gagbg < _dfff ;_gagbg ++{if _dcad ,_aeae :=_deeb [_gagbg ];!_aeae ||_ccgag !=_dcad {break ;};_decde =_gagbg ;};_bfbb .Append (_egg .MakeInteger (int64 (_gddab )));
_bfbb .Append (_egg .MakeInteger (int64 (_decde )));_bfbb .Append (_egg .MakeInteger (int64 (_ccgag )));_gddab =_decde +1;};return _bfbb ;};
// GetNumComponents returns the number of color components (4 for CMYK32).
func (_aeba *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};func (_ggdca *PdfWriter )getPdfVersion ()string {return _f .Sprintf ("\u0025\u0064\u002e%\u0064",_ggdca ._dacce .Major ,_ggdca ._dacce .Minor );};
// FieldFlattenOpts defines a set of options which can be used to configure
// the field flattening process.
type FieldFlattenOpts struct{
// FilterFunc allows filtering the form fields used in the flattening
// process. If the filter function returns true, the field is flattened,
// otherwise it is skipped.
// If a non-terminal field is discarded, all of its children (the fields
// present in the Kids array) are discarded as well.
// Non-terminal fields are kept in the AcroForm if one or more of their
// child fields have not been selected for flattening.
// If a filter function is not provided, all form fields are flattened.
FilterFunc FieldFilterFunc ;
// AnnotFilterFunc allows filtering the annotations in the flattening
// process. If the filter function returns true, the annotation is flattened,
// otherwise it is skipped.
AnnotFilterFunc AnnotFilterFunc ;};
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
func (_feeagc DefaultImageHandler )NewImageFromGoImage (goimg _cd .Image )(*Image ,error ){_afcaf ,_caad :=_eg .FromGoImage (goimg );if _caad !=nil {return nil ,_caad ;};_aecdc :=_cggba (_afcaf .Base ());return &_aecdc ,nil ;};
// SetImageHandler sets the image handler used by the package.
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };
// PdfFieldText represents a text field where user can enter text.
type PdfFieldText struct{*PdfField ;DA *_egg .PdfObjectString ;Q *_egg .PdfObjectInteger ;DS *_egg .PdfObjectString ;RV _egg .PdfObject ;MaxLen *_egg .PdfObjectInteger ;};
// DSS represents a Document Security Store dictionary.
// The DSS dictionary contains both global and signature specific validation
// information. The certificates and revocation data in the `Certs`, `OCSPs`,
// and `CRLs` fields can be used to validate any signature in the document.
// Additionally, the VRI entry contains validation data per signature.
// The keys in the VRI entry are calculated as upper(hex(sha1(sig.Contents))).
// The values are VRI dictionaries containing certificates and revocation
// information used for validating a single signature.
// See ETSI TS 102 778-4 V1.1.1 for more information.
type DSS struct{_eaceg *_egg .PdfIndirectObject ;Certs []*_egg .PdfObjectStream ;OCSPs []*_egg .PdfObjectStream ;CRLs []*_egg .PdfObjectStream ;VRI map[string ]*VRI ;_gafe map[string ]*_egg .PdfObjectStream ;_gaaec map[string ]*_egg .PdfObjectStream ;_eeecd map[string ]*_egg .PdfObjectStream ;
};
// Evaluate runs the function. Input is [x1 x2 x3].
func (_fcdc *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _fcdc ._aafea ==nil {_fcdc ._aafea =_cde .NewPSExecutor (_fcdc .Program );};var _afbg []_cde .PSObject ;for _ ,_bcfdg :=range xVec {_afbg =append (_afbg ,_cde .MakeReal (_bcfdg ));
};_dddgf ,_abec :=_fcdc ._aafea .Execute (_afbg );if _abec !=nil {return nil ,_abec ;};_cabgdc ,_abec :=_cde .PSObjectArrayToFloat64Array (_dddgf );if _abec !=nil {return nil ,_abec ;};return _cabgdc ,nil ;};
// SubsetRegistered subsets the font to only the glyphs that have been registered by the encoder.
// NOTE: This only works on fonts that support subsetting. For unsupported fonts this is a no-op, although a debug
// message is emitted. Currently supported fonts are embedded Truetype CID fonts (type 0).
// NOTE: Make sure to call this soon before writing (once all needed runes have been registered).
// If using package creator, use its EnableFontSubsetting method instead.
func (_edafc *PdfFont )SubsetRegistered ()error {switch _abeg :=_edafc ._edde .(type ){case *pdfFontType0 :_daea :=_abeg .subsetRegistered ();if _daea !=nil {_bag .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_daea );
return _daea ;};if _abeg ._ebdc !=nil {if _abeg ._bfddc !=nil {_abeg ._bfddc .ToPdfObject ();};_abeg .ToPdfObject ();};default:_bag .Log .Debug ("F\u006f\u006e\u0074\u0020\u0025\u0054 \u0064\u006f\u0065\u0073\u0020\u006eo\u0074\u0020\u0073\u0075\u0070\u0070\u006fr\u0074\u0020\u0073\u0075\u0062\u0073\u0065\u0074\u0074\u0069n\u0067",_abeg );
};return nil ;};func (_afedd *PdfReader )resolveReference (_ebfgd *_egg .PdfObjectReference )(_egg .PdfObject ,bool ,error ){_aagfd ,_eagff :=_afedd ._dafgab .ObjCache [int (_ebfgd .ObjectNumber )];if !_eagff {_bag .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_ebfgd );
_edddd ,_dcaa :=_afedd ._dafgab .LookupByReference (*_ebfgd );if _dcaa !=nil {return nil ,false ,_dcaa ;};_afedd ._dafgab .ObjCache [int (_ebfgd .ObjectNumber )]=_edddd ;return _edddd ,false ,nil ;};return _aagfd ,true ,nil ;};type fontFile struct{_ebfa string ;
_eecf string ;_gdcd _ef .SimpleEncoder ;};
// PdfModel is a higher level PDF construct which can be collapsed into a PdfObject.
// Each PdfModel has an underlying PdfObject and vice versa (one-to-one).
// Under normal circumstances there should only be one copy of each.
// Copies can be made, but care must be taken to do it properly.
type PdfModel interface{ToPdfObject ()_egg .PdfObject ;GetContainingPdfObject ()_egg .PdfObject ;};func _eebf (_cefe *XObjectImage )error {if _cefe .SMask ==nil {return nil ;};_acfcb ,_baaa :=_cefe .SMask .(*_egg .PdfObjectStream );if !_baaa {_bag .Log .Debug ("\u0053\u004da\u0073\u006b\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u002a\u0050\u0064\u0066\u004f\u0062\u006a\u0065\u0063\u0074\u0053\u0074re\u0061\u006d");
return _egg .ErrTypeError ;};_bdggg :=_acfcb .PdfObjectDictionary ;_geaeb :=_bdggg .Get ("\u004d\u0061\u0074t\u0065");if _geaeb ==nil {return nil ;};_ccfa ,_gada :=_eecfg (_geaeb .(*_egg .PdfObjectArray ));if _gada !=nil {return _gada ;};_gagac :=_egg .MakeArrayFromFloats ([]float64 {_ccfa });
_bdggg .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_gagac );return nil ;};
// ToPdfObject implements interface PdfModel.
func (_cdaa *PdfAnnotationRedact )ToPdfObject ()_egg .PdfObject {_cdaa .PdfAnnotation .ToPdfObject ();_gaeb :=_cdaa ._cef ;_fccf :=_gaeb .PdfObject .(*_egg .PdfObjectDictionary );_cdaa .PdfAnnotationMarkup .appendToPdfDictionary (_fccf );_fccf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));
_fccf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_cdaa .QuadPoints );_fccf .SetIfNotNil ("\u0049\u0043",_cdaa .IC );_fccf .SetIfNotNil ("\u0052\u004f",_cdaa .RO );_fccf .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_cdaa .OverlayText );
_fccf .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_cdaa .Repeat );_fccf .SetIfNotNil ("\u0044\u0041",_cdaa .DA );_fccf .SetIfNotNil ("\u0051",_cdaa .Q );return _gaeb ;};func _eddee (_eegbf _egg .PdfObject ){_bag .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_eegbf ,_eegbf .String ());
if _cfdbge ,_faaca :=_eegbf .(*_egg .PdfObjectStream );_faaca {_cadgg ,_gfbdc :=_egg .DecodeStream (_cfdbge );if _gfbdc !=nil {_bag .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_gfbdc );return ;};_bag .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_cadgg );
}else if _ceec ,_dbgab :=_eegbf .(*_egg .PdfIndirectObject );_dbgab {_bag .Log .Debug ("\u0025\u0054\u0020%\u0076",_ceec .PdfObject ,_ceec .PdfObject );_bag .Log .Debug ("\u0025\u0073",_ceec .PdfObject .String ());};};
// CompliancePdfReader is a wrapper over PdfReader that is used for verifying if the input Pdf document matches the
// compliance rules of standards like PDF/A.
// NOTE: This implementation is in experimental development state.
// Keep in mind that it might change in the subsequent minor versions.
type CompliancePdfReader struct{*PdfReader ;_fgea _egg .ParserMetadata ;};
// ColorFromFloats returns a new PdfColor based on input color components.
func (_fgfcd *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_fgfcd .GetNumComponents (){return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fcbbg ,_bbad :=_fgfcd .TintTransform .Evaluate (vals );
if _bbad !=nil {return nil ,_bbad ;};_ggbe ,_bbad :=_fgfcd .AlternateSpace .ColorFromFloats (_fcbbg );if _bbad !=nil {return nil ,_bbad ;};return _ggbe ,nil ;};
// ColorToRGB only converts color used with uncolored patterns (defined in underlying colorspace). Does not go into the
// pattern objects and convert those. If that is desired, needs to be done separately. See for example
// grayscale conversion example in unidoc-examples repo.
func (_fgadb *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_bbe ,_cceaf :=color .(*PdfColorPattern );if !_cceaf {_bag .Log .Debug ("\u0043\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0070a\u0074\u0074\u0065\u0072\u006e\u0020\u0028\u0067\u006f\u0074 \u0025\u0054\u0029",color );
return nil ,ErrTypeCheck ;};if _bbe .Color ==nil {return color ,nil ;};if _fgadb .UnderlyingCS ==nil {return nil ,_gd .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};return _fgadb .UnderlyingCS .ColorToRGB (_bbe .Color );
};
// GetNamedDestinations returns the Dests entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_fabfd *PdfReader )GetNamedDestinations ()(_egg .PdfObject ,error ){_dbdb :=_egg .ResolveReference (_fabfd ._eacf .Get ("\u0044\u0065\u0073t\u0073"));if _dbdb ==nil {return nil ,nil ;};if !_fabfd ._cede {_fggbc :=_fabfd .traverseObjectData (_dbdb );
if _fggbc !=nil {return nil ,_fggbc ;};};return _dbdb ,nil ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain three PdfObjectFloat elements representing
// the L, A and B components of the color.
func (_dbeb *PdfColorspaceLab )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_acfe ,_adeg :=_egg .GetNumbersAsFloat (objects );
if _adeg !=nil {return nil ,_adeg ;};return _dbeb .ColorFromFloats (_acfe );};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_ecfd pdfCIDFontType0 )GetRuneMetrics (r rune )(_bgd .CharMetrics ,bool ){return _bgd .CharMetrics {Wx :_ecfd ._afdcf },true ;};
// ToPdfObject returns the PDF representation of the function.
func (_abedc *PdfFunctionType2 )ToPdfObject ()_egg .PdfObject {_ccgad :=_egg .MakeDict ();_ccgad .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_egg .MakeInteger (2));_gbgbd :=&_egg .PdfObjectArray {};for _ ,_fdddad :=range _abedc .Domain {_gbgbd .Append (_egg .MakeFloat (_fdddad ));
};_ccgad .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gbgbd );if _abedc .Range !=nil {_cbade :=&_egg .PdfObjectArray {};for _ ,_daadd :=range _abedc .Range {_cbade .Append (_egg .MakeFloat (_daadd ));};_ccgad .Set ("\u0052\u0061\u006eg\u0065",_cbade );
};if _abedc .C0 !=nil {_fggcf :=&_egg .PdfObjectArray {};for _ ,_cdeab :=range _abedc .C0 {_fggcf .Append (_egg .MakeFloat (_cdeab ));};_ccgad .Set ("\u0043\u0030",_fggcf );};if _abedc .C1 !=nil {_gbafg :=&_egg .PdfObjectArray {};for _ ,_cggbf :=range _abedc .C1 {_gbafg .Append (_egg .MakeFloat (_cggbf ));
};_ccgad .Set ("\u0043\u0031",_gbafg );};_ccgad .Set ("\u004e",_egg .MakeFloat (_abedc .N ));if _abedc ._ffcfb !=nil {_abedc ._ffcfb .PdfObject =_ccgad ;return _abedc ._ffcfb ;};return _ccgad ;};
// ToPdfObject returns the PDF representation of the function.
func (_fbcfa *PdfFunctionType4 )ToPdfObject ()_egg .PdfObject {_beee :=_fbcfa ._cbebd ;if _beee ==nil {_fbcfa ._cbebd =&_egg .PdfObjectStream {};_beee =_fbcfa ._cbebd ;};_deecbb :=_egg .MakeDict ();_deecbb .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_egg .MakeInteger (4));
_efgac :=&_egg .PdfObjectArray {};for _ ,_fdeca :=range _fbcfa .Domain {_efgac .Append (_egg .MakeFloat (_fdeca ));};_deecbb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_efgac );_ffec :=&_egg .PdfObjectArray {};for _ ,_aaffa :=range _fbcfa .Range {_ffec .Append (_egg .MakeFloat (_aaffa ));
};_deecbb .Set ("\u0052\u0061\u006eg\u0065",_ffec );if _fbcfa ._fafff ==nil &&_fbcfa .Program !=nil {_fbcfa ._fafff =[]byte (_fbcfa .Program .String ());};_deecbb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_fbcfa ._fafff ))));
_beee .Stream =_fbcfa ._fafff ;_beee .PdfObjectDictionary =_deecbb ;return _beee ;};var _efdg =_bae .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
// indicating whether it was found or not.
func (_efdb *PdfPageResources )GetExtGState (keyName _egg .PdfObjectName )(_egg .PdfObject ,bool ){if _efdb .ExtGState ==nil {return nil ,false ;};_bfbdc ,_efbfb :=_egg .TraceToDirectObject (_efdb .ExtGState ).(*_egg .PdfObjectDictionary );if !_efbfb {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0049n\u0076\u0061\u006c\u0069\u0064 \u0045\u0078\u0074\u0047\u0053\u0074\u0061\u0074\u0065\u0020\u0065\u006e\u0074\u0072\u0079\u0020\u002d\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_efdb .ExtGState );
return nil ,false ;};if _cgdg :=_bfbdc .Get (keyName );_cgdg !=nil {return _cgdg ,true ;};return nil ,false ;};
// SetEncoder sets the encoding for the underlying font.
// TODO(peterwilliams97): Change function signature to SetEncoder(encoder *textencoding.simpleEncoder).
// TODO(gunnsth): Makes sense if SetEncoder is removed from the interface fonts.Font as proposed in PR #260.
func (_eggd *pdfFontSimple )SetEncoder (encoder _ef .TextEncoder ){_eggd ._cbdegf =encoder };func (_fcdd *Image )resampleLowBits (_edeaf []uint32 ){_gede :=_eg .BytesPerLine (int (_fcdd .Width ),int (_fcdd .BitsPerComponent ),_fcdd .ColorComponents );_daeca :=make ([]byte ,_fcdd .ColorComponents *_gede *int (_fcdd .Height ));
_bfab :=int (_fcdd .BitsPerComponent )*_fcdd .ColorComponents *int (_fcdd .Width );_aeagf :=uint8 (8);var (_bbaee ,_gaggd int ;_gdfb uint32 ;);for _gbcf :=0;_gbcf < int (_fcdd .Height );_gbcf ++{_gaggd =_gbcf *_gede ;for _acdac :=0;_acdac < _bfab ;_acdac ++{_gdfb =_edeaf [_bbaee ];
_aeagf -=uint8 (_fcdd .BitsPerComponent );_daeca [_gaggd ]|=byte (_gdfb )<<_aeagf ;if _aeagf ==0{_aeagf =8;_gaggd ++;};_bbaee ++;};};_fcdd .Data =_daeca ;};var _ pdfFont =(*pdfFontType3 )(nil );
// AcroFormNeedsRepair returns true if the document contains widget annotations
// linked to fields which are not referenced in the AcroForm. The AcroForm can
// be repaired using the RepairAcroForm method of the reader.
func (_ecdae *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _eadb []*PdfField ;if _ecdae .AcroForm !=nil {_eadb =_ecdae .AcroForm .AllFields ();};_bgaaa :=make (map[*PdfField ]struct{},len (_eadb ));for _ ,_baab :=range _eadb {_bgaaa [_baab ]=struct{}{};
};for _ ,_fedbc :=range _ecdae .PageList {_efcae ,_ceeed :=_fedbc .GetAnnotations ();if _ceeed !=nil {return false ,_ceeed ;};for _ ,_fecac :=range _efcae {_ceaef ,_edagf :=_fecac .GetContext ().(*PdfAnnotationWidget );if !_edagf {continue ;};_eebe :=_ceaef .Field ();
if _eebe ==nil {return true ,nil ;};if _ ,_gefdf :=_bgaaa [_eebe ];!_gefdf {return true ,nil ;};};};return false ,nil ;};func (_gfabe *PdfFilespec )getDict ()*_egg .PdfObjectDictionary {if _edgc ,_cbeb :=_gfabe ._fbdd .(*_egg .PdfIndirectObject );_cbeb {_adbfe ,_badab :=_edgc .PdfObject .(*_egg .PdfObjectDictionary );
if !_badab {return nil ;};return _adbfe ;}else if _abbf ,_cegaa :=_gfabe ._fbdd .(*_egg .PdfObjectDictionary );_cegaa {return _abbf ;}else {_bag .Log .Debug ("\u0054\u0072\u0079\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020F\u0069\u006c\u0065\u0073\u0070\u0065\u0063\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u006f\u0062\u006a\u0065\u0063\u0074 \u0074\u0079p\u0065\u0020(\u0025T\u0029",_gfabe ._fbdd );
return nil ;};};func _dgagb (_bafeaf []*_egg .PdfObjectStream )*_egg .PdfObjectArray {if len (_bafeaf )==0{return nil ;};_cgbc :=make ([]_egg .PdfObject ,0,len (_bafeaf ));for _ ,_fdddb :=range _bafeaf {_cgbc =append (_cgbc ,_fdddb );};return _egg .MakeArray (_cgbc ...);
};
// PdfShadingPattern is a Shading patterns that provide a smooth transition between colors across an area to be painted,
// i.e. color(x,y) = f(x,y) at each point.
// It is a type 2 pattern (PatternType = 2).
type PdfShadingPattern struct{*PdfPattern ;Shading *PdfShading ;Matrix *_egg .PdfObjectArray ;ExtGState _egg .PdfObject ;};
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
func (_ebfef *modelManager )GetModelFromPrimitive (primitive _egg .PdfObject )PdfModel {model ,_bcggc :=_ebfef ._ggbg [primitive ];if !_bcggc {return nil ;};return model ;};
// PdfFontDescriptor specifies metrics and other attributes of a font and can refer to a FontFile
// for embedded fonts.
// 9.8 Font Descriptors (page 281)
type PdfFontDescriptor struct{FontName _egg .PdfObject ;FontFamily _egg .PdfObject ;FontStretch _egg .PdfObject ;FontWeight _egg .PdfObject ;Flags _egg .PdfObject ;FontBBox _egg .PdfObject ;ItalicAngle _egg .PdfObject ;Ascent _egg .PdfObject ;Descent _egg .PdfObject ;
Leading _egg .PdfObject ;CapHeight _egg .PdfObject ;XHeight _egg .PdfObject ;StemV _egg .PdfObject ;StemH _egg .PdfObject ;AvgWidth _egg .PdfObject ;MaxWidth _egg .PdfObject ;MissingWidth _egg .PdfObject ;FontFile _egg .PdfObject ;FontFile2 _egg .PdfObject ;
FontFile3 _egg .PdfObject ;CharSet _egg .PdfObject ;_adfdfe int ;_eedab float64 ;*fontFile ;_eccg *_bgd .TtfType ;
// Additional entries for CIDFonts
Style _egg .PdfObject ;Lang _egg .PdfObject ;FD _egg .PdfObject ;CIDSet _egg .PdfObject ;_faeb *_egg .PdfIndirectObject ;};
// PageCallback callback function used in page loading
// that could be used to modify the page content.
//
// Deprecated: will be removed in v4. Use PageProcessCallback instead.
type PageCallback func (_dfadd int ,_cbbfc *PdfPage );func (_eebg *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};
// NewPdfActionGoTo returns a new "go to" action.
func NewPdfActionGoTo ()*PdfActionGoTo {_cgf :=NewPdfAction ();_egb :=&PdfActionGoTo {};_egb .PdfAction =_cgf ;_cgf .SetContext (_egb );return _egb ;};type pdfFont interface{_bgd .Font ;
// ToPdfObject returns a PDF representation of the font and implements interface Model.
ToPdfObject ()_egg .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
// C returns the value of the C component of the color.
func (_ecga *PdfColorCalRGB )C ()float64 {return _ecga [2]};
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
func NewPdfFilespecFromObj (obj _egg .PdfObject )(*PdfFilespec ,error ){_fdfff :=&PdfFilespec {};var _gdff *_egg .PdfObjectDictionary ;if _cecgf ,_afbb :=_egg .GetIndirect (obj );_afbb {_fdfff ._fbdd =_cecgf ;_bcgd ,_fceb :=_egg .GetDict (_cecgf .PdfObject );
if !_fceb {_bag .Log .Debug ("\u004f\u0062\u006a\u0065c\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074i\u006f\u006e\u0061\u0072\u0079\u0020\u0074y\u0070\u0065");return nil ,_egg .ErrTypeError ;};_gdff =_bcgd ;}else if _fabc ,_dbede :=_egg .GetDict (obj );
_dbede {_fdfff ._fbdd =_fabc ;_gdff =_fabc ;}else {_bag .Log .Debug ("O\u0062\u006a\u0065\u0063\u0074\u0020t\u0079\u0070\u0065\u0020\u0075\u006e\u0065\u0078\u0070e\u0063\u0074\u0065d\u0020(\u0025\u0054\u0029",obj );return nil ,_egg .ErrTypeError ;};if _gdff ==nil {_bag .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
return nil ,_gd .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _aecd :=_gdff .Get ("\u0054\u0079\u0070\u0065");_aecd !=nil {_dfdf ,_cbbb :=_aecd .(*_egg .PdfObjectName );if !_cbbb {_bag .Log .Trace ("\u0049\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u0021\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u006f\u0066\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029\u0020\u002d\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u004e\u0061m\u0065",_aecd );
}else {if *_dfdf !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_bag .Log .Trace ("\u0055\u006e\u0073\u0075\u0073\u0070e\u0063\u0074\u0065\u0064\u0020\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020F\u0069\u006c\u0065\u0073\u0070\u0065\u0063 \u0028\u0025\u0073\u0029",*_dfdf );
};};};if _ffbg :=_gdff .Get ("\u0046\u0053");_ffbg !=nil {_fdfff .FS =_ffbg ;};if _gebf :=_gdff .Get ("\u0046");_gebf !=nil {_fdfff .F =_gebf ;};if _egfeb :=_gdff .Get ("\u0055\u0046");_egfeb !=nil {_fdfff .UF =_egfeb ;};if _efgf :=_gdff .Get ("\u0044\u004f\u0053");
_efgf !=nil {_fdfff .DOS =_efgf ;};if _bfbc :=_gdff .Get ("\u004d\u0061\u0063");_bfbc !=nil {_fdfff .Mac =_bfbc ;};if _bdef :=_gdff .Get ("\u0055\u006e\u0069\u0078");_bdef !=nil {_fdfff .Unix =_bdef ;};if _dbgde :=_gdff .Get ("\u0049\u0044");_dbgde !=nil {_fdfff .ID =_dbgde ;
};if _adaf :=_gdff .Get ("\u0056");_adaf !=nil {_fdfff .V =_adaf ;};if _eafcd :=_gdff .Get ("\u0045\u0046");_eafcd !=nil {_fdfff .EF =_eafcd ;};if _agbe :=_gdff .Get ("\u0052\u0046");_agbe !=nil {_fdfff .RF =_agbe ;};if _agge :=_gdff .Get ("\u0044\u0065\u0073\u0063");
_agge !=nil {_fdfff .Desc =_agge ;};if _fgag :=_gdff .Get ("\u0043\u0049");_fgag !=nil {_fdfff .CI =_fgag ;};return _fdfff ,nil ;};
// B returns the value of the B component of the color.
func (_bcae *PdfColorLab )B ()float64 {return _bcae [2]};func (_egbb *PdfFont )baseFields ()*fontCommon {if _egbb ._edde ==nil {_bag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0062\u0061\u0073\u0065\u0046\u0069\u0065l\u0064s\u002e \u0063o\u006e\u0074\u0065\u0078\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c\u002e");
return nil ;};return _egbb ._edde .baseFields ();};func (_aadg *PdfPage )setContainer (_fdggad *_egg .PdfIndirectObject ){_fdggad .PdfObject =_aadg ._fgfd ;_aadg ._dfee =_fdggad ;};
// ToPdfObject implements interface PdfModel.
func (_cbff *PdfAnnotationMovie )ToPdfObject ()_egg .PdfObject {_cbff .PdfAnnotation .ToPdfObject ();_fgce :=_cbff ._cef ;_adbc :=_fgce .PdfObject .(*_egg .PdfObjectDictionary );_adbc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u004d\u006f\u0076i\u0065"));
_adbc .SetIfNotNil ("\u0054",_cbff .T );_adbc .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_cbff .Movie );_adbc .SetIfNotNil ("\u0041",_cbff .A );return _fgce ;};
// NewPdfAnnotationText returns a new text annotation.
func NewPdfAnnotationText ()*PdfAnnotationText {_aeg :=NewPdfAnnotation ();_edea :=&PdfAnnotationText {};_edea .PdfAnnotation =_aeg ;_edea .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aeg .SetContext (_edea );return _edea ;};
// NewXObjectFormFromStream builds the Form XObject from a stream object.
// TODO: Should this be exposed? Consider different access points.
func NewXObjectFormFromStream (stream *_egg .PdfObjectStream )(*XObjectForm ,error ){_fdbcc :=&XObjectForm {};_fdbcc ._acgef =stream ;_cefgd :=*(stream .PdfObjectDictionary );_bafab ,_fddf :=_egg .NewEncoderFromStream (stream );if _fddf !=nil {return nil ,_fddf ;
};_fdbcc .Filter =_bafab ;if _bagdf :=_cefgd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_bagdf !=nil {_dgeac ,_baaba :=_bagdf .(*_egg .PdfObjectName );if !_baaba {return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};if *_dgeac !="\u0046\u006f\u0072\u006d"{_bag .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");
};};if _ggedf :=_cefgd .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_ggedf !=nil {_fdbcc .FormType =_ggedf ;};if _gcfbc :=_cefgd .Get ("\u0042\u0042\u006f\u0078");_gcfbc !=nil {_fdbcc .BBox =_gcfbc ;};if _cffadb :=_cefgd .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
_cffadb !=nil {_fdbcc .Matrix =_cffadb ;};if _afefe :=_cefgd .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_afefe !=nil {_afefe =_egg .TraceToDirectObject (_afefe );_fcdce ,_abgae :=_afefe .(*_egg .PdfObjectDictionary );if !_abgae {_bag .Log .Debug ("\u0049\u006e\u0076\u0061\u006ci\u0064\u0020\u0058\u004f\u0062j\u0065c\u0074\u0020\u0046\u006f\u0072\u006d\u0020\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006f\u0062j\u0065\u0063\u0074\u002c\u0020\u0070\u006f\u0069\u006e\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u006e\u006f\u006e\u002d\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");
return nil ,_egg .ErrTypeError ;};_defbe ,_fdag :=NewPdfPageResourcesFromDict (_fcdce );if _fdag !=nil {_bag .Log .Debug ("\u0046\u0061i\u006c\u0065\u0064\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0020\u0072\u0065\u0073\u006f\u0075rc\u0065\u0073");
return nil ,_fdag ;};_fdbcc .Resources =_defbe ;_bag .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_fdbcc .Resources );};_fdbcc .Group =_cefgd .Get ("\u0047\u0072\u006fu\u0070");
_fdbcc .Ref =_cefgd .Get ("\u0052\u0065\u0066");_fdbcc .MetaData =_cefgd .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_fdbcc .PieceInfo =_cefgd .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_fdbcc .LastModified =_cefgd .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");
_fdbcc .StructParent =_cefgd .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_fdbcc .StructParents =_cefgd .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_fdbcc .OPI =_cefgd .Get ("\u004f\u0050\u0049");
_fdbcc .OC =_cefgd .Get ("\u004f\u0043");_fdbcc .Name =_cefgd .Get ("\u004e\u0061\u006d\u0065");_fdbcc .Stream =stream .Stream ;return _fdbcc ,nil ;};
// Encoder returns the font's text encoder.
func (_cbdeg *PdfFont )Encoder ()_ef .TextEncoder {_dgdb :=_cbdeg .actualFont ();if _dgdb ==nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0045n\u0063\u006f\u0064er\u0020\u006e\u006f\u0074\u0020\u0069m\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0066\u006f\u0072\u0020\u0066o\u006e\u0074\u0020\u0074\u0079\u0070\u0065\u003d%\u0023\u0054",_cbdeg ._edde );
return nil ;};return _dgdb .Encoder ();};
// PdfColorDeviceCMYK is a CMYK32 color, where each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorDeviceCMYK [4]float64 ;
// NewPdfDate returns a new PdfDate object from a PDF date string (see 7.9.4 Dates).
// format: "D: YYYYMMDDHHmmSSOHH'mm"
func NewPdfDate (dateStr string )(PdfDate ,error ){_bfbdf ,_aacfd :=_ce .ParsePdfTime (dateStr );if _aacfd !=nil {return PdfDate {},_aacfd ;};return NewPdfDateFromTime (_bfbdf );};func (_faefc *fontFile )loadFromSegments (_dedd ,_abed []byte )error {_bag .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_dedd ),len (_abed ));
_abdeg :=_faefc .parseASCIIPart (_dedd );if _abdeg !=nil {return _abdeg ;};_bag .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_faefc );if len (_abed )==0{return nil ;};_bag .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_faefc );
return nil ;};
// L returns the value of the L component of the color.
func (_egcg *PdfColorLab )L ()float64 {return _egcg [0]};
// NewPdfField returns an initialized PdfField.
func NewPdfField ()*PdfField {return &PdfField {_agef :_egg .MakeIndirectObject (_egg .MakeDict ())}};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_dfeg *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _dfeg .UnderlyingCS ==nil {return nil ,_gd .New ("u\u006e\u0064\u0065\u0072\u006c\u0079i\u006e\u0067\u0020\u0043\u0053\u0020\u006e\u006f\u0074 \u0073\u0070\u0065c\u0069f\u0069\u0065\u0064");
};return _dfeg .UnderlyingCS .ColorFromFloats (vals );};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_fgaab *PdfShadingType7 )ToPdfObject ()_egg .PdfObject {_fgaab .PdfShading .ToPdfObject ();_cabbc ,_gacdb :=_fgaab .getShadingDict ();if _gacdb !=nil {_bag .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
return nil ;};if _fgaab .BitsPerCoordinate !=nil {_cabbc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_fgaab .BitsPerCoordinate );};if _fgaab .BitsPerComponent !=nil {_cabbc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fgaab .BitsPerComponent );
};if _fgaab .BitsPerFlag !=nil {_cabbc .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_fgaab .BitsPerFlag );};if _fgaab .Decode !=nil {_cabbc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_fgaab .Decode );};if _fgaab .Function !=nil {if len (_fgaab .Function )==1{_cabbc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fgaab .Function [0].ToPdfObject ());
}else {_bcfcg :=_egg .MakeArray ();for _ ,_fbgad :=range _fgaab .Function {_bcfcg .Append (_fbgad .ToPdfObject ());};_cabbc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bcfcg );};};return _fgaab ._cfdbd ;};
// PdfAnnotationCircle represents Circle annotations.
// (Section 12.5.6.8).
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _egg .PdfObject ;IC _egg .PdfObject ;BE _egg .PdfObject ;RD _egg .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_feeb *PdfAnnotationLink )ToPdfObject ()_egg .PdfObject {_feeb .PdfAnnotation .ToPdfObject ();_dbgd :=_feeb ._cef ;_eecg :=_dbgd .PdfObject .(*_egg .PdfObjectDictionary );_eecg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u004c\u0069\u006e\u006b"));
if _feeb ._fdb !=nil &&_feeb ._fdb ._abb !=nil {_eecg .Set ("\u0041",_feeb ._fdb ._abb .ToPdfObject ());}else if _feeb .A !=nil {_eecg .Set ("\u0041",_feeb .A );};_eecg .SetIfNotNil ("\u0044\u0065\u0073\u0074",_feeb .Dest );_eecg .SetIfNotNil ("\u0048",_feeb .H );
_eecg .SetIfNotNil ("\u0050\u0041",_feeb .PA );_eecg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_feeb .QuadPoints );_eecg .SetIfNotNil ("\u0042\u0053",_feeb .BS );return _dbgd ;};func (_eeca *PdfReader )newPdfAnnotationFileAttachmentFromDict (_bbff *_egg .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_aaeb :=PdfAnnotationFileAttachment {};
_daeg ,_abg :=_eeca .newPdfAnnotationMarkupFromDict (_bbff );if _abg !=nil {return nil ,_abg ;};_aaeb .PdfAnnotationMarkup =_daeg ;_aaeb .FS =_bbff .Get ("\u0046\u0053");_aaeb .Name =_bbff .Get ("\u004e\u0061\u006d\u0065");return &_aaeb ,nil ;};
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
type PdfAnnotation struct{_gcf PdfModel ;Rect _egg .PdfObject ;Contents _egg .PdfObject ;P _egg .PdfObject ;NM _egg .PdfObject ;M _egg .PdfObject ;F _egg .PdfObject ;AP _egg .PdfObject ;AS _egg .PdfObject ;Border _egg .PdfObject ;C _egg .PdfObject ;StructParent _egg .PdfObject ;
OC _egg .PdfObject ;_cef *_egg .PdfIndirectObject ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_dfeaa *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_dfeaa .NumInputs {_bag .Log .Error ("\u004eu\u006d\u0062e\u0072\u0020\u006f\u0066 \u0069\u006e\u0070u\u0074\u0073\u0020\u006e\u006f\u0074\u0020\u006d\u0061tc\u0068\u0069\u006eg\u0020\u0077h\u0061\u0074\u0020\u0069\u0073\u0020n\u0065\u0065d\u0065\u0064");
return nil ,_gd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _dfeaa ._efbce ==nil {_ccbcd :=_dfeaa .processSamples ();if _ccbcd !=nil {return nil ,_ccbcd ;};};_dbcda :=_dfeaa .Encode ;if _dbcda ==nil {_dbcda =[]float64 {};
for _decbg :=0;_decbg < len (_dfeaa .Size );_decbg ++{_dbcda =append (_dbcda ,0);_dbcda =append (_dbcda ,float64 (_dfeaa .Size [_decbg ]-1));};};_cbag :=_dfeaa .Decode ;if _cbag ==nil {_cbag =_dfeaa .Range ;};_aade :=make ([]int ,len (x ));for _cgbga :=0;
_cgbga < len (x );_cgbga ++{_fdddc :=x [_cgbga ];_fgefd :=_dgb .Min (_dgb .Max (_fdddc ,_dfeaa .Domain [2*_cgbga ]),_dfeaa .Domain [2*_cgbga +1]);_cedc :=_eg .LinearInterpolate (_fgefd ,_dfeaa .Domain [2*_cgbga ],_dfeaa .Domain [2*_cgbga +1],_dbcda [2*_cgbga ],_dbcda [2*_cgbga +1]);
_bcab :=_dgb .Min (_dgb .Max (_cedc ,0),float64 (_dfeaa .Size [_cgbga ]-1));_bbce :=int (_dgb .Floor (_bcab +0.5));if _bbce < 0{_bbce =0;}else if _bbce > _dfeaa .Size [_cgbga ]{_bbce =_dfeaa .Size [_cgbga ]-1;};_aade [_cgbga ]=_bbce ;};_dcba :=_aade [0];
for _ffegd :=1;_ffegd < _dfeaa .NumInputs ;_ffegd ++{_bgdab :=_aade [_ffegd ];for _cddcgf :=0;_cddcgf < _ffegd ;_cddcgf ++{_bgdab *=_dfeaa .Size [_cddcgf ];};_dcba +=_bgdab ;};_dcba *=_dfeaa .NumOutputs ;var _ddecg []float64 ;for _cdcdf :=0;_cdcdf < _dfeaa .NumOutputs ;
_cdcdf ++{_aafab :=_dcba +_cdcdf ;if _aafab >=len (_dfeaa ._efbce ){_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u003a \u006e\u006ft\u0020\u0065\u006eo\u0075\u0067\u0068\u0020\u0069\u006ep\u0075\u0074\u0020sa\u006dp\u006c\u0065\u0073\u0020\u0074\u006f\u0020d\u0065\u0074\u0065\u0072\u006d\u0069\u006e\u0065\u0020\u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0076\u0061lu\u0065\u0073\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074\u0020\u006d\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063\u0074\u002e");
continue ;};_bdebg :=_dfeaa ._efbce [_aafab ];_aebaa :=_eg .LinearInterpolate (float64 (_bdebg ),0,_dgb .Pow (2,float64 (_dfeaa .BitsPerSample )),_cbag [2*_cdcdf ],_cbag [2*_cdcdf +1]);_cabba :=_dgb .Min (_dgb .Max (_aebaa ,_dfeaa .Range [2*_cdcdf ]),_dfeaa .Range [2*_cdcdf +1]);
_ddecg =append (_ddecg ,_cabba );};return _ddecg ,nil ;};func (_adcea *PdfReader )newPdfOutlineItemFromIndirectObject (_ddadf *_egg .PdfIndirectObject )(*PdfOutlineItem ,error ){_afggb ,_daaaf :=_ddadf .PdfObject .(*_egg .PdfObjectDictionary );if !_daaaf {return nil ,_f .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};_deaf :=NewPdfOutlineItem ();_dgedb :=_afggb .Get ("\u0054\u0069\u0074l\u0065");if _dgedb ==nil {return nil ,_f .Errorf ("\u006d\u0069\u0073s\u0069\u006e\u0067\u0020\u0054\u0069\u0074\u006c\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0049\u0074\u0065\u006d\u0020\u0028r\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029");
};_cdegc ,_dcbag :=_egg .GetString (_dgedb );if !_dcbag {return nil ,_f .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_dgedb );};_deaf .Title =_cdegc ;if _bgcbd :=_afggb .Get ("\u0043\u006f\u0075n\u0074");
_bgcbd !=nil {_dedaa ,_cfcgb :=_bgcbd .(*_egg .PdfObjectInteger );if !_cfcgb {return nil ,_f .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_bgcbd );};_ddede :=int64 (*_dedaa );
_deaf .Count =&_ddede ;};if _cdcec :=_afggb .Get ("\u0044\u0065\u0073\u0074");_cdcec !=nil {_deaf .Dest =_egg .ResolveReference (_cdcec );if !_adcea ._cede {_ecdaf :=_adcea .traverseObjectData (_deaf .Dest );if _ecdaf !=nil {return nil ,_ecdaf ;};};};if _befaa :=_afggb .Get ("\u0041");
_befaa !=nil {_deaf .A =_egg .ResolveReference (_befaa );if !_adcea ._cede {_abaf :=_adcea .traverseObjectData (_deaf .A );if _abaf !=nil {return nil ,_abaf ;};};};if _ggff :=_afggb .Get ("\u0053\u0045");_ggff !=nil {_deaf .SE =nil ;};if _beaf :=_afggb .Get ("\u0043");
_beaf !=nil {_deaf .C =_egg .ResolveReference (_beaf );};if _bdadb :=_afggb .Get ("\u0046");_bdadb !=nil {_deaf .F =_egg .ResolveReference (_bdadb );};return _deaf ,nil ;};
// ToPdfObject returns the PDF representation of the page resources.
func (_ffcga *PdfPageResources )ToPdfObject ()_egg .PdfObject {_gbee :=_ffcga ._cbcba ;_gbee .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_ffcga .ExtGState );if _ffcga ._dbbbd !=nil {_ffcga .ColorSpace =_ffcga ._dbbbd .ToPdfObject ();};
_gbee .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_ffcga .ColorSpace );_gbee .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_ffcga .Pattern );_gbee .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_ffcga .Shading );
_gbee .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_ffcga .XObject );_gbee .SetIfNotNil ("\u0046\u006f\u006e\u0074",_ffcga .Font );_gbee .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_ffcga .ProcSet );_gbee .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_ffcga .Properties );
return _gbee ;};
// SetDate sets the `M` field of the signature.
func (_cadfb *PdfSignature )SetDate (date _e .Time ,format string ){if format ==""{format ="\u0044\u003a\u003200\u0036\u0030\u0031\u0030\u0032\u0031\u0035\u0030\u0034\u0030\u0035\u002d\u0030\u0037\u0027\u0030\u0030\u0027";};_cadfb .M =_egg .MakeString (date .Format (format ));
};
// GetAllContentStreams gets all the content streams for a page as one string.
func (_gccgf *PdfPage )GetAllContentStreams ()(string ,error ){_dbce ,_gfecf :=_gccgf .GetContentStreams ();if _gfecf !=nil {return "",_gfecf ;};return _fc .Join (_dbce ,"\u0020"),nil ;};
// NewStandard14Font returns the standard 14 font named `basefont` as a *PdfFont, or an error if it
// `basefont` is not one of the standard 14 font names.
func NewStandard14Font (basefont StdFontName )(*PdfFont ,error ){_dcgc ,_adda :=_ceef (basefont );if _adda !=nil {return nil ,_adda ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_dcgc ._cbdegf =_ef .NewWinAnsiEncoder ();};return &PdfFont {_edde :&_dcgc },nil ;
};
// GetAction returns the PDF action for the annotation link.
func (_abce *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _abce ._fdb !=nil {return _abce ._fdb ,nil ;};if _abce .A ==nil {return nil ,nil ;};if _abce ._efb ==nil {return nil ,nil ;};_bagfa ,_edbc :=_abce ._efb .loadAction (_abce .A );if _edbc !=nil {return nil ,_edbc ;
};_abce ._fdb =_bagfa ;return _abce ._fdb ,nil ;};
// C returns the value of the cyan component of the color.
func (_ceaa *PdfColorDeviceCMYK )C ()float64 {return _ceaa [0]};
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
func (_bgbga DefaultImageHandler )NewGrayImageFromGoImage (goimg _cd .Image )(*Image ,error ){_cgaf :=goimg .Bounds ();_bddeg :=&Image {Width :int64 (_cgaf .Dx ()),Height :int64 (_cgaf .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _dfbg :=goimg .(type ){case *_cd .Gray :if len (_dfbg .Pix )!=_cgaf .Dx ()*_cgaf .Dy (){_fggb ,_bfeaf :=_eg .GrayConverter .Convert (goimg );
if _bfeaf !=nil {return nil ,_bfeaf ;};_bddeg .Data =_fggb .Pix ();}else {_bddeg .Data =_dfbg .Pix ;};case *_cd .Gray16 :_bddeg .BitsPerComponent =16;if len (_dfbg .Pix )!=_cgaf .Dx ()*_cgaf .Dy ()*2{_fgefdg ,_egfeg :=_eg .Gray16Converter .Convert (goimg );
if _egfeg !=nil {return nil ,_egfeg ;};_bddeg .Data =_fgefdg .Pix ();}else {_bddeg .Data =_dfbg .Pix ;};case _eg .Image :_dgffd :=_dfbg .Base ();if _dgffd .ColorComponents ==1{_bddeg .BitsPerComponent =int64 (_dgffd .BitsPerComponent );_bddeg .Data =_dgffd .Data ;
return _bddeg ,nil ;};_abfg ,_afcf :=_eg .GrayConverter .Convert (goimg );if _afcf !=nil {return nil ,_afcf ;};_bddeg .Data =_abfg .Pix ();default:_bcgfa ,_egdee :=_eg .GrayConverter .Convert (goimg );if _egdee !=nil {return nil ,_egdee ;};_bddeg .Data =_bcgfa .Pix ();
};return _bddeg ,nil ;};
// Read reads an image and loads into a new Image object with an RGB
// colormap and 8 bits per component.
func (_ddgcf DefaultImageHandler )Read (reader _dag .Reader )(*Image ,error ){_eeba ,_ ,_dabce :=_cd .Decode (reader );if _dabce !=nil {_bag .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_dabce );
return nil ,_dabce ;};return _ddgcf .NewImageFromGoImage (_eeba );};type modelManager struct{_eefgc map[PdfModel ]_egg .PdfObject ;_ggbg map[_egg .PdfObject ]PdfModel ;};func (_eefg *PdfReader )newPdfActionHideFromDict (_af *_egg .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_af .Get ("\u0054"),H :_af .Get ("\u0048")},nil ;
};
// PdfActionTrans represents a trans action.
type PdfActionTrans struct{*PdfAction ;Trans _egg .PdfObject ;};
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
func (_fbcdf FieldFlag )Has (fl FieldFlag )bool {return (_fbcdf .Mask ()&fl .Mask ())> 0};
// Items returns all children outline items.
func (_fgcad *Outline )Items ()[]*OutlineItem {return _fgcad .Entries };
// GetVersion gets the document version.
func (_gdad *PdfWriter )GetVersion ()_egg .Version {return _gdad ._dacce };
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element in
// range 0-1.
func (_gfcd *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_acba ,_agdb :=_egg .GetNumbersAsFloat (objects );
if _agdb !=nil {return nil ,_agdb ;};return _gfcd .ColorFromFloats (_acba );};
// ConvertToBinary converts current image into binary (bi-level) format.
// Binary images are composed of single bits per pixel (only black or white).
// If provided image has more color components, then it would be converted into binary image using
// histogram auto threshold function.
func (_gfdgb *Image )ConvertToBinary ()error {if _gfdgb .ColorComponents ==1&&_gfdgb .BitsPerComponent ==1{return nil ;};_cabe ,_bfgcb :=_gfdgb .ToGoImage ();if _bfgcb !=nil {return _bfgcb ;};_abcaa ,_bfgcb :=_eg .MonochromeConverter .Convert (_cabe );
if _bfgcb !=nil {return _bfgcb ;};_gfdgb .Data =_abcaa .Base ().Data ;_gfdgb ._fgggb ,_bfgcb =_eg .ScaleAlphaToMonochrome (_gfdgb ._fgggb ,int (_gfdgb .Width ),int (_gfdgb .Height ));if _bfgcb !=nil {return _bfgcb ;};_gfdgb .BitsPerComponent =1;_gfdgb .ColorComponents =1;
_gfdgb ._abfae =nil ;return nil ;};
// MergePageWith appends page content to source Pdf file page content.
func (_abcb *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_egdea :=pageNum -1;var _abbe *PdfPage ;for _gaae ,_gbab :=range _abcb ._beac {if _gaae ==_egdea {_abbe =_gbab ;};};if _abbe ==nil {return _f .Errorf ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064\u0020\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0073o\u0075\u0072\u0063\u0065\u0020\u0064o\u0063\u0075\u006de\u006e\u0074",pageNum );
};if _abbe ._dfee !=nil &&_abbe ._dfee .GetParser ()==_abcb ._bgaa ._dafgab {_abbe =_abbe .Duplicate ();_abcb ._beac [_egdea ]=_abbe ;};page =page .Duplicate ();_cceebc (page );_egdc :=_aeac (_abbe );_egge :=_aeac (page );_fbcga :=make (map[_egg .PdfObjectName ]_egg .PdfObjectName );
for _dgfd :=range _egge {if _ ,_cggg :=_egdc [_dgfd ];_cggg {for _abfa :=1;true ;_abfa ++{_abe :=_egg .PdfObjectName (string (_dgfd )+_da .Itoa (_abfa ));if _ ,_ebb :=_egdc [_abe ];!_ebb {_fbcga [_dgfd ]=_abe ;break ;};};};};_bfcg ,_bfef :=page .GetContentStreams ();
if _bfef !=nil {return _bfef ;};_cdeg ,_bfef :=_abbe .GetContentStreams ();if _bfef !=nil {return _bfef ;};for _aaf ,_fcba :=range _bfcg {for _agg ,_cbdg :=range _fbcga {_fcba =_fc .Replace (_fcba ,"\u002f"+string (_agg ),"\u002f"+string (_cbdg ),-1);};
_bfcg [_aaf ]=_fcba ;};_cdeg =append (_cdeg ,_bfcg ...);if _bebge :=_abbe .SetContentStreams (_cdeg ,_egg .NewFlateEncoder ());_bebge !=nil {return _bebge ;};_abbe ._bcce =append (_abbe ._bcce ,page ._bcce ...);if _abbe .Resources ==nil {_abbe .Resources =NewPdfPageResources ();
};if page .Resources !=nil {_abbe .Resources .Font =_abcb .mergeResources (_abbe .Resources .Font ,page .Resources .Font ,_fbcga );_abbe .Resources .XObject =_abcb .mergeResources (_abbe .Resources .XObject ,page .Resources .XObject ,_fbcga );_abbe .Resources .Properties =_abcb .mergeResources (_abbe .Resources .Properties ,page .Resources .Properties ,_fbcga );
if _abbe .Resources .ProcSet ==nil {_abbe .Resources .ProcSet =page .Resources .ProcSet ;};_abbe .Resources .Shading =_abcb .mergeResources (_abbe .Resources .Shading ,page .Resources .Shading ,_fbcga );_abbe .Resources .ExtGState =_abcb .mergeResources (_abbe .Resources .ExtGState ,page .Resources .ExtGState ,_fbcga );
};_gddcb ,_bfef :=_abbe .GetMediaBox ();if _bfef !=nil {return _bfef ;};_daaeb ,_bfef :=page .GetMediaBox ();if _bfef !=nil {return _bfef ;};var _bcb bool ;if _gddcb .Llx > _daaeb .Llx {_gddcb .Llx =_daaeb .Llx ;_bcb =true ;};if _gddcb .Lly > _daaeb .Lly {_gddcb .Lly =_daaeb .Lly ;
_bcb =true ;};if _gddcb .Urx < _daaeb .Urx {_gddcb .Urx =_daaeb .Urx ;_bcb =true ;};if _gddcb .Ury < _daaeb .Ury {_gddcb .Ury =_daaeb .Ury ;_bcb =true ;};if _bcb {_abbe .MediaBox =_gddcb ;};return nil ;};
// NewPdfAnnotationProjection returns a new projection annotation.
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_eaeb :=NewPdfAnnotation ();_ebcc :=&PdfAnnotationProjection {};_ebcc .PdfAnnotation =_eaeb ;_ebcc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eaeb .SetContext (_ebcc );return _ebcc ;};
// NewOutline returns a new outline instance.
func NewOutline ()*Outline {return &Outline {}};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a grayscale device.
func (_dbaa *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
// NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions.
func NewPdfTransformParamsDocMDP (permission _be .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_egg .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_egg .MakeInteger (int64 (permission )),V :_egg .MakeName ("\u0031\u002e\u0032")};
};func (_bfddg *LTV )getCerts (_bcefa []*_dg .Certificate )([][]byte ,error ){_cbgf :=make ([][]byte ,0,len (_bcefa ));for _ ,_fbcb :=range _bcefa {_cbgf =append (_cbgf ,_fbcb .Raw );};return _cbgf ,nil ;};
// ButtonType represents the subtype of a button field, can be one of:
// - Checkbox (ButtonTypeCheckbox)
// - PushButton (ButtonTypePushButton)
// - RadioButton (ButtonTypeRadioButton)
type ButtonType int ;func (_fgac *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};func _bcbae (_gbbe *_egg .PdfObjectStream )(*PdfFunctionType0 ,error ){_egag :=&PdfFunctionType0 {};_egag ._adfae =_gbbe ;_addda :=_gbbe .PdfObjectDictionary ;
_efgb ,_fcffg :=_egg .TraceToDirectObject (_addda .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_egg .PdfObjectArray );if !_fcffg {_bag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};if _efgb .Len ()< 0||_efgb .Len ()%2!=0{_bag .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
};_egag .NumInputs =_efgb .Len ()/2;_babeg ,_eeed :=_efgb .ToFloat64Array ();if _eeed !=nil {return nil ,_eeed ;};_egag .Domain =_babeg ;_efgb ,_fcffg =_egg .TraceToDirectObject (_addda .Get ("\u0052\u0061\u006eg\u0065")).(*_egg .PdfObjectArray );if !_fcffg {_bag .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");
return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};if _efgb .Len ()< 0||_efgb .Len ()%2!=0{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_egag .NumOutputs =_efgb .Len ()/2;_dcbec ,_eeed :=_efgb .ToFloat64Array ();if _eeed !=nil {return nil ,_eeed ;};_egag .Range =_dcbec ;_efgb ,_fcffg =_egg .TraceToDirectObject (_addda .Get ("\u0053\u0069\u007a\u0065")).(*_egg .PdfObjectArray );if !_fcffg {_bag .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");
return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};_bdcb ,_eeed :=_efgb .ToIntegerArray ();
if _eeed !=nil {return nil ,_eeed ;};if len (_bdcb )!=_egag .NumInputs {_bag .Log .Error ("T\u0061\u0062\u006c\u0065\u0020\u0073\u0069\u007a\u0065\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063h\u0069\u006e\u0067\u0020\u006e\u0075\u006d\u0062\u0065\u0072 o\u0066\u0020\u0069n\u0070u\u0074\u0073");
return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_egag .Size =_bdcb ;_fafgg ,_fcffg :=_egg .TraceToDirectObject (_addda .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_egg .PdfObjectInteger );
if !_fcffg {_bag .Log .Error ("B\u0069\u0074\u0073\u0050\u0065\u0072S\u0061\u006d\u0070\u006c\u0065\u0020\u006e\u006f\u0074 \u0073\u0070\u0065c\u0069f\u0069\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};if *_fafgg !=1&&*_fafgg !=2&&*_fafgg !=4&&*_fafgg !=8&&*_fafgg !=12&&*_fafgg !=16&&*_fafgg !=24&&*_fafgg !=32{_bag .Log .Error ("\u0042\u0069\u0074s \u0070\u0065\u0072\u0020\u0073\u0061\u006d\u0070\u006ce\u0020o\u0075t\u0073i\u0064\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0028\u0025\u0064\u0029",*_fafgg );
return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_egag .BitsPerSample =int (*_fafgg );_egag .Order =1;_cfbde ,_fcffg :=_egg .TraceToDirectObject (_addda .Get ("\u004f\u0072\u0064e\u0072")).(*_egg .PdfObjectInteger );
if _fcffg {if *_cfbde !=1&&*_cfbde !=3{_bag .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_cfbde );return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_egag .Order =int (*_cfbde );
};_efgb ,_fcffg =_egg .TraceToDirectObject (_addda .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_egg .PdfObjectArray );if _fcffg {_bddag ,_aeegd :=_efgb .ToFloat64Array ();if _aeegd !=nil {return nil ,_aeegd ;};_egag .Encode =_bddag ;};_efgb ,_fcffg =_egg .TraceToDirectObject (_addda .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_egg .PdfObjectArray );
if _fcffg {_ededd ,_bfbbg :=_efgb .ToFloat64Array ();if _bfbbg !=nil {return nil ,_bfbbg ;};_egag .Decode =_ededd ;};_baeefa ,_eeed :=_egg .DecodeStream (_gbbe );if _eeed !=nil {return nil ,_eeed ;};_egag ._efacf =_baeefa ;return _egag ,nil ;};func (_gfdbe *PdfAcroForm )fillImageWithAppearance (_deeab FieldImageProvider ,_fbbff FieldAppearanceGenerator )error {if _gfdbe ==nil {return nil ;
};_eeace ,_effff :=_deeab .FieldImageValues ();if _effff !=nil {return _effff ;};for _ ,_ebbf :=range _gfdbe .AllFields (){_gdegc :=_ebbf .PartialName ();_ggbb ,_bgaee :=_eeace [_gdegc ];if !_bgaee {if _debggd ,_dedaf :=_ebbf .FullName ();_dedaf ==nil {_ggbb ,_bgaee =_eeace [_debggd ];
};};if !_bgaee {_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020f\u006f\u0072\u006d \u0066\u0069\u0065l\u0064\u0020\u0025\u0073\u0020\u006e\u006f\u0074\u0020\u0066o\u0075\u006e\u0064\u0020\u0069n \u0074\u0068\u0065\u0020\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0072\u002e\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u002e",_gdegc );
continue ;};switch _fgefgd :=_ebbf .GetContext ().(type ){case *PdfFieldButton :if _fgefgd .IsPush (){_fgefgd .SetFillImage (_ggbb );};};if _fbbff ==nil {continue ;};for _ ,_dddga :=range _ebbf .Annotations {_dedde ,_beddc :=_fbbff .GenerateAppearanceDict (_gfdbe ,_ebbf ,_dddga );
if _beddc !=nil {return _beddc ;};_dddga .AP =_dedde ;_dddga .ToPdfObject ();};};return nil ;};
// HasFontByName checks if has font resource by name.
func (_bdefb *PdfPage )HasFontByName (name _egg .PdfObjectName )bool {_gfedb ,_abccge :=_bdefb .Resources .Font .(*_egg .PdfObjectDictionary );if !_abccge {return false ;};if _dbffd :=_gfedb .Get (name );_dbffd !=nil {return true ;};return false ;};
// PdfAnnotationUnderline represents Underline annotations.
// (Section 12.5.6.10).
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _egg .PdfObject ;};
// PdfColorspaceSpecialPattern is a Pattern colorspace.
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_ceae *_egg .PdfIndirectObject ;};
// Size returns the width and the height of the page. The method reports
// the page dimensions as displayed by a PDF viewer (i.e. page rotation is
// taken into account).
func (_fggf *PdfPage )Size ()(float64 ,float64 ,error ){_gccf ,_dfadg :=_fggf .GetMediaBox ();if _dfadg !=nil {return 0,0,_dfadg ;};_fgead ,_gdca :=_gccf .Width (),_gccf .Height ();_affea ,_dfadg :=_fggf .GetRotate ();if _dfadg !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0025\u0073\u0020\u002d\u0020\u0069\u0067\u006e\u006f\u0072\u0069\u006e\u0067\u0020\u0061\u006e\u0064\u0020\u0061\u0073\u0073\u0075\u006d\u0069\u006e\u0067\u0020\u006e\u006f\u0020\u0072\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u000a",_dfadg .Error ());
};if _ccgadf :=_affea ;_ccgadf %360!=0&&_ccgadf %90==0{if _ddfbd :=(360+_ccgadf %360)%360;_ddfbd ==90||_ddfbd ==270{_fgead ,_gdca =_gdca ,_fgead ;};};return _fgead ,_gdca ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_efeb *PdfAnnotationFileAttachment )ToPdfObject ()_egg .PdfObject {_efeb .PdfAnnotation .ToPdfObject ();_fbbd :=_efeb ._cef ;_efg :=_fbbd .PdfObject .(*_egg .PdfObjectDictionary );_efeb .PdfAnnotationMarkup .appendToPdfDictionary (_efg );_efg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));
_efg .SetIfNotNil ("\u0046\u0053",_efeb .FS );_efg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_efeb .Name );return _fbbd ;};func _afaa (_ddeg *_egg .PdfObjectDictionary ){_ebaf ,_faga :=_egg .GetArray (_ddeg .Get ("\u0057\u0069\u0064\u0074\u0068\u0073"));
_accaf ,_aaac :=_egg .GetIntVal (_ddeg .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"));_ebce ,_faabe :=_egg .GetIntVal (_ddeg .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));if _faga &&_aaac &&_faabe {_bgcge :=_ebaf .Len ();if _bgcge !=_ebce -_accaf +1{_bag .Log .Debug ("\u0055\u006e\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0057\u0069\u0064\u0074\u0068\u0073\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u003a\u0020\u0025\u0076\u002c\u0020\u004c\u0061\u0073t\u0043\u0068\u0061\u0072\u003a\u0020\u0025\u0076",_bgcge ,_ebce );
_efdfd :=_egg .PdfObjectInteger (_accaf +_bgcge -1);_ddeg .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_efdfd );};};};
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
func SetPdfCreationDate (creationDate _e .Time ){_cgag .Lock ();defer _cgag .Unlock ();_fabb =creationDate ;};
// SetOpenAction sets the OpenAction in the PDF catalog.
// The value shall be either an array defining a destination (12.3.2 "Destinations" PDF32000_2008),
// or an action dictionary representing an action (12.6 "Actions" PDF32000_2008).
func (_ccfc *PdfWriter )SetOpenAction (dest _egg .PdfObject )error {if dest ==nil ||_egg .IsNullObject (dest ){return nil ;};_ccfc ._acea .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _ccfc .addObjects (dest );};
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
func (_bafea *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cced ,_fgd :=_egg .GetNumbersAsFloat (objects );
if _fgd !=nil {return nil ,_fgd ;};return _bafea .ColorFromFloats (_cced );};func (_edcd *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _edcd ._bgacg };
// GetCharMetrics returns the char metrics for character code `code`.
func (_bdfad pdfFontType3 )GetCharMetrics (code _ef .CharCode )(_bgd .CharMetrics ,bool ){if _dbcd ,_gfgbf :=_bdfad ._ecfgb [code ];_gfgbf {return _bgd .CharMetrics {Wx :_dbcd },true ;};if _bgd .IsStdFont (_bgd .StdFontName (_bdfad ._dgfdc )){return _bgd .CharMetrics {Wx :250},true ;
};return _bgd .CharMetrics {},false ;};
// ToPdfObject returns a stream object.
func (_bccde *XObjectImage )ToPdfObject ()_egg .PdfObject {_cagee :=_bccde ._gefbe ;_egebc :=_cagee .PdfObjectDictionary ;if _bccde .Filter !=nil {_egebc =_bccde .Filter .MakeStreamDict ();_cagee .PdfObjectDictionary =_egebc ;};_egebc .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
_egebc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0049\u006d\u0061g\u0065"));_egebc .Set ("\u0057\u0069\u0064t\u0068",_egg .MakeInteger (*(_bccde .Width )));_egebc .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_egg .MakeInteger (*(_bccde .Height )));
if _bccde .BitsPerComponent !=nil {_egebc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_egg .MakeInteger (*(_bccde .BitsPerComponent )));};if _bccde .ColorSpace !=nil {_egebc .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_bccde .ColorSpace .ToPdfObject ());
};_egebc .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_bccde .Intent );_egebc .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_bccde .ImageMask );_egebc .SetIfNotNil ("\u004d\u0061\u0073\u006b",_bccde .Mask );_fcdcg :=_egebc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ;
if _bccde .Decode ==nil &&_fcdcg {_egebc .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _bccde .Decode !=nil {_egebc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_bccde .Decode );};_egebc .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_bccde .Interpolate );
_egebc .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_bccde .Alternatives );_egebc .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_bccde .SMask );_egebc .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_bccde .SMaskInData );
_egebc .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_bccde .Matte );_egebc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bccde .Name );_egebc .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_bccde .StructParent );_egebc .SetIfNotNil ("\u0049\u0044",_bccde .ID );
_egebc .SetIfNotNil ("\u004f\u0050\u0049",_bccde .OPI );_egebc .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_bccde .Metadata );_egebc .SetIfNotNil ("\u004f\u0043",_bccde .OC );_egebc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_bccde .Stream ))));
_cagee .Stream =_bccde .Stream ;return _cagee ;};
// NewXObjectImage returns a new XObjectImage.
func NewXObjectImage ()*XObjectImage {_aebedc :=&XObjectImage {};_feeda :=&_egg .PdfObjectStream {};_feeda .PdfObjectDictionary =_egg .MakeDict ();_aebedc ._gefbe =_feeda ;return _aebedc ;};
// NewPdfActionNamed returns a new "named" action.
func NewPdfActionNamed ()*PdfActionNamed {_cec :=NewPdfAction ();_dfgb :=&PdfActionNamed {};_dfgb .PdfAction =_cec ;_cec .SetContext (_dfgb );return _dfgb ;};
// NewPdfActionLaunch returns a new "launch" action.
func NewPdfActionLaunch ()*PdfActionLaunch {_fd :=NewPdfAction ();_ff :=&PdfActionLaunch {};_ff .PdfAction =_fd ;_fd .SetContext (_ff );return _ff ;};
// GetOCProperties returns the optional content properties PdfObject.
func (_dgec *PdfReader )GetOCProperties ()(_egg .PdfObject ,error ){_baffc :=_dgec ._eacf ;_gbfee :=_baffc .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_gbfee =_egg .ResolveReference (_gbfee );if !_dgec ._cede {_bfecf :=_dgec .traverseObjectData (_gbfee );
if _bfecf !=nil {return nil ,_bfecf ;};};return _gbfee ,nil ;};func (_eece *PdfReader )newPdfAnnotationWidgetFromDict (_bba *_egg .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_afgg :=PdfAnnotationWidget {};_afgg .H =_bba .Get ("\u0048");_afgg .MK =_bba .Get ("\u004d\u004b");
_afgg .A =_bba .Get ("\u0041");_afgg .AA =_bba .Get ("\u0041\u0041");_afgg .BS =_bba .Get ("\u0042\u0053");_afgg .Parent =_bba .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_afgg ,nil ;};
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
func (_bfdac *PdfReader )GetEncryptionMethod ()string {_dgddf :=_bfdac ._dafgab .GetCrypter ();return _dgddf .String ();};
// PdfColorspaceDeviceGray represents a grayscale colorspace.
type PdfColorspaceDeviceGray struct{};
// GetContainingPdfObject implements interface PdfModel.
func (_gegce *PdfSignatureReference )GetContainingPdfObject ()_egg .PdfObject {return _gegce ._fedcg };func _dbaf (_ccaec *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_ccaec }};func (_fdga *PdfAppender )addNewObject (_ebae _egg .PdfObject ){if _ ,_bcee :=_fdga ._bdba [_ebae ];
!_bcee {_fdga ._dbbe =append (_fdga ._dbbe ,_ebae );_fdga ._bdba [_ebae ]=struct{}{};};};func (_ddd *PdfReader )newPdfAnnotationStampFromDict (_ecdf *_egg .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_aagc :=PdfAnnotationStamp {};_bafc ,_acfa :=_ddd .newPdfAnnotationMarkupFromDict (_ecdf );
if _acfa !=nil {return nil ,_acfa ;};_aagc .PdfAnnotationMarkup =_bafc ;_aagc .Name =_ecdf .Get ("\u004e\u0061\u006d\u0065");return &_aagc ,nil ;};
// ToPdfObject returns the PDF representation of the function.
func (_dadef *PdfFunctionType3 )ToPdfObject ()_egg .PdfObject {_cead :=_egg .MakeDict ();_cead .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_egg .MakeInteger (3));_bcag :=&_egg .PdfObjectArray {};for _ ,_ffegg :=range _dadef .Domain {_bcag .Append (_egg .MakeFloat (_ffegg ));
};_cead .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bcag );if _dadef .Range !=nil {_cgge :=&_egg .PdfObjectArray {};for _ ,_addge :=range _dadef .Range {_cgge .Append (_egg .MakeFloat (_addge ));};_cead .Set ("\u0052\u0061\u006eg\u0065",_cgge );};if _dadef .Functions !=nil {_fgcga :=&_egg .PdfObjectArray {};
for _ ,_gacc :=range _dadef .Functions {_fgcga .Append (_gacc .ToPdfObject ());};_cead .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_fgcga );};if _dadef .Bounds !=nil {_faegb :=&_egg .PdfObjectArray {};for _ ,_eafcg :=range _dadef .Bounds {_faegb .Append (_egg .MakeFloat (_eafcg ));
};_cead .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_faegb );};if _dadef .Encode !=nil {_fgfa :=&_egg .PdfObjectArray {};for _ ,_aadb :=range _dadef .Encode {_fgfa .Append (_egg .MakeFloat (_aadb ));};_cead .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_fgfa );
};if _dadef ._cbbbc !=nil {_dadef ._cbbbc .PdfObject =_cead ;return _dadef ._cbbbc ;};return _cead ;};
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
func (_fdff *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_gd .New ("\u0074\u0068e \u0070\u0072\u006fv\u0069\u0064\u0065\u0064 im\u0061ge\u0020\u0069\u0073\u0020\u006e\u006f\u0074 g\u0072\u0061\u0079\u0020\u0073\u0063\u0061l\u0065");
};_cbba ,_adcc :=_eg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fgggb ,img ._abfae );if _adcc !=nil {return img ,_adcc ;};_cfcb ,_adcc :=_eg .NRGBAConverter .Convert (_cbba );if _adcc !=nil {return img ,_adcc ;
};_bagb :=_cggba (_cfcb .Base ());_bag .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_bag .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_bag .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_bagb .Data );
_bag .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_bagb );return _bagb ,nil ;};
// IsShading specifies if the pattern is a shading pattern.
func (_edbfbd *PdfPattern )IsShading ()bool {return _edbfbd .PatternType ==2};
// PdfColorspaceICCBased format [/ICCBased stream]
//
// The stream shall contain the ICC profile.
// A conforming reader shall support ICC.1:2004:10 as required by PDF 1.7, which will enable it
// to properly render all embedded ICC profiles regardless of the PDF version
//
// In the current implementation, we rely on the alternative colormap provided.
type PdfColorspaceICCBased struct{N int ;Alternate PdfColorspace ;
// If omitted ICC not supported: then use DeviceGray,
// DeviceRGB or DeviceCMYK for N=1,3,4 respectively.
Range []float64 ;Metadata *_egg .PdfObjectStream ;Data []byte ;_dcf *_egg .PdfIndirectObject ;_bcda *_egg .PdfObjectStream ;};func (_cfee *pdfFontSimple )baseFields ()*fontCommon {return &_cfee .fontCommon };func (_fcfcf *PdfReader )newPdfSignatureReferenceFromDict (_gabcd *_egg .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _gebgb ,_dfdbc :=_fcfcf ._dabaf .GetModelFromPrimitive (_gabcd ).(*PdfSignatureReference );
_dfdbc {return _gebgb ,nil ;};_feffe :=&PdfSignatureReference {_fedcg :_gabcd ,Data :_gabcd .Get ("\u0044\u0061\u0074\u0061")};var _aeaaf bool ;_feffe .Type ,_ =_egg .GetName (_gabcd .Get ("\u0054\u0079\u0070\u0065"));_feffe .TransformMethod ,_aeaaf =_egg .GetName (_gabcd .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
if !_aeaaf {_bag .Log .Error ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0053\u0069g\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0052\u0065\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0020\u0054\u0072\u0061\u006e\u0073\u0066o\u0072\u006dM\u0065\u0074h\u006f\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020in\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0072\u0020m\u0069\u0073\u0073\u0069\u006e\u0067");
return nil ,ErrInvalidAttribute ;};_feffe .TransformParams ,_ =_egg .GetDict (_gabcd .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_feffe .DigestMethod ,_ =_egg .GetName (_gabcd .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064"));
return _feffe ,nil ;};
// GetNumComponents returns the number of color components.
func (_dbae *PdfColorspaceICCBased )GetNumComponents ()int {return _dbae .N };func _bdbba (_agae *_egg .PdfObjectDictionary )(*PdfShadingType7 ,error ){_cgafg :=PdfShadingType7 {};_cfbba :=_agae .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
if _cfbba ==nil {_bag .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064 \u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065\u0072C\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065");
return nil ,ErrRequiredAttributeMissing ;};_gdgac ,_gfgfb :=_cfbba .(*_egg .PdfObjectInteger );if !_gfgfb {_bag .Log .Debug ("\u0042\u0069\u0074\u0073\u0050e\u0072\u0043\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_cfbba );
return nil ,_egg .ErrTypeError ;};_cgafg .BitsPerCoordinate =_gdgac ;_cfbba =_agae .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _cfbba ==nil {_bag .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064\u0020a\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073in\u0067\u003a\u0020B\u0069\u0074s\u0050\u0065\u0072\u0043\u006f\u006dp\u006f\u006ee\u006e\u0074");
return nil ,ErrRequiredAttributeMissing ;};_gdgac ,_gfgfb =_cfbba .(*_egg .PdfObjectInteger );if !_gfgfb {_bag .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065r \u0028\u0067\u006ft\u0020%\u0054\u0029",_cfbba );
return nil ,_egg .ErrTypeError ;};_cgafg .BitsPerComponent =_gdgac ;_cfbba =_agae .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _cfbba ==nil {_bag .Log .Debug ("\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065r\u0046\u006c\u0061\u0067");
return nil ,ErrRequiredAttributeMissing ;};_gdgac ,_gfgfb =_cfbba .(*_egg .PdfObjectInteger );if !_gfgfb {_bag .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072F\u006c\u0061\u0067\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074e\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025T\u0029",_cfbba );
return nil ,_egg .ErrTypeError ;};_cgafg .BitsPerComponent =_gdgac ;_cfbba =_agae .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _cfbba ==nil {_bag .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0044\u0065\u0063\u006f\u0064\u0065");
return nil ,ErrRequiredAttributeMissing ;};_eeae ,_gfgfb :=_cfbba .(*_egg .PdfObjectArray );if !_gfgfb {_bag .Log .Debug ("\u0044\u0065\u0063\u006fd\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_cfbba );
return nil ,_egg .ErrTypeError ;};_cgafg .Decode =_eeae ;if _ccdgd :=_agae .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_ccdgd !=nil {_cgafg .Function =[]PdfFunction {};if _afcfd ,_bbada :=_ccdgd .(*_egg .PdfObjectArray );_bbada {for _ ,_eagab :=range _afcfd .Elements (){_ffeddg ,_fdce :=_bdefe (_eagab );
if _fdce !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_fdce );return nil ,_fdce ;};_cgafg .Function =append (_cgafg .Function ,_ffeddg );
};}else {_ccfee ,_ccgde :=_bdefe (_ccdgd );if _ccgde !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_ccgde );return nil ,_ccgde ;
};_cgafg .Function =append (_cgafg .Function ,_ccfee );};};return &_cgafg ,nil ;};
// NewPdfAnnotationCircle returns a new circle annotation.
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_aff :=NewPdfAnnotation ();_dbdf :=&PdfAnnotationCircle {};_dbdf .PdfAnnotation =_aff ;_dbdf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aff .SetContext (_dbdf );return _dbdf ;};
// PdfFunctionType3 defines stitching of the subdomains of several 1-input functions to produce
// a single new 1-input function.
type PdfFunctionType3 struct{Domain []float64 ;Range []float64 ;Functions []PdfFunction ;Bounds []float64 ;Encode []float64 ;_cbbbc *_egg .PdfIndirectObject ;};
// Y returns the value of the yellow component of the color.
func (_fcbad *PdfColorDeviceCMYK )Y ()float64 {return _fcbad [2]};func _eefdc (_fgfbb []byte )([]byte ,error ){_ccaef :=_bbd .New ();if _ ,_acgdc :=_dag .Copy (_ccaef ,_dd .NewReader (_fgfbb ));_acgdc !=nil {return nil ,_acgdc ;};return _ccaef .Sum (nil ),nil ;
};
// GetColorspaces loads PdfPageResourcesColorspaces from `r.ColorSpace` and returns an error if there
// is a problem loading. Once loaded, the same object is returned on multiple calls.
func (_deebd *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _deebd ._dbbbd !=nil {return _deebd ._dbbbd ,nil ;};if _deebd .ColorSpace ==nil {return nil ,nil ;};_gddg ,_aaaga :=_aggea (_deebd .ColorSpace );if _aaaga !=nil {return nil ,_aaaga ;
};_deebd ._dbbbd =_gddg ;return _deebd ._dbbbd ,nil ;};
// ImageToRGB returns the passed in image. Method exists in order to satisfy
// the PdfColorspace interface.
func (_bbfb *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };func (_fabg *PdfWriter )addObjects (_ecbcc _egg .PdfObject )error {_bag .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");
if _efgbc ,_edadg :=_ecbcc .(*_egg .PdfIndirectObject );_edadg {_bag .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_bag .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_ecbcc ,_efgbc );_bag .Log .Trace ("\u002d\u0020\u0025\u0073",_efgbc .PdfObject );
if _fabg .addObject (_efgbc ){_bbgfab :=_fabg .addObjects (_efgbc .PdfObject );if _bbgfab !=nil {return _bbgfab ;};};return nil ;};if _badbc ,_ecggg :=_ecbcc .(*_egg .PdfObjectStream );_ecggg {_bag .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_bag .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_ecbcc ,_ecbcc );
if _fabg .addObject (_badbc ){_adege :=_fabg .addObjects (_badbc .PdfObjectDictionary );if _adege !=nil {return _adege ;};};return nil ;};if _gggba ,_dgebg :=_ecbcc .(*_egg .PdfObjectDictionary );_dgebg {_bag .Log .Trace ("\u0044\u0069\u0063\u0074");_bag .Log .Trace ("\u002d\u0020\u0025\u0073",_ecbcc );
for _ ,_efaed :=range _gggba .Keys (){_dagabg :=_gggba .Get (_efaed );if _ceegc ,_adeb :=_dagabg .(*_egg .PdfObjectReference );_adeb {_dagabg =_ceegc .Resolve ();_gggba .Set (_efaed ,_dagabg );};if _efaed !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _ccbga :=_fabg .addObjects (_dagabg );
_ccbga !=nil {return _ccbga ;};}else {if _ ,_baffcb :=_dagabg .(*_egg .PdfObjectNull );_baffcb {continue ;};if _ccada :=_fabg .hasObject (_dagabg );!_ccada {_bag .Log .Debug ("P\u0061\u0072\u0065\u006e\u0074\u0020o\u0062\u006a\u0020\u006e\u006f\u0074 \u0061\u0064\u0064\u0065\u0064\u0020\u0079e\u0074\u0021\u0021\u0020\u0025\u0054\u0020\u0025\u0070\u0020%\u0076",_dagabg ,_dagabg ,_dagabg );
_fabg ._afcd [_dagabg ]=append (_fabg ._afcd [_dagabg ],_gggba );};};};return nil ;};if _cfbgb ,_gffgfa :=_ecbcc .(*_egg .PdfObjectArray );_gffgfa {_bag .Log .Trace ("\u0041\u0072\u0072a\u0079");_bag .Log .Trace ("\u002d\u0020\u0025\u0073",_ecbcc );if _cfbgb ==nil {return _gd .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
};for _bgeea ,_cage :=range _cfbgb .Elements (){if _dccg ,_aefbb :=_cage .(*_egg .PdfObjectReference );_aefbb {_cage =_dccg .Resolve ();_cfbgb .Set (_bgeea ,_cage );};if _efegd :=_fabg .addObjects (_cage );_efegd !=nil {return _efegd ;};};return nil ;};
if _ ,_gbgeb :=_ecbcc .(*_egg .PdfObjectReference );_gbgeb {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043\u0061\u006e\u006e\u006f\u0074 \u0062\u0065\u0020\u0061\u0020\u0072e\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0020\u002d\u0020\u0067\u006f\u0074 \u0025\u0023\u0076\u0021",_ecbcc );
return _gd .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};const (ActionTypeGoTo PdfActionType ="\u0047\u006f\u0054\u006f";ActionTypeGoTo3DView PdfActionType ="\u0047\u006f\u0054\u006f\u0033\u0044\u0056\u0069\u0065\u0077";
ActionTypeGoToE PdfActionType ="\u0047\u006f\u0054o\u0045";ActionTypeGoToR PdfActionType ="\u0047\u006f\u0054o\u0052";ActionTypeHide PdfActionType ="\u0048\u0069\u0064\u0065";ActionTypeImportData PdfActionType ="\u0049\u006d\u0070\u006f\u0072\u0074\u0044\u0061\u0074\u0061";
ActionTypeJavaScript PdfActionType ="\u004a\u0061\u0076\u0061\u0053\u0063\u0072\u0069\u0070\u0074";ActionTypeLaunch PdfActionType ="\u004c\u0061\u0075\u006e\u0063\u0068";ActionTypeMovie PdfActionType ="\u004d\u006f\u0076i\u0065";ActionTypeNamed PdfActionType ="\u004e\u0061\u006de\u0064";
ActionTypeRendition PdfActionType ="\u0052e\u006e\u0064\u0069\u0074\u0069\u006fn";ActionTypeResetForm PdfActionType ="\u0052e\u0073\u0065\u0074\u0046\u006f\u0072m";ActionTypeSetOCGState PdfActionType ="S\u0065\u0074\u004f\u0043\u0047\u0053\u0074\u0061\u0074\u0065";
ActionTypeSound PdfActionType ="\u0053\u006f\u0075n\u0064";ActionTypeSubmitForm PdfActionType ="\u0053\u0075\u0062\u006d\u0069\u0074\u0046\u006f\u0072\u006d";ActionTypeThread PdfActionType ="\u0054\u0068\u0072\u0065\u0061\u0064";ActionTypeTrans PdfActionType ="\u0054\u0072\u0061n\u0073";
ActionTypeURI PdfActionType ="\u0055\u0052\u0049";);
// PdfAnnotationProjection represents Projection annotations.
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};func (_abgce *PdfReader )loadPerms ()(*Permissions ,error ){if _dcegc :=_abgce ._eacf .Get ("\u0050\u0065\u0072m\u0073");_dcegc !=nil {if _fagbf ,_efebde :=_egg .GetDict (_dcegc );
_efebde {_ggbba :=_fagbf .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");if _ggbba ==nil {return nil ,nil ;};if _beega ,_fcdee :=_egg .GetIndirect (_ggbba );_fcdee {_cfede ,_gefde :=_abgce .newPdfSignatureFromIndirect (_beega );if _gefde !=nil {return nil ,_gefde ;
};return NewPermissions (_cfede ),nil ;};return nil ,_f .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");};return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079");
};return nil ,nil ;};
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
// document revision.
func (_ccgb *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_ccgb .updateObjectsDeep (dss .ToPdfObject (),nil );};_ccgb ._dgdc =dss ;};
// NewPdfAnnotationHighlight returns a new text highlight annotation.
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_ggdf :=NewPdfAnnotation ();_dfb :=&PdfAnnotationHighlight {};_dfb .PdfAnnotation =_ggdf ;_dfb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ggdf .SetContext (_dfb );return _dfb ;};
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};
// Set applies flag fl to the flag's bitmask and returns the combined flag.
func (_adecd FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_adecd .Mask ()|fl .Mask ())};
// SetPdfProducer sets the Producer attribute of the output PDF.
func SetPdfProducer (producer string ){_cgag .Lock ();defer _cgag .Unlock ();_bdbde =producer };func _ggaeg (_bcdff *_egg .PdfObjectDictionary )(*PdfShadingType5 ,error ){_degaf :=PdfShadingType5 {};_afgee :=_bcdff .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
if _afgee ==nil {_bag .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064 \u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065\u0072C\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065");
return nil ,ErrRequiredAttributeMissing ;};_fgcec ,_edbbc :=_afgee .(*_egg .PdfObjectInteger );if !_edbbc {_bag .Log .Debug ("\u0042\u0069\u0074\u0073\u0050e\u0072\u0043\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_afgee );
return nil ,_egg .ErrTypeError ;};_degaf .BitsPerCoordinate =_fgcec ;_afgee =_bcdff .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _afgee ==nil {_bag .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064\u0020a\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073in\u0067\u003a\u0020B\u0069\u0074s\u0050\u0065\u0072\u0043\u006f\u006dp\u006f\u006ee\u006e\u0074");
return nil ,ErrRequiredAttributeMissing ;};_fgcec ,_edbbc =_afgee .(*_egg .PdfObjectInteger );if !_edbbc {_bag .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065r \u0028\u0067\u006ft\u0020%\u0054\u0029",_afgee );
return nil ,_egg .ErrTypeError ;};_degaf .BitsPerComponent =_fgcec ;_afgee =_bcdff .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _afgee ==nil {_bag .Log .Debug ("\u0052\u0065\u0071u\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0056\u0065\u0072\u0074\u0069c\u0065\u0073\u0050\u0065\u0072\u0052\u006f\u0077");
return nil ,ErrRequiredAttributeMissing ;};_fgcec ,_edbbc =_afgee .(*_egg .PdfObjectInteger );if !_edbbc {_bag .Log .Debug ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050\u0065\u0072\u0052\u006f\u0077\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006et\u0065\u0067\u0065\u0072\u0020(\u0067\u006ft\u0020\u0025\u0054\u0029",_afgee );
return nil ,_egg .ErrTypeError ;};_degaf .VerticesPerRow =_fgcec ;_afgee =_bcdff .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _afgee ==nil {_bag .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0044\u0065\u0063\u006f\u0064\u0065");
return nil ,ErrRequiredAttributeMissing ;};_acadb ,_edbbc :=_afgee .(*_egg .PdfObjectArray );if !_edbbc {_bag .Log .Debug ("\u0044\u0065\u0063\u006fd\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_afgee );
return nil ,_egg .ErrTypeError ;};_degaf .Decode =_acadb ;if _bfcef :=_bcdff .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_bfcef !=nil {_degaf .Function =[]PdfFunction {};if _gdbg ,_bcbbb :=_bfcef .(*_egg .PdfObjectArray );_bcbbb {for _ ,_abefb :=range _gdbg .Elements (){_cbeaa ,_bgea :=_bdefe (_abefb );
if _bgea !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_bgea );return nil ,_bgea ;};_degaf .Function =append (_degaf .Function ,_cbeaa );
};}else {_ceaba ,_ageae :=_bdefe (_bfcef );if _ageae !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_ageae );return nil ,_ageae ;
};_degaf .Function =append (_degaf .Function ,_ceaba );};};return &_degaf ,nil ;};
// NewPdfAnnotationPolygon returns a new polygon annotation.
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_fcdb :=NewPdfAnnotation ();_dga :=&PdfAnnotationPolygon {};_dga .PdfAnnotation =_fcdb ;_dga .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fcdb .SetContext (_dga );return _dga ;};
// GetNumComponents returns the number of color components (3 for Lab).
func (_aede *PdfColorLab )GetNumComponents ()int {return 3};func _dceb ()string {return _bag .Version };
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
type PdfColorspaceDeviceCMYK struct{};
// PdfColorPattern represents a pattern color.
type PdfColorPattern struct{Color PdfColor ;PatternName _egg .PdfObjectName ;};
// Inspect inspects the object types, subtypes and content in the PDF file returning a map of
// object type to number of instances of each.
func (_aafc *PdfReader )Inspect ()(map[string ]int ,error ){return _aafc ._dafgab .Inspect ()};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for an RGB device.
func (_dgbca *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};func (_eabgc *PdfFunctionType0 )processSamples ()error {_eaaeb :=_fb .ResampleBytes (_eabgc ._efacf ,_eabgc .BitsPerSample );_eabgc ._efbce =_eaaeb ;return nil ;};
// ToPdfObject converts rectangle to a PDF object.
func (_egcd *PdfRectangle )ToPdfObject ()_egg .PdfObject {return _egg .MakeArray (_egg .MakeFloat (_egcd .Llx ),_egg .MakeFloat (_egcd .Lly ),_egg .MakeFloat (_egcd .Urx ),_egg .MakeFloat (_egcd .Ury ));};
// SetFillImage attach a model.Image to push button.
func (_fafc *PdfFieldButton )SetFillImage (image *Image ){if _fafc .IsPush (){_fafc ._ffcc =image ;};};
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
func (_aca *PdfFont )ToUnicode ()string {if _aca .baseFields ()._bfbgf ==nil {return "";};return _aca .baseFields ()._bfbgf .Name ();};func (_ebcg *PdfWriter )setCatalogVersion (){_ebcg ._acea .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_egg .MakeName (_f .Sprintf ("\u0025\u0064\u002e%\u0064",_ebcg ._dacce .Major ,_ebcg ._dacce .Minor )));
};
// SetPdfCreator sets the Creator attribute of the output PDF.
func SetPdfCreator (creator string ){_cgag .Lock ();defer _cgag .Unlock ();_cefff =creator };
// ColorToRGB converts an Indexed color to an RGB color.
func (_gbdaf *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _gbdaf .Base ==nil {return nil ,_gd .New ("\u0069\u006e\u0064\u0065\u0078\u0065d\u0020\u0062\u0061\u0073\u0065\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065\u0020\u0075\u006e\u0064\u0065f\u0069\u006e\u0065\u0064");
};return _gbdaf .Base .ColorToRGB (color );};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);func _cbcgg ()string {_cgag .Lock ();defer _cgag .Unlock ();return _eggc };
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
// or indirectly within an indirect object container.
func (_acdf *PdfColorspaceDeviceNAttributes )ToPdfObject ()_egg .PdfObject {_efcc :=_egg .MakeDict ();if _acdf .Subtype !=nil {_efcc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_acdf .Subtype );};_efcc .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_acdf .Colorants );
_efcc .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_acdf .Process );_efcc .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_acdf .MixingHints );if _acdf ._cdgc !=nil {_acdf ._cdgc .PdfObject =_efcc ;return _acdf ._cdgc ;
};return _efcc ;};func (_afca *PdfReader )newPdfAnnotationMovieFromDict (_edfe *_egg .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_gdde :=PdfAnnotationMovie {};_gdde .T =_edfe .Get ("\u0054");_gdde .Movie =_edfe .Get ("\u004d\u006f\u0076i\u0065");
_gdde .A =_edfe .Get ("\u0041");return &_gdde ,nil ;};
// StdFontName represents name of a standard font.
type StdFontName =_bgd .StdFontName ;
// SetFontByName sets the font specified by keyName to the given object.
func (_fbdeb *PdfPageResources )SetFontByName (keyName _egg .PdfObjectName ,obj _egg .PdfObject )error {if _fbdeb .Font ==nil {_fbdeb .Font =_egg .MakeDict ();};_gbbf ,_bdacb :=_egg .TraceToDirectObject (_fbdeb .Font ).(*_egg .PdfObjectDictionary );if !_bdacb {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0021\u0020(\u0067\u006ft\u0020\u0025\u0054\u0029",_egg .TraceToDirectObject (_fbdeb .Font ));
return _egg .ErrTypeError ;};_gbbf .Set (keyName ,obj );return nil ;};
// GetNumComponents returns the number of color components (1 for Indexed).
func (_eeec *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};func (_eddad *PdfShading )getShadingDict ()(*_egg .PdfObjectDictionary ,error ){_caccc :=_eddad ._cfdbd ;if _acgeg ,_egac :=_caccc .(*_egg .PdfIndirectObject );_egac {_bcfda ,_abeead :=_acgeg .PdfObject .(*_egg .PdfObjectDictionary );
if !_abeead {return nil ,_egg .ErrTypeError ;};return _bcfda ,nil ;}else if _ebee ,_agbfc :=_caccc .(*_egg .PdfObjectStream );_agbfc {return _ebee .PdfObjectDictionary ,nil ;}else if _faebf ,_abbba :=_caccc .(*_egg .PdfObjectDictionary );_abbba {return _faebf ,nil ;
}else {_bag .Log .Debug ("U\u006e\u0061\u0062\u006c\u0065\u0020t\u006f\u0020\u0061\u0063\u0063\u0065s\u0073\u0020\u0073\u0068\u0061\u0064\u0069n\u0067\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079");return nil ,_egg .ErrTypeError ;};};func (_abaee *PdfReader )buildPageList (_dcbfa *_egg .PdfIndirectObject ,_fcbbc *_egg .PdfIndirectObject ,_dafbb map[_egg .PdfObject ]struct{})error {if _dcbfa ==nil {return nil ;
};if _ ,_becda :=_dafbb [_dcbfa ];_becda {_bag .Log .Debug ("\u0043\u0079\u0063l\u0069\u0063\u0020\u0072e\u0063\u0075\u0072\u0073\u0069\u006f\u006e,\u0020\u0073\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u0028\u0025\u0076\u0029",_dcbfa .ObjectNumber );
return nil ;};_dafbb [_dcbfa ]=struct{}{};_acfgf ,_cefg :=_dcbfa .PdfObject .(*_egg .PdfObjectDictionary );if !_cefg {return _gd .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_dgbbc ,_cefg :=(*_acfgf ).Get ("\u0054\u0079\u0070\u0065").(*_egg .PdfObjectName );
if !_cefg {if _acfgf .Get ("\u004b\u0069\u0064\u0073")==nil {return _gd .New ("\u006e\u006f\u0064\u0065 \u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0054\u0079p\u0065 \u0028\u0052\u0065\u0071\u0075\u0069\u0072e\u0064\u0029");};_bag .Log .Debug ("ER\u0052\u004fR\u003a\u0020\u006e\u006f\u0064\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067\u0020\u0054\u0079\u0070\u0065\u002c\u0020\u0062\u0075\u0074\u0020\u0068\u0061\u0073\u0020\u004b\u0069\u0064\u0073\u002e\u0020\u0041\u0073\u0073u\u006di\u006e\u0067\u0020\u0050\u0061\u0067\u0065\u0073 \u006eo\u0064\u0065.");
_dgbbc =_egg .MakeName ("\u0050\u0061\u0067e\u0073");_acfgf .Set ("\u0054\u0079\u0070\u0065",_dgbbc );};_bag .Log .Trace ("\u0062\u0075\u0069\u006c\u0064\u0050a\u0067\u0065\u004c\u0069\u0073\u0074\u0020\u006e\u006f\u0064\u0065\u0020\u0074y\u0070\u0065\u003a\u0020\u0025\u0073\u0020(\u0025\u002b\u0076\u0029",*_dgbbc ,_dcbfa );
if *_dgbbc =="\u0050\u0061\u0067\u0065"{_fccfc ,_aeedd :=_abaee .newPdfPageFromDict (_acfgf );if _aeedd !=nil {return _aeedd ;};_fccfc .setContainer (_dcbfa );if _fcbbc !=nil {_acfgf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fcbbc );};_abaee ._abgbc =append (_abaee ._abgbc ,_dcbfa );
_abaee .PageList =append (_abaee .PageList ,_fccfc );return nil ;};if *_dgbbc !="\u0050\u0061\u0067e\u0073"{_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0054\u0061\u0062\u006c\u0065\u0020\u006f\u0066\u0020\u0063\u006fnt\u0065n\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067 \u006e\u006f\u006e\u0020\u0050\u0061\u0067\u0065\u002f\u0050\u0061\u0067\u0065\u0073\u0020\u006f\u0062j\u0065\u0063\u0074\u0021\u0020\u0028\u0025\u0073\u0029",_dgbbc );
return _gd .New ("\u0074\u0061\u0062\u006c\u0065\u0020o\u0066\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067 \u006e\u006f\u006e\u0020\u0050\u0061\u0067\u0065\u002f\u0050\u0061\u0067\u0065\u0073 \u006fb\u006a\u0065\u0063\u0074");
};if _fcbbc !=nil {_acfgf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fcbbc );};if !_abaee ._cede {_gbadb :=_abaee .traverseObjectData (_dcbfa );if _gbadb !=nil {return _gbadb ;};};_daebd ,_dcgdd :=_abaee ._dafgab .Resolve (_acfgf .Get ("\u004b\u0069\u0064\u0073"));
if _dcgdd !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0046\u0061\u0069\u006c\u0065\u0064\u0020\u006c\u006f\u0061\u0064\u0069\u006eg\u0020\u004b\u0069\u0064\u0073\u0020\u006fb\u006a\u0065\u0063\u0074");return _dcgdd ;};var _ecad *_egg .PdfObjectArray ;
_ecad ,_cefg =_daebd .(*_egg .PdfObjectArray );if !_cefg {_edegc ,_adge :=_daebd .(*_egg .PdfIndirectObject );if !_adge {return _gd .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ecad ,_cefg =_edegc .PdfObject .(*_egg .PdfObjectArray );
if !_cefg {return _gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u0069\u006ed\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006ae\u0063\u0074");};};_bag .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_ecad );
for _ageac ,_gfbac :=range _ecad .Elements (){_baece ,_aabfa :=_egg .GetIndirect (_gfbac );if !_aabfa {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074 \u006f\u0062\u006a\u0065\u0063t\u0020\u002d \u0028\u0025\u0073\u0029",_baece );
return _gd .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ecad .Set (_ageac ,_baece );_dcgdd =_abaee .buildPageList (_baece ,_dcbfa ,_dafbb );if _dcgdd !=nil {return _dcgdd ;
};};return nil ;};
// OutlineDest represents the destination of an outline item.
// It holds the page and the position on the page an outline item points to.
type OutlineDest struct{PageObj *_egg .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};var _fgefg =map[string ]string {"\u0053\u0079\u006d\u0062\u006f\u006c":"\u0053\u0079\u006d\u0062\u006f\u006c\u0045\u006e\u0063o\u0064\u0069\u006e\u0067","\u005a\u0061\u0070f\u0044\u0069\u006e\u0067\u0062\u0061\u0074\u0073":"Z\u0061p\u0066\u0044\u0069\u006e\u0067\u0062\u0061\u0074s\u0045\u006e\u0063\u006fdi\u006e\u0067"};
// FieldAppearanceGenerator generates appearance stream for a given field.
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_aebb *PdfAcroForm ,_gfcag *PdfField ,_dfcc *PdfAnnotationWidget )(*_egg .PdfObjectDictionary ,error );};
// Height returns the height of `rect`.
func (_bgad *PdfRectangle )Height ()float64 {return _dgb .Abs (_bgad .Ury -_bgad .Lly )};
// PdfAnnotationWidget represents Widget annotations.
// Note: Widget annotations are used to display form fields.
// (Section 12.5.6.19).
type PdfAnnotationWidget struct{*PdfAnnotation ;H _egg .PdfObject ;MK _egg .PdfObject ;A _egg .PdfObject ;AA _egg .PdfObject ;BS _egg .PdfObject ;Parent _egg .PdfObject ;_daa *PdfField ;_gae bool ;};
// SetContext sets the sub action (context).
func (_dad *PdfAction )SetContext (ctx PdfModel ){_dad ._abb =ctx };
// ToPdfObject implements interface PdfModel.
func (_fbcgb *PdfAnnotationCaret )ToPdfObject ()_egg .PdfObject {_fbcgb .PdfAnnotation .ToPdfObject ();_dged :=_fbcgb ._cef ;_gdfa :=_dged .PdfObject .(*_egg .PdfObjectDictionary );_fbcgb .PdfAnnotationMarkup .appendToPdfDictionary (_gdfa );_gdfa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0043\u0061\u0072e\u0074"));
_gdfa .SetIfNotNil ("\u0052\u0044",_fbcgb .RD );_gdfa .SetIfNotNil ("\u0053\u0079",_fbcgb .Sy );return _dged ;};
// WriteString outputs the object as it is to be written to file.
func (_ggafb *pdfSignDictionary )WriteString ()string {_ggafb ._fcade =0;_ggafb ._aabac =0;_ggafb ._dcfaa =0;_ggafb ._gbeab =0;_cbcbd :=_dd .NewBuffer (nil );_cbcbd .WriteString ("\u003c\u003c");for _ ,_ffbebf :=range _ggafb .Keys (){_fbgade :=_ggafb .Get (_ffbebf );
switch _ffbebf {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_cbcbd .WriteString (_ffbebf .WriteString ());_cbcbd .WriteString ("\u0020");_ggafb ._dcfaa =_cbcbd .Len ();_cbcbd .WriteString (_fbgade .WriteString ());_cbcbd .WriteString ("\u0020");
_ggafb ._gbeab =_cbcbd .Len ()-1;case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_cbcbd .WriteString (_ffbebf .WriteString ());_cbcbd .WriteString ("\u0020");_ggafb ._fcade =_cbcbd .Len ();_cbcbd .WriteString (_fbgade .WriteString ());_cbcbd .WriteString ("\u0020");
_ggafb ._aabac =_cbcbd .Len ()-1;default:_cbcbd .WriteString (_ffbebf .WriteString ());_cbcbd .WriteString ("\u0020");_cbcbd .WriteString (_fbgade .WriteString ());};};_cbcbd .WriteString ("\u003e\u003e");return _cbcbd .String ();};
// ToPdfObject implements interface PdfModel.
func (_fbaa *PdfAnnotationUnderline )ToPdfObject ()_egg .PdfObject {_fbaa .PdfAnnotation .ToPdfObject ();_fbcc :=_fbaa ._cef ;_fecd :=_fbcc .PdfObject .(*_egg .PdfObjectDictionary );_fbaa .PdfAnnotationMarkup .appendToPdfDictionary (_fecd );_fecd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));
_fecd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_fbaa .QuadPoints );return _fbcc ;};
// ToPdfObject implements interface PdfModel.
func (_baed *PdfAnnotationPopup )ToPdfObject ()_egg .PdfObject {_baed .PdfAnnotation .ToPdfObject ();_fge :=_baed ._cef ;_cce :=_fge .PdfObject .(*_egg .PdfObjectDictionary );_cce .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0050\u006f\u0070u\u0070"));
_cce .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_baed .Parent );_cce .SetIfNotNil ("\u004f\u0070\u0065\u006e",_baed .Open );return _fge ;};func _ccgbe (_gdgc _egg .PdfObject )(*PdfPattern ,error ){_abafc :=&PdfPattern {};var _aeaccb *_egg .PdfObjectDictionary ;
if _agdf ,_ceefd :=_egg .GetIndirect (_gdgc );_ceefd {_abafc ._fgec =_agdf ;_adddg ,_daedb :=_agdf .PdfObject .(*_egg .PdfObjectDictionary );if !_daedb {_bag .Log .Debug ("\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006ae\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0063\u006fn\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u0064\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079\u0020\u0028g\u006f\u0074\u0020%\u0054\u0029",_agdf .PdfObject );
return nil ,_egg .ErrTypeError ;};_aeaccb =_adddg ;}else if _cdbd ,_aebcf :=_egg .GetStream (_gdgc );_aebcf {_abafc ._fgec =_cdbd ;_aeaccb =_cdbd .PdfObjectDictionary ;}else {_bag .Log .Debug ("\u0050a\u0074\u0074e\u0072\u006e\u0020\u006eo\u0074\u0020\u0061n\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074 o\u0062\u006a\u0065c\u0074\u0020o\u0072\u0020\u0073\u0074\u0072\u0065a\u006d\u002e \u0025\u0054",_gdgc );
return nil ,_egg .ErrTypeError ;};_gfgd :=_aeaccb .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _gfgd ==nil {_bag .Log .Debug ("\u0050\u0064\u0066\u0020\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069n\u0067\u0020\u0050\u0061\u0074t\u0065\u0072n\u0054\u0079\u0070\u0065");
return nil ,ErrRequiredAttributeMissing ;};_ecbbg ,_dgcd :=_gfgd .(*_egg .PdfObjectInteger );if !_dgcd {_bag .Log .Debug ("\u0050\u0061tt\u0065\u0072\u006e \u0074\u0079\u0070\u0065 no\u0074 a\u006e\u0020\u0069\u006e\u0074\u0065\u0067er\u0020\u0028\u0067\u006f\u0074\u0020\u0025T\u0029",_gfgd );
return nil ,_egg .ErrTypeError ;};if *_ecbbg !=1&&*_ecbbg !=2{_bag .Log .Debug ("\u0050\u0061\u0074\u0074e\u0072\u006e\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d \u0031/\u0032\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",*_ecbbg );return nil ,_egg .ErrRangeError ;
};_abafc .PatternType =int64 (*_ecbbg );switch *_ecbbg {case 1:_dagaaa ,_bdafc :=_cbcfd (_aeaccb );if _bdafc !=nil {return nil ,_bdafc ;};_dagaaa .PdfPattern =_abafc ;_abafc ._fcbdg =_dagaaa ;return _abafc ,nil ;case 2:_aedf ,_afedf :=_gfadc (_aeaccb );
if _afedf !=nil {return nil ,_afedf ;};_aedf .PdfPattern =_abafc ;_abafc ._fcbdg =_aedf ;return _abafc ,nil ;};return nil ,_gd .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_gbabf :map[_egg .PdfObject ]struct{}{},_dabaf :_fedbe (),_dafgab :_egg .NewParserFromString (txt )};};
// GetCharMetrics returns the char metrics for character code `code`.
// How it works:
// 1) It calls the GetCharMetrics function for the underlying font, either a simple font or
// a Type0 font. The underlying font GetCharMetrics() functions do direct charcode ➞ metrics
// mappings.
// 2) If the underlying font's GetCharMetrics() doesn't have a CharMetrics for `code` then a
// a CharMetrics with the FontDescriptor's /MissingWidth is returned.
// 3) If there is no /MissingWidth then a failure is returned.
// TODO(peterwilliams97) There is nothing callers can do if no CharMetrics are found so we might as
// well give them 0 width. There is no need for the bool return.
// TODO(gunnsth): Reconsider whether needed or if can map via GlyphName.
func (_gcdc *PdfFont )GetCharMetrics (code _ef .CharCode )(CharMetrics ,bool ){var _gefd _bgd .CharMetrics ;switch _fdbcff :=_gcdc ._edde .(type ){case *pdfFontSimple :if _aaage ,_bcfg :=_fdbcff .GetCharMetrics (code );_bcfg {return _aaage ,_bcfg ;};case *pdfFontType0 :if _bbagdg ,_feda :=_fdbcff .GetCharMetrics (code );
_feda {return _bbagdg ,_feda ;};case *pdfCIDFontType0 :if _caaf ,_aabe :=_fdbcff .GetCharMetrics (code );_aabe {return _caaf ,_aabe ;};case *pdfCIDFontType2 :if _bcbdb ,_abeff :=_fdbcff .GetCharMetrics (code );_abeff {return _bcbdb ,_abeff ;};case *pdfFontType3 :if _dbeaa ,_fafdc :=_fdbcff .GetCharMetrics (code );
_fafdc {return _dbeaa ,_fafdc ;};default:_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020G\u0065\u0074\u0043h\u0061\u0072\u004de\u0074\u0072i\u0063\u0073\u0020\u006e\u006f\u0074 \u0069mp\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0020\u0074\u0079\u0070\u0065\u003d\u0025\u0054\u002e",_gcdc ._edde );
return _gefd ,false ;};if _egbc ,_bbgab :=_gcdc .GetFontDescriptor ();_bbgab ==nil &&_egbc !=nil {return _bgd .CharMetrics {Wx :_egbc ._eedab },true ;};_bag .Log .Debug ("\u0047\u0065\u0074\u0043\u0068\u0061\u0072\u004d\u0065\u0074\u0072\u0069\u0063\u0073\u003a\u0020\u004e\u006f\u0020\u006d\u0065\u0074\u0072\u0069c\u0073\u0020\u0066\u006f\u0072 \u0066\u006fn\u0074\u003d\u0025\u0073",_gcdc );
return _gefd ,false ;};func (_dggf *PdfReader )newPdfAnnotationTrapNetFromDict (_ecbe *_egg .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_cgcc :=PdfAnnotationTrapNet {};return &_cgcc ,nil ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_agbf *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_bag .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};_efbcb :=[]float64 {0.0};if _agbf .C0 !=nil {_efbcb =_agbf .C0 ;};_cdddc :=[]float64 {1.0};if _agbf .C1 !=nil {_cdddc =_agbf .C1 ;};var _dfbfe []float64 ;for _bgdcb :=0;_bgdcb < len (_efbcb );_bgdcb ++{_gfecd :=_efbcb [_bgdcb ]+_dgb .Pow (x [0],_agbf .N )*(_cdddc [_bgdcb ]-_efbcb [_bgdcb ]);
_dfbfe =append (_dfbfe ,_gfecd );};return _dfbfe ,nil ;};func (_cdca *PdfReader )newPdfPageFromDict (_cdfef *_egg .PdfObjectDictionary )(*PdfPage ,error ){_ecfaf :=NewPdfPage ();_ecfaf ._fgfd =_cdfef ;_aggcc :=*_cdfef ;_ecggf ,_eegac :=_aggcc .Get ("\u0054\u0079\u0070\u0065").(*_egg .PdfObjectName );
if !_eegac {return nil ,_gd .New ("\u006d\u0069ss\u0069\u006e\u0067/\u0069\u006e\u0076\u0061lid\u0020Pa\u0067\u0065\u0020\u0064\u0069\u0063\u0074io\u006e\u0061\u0072\u0079\u0020\u0054\u0079p\u0065");};if *_ecggf !="\u0050\u0061\u0067\u0065"{return nil ,_gd .New ("\u0070\u0061\u0067\u0065 \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079 \u0054y\u0070\u0065\u0020\u0021\u003d\u0020\u0050a\u0067\u0065");
};if _aaagc :=_aggcc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_aaagc !=nil {_ecfaf .Parent =_aaagc ;};if _gfad :=_aggcc .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_gfad !=nil {_agdca ,_ccaea :=_egg .GetString (_gfad );
if !_ccaea {return nil ,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u004c\u0061\u0073\u0074\u004d\u006f\u0064\u0069f\u0069\u0065\u0064\u0020\u0021=\u0020\u0073t\u0072\u0069\u006e\u0067");};
_bdabe ,_abcbb :=NewPdfDate (_agdca .Str ());if _abcbb !=nil {return nil ,_abcbb ;};_ecfaf .LastModified =&_bdabe ;};if _gbgd :=_aggcc .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_gbgd !=nil &&!_egg .IsNullObject (_gbgd ){_acecd ,_dccef :=_egg .GetDict (_gbgd );
if !_dccef {return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_gbgd );};var _bgbge error ;_ecfaf .Resources ,_bgbge =NewPdfPageResourcesFromDict (_acecd );
if _bgbge !=nil {return nil ,_bgbge ;};}else {_ccaff ,_ffegdc :=_ecfaf .getParentResources ();if _ffegdc !=nil {return nil ,_ffegdc ;};if _ccaff ==nil {_ccaff =NewPdfPageResources ();};_ecfaf .Resources =_ccaff ;};if _edadb :=_aggcc .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");
_edadb !=nil {_bfega ,_dceed :=_egg .GetArray (_edadb );if !_dceed {return nil ,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u004d\u0065\u0064\u0069\u0061\u0042o\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079");};var _gdaaag error ;
_ecfaf .MediaBox ,_gdaaag =NewPdfRectangle (*_bfega );if _gdaaag !=nil {return nil ,_gdaaag ;};};if _cfgae :=_aggcc .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_cfgae !=nil {_ecgge ,_gbdd :=_egg .GetArray (_cfgae );if !_gbdd {return nil ,_gd .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
};var _bcdgc error ;_ecfaf .CropBox ,_bcdgc =NewPdfRectangle (*_ecgge );if _bcdgc !=nil {return nil ,_bcdgc ;};};if _edefe :=_aggcc .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_edefe !=nil {_efgdc ,_adcab :=_egg .GetArray (_edefe );if !_adcab {return nil ,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u0042\u006c\u0065\u0065\u0064\u0042o\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079");
};var _bceca error ;_ecfaf .BleedBox ,_bceca =NewPdfRectangle (*_efgdc );if _bceca !=nil {return nil ,_bceca ;};};if _dabeg :=_aggcc .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_dabeg !=nil {_aceef ,_ceabg :=_egg .GetArray (_dabeg );if !_ceabg {return nil ,_gd .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
};var _cgacde error ;_ecfaf .TrimBox ,_cgacde =NewPdfRectangle (*_aceef );if _cgacde !=nil {return nil ,_cgacde ;};};if _ebgba :=_aggcc .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_ebgba !=nil {_aaegd ,_dbee :=_egg .GetArray (_ebgba );if !_dbee {return nil ,_gd .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
};var _fbbfd error ;_ecfaf .ArtBox ,_fbbfd =NewPdfRectangle (*_aaegd );if _fbbfd !=nil {return nil ,_fbbfd ;};};if _gbad :=_aggcc .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_gbad !=nil {_ecfaf .BoxColorInfo =_gbad ;};if _cabd :=_aggcc .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");
_cabd !=nil {_ecfaf .Contents =_cabd ;};if _bebcd :=_aggcc .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_bebcd !=nil {_baacc ,_gbeda :=_egg .GetNumberAsInt64 (_bebcd );if _gbeda !=nil {return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0067e\u0020\u0052\u006f\u0074\u0061\u0074\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");
};_ecfaf .Rotate =&_baacc ;};if _bdfg :=_aggcc .Get ("\u0047\u0072\u006fu\u0070");_bdfg !=nil {_ecfaf .Group =_bdfg ;};if _bcfbc :=_aggcc .Get ("\u0054\u0068\u0075m\u0062");_bcfbc !=nil {_ecfaf .Thumb =_bcfbc ;};if _bedacd :=_aggcc .Get ("\u0042");_bedacd !=nil {_ecfaf .B =_bedacd ;
};if _ddfg :=_aggcc .Get ("\u0044\u0075\u0072");_ddfg !=nil {_ecfaf .Dur =_ddfg ;};if _defca :=_aggcc .Get ("\u0054\u0072\u0061n\u0073");_defca !=nil {_ecfaf .Trans =_defca ;};if _cbddf :=_aggcc .Get ("\u0041\u0041");_cbddf !=nil {_ecfaf .AA =_cbddf ;};
if _fffg :=_aggcc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_fffg !=nil {_ecfaf .Metadata =_fffg ;};if _fdfagd :=_aggcc .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_fdfagd !=nil {_ecfaf .PieceInfo =_fdfagd ;};if _dafef :=_aggcc .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");
_dafef !=nil {_ecfaf .StructParents =_dafef ;};if _effg :=_aggcc .Get ("\u0049\u0044");_effg !=nil {_ecfaf .ID =_effg ;};if _eeabe :=_aggcc .Get ("\u0050\u005a");_eeabe !=nil {_ecfaf .PZ =_eeabe ;};if _debad :=_aggcc .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");
_debad !=nil {_ecfaf .SeparationInfo =_debad ;};if _bbbde :=_aggcc .Get ("\u0054\u0061\u0062\u0073");_bbbde !=nil {_ecfaf .Tabs =_bbbde ;};if _dggda :=_aggcc .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");
_dggda !=nil {_ecfaf .TemplateInstantiated =_dggda ;};if _deaab :=_aggcc .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_deaab !=nil {_ecfaf .PresSteps =_deaab ;};if _ffcbb :=_aggcc .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_ffcbb !=nil {_ecfaf .UserUnit =_ffcbb ;
};if _aaecg :=_aggcc .Get ("\u0056\u0050");_aaecg !=nil {_ecfaf .VP =_aaecg ;};if _babga :=_aggcc .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_babga !=nil {_ecfaf .Annots =_babga ;};_ecfaf ._gcfcb =_cdca ;return _ecfaf ,nil ;};var ImageHandling ImageHandler =DefaultImageHandler {};
func _bedd (_eafea *_egg .PdfObjectDictionary ,_befcd *fontCommon )(*pdfFontType0 ,error ){_gaeba ,_eadc :=_egg .GetArray (_eafea .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));if !_eadc {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049n\u0076\u0061\u006cid\u0020\u0044\u0065\u0073\u0063\u0065n\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073\u0020\u002d\u0020\u006e\u006f\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079 \u0025\u0073",_befcd );
return nil ,_egg .ErrRangeError ;};if _gaeba .Len ()!=1{_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0041\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u0021\u003d\u0020\u0031\u0020(%\u0064\u0029",_gaeba .Len ());
return nil ,_egg .ErrRangeError ;};_edba ,_cbgec :=_faffdb (_gaeba .Get (0),false );if _cbgec !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046a\u0069\u006c\u0065d \u006c\u006f\u0061\u0064\u0069\u006eg\u0020\u0064\u0065\u0073\u0063\u0065\u006e\u0064\u0061\u006e\u0074\u0020\u0066\u006f\u006et\u003a\u0020\u0065\u0072\u0072\u003d\u0025\u0076 \u0025\u0073",_cbgec ,_befcd );
return nil ,_cbgec ;};_gefff :=_dbaf (_befcd );_gefff .DescendantFont =_edba ;_egegb ,_eadc :=_egg .GetNameVal (_eafea .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _eadc {if _egegb =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_egegb =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_gefff ._bfddc =_ef .NewIdentityTextEncoder (_egegb );
}else if _ga .IsPredefinedCMap (_egegb ){_gefff ._fcffd ,_cbgec =_ga .LoadPredefinedCMap (_egegb );if _cbgec !=nil {_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020l\u006f\u0061\u0064\u0020\u0070\u0072\u0065\u0064\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0043\u004d\u0061\u0070\u0020\u0025\u0073\u003a\u0020\u0025\u0076",_egegb ,_cbgec );
};}else {_bag .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_egegb );};};if _acfc :=_edba .baseFields ()._bfbgf ;_acfc !=nil {if _dgga :=_acfc .Name ();_dgga =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_dgga =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_dgga =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_dgga =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_gefff ._bfddc =_ef .NewCMapEncoder (_egegb ,_gefff ._fcffd ,_acfc );
};};return _gefff ,nil ;};func (_edcge *PdfReader )loadStructure ()error {if _edcge ._dafgab .GetCrypter ()!=nil &&!_edcge ._dafgab .IsAuthenticated (){return _f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_fgdef :=_edcge ._dafgab .GetTrailer ();if _fgdef ==nil {return _f .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_dbgdf ,_gdae :=_fgdef .Get ("\u0052\u006f\u006f\u0074").(*_egg .PdfObjectReference );if !_gdae {return _f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0052\u006f\u006ft\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u003a \u0025\u0073\u0029",_fgdef );
};_eedde ,_bbbf :=_edcge ._dafgab .LookupByReference (*_dbgdf );if _bbbf !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0072\u0065\u0061\u0064\u0020\u0072\u006f\u006f\u0074\u0020\u0065\u006c\u0065\u006d\u0065\u006e\u0074\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_bbbf );
return _bbbf ;};_ebde ,_gdae :=_eedde .(*_egg .PdfIndirectObject );if !_gdae {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0028\u0072\u006f\u006f\u0074\u0020\u0025\u0071\u0029\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u0020\u0025\u0073\u0029",_eedde ,*_fgdef );
return _gd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_eadf ,_gdae :=(*_ebde ).PdfObject .(*_egg .PdfObjectDictionary );if !_gdae {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020I\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0063\u0061t\u0061\u006c\u006fg\u0020(\u0025\u0073\u0029",_ebde .PdfObject );
return _gd .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_bag .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_eadf );_dgfgb ,_gdae :=_eadf .Get ("\u0050\u0061\u0067e\u0073").(*_egg .PdfObjectReference );
if !_gdae {return _gd .New ("\u0070\u0061\u0067\u0065\u0073\u0020\u0069\u006e\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020b\u0065\u0020\u0061\u0020\u0072e\u0066\u0065r\u0065\u006e\u0063\u0065");};_gdabg ,_bbbf :=_edcge ._dafgab .LookupByReference (*_dgfgb );
if _bbbf !=nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020F\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020r\u0065\u0061\u0064 \u0070a\u0067\u0065\u0073");return _bbbf ;};_afdbae ,_gdae :=_gdabg .(*_egg .PdfIndirectObject );if !_gdae {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020P\u0061\u0067\u0065\u0073\u0020\u006f\u0062\u006a\u0065c\u0074\u0020\u0069n\u0076a\u006c\u0069\u0064");
_bag .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_afdbae );return _gd .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_efbcee ,_gdae :=_afdbae .PdfObject .(*_egg .PdfObjectDictionary );
if !_gdae {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0073\u0020\u006f\u0062j\u0065c\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0025\u0073\u0029",_afdbae );return _gd .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");
};_fdcdf ,_gdae :=_egg .GetInt (_efbcee .Get ("\u0043\u006f\u0075n\u0074"));if !_gdae {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0050\u0061\u0067\u0065\u0073\u0020\u0063\u006f\u0075\u006e\u0074\u0020\u006fb\u006a\u0065\u0063\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
return _gd .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_gdae =_egg .GetName (_efbcee .Get ("\u0054\u0079\u0070\u0065"));!_gdae {_bag .Log .Debug ("\u0050\u0061\u0067\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020T\u0079\u0070\u0065\u0020\u0066\u0069\u0065\u006cd\u0020n\u006f\u0074\u0020\u0073\u0065\u0074\u002e\u0020\u0053\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0054\u0079p\u0065\u0020\u0074\u006f\u0020\u0050\u0061\u0067\u0065\u0073\u002e");
_efbcee .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0050\u0061\u0067e\u0073"));};if _bfgbb ,_aaacd :=_egg .GetInt (_efbcee .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_aaacd {_geba :=int64 (*_bfgbb );_edcge .Rotate =&_geba ;};_edcge ._bcccb =_dbgdf ;
_edcge ._eacf =_eadf ;_edcge ._gbeagf =_efbcee ;_edcge ._cgcga =_afdbae ;_edcge ._fced =int (*_fdcdf );_edcge ._abgbc =[]*_egg .PdfIndirectObject {};_ffbff :=map[_egg .PdfObject ]struct{}{};_bbbf =_edcge .buildPageList (_afdbae ,nil ,_ffbff );if _bbbf !=nil {return _bbbf ;
};_bag .Log .Trace ("\u002d\u002d\u002d");_bag .Log .Trace ("\u0054\u004f\u0043");_bag .Log .Trace ("\u0050\u0061\u0067e\u0073");_bag .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_edcge ._abgbc ),_edcge ._abgbc );_edcge ._cccbg ,_bbbf =_edcge .loadOutlines ();
if _bbbf !=nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0062\u0075i\u006c\u0064\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065 t\u0072\u0065\u0065 \u0028%\u0073\u0029",_bbbf );
return _bbbf ;};_edcge .AcroForm ,_bbbf =_edcge .loadForms ();if _bbbf !=nil {return _bbbf ;};_edcge .DSS ,_bbbf =_edcge .loadDSS ();if _bbbf !=nil {return _bbbf ;};_edcge ._eacd ,_bbbf =_edcge .loadPerms ();if _bbbf !=nil {return _bbbf ;};return nil ;
};
// SetType sets the field button's type. Can be one of:
// - PdfFieldButtonPush for push button fields
// - PdfFieldButtonCheckbox for checkbox fields
// - PdfFieldButtonRadio for radio button fields
// This sets the field's flag appropriately.
func (_cfg *PdfFieldButton )SetType (btype ButtonType ){_dafe :=uint32 (0);if _cfg .Ff !=nil {_dafe =uint32 (*_cfg .Ff );};switch btype {case ButtonTypePush :_dafe |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_dafe |=FieldFlagRadio .Mask ();};_cfg .Ff =_egg .MakeInteger (int64 (_dafe ));
};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_ecaa *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _ecaa .Alternate ==nil {if _ecaa .N ==1{_ggbf :=NewPdfColorspaceDeviceGray ();return _ggbf .ColorFromFloats (vals );}else if _ecaa .N ==3{_ggeb :=NewPdfColorspaceDeviceRGB ();
return _ggeb .ColorFromFloats (vals );}else if _ecaa .N ==4{_fdcba :=NewPdfColorspaceDeviceCMYK ();return _fdcba .ColorFromFloats (vals );}else {return nil ,_gd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
};};return _ecaa .Alternate .ColorFromFloats (vals );};
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
// based on the current instance.
func (_bgca *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_abdgd :=NewPdfOutlineItem ();_abdgd .Title =_egg .MakeEncodedString (_bgca .Title ,true );_abdgd .Dest =_bgca .Dest .ToPdfObject ();var _fabcf []*PdfOutlineItem ;var _bafgaa int64 ;
var _gfede *PdfOutlineItem ;for _ ,_feebb :=range _bgca .Entries {_bcaa ,_bdgdf :=_feebb .ToPdfOutlineItem ();_bcaa .Parent =&_abdgd .PdfOutlineTreeNode ;if _gfede !=nil {_gfede .Next =&_bcaa .PdfOutlineTreeNode ;_bcaa .Prev =&_gfede .PdfOutlineTreeNode ;
};_fabcf =append (_fabcf ,_bcaa );_bafgaa +=_bdgdf ;_gfede =_bcaa ;};_bcabd :=len (_fabcf );_bafgaa +=int64 (_bcabd );if _bcabd > 0{_abdgd .First =&_fabcf [0].PdfOutlineTreeNode ;_abdgd .Last =&_fabcf [_bcabd -1].PdfOutlineTreeNode ;_abdgd .Count =&_bafgaa ;
};return _abdgd ,_bafgaa ;};
// ColorToRGB converts a CalRGB color to an RGB color.
func (_abfd *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_dgab ,_eeea :=color .(*PdfColorCalRGB );if !_eeea {_bag .Log .Debug ("\u0049\u006e\u0070ut\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0063\u0061\u006c\u0020\u0072\u0067\u0062");
return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ecbc :=_dgab .A ();_edbdb :=_dgab .B ();_cfebf :=_dgab .C ();X :=_abfd .Matrix [0]*_dgb .Pow (_ecbc ,_abfd .Gamma [0])+_abfd .Matrix [3]*_dgb .Pow (_edbdb ,_abfd .Gamma [1])+_abfd .Matrix [6]*_dgb .Pow (_cfebf ,_abfd .Gamma [2]);
Y :=_abfd .Matrix [1]*_dgb .Pow (_ecbc ,_abfd .Gamma [0])+_abfd .Matrix [4]*_dgb .Pow (_edbdb ,_abfd .Gamma [1])+_abfd .Matrix [7]*_dgb .Pow (_cfebf ,_abfd .Gamma [2]);Z :=_abfd .Matrix [2]*_dgb .Pow (_ecbc ,_abfd .Gamma [0])+_abfd .Matrix [5]*_dgb .Pow (_edbdb ,_abfd .Gamma [1])+_abfd .Matrix [8]*_dgb .Pow (_cfebf ,_abfd .Gamma [2]);
_daaf :=3.240479*X +-1.537150*Y +-0.498535*Z ;_cdfg :=-0.969256*X +1.875992*Y +0.041556*Z ;_bgde :=0.055648*X +-0.204043*Y +1.057311*Z ;_daaf =_dgb .Min (_dgb .Max (_daaf ,0),1.0);_cdfg =_dgb .Min (_dgb .Max (_cdfg ,0),1.0);_bgde =_dgb .Min (_dgb .Max (_bgde ,0),1.0);
return NewPdfColorDeviceRGB (_daaf ,_cdfg ,_bgde ),nil ;};func (_edf *PdfReader )newPdfActionSubmitFormFromDict (_bea *_egg .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_ged ,_fcd :=_fgb (_bea .Get ("\u0046"));if _fcd !=nil {return nil ,_fcd ;};
return &PdfActionSubmitForm {F :_ged ,Fields :_bea .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_bea .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
// PdfColor interface represents a generic color in PDF.
type PdfColor interface{};
// Field returns the parent form field of the widget annotation, if one exists.
// NOTE: the method returns nil if the parent form field has not been parsed.
func (_dgc *PdfAnnotationWidget )Field ()*PdfField {return _dgc ._daa };
// NewPdfActionMovie returns a new "movie" action.
func NewPdfActionMovie ()*PdfActionMovie {_dab :=NewPdfAction ();_dac :=&PdfActionMovie {};_dac .PdfAction =_dab ;_dab .SetContext (_dac );return _dac ;};func (_dba *PdfReader )newPdfAnnotationProjectionFromDict (_gdba *_egg .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_bga :=&PdfAnnotationProjection {};
_abf ,_dbbc :=_dba .newPdfAnnotationMarkupFromDict (_gdba );if _dbbc !=nil {return nil ,_dbbc ;};_bga .PdfAnnotationMarkup =_abf ;return _bga ,nil ;};
// IsValid checks if the given pdf output intent type is valid.
func (_bfbeb PdfOutputIntentType )IsValid ()bool {return _bfbeb >=PdfOutputIntentTypeA1 &&_bfbeb <=PdfOutputIntentTypeX ;};
// GetContainingPdfObject gets the primitive used to parse the color space.
func (_cdfaa *PdfColorspaceICCBased )GetContainingPdfObject ()_egg .PdfObject {return _cdfaa ._bcda };func (_egbdd *PdfSignature )extractChainFromPKCS7 ()([]*_dg .Certificate ,error ){_ffdeb ,_fada :=_df .Parse (_egbdd .Contents .Bytes ());if _fada !=nil {return nil ,_fada ;
};return _ffdeb .Certificates ,nil ;};
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_edaaa *PdfPageResources )GetPatternByName (keyName _egg .PdfObjectName )(*PdfPattern ,bool ){if _edaaa .Pattern ==nil {return nil ,false ;};_cfge ,_fdfbd :=_egg .TraceToDirectObject (_edaaa .Pattern ).(*_egg .PdfObjectDictionary );if !_fdfbd {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074t\u0065\u0072\u006e\u0020\u0065\u006e\u0074r\u0079\u0020\u002d\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064i\u0063\u0074\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_edaaa .Pattern );
return nil ,false ;};if _aeedf :=_cfge .Get (keyName );_aeedf !=nil {_bagbb ,_eceaf :=_ccgbe (_aeedf );if _eceaf !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020f\u0061\u0069l\u0065\u0064\u0020\u0074\u006f\u0020\u006c\u006fa\u0064\u0020\u0070\u0064\u0066\u0020\u0070\u0061\u0074\u0074\u0065\u0072n\u003a\u0020\u0025\u0076",_eceaf );
return nil ,false ;};return _bagbb ,true ;};return nil ,false ;};
// NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object).
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_befdb :_egg .MakeIndirectObject (_egg .MakeDict ())};};func _ccaeg (_addac *PdfField ,_ddgb _egg .PdfObject )error {switch _addac .GetContext ().(type ){case *PdfFieldText :switch _cgga :=_ddgb .(type ){case *_egg .PdfObjectName :_cdaddc :=_cgga ;
_bag .Log .Debug ("\u0055\u006e\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u003a\u0020\u0047\u006f\u0074 \u0056\u0020\u0061\u0073\u0020\u006e\u0061\u006d\u0065\u0020\u002d\u003e\u0020c\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0074\u006f s\u0074\u0072\u0069\u006e\u0067\u0020\u0027\u0025\u0073\u0027",_cdaddc .String ());
_addac .V =_egg .MakeEncodedString (_cgga .String (),true );case *_egg .PdfObjectString :_addac .V =_egg .MakeEncodedString (_cgga .String (),true );default:_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0055\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0074\u0065\u0078\u0074\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0056\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0054\u0020\u0028\u0025\u0023\u0076\u0029",_cgga ,_cgga );
};case *PdfFieldButton :switch _ddgb .(type ){case *_egg .PdfObjectName :if len (_ddgb .String ())> 0{_addac .V =_ddgb ;_bbeb (_addac ,_ddgb );};case *_egg .PdfObjectString :if len (_ddgb .String ())> 0{_addac .V =_egg .MakeName (_ddgb .String ());_bbeb (_addac ,_addac .V );
};default:_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u004e\u0045\u0058P\u0045\u0043\u0054\u0045\u0044\u0020\u0025\u0073\u0020\u002d>\u0020\u0025\u0076",_addac .PartialName (),_ddgb );_addac .V =_ddgb ;};case *PdfFieldChoice :switch _ddgb .(type ){case *_egg .PdfObjectName :if len (_ddgb .String ())> 0{_addac .V =_egg .MakeString (_ddgb .String ());
_bbeb (_addac ,_ddgb );};case *_egg .PdfObjectString :if len (_ddgb .String ())> 0{_addac .V =_ddgb ;_bbeb (_addac ,_egg .MakeName (_ddgb .String ()));};default:_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u004e\u0045\u0058P\u0045\u0043\u0054\u0045\u0044\u0020\u0025\u0073\u0020\u002d>\u0020\u0025\u0076",_addac .PartialName (),_ddgb );
_addac .V =_ddgb ;};case *PdfFieldSignature :_bag .Log .Debug ("\u0054\u004f\u0044\u004f\u003a \u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0061\u0070\u0070e\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u006e\u006f\u0074\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0079\u0065\u0074\u003a\u0020\u0025\u0073\u002f\u0025v",_addac .PartialName (),_ddgb );
};return nil ;};
// GetFontDescriptor returns the font descriptor for `font`.
func (_fcff PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _fcff ._edde .getFontDescriptor (),nil ;};func _gfgga (_ada *_egg .PdfIndirectObject ,_fded *_egg .PdfObjectDictionary )(*DSS ,error ){if _ada ==nil {_ada =_egg .MakeIndirectObject (nil );
};_ada .PdfObject =_egg .MakeDict ();_ebbe :=map[string ]*VRI {};if _fadg ,_cfea :=_egg .GetDict (_fded .Get ("\u0056\u0052\u0049"));_cfea {for _ ,_eegg :=range _fadg .Keys (){if _bacc ,_accec :=_egg .GetDict (_fadg .Get (_eegg ));_accec {_ebbe [_fc .ToUpper (_eegg .String ())]=_cffe (_bacc );
};};};return &DSS {Certs :_cfdec (_fded .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_cfdec (_fded .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_cfdec (_fded .Get ("\u0043\u0052\u004c\u0073")),VRI :_ebbe ,_eaceg :_ada },nil ;};
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
func (_fadbf *PdfPattern )SetContext (ctx PdfModel ){_fadbf ._fcbdg =ctx };
// GetContainingPdfObject returns the container of the DSS (indirect object).
func (_dbfc *DSS )GetContainingPdfObject ()_egg .PdfObject {return _dbfc ._eaceg };func (_deffcb *XObjectImage )getParamsDict ()*_egg .PdfObjectDictionary {_bgfdg :=_egg .MakeDict ();_bgfdg .Set ("\u0057\u0069\u0064t\u0068",_egg .MakeInteger (*_deffcb .Width ));
_bgfdg .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_egg .MakeInteger (*_deffcb .Height ));_bgfdg .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_egg .MakeInteger (int64 (_deffcb .ColorSpace .GetNumComponents ())));
_bgfdg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_egg .MakeInteger (*_deffcb .BitsPerComponent ));return _bgfdg ;};
// XObjectForm (Table 95 in 8.10.2).
type XObjectForm struct{Filter _egg .StreamEncoder ;FormType _egg .PdfObject ;BBox _egg .PdfObject ;Matrix _egg .PdfObject ;Resources *PdfPageResources ;Group _egg .PdfObject ;Ref _egg .PdfObject ;MetaData _egg .PdfObject ;PieceInfo _egg .PdfObject ;LastModified _egg .PdfObject ;
StructParent _egg .PdfObject ;StructParents _egg .PdfObject ;OPI _egg .PdfObject ;OC _egg .PdfObject ;Name _egg .PdfObject ;
// Stream data.
Stream []byte ;_acgef *_egg .PdfObjectStream ;};
// SetSamples convert samples to byte-data and sets for the image.
// NOTE: The method resamples the data and this could lead to high memory usage,
// especially on large images. It should be used only when it is not possible
// to work with the image byte data directly.
func (_affb *Image )SetSamples (samples []uint32 ){if _affb .BitsPerComponent < 8{samples =_affb .samplesAddPadding (samples );};_fafgba :=_fb .ResampleUint32 (samples ,int (_affb .BitsPerComponent ),8);_babbg :=make ([]byte ,len (_fafgba ));for _cdde ,_bfdg :=range _fafgba {_babbg [_cdde ]=byte (_bfdg );
};_affb .Data =_babbg ;};func _gfadc (_beeg *_egg .PdfObjectDictionary )(*PdfShadingPattern ,error ){_dabcf :=&PdfShadingPattern {};_bdcbg :=_beeg .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _bdcbg ==nil {_bag .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_gcec ,_fedf :=_edbaa (_bdcbg );if _fedf !=nil {_bag .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_fedf );return nil ,_fedf ;
};_dabcf .Shading =_gcec ;if _cbec :=_beeg .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_cbec !=nil {_ebeag ,_eddcgg :=_cbec .(*_egg .PdfObjectArray );if !_eddcgg {_bag .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_cbec );
return nil ,_egg .ErrTypeError ;};_dabcf .Matrix =_ebeag ;};if _fadbfg :=_beeg .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_fadbfg !=nil {_dabcf .ExtGState =_fadbfg ;};return _dabcf ,nil ;};type pdfFontType3 struct{fontCommon ;_acdgb *_egg .PdfIndirectObject ;
// These fields are specific to Type 3 fonts.
CharProcs _egg .PdfObject ;Encoding _egg .PdfObject ;FontBBox _egg .PdfObject ;FontMatrix _egg .PdfObject ;FirstChar _egg .PdfObject ;LastChar _egg .PdfObject ;Widths _egg .PdfObject ;Resources _egg .PdfObject ;_ecfgb map[_ef .CharCode ]float64 ;_fbfed _ef .TextEncoder ;
};var (ErrRequiredAttributeMissing =_gd .New ("\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074t\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073s\u0069\u006e\u0067");ErrInvalidAttribute =_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");
ErrTypeCheck =_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_ccgg =_gd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");ErrEncrypted =_gd .New ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
ErrNoFont =_gd .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");ErrFontNotSupported =_de .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_egg .ErrNotSupported );
ErrType1CFontNotSupported =_de .Errorf ("\u0054y\u0070\u00651\u0043\u0020\u0066o\u006e\u0074\u0073\u0020\u0061\u0072\u0065 \u006e\u006f\u0074\u0020\u0063\u0075r\u0072\u0065\u006e\u0074\u006c\u0079\u0020\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020\u0028\u0025\u0077\u0029",_egg .ErrNotSupported );
ErrType3FontNotSupported =_de .Errorf ("\u0054y\u0070\u00653\u0020\u0066\u006f\u006et\u0073\u0020\u0061r\u0065\u0020\u006e\u006f\u0074\u0020\u0063\u0075\u0072re\u006e\u0074\u006cy\u0020\u0073u\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0028%\u0077\u0029",_egg .ErrNotSupported );
ErrTTCmapNotSupported =_de .Errorf ("\u0075\u006es\u0075\u0070\u0070\u006fr\u0074\u0065d\u0020\u0054\u0072\u0075\u0065\u0054\u0079\u0070e\u0020\u0063\u006d\u0061\u0070\u0020\u0066\u006f\u0072\u006d\u0061\u0074 \u0028\u0025\u0077\u0029",_egg .ErrNotSupported );
ErrSignNotEnoughSpace =_de .Errorf ("\u0069\u006e\u0073\u0075\u0066\u0066\u0069c\u0069\u0065\u006et\u0020\u0073\u0070a\u0063\u0065 \u0061\u006c\u006c\u006f\u0063\u0061t\u0065d \u0066\u006f\u0072\u0020\u0074\u0068\u0065\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0073");
ErrSignNoCertificates =_de .Errorf ("\u0063\u006ful\u0064\u0020\u006eo\u0074\u0020\u0072\u0065tri\u0065ve\u0020\u0063\u0065\u0072\u0074\u0069\u0066ic\u0061\u0074\u0065\u0020\u0063\u0068\u0061i\u006e"););func (_eeaaa *PdfWriter )writeObjectsInStreams (_gaeff map[_egg .PdfObject ]bool )error {for _ ,_bafaca :=range _eeaaa ._bbead {if _caaac :=_gaeff [_bafaca ];
_caaac {continue ;};_gdfdc :=int64 (0);switch _fffccb :=_bafaca .(type ){case *_egg .PdfIndirectObject :_gdfdc =_fffccb .ObjectNumber ;case *_egg .PdfObjectStream :_gdfdc =_fffccb .ObjectNumber ;case *_egg .PdfObjectStreams :_gdfdc =_fffccb .ObjectNumber ;
default:_bag .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0055n\u0073\u0075\u0070\u0070\u006f\u0072\u0074e\u0064\u0020\u0074\u0079\u0070\u0065 \u0069\u006e\u0020\u0077\u0072\u0069\u0074\u0065\u0072\u0020\u006fb\u006a\u0065\u0063\u0074\u0073\u003a\u0020\u0025\u0054",_bafaca );
return ErrTypeCheck ;};if _eeaaa ._agdag !=nil &&_bafaca !=_eeaaa ._afcc {_deefb :=_eeaaa ._agdag .Encrypt (_bafaca ,_gdfdc ,0);if _deefb !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0065\u006e\u0063\u0072\u0079\u0070\u0074\u0069\u006e\u0067\u0020(%\u0073\u0029",_deefb );
return _deefb ;};};_eeaaa .writeObject (int (_gdfdc ),_bafaca );};return nil ;};
// IsColored specifies if the pattern is colored.
func (_fdfab *PdfTilingPattern )IsColored ()bool {if _fdfab .PaintType !=nil &&*_fdfab .PaintType ==1{return true ;};return false ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element in
// range 0-1.
func (_bdddb *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_accc ,_feafd :=_egg .GetNumbersAsFloat (objects );
if _feafd !=nil {return nil ,_feafd ;};return _bdddb .ColorFromFloats (_accc );};func (_fgg *PdfReader )newPdfAnnotationScreenFromDict (_gefc *_egg .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_dcgg :=PdfAnnotationScreen {};_dcgg .T =_gefc .Get ("\u0054");
_dcgg .MK =_gefc .Get ("\u004d\u004b");_dcgg .A =_gefc .Get ("\u0041");_dcgg .AA =_gefc .Get ("\u0041\u0041");return &_dcgg ,nil ;};
// GetNumComponents returns the number of color components (3 for CalRGB).
func (_bebc *PdfColorCalRGB )GetNumComponents ()int {return 3};func (_aegcd *PdfReader )newPdfAnnotationFreeTextFromDict (_bgbg *_egg .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_eceb :=PdfAnnotationFreeText {};_faed ,_fgcg :=_aegcd .newPdfAnnotationMarkupFromDict (_bgbg );
if _fgcg !=nil {return nil ,_fgcg ;};_eceb .PdfAnnotationMarkup =_faed ;_eceb .DA =_bgbg .Get ("\u0044\u0041");_eceb .Q =_bgbg .Get ("\u0051");_eceb .RC =_bgbg .Get ("\u0052\u0043");_eceb .DS =_bgbg .Get ("\u0044\u0053");_eceb .CL =_bgbg .Get ("\u0043\u004c");
_eceb .IT =_bgbg .Get ("\u0049\u0054");_eceb .BE =_bgbg .Get ("\u0042\u0045");_eceb .RD =_bgbg .Get ("\u0052\u0044");_eceb .BS =_bgbg .Get ("\u0042\u0053");_eceb .LE =_bgbg .Get ("\u004c\u0045");return &_eceb ,nil ;};
// PdfAnnotationSquare represents Square annotations.
// (Section 12.5.6.8).
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _egg .PdfObject ;IC _egg .PdfObject ;BE _egg .PdfObject ;RD _egg .PdfObject ;};
// PdfWriter handles outputing PDF content.
type PdfWriter struct{_egad *_egg .PdfIndirectObject ;_gfbe *_egg .PdfIndirectObject ;_fcdab map[_egg .PdfObject ]struct{};_bbead []_egg .PdfObject ;_bacec map[_egg .PdfObject ]struct{};_fbaeb []*_egg .PdfIndirectObject ;_dcedg *PdfOutlineTreeNode ;_acea *_egg .PdfObjectDictionary ;
_aedbe []_egg .PdfObject ;_efage *_egg .PdfIndirectObject ;_beegad *_d .Writer ;_cdaab int64 ;_gdbeb error ;_agdag *_egg .PdfCrypt ;_edafcc *_egg .PdfObjectDictionary ;_afcc *_egg .PdfIndirectObject ;_aaea *_egg .PdfObjectArray ;_dacce _egg .Version ;_bfga *bool ;
_afcd map[_egg .PdfObject ][]*_egg .PdfObjectDictionary ;_aggec *PdfAcroForm ;_cfgb Optimizer ;_ebgad StandardApplier ;_ccceb map[int ]crossReference ;_ddfee int64 ;ObjNumOffset int ;_gabaca bool ;_ecfgc _egg .XrefTable ;_gccgfe int64 ;_ggdad int64 ;_fcgfe map[_egg .PdfObject ]int64 ;
_adcd map[_egg .PdfObject ]struct{};_fbgdb string ;_fadef []*PdfOutputIntent ;_aafeg bool ;_caddc ,_bagaa string ;};
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
// be numeric.
func (_abdgbd *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=_abdgbd .GetNumComponents (){return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cffce ,_gfaac :=_egg .GetNumbersAsFloat (objects );
if _gfaac !=nil {return nil ,_gfaac ;};return _abdgbd .ColorFromFloats (_cffce );};
// VRI represents a Validation-Related Information dictionary.
// The VRI dictionary contains validation data in the form of
// certificates, OCSP and CRL information, for a single signature.
// See ETSI TS 102 778-4 V1.1.1 for more information.
type VRI struct{Cert []*_egg .PdfObjectStream ;OCSP []*_egg .PdfObjectStream ;CRL []*_egg .PdfObjectStream ;TU *_egg .PdfObjectString ;TS *_egg .PdfObjectString ;};func (_gdgbg *pdfFontSimple )addEncoding ()error {var (_gadfc string ;_daggf map[_ef .CharCode ]_ef .GlyphName ;
_fdac _ef .SimpleEncoder ;);if _gdgbg .Encoder ()!=nil {_ggefa ,_gffaa :=_gdgbg .Encoder ().(_ef .SimpleEncoder );if _gffaa &&_ggefa !=nil {_gadfc =_ggefa .BaseName ();};};if _gdgbg .Encoding !=nil {_dffdd ,_afdg ,_bgcfa :=_gdgbg .getFontEncoding ();if _bgcfa !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0042\u0061\u0073\u0065F\u006f\u006e\u0074\u003d\u0025\u0071\u0020\u0053u\u0062t\u0079\u0070\u0065\u003d\u0025\u0071\u0020\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003d\u0025\u0073 \u0028\u0025\u0054\u0029\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_gdgbg ._dgfdc ,_gdgbg ._ebdf ,_gdgbg .Encoding ,_gdgbg .Encoding ,_bgcfa );
return _bgcfa ;};if _dffdd !=""{_gadfc =_dffdd ;};_daggf =_afdg ;_fdac ,_bgcfa =_ef .NewSimpleTextEncoder (_gadfc ,_daggf );if _bgcfa !=nil {return _bgcfa ;};};if _fdac ==nil {_fcab :=_gdgbg ._bgacg ;if _fcab !=nil {switch _gdgbg ._ebdf {case "\u0054\u0079\u0070e\u0031":if _fcab .fontFile !=nil &&_fcab .fontFile ._gdcd !=nil {_bag .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");
_fdac =_fcab .fontFile ._gdcd ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _fcab ._eccg !=nil {_bag .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_bcgcg ,_afbfe :=_fcab ._eccg .MakeEncoder ();
if _afbfe ==nil {_fdac =_bcgcg ;};};};};};if _fdac !=nil {if _daggf !=nil {_bag .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_daggf ,_gdgbg .baseFields ());
_fdac =_ef .ApplyDifferences (_fdac ,_daggf );};_gdgbg .SetEncoder (_fdac );};return nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_bgggdd *PdfShadingType5 )ToPdfObject ()_egg .PdfObject {_bgggdd .PdfShading .ToPdfObject ();_aaggec ,_fcbeac :=_bgggdd .getShadingDict ();if _fcbeac !=nil {_bag .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
return nil ;};if _bgggdd .BitsPerCoordinate !=nil {_aaggec .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_bgggdd .BitsPerCoordinate );};if _bgggdd .BitsPerComponent !=nil {_aaggec .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_bgggdd .BitsPerComponent );
};if _bgggdd .VerticesPerRow !=nil {_aaggec .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_bgggdd .VerticesPerRow );};if _bgggdd .Decode !=nil {_aaggec .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_bgggdd .Decode );
};if _bgggdd .Function !=nil {if len (_bgggdd .Function )==1{_aaggec .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bgggdd .Function [0].ToPdfObject ());}else {_cfbbg :=_egg .MakeArray ();for _ ,_edefb :=range _bgggdd .Function {_cfbbg .Append (_edefb .ToPdfObject ());
};_aaggec .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cfbbg );};};return _bgggdd ._cfdbd ;};
// EncryptOptions represents encryption options for an output PDF.
type EncryptOptions struct{Permissions _fe .Permissions ;Algorithm EncryptionAlgorithm ;};func (_gecfa *PdfSignature )extractChainFromCert ()([]*_dg .Certificate ,error ){var _aebcfe *_egg .PdfObjectArray ;switch _dfdec :=_gecfa .Cert .(type ){case *_egg .PdfObjectString :_aebcfe =_egg .MakeArray (_dfdec );
case *_egg .PdfObjectArray :_aebcfe =_dfdec ;default:return nil ,_f .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020s\u0069\u0067\u006e\u0061\u0074\u0075\u0072e\u0020\u0063\u0065\u0072\u0074\u0069f\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_dfdec );
};var _cebe _dd .Buffer ;for _ ,_aaffb :=range _aebcfe .Elements (){_dggefb ,_fgade :=_egg .GetString (_aaffb );if !_fgade {return nil ,_f .Errorf ("\u0069\u006ev\u0061\u006c\u0069\u0064\u0020\u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0074\u0079p\u0065\u0020\u0069\u006e\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0063\u0065r\u0074\u0069\u0066\u0069c\u0061\u0074\u0065\u0020\u0063h\u0061\u0069\u006e\u003a\u0020\u0025\u0054",_aaffb );
};if _ ,_gfeb :=_cebe .Write (_dggefb .Bytes ());_gfeb !=nil {return nil ,_gfeb ;};};return _dg .ParseCertificates (_cebe .Bytes ());};
// NewPdfActionGoToR returns a new "go to remote" action.
func NewPdfActionGoToR ()*PdfActionGoToR {_cc :=NewPdfAction ();_gad :=&PdfActionGoToR {};_gad .PdfAction =_cc ;_cc .SetContext (_gad );return _gad ;};
// GetXObjectImageByName returns the XObjectImage with the specified name from the
// page resources, if it exists.
func (_bfcce *PdfPageResources )GetXObjectImageByName (keyName _egg .PdfObjectName )(*XObjectImage ,error ){_cbbad ,_bebgb :=_bfcce .GetXObjectByName (keyName );if _cbbad ==nil {return nil ,nil ;};if _bebgb !=XObjectTypeImage {return nil ,_gd .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");
};_egaaa ,_accca :=NewXObjectImageFromStream (_cbbad );if _accca !=nil {return nil ,_accca ;};return _egaaa ,nil ;};func _dgdba (_dacae *PdfField )[]*PdfField {_ebdg :=[]*PdfField {_dacae };for _ ,_bcgcd :=range _dacae .Kids {_ebdg =append (_ebdg ,_dgdba (_bcgcd )...);
};return _ebdg ;};
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
func (_agfgc *PdfPage )GetContainingPdfObject ()_egg .PdfObject {return _agfgc ._dfee };func (_aea *PdfReader )newPdfAnnotationUnderlineFromDict (_gfg *_egg .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_bdag :=PdfAnnotationUnderline {};_baag ,_bbb :=_aea .newPdfAnnotationMarkupFromDict (_gfg );
if _bbb !=nil {return nil ,_bbb ;};_bdag .PdfAnnotationMarkup =_baag ;_bdag .QuadPoints =_gfg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_bdag ,nil ;};
// NewReaderOpts generates a default `ReaderOpts` instance.
func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }};
// NewPdfReaderFromFile creates a new PdfReader from the speficied PDF file.
// If ReaderOpts is nil it will be set to default value from NewReaderOpts.
func NewPdfReaderFromFile (pdfFile string ,opts *ReaderOpts )(*PdfReader ,*_gf .File ,error ){const _gfgff ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065";
_deeag ,_gabac :=_gf .Open (pdfFile );if _gabac !=nil {return nil ,nil ,_gabac ;};_fbga ,_gabac :=_ffee (_deeag ,opts ,true ,_gfgff );if _gabac !=nil {_deeag .Close ();return nil ,nil ,_gabac ;};return _fbga ,_deeag ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_gdga *PdfActionSound )ToPdfObject ()_egg .PdfObject {_gdga .PdfAction .ToPdfObject ();_eaf :=_gdga ._bf ;_ag :=_eaf .PdfObject .(*_egg .PdfObjectDictionary );_ag .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeSound )));_ag .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_gdga .Sound );
_ag .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_gdga .Volume );_ag .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_gdga .Synchronous );_ag .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_gdga .Repeat );_ag .SetIfNotNil ("\u004d\u0069\u0078",_gdga .Mix );
return _eaf ;};
// WriteToFile writes the output PDF to file.
func (_eceddb *PdfWriter )WriteToFile (outputFilePath string )error {_fcagf ,_daegc :=_gf .Create (outputFilePath );if _daegc !=nil {return _daegc ;};defer _fcagf .Close ();return _eceddb .Write (_fcagf );};
// GetRuneMetrics returns the character metrics for the rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_bbfd pdfFontSimple )GetRuneMetrics (r rune )(_bgd .CharMetrics ,bool ){if _bbfd ._dddd !=nil {_egegf ,_fgfbg :=_bbfd ._dddd .Read (r );if _fgfbg {return _egegf ,true ;};};_dcceg :=_bbfd .Encoder ();if _dcceg ==nil {_bag .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_bbfd );
return _bgd .CharMetrics {},false ;};_bcef ,_gedaab :=_dcceg .RuneToCharcode (r );if !_gedaab {if r !=' '{_bag .Log .Trace ("\u004e\u006f\u0020c\u0068\u0061\u0072\u0063o\u0064\u0065\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u003d\u0025\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",r ,_bbfd );
};return _bgd .CharMetrics {},false ;};_eafb ,_fdbg :=_bbfd .GetCharMetrics (_bcef );return _eafb ,_fdbg ;};func _fbbfc (_addg *_egg .PdfObjectDictionary ,_cedg *fontCommon ,_geggg _ef .TextEncoder )(*pdfFontSimple ,error ){_dfcff :=_gefca (_cedg );_dfcff ._cdee =_geggg ;
if _geggg ==nil {_edaac :=_addg .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _edaac ==nil {_edaac =_egg .MakeInteger (0);};_dfcff .FirstChar =_edaac ;_fedb ,_aaef :=_egg .GetIntVal (_edaac );if !_aaef {_bag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0046i\u0072s\u0074C\u0068\u0061\u0072\u0020\u0074\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029",_edaac );
return nil ,_egg .ErrTypeError ;};_agfef :=_ef .CharCode (_fedb );_edaac =_addg .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _edaac ==nil {_edaac =_egg .MakeInteger (255);};_dfcff .LastChar =_edaac ;_fedb ,_aaef =_egg .GetIntVal (_edaac );
if !_aaef {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004c\u0061\u0073\u0074\u0043h\u0061\u0072\u0020\u0074\u0079\u0070\u0065 \u0028\u0025\u0054\u0029",_edaac );return nil ,_egg .ErrTypeError ;
};_agabb :=_ef .CharCode (_fedb );_dfcff ._babec =make (map[_ef .CharCode ]float64 );_edaac =_addg .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _edaac !=nil {_dfcff .Widths =_edaac ;_cfbgf ,_aacbc :=_egg .GetArray (_edaac );if !_aacbc {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020W\u0069\u0064t\u0068\u0073\u0020\u0061\u0074\u0074\u0072\u0069b\u0075\u0074\u0065\u0020\u0021\u003d\u0020\u0061\u0072\u0072\u0061\u0079 \u0028\u0025\u0054\u0029",_edaac );
return nil ,_egg .ErrTypeError ;};_gdbcg ,_acgg :=_cfbgf .ToFloat64Array ();if _acgg !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0077\u0069d\u0074\u0068\u0073\u0020\u0074\u006f\u0020a\u0072\u0072\u0061\u0079");
return nil ,_acgg ;};if len (_gdbcg )!=int (_agabb -_agfef +1){_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0074\u0068s\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u0021\u003d\u0020\u0025\u0064 \u0028\u0025\u0064\u0029",_agabb -_agfef +1,len (_gdbcg ));
return nil ,_egg .ErrRangeError ;};for _aaabc ,_cbddd :=range _gdbcg {_dfcff ._babec [_agfef +_ef .CharCode (_aaabc )]=_cbddd ;};};};_dfcff .Encoding =_egg .TraceToDirectObject (_addg .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _dfcff ,nil ;
};func _gefca (_abdccd *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_abdccd }};
// Encoder returns the font's text encoder.
func (_cfec pdfCIDFontType0 )Encoder ()_ef .TextEncoder {return _cfec ._dafeb };
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_fae :=NewPdfAction ();_aba :=&PdfActionGoTo3DView {};_aba .PdfAction =_fae ;_fae .SetContext (_aba );return _aba ;};func _aggea (_addag _egg .PdfObject )(*PdfPageResourcesColorspaces ,error ){_gbbac :=&PdfPageResourcesColorspaces {};
if _cbgeb ,_acgd :=_addag .(*_egg .PdfIndirectObject );_acgd {_gbbac ._bcecc =_cbgeb ;_addag =_cbgeb .PdfObject ;};_eabb ,_bcdac :=_egg .GetDict (_addag );if !_bcdac {return nil ,_gd .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};_gbbac .Names =[]string {};_gbbac .Colorspaces =map[string ]PdfColorspace {};for _ ,_dbdfd :=range _eabb .Keys (){_gbdf :=_eabb .Get (_dbdfd );_gbbac .Names =append (_gbbac .Names ,string (_dbdfd ));_gffbe ,_fdcc :=NewPdfColorspaceFromPdfObject (_gbdf );
if _fdcc !=nil {return nil ,_fdcc ;};_gbbac .Colorspaces [string (_dbdfd )]=_gffbe ;};return _gbbac ,nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a CalGray device.
func (_cddg *PdfColorspaceCalGray )GetNumComponents ()int {return 1};
// GetPdfVersion gets the version of the PDF used within this document.
func (_fbdfb *PdfWriter )GetPdfVersion ()string {return _fbdfb .getPdfVersion ()};
// GetFontByName gets the font specified by keyName. Returns the PdfObject which
// the entry refers to. Returns a bool value indicating whether or not the entry was found.
func (_fcgbd *PdfPageResources )GetFontByName (keyName _egg .PdfObjectName )(_egg .PdfObject ,bool ){if _fcgbd .Font ==nil {return nil ,false ;};_gcddg ,_egceef :=_egg .TraceToDirectObject (_fcgbd .Font ).(*_egg .PdfObjectDictionary );if !_egceef {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0021\u0020(\u0067\u006ft\u0020\u0025\u0054\u0029",_egg .TraceToDirectObject (_fcgbd .Font ));
return nil ,false ;};if _edee :=_gcddg .Get (keyName );_edee !=nil {return _edee ,true ;};return nil ,false ;};
// GetContainingPdfObject returns the container of the resources object (indirect object).
func (_ceff *PdfPageResources )GetContainingPdfObject ()_egg .PdfObject {return _ceff ._cbcba };
// SetPdfSubject sets the Subject attribute of the output PDF.
func SetPdfSubject (subject string ){_cgag .Lock ();defer _cgag .Unlock ();_eggc =subject };var _ pdfFont =(*pdfFontType0 )(nil );
// ToPdfObject returns an indirect object containing the signature field dictionary.
func (_ccaf *PdfFieldSignature )ToPdfObject ()_egg .PdfObject {if _ccaf .PdfAnnotationWidget !=nil {_ccaf .PdfAnnotationWidget .ToPdfObject ();};_ccaf .PdfField .ToPdfObject ();_aeded :=_ccaf ._agef ;_baacg :=_aeded .PdfObject .(*_egg .PdfObjectDictionary );
_baacg .SetIfNotNil ("\u0046\u0054",_egg .MakeName ("\u0053\u0069\u0067"));_baacg .SetIfNotNil ("\u004c\u006f\u0063\u006b",_ccaf .Lock );_baacg .SetIfNotNil ("\u0053\u0056",_ccaf .SV );if _ccaf .V !=nil {_baacg .SetIfNotNil ("\u0056",_ccaf .V .ToPdfObject ());
};return _aeded ;};
// GetContainingPdfObject implements interface PdfModel.
func (_adf *PdfAnnotation )GetContainingPdfObject ()_egg .PdfObject {return _adf ._cef };
// PdfActionGoToR represents a GoToR action.
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _egg .PdfObject ;NewWindow _egg .PdfObject ;};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_ffcg *PdfColorspaceLab )ToPdfObject ()_egg .PdfObject {_afcg :=_egg .MakeArray ();_afcg .Append (_egg .MakeName ("\u004c\u0061\u0062"));_ggef :=_egg .MakeDict ();if _ffcg .WhitePoint !=nil {_bcec :=_egg .MakeArray (_egg .MakeFloat (_ffcg .WhitePoint [0]),_egg .MakeFloat (_ffcg .WhitePoint [1]),_egg .MakeFloat (_ffcg .WhitePoint [2]));
_ggef .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_bcec );}else {_bag .Log .Error ("\u004c\u0061\u0062: \u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0057h\u0069t\u0065P\u006fi\u006e\u0074\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029");
};if _ffcg .BlackPoint !=nil {_egfe :=_egg .MakeArray (_egg .MakeFloat (_ffcg .BlackPoint [0]),_egg .MakeFloat (_ffcg .BlackPoint [1]),_egg .MakeFloat (_ffcg .BlackPoint [2]));_ggef .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_egfe );
};if _ffcg .Range !=nil {_gaea :=_egg .MakeArray (_egg .MakeFloat (_ffcg .Range [0]),_egg .MakeFloat (_ffcg .Range [1]),_egg .MakeFloat (_ffcg .Range [2]),_egg .MakeFloat (_ffcg .Range [3]));_ggef .Set ("\u0052\u0061\u006eg\u0065",_gaea );};_afcg .Append (_ggef );
if _ffcg ._ceaag !=nil {_ffcg ._ceaag .PdfObject =_afcg ;return _ffcg ._ceaag ;};return _afcg ;};func (_gcgcd *LTV )validateSig (_eedec *PdfSignature )error {if _eedec ==nil ||_eedec .Contents ==nil ||len (_eedec .Contents .Bytes ())==0{return _f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_eedec );
};return nil ;};
// AppendContentStream adds content stream by string. Appends to the last
// contentstream instance if many.
func (_fcbf *PdfPage )AppendContentStream (contentStr string )error {_faaa ,_afgc :=_fcbf .GetContentStreams ();if _afgc !=nil {return _afgc ;};if len (_faaa )==0{_faaa =[]string {contentStr };return _fcbf .SetContentStreams (_faaa ,_egg .NewFlateEncoder ());
};var _fffe _dd .Buffer ;_fffe .WriteString (_faaa [len (_faaa )-1]);_fffe .WriteString ("\u000a");_fffe .WriteString (contentStr );_faaa [len (_faaa )-1]=_fffe .String ();return _fcbf .SetContentStreams (_faaa ,_egg .NewFlateEncoder ());};
// NewPdfPageResources returns a new PdfPageResources object.
func NewPdfPageResources ()*PdfPageResources {_aeecg :=&PdfPageResources {};_aeecg ._cbcba =_egg .MakeDict ();return _aeecg ;};
// Encrypt encrypts the output file with a specified user/owner password.
func (_dcefc *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_eegaf :=RC4_128bit ;if options !=nil {_eegaf =options .Algorithm ;};_cgdad :=_fe .PermOwner ;if options !=nil {_cgdad =options .Permissions ;};var _edca _gfc .Filter ;
switch _eegaf {case RC4_128bit :_edca =_gfc .NewFilterV2 (16);case AES_128bit :_edca =_gfc .NewFilterAESV2 ();case AES_256bit :_edca =_gfc .NewFilterAESV3 ();default:return _f .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );
};_gaaab ,_gafec ,_eacga :=_egg .PdfCryptNewEncrypt (_edca ,userPass ,ownerPass ,_cgdad );if _eacga !=nil {return _eacga ;};_dcefc ._agdag =_gaaab ;if _gafec .Major !=0{_dcefc .SetVersion (_gafec .Major ,_gafec .Minor );};_dcefc ._edafcc =_gafec .Encrypt ;
_dcefc ._caddc ,_dcefc ._bagaa =_gafec .ID0 ,_gafec .ID1 ;_gcdfc :=_egg .MakeIndirectObject (_gafec .Encrypt );_dcefc ._afcc =_gcdfc ;_dcefc .addObject (_gcdfc );return nil ;};
// PdfActionImportData represents a importData action.
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
func (_ccgae *PdfPageResources )HasColorspaceByName (keyName _egg .PdfObjectName )bool {_gggadd ,_ccdae :=_ccgae .GetColorspaces ();if _ccdae !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0072\u0061\u0063\u0065: \u0025\u0076",_ccdae );
return false ;};if _gggadd ==nil {return false ;};_ ,_accgd :=_gggadd .Colorspaces [string (keyName )];return _accgd ;};
// ColorFromFloats returns a new PdfColorDevice based on the input slice of
// color components. The slice should contain four elements representing the
// cyan, magenta, yellow and key components of the color. The values of the
// elements should be between 0 and 1.
func (_ddef *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cgdd :=vals [0];if _cgdd < 0.0||_cgdd > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cgdd );
return nil ,ErrColorOutOfRange ;};_dfgg :=vals [1];if _dfgg < 0.0||_dfgg > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_dfgg );return nil ,ErrColorOutOfRange ;
};_cfed :=vals [2];if _cfed < 0.0||_cfed > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cfed );return nil ,ErrColorOutOfRange ;};_bbgc :=vals [3];
if _bbgc < 0.0||_bbgc > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bbgc );return nil ,ErrColorOutOfRange ;};_fcacf :=NewPdfColorDeviceCMYK (_cgdd ,_dfgg ,_cfed ,_bbgc );
return _fcacf ,nil ;};
// NewPdfAnnotationUnderline returns a new text underline annotation.
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_bdf :=NewPdfAnnotation ();_bge :=&PdfAnnotationUnderline {};_bge .PdfAnnotation =_bdf ;_bge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bdf .SetContext (_bge );return _bge ;};func (_ggab *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
// ToPdfObject returns the PDF representation of the colorspace.
func (_gbfg *PdfPageResourcesColorspaces )ToPdfObject ()_egg .PdfObject {_dbcgb :=_egg .MakeDict ();for _ ,_feeac :=range _gbfg .Names {_dbcgb .Set (_egg .PdfObjectName (_feeac ),_gbfg .Colorspaces [_feeac ].ToPdfObject ());};if _gbfg ._bcecc !=nil {_gbfg ._bcecc .PdfObject =_dbcgb ;
return _gbfg ._bcecc ;};return _dbcgb ;};
// SetContentStream sets the pattern cell's content stream.
func (_edbef *PdfTilingPattern )SetContentStream (content []byte ,encoder _egg .StreamEncoder )error {_eead ,_cacb :=_edbef ._fgec .(*_egg .PdfObjectStream );if !_cacb {_bag .Log .Debug ("\u0054\u0069l\u0069\u006e\u0067\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_edbef ._fgec );
return _egg .ErrTypeError ;};if encoder ==nil {encoder =_egg .NewRawEncoder ();};_fdadg :=_eead .PdfObjectDictionary ;_gafb :=encoder .MakeStreamDict ();_fdadg .Merge (_gafb );_cgfg ,_dgae :=encoder .EncodeBytes (content );if _dgae !=nil {return _dgae ;
};_fdadg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_cgfg ))));_eead .Stream =_cgfg ;return nil ;};
// GetMediaBox gets the inheritable media box value, either from the page
// or a higher up page/pages struct.
func (_cdcaf *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _cdcaf .MediaBox !=nil {return _cdcaf .MediaBox ,nil ;};_fedda :=_cdcaf .Parent ;for _fedda !=nil {_gfaafa ,_efbag :=_egg .GetDict (_fedda );if !_efbag {return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063t\u0073\u0020\u0064\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079");
};if _ebgdc :=_gfaafa .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_ebgdc !=nil {_cdbg ,_efec :=_egg .GetArray (_ebgdc );if !_efec {return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");
};_beeff ,_ggee :=NewPdfRectangle (*_cdbg );if _ggee !=nil {return nil ,_ggee ;};return _beeff ,nil ;};_fedda =_gfaafa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_gd .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");
};
// GetContentStream returns the XObject Form's content stream.
func (_ebcgb *XObjectForm )GetContentStream ()([]byte ,error ){_dbafe ,_bcgcdb :=_egg .DecodeStream (_ebcgb ._acgef );if _bcgcdb !=nil {return nil ,_bcgcdb ;};return _dbafe ,nil ;};
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
type ContentStreamWrapper interface{WrapContentStream (_ageg *PdfPage )error ;};func (_aeaa *PdfAppender )updateObjectsDeep (_abba _egg .PdfObject ,_ddfb map[_egg .PdfObject ]struct{}){if _ddfb ==nil {_ddfb =map[_egg .PdfObject ]struct{}{};};if _ ,_beae :=_ddfb [_abba ];
_beae ||_abba ==nil {return ;};_ddfb [_abba ]=struct{}{};_egcf :=_egg .ResolveReferencesDeep (_abba ,_aeaa ._bdbf );if _egcf !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_egcf );};switch _aeb :=_abba .(type ){case *_egg .PdfIndirectObject :switch {case _aeb .GetParser ()==_aeaa ._bgaa ._dafgab :return ;
case _aeb .GetParser ()==_aeaa .Reader ._dafgab :_bdgg ,_ :=_aeaa ._bgaa .GetIndirectObjectByNumber (int (_aeb .ObjectNumber ));_befe ,_agab :=_bdgg .(*_egg .PdfIndirectObject );if _agab &&_befe !=nil {if _befe .PdfObject !=_aeb .PdfObject &&_befe .PdfObject .WriteString ()!=_aeb .PdfObject .WriteString (){_aeaa .addNewObject (_abba );
_aeaa ._eegc [_abba ]=_aeb .ObjectNumber ;};};default:_aeaa .addNewObject (_abba );};_aeaa .updateObjectsDeep (_aeb .PdfObject ,_ddfb );case *_egg .PdfObjectArray :for _ ,_fgbfe :=range _aeb .Elements (){_aeaa .updateObjectsDeep (_fgbfe ,_ddfb );};case *_egg .PdfObjectDictionary :for _ ,_baef :=range _aeb .Keys (){_aeaa .updateObjectsDeep (_aeb .Get (_baef ),_ddfb );
};case *_egg .PdfObjectStreams :if _aeb .GetParser ()!=_aeaa ._bgaa ._dafgab {for _ ,_bafga :=range _aeb .Elements (){_aeaa .updateObjectsDeep (_bafga ,_ddfb );};};case *_egg .PdfObjectStream :switch {case _aeb .GetParser ()==_aeaa ._bgaa ._dafgab :return ;
case _aeb .GetParser ()==_aeaa .Reader ._dafgab :if _efag ,_bfcf :=_aeaa ._bgaa ._dafgab .LookupByReference (_aeb .PdfObjectReference );_bfcf ==nil {var _ccce bool ;if _bddg ,_ddga :=_egg .GetStream (_efag );_ddga &&_dd .Equal (_bddg .Stream ,_aeb .Stream ){_ccce =true ;
};if _edc ,_bdab :=_egg .GetDict (_efag );_ccce &&_bdab {_ccce =_edc .WriteString ()==_aeb .PdfObjectDictionary .WriteString ();};if _ccce {return ;};};if _aeb .ObjectNumber !=0{_aeaa ._eegc [_abba ]=_aeb .ObjectNumber ;};default:if _ ,_bgac :=_aeaa ._bdba [_abba ];
!_bgac {_aeaa .addNewObject (_abba );};};_aeaa .updateObjectsDeep (_aeb .PdfObjectDictionary ,_ddfb );};};
// CharMetrics represents width and height metrics of a glyph.
type CharMetrics =_bgd .CharMetrics ;const (_ PdfOutputIntentType =iota ;PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ;);
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_beagac *PdfPageResources )GetShadingByName (keyName _egg .PdfObjectName )(*PdfShading ,bool ){if _beagac .Shading ==nil {return nil ,false ;};_fcga ,_ecbdf :=_egg .TraceToDirectObject (_beagac .Shading ).(*_egg .PdfObjectDictionary );if !_ecbdf {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0068\u0061d\u0069\u006e\u0067\u0020\u0065\u006e\u0074r\u0079\u0020\u002d\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064i\u0063\u0074\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_beagac .Shading );
return nil ,false ;};if _aceg :=_fcga .Get (keyName );_aceg !=nil {_ceged ,_dcffa :=_edbaa (_aceg );if _dcffa !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020f\u0061\u0069l\u0065\u0064\u0020\u0074\u006f\u0020\u006c\u006fa\u0064\u0020\u0070\u0064\u0066\u0020\u0073\u0068\u0061\u0064\u0069\u006eg\u003a\u0020\u0025\u0076",_dcffa );
return nil ,false ;};return _ceged ,true ;};return nil ,false ;};
// NewPdfActionRendition returns a new "rendition" action.
func NewPdfActionRendition ()*PdfActionRendition {_aa :=NewPdfAction ();_dgg :=&PdfActionRendition {};_dgg .PdfAction =_aa ;_aa .SetContext (_dgg );return _dgg ;};
// NewPdfAnnotationPolyLine returns a new polyline annotation.
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_cga :=NewPdfAnnotation ();_fgff :=&PdfAnnotationPolyLine {};_fgff .PdfAnnotation =_cga ;_fgff .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cga .SetContext (_fgff );return _fgff ;};
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
// The added XObject is identified by the specified name.
func (_ffdbc *PdfPageResources )SetXObjectByName (keyName _egg .PdfObjectName ,stream *_egg .PdfObjectStream )error {if _ffdbc .XObject ==nil {_ffdbc .XObject =_egg .MakeDict ();};_faaefg :=_egg .TraceToDirectObject (_ffdbc .XObject );_afbff ,_fdbab :=_faaefg .(*_egg .PdfObjectDictionary );
if !_fdbab {_bag .Log .Debug ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0058\u004f\u0062j\u0065\u0063\u0074\u002c\u0020\u0067\u006f\u0074\u0020\u0025T\u002f\u0025\u0054",_ffdbc .XObject ,_faaefg );return _gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_afbff .Set (keyName ,stream );return nil ;};
// ToPdfObject implements interface PdfModel.
func (_cecb *PdfActionTrans )ToPdfObject ()_egg .PdfObject {_cecb .PdfAction .ToPdfObject ();_gbf :=_cecb ._bf ;_gfaa :=_gbf .PdfObject .(*_egg .PdfObjectDictionary );_gfaa .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeTrans )));_gfaa .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_cecb .Trans );
return _gbf ;};
// GetContainingPdfObject implements interface PdfModel.
func (_bgbbd *PdfSignature )GetContainingPdfObject ()_egg .PdfObject {return _bgbbd ._ccbda };func (_cgbf *DSS )addCerts (_cace [][]byte )([]*_egg .PdfObjectStream ,error ){return _cgbf .add (&_cgbf .Certs ,_cgbf ._gafe ,_cace );};
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
// NewPdfColorspaceSpecialPattern returns a new pattern color.
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_degb pdfCIDFontType2 )GetRuneMetrics (r rune )(_bgd .CharMetrics ,bool ){_ddac ,_eaaa :=_degb ._beec [r ];if !_eaaa {_gcdd ,_accb :=_egg .GetInt (_degb .DW );if !_accb {return _bgd .CharMetrics {},false ;};_ddac =int (*_gcdd );};return _bgd .CharMetrics {Wx :float64 (_ddac )},true ;
};func (_abcd fontCommon )coreString ()string {_ebfde :="";if _abcd ._bgacg !=nil {_ebfde =_abcd ._bgacg .String ();};return _f .Sprintf ("\u0025#\u0071\u0020%\u0023\u0071\u0020%\u0071\u0020\u006f\u0062\u006a\u003d\u0025d\u0020\u0054\u006f\u0055\u006e\u0069c\u006f\u0064\u0065\u003d\u0025\u0074\u0020\u0066\u006c\u0061\u0067s\u003d\u0030\u0078\u0025\u0030\u0078\u0020\u0025\u0073",_abcd ._ebdf ,_abcd ._dgfdc ,_abcd ._cbgce ,_abcd ._ccaae ,_abcd ._gdbae !=nil ,_abcd .fontFlags (),_ebfde );
};
// ColorToRGB converts a ICCBased color to an RGB color.
func (_cgac *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _cgac .Alternate ==nil {_bag .Log .Debug ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
if _cgac .N ==1{_bag .Log .Debug ("\u0049\u0043\u0043\u0020\u0042a\u0073\u0065\u0064\u0020\u0063o\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061\u006c\u0074\u0065r\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006e\u0067\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061y\u0020\u0028\u004e\u003d\u0031\u0029");
_fbcdb :=NewPdfColorspaceDeviceGray ();return _fbcdb .ColorToRGB (color );}else if _cgac .N ==3{_bag .Log .Debug ("\u0049\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067 \u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006eg\u0020\u0044\u0065\u0076\u0069\u0063e\u0052\u0047B\u0020\u0028N\u003d3\u0029");
return color ,nil ;}else if _cgac .N ==4{_bag .Log .Debug ("\u0049\u0043\u0043\u0020\u0042a\u0073\u0065\u0064\u0020\u0063o\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061\u006c\u0074\u0065r\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006e\u0067\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059K\u0020\u0028\u004e\u003d\u0034\u0029");
_dfaa :=NewPdfColorspaceDeviceCMYK ();return _dfaa .ColorToRGB (color );}else {return nil ,_gd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
};};_bag .Log .Trace ("\u0049\u0043\u0043 \u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0077\u0069\u0074\u0068\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061t\u0069\u0076\u0065\u003a\u0020\u0025\u0023\u0076",_cgac );
return _cgac .Alternate .ColorToRGB (color );};
// GenerateXObjectName generates an unused XObject name that can be used for
// adding new XObjects. Uses format XObj1, XObj2, ...
func (_bfbdcf *PdfPageResources )GenerateXObjectName ()_egg .PdfObjectName {_dggdg :=1;for {_fdcbe :=_egg .MakeName (_f .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_dggdg ));if !_bfbdcf .HasXObjectByName (*_fdcbe ){return *_fdcbe ;};_dggdg ++;};};
// ToPdfObject implements interface PdfModel.
func (_fff *PdfActionGoToE )ToPdfObject ()_egg .PdfObject {_fff .PdfAction .ToPdfObject ();_aef :=_fff ._bf ;_dge :=_aef .PdfObject .(*_egg .PdfObjectDictionary );_dge .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeGoToE )));if _fff .F !=nil {_dge .Set ("\u0046",_fff .F .ToPdfObject ());
};_dge .SetIfNotNil ("\u0044",_fff .D );_dge .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_fff .NewWindow );_dge .SetIfNotNil ("\u0054",_fff .T );return _aef ;};
// PdfSignatureReference represents a PDF signature reference dictionary and is used for signing via form signature fields.
// (Section 12.8.1, Table 253 - Entries in a signature reference dictionary p. 469 in PDF32000_2008).
type PdfSignatureReference struct{_fedcg *_egg .PdfObjectDictionary ;Type *_egg .PdfObjectName ;TransformMethod *_egg .PdfObjectName ;TransformParams _egg .PdfObject ;Data _egg .PdfObject ;DigestMethod *_egg .PdfObjectName ;};func _gecfbd ()string {_cgag .Lock ();
defer _cgag .Unlock ();return _fafb };func _ffee (_gbabe _dag .ReadSeeker ,_edgbb *ReaderOpts ,_cgbbe bool ,_dgfcd string )(*PdfReader ,error ){if _edgbb ==nil {_edgbb =NewReaderOpts ();};_adbgg :=*_edgbb ;_feadc :=&PdfReader {_eefb :_gbabe ,_gbabf :map[_egg .PdfObject ]struct{}{},_dabaf :_fedbe (),_cede :_edgbb .LazyLoad ,_gccee :_edgbb .ComplianceMode ,_gddafb :_cgbbe ,_ecbf :&_adbgg };
_cegcb ,_cgbag :=_gfgfd ("\u0072");if _cgbag !=nil {return nil ,_cgbag ;};_cgbag =_ace .Track (_cegcb ,_dgfcd );if _cgbag !=nil {return nil ,_cgbag ;};_feadc ._faeea =_cegcb ;var _bgcab *_egg .PdfParser ;if !_feadc ._gccee {_bgcab ,_cgbag =_egg .NewParser (_gbabe );
}else {_bgcab ,_cgbag =_egg .NewCompliancePdfParser (_gbabe );};if _cgbag !=nil {return nil ,_cgbag ;};_feadc ._dafgab =_bgcab ;_eddde ,_cgbag :=_feadc .IsEncrypted ();if _cgbag !=nil {return nil ,_cgbag ;};if !_eddde {_cgbag =_feadc .loadStructure ();
if _cgbag !=nil {return nil ,_cgbag ;};}else if _cgbbe {_dbgdc ,_debgd :=_feadc .Decrypt ([]byte (_edgbb .Password ));if _debgd !=nil {return nil ,_debgd ;};if !_dbgdc {return nil ,_gd .New ("\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074\u006f \u0064\u0065c\u0072\u0079\u0070\u0074\u0020\u0070\u0061\u0073\u0073w\u006f\u0072\u0064\u0020p\u0072\u006f\u0074\u0065\u0063\u0074\u0065\u0064\u0020\u0066\u0069\u006c\u0065\u0020\u002d\u0020\u006e\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0073\u0070\u0065\u0063\u0069\u0066y\u0020\u0070\u0061s\u0073\u0020\u0074\u006f\u0020\u0044\u0065\u0063\u0072\u0079\u0070\u0074");
};};_feadc ._gcfcf =make (map[*PdfReader ]*PdfReader );_feadc ._acad =make ([]*PdfReader ,_bgcab .GetRevisionNumber ());return _feadc ,nil ;};func _cbcfd (_edce *_egg .PdfObjectDictionary )(*PdfTilingPattern ,error ){_fbac :=&PdfTilingPattern {};_bfdag :=_edce .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");
if _bfdag ==nil {_bag .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_dgfec ,_cgdaf :=_bfdag .(*_egg .PdfObjectInteger );if !_cgdaf {_bag .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054y\u0070\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074e\u0067\u0065\u0072\u0020\u0028\u0067\u006ft\u0020\u0025\u0054\u0029",_bfdag );
return nil ,_egg .ErrTypeError ;};_fbac .PaintType =_dgfec ;_bfdag =_edce .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _bfdag ==nil {_bag .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_debgb ,_cgdaf :=_bfdag .(*_egg .PdfObjectInteger );if !_cgdaf {_bag .Log .Debug ("\u0054\u0069\u006cin\u0067\u0054\u0079\u0070\u0065\u0020\u006e\u006f\u0074 \u0061n\u0020i\u006et\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_bfdag );
return nil ,_egg .ErrTypeError ;};_fbac .TilingType =_debgb ;_bfdag =_edce .Get ("\u0042\u0042\u006f\u0078");if _bfdag ==nil {_bag .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
};_bfdag =_egg .TraceToDirectObject (_bfdag );_dagbc ,_cgdaf :=_bfdag .(*_egg .PdfObjectArray );if !_cgdaf {_bag .Log .Debug ("\u0042B\u006f\u0078 \u0073\u0068\u006fu\u006c\u0064\u0020\u0062\u0065\u0020\u0073p\u0065\u0063\u0069\u0066\u0069\u0065d\u0020\u0062\u0079\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061y\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_bfdag );
return nil ,_egg .ErrTypeError ;};_efade ,_cfdgd :=NewPdfRectangle (*_dagbc );if _cfdgd !=nil {_bag .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_cfdgd );return nil ,_cfdgd ;};_fbac .BBox =_efade ;_bfdag =_edce .Get ("\u0058\u0053\u0074e\u0070");
if _bfdag ==nil {_bag .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_fcfba ,_cfdgd :=_egg .GetNumberAsFloat (_bfdag );if _cfdgd !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0058S\u0074e\u0070\u0020\u0061\u0073\u0020\u0066\u006c\u006f\u0061\u0074\u003a\u0020\u0025\u0076",_fcfba );
return nil ,_cfdgd ;};_fbac .XStep =_egg .MakeFloat (_fcfba );_bfdag =_edce .Get ("\u0059\u0053\u0074e\u0070");if _bfdag ==nil {_bag .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
};_feafa ,_cfdgd :=_egg .GetNumberAsFloat (_bfdag );if _cfdgd !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0059S\u0074e\u0070\u0020\u0061\u0073\u0020\u0066\u006c\u006f\u0061\u0074\u003a\u0020\u0025\u0076",_feafa );
return nil ,_cfdgd ;};_fbac .YStep =_egg .MakeFloat (_feafa );_bfdag =_edce .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _bfdag ==nil {_bag .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_edce ,_cgdaf =_egg .TraceToDirectObject (_bfdag ).(*_egg .PdfObjectDictionary );if !_cgdaf {return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_bfdag );
};_gcfea ,_cfdgd :=NewPdfPageResourcesFromDict (_edce );if _cfdgd !=nil {return nil ,_cfdgd ;};_fbac .Resources =_gcfea ;if _feaad :=_edce .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_feaad !=nil {_cbcgf ,_fggbe :=_feaad .(*_egg .PdfObjectArray );if !_fggbe {_bag .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_feaad );
return nil ,_egg .ErrTypeError ;};_fbac .Matrix =_cbcgf ;};return _fbac ,nil ;};
// GetContentStream returns the pattern cell's content stream
func (_ddbde *PdfTilingPattern )GetContentStream ()([]byte ,error ){_cgca ,_ ,_adeea :=_ddbde .GetContentStreamWithEncoder ();return _cgca ,_adeea ;};
// PdfShadingType3 is a Radial shading.
type PdfShadingType3 struct{*PdfShading ;Coords *_egg .PdfObjectArray ;Domain *_egg .PdfObjectArray ;Function []PdfFunction ;Extend *_egg .PdfObjectArray ;};
// ToPdfObject implements interface PdfModel.
func (_gde *PdfActionMovie )ToPdfObject ()_egg .PdfObject {_gde .PdfAction .ToPdfObject ();_dfgbd :=_gde ._bf ;_ccg :=_dfgbd .PdfObject .(*_egg .PdfObjectDictionary );_ccg .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeMovie )));_ccg .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_gde .Annotation );
_ccg .SetIfNotNil ("\u0054",_gde .T );_ccg .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_gde .Operation );return _dfgbd ;};
// SetOCProperties sets the optional content properties.
func (_dbdfe *PdfWriter )SetOCProperties (ocProperties _egg .PdfObject )error {_gfeeae :=_dbdfe ._acea ;if ocProperties !=nil {_bag .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");
_gfeeae .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _dbdfe .addObjects (ocProperties );};return nil ;};
// ToPdfObject converts date to a PDF string object.
func (_acdafb *PdfDate )ToPdfObject ()_egg .PdfObject {_dgeg :=_f .Sprintf ("\u0044\u003a\u0025\u002e\u0034\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e2\u0064\u0025\u0063\u0025\u002e2\u0064\u0027%\u002e\u0032\u0064\u0027",_acdafb ._acadbc ,_acdafb ._cbffc ,_acdafb ._fgddd ,_acdafb ._bfcd ,_acdafb ._fceaf ,_acdafb ._ffccc ,_acdafb ._ebcdc ,_acdafb ._ebeed ,_acdafb ._fcafb );
return _egg .MakeString (_dgeg );};
// FlattenFieldsWithOpts flattens the AcroForm fields of the reader using the
// provided field appearance generator and the specified options. If no options
// are specified, all form fields are flattened.
// If a filter function is provided using the opts parameter, only the filtered
// fields are flattened. Otherwise, all form fields are flattened.
// At the end of the process, the AcroForm contains all the fields which were
// not flattened. If all fields are flattened, the reader's AcroForm field
// is set to nil.
func (_eegcb *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _eegcb .flattenFieldsWithOpts (false ,appgen ,opts );};
// NewPdfActionJavaScript returns a new "javaScript" action.
func NewPdfActionJavaScript ()*PdfActionJavaScript {_ae :=NewPdfAction ();_aad :=&PdfActionJavaScript {};_aad .PdfAction =_ae ;_ae .SetContext (_aad );return _aad ;};func (_ecgc *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";
};
// FontDescriptor returns font's PdfFontDescriptor. This may be a builtin descriptor for standard 14
// fonts but must be an explicit descriptor for other fonts.
func (_adfdf *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _adfdf .baseFields ()._bgacg !=nil {return _adfdf .baseFields ()._bgacg ;};if _bcbab :=_adfdf ._edde .getFontDescriptor ();_bcbab !=nil {return _bcbab ;};_bag .Log .Error ("\u0041\u006cl \u0066\u006f\u006et\u0073\u0020\u0068\u0061ve \u0061 D\u0065\u0073\u0063\u0072\u0069\u0070\u0074or\u002e\u0020\u0066\u006f\u006e\u0074\u003d%\u0073",_adfdf );
return nil ;};func (_acc *PdfAnnotationMarkup )appendToPdfDictionary (_fcbd *_egg .PdfObjectDictionary ){_fcbd .SetIfNotNil ("\u0054",_acc .T );if _acc .Popup !=nil {_fcbd .Set ("\u0050\u006f\u0070u\u0070",_acc .Popup .ToPdfObject ());};_fcbd .SetIfNotNil ("\u0043\u0041",_acc .CA );
_fcbd .SetIfNotNil ("\u0052\u0043",_acc .RC );_fcbd .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_acc .CreationDate );_fcbd .SetIfNotNil ("\u0049\u0052\u0054",_acc .IRT );_fcbd .SetIfNotNil ("\u0053\u0075\u0062\u006a",_acc .Subj );
_fcbd .SetIfNotNil ("\u0052\u0054",_acc .RT );_fcbd .SetIfNotNil ("\u0049\u0054",_acc .IT );_fcbd .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_acc .ExData );};
// SetBorderWidth sets the style's border width.
func (_cacg *PdfBorderStyle )SetBorderWidth (width float64 ){_cacg .W =&width };
// ToPdfOutline returns a low level PdfOutline object, based on the current
// instance.
func (_gbffb *Outline )ToPdfOutline ()*PdfOutline {_dbeae :=NewPdfOutline ();var _fcec []*PdfOutlineItem ;var _gfdbf int64 ;var _ggfa *PdfOutlineItem ;for _ ,_dgafa :=range _gbffb .Entries {_acbed ,_ebefe :=_dgafa .ToPdfOutlineItem ();_acbed .Parent =&_dbeae .PdfOutlineTreeNode ;
if _ggfa !=nil {_ggfa .Next =&_acbed .PdfOutlineTreeNode ;_acbed .Prev =&_ggfa .PdfOutlineTreeNode ;};_fcec =append (_fcec ,_acbed );_gfdbf +=_ebefe ;_ggfa =_acbed ;};_fgffd :=int64 (len (_fcec ));_gfdbf +=_fgffd ;if _fgffd > 0{_dbeae .First =&_fcec [0].PdfOutlineTreeNode ;
_dbeae .Last =&_fcec [_fgffd -1].PdfOutlineTreeNode ;_dbeae .Count =&_gfdbf ;};return _dbeae ;};
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
func (_afef *PdfOutlineTreeNode )GetContainingPdfObject ()_egg .PdfObject {return _afef .GetContext ().GetContainingPdfObject ();};func (_gcea *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _gcea ._bgacg };
// NewPdfAnnotation returns an initialized generic PDF annotation model.
func NewPdfAnnotation ()*PdfAnnotation {_gacf :=&PdfAnnotation {};_gacf ._cef =_egg .MakeIndirectObject (_egg .MakeDict ());return _gacf ;};
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
func (_bgcf *pdfCIDFontType0 )ToPdfObject ()_egg .PdfObject {return _egg .MakeNull ()};func (_agdc *PdfReader )newPdfAnnotationCircleFromDict (_dbff *_egg .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_ffg :=PdfAnnotationCircle {};_cfa ,_dbcc :=_agdc .newPdfAnnotationMarkupFromDict (_dbff );
if _dbcc !=nil {return nil ,_dbcc ;};_ffg .PdfAnnotationMarkup =_cfa ;_ffg .BS =_dbff .Get ("\u0042\u0053");_ffg .IC =_dbff .Get ("\u0049\u0043");_ffg .BE =_dbff .Get ("\u0042\u0045");_ffg .RD =_dbff .Get ("\u0052\u0044");return &_ffg ,nil ;};func (_ececf *PdfWriter )addObject (_gcfef _egg .PdfObject )bool {_gafea :=_ececf .hasObject (_gcfef );
if !_gafea {_eefe :=_egg .ResolveReferencesDeep (_gcfef ,_ececf ._adcd );if _eefe !=nil {_bag .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_eefe );};_ececf ._bbead =append (_ececf ._bbead ,_gcfef );
_ececf ._bacec [_gcfef ]=struct{}{};return true ;};return false ;};
// NewPdfSignature creates a new PdfSignature object.
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_ebedd :=&PdfSignature {Type :_egg .MakeName ("\u0053\u0069\u0067"),Handler :handler };_faded :=&pdfSignDictionary {PdfObjectDictionary :_egg .MakeDict (),_ebdca :&handler ,_gbbba :_ebedd };
_ebedd ._ccbda =_egg .MakeIndirectObject (_faded );return _ebedd ;};
// PdfOutputIntent provides a means for matching the color characteristics of a PDF document with
// those of a target output device.
// Multiple PdfOutputIntents allows the production process to be customized to the expected workflow and the specific
// tools available.
type PdfOutputIntent struct{
// Type is an optional PDF object that this dictionary describes.
// If present, must be OutputIntent for an output intent dictionary.
Type string ;
// S defines the OutputIntent subtype which should match the standard used in given document i.e:
// for PDF/X use PdfOutputIntentTypeX.
S PdfOutputIntentType ;
// OutputCondition is an optional field that is identifying the intended output device or production condition in
// human-readable form. This is preferred method of defining such a string for presentation to the user.
OutputCondition string ;
// OutputConditionIdentifier is a required field identifying the intended output device or production condition in
// human or machine-readable form. If human-readable, this string may be used
// in lieu of an OutputCondition for presentation to the user.
// A typical value for this entry would be the name of a production condition maintained
// in an industry-standard registry such as the ICC Characterization Data Registry
// If the intended production condition is not a recognized standard, the value Custom is recommended for this entry.
// the DestOutputProfile entry defines the ICC profile, and the Info entry is used for further
// human-readable identification.
OutputConditionIdentifier string ;
// RegistryName is an optional string field (conventionally URI) identifying the registry in which the condition
// designated by OutputConditionIdentifier is defined.
RegistryName string ;
// Info is a required field if OutputConditionIdentifier does not specify a standard production condition.
// A human-readable text string containing additional information or comments about intended
// target device or production condition.
Info string ;
// DestOutputProfile is required if OutputConditionIdentifier does not specify a standard production condition.
// It is an ICC profile stream defining the transformation from the PDF document's source colors to output device colorants.
DestOutputProfile []byte ;
// ColorComponents is the number of color components supported by given output profile.
ColorComponents int ;_gdaaa *_egg .PdfObjectDictionary ;};
// PdfTransformParamsDocMDP represents a transform parameters dictionary for the DocMDP method and is used to detect
// modifications relative to a signature field that is signed by the author of a document.
// (Section 12.8.2.2, Table 254 - Entries in the DocMDP transform parameters dictionary p. 471 in PDF32000_2008).
type PdfTransformParamsDocMDP struct{Type *_egg .PdfObjectName ;P *_egg .PdfObjectInteger ;V *_egg .PdfObjectName ;};
// ToPdfObject implements interface PdfModel.
func (_cfdbg *PdfTransformParamsDocMDP )ToPdfObject ()_egg .PdfObject {_dcccb :=_egg .MakeDict ();_dcccb .SetIfNotNil ("\u0054\u0079\u0070\u0065",_cfdbg .Type );_dcccb .SetIfNotNil ("\u0056",_cfdbg .V );_dcccb .SetIfNotNil ("\u0050",_cfdbg .P );return _dcccb ;
};
// PdfFunctionType2 defines an exponential interpolation of one input value and n
// output values:
// f(x) = y_0, ..., y_(n-1)
// y_j = C0_j + x^N * (C1_j - C0_j); for 0 <= j < n
// When N=1 ; linear interpolation between C0 and C1.
type PdfFunctionType2 struct{Domain []float64 ;Range []float64 ;C0 []float64 ;C1 []float64 ;N float64 ;_ffcfb *_egg .PdfIndirectObject ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain three PdfObjectFloat elements representing
// the A, B and C components of the color.
func (_bgbd *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgcec ,_acec :=_egg .GetNumbersAsFloat (objects );
if _acec !=nil {return nil ,_acec ;};return _bgbd .ColorFromFloats (_bgcec );};
// ColorToRGB verifies that the input color is an RGB color. Method exists in
// order to satisfy the PdfColorspace interface.
func (_fdbe *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_fbba ,_fagg :=color .(*PdfColorDeviceRGB );if !_fagg {_bag .Log .Debug ("\u0049\u006e\u0070\u0075\u0074\u0020\u0063\u006f\u006c\u006f\u0072 \u006e\u006f\u0074\u0020\u0064\u0065\u0076\u0069\u0063\u0065 \u0052\u0047\u0042");
return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _fbba ,nil ;};func _bcgcb (_bbea _egg .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_beacb :=NewPdfColorspaceSpecialSeparation ();
if _aagg ,_agaf :=_bbea .(*_egg .PdfIndirectObject );_agaf {_beacb ._eedg =_aagg ;};_bbea =_egg .TraceToDirectObject (_bbea );_ggccd ,_dcfg :=_bbea .(*_egg .PdfObjectArray );if !_dcfg {return nil ,_f .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062je\u0063\u0074");
};if _ggccd .Len ()!=4{return nil ,_f .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074i\u006f\u006e \u0043\u0053\u003a\u0020\u0049\u006e\u0063\u006fr\u0072\u0065\u0063\u0074\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006ce\u006e\u0067\u0074\u0068");};_bbea =_ggccd .Get (0);
_dggg ,_dcfg :=_bbea .(*_egg .PdfObjectName );if !_dcfg {return nil ,_f .Errorf ("\u0073\u0065\u0070ar\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a \u0069n\u0076a\u006ci\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
};if *_dggg !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_f .Errorf ("\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020w\u0072o\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
};_bbea =_ggccd .Get (1);_dggg ,_dcfg =_bbea .(*_egg .PdfObjectName );if !_dcfg {return nil ,_f .Errorf ("\u0073\u0065pa\u0072\u0061\u0074i\u006f\u006e\u0020\u0043S: \u0049nv\u0061\u006c\u0069\u0064\u0020\u0063\u006flo\u0072\u0061\u006e\u0074\u0020\u006e\u0061m\u0065");
};_beacb .ColorantName =_dggg ;_bbea =_ggccd .Get (2);_dacg ,_cffc :=NewPdfColorspaceFromPdfObject (_bbea );if _cffc !=nil {return nil ,_cffc ;};_beacb .AlternateSpace =_dacg ;_cebc ,_cffc :=_bdefe (_ggccd .Get (3));if _cffc !=nil {return nil ,_cffc ;};
_beacb .TintTransform =_cebc ;return _beacb ,nil ;};
// A returns the value of the A component of the color.
func (_baedb *PdfColorCalRGB )A ()float64 {return _baedb [0]};
// ToJBIG2Image converts current image to the core.JBIG2Image.
func (_bdaea *Image )ToJBIG2Image ()(*_egg .JBIG2Image ,error ){_dadefb ,_eaed :=_bdaea .ToGoImage ();if _eaed !=nil {return nil ,_eaed ;};return _egg .GoImageToJBIG2 (_dadefb ,_egg .JB2ImageAutoThreshold );};
// AddContentStreamByString adds content stream by string. Puts the content
// string into a stream object and points the content stream towards it.
func (_gecc *PdfPage )AddContentStreamByString (contentStr string )error {_aeagd ,_dfgc :=_egg .MakeStream ([]byte (contentStr ),_egg .NewFlateEncoder ());if _dfgc !=nil {return _dfgc ;};if _gecc .Contents ==nil {_gecc .Contents =_aeagd ;}else {_eagce :=_egg .TraceToDirectObject (_gecc .Contents );
_cgab ,_badc :=_eagce .(*_egg .PdfObjectArray );if !_badc {_cgab =_egg .MakeArray (_eagce );};_cgab .Append (_aeagd );_gecc .Contents =_cgab ;};return nil ;};
// String returns a string that describes `base`.
func (_gdabe fontCommon )String ()string {return _f .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_gdabe .coreString ());};func (_cdfa *PdfReader )newPdfAnnotationPrinterMarkFromDict (_fcf *_egg .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_gcgf :=PdfAnnotationPrinterMark {};
_gcgf .MN =_fcf .Get ("\u004d\u004e");return &_gcgf ,nil ;};
// PdfActionGoTo represents a GoTo action.
type PdfActionGoTo struct{*PdfAction ;D _egg .PdfObject ;};
// Compress is yet to be implemented.
// Should be able to compress in terms of JPEG quality parameter,
// and DPI threshold (need to know bounding area dimensions).
func (_dgfac DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};
// SetOptimizer sets the optimizer to optimize PDF before writing.
func (_befdc *PdfWriter )SetOptimizer (optimizer Optimizer ){_befdc ._cfgb =optimizer };func (_dda *PdfReader )newPdfActionMovieFromDict (_cfb *_egg .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_cfb .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_cfb .Get ("\u0054"),Operation :_cfb .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;
};func (_acda *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _acda ._bgacg };
// PdfRectangle is a definition of a rectangle.
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};
// IsPush returns true if the button field represents a push button, false otherwise.
func (_bcba *PdfFieldButton )IsPush ()bool {return _bcba .GetType ()==ButtonTypePush };
// NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options.
func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_gbeag :=&PdfAppender {_cbe :reader ._eefb ,Reader :reader ,_daac :reader ._dafgab ,_bdbf :reader ._gbabf };_bgg ,_gega :=_gbeag ._cbe .Seek (0,_dag .SeekEnd );
if _gega !=nil {return nil ,_gega ;};_gbeag ._bbba =_bgg ;if _ ,_gega =_gbeag ._cbe .Seek (0,_dag .SeekStart );_gega !=nil {return nil ,_gega ;};_gbeag ._bgaa ,_gega =NewPdfReaderWithOpts (_gbeag ._cbe ,opts );if _gega !=nil {return nil ,_gega ;};for _ ,_fdbc :=range _gbeag .Reader .GetObjectNums (){if _gbeag ._gfdcd < _fdbc {_gbeag ._gfdcd =_fdbc ;
};};_gbeag ._beed =_gbeag ._daac .GetXrefTable ();_gbeag ._gfbc =_gbeag ._daac .GetXrefOffset ();_gbeag ._beac =append (_gbeag ._beac ,_gbeag ._bgaa .PageList ...);_gbeag ._bdba =make (map[_egg .PdfObject ]struct{});_gbeag ._eegc =make (map[_egg .PdfObject ]int64 );
_gbeag ._eecgg =make (map[_egg .PdfObject ]struct{});_gbeag ._aeec =_gbeag ._bgaa .AcroForm ;_gbeag ._dgdc =_gbeag ._bgaa .DSS ;if opts !=nil {_gbeag ._cbdd =opts .Password ;};if encryptOptions !=nil {_gbeag ._effa =encryptOptions ;};return _gbeag ,nil ;
};
// ToPdfObject returns the text field dictionary within an indirect object (container).
func (_bcdb *PdfFieldText )ToPdfObject ()_egg .PdfObject {_bcdb .PdfField .ToPdfObject ();_bcfc :=_bcdb ._agef ;_ebad :=_bcfc .PdfObject .(*_egg .PdfObjectDictionary );_ebad .Set ("\u0046\u0054",_egg .MakeName ("\u0054\u0078"));if _bcdb .DA !=nil {_ebad .Set ("\u0044\u0041",_bcdb .DA );
};if _bcdb .Q !=nil {_ebad .Set ("\u0051",_bcdb .Q );};if _bcdb .DS !=nil {_ebad .Set ("\u0044\u0053",_bcdb .DS );};if _bcdb .RV !=nil {_ebad .Set ("\u0052\u0056",_bcdb .RV );};if _bcdb .MaxLen !=nil {_ebad .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_bcdb .MaxLen );
};return _bcfc ;};func _fadfa ()string {_cgag .Lock ();defer _cgag .Unlock ();return _cdcf };
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
func (_abgb *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};func _egaa (_ebba _bgd .StdFont )pdfFontSimple {_eagc :=_ebba .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_ebdf :"\u0054\u0079\u0070e\u0031",_dgfdc :_ebba .Name ()},_dddd :_ebba .GetMetricsTable (),_dbbfc :&PdfFontDescriptor {FontName :_egg .MakeName (string (_eagc .Name )),FontFamily :_egg .MakeName (_eagc .Family ),FontWeight :_egg .MakeFloat (float64 (_eagc .Weight )),Flags :_egg .MakeInteger (int64 (_eagc .Flags )),FontBBox :_egg .MakeArrayFromFloats (_eagc .BBox [:]),ItalicAngle :_egg .MakeFloat (_eagc .ItalicAngle ),Ascent :_egg .MakeFloat (_eagc .Ascent ),Descent :_egg .MakeFloat (_eagc .Descent ),CapHeight :_egg .MakeFloat (_eagc .CapHeight ),XHeight :_egg .MakeFloat (_eagc .XHeight ),StemV :_egg .MakeFloat (_eagc .StemV ),StemH :_egg .MakeFloat (_eagc .StemH )},_cdee :_ebba .Encoder ()};
};
// ToPdfObject implements interface PdfModel.
func (_eb *PdfActionSubmitForm )ToPdfObject ()_egg .PdfObject {_eb .PdfAction .ToPdfObject ();_beg :=_eb ._bf ;_fbf :=_beg .PdfObject .(*_egg .PdfObjectDictionary );_fbf .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeSubmitForm )));if _eb .F !=nil {_fbf .Set ("\u0046",_eb .F .ToPdfObject ());
};_fbf .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_eb .Fields );_fbf .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_eb .Flags );return _beg ;};func (_fed *PdfReader )newPdfAnnotationRedactFromDict (_cfac *_egg .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_dcb :=PdfAnnotationRedact {};
_ccd ,_gbfa :=_fed .newPdfAnnotationMarkupFromDict (_cfac );if _gbfa !=nil {return nil ,_gbfa ;};_dcb .PdfAnnotationMarkup =_ccd ;_dcb .QuadPoints =_cfac .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_dcb .IC =_cfac .Get ("\u0049\u0043");
_dcb .RO =_cfac .Get ("\u0052\u004f");_dcb .OverlayText =_cfac .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_dcb .Repeat =_cfac .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_dcb .DA =_cfac .Get ("\u0044\u0041");_dcb .Q =_cfac .Get ("\u0051");
return &_dcb ,nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a Lab device.
func (_dfge *PdfColorspaceLab )GetNumComponents ()int {return 3};func (_cffcd fontCommon )isCIDFont ()bool {if _cffcd ._ebdf ==""{_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0069\u0073\u0043\u0049\u0044\u0046\u006f\u006e\u0074\u002e\u0020\u0063o\u006e\u0074\u0065\u0078\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_cffcd );
};_facbd :=false ;switch _cffcd ._ebdf {case "\u0054\u0079\u0070e\u0030","\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030","\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_facbd =true ;};_bag .Log .Trace ("i\u0073\u0043\u0049\u0044\u0046\u006fn\u0074\u003a\u0020\u0069\u0073\u0043\u0049\u0044\u003d%\u0074\u0020\u0066o\u006et\u003d\u0025\u0073",_facbd ,_cffcd );
return _facbd ;};
// PdfAnnotationWatermark represents Watermark annotations.
// (Section 12.5.6.22).
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _egg .PdfObject ;};
// ColorToRGB converts a DeviceN color to an RGB color.
func (_eddce *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _eddce .AlternateSpace ==nil {return nil ,_gd .New ("\u0044\u0065\u0076\u0069\u0063\u0065N\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0065\u0020\u0073\u0070a\u0063\u0065\u0020\u0075\u006e\u0064\u0065f\u0069\u006e\u0065\u0064");
};return _eddce .AlternateSpace .ColorToRGB (color );};func _dagag (_aecc _egg .PdfObject )(*PdfColorspaceLab ,error ){_ebd :=NewPdfColorspaceLab ();if _eabeg ,_bdfac :=_aecc .(*_egg .PdfIndirectObject );_bdfac {_ebd ._ceaag =_eabeg ;};_aecc =_egg .TraceToDirectObject (_aecc );
_fda ,_edbe :=_aecc .(*_egg .PdfObjectArray );if !_edbe {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fda .Len ()!=2{return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
};_aecc =_egg .TraceToDirectObject (_fda .Get (0));_dbbd ,_edbe :=_aecc .(*_egg .PdfObjectName );if !_edbe {return nil ,_f .Errorf ("\u006c\u0061\u0062\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");
};if *_dbbd !="\u004c\u0061\u0062"{return nil ,_f .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_aecc =_egg .TraceToDirectObject (_fda .Get (1));_fbeg ,_edbe :=_aecc .(*_egg .PdfObjectDictionary );
if !_edbe {return nil ,_f .Errorf ("c\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0020\u0069\u006ev\u0061l\u0069\u0064");};_aecc =_fbeg .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");
_aecc =_egg .TraceToDirectObject (_aecc );_bgfg ,_edbe :=_aecc .(*_egg .PdfObjectArray );if !_edbe {return nil ,_f .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");};if _bgfg .Len ()!=3{return nil ,_f .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");
};_eccf ,_ggcc :=_bgfg .GetAsFloat64Slice ();if _ggcc !=nil {return nil ,_ggcc ;};_ebd .WhitePoint =_eccf ;_aecc =_fbeg .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _aecc !=nil {_aecc =_egg .TraceToDirectObject (_aecc );_cggfa ,_ebcd :=_aecc .(*_egg .PdfObjectArray );
if !_ebcd {return nil ,_f .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");};if _cggfa .Len ()!=3{return nil ,_f .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");
};_gedc ,_gddb :=_cggfa .GetAsFloat64Slice ();if _gddb !=nil {return nil ,_gddb ;};_ebd .BlackPoint =_gedc ;};_aecc =_fbeg .Get ("\u0052\u0061\u006eg\u0065");if _aecc !=nil {_aecc =_egg .TraceToDirectObject (_aecc );_ebfea ,_edga :=_aecc .(*_egg .PdfObjectArray );
if !_edga {_bag .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");return nil ,_f .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _ebfea .Len ()!=4{_bag .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");
return nil ,_f .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_bdfd ,_cgaeb :=_ebfea .GetAsFloat64Slice ();if _cgaeb !=nil {return nil ,_cgaeb ;};_ebd .Range =_bdfd ;};return _ebd ,nil ;};
// String implements interface PdfObject.
func (_cda *PdfAction )String ()string {_deb ,_gg :=_cda .ToPdfObject ().(*_egg .PdfIndirectObject );if _gg {return _f .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_cda ._abb ,_deb .PdfObject .String ());};return "";};
// GetRotate gets the inheritable rotate value, either from the page
// or a higher up page/pages struct.
func (_cadb *PdfPage )GetRotate ()(int64 ,error ){if _cadb .Rotate !=nil {return *_cadb .Rotate ,nil ;};_dgbb :=_cadb .Parent ;for _dgbb !=nil {_fdefac ,_cgfb :=_egg .GetDict (_dgbb );if !_cgfb {return 0,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063t\u0073\u0020\u0064\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079");
};if _fafga :=_fdefac .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_fafga !=nil {_fabe ,_cgfbg :=_egg .GetInt (_fafga );if !_cgfbg {return 0,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065");};
if _fabe !=nil {return int64 (*_fabe ),nil ;};return 0,_gd .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_dgbb =_fdefac .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_gd .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064");
};func _babef (_bgaf _egg .PdfObject )(map[_ef .CharCode ]float64 ,error ){if _bgaf ==nil {return nil ,nil ;};_eccb ,_cada :=_egg .GetArray (_bgaf );if !_cada {return nil ,nil ;};_gaaa :=map[_ef .CharCode ]float64 {};_aaabe :=_eccb .Len ();for _gaed :=0;
_gaed < _aaabe -1;_gaed ++{_gdgf :=_egg .TraceToDirectObject (_eccb .Get (_gaed ));_bgfcb ,_ccge :=_egg .GetIntVal (_gdgf );if !_ccge {return nil ,_f .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_gaed ,_gdgf );
};_gaed ++;if _gaed > _aaabe -1{return nil ,_f .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_eccb );};_ffefc :=_egg .TraceToDirectObject (_eccb .Get (_gaed ));
switch _ffefc .(type ){case *_egg .PdfObjectArray :_fafca ,_ :=_egg .GetArray (_ffefc );if _ceaeg ,_eaddf :=_fafca .ToFloat64Array ();_eaddf ==nil {for _adddb :=0;_adddb < len (_ceaeg );_adddb ++{_gaaa [_ef .CharCode (_bgfcb +_adddb )]=_ceaeg [_adddb ];
};}else {return nil ,_f .Errorf ("\u0042\u0061\u0064 \u0066\u006f\u006e\u0074 \u0057\u0020\u0061\u0072\u0072\u0061\u0079 \u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_gaed ,_ffefc );};case *_egg .PdfObjectInteger :_fbab ,_fbgga :=_egg .GetIntVal (_ffefc );
if !_fbgga {return nil ,_f .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_gaed ,_ffefc );};_gaed ++;if _gaed > _aaabe -1{return nil ,_f .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_eccb );
};_bcaf :=_eccb .Get (_gaed );_bceg ,_fgbda :=_egg .GetNumberAsFloat (_bcaf );if _fgbda !=nil {return nil ,_f .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0032\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_gaed ,_bcaf );
};for _abdcc :=_bgfcb ;_abdcc <=_fbab ;_abdcc ++{_gaaa [_ef .CharCode (_abdcc )]=_bceg ;};default:return nil ,_f .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057 \u006f\u0062\u006a\u0031\u0020\u0074\u0079p\u0065\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_gaed ,_ffefc );
};};return _gaaa ,nil ;};
// IsSimple returns true if `font` is a simple font.
func (_edaa *PdfFont )IsSimple ()bool {_ ,_beda :=_edaa ._edde .(*pdfFontSimple );return _beda };func (_fbde *PdfAppender )mergeResources (_cegc ,_eeab _egg .PdfObject ,_bdbb map[_egg .PdfObjectName ]_egg .PdfObjectName )_egg .PdfObject {if _eeab ==nil &&_cegc ==nil {return nil ;
};if _eeab ==nil {return _cegc ;};_bcgb ,_acb :=_egg .GetDict (_eeab );if !_acb {return _cegc ;};if _cegc ==nil {_fgaa :=_egg .MakeDict ();_fgaa .Merge (_bcgb );return _eeab ;};_ggag ,_acb :=_egg .GetDict (_cegc );if !_acb {_bag .Log .Error ("\u0045\u0072\u0072or\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063\u0065 \u0069s\u0020n\u006ft\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
_ggag =_egg .MakeDict ();};for _ ,_bdfb :=range _bcgb .Keys (){if _dgfe ,_aeeed :=_bdbb [_bdfb ];_aeeed {_ggag .Set (_dgfe ,_bcgb .Get (_bdfb ));}else {_ggag .Set (_bdfb ,_bcgb .Get (_bdfb ));};};return _ggag ;};
// PdfAnnotation3D represents 3D annotations.
// (Section 13.6.2).
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _egg .PdfObject ;T3DV _egg .PdfObject ;T3DA _egg .PdfObject ;T3DI _egg .PdfObject ;T3DB _egg .PdfObject ;};func (_eacgfe *PdfWriter )writeDocumentVersion (){if _eacgfe ._gabaca {_eacgfe .writeString ("\u000a");
}else {_eacgfe .writeString (_f .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_eacgfe ._dacce .Major ,_eacgfe ._dacce .Minor ));_eacgfe .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};};func (_ddag *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _ddag ._dafgab .GetCrypter ()!=nil &&!_ddag ._dafgab .IsAuthenticated (){return nil ,_f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_fdefd :=_ddag ._eacf ;_gagaa :=_fdefd .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _gagaa ==nil {return nil ,nil ;};_bag .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_efaa :=_egg .ResolveReference (_gagaa );
_bag .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_efaa );if _cbabg :=_egg .IsNullObject (_efaa );_cbabg {_bag .Log .Trace ("\u004f\u0075\u0074li\u006e\u0065\u0020\u0072\u006f\u006f\u0074\u0020\u0069s\u0020n\u0075l\u006c \u002d\u0020\u006e\u006f\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");
return nil ,nil ;};_aebd ,_cgbe :=_efaa .(*_egg .PdfIndirectObject );if !_cgbe {if _ ,_faeeb :=_egg .GetDict (_efaa );!_faeeb {_bag .Log .Debug ("\u0049\u006e\u0076a\u006c\u0069\u0064\u0020o\u0075\u0074\u006c\u0069\u006e\u0065\u0020r\u006f\u006f\u0074\u0020\u002d\u0020\u0073\u006b\u0069\u0070\u0070\u0069\u006e\u0067");
return nil ,nil ;};_bag .Log .Debug ("\u004f\u0075t\u006c\u0069\u006e\u0065\u0020r\u006f\u006f\u0074\u0020\u0069s\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u002e\u0020\u0053\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
_aebd =_egg .MakeIndirectObject (_efaa );};_gcfca ,_cgbe :=_aebd .PdfObject .(*_egg .PdfObjectDictionary );if !_cgbe {return nil ,_gd .New ("\u006f\u0075\u0074\u006c\u0069n\u0065\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072y");
};_bag .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_gcfca );_eada ,_ ,_cafe :=_ddag .buildOutlineTree (_aebd ,nil ,nil ,nil );if _cafe !=nil {return nil ,_cafe ;};_bag .Log .Trace ("\u0052\u0065\u0073\u0075\u006c\u0074\u0069\u006e\u0067\u0020\u006fu\u0074\u006c\u0069\u006e\u0065\u0020\u0074\u0072\u0065\u0065:\u0020\u0025\u0076",_eada );
return _eada ,nil ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_edbee *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_effe ,_egeg :=_egg .GetNumbersAsFloat (objects );
if _egeg !=nil {return nil ,_egeg ;};return _edbee .ColorFromFloats (_effe );};
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_egg .PdfObjectBool ;SigFlags *_egg .PdfObjectInteger ;CO *_egg .PdfObjectArray ;DR *PdfPageResources ;DA *_egg .PdfObjectString ;Q *_egg .PdfObjectInteger ;XFA _egg .PdfObject ;_befdb *_egg .PdfIndirectObject ;
};
// ToPdfObject implements interface PdfModel.
func (_cffa *PdfAnnotation3D )ToPdfObject ()_egg .PdfObject {_cffa .PdfAnnotation .ToPdfObject ();_cbbf :=_cffa ._cef ;_cfdg :=_cbbf .PdfObject .(*_egg .PdfObjectDictionary );_cfdg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0033\u0044"));
_cfdg .SetIfNotNil ("\u0033\u0044\u0044",_cffa .T3DD );_cfdg .SetIfNotNil ("\u0033\u0044\u0056",_cffa .T3DV );_cfdg .SetIfNotNil ("\u0033\u0044\u0041",_cffa .T3DA );_cfdg .SetIfNotNil ("\u0033\u0044\u0049",_cffa .T3DI );_cfdg .SetIfNotNil ("\u0033\u0044\u0042",_cffa .T3DB );
return _cbbf ;};
// SetSubtype sets the Subtype S for given PdfOutputIntent.
func (_aeef *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _gd .New ("\u0070\u0072o\u0076\u0069\u0064\u0065d\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u004f\u0075t\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0020\u0053\u0075b\u0054\u0079\u0070\u0065");
};_aeef .S =subtype ;return nil ;};
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
func (_dbfdf *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _dbfdf .Alternate ==nil {_bag .Log .Debug ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
if _dbfdf .N ==1{_bag .Log .Debug ("\u0049\u0043\u0043\u0020\u0042a\u0073\u0065\u0064\u0020\u0063o\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061\u006c\u0074\u0065r\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006e\u0067\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061y\u0020\u0028\u004e\u003d\u0031\u0029");
_gegcc :=NewPdfColorspaceDeviceGray ();return _gegcc .ImageToRGB (img );}else if _dbfdf .N ==3{_bag .Log .Debug ("\u0049\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067 \u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006eg\u0020\u0044\u0065\u0076\u0069\u0063e\u0052\u0047B\u0020\u0028N\u003d3\u0029");
return img ,nil ;}else if _dbfdf .N ==4{_bag .Log .Debug ("\u0049\u0043\u0043\u0020\u0042a\u0073\u0065\u0064\u0020\u0063o\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061\u006c\u0074\u0065r\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006e\u0067\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059K\u0020\u0028\u004e\u003d\u0034\u0029");
_gdfc :=NewPdfColorspaceDeviceCMYK ();return _gdfc .ImageToRGB (img );}else {return img ,_gd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
};};_bag .Log .Trace ("\u0049\u0043\u0043 \u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0077\u0069\u0074\u0068\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061t\u0069\u0076\u0065\u003a\u0020\u0025\u0023\u0076",_dbfdf );
_ebgg ,_bebb :=_dbfdf .Alternate .ImageToRGB (img );_bag .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_bag .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_ebgg );
return _ebgg ,_bebb ;};
// WriteToFile writes the Appender output to file specified by path.
func (_cad *PdfAppender )WriteToFile (outputPath string )error {_addb ,_dfbcc :=_gf .Create (outputPath );if _dfbcc !=nil {return _dfbcc ;};defer _addb .Close ();return _cad .Write (_addb );};
// NewPdfAnnotationWidget returns an initialized annotation widget.
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_dae :=NewPdfAnnotation ();_fce :=&PdfAnnotationWidget {};_fce .PdfAnnotation =_dae ;_dae .SetContext (_fce );return _fce ;};
// ToPdfObject implements interface PdfModel.
func (_cgcb *PdfAnnotationFreeText )ToPdfObject ()_egg .PdfObject {_cgcb .PdfAnnotation .ToPdfObject ();_ddce :=_cgcb ._cef ;_bage :=_ddce .PdfObject .(*_egg .PdfObjectDictionary );_cgcb .PdfAnnotationMarkup .appendToPdfDictionary (_bage );_bage .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));
_bage .SetIfNotNil ("\u0044\u0041",_cgcb .DA );_bage .SetIfNotNil ("\u0051",_cgcb .Q );_bage .SetIfNotNil ("\u0052\u0043",_cgcb .RC );_bage .SetIfNotNil ("\u0044\u0053",_cgcb .DS );_bage .SetIfNotNil ("\u0043\u004c",_cgcb .CL );_bage .SetIfNotNil ("\u0049\u0054",_cgcb .IT );
_bage .SetIfNotNil ("\u0042\u0045",_cgcb .BE );_bage .SetIfNotNil ("\u0052\u0044",_cgcb .RD );_bage .SetIfNotNil ("\u0042\u0053",_cgcb .BS );_bage .SetIfNotNil ("\u004c\u0045",_cgcb .LE );return _ddce ;};
// NewCompliancePdfReader creates a PdfReader or an input io.ReadSeeker that during reading will scan the files for the
// metadata details. It could be used for the PDF standard implementations like PDF/A or PDF/X.
// NOTE: This implementation is in experimental development state.
// Keep in mind that it might change in the subsequent minor versions.
func NewCompliancePdfReader (rs _dag .ReadSeeker )(*CompliancePdfReader ,error ){const _ddgef ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_ecebg ,_aagaa :=_ffee (rs ,&ReaderOpts {ComplianceMode :true },false ,_ddgef );
if _aagaa !=nil {return nil ,_aagaa ;};return &CompliancePdfReader {PdfReader :_ecebg },nil ;};
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_degd :=&PdfColorspaceDeviceN {};return _degd };
// Permissions specify a permissions dictionary (PDF 1.5).
// (Section 12.8.4, Table 258 - Entries in a permissions dictionary p. 477 in PDF32000_2008).
type Permissions struct{DocMDP *PdfSignature ;_ffgafc *_egg .PdfObjectDictionary ;};
// String returns a human readable description of `fontfile`.
func (_accd *fontFile )String ()string {_gcca :="\u005b\u004e\u006f\u006e\u0065\u005d";if _accd ._gdcd !=nil {_gcca =_accd ._gdcd .String ();};return _f .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_accd ._ebfa ,_gcca );
};func (_dffee *DSS )add (_eedge *[]*_egg .PdfObjectStream ,_gbaf map[string ]*_egg .PdfObjectStream ,_agbbb [][]byte )([]*_egg .PdfObjectStream ,error ){_bdad :=make ([]*_egg .PdfObjectStream ,0,len (_agbbb ));for _ ,_dece :=range _agbbb {_geef ,_agcgf :=_eefdc (_dece );
if _agcgf !=nil {return nil ,_agcgf ;};_ebeg ,_edda :=_gbaf [string (_geef )];if !_edda {_ebeg ,_agcgf =_egg .MakeStream (_dece ,_egg .NewRawEncoder ());if _agcgf !=nil {return nil ,_agcgf ;};_gbaf [string (_geef )]=_ebeg ;*_eedge =append (*_eedge ,_ebeg );
};_bdad =append (_bdad ,_ebeg );};return _bdad ,nil ;};
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
// AcroForm dictionary.
func (_caccg *PdfAcroForm )ToPdfObject ()_egg .PdfObject {_fbgbf :=_caccg ._befdb ;_cfcgd :=_fbgbf .PdfObject .(*_egg .PdfObjectDictionary );if _caccg .Fields !=nil {_adafb :=_egg .PdfObjectArray {};for _ ,_cgaeg :=range *_caccg .Fields {_eafd :=_cgaeg .GetContext ();
if _eafd !=nil {_adafb .Append (_eafd .ToPdfObject ());}else {_adafb .Append (_cgaeg .ToPdfObject ());};};_cfcgd .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_adafb );};if _caccg .NeedAppearances !=nil {_cfcgd .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_caccg .NeedAppearances );
};if _caccg .SigFlags !=nil {_cfcgd .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_caccg .SigFlags );};if _caccg .CO !=nil {_cfcgd .Set ("\u0043\u004f",_caccg .CO );};if _caccg .DR !=nil {_cfcgd .Set ("\u0044\u0052",_caccg .DR .ToPdfObject ());
};if _caccg .DA !=nil {_cfcgd .Set ("\u0044\u0041",_caccg .DA );};if _caccg .Q !=nil {_cfcgd .Set ("\u0051",_caccg .Q );};if _caccg .XFA !=nil {_cfcgd .Set ("\u0058\u0046\u0041",_caccg .XFA );};return _fbgbf ;};
// SetDocInfo set document info.
// This will overwrite any globally declared document info.
func (_aeeddc *PdfWriter )SetDocInfo (info *PdfInfo ){_aeeddc .setDocInfo (info .ToPdfObject ())};
// ToPdfObject implements model.PdfModel interface.
func (_ecdgf *PdfOutputIntent )ToPdfObject ()_egg .PdfObject {if _ecdgf ._gdaaa ==nil {_ecdgf ._gdaaa =_egg .MakeDict ();};_gafcf :=_ecdgf ._gdaaa ;if _ecdgf .Type !=""{_gafcf .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName (_ecdgf .Type ));};_gafcf .Set ("\u0053",_egg .MakeName (_ecdgf .S .String ()));
if _ecdgf .OutputCondition !=""{_gafcf .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_egg .MakeString (_ecdgf .OutputCondition ));};_gafcf .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_egg .MakeString (_ecdgf .OutputConditionIdentifier ));
_gafcf .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_egg .MakeString (_ecdgf .RegistryName ));if _ecdgf .Info !=""{_gafcf .Set ("\u0049\u006e\u0066\u006f",_egg .MakeString (_ecdgf .Info ));};if len (_ecdgf .DestOutputProfile )!=0{_eaea ,_bgcc :=_egg .MakeStream (_ecdgf .DestOutputProfile ,_egg .NewFlateEncoder ());
if _bgcc !=nil {_bag .Log .Error ("\u004d\u0061\u006b\u0065\u0053\u0074\u0072\u0065\u0061\u006d\u0020\u0044\u0065s\u0074\u004f\u0075\u0074\u0070\u0075t\u0050\u0072\u006f\u0066\u0069\u006c\u0065\u0020\u0066\u0061\u0069\u006c\u0065d\u003a\u0020\u0025\u0076",_bgcc );
};_eaea .PdfObjectDictionary .Set ("\u004e",_egg .MakeInteger (int64 (_ecdgf .ColorComponents )));_gdaf :=make ([]float64 ,_ecdgf .ColorComponents *2);for _aggag :=0;_aggag < _ecdgf .ColorComponents *2;_aggag ++{_gfbcg :=0.0;if _aggag %2!=0{_gfbcg =1.0;
};_gdaf [_aggag ]=_gfbcg ;};_eaea .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_egg .MakeArrayFromFloats (_gdaf ));_gafcf .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_eaea );};return _gafcf ;
};
// PdfColorLab represents a color in the L*, a*, b* 3 component colorspace.
// Each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorLab [3]float64 ;
// ToPdfObject converts the font to a PDF representation.
func (_faebdd *pdfFontType3 )ToPdfObject ()_egg .PdfObject {if _faebdd ._acdgb ==nil {_faebdd ._acdgb =&_egg .PdfIndirectObject {};};_cabf :=_faebdd .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_faebdd ._acdgb .PdfObject =_cabf ;if _faebdd .FirstChar !=nil {_cabf .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_faebdd .FirstChar );
};if _faebdd .LastChar !=nil {_cabf .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_faebdd .LastChar );};if _faebdd .Widths !=nil {_cabf .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_faebdd .Widths );};if _faebdd .Encoding !=nil {_cabf .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_faebdd .Encoding );
}else if _faebdd ._fbfed !=nil {_adga :=_faebdd ._fbfed .ToPdfObject ();if _adga !=nil {_cabf .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_adga );};};if _faebdd .FontBBox !=nil {_cabf .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_faebdd .FontBBox );
};if _faebdd .FontMatrix !=nil {_cabf .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_faebdd .FontMatrix );};if _faebdd .CharProcs !=nil {_cabf .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_faebdd .CharProcs );};if _faebdd .Resources !=nil {_cabf .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_faebdd .Resources );
};return _faebdd ._acdgb ;};func (_gaggf *PdfWriter )setWriter (_fbfg _dag .Writer ){_gaggf ._cdaab =_gaggf ._ddfee ;_gaggf ._beegad =_d .NewWriter (_fbfg );};func (_dage *PdfReader )newPdfActionSoundFromDict (_bgcb *_egg .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_bgcb .Get ("\u0053\u006f\u0075n\u0064"),Volume :_bgcb .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_bgcb .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_bgcb .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_bgcb .Get ("\u004d\u0069\u0078")},nil ;
};
// NewPdfFieldSignature returns an initialized signature field.
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_bagd :=&PdfFieldSignature {};_bagd .PdfField =NewPdfField ();_bagd .PdfField .SetContext (_bagd );_bagd .PdfAnnotationWidget =NewPdfAnnotationWidget ();_bagd .PdfAnnotationWidget .SetContext (_bagd );
_bagd .PdfAnnotationWidget ._cef =_bagd .PdfField ._agef ;_bagd .T =_egg .MakeString ("");_bagd .F =_egg .MakeInteger (132);_bagd .V =signature ;return _bagd ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element between 0 and 1.
func (_aacg *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_feec :=vals [0];if _feec < 0.0||_feec > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_feec );
return nil ,ErrColorOutOfRange ;};_dagg :=NewPdfColorCalGray (_feec );return _dagg ,nil ;};
// Enable LTV enables the specified signature. The signing certificate
// chain is extracted from the signature dictionary. Optionally, additional
// certificates can be specified through the `extraCerts` parameter.
// The LTV client attempts to build the certificate chain up to a trusted root
// by downloading any missing certificates.
func (_abdd *LTV )Enable (sig *PdfSignature ,extraCerts []*_dg .Certificate )error {if _gcad :=_abdd .validateSig (sig );_gcad !=nil {return _gcad ;};_dafa ,_ddegc :=_abdd .generateVRIKey (sig );if _ddegc !=nil {return _ddegc ;};if _ ,_bddad :=_abdd ._cbbab .VRI [_dafa ];
_bddad &&_abdd .SkipExisting {return nil ;};_dcbbg ,_ddegc :=sig .GetCerts ();if _ddegc !=nil {return _ddegc ;};return _abdd .enable (_dcbbg ,extraCerts ,_dafa );};
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
func (_gbbgd *PdfShading )GetContext ()PdfModel {return _gbbgd ._fagfe };
// EnableAll LTV enables all signatures in the PDF document.
// The signing certificate chain is extracted from each signature dictionary.
// Optionally, additional certificates can be specified through the
// `extraCerts` parameter. The LTV client attempts to build the certificate
// chain up to a trusted root by downloading any missing certificates.
func (_gdgfa *LTV )EnableAll (extraCerts []*_dg .Certificate )error {_cdac :=_gdgfa ._dbdga ._bgaa .AcroForm ;for _ ,_egbg :=range _cdac .AllFields (){_eedff ,_ :=_egbg .GetContext ().(*PdfFieldSignature );if _eedff ==nil {continue ;};_agdea :=_eedff .V ;
if _dedgg :=_gdgfa .validateSig (_agdea );_dedgg !=nil {_bag .Log .Debug ("\u0057\u0041\u0052N\u003a\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0076",_dedgg );
};if _bbdgeb :=_gdgfa .Enable (_agdea ,extraCerts );_bbdgeb !=nil {return _bbdgeb ;};};return nil ;};func (_daggb *PdfWriter )checkPendingObjects (){for _acdfd ,_caaga :=range _daggb ._afcd {if !_daggb .hasObject (_acdfd ){_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u0020\u0050\u0065n\u0064\u0069\u006eg\u0020\u006f\u0062j\u0065\u0063t\u0020\u0025\u002b\u0076\u0020\u0025T\u0020(%\u0070\u0029\u0020\u006e\u0065\u0076\u0065\u0072\u0020\u0061\u0064\u0064\u0065\u0064\u0020\u0066\u006f\u0072\u0020\u0077\u0072\u0069\u0074\u0069\u006e\u0067",_acdfd ,_acdfd ,_acdfd );
for _ ,_dcgga :=range _caaga {for _ ,_adae :=range _dcgga .Keys (){_bfgcbb :=_dcgga .Get (_adae );if _bfgcbb ==_acdfd {_bag .Log .Debug ("\u0050e\u006e\u0064i\u006e\u0067\u0020\u006fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0075\u006e\u0064\u0021\u0020\u0061nd\u0020\u0072\u0065p\u006c\u0061c\u0065\u0064\u0020\u0077\u0069\u0074h\u0020\u006eu\u006c\u006c");
_dcgga .Set (_adae ,_egg .MakeNull ());break ;};};};};};};
// ToPdfObject implements interface PdfModel.
func (_ge *PdfActionGoToR )ToPdfObject ()_egg .PdfObject {_ge .PdfAction .ToPdfObject ();_aec :=_ge ._bf ;_ccc :=_aec .PdfObject .(*_egg .PdfObjectDictionary );_ccc .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeGoToR )));if _ge .F !=nil {_ccc .Set ("\u0046",_ge .F .ToPdfObject ());
};_ccc .SetIfNotNil ("\u0044",_ge .D );_ccc .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_ge .NewWindow );return _aec ;};
// Encoder returns the font's text encoder.
func (_aebc pdfFontType3 )Encoder ()_ef .TextEncoder {return _aebc ._fbfed };func _ffaf (_bcdg *_egg .PdfObjectDictionary )bool {for _ ,_bcfb :=range _bcdg .Keys (){if _ ,_cccb :=_effdb [_bcfb .String ()];_cccb {return true ;};};return false ;};
// PdfColorspaceCalGray represents CalGray color space.
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_agdab *_egg .PdfIndirectObject ;};
// NewPdfAnnotationMovie returns a new movie annotation.
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_cbd :=NewPdfAnnotation ();_dgcg :=&PdfAnnotationMovie {};_dgcg .PdfAnnotation =_cbd ;_cbd .SetContext (_dgcg );return _dgcg ;};
// ToInteger convert to an integer format.
func (_gegc *PdfColorLab )ToInteger (bits int )[3]uint32 {_fffc :=_dgb .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_fffc *_gegc .L ()),uint32 (_fffc *_gegc .A ()),uint32 (_fffc *_gegc .B ())};};
// GetCapHeight returns the CapHeight of the font `descriptor`.
func (_bbgfd *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _egg .GetNumberAsFloat (_bbgfd .CapHeight );};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;
XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);
// Duplicate creates a duplicate page based on the current one and returns it.
func (_gbcc *PdfPage )Duplicate ()*PdfPage {_afag :=*_gbcc ;_afag ._fgfd =_egg .MakeDict ();_afag ._dfee =_egg .MakeIndirectObject (_afag ._fgfd );return &_afag ;};func _feaa (_cdbb _egg .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_cfffd :=NewPdfColorspaceSpecialIndexed ();
if _bdbd ,_eegf :=_cdbb .(*_egg .PdfIndirectObject );_eegf {_cfffd ._ceed =_bdbd ;};_cdbb =_egg .TraceToDirectObject (_cdbb );_adfbb ,_ebagf :=_cdbb .(*_egg .PdfObjectArray );if !_ebagf {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};if _adfbb .Len ()!=4{return nil ,_f .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069\u006e\u0076a\u006ci\u0064\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");};_cdbb =_adfbb .Get (0);
_ffcf ,_ebagf :=_cdbb .(*_egg .PdfObjectName );if !_ebagf {return nil ,_f .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_ffcf !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_f .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");
};_cdbb =_adfbb .Get (1);_eeff ,_ebfd :=DetermineColorspaceNameFromPdfObject (_cdbb );if _ebfd !=nil {return nil ,_ebfd ;};if _eeff =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_eeff =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_bag .Log .Debug ("E\u0072\u0072o\u0072\u003a\u0020\u0049\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0049\u006e\u0064e\u0078\u0065\u0064\u002f\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0043S\u0020\u0061\u0073\u0020\u0062\u0061\u0073\u0065\u0020\u0028\u0025v\u0029",_eeff );
return nil ,_ccgg ;};_gea ,_ebfd :=NewPdfColorspaceFromPdfObject (_cdbb );if _ebfd !=nil {return nil ,_ebfd ;};_cfffd .Base =_gea ;_cdbb =_adfbb .Get (2);_gfab ,_ebfd :=_egg .GetNumberAsInt64 (_cdbb );if _ebfd !=nil {return nil ,_ebfd ;};if _gfab > 255{return nil ,_f .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");
};_cfffd .HiVal =int (_gfab );_cdbb =_adfbb .Get (3);_cfffd .Lookup =_cdbb ;_cdbb =_egg .TraceToDirectObject (_cdbb );var _dgabe []byte ;if _efeg ,_gcaf :=_cdbb .(*_egg .PdfObjectString );_gcaf {_dgabe =_efeg .Bytes ();_bag .Log .Trace ("\u0049\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0073\u0074r\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072\u0020\u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0020\u0064",_dgabe );
}else if _bgef ,_dffa :=_cdbb .(*_egg .PdfObjectStream );_dffa {_bag .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_cdbb .String ());_bag .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_bgef .Stream ),_bgef .Stream );
_aeeg ,_cefa :=_egg .DecodeStream (_bgef );if _cefa !=nil {return nil ,_cefa ;};_bag .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_aeeg ),_aeeg );_dgabe =_aeeg ;}else {_bag .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_cdbb );
return nil ,_f .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076a\u006ci\u0064\u0020\u0074\u0061\u0062\u006c\u0065\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};if len (_dgabe )< _cfffd .Base .GetNumComponents ()*(_cfffd .HiVal +1){_bag .Log .Debug ("\u0050\u0044\u0046\u0020\u0049\u006e\u0063o\u006d\u0070\u0061t\u0069\u0062\u0069\u006ci\u0074\u0079\u003a\u0020\u0049\u006e\u0064\u0065\u0078\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0074\u006f\u006f\u0020\u0073\u0068\u006f\u0072\u0074");
_bag .Log .Debug ("\u0046\u0061i\u006c\u002c\u0020\u006c\u0065\u006e\u0028\u0064\u0061\u0074\u0061\u0029\u003a\u0020\u0025\u0064\u002c\u0020\u0063\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u002c\u0020\u0068\u0069\u0056\u0061\u006c\u003a\u0020\u0025\u0064",len (_dgabe ),_cfffd .Base .GetNumComponents (),_cfffd .HiVal );
}else {_dgabe =_dgabe [:_cfffd .Base .GetNumComponents ()*(_cfffd .HiVal +1)];};_cfffd ._defc =_dgabe ;return _cfffd ,nil ;};
// PdfActionGoTo3DView represents a GoTo3DView action.
type PdfActionGoTo3DView struct{*PdfAction ;TA _egg .PdfObject ;V _egg .PdfObject ;};func (_ggbef *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _dcaf :=_ggbef ._bgacg ;_dcaf !=nil {return _dcaf ;};return _ggbef ._dbbfc ;};
// SetAnnotations sets the annotations list.
func (_aecff *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_aecff ._bcce =annotations };
// ToPdfObject implements interface PdfModel.
func (_acd *PdfAnnotationTrapNet )ToPdfObject ()_egg .PdfObject {_acd .PdfAnnotation .ToPdfObject ();_fbccd :=_acd ._cef ;_bbda :=_fbccd .PdfObject .(*_egg .PdfObjectDictionary );_bbda .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));
return _fbccd ;};
// DecodeArray returns the range of color component values in CalGray colorspace.
func (_aagb *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
// GetSubFilter returns SubFilter value or empty string.
func (_accdd *pdfSignDictionary )GetSubFilter ()string {_aeecge :=_accdd .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _aeecge ==nil {return "";};if _ceeg ,_ccdbg :=_egg .GetNameVal (_aeecge );_ccdbg {return _ceeg ;};return "";};
// SetContext set the sub annotation (context).
func (_geded *PdfShading )SetContext (ctx PdfModel ){_geded ._fagfe =ctx };
// PdfAnnotationLink represents Link annotations.
// (Section 12.5.6.5 p. 403).
type PdfAnnotationLink struct{*PdfAnnotation ;A _egg .PdfObject ;Dest _egg .PdfObject ;H _egg .PdfObject ;PA _egg .PdfObject ;QuadPoints _egg .PdfObject ;BS _egg .PdfObject ;_fdb *PdfAction ;_efb *PdfReader ;};
// NewXObjectImageFromImage creates a new XObject Image from an image object
// with default options. If encoder is nil, uses raw encoding (none).
func NewXObjectImageFromImage (img *Image ,cs PdfColorspace ,encoder _egg .StreamEncoder )(*XObjectImage ,error ){_fagfcb :=NewXObjectImage ();return UpdateXObjectImageFromImage (_fagfcb ,img ,cs ,encoder );};
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
func (_cadgd *pdfCIDFontType2 )ToPdfObject ()_egg .PdfObject {if _cadgd ._gcfdg ==nil {_cadgd ._gcfdg =&_egg .PdfIndirectObject {};};_afbd :=_cadgd .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");
_cadgd ._gcfdg .PdfObject =_afbd ;if _cadgd .CIDSystemInfo !=nil {_afbd .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_cadgd .CIDSystemInfo );};if _cadgd .DW !=nil {_afbd .Set ("\u0044\u0057",_cadgd .DW );};if _cadgd .DW2 !=nil {_afbd .Set ("\u0044\u0057\u0032",_cadgd .DW2 );
};if _cadgd .W !=nil {_afbd .Set ("\u0057",_cadgd .W );};if _cadgd .W2 !=nil {_afbd .Set ("\u0057\u0032",_cadgd .W2 );};if _cadgd .CIDToGIDMap !=nil {_afbd .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_cadgd .CIDToGIDMap );};return _cadgd ._gcfdg ;
};
// SetForms sets the Acroform for a PDF file.
func (_agdcad *PdfWriter )SetForms (form *PdfAcroForm )error {_agdcad ._aggec =form ;return nil };
// NewPdfActionSound returns a new "sound" action.
func NewPdfActionSound ()*PdfActionSound {_ccb :=NewPdfAction ();_ede :=&PdfActionSound {};_ede .PdfAction =_ccb ;_ccb .SetContext (_ede );return _ede ;};func (_dfbf *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";
};
// GetTrailer returns the PDF's trailer dictionary.
func (_bdceg *PdfReader )GetTrailer ()(*_egg .PdfObjectDictionary ,error ){_fbead :=_bdceg ._dafgab .GetTrailer ();if _fbead ==nil {return nil ,_gd .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _fbead ,nil ;
};
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
func (_geda *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// HasXObjectByName checks if has XObject resource by name.
func (_egcee *PdfPage )HasXObjectByName (name _egg .PdfObjectName )bool {_ffeddc ,_febda :=_egcee .Resources .XObject .(*_egg .PdfObjectDictionary );if !_febda {return false ;};if _gafa :=_ffeddc .Get (name );_gafa !=nil {return true ;};return false ;};
// PdfFieldSignature signature field represents digital signatures and optional data for authenticating
// the name of the signer and verifying document contents.
type PdfFieldSignature struct{*PdfField ;*PdfAnnotationWidget ;V *PdfSignature ;Lock *_egg .PdfIndirectObject ;SV *_egg .PdfIndirectObject ;};func _eggba (_eefcc _egg .PdfObject )(*PdfColorspaceDeviceN ,error ){_dfbfc :=NewPdfColorspaceDeviceN ();if _eddcg ,_bfee :=_eefcc .(*_egg .PdfIndirectObject );
_bfee {_dfbfc ._dadga =_eddcg ;};_eefcc =_egg .TraceToDirectObject (_eefcc );_feca ,_cbef :=_eefcc .(*_egg .PdfObjectArray );if !_cbef {return nil ,_f .Errorf ("\u0064\u0065\u0076\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062j\u0065\u0063\u0074");
};if _feca .Len ()!=4&&_feca .Len ()!=5{return nil ,_f .Errorf ("\u0064\u0065\u0076ic\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0049\u006ec\u006fr\u0072e\u0063t\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");};_eefcc =_feca .Get (0);
_degg ,_cbef :=_eefcc .(*_egg .PdfObjectName );if !_cbef {return nil ,_f .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
};if *_degg !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_f .Errorf ("\u0064\u0065v\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020na\u006d\u0065");};_eefcc =_feca .Get (1);
_eefcc =_egg .TraceToDirectObject (_eefcc );_dcbc ,_cbef :=_eefcc .(*_egg .PdfObjectArray );if !_cbef {return nil ,_f .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0049\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");
};_dfbfc .ColorantNames =_dcbc ;_eefcc =_feca .Get (2);_degdg ,_bbgad :=NewPdfColorspaceFromPdfObject (_eefcc );if _bbgad !=nil {return nil ,_bbgad ;};_dfbfc .AlternateSpace =_degdg ;_ffdd ,_bbgad :=_bdefe (_feca .Get (3));if _bbgad !=nil {return nil ,_bbgad ;
};_dfbfc .TintTransform =_ffdd ;if _feca .Len ()==5{_ecebe ,_degf :=_facdg (_feca .Get (4));if _degf !=nil {return nil ,_degf ;};_dfbfc .Attributes =_ecebe ;};return _dfbfc ,nil ;};var _cbaa =map[string ]struct{}{"\u0054\u0069\u0074l\u0065":{},"\u0041\u0075\u0074\u0068\u006f\u0072":{},"\u0053u\u0062\u006a\u0065\u0063\u0074":{},"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":{},"\u0043r\u0065\u0061\u0074\u006f\u0072":{},"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":{},"\u0054r\u0061\u0070\u0070\u0065\u0064":{},"\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":{},"\u004do\u0064\u0044\u0061\u0074\u0065":{}};
func (_bdcda *PdfWriter )writeObjects (){_bag .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_bdcda ._bbead ));_bdcda ._ccceb =make (map[int ]crossReference );_bdcda ._ccceb [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};
if _bdcda ._ecfgc .ObjectMap !=nil {for _bgacb ,_ecbgf :=range _bdcda ._ecfgc .ObjectMap {if _bgacb ==0{continue ;};if _ecbgf .XType ==_egg .XrefTypeObjectStream {_aaecc :=crossReference {Type :2,ObjectNumber :_ecbgf .OsObjNumber ,Index :_ecbgf .OsObjIndex };
_bdcda ._ccceb [_bgacb ]=_aaecc ;};if _ecbgf .XType ==_egg .XrefTypeTableEntry {_gcfda :=crossReference {Type :1,ObjectNumber :_ecbgf .ObjectNumber ,Offset :_ecbgf .Offset };_bdcda ._ccceb [_bgacb ]=_gcfda ;};};};};
// ToPdfObject returns the PDF representation of the colorspace.
func (_agca *PdfColorspaceSpecialPattern )ToPdfObject ()_egg .PdfObject {if _agca .UnderlyingCS ==nil {return _egg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_baad :=_egg .MakeArray (_egg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));
_baad .Append (_agca .UnderlyingCS .ToPdfObject ());if _agca ._ceae !=nil {_agca ._ceae .PdfObject =_baad ;return _agca ._ceae ;};return _baad ;};func (_baeef *PdfReader )newPdfFieldFromIndirectObject (_afdd *_egg .PdfIndirectObject ,_gdfd *PdfField )(*PdfField ,error ){if _ffad ,_febf :=_baeef ._dabaf .GetModelFromPrimitive (_afdd ).(*PdfField );
_febf {return _ffad ,nil ;};_fdfb ,_aggbb :=_egg .GetDict (_afdd );if !_aggbb {return nil ,_f .Errorf ("\u0050\u0064f\u0046\u0069\u0065\u006c\u0064 \u0069\u006e\u0064\u0069\u0072e\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};_dcbg :=NewPdfField ();_dcbg ._agef =_afdd ;_dcbg ._agef .PdfObject =_fdfb ;if _ccaa ,_gcgg :=_egg .GetName (_fdfb .Get ("\u0046\u0054"));_gcgg {_dcbg .FT =_ccaa ;};if _gdfd !=nil {_dcbg .Parent =_gdfd ;};_dcbg .T ,_ =_fdfb .Get ("\u0054").(*_egg .PdfObjectString );
_dcbg .TU ,_ =_fdfb .Get ("\u0054\u0055").(*_egg .PdfObjectString );_dcbg .TM ,_ =_fdfb .Get ("\u0054\u004d").(*_egg .PdfObjectString );_dcbg .Ff ,_ =_fdfb .Get ("\u0046\u0066").(*_egg .PdfObjectInteger );_dcbg .V =_fdfb .Get ("\u0056");_dcbg .DV =_fdfb .Get ("\u0044\u0056");
_dcbg .AA =_fdfb .Get ("\u0041\u0041");if DA :=_fdfb .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_egg .GetString (DA );_dcbg .VariableText =&VariableText {DA :DA };Q ,_ :=_fdfb .Get ("\u0051").(*_egg .PdfObjectInteger );DS ,_ :=_fdfb .Get ("\u0044\u0053").(*_egg .PdfObjectString );
RV :=_fdfb .Get ("\u0052\u0056");_dcbg .VariableText .Q =Q ;_dcbg .VariableText .DS =DS ;_dcbg .VariableText .RV =RV ;};_eecaf :=_dcbg .FT ;if _eecaf ==nil &&_gdfd !=nil {_eecaf =_gdfd .FT ;};if _eecaf !=nil {switch *_eecaf {case "\u0054\u0078":_bccb ,_gcbb :=_aefg (_fdfb );
if _gcbb !=nil {return nil ,_gcbb ;};_bccb .PdfField =_dcbg ;_dcbg ._gbdee =_bccb ;case "\u0043\u0068":_agga ,_aaed :=_ddfce (_fdfb );if _aaed !=nil {return nil ,_aaed ;};_agga .PdfField =_dcbg ;_dcbg ._gbdee =_agga ;case "\u0042\u0074\u006e":_gaabe ,_bdce :=_aedd (_fdfb );
if _bdce !=nil {return nil ,_bdce ;};_gaabe .PdfField =_dcbg ;_dcbg ._gbdee =_gaabe ;case "\u0053\u0069\u0067":_befg ,_gafef :=_baeef .newPdfFieldSignatureFromDict (_fdfb );if _gafef !=nil {return nil ,_gafef ;};_befg .PdfField =_dcbg ;_dcbg ._gbdee =_befg ;
default:_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0073\u0075\u0070\u0070\u006f\u0072t\u0065d\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0025\u0073",*_dcbg .FT );return nil ,_gd .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");
};};if _debce ,_bdaaa :=_egg .GetName (_fdfb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_bdaaa {if *_debce =="\u0057\u0069\u0064\u0067\u0065\u0074"{_bbeg ,_deaa :=_baeef .newPdfAnnotationFromIndirectObject (_afdd );if _deaa !=nil {return nil ,_deaa ;
};_fgfb ,_afede :=_bbeg .GetContext ().(*PdfAnnotationWidget );if !_afede {return nil ,_gd .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_fgfb ._daa =_dcbg ;_fgfb .Parent =_dcbg ._agef ;
_dcbg .Annotations =append (_dcbg .Annotations ,_fgfb );return _dcbg ,nil ;};};_gddac :=true ;if _fagfc ,_cccc :=_egg .GetArray (_fdfb .Get ("\u004b\u0069\u0064\u0073"));_cccc {_befc :=make ([]*_egg .PdfIndirectObject ,0,_fagfc .Len ());for _ ,_cdggg :=range _fagfc .Elements (){_cggb ,_bdfeg :=_egg .GetIndirect (_cdggg );
if !_bdfeg {_eaca ,_faeff :=_egg .GetStream (_cdggg );if _faeff &&_eaca .PdfObjectDictionary !=nil {_efbde ,_bcacd :=_egg .GetNameVal (_eaca .Get ("\u0054\u0079\u0070\u0065"));if _bcacd &&_efbde =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_bag .Log .Debug ("E\u0052RO\u0052:\u0020f\u006f\u0072\u006d\u0020\u0066i\u0065\u006c\u0064 \u004b\u0069\u0064\u0073\u0020a\u0072\u0072\u0061y\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0073\u0020\u0069n\u0076\u0061\u006cid \u004d\u0065\u0074\u0061\u0064\u0061t\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u002e\u0020\u0053\u006bi\u0070p\u0069\u006e\u0067\u002e");
continue ;};};return nil ,_gd .New ("n\u006f\u0074\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063t\u0020\u006f\u0062\u006a\u0065\u0063\u0074 \u0028\u0066\u006f\u0072\u006d\u0020\u0066\u0069\u0065\u006cd\u0029");};_efac ,_ffcd :=_egg .GetDict (_cggb );
if !_ffcd {return nil ,ErrTypeCheck ;};if _gddac {_gddac =!_ffaf (_efac );};_befc =append (_befc ,_cggb );};for _ ,_fgaed :=range _befc {if _gddac {_gcafa ,_ebff :=_baeef .newPdfAnnotationFromIndirectObject (_fgaed );if _ebff !=nil {_bag .Log .Debug ("\u0045r\u0072\u006fr\u0020\u006c\u006fa\u0064\u0069\u006e\u0067\u0020\u0077\u0069d\u0067\u0065\u0074\u0020\u0061\u006en\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0066\u006f\u0072 \u0066\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0076",_ebff );
return nil ,_ebff ;};_bgfbf ,_bfgc :=_gcafa ._gcf .(*PdfAnnotationWidget );if !_bfgc {return nil ,ErrTypeCheck ;};_bgfbf ._daa =_dcbg ;_dcbg .Annotations =append (_dcbg .Annotations ,_bgfbf );}else {_ddbe ,_gaef :=_baeef .newPdfFieldFromIndirectObject (_fgaed ,_dcbg );
if _gaef !=nil {_bag .Log .Debug ("\u0045\u0072r\u006f\u0072\u0020\u006c\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0063\u0068\u0069\u006c\u0064\u0020\u0066\u0069\u0065\u006c\u0064: \u0025\u0076",_gaef );return nil ,_gaef ;};_dcbg .Kids =append (_dcbg .Kids ,_ddbe );
};};};return _dcbg ,nil ;};
// SetLocation sets the `Location` field of the signature.
func (_cegcg *PdfSignature )SetLocation (location string ){_cegcg .Location =_egg .MakeString (location )};
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
func (_dgdgg *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _dgdgg ._fcbdg .(*PdfTilingPattern );};
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_abgd :=PdfColorDeviceRGB {r ,g ,b };return &_abgd ;};
// SetRotation sets the rotation of all pages added to writer. The rotation is
// specified in degrees and must be a multiple of 90.
// The Rotate field of individual pages has priority over the global rotation.
func (_ffce *PdfWriter )SetRotation (rotate int64 )error {_dgcdb ,_bdgbe :=_egg .GetDict (_ffce ._gfbe );if !_bdgbe {return ErrTypeCheck ;};_dgcdb .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_egg .MakeInteger (rotate ));return nil ;};
// Register registers (caches) a model to primitive object relationship.
func (_aeace *modelManager )Register (primitive _egg .PdfObject ,model PdfModel ){_aeace ._eefgc [model ]=primitive ;_aeace ._ggbg [primitive ]=model ;};func (_cfcda *PdfReader )newPdfSignatureFromIndirect (_aedba *_egg .PdfIndirectObject )(*PdfSignature ,error ){_gcdbe ,_abefbf :=_aedba .PdfObject .(*_egg .PdfObjectDictionary );
if !_abefbf {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072e\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072\u0020\u006e\u006ft\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
return nil ,ErrTypeCheck ;};if _fcagb ,_accdb :=_cfcda ._dabaf .GetModelFromPrimitive (_aedba ).(*PdfSignature );_accdb {return _fcagb ,nil ;};_aggbg :=&PdfSignature {};_aggbg ._ccbda =_aedba ;_aggbg .Type ,_ =_egg .GetName (_gcdbe .Get ("\u0054\u0079\u0070\u0065"));
_aggbg .Filter ,_abefbf =_egg .GetName (_gcdbe .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_abefbf {_bag .Log .Error ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0053i\u0067\u006e\u0061\u0074\u0075r\u0065\u0020\u0046\u0069\u006c\u0074\u0065\u0072\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
return nil ,ErrInvalidAttribute ;};_aggbg .SubFilter ,_ =_egg .GetName (_gcdbe .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_aggbg .Contents ,_abefbf =_egg .GetString (_gcdbe .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_abefbf {_bag .Log .Error ("\u0045\u0052\u0052\u004f\u0052\u003a \u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006et\u0065\u006e\u0074\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
return nil ,ErrInvalidAttribute ;};if _begcd ,_ccab :=_egg .GetArray (_gcdbe .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_ccab {_aggbg .Reference =_egg .MakeArray ();for _ ,_dccdb :=range _begcd .Elements (){_gfaec ,_dggae :=_egg .GetDict (_dccdb );
if !_dggae {_bag .Log .Error ("\u0045\u0052R\u004f\u0052\u003a\u0020R\u0065\u0066e\u0072\u0065\u006e\u0063\u0065\u0020\u0063\u006fn\u0074\u0065\u006e\u0074\u0073\u0020\u0069\u006e\u0076\u0061\u006c\u0069d\u0061\u0074\u0065\u0064");return nil ,ErrInvalidAttribute ;
};_bgdfb ,_eaceb :=_cfcda .newPdfSignatureReferenceFromDict (_gfaec );if _eaceb !=nil {return nil ,_eaceb ;};_aggbg .Reference .Append (_bgdfb .ToPdfObject ());};};_aggbg .Cert =_gcdbe .Get ("\u0043\u0065\u0072\u0074");_aggbg .ByteRange ,_ =_egg .GetArray (_gcdbe .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));
_aggbg .Changes ,_ =_egg .GetArray (_gcdbe .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_aggbg .Name ,_ =_egg .GetString (_gcdbe .Get ("\u004e\u0061\u006d\u0065"));_aggbg .M ,_ =_egg .GetString (_gcdbe .Get ("\u004d"));_aggbg .Location ,_ =_egg .GetString (_gcdbe .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));
_aggbg .Reason ,_ =_egg .GetString (_gcdbe .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_aggbg .ContactInfo ,_ =_egg .GetString (_gcdbe .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_aggbg .R ,_ =_egg .GetInt (_gcdbe .Get ("\u0052"));
_aggbg .V ,_ =_egg .GetInt (_gcdbe .Get ("\u0056"));_aggbg .PropBuild ,_ =_egg .GetDict (_gcdbe .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_aggbg .PropAuthTime ,_ =_egg .GetInt (_gcdbe .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));
_aggbg .PropAuthType ,_ =_egg .GetName (_gcdbe .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_cfcda ._dabaf .Register (_aedba ,_aggbg );return _aggbg ,nil ;};
// NewPdfAnnotationInk returns a new ink annotation.
func NewPdfAnnotationInk ()*PdfAnnotationInk {_cbb :=NewPdfAnnotation ();_gge :=&PdfAnnotationInk {};_gge .PdfAnnotation =_cbb ;_gge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cbb .SetContext (_gge );return _gge ;};
// GetStandardApplier gets currently used StandardApplier..
func (_ffcde *PdfWriter )GetStandardApplier ()StandardApplier {return _ffcde ._ebgad };
// ToGoTime returns the date in time.Time format.
func (_deefg PdfDate )ToGoTime ()_e .Time {_eabef :=int (_deefg ._ebeed *60*60+_deefg ._fcafb *60);switch _deefg ._ebcdc {case '-':_eabef =-_eabef ;case 'Z':_eabef =0;};_bebe :=_f .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_deefg ._ebcdc ,_deefg ._ebeed ,_deefg ._fcafb );
_cdaea :=_e .FixedZone (_bebe ,_eabef );return _e .Date (int (_deefg ._acadbc ),_e .Month (_deefg ._cbffc ),int (_deefg ._fgddd ),int (_deefg ._bfcd ),int (_deefg ._fceaf ),int (_deefg ._ffccc ),0,_cdaea );};
// StandardImplementer is an interface that defines specified PDF standards like PDF/A-1A (pdfa.Profile1A)
// NOTE: This implementation is in experimental development state.
// Keep in mind that it might change in the subsequent minor versions.
type StandardImplementer interface{StandardValidator ;StandardApplier ;
// StandardName gets the human-readable name of the standard.
StandardName ()string ;};
// AddFont adds a font dictionary to the Font resources.
func (_bcdgg *PdfPage )AddFont (name _egg .PdfObjectName ,font _egg .PdfObject )error {if _bcdgg .Resources ==nil {_bcdgg .Resources =NewPdfPageResources ();};if _bcdgg .Resources .Font ==nil {_bcdgg .Resources .Font =_egg .MakeDict ();};_deeba ,_aeacb :=_egg .TraceToDirectObject (_bcdgg .Resources .Font ).(*_egg .PdfObjectDictionary );
if !_aeacb {_bag .Log .Debug ("\u0045\u0078\u0070\u0065\u0063\u0074\u0065\u0064 \u0066\u006f\u006et \u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u003a \u0025\u0076",_egg .TraceToDirectObject (_bcdgg .Resources .Font ));
return _gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_deeba .Set (name ,font );return nil ;};
// NewPdfColorspaceLab returns a new Lab colorspace object.
func NewPdfColorspaceLab ()*PdfColorspaceLab {_cfdb :=&PdfColorspaceLab {};_cfdb .BlackPoint =[]float64 {0.0,0.0,0.0};_cfdb .Range =[]float64 {-100,100,-100,100};return _cfdb ;};
// SetPageLabels sets the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_dgggd *PdfWriter )SetPageLabels (pageLabels _egg .PdfObject )error {if pageLabels ==nil {return nil ;};_bag .Log .Trace ("\u0053\u0065t\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006cs.\u002e\u002e");
_dgggd ._acea .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _dgggd .addObjects (pageLabels );};
// PageProcessCallback callback function used in page loading
// that could be used to modify the page content.
//
// If an error is returned, the `ToWriter` process would fail.
//
// This callback, if defined, will take precedence over `PageCallback` callback.
type PageProcessCallback func (_cedf int ,_beeb *PdfPage )error ;
// Val returns the color value.
func (_fggg *PdfColorDeviceGray )Val ()float64 {return float64 (*_fggg )};
// PdfAction represents an action in PDF (section 12.6 p. 412).
type PdfAction struct{_abb PdfModel ;Type _egg .PdfObject ;S _egg .PdfObject ;Next _egg .PdfObject ;_bf *_egg .PdfIndirectObject ;};func (_eaddb *PdfWriter )checkCrossReferenceStream ()bool {_fceag :=_eaddb ._dacce .Major > 1||(_eaddb ._dacce .Major ==1&&_eaddb ._dacce .Minor > 4);
if _eaddb ._bfga !=nil {_fceag =*_eaddb ._bfga ;};return _fceag ;};
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
func (_bbafa *PdfPageResources )GetColorspaceByName (keyName _egg .PdfObjectName )(PdfColorspace ,bool ){_ffff ,_bdfdf :=_bbafa .GetColorspaces ();if _bdfdf !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0072\u0061\u0063\u0065: \u0025\u0076",_bdfdf );
return nil ,false ;};if _ffff ==nil {return nil ,false ;};_effad ,_bfca :=_ffff .Colorspaces [string (keyName )];if !_bfca {return nil ,false ;};return _effad ,true ;};
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
// Format: [/DeviceN names alternateSpace tintTransform]
// or: [/DeviceN names alternateSpace tintTransform attributes]
func (_ecbd *PdfColorspaceDeviceN )ToPdfObject ()_egg .PdfObject {_fbfd :=_egg .MakeArray (_egg .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_fbfd .Append (_ecbd .ColorantNames );_fbfd .Append (_ecbd .AlternateSpace .ToPdfObject ());_fbfd .Append (_ecbd .TintTransform .ToPdfObject ());
if _ecbd .Attributes !=nil {_fbfd .Append (_ecbd .Attributes .ToPdfObject ());};if _ecbd ._dadga !=nil {_ecbd ._dadga .PdfObject =_fbfd ;return _ecbd ._dadga ;};return _fbfd ;};
// WatermarkImageOptions contains options for configuring the watermark process.
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};func (_gfbbc *PdfWriter )writeAcroFormFields ()error {if _gfbbc ._aggec ==nil {return nil ;};_bag .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");
_bbgg :=_gfbbc ._aggec .ToPdfObject ();_bag .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_bbgg );_gfbbc ._acea .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_bbgg );_ceece :=_gfbbc .addObjects (_bbgg );
if _ceece !=nil {return _ceece ;};return nil ;};
// ToPdfObject returns the PDF representation of the pattern.
func (_dceg *PdfPattern )ToPdfObject ()_egg .PdfObject {_debec :=_dceg .getDict ();_debec .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_debec .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_egg .MakeInteger (_dceg .PatternType ));
return _dceg ._fgec ;};
// SetPdfTitle sets the Title attribute of the output PDF.
func SetPdfTitle (title string ){_cgag .Lock ();defer _cgag .Unlock ();_fcfbd =title };
// UpdateXObjectImageFromImage creates a new XObject Image from an
// Image object `img` and default masks from xobjIn.
// The default masks are overridden if img.hasAlpha
// If `encoder` is nil, uses raw encoding (none).
func UpdateXObjectImageFromImage (xobjIn *XObjectImage ,img *Image ,cs PdfColorspace ,encoder _egg .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_egg .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_effcd ,_abaa :=encoder .EncodeBytes (img .Data );
if _abaa !=nil {_bag .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_abaa );return nil ,_abaa ;};_aeeea :=NewXObjectImage ();_bgacgc :=img .Width ;_cbbed :=img .Height ;
_aeeea .Width =&_bgacgc ;_aeeea .Height =&_cbbed ;_gdaeb :=img .BitsPerComponent ;_aeeea .BitsPerComponent =&_gdaeb ;_aeeea .Filter =encoder ;_aeeea .Stream =_effcd ;if cs ==nil {if img .ColorComponents ==1{_aeeea .ColorSpace =NewPdfColorspaceDeviceGray ();
}else if img .ColorComponents ==3{_aeeea .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_aeeea .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return nil ,_gd .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");
};}else {_aeeea .ColorSpace =cs ;};if len (img ._fgggb )!=0{_gbga :=NewXObjectImage ();_gbga .Filter =encoder ;_bfffe ,_fedga :=encoder .EncodeBytes (img ._fgggb );if _fedga !=nil {_bag .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_fedga );
return nil ,_fedga ;};_gbga .Stream =_bfffe ;_gbga .BitsPerComponent =_aeeea .BitsPerComponent ;_gbga .Width =&img .Width ;_gbga .Height =&img .Height ;_gbga .ColorSpace =NewPdfColorspaceDeviceGray ();_aeeea .SMask =_gbga .ToPdfObject ();}else {_aeeea .SMask =xobjIn .SMask ;
_aeeea .ImageMask =xobjIn .ImageMask ;if _aeeea .ColorSpace .GetNumComponents ()==1{_eebf (_aeeea );};};return _aeeea ,nil ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_cegd pdfFontType3 )GetRuneMetrics (r rune )(_bgd .CharMetrics ,bool ){_gcae :=_cegd .Encoder ();if _gcae ==nil {_bag .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_cegd );
return _bgd .CharMetrics {},false ;};_gbbbg ,_cfcf :=_gcae .RuneToCharcode (r );if !_cfcf {if r !=' '{_bag .Log .Trace ("\u004e\u006f\u0020c\u0068\u0061\u0072\u0063o\u0064\u0065\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u003d\u0025\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",r ,_cegd );
};return _bgd .CharMetrics {},false ;};_faag ,_bfeg :=_cegd .GetCharMetrics (_gbbbg );return _faag ,_bfeg ;};
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
func (_cfdab *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_fdfc :=_fb .NewReader (img .getBase ());_ceaea :=_eg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._fgggb ,img ._abfae );
_egfa :=_fb .NewWriter (_ceaea );_eafed :=_dgb .Pow (2,float64 (img .BitsPerComponent ))-1;_gdgb :=_cfdab .GetNumComponents ();_gebe :=make ([]uint32 ,_gdgb );_acfdf :=make ([]float64 ,_gdgb );for {_bcbfc :=_fdfc .ReadSamples (_gebe );if _bcbfc ==_dag .EOF {break ;
}else if _bcbfc !=nil {return img ,_bcbfc ;};for _eagf :=0;_eagf < _gdgb ;_eagf ++{_dgce :=float64 (_gebe [_eagf ])/_eafed ;_acfdf [_eagf ]=_dgce ;};_bedce ,_bcbfc :=_cfdab .TintTransform .Evaluate (_acfdf );if _bcbfc !=nil {return img ,_bcbfc ;};for _ ,_ccbde :=range _bedce {_ccbde =_dgb .Min (_dgb .Max (0,_ccbde ),1.0);
if _bcbfc =_egfa .WriteSample (uint32 (_ccbde *_eafed ));_bcbfc !=nil {return img ,_bcbfc ;};};};return _cfdab .AlternateSpace .ImageToRGB (_cggba (&_ceaea ));};
// IsEncrypted returns true if the PDF file is encrypted.
func (_fdccf *PdfReader )IsEncrypted ()(bool ,error ){return _fdccf ._dafgab .IsEncrypted ()};
// ToPdfObject implements interface PdfModel.
func (_bbdec *PdfAnnotationStamp )ToPdfObject ()_egg .PdfObject {_bbdec .PdfAnnotation .ToPdfObject ();_eceg :=_bbdec ._cef ;_cbce :=_eceg .PdfObject .(*_egg .PdfObjectDictionary );_bbdec .PdfAnnotationMarkup .appendToPdfDictionary (_cbce );_cbce .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053\u0074\u0061m\u0070"));
_cbce .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bbdec .Name );return _eceg ;};
// DecodeArray returns the component range values for the Separation colorspace.
func (_ffga *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// PdfActionResetForm represents a resetForm action.
type PdfActionResetForm struct{*PdfAction ;Fields _egg .PdfObject ;Flags _egg .PdfObject ;};
// BorderStyle defines border type, typically used for annotations.
type BorderStyle int ;
// PdfShading represents a shading dictionary. There are 7 types of shading,
// indicatedby the shading type variable:
// 1: Function-based shading.
// 2: Axial shading.
// 3: Radial shading.
// 4: Free-form Gouraud-shaded triangle mesh.
// 5: Lattice-form Gouraud-shaded triangle mesh.
// 6: Coons patch mesh.
// 7: Tensor-product patch mesh.
// types 4-7 are contained in a stream object, where the dictionary is given by the stream dictionary.
type PdfShading struct{ShadingType *_egg .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_egg .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_egg .PdfObjectBool ;_fagfe PdfModel ;_cfdbd _egg .PdfObject ;};
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
func (_edecb *modelManager )GetPrimitiveFromModel (model PdfModel )_egg .PdfObject {_egeba ,_bbgcg :=_edecb ._eefgc [model ];if !_bbgcg {return nil ;};return _egeba ;};func (_deegb *PdfPattern )getDict ()*_egg .PdfObjectDictionary {if _acface ,_gfde :=_deegb ._fgec .(*_egg .PdfIndirectObject );
_gfde {_cbafg ,_dfde :=_acface .PdfObject .(*_egg .PdfObjectDictionary );if !_dfde {return nil ;};return _cbafg ;}else if _efgbd ,_gebg :=_deegb ._fgec .(*_egg .PdfObjectStream );_gebg {return _efgbd .PdfObjectDictionary ;}else {_bag .Log .Debug ("\u0054r\u0079\u0069\u006e\u0067\u0020\u0074\u006f a\u0063\u0063\u0065\u0073\u0073\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e\u0020d\u0069\u0063t\u0069\u006f\u006ea\u0072\u0079\u0020\u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062j\u0065\u0063t \u0074\u0079\u0070e\u0020\u0028\u0025\u0054\u0029",_deegb ._fgec );
return nil ;};};func (_adfdb *PdfReader )newPdfAcroFormFromDict (_bede *_egg .PdfIndirectObject ,_gcag *_egg .PdfObjectDictionary )(*PdfAcroForm ,error ){_daaag :=NewPdfAcroForm ();if _bede !=nil {_daaag ._befdb =_bede ;_bede .PdfObject =_egg .MakeDict ();
};if _dgdcc :=_gcag .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_dgdcc !=nil &&!_egg .IsNullObject (_dgdcc ){_ffded ,_ecafc :=_egg .GetArray (_dgdcc );if !_ecafc {return nil ,_f .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_dgdcc );
};var _ebgff []*PdfField ;for _ ,_dfba :=range _ffded .Elements (){_facg ,_fbed :=_egg .GetIndirect (_dfba );if !_fbed {if _ ,_baea :=_dfba .(*_egg .PdfObjectNull );_baea {_bag .Log .Trace ("\u0053k\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u006f\u0076\u0065\u0072 \u006e\u0075\u006c\u006c\u0020\u0066\u0069\u0065\u006c\u0064");
continue ;};_bag .Log .Debug ("\u0046\u0069\u0065\u006c\u0064 \u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0064 \u0069\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0054",_dfba );
return nil ,_f .Errorf ("\u0066\u0069\u0065l\u0064\u0020\u006e\u006ft\u0020\u0069\u006e\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_acbef ,_eaga :=_adfdb .newPdfFieldFromIndirectObject (_facg ,nil );
if _eaga !=nil {return nil ,_eaga ;};_bag .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_acbef );_ebgff =append (_ebgff ,_acbef );};_daaag .Fields =&_ebgff ;};if _ddgd :=_gcag .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");
_ddgd !=nil {_ddgf ,_cdcgd :=_egg .GetBool (_ddgd );if _cdcgd {_daaag .NeedAppearances =_ddgf ;}else {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004e\u0065\u0065\u0064\u0041\u0070p\u0065\u0061\u0072\u0061\u006e\u0063e\u0073\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006ft\u0020\u0025\u0054\u0029",_ddgd );
};};if _fbbb :=_gcag .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_fbbb !=nil {_afbac ,_gabd :=_egg .GetInt (_fbbb );if _gabd {_daaag .SigFlags =_afbac ;}else {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073 \u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_fbbb );
};};if _adfbbb :=_gcag .Get ("\u0043\u004f");_adfbbb !=nil {_ffdb ,_fecag :=_egg .GetArray (_adfbbb );if _fecag {_daaag .CO =_ffdb ;}else {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043\u004f\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006f\u0074 \u0025\u0054\u0029",_adfbbb );
};};if _ccddb :=_gcag .Get ("\u0044\u0052");_ccddb !=nil {if _gfcac ,_dgfff :=_egg .GetDict (_ccddb );_dgfff {_bfdcc ,_beacf :=NewPdfPageResourcesFromDict (_gfcac );if _beacf !=nil {_bag .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_beacf );
return nil ,_beacf ;};_daaag .DR =_bfdcc ;}else {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0044\u0052\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006f\u0074 \u0025\u0054\u0029",_ccddb );};};if _fbbdf :=_gcag .Get ("\u0044\u0041");
_fbbdf !=nil {_agfeff ,_aaaff :=_egg .GetString (_fbbdf );if _aaaff {_daaag .DA =_agfeff ;}else {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0044\u0041\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006f\u0074 \u0025\u0054\u0029",_fbbdf );
};};if _gcee :=_gcag .Get ("\u0051");_gcee !=nil {_defa ,_aegea :=_egg .GetInt (_gcee );if _aegea {_daaag .Q =_defa ;}else {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_gcee );
};};if _cegg :=_gcag .Get ("\u0058\u0046\u0041");_cegg !=nil {_daaag .XFA =_cegg ;};_daaag .ToPdfObject ();return _daaag ,nil ;};
// PdfColorDeviceGray represents a grayscale color value that shall be represented by a single number in the
// range 0.0 to 1.0 where 0.0 corresponds to black and 1.0 to white.
type PdfColorDeviceGray float64 ;
// ToInteger convert to an integer format.
func (_ecgf *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_ffabd :=_dgb .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_ffabd *_ecgf .A ()),uint32 (_ffabd *_ecgf .B ()),uint32 (_ffabd *_ecgf .C ())};};
// SetDocInfo sets the document /Info metadata.
// This will overwrite any globally declared document info.
func (_ebag *PdfAppender )SetDocInfo (info *PdfInfo ){_ebag ._gaagg =info };
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
func (_gacee *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_egg .StreamEncoder ,error ){_egafe ,_cgea :=_gacee ._fgec .(*_egg .PdfObjectStream );if !_cgea {_bag .Log .Debug ("\u0054\u0069l\u0069\u006e\u0067\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_gacee ._fgec );
return nil ,nil ,_egg .ErrTypeError ;};_eacec ,_fgcbg :=_egg .DecodeStream (_egafe );if _fgcbg !=nil {_bag .Log .Debug ("\u0046\u0061\u0069l\u0065\u0064\u0020\u0064e\u0063\u006f\u0064\u0069\u006e\u0067\u0020s\u0074\u0072\u0065\u0061\u006d\u002c\u0020\u0065\u0072\u0072\u003a\u0020\u0025\u0076",_fgcbg );
return nil ,nil ,_fgcbg ;};_gedf ,_fgcbg :=_egg .NewEncoderFromStream (_egafe );if _fgcbg !=nil {_bag .Log .Debug ("F\u0061\u0069\u006c\u0065\u0064\u0020f\u0069\u006e\u0064\u0069\u006e\u0067 \u0064\u0065\u0063\u006f\u0064\u0069\u006eg\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u003a\u0020%\u0076",_fgcbg );
return nil ,nil ,_fgcbg ;};return _eacec ,_gedf ,nil ;};
// ParsePdfObject parses input pdf object into given output intent.
func (_cbddc *PdfOutputIntent )ParsePdfObject (object _egg .PdfObject )error {_bgfbfc ,_cbced :=_egg .GetDict (object );if !_cbced {_bag .Log .Error ("\u0055\u006e\u006bno\u0077\u006e\u0020\u0074\u0079\u0070\u0065\u003a\u0020%\u0054 \u0066o\u0072 \u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0069\u006e\u0074\u0065\u006e\u0074",object );
return _gd .New ("\u0075\u006e\u006b\u006e\u006fw\u006e\u0020\u0070\u0064\u0066\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020t\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0069\u006e\u0074\u0065\u006e\u0074");
};_cbddc ._gdaaa =_bgfbfc ;_cbddc .Type ,_ =_bgfbfc .GetString ("\u0054\u0079\u0070\u0065");_gegd ,_cbced :=_bgfbfc .GetString ("\u0053");if _cbced {switch _gegd {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_cbddc .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_cbddc .S =PdfOutputIntentTypeA2 ;
case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_cbddc .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_cbddc .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_cbddc .S =PdfOutputIntentTypeX ;
};};_cbddc .OutputCondition ,_ =_bgfbfc .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_cbddc .OutputConditionIdentifier ,_ =_bgfbfc .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r");
_cbddc .RegistryName ,_ =_bgfbfc .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_cbddc .Info ,_ =_bgfbfc .GetString ("\u0049\u006e\u0066\u006f");if _dgag ,_dfad :=_egg .GetStream (_bgfbfc .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065"));
_dfad {_cbddc .ColorComponents ,_ =_egg .GetIntVal (_dgag .Get ("\u004e"));_dfcb ,_bfge :=_egg .DecodeStream (_dgag );if _bfge !=nil {return _bfge ;};_cbddc .DestOutputProfile =_dfcb ;};return nil ;};func (_gedaaf *pdfFontType0 )subsetRegistered ()error {_fecb ,_bedac :=_gedaaf .DescendantFont ._edde .(*pdfCIDFontType2 );
if !_bedac {_bag .Log .Debug ("\u0046\u006fnt\u0020\u006e\u006ft\u0020\u0073\u0075\u0070por\u0074ed\u0020\u0066\u006f\u0072\u0020\u0073\u0075bs\u0065\u0074\u0074\u0069\u006e\u0067\u0020%\u0054",_gedaaf .DescendantFont );return nil ;};if _fecb ==nil {return nil ;
};if _fecb ._bgacg ==nil {_bag .Log .Debug ("\u004d\u0069\u0073si\u006e\u0067\u0020\u0066\u006f\u006e\u0074\u0020\u0064\u0065\u0073\u0063\u0072\u0069\u0070\u0074\u006f\u0072");return nil ;};if _gedaaf ._bfddc ==nil {_bag .Log .Debug ("\u004e\u006f\u0020e\u006e\u0063\u006f\u0064e\u0072\u0020\u002d\u0020\u0073\u0075\u0062s\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0069\u0067\u006e\u006f\u0072\u0065\u0064");
return nil ;};_egebf ,_bedac :=_egg .GetStream (_fecb ._bgacg .FontFile2 );if !_bedac {_bag .Log .Debug ("\u0045\u006d\u0062\u0065\u0064\u0064\u0065\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u006f\u0062\u006a\u0065c\u0074\u0020\u006e\u006f\u0074\u0020\u0066o\u0075\u006e\u0064\u0020\u002d\u002d\u0020\u0041\u0042\u004f\u0052T\u0020\u0073\u0075\u0062\u0073\u0065\u0074\u0074\u0069\u006e\u0067");
return _gd .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_edefc ,_bdeae :=_egg .DecodeStream (_egebf );if _bdeae !=nil {_bag .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_bdeae );
return _bdeae ;};_ddbg ,_bdeae :=_ec .Parse (_dd .NewReader (_edefc ));if _bdeae !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0025\u0064\u0020\u0062\u0079\u0074\u0065\u0020f\u006f\u006e\u0074",len (_egebf .Stream ));
return _bdeae ;};var _eacg []rune ;var _caab *_ec .Font ;switch _gcgd :=_gedaaf ._bfddc .(type ){case *_ef .TrueTypeFontEncoder :_eacg =_gcgd .RegisteredRunes ();_caab ,_bdeae =_ddbg .SubsetKeepRunes (_eacg );if _bdeae !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeae );
return _bdeae ;};_gcgd .SubsetRegistered ();case *_ef .IdentityEncoder :_eacg =_gcgd .RegisteredRunes ();_deba :=make ([]_ec .GlyphIndex ,len (_eacg ));for _baedc ,_ecba :=range _eacg {_deba [_baedc ]=_ec .GlyphIndex (_ecba );};_caab ,_bdeae =_ddbg .SubsetKeepIndices (_deba );
if _bdeae !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeae );return _bdeae ;};case _ef .SimpleEncoder :_fcfb :=_gcgd .Charcodes ();for _ ,_fgggc :=range _fcfb {_ebfed ,_efead :=_gcgd .CharcodeToRune (_fgggc );if !_efead {_bag .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0075\u006e\u0061\u0062\u006c\u0065\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0020\u0074\u006f \u0072\u0075\u006e\u0065\u003a\u0020\u0025\u0064",_fgggc );
continue ;};_eacg =append (_eacg ,_ebfed );};default:return _f .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020s\u0075\u0062\u0073\u0065\u0074t\u0069\u006eg\u003a\u0020\u0025\u0054",_gedaaf ._bfddc );
};var _gegaf _dd .Buffer ;_bdeae =_caab .Write (&_gegaf );if _bdeae !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeae );return _bdeae ;};if _gedaaf ._bfbgf !=nil {_fcda :=make (map[_ga .CharCode ]rune ,len (_eacg ));for _ ,_ccdb :=range _eacg {_aeed ,_fbae :=_gedaaf ._bfddc .RuneToCharcode (_ccdb );
if !_fbae {continue ;};_fcda [_ga .CharCode (_aeed )]=_ccdb ;};_gedaaf ._bfbgf =_ga .NewToUnicodeCMap (_fcda );};_egebf ,_bdeae =_egg .MakeStream (_gegaf .Bytes (),_egg .NewFlateEncoder ());if _bdeae !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeae );
return _bdeae ;};_egebf .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_egg .MakeInteger (int64 (_gegaf .Len ())));if _edaaf ,_abeed :=_egg .GetStream (_fecb ._bgacg .FontFile2 );_abeed {*_edaaf =*_egebf ;}else {_fecb ._bgacg .FontFile2 =_egebf ;};_gbgf :=_eaebg ();
if len (_gedaaf ._dgfdc )> 0{_gedaaf ._dgfdc =_egcge (_gedaaf ._dgfdc ,_gbgf );};if len (_fecb ._dgfdc )> 0{_fecb ._dgfdc =_egcge (_fecb ._dgfdc ,_gbgf );};if len (_gedaaf ._cbgce )> 0{_gedaaf ._cbgce =_egcge (_gedaaf ._cbgce ,_gbgf );};if _fecb ._bgacg !=nil {_fgaca ,_gddcc :=_egg .GetName (_fecb ._bgacg .FontName );
if _gddcc &&len (_fgaca .String ())> 0{_cgbfa :=_egcge (_fgaca .String (),_gbgf );_fecb ._bgacg .FontName =_egg .MakeName (_cgbfa );};};return nil ;};func (_facdc *PdfWriter )updateObjectNumbers (){_daccd :=_facdc .ObjNumOffset ;_cbfae :=0;for _ ,_gaca :=range _facdc ._bbead {_agbeb :=int64 (_cbfae +1+_daccd );
_ffeddd :=true ;if _facdc ._gabaca {if _gcab ,_aaaac :=_facdc ._fcgfe [_gaca ];_aaaac {_agbeb =_gcab ;_ffeddd =false ;};};switch _aeeba :=_gaca .(type ){case *_egg .PdfIndirectObject :_aeeba .ObjectNumber =_agbeb ;_aeeba .GenerationNumber =0;case *_egg .PdfObjectStream :_aeeba .ObjectNumber =_agbeb ;
_aeeba .GenerationNumber =0;case *_egg .PdfObjectStreams :_aeeba .ObjectNumber =_agbeb ;_aeeba .GenerationNumber =0;default:_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0055\u006e\u006b\u006e\u006f\u0077\u006e\u0020\u0074\u0079\u0070\u0065\u0020%\u0054\u0020\u002d\u0020\u0073\u006b\u0069p\u0070\u0069\u006e\u0067",_aeeba );
continue ;};if _ffeddd {_cbfae ++;};};_gedfd :=func (_afdf _egg .PdfObject )int64 {switch _gcdgc :=_afdf .(type ){case *_egg .PdfIndirectObject :return _gcdgc .ObjectNumber ;case *_egg .PdfObjectStream :return _gcdgc .ObjectNumber ;case *_egg .PdfObjectStreams :return _gcdgc .ObjectNumber ;
};return 0;};_cf .SliceStable (_facdc ._bbead ,func (_eedeb ,_bgggb int )bool {return _gedfd (_facdc ._bbead [_eedeb ])< _gedfd (_facdc ._bbead [_bgggb ])});};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_bfcfa *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdea ,_aggb :=_egg .GetNumbersAsFloat (objects );
if _aggb !=nil {return nil ,_aggb ;};return _bfcfa .ColorFromFloats (_cdea );};
// SignatureHandlerDocMDPParams describe the specific parameters for the SignatureHandlerEx
// These parameters describe how to check the difference between revisions.
// Revisions of the document get from the PdfParser.
type SignatureHandlerDocMDPParams struct{Parser *_egg .PdfParser ;DiffPolicy _be .DiffPolicy ;};
// NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject.
func NewPdfOutputIntentFromPdfObject (object _egg .PdfObject )(*PdfOutputIntent ,error ){_bdebc :=&PdfOutputIntent {};if _bdfc :=_bdebc .ParsePdfObject (object );_bdfc !=nil {return nil ,_bdfc ;};return _bdebc ,nil ;};func _bbeb (_edbdbd *PdfField ,_fagge _egg .PdfObject ){for _ ,_cdaae :=range _edbdbd .Annotations {_cdaae .AS =_fagge ;
_cdaae .ToPdfObject ();};};
// ToPdfObject returns the PDF representation of the DSS dictionary.
func (_dgaca *DSS )ToPdfObject ()_egg .PdfObject {_gfdb :=_dgaca ._eaceg .PdfObject .(*_egg .PdfObjectDictionary );_gfdb .Clear ();_fcgg :=_egg .MakeDict ();for _eadee ,_bdbbd :=range _dgaca .VRI {_fcgg .Set (*_egg .MakeName (_eadee ),_bdbbd .ToPdfObject ());
};_gfdb .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_dgagb (_dgaca .Certs ));_gfdb .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_dgagb (_dgaca .OCSPs ));_gfdb .SetIfNotNil ("\u0043\u0052\u004c\u0073",_dgagb (_dgaca .CRLs ));_gfdb .Set ("\u0056\u0052\u0049",_fcgg );
return _dgaca ._eaceg ;};
// Subtype returns the font's "Subtype" field.
func (_adcgf *PdfFont )Subtype ()string {_befbf :=_adcgf .baseFields ()._ebdf ;if _fdec ,_fede :=_adcgf ._edde .(*pdfFontType0 );_fede {_befbf =_befbf +"\u003a"+_fdec .DescendantFont .Subtype ();};return _befbf ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a CalRGB device.
func (_babe *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};
// PdfDate represents a date, which is a PDF string of the form:
// (D:YYYYMMDDHHmmSSOHH'mm)
type PdfDate struct{_acadbc int64 ;_cbffc int64 ;_fgddd int64 ;_bfcd int64 ;_fceaf int64 ;_ffccc int64 ;_ebcdc byte ;_ebeed int64 ;_fcafb int64 ;};
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
// DeviceRGB CS.
func (_bgbfb *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_bdggf :=_fb .NewReader (img .getBase ());_cdeag :=_eg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_bgbfb .AlternateSpace .GetNumComponents (),nil ,img ._fgggb ,nil );
_bbaeb :=_fb .NewWriter (_cdeag );_ffgf :=_dgb .Pow (2,float64 (img .BitsPerComponent ))-1;_bag .Log .Trace ("\u0053\u0065\u0070a\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0073\u0070\u0061\u0063\u0065\u0020\u002d\u003e\u0020\u0054\u006f\u0052\u0047\u0042\u0020\u0063o\u006e\u0076\u0065\u0072\u0073\u0069\u006f\u006e");
_bag .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_bgbfb .TintTransform );_aebaf :=_bgbfb .AlternateSpace .DecodeArray ();var (_gdcb uint32 ;_gddf error ;);for {_gdcb ,_gddf =_bdggf .ReadSample ();
if _gddf ==_dag .EOF {break ;};if _gddf !=nil {return img ,_gddf ;};_gdddf :=float64 (_gdcb )/_ffgf ;_dfabe ,_eagb :=_bgbfb .TintTransform .Evaluate ([]float64 {_gdddf });if _eagb !=nil {return img ,_eagb ;};for _bdeb ,_gcgcf :=range _dfabe {_ccbf :=_eg .LinearInterpolate (_gcgcf ,_aebaf [_bdeb *2],_aebaf [_bdeb *2+1],0,1);
if _eagb =_bbaeb .WriteSample (uint32 (_ccbf *_ffgf ));_eagb !=nil {return img ,_eagb ;};};};return _bgbfb .AlternateSpace .ImageToRGB (_cggba (&_cdeag ));};var _eefde =map[string ]struct{}{"\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067":{},"\u004d\u0061c\u0052\u006f\u006da\u006e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067":{},"\u004d\u0061\u0063\u0045\u0078\u0070\u0065\u0072\u0074\u0045\u006e\u0063o\u0064\u0069\u006e\u0067":{},"\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067":{}};
// GetNumComponents returns the number of color components (3 for RGB).
func (_bfgf *PdfColorDeviceRGB )GetNumComponents ()int {return 3};
// ToWriter creates a new writer from the current reader, based on the specified options.
// If no options are provided, all reader properties are copied to the writer.
func (_afbeea *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_egeag :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_fefa ,_bcgbf :=_afbeea .GetNumPages ();if _bcgbf !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bcgbf );
return nil ,_bcgbf ;};for _afeeg :=1;_afeeg <=_fefa ;_afeeg ++{_gegafg ,_bdeba :=_afbeea .GetPage (_afeeg );if _bdeba !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeba );return nil ,_bdeba ;};if opts .PageProcessCallback !=nil {_bdeba =opts .PageProcessCallback (_afeeg ,_gegafg );
if _bdeba !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeba );return nil ,_bdeba ;};}else if opts .PageCallback !=nil {opts .PageCallback (_afeeg ,_gegafg );};_bdeba =_egeag .AddPage (_gegafg );if _bdeba !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeba );
return nil ,_bdeba ;};};_egeag ._dacce =_afbeea .PdfVersion ();if !opts .SkipInfo {_ffead ,_fcbcb :=_afbeea .GetPdfInfo ();if _fcbcb !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fcbcb );}else {_egeag ._efage .PdfObject =_ffead .ToPdfObject ();
};};if !opts .SkipMetadata {if _aadad :=_afbeea ._eacf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_aadad !=nil {if _cccd :=_egeag .SetCatalogMetadata (_aadad );_cccd !=nil {return nil ,_cccd ;};};};if !opts .SkipAcroForm {_ecfff :=_egeag .SetForms (_afbeea .AcroForm );
if _ecfff !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ecfff );return nil ,_ecfff ;};};if !opts .SkipOutlines {_egeag .AddOutlineTree (_afbeea .GetOutlineTree ());};if !opts .SkipOCProperties {_bdbbc ,_degbc :=_afbeea .GetOCProperties ();
if _degbc !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_degbc );}else {_degbc =_egeag .SetOCProperties (_bdbbc );if _degbc !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_degbc );};};};if !opts .SkipPageLabels {_cccac ,_fggfg :=_afbeea .GetPageLabels ();
if _fggfg !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fggfg );}else {_fggfg =_egeag .SetPageLabels (_cccac );if _fggfg !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fggfg );};};};if !opts .SkipNamedDests {_dceag ,_aabf :=_afbeea .GetNamedDestinations ();
if _aabf !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aabf );}else {_aabf =_egeag .SetNamedDestinations (_dceag );if _aabf !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aabf );};};};if !opts .SkipNameDictionary {_bgggg ,_bbeag :=_afbeea .GetNameDictionary ();
if _bbeag !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbeag );}else {_bbeag =_egeag .SetNameDictionary (_bgggg );if _bbeag !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbeag );};};};if !opts .SkipRotation &&_afbeea .Rotate !=nil {if _cbbdb :=_egeag .SetRotation (*_afbeea .Rotate );
_cbbdb !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cbbdb );};};return &_egeag ,nil ;};
// ToPdfObject returns the PDF representation of the function.
func (_ccac *PdfFunctionType0 )ToPdfObject ()_egg .PdfObject {if _ccac ._adfae ==nil {_ccac ._adfae =&_egg .PdfObjectStream {};};_dccc :=_egg .MakeDict ();_dccc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_egg .MakeInteger (0));
_affd :=&_egg .PdfObjectArray {};for _ ,_efae :=range _ccac .Domain {_affd .Append (_egg .MakeFloat (_efae ));};_dccc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_affd );_gcaa :=&_egg .PdfObjectArray {};for _ ,_bdbfa :=range _ccac .Range {_gcaa .Append (_egg .MakeFloat (_bdbfa ));
};_dccc .Set ("\u0052\u0061\u006eg\u0065",_gcaa );_faee :=&_egg .PdfObjectArray {};for _ ,_bbebc :=range _ccac .Size {_faee .Append (_egg .MakeInteger (int64 (_bbebc )));};_dccc .Set ("\u0053\u0069\u007a\u0065",_faee );_dccc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_egg .MakeInteger (int64 (_ccac .BitsPerSample )));
if _ccac .Order !=1{_dccc .Set ("\u004f\u0072\u0064e\u0072",_egg .MakeInteger (int64 (_ccac .Order )));};_dccc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_ccac ._efacf ))));_ccac ._adfae .Stream =_ccac ._efacf ;_ccac ._adfae .PdfObjectDictionary =_dccc ;
return _ccac ._adfae ;};
// PdfField contains the common attributes of a form field. The context object contains the specific field data
// which can represent a button, text, choice or signature.
// The PdfField is typically not used directly, but is encapsulated by the more specific field types such as
// PdfFieldButton etc (i.e. the context attribute).
type PdfField struct{_gbdee PdfModel ;_agef *_egg .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_egg .PdfObjectName ;T *_egg .PdfObjectString ;TU *_egg .PdfObjectString ;TM *_egg .PdfObjectString ;Ff *_egg .PdfObjectInteger ;
V _egg .PdfObject ;DV _egg .PdfObject ;AA _egg .PdfObject ;VariableText *VariableText ;};
// PdfAnnotationSquiggly represents Squiggly annotations.
// (Section 12.5.6.10).
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _egg .PdfObject ;};func (_edfcd *PdfReader )flattenFieldsWithOpts (_baagf bool ,_cbefg FieldAppearanceGenerator ,_fgdf *FieldFlattenOpts )error {if _fgdf ==nil {_fgdf =&FieldFlattenOpts {};
};var _ffbgg bool ;_adgg :=map[*PdfAnnotation ]bool {};{var _fadc []*PdfField ;_fbcf :=_edfcd .AcroForm ;if _fbcf !=nil {if _fgdf .FilterFunc !=nil {_fadc =_fbcf .filteredFields (_fgdf .FilterFunc ,true );_ffbgg =_fbcf .Fields !=nil &&len (*_fbcf .Fields )> 0;
}else {_fadc =_fbcf .AllFields ();};};for _ ,_gdecb :=range _fadc {for _ ,_degdga :=range _gdecb .Annotations {_adgg [_degdga .PdfAnnotation ]=_gdecb .V !=nil ;if _cbefg !=nil {_fdad ,_fbfe :=_cbefg .GenerateAppearanceDict (_fbcf ,_gdecb ,_degdga );if _fbfe !=nil {return _fbfe ;
};_degdga .AP =_fdad ;};};};};if _baagf {for _ ,_ggcg :=range _edfcd .PageList {_abbfg ,_fgfee :=_ggcg .GetAnnotations ();if _fgfee !=nil {return _fgfee ;};for _ ,_aegd :=range _abbfg {_adgg [_aegd ]=true ;};};};for _ ,_ggcgg :=range _edfcd .PageList {var _afdca []*PdfAnnotation ;
if _cbefg !=nil {if _gebb :=_cbefg .WrapContentStream (_ggcgg );_gebb !=nil {return _gebb ;};};_ddfe ,_ccbc :=_ggcgg .GetAnnotations ();if _ccbc !=nil {return _ccbc ;};for _ ,_cbca :=range _ddfe {_dfgfg ,_dbcb :=_adgg [_cbca ];if !_dbcb &&_fgdf .AnnotFilterFunc !=nil {if _ ,_cbcge :=_cbca .GetContext ().(*PdfAnnotationWidget );
!_cbcge {_dbcb =_fgdf .AnnotFilterFunc (_cbca );};};if !_dbcb {_afdca =append (_afdca ,_cbca );continue ;};switch _cbca .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;
};_fagb ,_febe ,_gggeae :=_acfec (_cbca );if _gggeae !=nil {if !_dfgfg {_bag .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0077\u0069\u0074h\u006f\u0075\u0074\u0020\u0056\u0020\u002d\u003e\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0077\u0069\u0074h\u006f\u0075t\u0020\u0061p\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u0073\u0074\u0072\u0065am\u0020\u002d\u0020\u0073\u006b\u0069\u0070\u0070\u0069n\u0067\u0020\u006f\u0076\u0065\u0072");
continue ;};_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u0020\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0077\u0069\u0074h\u006f\u0075\u0074\u0020\u0061\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u0073\u0074\u0072\u0065\u0061\u006d,\u0020\u0065\u0072\u0072\u0020\u003a\u0020\u0025\u0076\u0020\u002d\u0020\u0073\u006bi\u0070\u0070\u0069n\u0067\u0020\u006f\u0076\u0065\u0072",_gggeae );
continue ;};if _fagb ==nil {continue ;};_efga :=_ggcgg .Resources .GenerateXObjectName ();_ggcgg .Resources .SetXObjectFormByName (_efga ,_fagb );_cbcee :=_dgb .Min (_febe .Llx ,_febe .Urx );_begd :=_dgb .Min (_febe .Lly ,_febe .Ury );var _befgb []string ;
_befgb =append (_befgb ,"\u0071");_befgb =append (_befgb ,_f .Sprintf ("\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020%\u002e6\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0063\u006d",1.0,0.0,0.0,1.0,_cbcee ,_begd ));
_befgb =append (_befgb ,_f .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_efga .String ()));_befgb =append (_befgb ,"\u0051");_faafc :=_fc .Join (_befgb ,"\u000a");_gggeae =_ggcgg .AppendContentStream (_faafc );if _gggeae !=nil {return _gggeae ;};if _fagb .Resources !=nil {_dfae ,_gcfdb :=_egg .GetDict (_fagb .Resources .Font );
if _gcfdb {for _ ,_egeb :=range _dfae .Keys (){if !_ggcgg .Resources .HasFontByName (_egeb ){_ggcgg .Resources .SetFontByName (_egeb ,_dfae .Get (_egeb ));};};};};};if len (_afdca )> 0{_ggcgg ._bcce =_afdca ;}else {_ggcgg ._bcce =[]*PdfAnnotation {};};
};if !_ffbgg {_edfcd .AcroForm =nil ;};return nil ;};
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
type PdfFieldChoice struct{*PdfField ;Opt *_egg .PdfObjectArray ;TI *_egg .PdfObjectInteger ;I *_egg .PdfObjectArray ;};
// ToPdfObject implements interface PdfModel.
func (_cea *PdfAnnotationWatermark )ToPdfObject ()_egg .PdfObject {_cea .PdfAnnotation .ToPdfObject ();_aed :=_cea ._cef ;_daba :=_aed .PdfObject .(*_egg .PdfObjectDictionary );_daba .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));
_daba .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_cea .FixedPrint );return _aed ;};
// ToPdfObject returns the PDF representation of the tiling pattern.
func (_gefcg *PdfTilingPattern )ToPdfObject ()_egg .PdfObject {_gefcg .PdfPattern .ToPdfObject ();_fcdcc :=_gefcg .getDict ();if _gefcg .PaintType !=nil {_fcdcc .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_gefcg .PaintType );};if _gefcg .TilingType !=nil {_fcdcc .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_gefcg .TilingType );
};if _gefcg .BBox !=nil {_fcdcc .Set ("\u0042\u0042\u006f\u0078",_gefcg .BBox .ToPdfObject ());};if _gefcg .XStep !=nil {_fcdcc .Set ("\u0058\u0053\u0074e\u0070",_gefcg .XStep );};if _gefcg .YStep !=nil {_fcdcc .Set ("\u0059\u0053\u0074e\u0070",_gefcg .YStep );
};if _gefcg .Resources !=nil {_fcdcc .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_gefcg .Resources .ToPdfObject ());};if _gefcg .Matrix !=nil {_fcdcc .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gefcg .Matrix );};return _gefcg ._fgec ;};
// HasExtGState checks whether a font is defined by the specified keyName.
func (_beafg *PdfPageResources )HasExtGState (keyName _egg .PdfObjectName )bool {_ ,_bccca :=_beafg .GetFontByName (keyName );return _bccca ;};
// ToPdfObject implements interface PdfModel.
func (_cecag *Permissions )ToPdfObject ()_egg .PdfObject {return _cecag ._ffgafc };func _egcge (_dabe ,_fbbfe string )string {if _fc .Contains (_dabe ,"\u002b"){_dcga :=_fc .Split (_dabe ,"\u002b");if len (_dcga )==2{_dabe =_dcga [1];};};return _fbbfe +"\u002b"+_dabe ;
};
// GetContainingPdfObject returns the container of the outline item (indirect object).
func (_eaccc *PdfOutlineItem )GetContainingPdfObject ()_egg .PdfObject {return _eaccc ._gfcb };
// B returns the value of the blue component of the color.
func (_gfe *PdfColorDeviceRGB )B ()float64 {return _gfe [2]};
// StringToCharcodeBytes maps the provided string runes to charcode bytes and
// it returns the resulting slice of bytes, along with the number of runes
// which could not be converted. If the number of misses is 0, all string runes
// were successfully converted.
func (_ecac *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _ecac .RunesToCharcodeBytes ([]rune (str ));};
// ToPdfObject implements interface PdfModel.
func (_dgbe *PdfActionRendition )ToPdfObject ()_egg .PdfObject {_dgbe .PdfAction .ToPdfObject ();_fcbb :=_dgbe ._bf ;_gga :=_fcbb .PdfObject .(*_egg .PdfObjectDictionary );_gga .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeRendition )));_gga .SetIfNotNil ("\u0052",_dgbe .R );
_gga .SetIfNotNil ("\u0041\u004e",_dgbe .AN );_gga .SetIfNotNil ("\u004f\u0050",_dgbe .OP );_gga .SetIfNotNil ("\u004a\u0053",_dgbe .JS );return _fcbb ;};
// ToPdfObject convert PdfInfo to pdf object.
func (_abadb *PdfInfo )ToPdfObject ()_egg .PdfObject {_fdgg :=_egg .MakeDict ();_fdgg .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_abadb .Title );_fdgg .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_abadb .Author );_fdgg .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_abadb .Subject );
_fdgg .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_abadb .Keywords );_fdgg .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_abadb .Creator );_fdgg .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_abadb .Producer );
_fdgg .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_abadb .Trapped );if _abadb .CreationDate !=nil {_fdgg .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_abadb .CreationDate .ToPdfObject ());};if _abadb .ModifiedDate !=nil {_fdgg .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_abadb .ModifiedDate .ToPdfObject ());
};for _ ,_eefd :=range _abadb ._eggg .Keys (){_fdgg .SetIfNotNil (_eefd ,_abadb ._eggg .Get (_eefd ));};return _fdgg ;};
// DetermineColorspaceNameFromPdfObject determines PDF colorspace from a PdfObject. Returns the colorspace name and
// an error on failure. If the colorspace was not found, will return an empty string.
func DetermineColorspaceNameFromPdfObject (obj _egg .PdfObject )(_egg .PdfObjectName ,error ){var _fbccg *_egg .PdfObjectName ;var _fcca *_egg .PdfObjectArray ;if _baac ,_debgg :=obj .(*_egg .PdfIndirectObject );_debgg {if _cgedb ,_gggea :=_baac .PdfObject .(*_egg .PdfObjectArray );
_gggea {_fcca =_cgedb ;}else if _dgbd ,_dbfd :=_baac .PdfObject .(*_egg .PdfObjectName );_dbfd {_fbccg =_dgbd ;};}else if _bbae ,_cddcg :=obj .(*_egg .PdfObjectArray );_cddcg {_fcca =_bbae ;}else if _ebga ,_aacf :=obj .(*_egg .PdfObjectName );_aacf {_fbccg =_ebga ;
};if _fbccg !=nil {switch *_fbccg {case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079","\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B","\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":return *_fbccg ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_fbccg ,nil ;
};};if _fcca !=nil &&_fcca .Len ()> 0{if _fgbd ,_fcadf :=_fcca .Get (0).(*_egg .PdfObjectName );_fcadf {switch *_fgbd {case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079","\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B","\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _fcca .Len ()==1{return *_fgbd ,nil ;
};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_fgbd ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_fgbd ,nil ;
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_fgbd ,nil ;};};};return "",nil ;};func _aefg (_deee *_egg .PdfObjectDictionary )(*PdfFieldText ,error ){_eagbd :=&PdfFieldText {};_eagbd .DA ,_ =_egg .GetString (_deee .Get ("\u0044\u0041"));
_eagbd .Q ,_ =_egg .GetInt (_deee .Get ("\u0051"));_eagbd .DS ,_ =_egg .GetString (_deee .Get ("\u0044\u0053"));_eagbd .RV =_deee .Get ("\u0052\u0056");_eagbd .MaxLen ,_ =_egg .GetInt (_deee .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _eagbd ,nil ;
};
// NewPdfColorspaceSpecialSeparation returns a new separation color.
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_gefb :=&PdfColorspaceSpecialSeparation {};return _gefb ;};
// DecodeArray returns the component range values for the DeviceN colorspace.
// [0 1.0 0 1.0 ...] for each color component.
func (_fcfa *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _eeaf []float64 ;for _gdab :=0;_gdab < _fcfa .GetNumComponents ();_gdab ++{_eeaf =append (_eeaf ,0.0,1.0);};return _eeaf ;};
// SignatureHandler interface defines the common functionality for PDF signature handlers, which
// need to be capable of validating digital signatures and signing PDF documents.
type SignatureHandler interface{
// IsApplicable checks if a given signature dictionary `sig` is applicable for the signature handler.
// For example a signature of type `adbe.pkcs7.detached` might not fit for a rsa.sha1 handler.
IsApplicable (_gcbbb *PdfSignature )bool ;
// Validate validates a PDF signature against a given digest (hash) such as that determined
// for an input file. Returns validation results.
Validate (_dcgag *PdfSignature ,_cdgage Hasher )(SignatureValidationResult ,error );
// InitSignature prepares the signature dictionary for signing. This involves setting all
// necessary fields, and also allocating sufficient space to the Contents so that the
// finalized signature can be inserted once the hash is calculated.
InitSignature (_ddgfg *PdfSignature )error ;
// NewDigest creates a new digest/hasher based on the signature dictionary and handler.
NewDigest (_befbe *PdfSignature )(Hasher ,error );
// Sign receives the hash `digest` (for example hash of an input file), and signs based
// on the signature dictionary `sig` and applies the signature data to the signature
// dictionary Contents field.
Sign (_cgfbe *PdfSignature ,_cdfag Hasher )error ;};
// CharcodeBytesToUnicode converts PDF character codes `data` to a Go unicode string.
//
// 9.10 Extraction of Text Content (page 292)
// The process of finding glyph descriptions in OpenType fonts by a conforming reader shall be the following:
// • For Type 1 fonts using “CFF” tables, the process shall be as described in 9.6.6.2, "Encodings
// for Type 1 Fonts".
// • For TrueType fonts using “glyf” tables, the process shall be as described in 9.6.6.4,
// "Encodings for TrueType Fonts". Since this process sometimes produces ambiguous results,
// conforming writers, instead of using a simple font, shall use a Type 0 font with an Identity-H
// encoding and use the glyph indices as character codes, as described following Table 118.
func (_gdeg *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_cfag ,_ ,_aaggef :=_gdeg .CharcodesToUnicodeWithStats (_gdeg .BytesToCharcodes (data ));_fegd :=_ef .ExpandLigatures (_cfag );return _fegd ,_ab .RuneCountInString (_fegd ),_aaggef ;
};func (_ddgce *PdfWriter )mapObjectStreams (_gcdcc bool )(map[_egg .PdfObject ]bool ,bool ){_aadbg :=make (map[_egg .PdfObject ]bool );for _ ,_ebaeg :=range _ddgce ._bbead {if _eggcb ,_addcd :=_ebaeg .(*_egg .PdfObjectStreams );_addcd {_gcdcc =true ;for _ ,_bcaea :=range _eggcb .Elements (){_aadbg [_bcaea ]=true ;
if _cfce ,_eccgf :=_bcaea .(*_egg .PdfIndirectObject );_eccgf {_aadbg [_cfce .PdfObject ]=true ;};};};};return _aadbg ,_gcdcc ;};func (_gfga *DSS )generateHashMap (_adfc []*_egg .PdfObjectStream )(map[string ]*_egg .PdfObjectStream ,error ){_gfdce :=map[string ]*_egg .PdfObjectStream {};
for _ ,_edgf :=range _adfc {_ced ,_bdgf :=_egg .DecodeStream (_edgf );if _bdgf !=nil {return nil ,_bdgf ;};_daad ,_bdgf :=_eefdc (_ced );if _bdgf !=nil {return nil ,_bdgf ;};_gfdce [string (_daad )]=_edgf ;};return _gfdce ,nil ;};
// NewPdfAnnotationWatermark returns a new watermark annotation.
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_aee :=NewPdfAnnotation ();_eda :=&PdfAnnotationWatermark {};_eda .PdfAnnotation =_aee ;_aee .SetContext (_eda );return _eda ;};func (_ecbce *PdfWriter )writeOutlines ()error {if _ecbce ._dcedg ==nil {return nil ;
};_bag .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_ecbce ._dcedg );_gcadg :=_ecbce ._dcedg .ToPdfObject ();_bag .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_gcadg ,_gcadg ,_gcadg );
_ecbce ._acea .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_gcadg );_fgeee :=_ecbce .addObjects (_gcadg );if _fgeee !=nil {return _fgeee ;};return nil ;};
// ImageHandler interface implements common image loading and processing tasks.
// Implementing as an interface allows for the possibility to use non-standard libraries for faster
// loading and processing of images.
type ImageHandler interface{
// Read any image type and load into a new Image object.
Read (_afeaa _dag .Reader )(*Image ,error );
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
NewImageFromGoImage (_gggaf _cd .Image )(*Image ,error );
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
NewGrayImageFromGoImage (_eeffc _cd .Image )(*Image ,error );
// Compress an image.
Compress (_ecbbd *Image ,_cddgg int64 )(*Image ,error );};
// XObjectImage (Table 89 in 8.9.5.1).
// Implements PdfModel interface.
type XObjectImage struct{
//ColorSpace PdfObject
Width *int64 ;Height *int64 ;ColorSpace PdfColorspace ;BitsPerComponent *int64 ;Filter _egg .StreamEncoder ;Intent _egg .PdfObject ;ImageMask _egg .PdfObject ;Mask _egg .PdfObject ;Matte _egg .PdfObject ;Decode _egg .PdfObject ;Interpolate _egg .PdfObject ;
Alternatives _egg .PdfObject ;SMask _egg .PdfObject ;SMaskInData _egg .PdfObject ;Name _egg .PdfObject ;StructParent _egg .PdfObject ;ID _egg .PdfObject ;OPI _egg .PdfObject ;Metadata _egg .PdfObject ;OC _egg .PdfObject ;Stream []byte ;_gefbe *_egg .PdfObjectStream ;
};
// AnnotFilterFunc represents a PDF annotation filtering function. If the function
// returns true, the annotation is kept, otherwise it is discarded.
type AnnotFilterFunc func (*PdfAnnotation )bool ;
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
// AddExtension adds the specified extension to the Extensions dictionary.
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
func (_aafee *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_afddb ,_cagbd :=_egg .GetDict (_aafee ._acea .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_cagbd {_afddb =_egg .MakeDict ();_aafee ._acea .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_afddb );
};_daaae ,_cagbd :=_egg .GetDict (_afddb .Get (_egg .PdfObjectName (extName )));if !_cagbd {_daaae =_egg .MakeDict ();_afddb .Set (_egg .PdfObjectName (extName ),_daaae );};if _acdab ,_ :=_egg .GetNameVal (_daaae .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));
_acdab !=baseVersion {_daaae .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_egg .MakeName (baseVersion ));};if _egega ,_ :=_egg .GetIntVal (_daaae .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));
_egega !=extLevel {_daaae .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_egg .MakeInteger (int64 (extLevel )));};};func _deec (_feeg _egg .PdfObject )(*PdfColorspaceCalGray ,error ){_cggf :=NewPdfColorspaceCalGray ();
if _edgg ,_befa :=_feeg .(*_egg .PdfIndirectObject );_befa {_cggf ._agdab =_edgg ;};_feeg =_egg .TraceToDirectObject (_feeg );_ecfa ,_agfb :=_feeg .(*_egg .PdfObjectArray );if !_agfb {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};if _ecfa .Len ()!=2{return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0061\u006cG\u0072\u0061\u0079\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_feeg =_egg .TraceToDirectObject (_ecfa .Get (0));_bacb ,_agfb :=_feeg .(*_egg .PdfObjectName );
if !_agfb {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061\u0079\u0020\u006e\u0061m\u0065\u0020\u006e\u006f\u0074\u0020\u0061 \u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};if *_bacb !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_f .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");
};_feeg =_egg .TraceToDirectObject (_ecfa .Get (1));_beab ,_agfb :=_feeg .(*_egg .PdfObjectDictionary );if !_agfb {return nil ,_f .Errorf ("\u0043\u0061lG\u0072\u0061\u0079 \u0064\u0069\u0063\u0074 no\u0074 a\u0020\u0044\u0069\u0063\u0074\u0069\u006fna\u0072\u0079\u0020\u006f\u0062\u006a\u0065c\u0074");
};_feeg =_beab .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_feeg =_egg .TraceToDirectObject (_feeg );_aeaac ,_agfb :=_feeg .(*_egg .PdfObjectArray );if !_agfb {return nil ,_f .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020W\u0068\u0069\u0074e\u0050o\u0069\u006e\u0074");
};if _aeaac .Len ()!=3{return nil ,_f .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069t\u0065\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_fdfgg ,_fead :=_aeaac .GetAsFloat64Slice ();
if _fead !=nil {return nil ,_fead ;};_cggf .WhitePoint =_fdfgg ;_feeg =_beab .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _feeg !=nil {_feeg =_egg .TraceToDirectObject (_feeg );_gddcbd ,_bbgb :=_feeg .(*_egg .PdfObjectArray );
if !_bbgb {return nil ,_f .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020B\u006c\u0061\u0063k\u0050o\u0069\u006e\u0074");};if _gddcbd .Len ()!=3{return nil ,_f .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061c\u006b\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");
};_dafg ,_eggb :=_gddcbd .GetAsFloat64Slice ();if _eggb !=nil {return nil ,_eggb ;};_cggf .BlackPoint =_dafg ;};_feeg =_beab .Get ("\u0047\u0061\u006dm\u0061");if _feeg !=nil {_feeg =_egg .TraceToDirectObject (_feeg );_cbfd ,_eeced :=_egg .GetNumberAsFloat (_feeg );
if _eeced !=nil {return nil ,_f .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");};_cggf .Gamma =_cbfd ;};return _cggf ,nil ;};
// Val returns the value of the color.
func (_ecff *PdfColorCalGray )Val ()float64 {return float64 (*_ecff )};
// NewXObjectImageFromStream builds the image xobject from a stream object.
// An image dictionary is the dictionary portion of a stream object representing an image XObject.
func NewXObjectImageFromStream (stream *_egg .PdfObjectStream )(*XObjectImage ,error ){_fbdfc :=&XObjectImage {};_fbdfc ._gefbe =stream ;_dedae :=*(stream .PdfObjectDictionary );_ebacc ,_gddda :=_egg .NewEncoderFromStream (stream );if _gddda !=nil {return nil ,_gddda ;
};_fbdfc .Filter =_ebacc ;if _bgdcd :=_egg .TraceToDirectObject (_dedae .Get ("\u0057\u0069\u0064t\u0068"));_bgdcd !=nil {_adbfac ,_bggb :=_bgdcd .(*_egg .PdfObjectInteger );if !_bggb {return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0069\u006d\u0061g\u0065\u0020\u0077\u0069\u0064\u0074\u0068\u0020\u006f\u0062j\u0065\u0063\u0074");
};_abfge :=int64 (*_adbfac );_fbdfc .Width =&_abfge ;}else {return nil ,_gd .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _egdgb :=_egg .TraceToDirectObject (_dedae .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));
_egdgb !=nil {_cdacd ,_aded :=_egdgb .(*_egg .PdfObjectInteger );if !_aded {return nil ,_gd .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_dbdgb :=int64 (*_cdacd );
_fbdfc .Height =&_dbdgb ;}else {return nil ,_gd .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _ddgfd :=_egg .TraceToDirectObject (_dedae .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));
_ddgfd !=nil {_bbfad ,_dfagb :=NewPdfColorspaceFromPdfObject (_ddgfd );if _dfagb !=nil {return nil ,_dfagb ;};_fbdfc .ColorSpace =_bbfad ;}else {_bag .Log .Debug ("\u0058O\u0062\u006a\u0065c\u0074\u0020\u0049m\u0061ge\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u002d\u0020\u0061\u0073\u0073\u0075\u006d\u0069\u006e\u0067 1\u0020c\u006f\u006c\u006f\u0072\u0020\u0063o\u006d\u0070\u006f\u006e\u0065n\u0074\u0020\u002d\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0047r\u0061\u0079");
_fbdfc .ColorSpace =NewPdfColorspaceDeviceGray ();};if _dcaca :=_egg .TraceToDirectObject (_dedae .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_dcaca !=nil {_ddafb ,_accac :=_dcaca .(*_egg .PdfObjectInteger );
if !_accac {return nil ,_gd .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_cbadd :=int64 (*_ddafb );_fbdfc .BitsPerComponent =&_cbadd ;};_fbdfc .Intent =_dedae .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");
_fbdfc .ImageMask =_dedae .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_fbdfc .Mask =_dedae .Get ("\u004d\u0061\u0073\u006b");_fbdfc .Decode =_dedae .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_fbdfc .Interpolate =_dedae .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");
_fbdfc .Alternatives =_dedae .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_fbdfc .SMask =_dedae .Get ("\u0053\u004d\u0061s\u006b");_fbdfc .SMaskInData =_dedae .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");
_fbdfc .Matte =_dedae .Get ("\u004d\u0061\u0074t\u0065");_fbdfc .Name =_dedae .Get ("\u004e\u0061\u006d\u0065");_fbdfc .StructParent =_dedae .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_fbdfc .ID =_dedae .Get ("\u0049\u0044");
_fbdfc .OPI =_dedae .Get ("\u004f\u0050\u0049");_fbdfc .Metadata =_dedae .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_fbdfc .OC =_dedae .Get ("\u004f\u0043");_fbdfc .Stream =stream .Stream ;return _fbdfc ,nil ;};
// Write writes out the PDF.
func (_cdefg *PdfWriter )Write (writer _dag .Writer )error {_bag .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_ecedd :=_cdefg .checkLicense ();if _ecedd !=nil {return _ecedd ;};if _ecedd =_cdefg .writeOutlines ();_ecedd !=nil {return _ecedd ;};
if _ecedd =_cdefg .writeAcroFormFields ();_ecedd !=nil {return _ecedd ;};_cdefg .checkPendingObjects ();if _ecedd =_cdefg .writeOutputIntents ();_ecedd !=nil {return _ecedd ;};_cdefg .setCatalogVersion ();_cdefg .copyObjects ();if _ecedd =_cdefg .optimize ();
_ecedd !=nil {return _ecedd ;};if _ecedd =_cdefg .optimizeDocument ();_ecedd !=nil {return _ecedd ;};var _fcebc _bb .Hash ;if _cdefg ._aafeg {_fcebc =_ea .New ();writer =_dag .MultiWriter (_fcebc ,writer );};_cdefg .setWriter (writer );_fbdcc :=_cdefg .checkCrossReferenceStream ();
_gfcef ,_fbdcc :=_cdefg .mapObjectStreams (_fbdcc );_cdefg .adjustXRefAffectedVersion (_fbdcc );_cdefg .writeDocumentVersion ();_cdefg .updateObjectNumbers ();_cdefg .writeObjects ();if _ecedd =_cdefg .writeObjectsInStreams (_gfcef );_ecedd !=nil {return _ecedd ;
};_dagdd :=_cdefg ._cdaab ;var _bbfdc int ;for _aebafc :=range _cdefg ._ccceb {if _aebafc > _bbfdc {_bbfdc =_aebafc ;};};if _cdefg ._aafeg {if _ecedd =_cdefg .setHashIDs (_fcebc );_ecedd !=nil {return _ecedd ;};};if _fbdcc {if _ecedd =_cdefg .writeXRefStreams (_bbfdc ,_dagdd );
_ecedd !=nil {return _ecedd ;};}else {_cdefg .writeTrailer (_bbfdc );};_cdefg .makeOffSetReference (_dagdd );if _ecedd =_cdefg .flushWriter ();_ecedd !=nil {return _ecedd ;};return nil ;};
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
type PdfFilespec struct{Type _egg .PdfObject ;FS _egg .PdfObject ;F _egg .PdfObject ;UF _egg .PdfObject ;DOS _egg .PdfObject ;Mac _egg .PdfObject ;Unix _egg .PdfObject ;ID _egg .PdfObject ;V _egg .PdfObject ;EF _egg .PdfObject ;RF _egg .PdfObject ;Desc _egg .PdfObject ;
CI _egg .PdfObject ;_fbdd _egg .PdfObject ;};
// NewPdfOutlineTree returns an initialized PdfOutline tree.
func NewPdfOutlineTree ()*PdfOutline {_afcb :=NewPdfOutline ();_afcb ._bgbfg =&_afcb ;return _afcb };
// Encoder returns the font's text encoder.
func (_abcce pdfFontType0 )Encoder ()_ef .TextEncoder {return _abcce ._bfddc };
// ToPdfObject implements interface PdfModel.
func (_eag *PdfActionHide )ToPdfObject ()_egg .PdfObject {_eag .PdfAction .ToPdfObject ();_efa :=_eag ._bf ;_gbd :=_efa .PdfObject .(*_egg .PdfObjectDictionary );_gbd .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeHide )));_gbd .SetIfNotNil ("\u0054",_eag .T );
_gbd .SetIfNotNil ("\u0048",_eag .H );return _efa ;};
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_egg .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _egg .PdfObject ;A _egg .PdfObject ;SE _egg .PdfObject ;C _egg .PdfObject ;F _egg .PdfObject ;
_gfcb *_egg .PdfIndirectObject ;};
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
func (_dcbd *pdfFontSimple )ToPdfObject ()_egg .PdfObject {if _dcbd ._efde ==nil {_dcbd ._efde =&_egg .PdfIndirectObject {};};_adab :=_dcbd .baseFields ().asPdfObjectDictionary ("");_dcbd ._efde .PdfObject =_adab ;if _dcbd .FirstChar !=nil {_adab .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_dcbd .FirstChar );
};if _dcbd .LastChar !=nil {_adab .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_dcbd .LastChar );};if _dcbd .Widths !=nil {_adab .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_dcbd .Widths );};if _dcbd .Encoding !=nil {_adab .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dcbd .Encoding );
}else if _dcbd ._cbdegf !=nil {_cdcbg :=_dcbd ._cbdegf .ToPdfObject ();if _cdcbg !=nil {_adab .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cdcbg );};};return _dcbd ._efde ;};func (_adce *DSS )addOCSPs (_dfeb [][]byte )([]*_egg .PdfObjectStream ,error ){return _adce .add (&_adce .OCSPs ,_adce ._gaaec ,_dfeb );
};func (_aae *PdfReader )newPdfActionRenditionFromDict (_bbg *_egg .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_bbg .Get ("\u0052"),AN :_bbg .Get ("\u0041\u004e"),OP :_bbg .Get ("\u004f\u0050"),JS :_bbg .Get ("\u004a\u0053")},nil ;
};
// FieldFilterFunc represents a PDF field filtering function. If the function
// returns true, the PDF field is kept, otherwise it is discarded.
type FieldFilterFunc func (*PdfField )bool ;func (_gbfdf SignatureValidationResult )String ()string {var _ccgafd _dd .Buffer ;_ccgafd .WriteString (_f .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_gbfdf .Name ));if _gbfdf .Date ._acadbc > 0{_ccgafd .WriteString (_f .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_gbfdf .Date .ToGoTime ().String ()));
}else {_ccgafd .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_gbfdf .Reason )> 0{_ccgafd .WriteString (_f .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_gbfdf .Reason ));
}else {_ccgafd .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");};if len (_gbfdf .Location )> 0{_ccgafd .WriteString (_f .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_gbfdf .Location ));
}else {_ccgafd .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_gbfdf .ContactInfo )> 0{_ccgafd .WriteString (_f .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_gbfdf .ContactInfo ));
}else {_ccgafd .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");};_ccgafd .WriteString (_f .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_gbfdf .Fields )));
if _gbfdf .IsSigned {_ccgafd .WriteString ("S\u0069\u0067\u006e\u0065\u0064\u003a \u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u0020i\u0073\u0020\u0073i\u0067n\u0065\u0064\u000a");}else {_ccgafd .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");
};if _gbfdf .IsVerified {_ccgafd .WriteString ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072e\u0020\u0076\u0061\u006c\u0069\u0064\u0061t\u0069\u006f\u006e\u003a\u0020\u0049\u0073\u0020\u0076\u0061\u006c\u0069\u0064\u000a");}else {_ccgafd .WriteString ("\u0053\u0069\u0067\u006e\u0061\u0074u\u0072\u0065\u0020\u0076\u0061\u006c\u0069\u0064\u0061\u0074\u0069\u006f\u006e:\u0020\u0049\u0073\u0020\u0069\u006e\u0076a\u006c\u0069\u0064\u000a");
};if _gbfdf .IsTrusted {_ccgafd .WriteString ("\u0054\u0072\u0075\u0073\u0074\u0065\u0064\u003a\u0020\u0043\u0065\u0072\u0074\u0069\u0066i\u0063a\u0074\u0065\u0020\u0069\u0073\u0020\u0074\u0072\u0075\u0073\u0074\u0065\u0064\u000a");}else {_ccgafd .WriteString ("\u0054\u0072\u0075s\u0074\u0065\u0064\u003a \u0055\u006e\u0074\u0072\u0075\u0073\u0074e\u0064\u0020\u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u000a");
};if !_gbfdf .GeneralizedTime .IsZero (){_ccgafd .WriteString (_f .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_gbfdf .GeneralizedTime .String ()));};if _gbfdf .DiffResults !=nil {_ccgafd .WriteString (_f .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_gbfdf .DiffResults .IsPermitted ()));
if len (_gbfdf .DiffResults .Warnings )> 0{_ccgafd .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a");for _ ,_gfggg :=range _gbfdf .DiffResults .Warnings {_ccgafd .WriteString (_f .Sprintf ("\u0009\u0025\u0073\u000a",_gfggg ));
};};if len (_gbfdf .DiffResults .Errors )> 0{_ccgafd .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a");for _ ,_aaccg :=range _gbfdf .DiffResults .Errors {_ccgafd .WriteString (_f .Sprintf ("\u0009\u0025\u0073\u000a",_aaccg ));
};};};return _ccgafd .String ();};func (_cabcc *PdfReader )newPdfActionGoTo3DViewFromDict (_fbd *_egg .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_fbd .Get ("\u0054\u0041"),V :_fbd .Get ("\u0056")},nil ;};
// PdfActionJavaScript represents a javaScript action.
type PdfActionJavaScript struct{*PdfAction ;JS _egg .PdfObject ;};var _debadf =false ;
// PdfAnnotationInk represents Ink annotations.
// (Section 12.5.6.13).
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _egg .PdfObject ;BS _egg .PdfObject ;};func (_cebgb PdfOutputIntentType )String ()string {switch _cebgb {case PdfOutputIntentTypeA1 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";
case PdfOutputIntentTypeA2 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412";case PdfOutputIntentTypeA3 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413";case PdfOutputIntentTypeA4 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414";case PdfOutputIntentTypeX :return "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058";
default:return "\u0055N\u0044\u0045\u0046\u0049\u004e\u0045D";};};
// ToPdfObject returns a PDF object representation of the outline destination.
func (_feed OutlineDest )ToPdfObject ()_egg .PdfObject {if (_feed .PageObj ==nil &&_feed .Page < 0)||_feed .Mode ==""{return _egg .MakeNull ();};_fbfedc :=_egg .MakeArray ();if _feed .PageObj !=nil {_fbfedc .Append (_feed .PageObj );}else {_fbfedc .Append (_egg .MakeInteger (_feed .Page ));
};_fbfedc .Append (_egg .MakeName (_feed .Mode ));switch _feed .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_fbfedc .Append (_egg .MakeFloat (_feed .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_fbfedc .Append (_egg .MakeFloat (_feed .X ));
case "\u0058\u0059\u005a":_fbfedc .Append (_egg .MakeFloat (_feed .X ));_fbfedc .Append (_egg .MakeFloat (_feed .Y ));_fbfedc .Append (_egg .MakeFloat (_feed .Zoom ));default:_fbfedc .Set (1,_egg .MakeName ("\u0046\u0069\u0074"));};return _fbfedc ;};
// AppendContentBytes creates a PDF stream from `cs` and appends it to the
// array of streams specified by the pages's Contents entry.
// If `wrapContents` is true, the content stream of the page is wrapped using
// a `q/Q` operator pair, so that its state does not affect the appended
// content stream.
func (_dgfb *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_fdgff :=_dgfb .GetContentStreamObjs ();wrapContents =wrapContents &&len (_fdgff )> 0;_gdacf :=_egg .NewFlateEncoder ();_degaa :=_egg .MakeArray ();if wrapContents {_gdgae ,_gfbccb :=_egg .MakeStream ([]byte ("\u0071\u000a"),_gdacf );
if _gfbccb !=nil {return _gfbccb ;};_degaa .Append (_gdgae );};_degaa .Append (_fdgff ...);if wrapContents {_ffbbg ,_eceda :=_egg .MakeStream ([]byte ("\u000a\u0051\u000a"),_gdacf );if _eceda !=nil {return _eceda ;};_degaa .Append (_ffbbg );};_dcac ,_cacaf :=_egg .MakeStream (cs ,_gdacf );
if _cacaf !=nil {return _cacaf ;};_degaa .Append (_dcac );_dgfb .Contents =_degaa ;return nil ;};func (_gffad *PdfWriter )flushWriter ()error {if _gffad ._gdbeb ==nil {_gffad ._gdbeb =_gffad ._beegad .Flush ();};return _gffad ._gdbeb ;};
// WriteString outputs the object as it is to be written to file.
func (_dagbcc *PdfTransformParamsDocMDP )WriteString ()string {return _dagbcc .ToPdfObject ().WriteString ();};
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
func (_dgdca *PdfFontDescriptor )ToPdfObject ()_egg .PdfObject {_eegb :=_egg .MakeDict ();if _dgdca ._faeb ==nil {_dgdca ._faeb =&_egg .PdfIndirectObject {};};_dgdca ._faeb .PdfObject =_eegb ;_eegb .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));
if _dgdca .FontName !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_dgdca .FontName );};if _dgdca .FontFamily !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_dgdca .FontFamily );};if _dgdca .FontStretch !=nil {_eegb .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_dgdca .FontStretch );
};if _dgdca .FontWeight !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_dgdca .FontWeight );};if _dgdca .Flags !=nil {_eegb .Set ("\u0046\u006c\u0061g\u0073",_dgdca .Flags );};if _dgdca .FontBBox !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_dgdca .FontBBox );
};if _dgdca .ItalicAngle !=nil {_eegb .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_dgdca .ItalicAngle );};if _dgdca .Ascent !=nil {_eegb .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_dgdca .Ascent );};if _dgdca .Descent !=nil {_eegb .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_dgdca .Descent );
};if _dgdca .Leading !=nil {_eegb .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_dgdca .Leading );};if _dgdca .CapHeight !=nil {_eegb .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_dgdca .CapHeight );};if _dgdca .XHeight !=nil {_eegb .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_dgdca .XHeight );
};if _dgdca .StemV !=nil {_eegb .Set ("\u0053\u0074\u0065m\u0056",_dgdca .StemV );};if _dgdca .StemH !=nil {_eegb .Set ("\u0053\u0074\u0065m\u0048",_dgdca .StemH );};if _dgdca .AvgWidth !=nil {_eegb .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_dgdca .AvgWidth );
};if _dgdca .MaxWidth !=nil {_eegb .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_dgdca .MaxWidth );};if _dgdca .MissingWidth !=nil {_eegb .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_dgdca .MissingWidth );};if _dgdca .FontFile !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_dgdca .FontFile );
};if _dgdca .FontFile2 !=nil {_eegb .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_dgdca .FontFile2 );};if _dgdca .FontFile3 !=nil {_eegb .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_dgdca .FontFile3 );};if _dgdca .CharSet !=nil {_eegb .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_dgdca .CharSet );
};if _dgdca .Style !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_dgdca .FontName );};if _dgdca .Lang !=nil {_eegb .Set ("\u004c\u0061\u006e\u0067",_dgdca .Lang );};if _dgdca .FD !=nil {_eegb .Set ("\u0046\u0044",_dgdca .FD );};
if _dgdca .CIDSet !=nil {_eegb .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_dgdca .CIDSet );};return _dgdca ._faeb ;};func (_gfdc *PdfReader )newPdfActionResetFormFromDict (_cbg *_egg .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_cbg .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_cbg .Get ("\u0046\u006c\u0061g\u0073")},nil ;
};
// NewPdfAnnotationLine returns a new line annotation.
func NewPdfAnnotationLine ()*PdfAnnotationLine {_eae :=NewPdfAnnotation ();_agc :=&PdfAnnotationLine {};_agc .PdfAnnotation =_eae ;_agc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eae .SetContext (_agc );return _agc ;};
// NewPdfReader returns a new PdfReader for an input io.ReadSeeker interface. Can be used to read PDF from
// memory or file. Immediately loads and traverses the PDF structure including pages and page contents (if
// not encrypted). Loads entire document structure into memory.
// Alternatively a lazy-loading reader can be created with NewPdfReaderLazy which loads only references,
// and references are loaded from disk into memory on an as-needed basis.
func NewPdfReader (rs _dag .ReadSeeker )(*PdfReader ,error ){const _ffea ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _ffee (rs ,&ReaderOpts {},false ,_ffea );};
// Mask returns the uin32 bitmask for the specific flag.
func (_afdc FieldFlag )Mask ()uint32 {return uint32 (_afdc )};
// GetObjectNums returns the object numbers of the PDF objects in the file
// Numbered objects are either indirect objects or stream objects.
// e.g. objNums := pdfReader.GetObjectNums()
// The underlying objects can then be accessed with
// pdfReader.GetIndirectObjectByNumber(objNums[0]) for the first available object.
func (_gfdff *PdfReader )GetObjectNums ()[]int {return _gfdff ._dafgab .GetObjectNums ()};
// PdfShadingType7 is a Tensor-product patch mesh.
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_egg .PdfObjectInteger ;BitsPerComponent *_egg .PdfObjectInteger ;BitsPerFlag *_egg .PdfObjectInteger ;Decode *_egg .PdfObjectArray ;Function []PdfFunction ;};
// NewPdfReaderLazy creates a new PdfReader for `rs` in lazy-loading mode. The difference
// from NewPdfReader is that in lazy-loading mode, objects are only loaded into memory when needed
// rather than entire structure being loaded into memory on reader creation.
// Note that it may make sense to use the lazy-load reader when processing only parts of files,
// rather than loading entire file into memory. Example: splitting a few pages from a large PDF file.
func NewPdfReaderLazy (rs _dag .ReadSeeker )(*PdfReader ,error ){const _dceaa ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _ffee (rs ,&ReaderOpts {LazyLoad :true },false ,_dceaa );
};
// ToPdfObject returns the PDF representation of the colorspace.
func (_dbeba *PdfColorspaceSpecialSeparation )ToPdfObject ()_egg .PdfObject {_fdefa :=_egg .MakeArray (_egg .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_fdefa .Append (_dbeba .ColorantName );_fdefa .Append (_dbeba .AlternateSpace .ToPdfObject ());
_fdefa .Append (_dbeba .TintTransform .ToPdfObject ());if _dbeba ._eedg !=nil {_dbeba ._eedg .PdfObject =_fdefa ;return _dbeba ._eedg ;};return _fdefa ;};
// EnableChain adds the specified certificate chain and validation data (OCSP
// and CRL information) for it to the global scope of the document DSS. The
// added data is used for validating any of the signatures present in the
// document. The LTV client attempts to build the certificate chain up to a
// trusted root by downloading any missing certificates.
func (_efefg *LTV )EnableChain (chain []*_dg .Certificate )error {return _efefg .enable (nil ,chain ,"")};
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
func (_geefae *Image )ColorAt (x ,y int )(_ba .Color ,error ){_feffg :=_eg .BytesPerLine (int (_geefae .Width ),int (_geefae .BitsPerComponent ),_geefae .ColorComponents );switch _geefae .ColorComponents {case 1:return _eg .ColorAtGrayscale (x ,y ,int (_geefae .BitsPerComponent ),_feffg ,_geefae .Data ,_geefae ._abfae );
case 3:return _eg .ColorAtNRGBA (x ,y ,int (_geefae .Width ),_feffg ,int (_geefae .BitsPerComponent ),_geefae .Data ,_geefae ._fgggb ,_geefae ._abfae );case 4:return _eg .ColorAtCMYK (x ,y ,int (_geefae .Width ),_geefae .Data ,_geefae ._abfae );};_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064 i\u006da\u0067\u0065\u002e\u0020\u0025\u0064\u0020\u0063\u006f\u006d\u0070\u006fn\u0065\u006e\u0074\u0073\u002c\u0020\u0025\u0064\u0020\u0062\u0069\u0074\u0073\u0020\u0070\u0065\u0072 \u0063\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_geefae .ColorComponents ,_geefae .BitsPerComponent );
return nil ,_gd .New ("\u0075\u006e\u0073\u0075p\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0069\u006d\u0061g\u0065 \u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065");};
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
func (_bfbea *PdfPage )ToPdfObject ()_egg .PdfObject {_gabff :=_bfbea ._dfee ;_bfbea .GetPageDict ();return _gabff ;};
// NewPdfWriter initializes a new PdfWriter.
func NewPdfWriter ()PdfWriter {_cefd :=PdfWriter {};_cefd ._bacec =map[_egg .PdfObject ]struct{}{};_cefd ._bbead =[]_egg .PdfObject {};_cefd ._afcd =map[_egg .PdfObject ][]*_egg .PdfObjectDictionary {};_cefd ._adcd =map[_egg .PdfObject ]struct{}{};_cefd ._dacce .Major =1;
_cefd ._dacce .Minor =3;_gaecc :=_egg .MakeDict ();_cdegb :=[]struct{_eecba _egg .PdfObjectName ;_dgffb string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_aagbg ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_ggeed ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_fadfa ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_cbcgg ()},{"\u0054\u0069\u0074l\u0065",_babdd ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_gecfbd ()}};
for _ ,_agfgd :=range _cdegb {if _agfgd ._dgffb !=""{_gaecc .Set (_agfgd ._eecba ,_egg .MakeString (_agfgd ._dgffb ));};};if _dbca :=_bdcd ();!_dbca .IsZero (){if _bafac ,_gfdda :=NewPdfDateFromTime (_dbca );_gfdda ==nil {_gaecc .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_bafac .ToPdfObject ());
};};if _cceg :=_ddgfga ();!_cceg .IsZero (){if _efbg ,_baffe :=NewPdfDateFromTime (_cceg );_baffe ==nil {_gaecc .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_efbg .ToPdfObject ());};};_aaee :=_egg .PdfIndirectObject {};_aaee .PdfObject =_gaecc ;_cefd ._efage =&_aaee ;
_cefd .addObject (&_aaee );_acgad :=_egg .PdfIndirectObject {};_bccdc :=_egg .MakeDict ();_bccdc .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_acgad .PdfObject =_bccdc ;_cefd ._egad =&_acgad ;_cefd .addObject (_cefd ._egad );
_cdcfc ,_adgfa :=_gfgfd ("\u0077");if _adgfa !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adgfa );};_cefd ._fbgdb =_cdcfc ;_gggc :=_egg .PdfIndirectObject {};_efged :=_egg .MakeDict ();_efged .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0050\u0061\u0067e\u0073"));
_cefb :=_egg .PdfObjectArray {};_efged .Set ("\u004b\u0069\u0064\u0073",&_cefb );_efged .Set ("\u0043\u006f\u0075n\u0074",_egg .MakeInteger (0));_gggc .PdfObject =_efged ;_cefd ._gfbe =&_gggc ;_cefd ._fcdab =map[_egg .PdfObject ]struct{}{};_cefd .addObject (_cefd ._gfbe );
_bccdc .Set ("\u0050\u0061\u0067e\u0073",&_gggc );_cefd ._acea =_bccdc ;_bag .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_acgad );return _cefd ;};
// String returns a string that describes `font`.
func (_fafg *PdfFont )String ()string {_gcbf :="";if _fafg ._edde .Encoder ()!=nil {_gcbf =_fafg ._edde .Encoder ().String ();};return _f .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_fafg ._edde ,_fafg .baseFields ().coreString (),_gcbf );
};func (_dabcfd *PdfWriter )setHashIDs (_feba _bb .Hash )error {_ggefe :=_feba .Sum (nil );if _dabcfd ._caddc ==""{_dabcfd ._caddc =_fg .EncodeToString (_ggefe [:8]);};_dabcfd .setDocumentIDs (_dabcfd ._caddc ,_fg .EncodeToString (_ggefe [8:]));return nil ;
};
// XObjectType represents the type of an XObject.
type XObjectType int ;func _ffc (_eddb _egg .PdfObject )(*PdfColorspaceCalRGB ,error ){_dggc :=NewPdfColorspaceCalRGB ();if _dagc ,_aagbc :=_eddb .(*_egg .PdfIndirectObject );_aagbc {_dggc ._fcgc =_dagc ;};_eddb =_egg .TraceToDirectObject (_eddb );_beag ,_ebagb :=_eddb .(*_egg .PdfObjectArray );
if !_ebagb {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _beag .Len ()!=2{return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
};_eddb =_egg .TraceToDirectObject (_beag .Get (0));_gdea ,_ebagb :=_eddb .(*_egg .PdfObjectName );if !_ebagb {return nil ,_f .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");
};if *_gdea !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_f .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_eddb =_egg .TraceToDirectObject (_beag .Get (1));
_eaaca ,_ebagb :=_eddb .(*_egg .PdfObjectDictionary );if !_ebagb {return nil ,_f .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");
};_eddb =_eaaca .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_eddb =_egg .TraceToDirectObject (_eddb );_aafb ,_ebagb :=_eddb .(*_egg .PdfObjectArray );if !_ebagb {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050o\u0069\u006e\u0074");
};if _aafb .Len ()!=3{return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0057h\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");};_febg ,_dbgf :=_aafb .GetAsFloat64Slice ();
if _dbgf !=nil {return nil ,_dbgf ;};_dggc .WhitePoint =_febg ;_eddb =_eaaca .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _eddb !=nil {_eddb =_egg .TraceToDirectObject (_eddb );_dadfb ,_gbda :=_eddb .(*_egg .PdfObjectArray );
if !_gbda {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050o\u0069\u006e\u0074");};if _dadfb .Len ()!=3{return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0042l\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");
};_gdbab ,_deac :=_dadfb .GetAsFloat64Slice ();if _deac !=nil {return nil ,_deac ;};_dggc .BlackPoint =_gdbab ;};_eddb =_eaaca .Get ("\u0047\u0061\u006dm\u0061");if _eddb !=nil {_eddb =_egg .TraceToDirectObject (_eddb );_dffegd ,_bcfd :=_eddb .(*_egg .PdfObjectArray );
if !_bcfd {return nil ,_f .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _dffegd .Len ()!=3{return nil ,_f .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");
};_cffdd ,_bgage :=_dffegd .GetAsFloat64Slice ();if _bgage !=nil {return nil ,_bgage ;};_dggc .Gamma =_cffdd ;};_eddb =_eaaca .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _eddb !=nil {_eddb =_egg .TraceToDirectObject (_eddb );_ggad ,_gacg :=_eddb .(*_egg .PdfObjectArray );
if !_gacg {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _ggad .Len ()!=9{_bag .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_ggad .String ());
return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052G\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u004da\u0074\u0072\u0069\u0078\u0020\u0061\u0072r\u0061\u0079");};_bcac ,_beaga :=_ggad .GetAsFloat64Slice ();if _beaga !=nil {return nil ,_beaga ;
};_dggc .Matrix =_bcac ;};return _dggc ,nil ;};
// PdfColorspace interface defines the common methods of a PDF colorspace.
// The colorspace defines the data storage format for each color and color representation.
//
// Device based colorspace, specified by name
// - /DeviceGray
// - /DeviceRGB
// - /DeviceCMYK
//
// CIE based colorspace specified by [name, dictionary]
// - [/CalGray dict]
// - [/CalRGB dict]
// - [/Lab dict]
// - [/ICCBased dict]
//
// Special colorspaces
// - /Pattern
// - /Indexed
// - /Separation
// - /DeviceN
//
// Work is in progress to support all colorspaces. At the moment ICCBased color spaces fall back to the alternate
// colorspace which works OK in most cases. For full color support, will need fully featured ICC support.
type PdfColorspace interface{
// String returns the PdfColorspace's name.
String ()string ;
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
ImageToRGB (Image )(Image ,error );
// ColorToRGB converts a single color in a given PdfColorspace to an RGB color.
ColorToRGB (_bafe PdfColor )(PdfColor ,error );
// GetNumComponents returns the number of components in the PdfColorspace.
GetNumComponents ()int ;
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
ToPdfObject ()_egg .PdfObject ;
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
// PdfObject represents a numeric value.
ColorFromPdfObjects (_fgad []_egg .PdfObject )(PdfColor ,error );
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
ColorFromFloats (_gbae []float64 )(PdfColor ,error );
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
DecodeArray ()[]float64 ;};func (_gffdf *PdfWriter )checkLicense ()error {_dbag :=_ace .GetLicenseKey ();if (_dbag ==nil ||!_dbag .IsLicensed ())&&!_debadf {_f .Printf ("\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064\u0020c\u006f\u0070\u0079\u0020\u006f\u0066\u0020\u0055\u006e\u0069P\u0044\u0046\u000a");
_f .Println ("-\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u0066\u0072e\u0065\u0020\u0074\u0072\u0069\u0061\u006c l\u0069\u0063\u0065\u006es\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070s:\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");
return _gd .New ("\u0075\u006e\u0069\u0070d\u0066\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020c\u006fd\u0065\u0020\u0072\u0065\u0071\u0075\u0069r\u0065\u0064");};return nil ;};
// ReaderOpts defines options for creating PdfReader instances.
type ReaderOpts struct{
// Password password of the PDF file encryption.
// Default: empty ("").
Password string ;
// LazyLoad set if the PDF file would be loaded using lazy-loading mode.
// Default: true.
LazyLoad bool ;
// ComplianceMode set if parsed PDF file should contain meta information for the verifiers of the compliance standards like PDF/A.
ComplianceMode bool ;};
// GetPerms returns the Permissions dictionary
func (_eacab *PdfReader )GetPerms ()*Permissions {return _eacab ._eacd };
// PdfAnnotationStrikeOut represents StrikeOut annotations.
// (Section 12.5.6.10).
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _egg .PdfObject ;};
// SetContentStream updates the content stream with specified encoding.
// If encoding is null, will use the xform.Filter object or Raw encoding if not set.
func (_egeca *XObjectForm )SetContentStream (content []byte ,encoder _egg .StreamEncoder )error {_dgegb :=content ;if encoder ==nil {if _egeca .Filter !=nil {encoder =_egeca .Filter ;}else {encoder =_egg .NewRawEncoder ();};};_eaada ,_bbfbf :=encoder .EncodeBytes (_dgegb );
if _bbfbf !=nil {return _bbfbf ;};_dgegb =_eaada ;_egeca .Stream =_dgegb ;_egeca .Filter =encoder ;return nil ;};
// NewPdfAnnotationSquare returns a new square annotation.
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_fba :=NewPdfAnnotation ();_edg :=&PdfAnnotationSquare {};_edg .PdfAnnotation =_fba ;_edg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fba .SetContext (_edg );return _edg ;};
// ToPdfObject implements interface PdfModel.
func (_ceb *PdfActionResetForm )ToPdfObject ()_egg .PdfObject {_ceb .PdfAction .ToPdfObject ();_acf :=_ceb ._bf ;_db :=_acf .PdfObject .(*_egg .PdfObjectDictionary );_db .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeResetForm )));_db .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_ceb .Fields );
_db .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_ceb .Flags );return _acf ;};func (_dbfdd *PdfWriter )hasObject (_abacc _egg .PdfObject )bool {_ ,_cdedf :=_dbfdd ._bacec [_abacc ];return _cdedf ;};func (_dadf *PdfReader )newPdfAnnotation3DFromDict (_eaa *_egg .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_aaga :=PdfAnnotation3D {};
_aaga .T3DD =_eaa .Get ("\u0033\u0044\u0044");_aaga .T3DV =_eaa .Get ("\u0033\u0044\u0056");_aaga .T3DA =_eaa .Get ("\u0033\u0044\u0041");_aaga .T3DI =_eaa .Get ("\u0033\u0044\u0049");_aaga .T3DB =_eaa .Get ("\u0033\u0044\u0042");return &_aaga ,nil ;};
// GetOutlinesFlattened returns a flattened list of tree nodes and titles.
// NOTE: for most use cases, it is recommended to use the high-level GetOutlines
// method instead, which also provides information regarding the destination
// of the outline items.
func (_adea *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _bbbcb []*PdfOutlineTreeNode ;var _dcfec []string ;var _gebbe func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_gebbe =func (_adac *PdfOutlineTreeNode ,_beegf *[]*PdfOutlineTreeNode ,_gfcab *[]string ,_degab int ){if _adac ==nil {return ;
};if _adac ._bgbfg ==nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020M\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006e\u006fd\u0065\u002e\u0063o\u006et\u0065\u0078\u0074");return ;};_efefc ,_ffdec :=_adac ._bgbfg .(*PdfOutlineItem );if _ffdec {*_beegf =append (*_beegf ,&_efefc .PdfOutlineTreeNode );
_ccdbf :=_fc .Repeat ("\u0020",_degab *2)+_efefc .Title .Decoded ();*_gfcab =append (*_gfcab ,_ccdbf );};if _adac .First !=nil {_ecfc :=_fc .Repeat ("\u0020",_degab *2)+"\u002b";*_gfcab =append (*_gfcab ,_ecfc );_gebbe (_adac .First ,_beegf ,_gfcab ,_degab +1);
};if _ffdec &&_efefc .Next !=nil {_gebbe (_efefc .Next ,_beegf ,_gfcab ,_degab );};};_gebbe (_adea ._cccbg ,&_bbbcb ,&_dcfec ,0);return _bbbcb ,_dcfec ,nil ;};
// IsCID returns true if the underlying font is CID.
func (_fddda *PdfFont )IsCID ()bool {return _fddda .baseFields ().isCIDFont ()};
// ToPdfObject implements interface PdfModel.
func (_cbbef *PdfAnnotationPolyLine )ToPdfObject ()_egg .PdfObject {_cbbef .PdfAnnotation .ToPdfObject ();_dgbcc :=_cbbef ._cef ;_gdec :=_dgbcc .PdfObject .(*_egg .PdfObjectDictionary );_cbbef .PdfAnnotationMarkup .appendToPdfDictionary (_gdec );_gdec .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));
_gdec .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_cbbef .Vertices );_gdec .SetIfNotNil ("\u004c\u0045",_cbbef .LE );_gdec .SetIfNotNil ("\u0042\u0053",_cbbef .BS );_gdec .SetIfNotNil ("\u0049\u0043",_cbbef .IC );_gdec .SetIfNotNil ("\u0042\u0045",_cbbef .BE );
_gdec .SetIfNotNil ("\u0049\u0054",_cbbef .IT );_gdec .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_cbbef .Measure );return _dgbcc ;};func (_faafd *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};func (_deffc *PdfWriter )optimize ()error {if _deffc ._cfgb ==nil {return nil ;
};var _fdbd error ;_deffc ._bbead ,_fdbd =_deffc ._cfgb .Optimize (_deffc ._bbead );if _fdbd !=nil {return _fdbd ;};_daacb :=make (map[_egg .PdfObject ]struct{},len (_deffc ._bbead ));for _ ,_fcfbb :=range _deffc ._bbead {_daacb [_fcfbb ]=struct{}{};};
_deffc ._bacec =_daacb ;return nil ;};func (_effd *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};
// NewPdfActionURI returns a new "Uri" action.
func NewPdfActionURI ()*PdfActionURI {_ee :=NewPdfAction ();_bef :=&PdfActionURI {};_bef .PdfAction =_ee ;_ee .SetContext (_bef );return _bef ;};
// PdfAnnotationPopup represents Popup annotations.
// (Section 12.5.6.14).
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _egg .PdfObject ;Open _egg .PdfObject ;};
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
func (_eabc *PdfColorspaceCalGray )ToPdfObject ()_egg .PdfObject {_cbbg :=&_egg .PdfObjectArray {};_cbbg .Append (_egg .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_fcaf :=_egg .MakeDict ();if _eabc .WhitePoint !=nil {_fcaf .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_egg .MakeArray (_egg .MakeFloat (_eabc .WhitePoint [0]),_egg .MakeFloat (_eabc .WhitePoint [1]),_egg .MakeFloat (_eabc .WhitePoint [2])));
}else {_bag .Log .Error ("\u0043\u0061\u006c\u0047\u0072\u0061\u0079\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006fi\u006e\u0074\u0020\u0028\u0052e\u0071\u0075i\u0072\u0065\u0064\u0029");};if _eabc .BlackPoint !=nil {_fcaf .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_egg .MakeArray (_egg .MakeFloat (_eabc .BlackPoint [0]),_egg .MakeFloat (_eabc .BlackPoint [1]),_egg .MakeFloat (_eabc .BlackPoint [2])));
};_fcaf .Set ("\u0047\u0061\u006dm\u0061",_egg .MakeFloat (_eabc .Gamma ));_cbbg .Append (_fcaf );if _eabc ._agdab !=nil {_eabc ._agdab .PdfObject =_cbbg ;return _eabc ._agdab ;};return _cbbg ;};
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
func (_aagge *PdfField )SetContext (ctx PdfModel ){_aagge ._gbdee =ctx };func _cgdf (_bddfb []byte )(_cfgg ,_agcga string ,_badfd error ){_bag .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_bddfb ));
_fgcgf :=_bgegd .FindIndex (_bddfb );if _fgcgf ==nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0067\u0065\u0074\u0041\u0053\u0043\u0049\u0049\u0053\u0065\u0063\u0074\u0069o\u006e\u0073\u002e\u0020\u004e\u006f\u0020d\u0069\u0063\u0074\u002e");
return "","",_egg .ErrTypeError ;};_dbfa :=_fgcgf [1];_deaaf :=_fc .Index (string (_bddfb [_dbfa :]),_afbc );if _deaaf < 0{_cfgg =string (_bddfb [_dbfa :]);return _cfgg ,"",nil ;};_dbbde :=_dbfa +_deaaf ;_cfgg =string (_bddfb [_dbfa :_dbbde ]);_ccfe :=_dbbde ;
_deaaf =_fc .Index (string (_bddfb [_ccfe :]),_gcfbf );if _deaaf < 0{_bag .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0067e\u0074\u0041\u0053\u0043\u0049\u0049\u0053e\u0063\u0074\u0069\u006f\u006e\u0073\u002e\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_badfd );
return "","",_egg .ErrTypeError ;};_bbec :=_ccfe +_deaaf ;_agcga =string (_bddfb [_ccfe :_bbec ]);return _cfgg ,_agcga ,nil ;};
// Insert adds a top level outline item in the outline,
// at the specified index.
func (_dbggg *Outline )Insert (index uint ,item *OutlineItem ){_baccb :=uint (len (_dbggg .Entries ));if index > _baccb {index =_baccb ;};_dbggg .Entries =append (_dbggg .Entries [:index ],append ([]*OutlineItem {item },_dbggg .Entries [index :]...)...);
};
// ToPdfObject returns the PDF representation of the VRI dictionary.
func (_agfea *VRI )ToPdfObject ()*_egg .PdfObjectDictionary {_dcfe :=_egg .MakeDict ();_dcfe .SetIfNotNil (_egg .PdfObjectName ("\u0043\u0065\u0072\u0074"),_dgagb (_agfea .Cert ));_dcfe .SetIfNotNil (_egg .PdfObjectName ("\u004f\u0043\u0053\u0050"),_dgagb (_agfea .OCSP ));
_dcfe .SetIfNotNil (_egg .PdfObjectName ("\u0043\u0052\u004c"),_dgagb (_agfea .CRL ));_dcfe .SetIfNotNil ("\u0054\u0055",_agfea .TU );_dcfe .SetIfNotNil ("\u0054\u0053",_agfea .TS );return _dcfe ;};func (_ccadg Image )getBase ()_eg .ImageBase {return _eg .NewImageBase (int (_ccadg .Width ),int (_ccadg .Height ),int (_ccadg .BitsPerComponent ),_ccadg .ColorComponents ,_ccadg .Data ,_ccadg ._fgggb ,_ccadg ._abfae );
};
// SetColorspaceByName adds the provided colorspace to the page resources.
func (_acccd *PdfPageResources )SetColorspaceByName (keyName _egg .PdfObjectName ,cs PdfColorspace )error {_gadce ,_bege :=_acccd .GetColorspaces ();if _bege !=nil {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0072\u0061\u0063\u0065: \u0025\u0076",_bege );
return _bege ;};if _gadce ==nil {_gadce =NewPdfPageResourcesColorspaces ();_acccd .SetColorSpace (_gadce );};_gadce .Set (keyName ,cs );return nil ;};func (_ecb *PdfAnnotation )String ()string {_cfca :="";_eac ,_fgbf :=_ecb .ToPdfObject ().(*_egg .PdfIndirectObject );
if _fgbf {_cfca =_f .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_ecb ._gcf ,_eac .PdfObject .String ());};return _cfca ;};func _bcfdf (_aedb _egg .PdfObject )(string ,error ){_aedb =_egg .TraceToDirectObject (_aedb );switch _bgfd :=_aedb .(type ){case *_egg .PdfObjectString :return _bgfd .Str (),nil ;
case *_egg .PdfObjectStream :_efebd ,_ddfcf :=_egg .DecodeStream (_bgfd );if _ddfcf !=nil {return "",_ddfcf ;};return string (_efebd ),nil ;};return "",_f .Errorf ("\u0069\u006e\u0076\u0061\u006ci\u0064\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0073\u0074\u0072e\u0061\u006d\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0068\u006f\u006c\u0064\u0065\u0072\u0020\u0028\u0025\u0054\u0029",_aedb );
};
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
// annotations, otherwise returns the loaded list.
func (_fcdac *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _fcdac ._bcce !=nil {return _fcdac ._bcce ,nil ;};if _fcdac .Annots ==nil {_fcdac ._bcce =[]*PdfAnnotation {};return nil ,nil ;};if _fcdac ._gcfcb ==nil {_fcdac ._bcce =[]*PdfAnnotation {};
return nil ,nil ;};_afedb ,_ggdc :=_fcdac ._gcfcb .loadAnnotations (_fcdac .Annots );if _ggdc !=nil {return nil ,_ggdc ;};if _afedb ==nil {_fcdac ._bcce =[]*PdfAnnotation {};};_fcdac ._bcce =_afedb ;return _fcdac ._bcce ,nil ;};func (_eedded *PdfReader )buildNameNodes (_fbcge *_egg .PdfIndirectObject ,_cfdef map[_egg .PdfObject ]struct{})error {if _fbcge ==nil {return nil ;
};if _ ,_gecfb :=_cfdef [_fbcge ];_gecfb {_bag .Log .Debug ("\u0043\u0079\u0063l\u0069\u0063\u0020\u0072e\u0063\u0075\u0072\u0073\u0069\u006f\u006e,\u0020\u0073\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u0028\u0025\u0076\u0029",_fbcge .ObjectNumber );
return nil ;};_cfdef [_fbcge ]=struct{}{};_gagbgd ,_aaagg :=_fbcge .PdfObject .(*_egg .PdfObjectDictionary );if !_aaagg {return _gd .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _gcbe ,_geggd :=_egg .GetDict (_gagbgd .Get ("\u0044\u0065\u0073t\u0073"));
_geggd {_gfbab ,_bfag :=_egg .GetArray (_gcbe .Get ("\u004b\u0069\u0064\u0073"));if !_bfag {return _gd .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_bag .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_gfbab );
for _gbfd ,_ecdd :=range _gfbab .Elements (){_dgabb ,_abbb :=_egg .GetIndirect (_ecdd );if !_abbb {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u0068\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006e\u0064i\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u002d \u0028\u0025\u0073\u0029",_dgabb );
return _gd .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_gfbab .Set (_gbfd ,_dgabb );_faeebg :=_eedded .buildNameNodes (_dgabb ,_cfdef );if _faeebg !=nil {return _faeebg ;
};};};if _aaebf ,_adeaa :=_egg .GetDict (_gagbgd );_adeaa {if !_egg .IsNullObject (_aaebf .Get ("\u004b\u0069\u0064\u0073")){if _ddefe ,_cfae :=_egg .GetArray (_aaebf .Get ("\u004b\u0069\u0064\u0073"));_cfae {for _fbce ,_cbfa :=range _ddefe .Elements (){if _cfdd ,_cabae :=_egg .GetIndirect (_cbfa );
_cabae {_ddefe .Set (_fbce ,_cfdd );_cgbeg :=_eedded .buildNameNodes (_cfdd ,_cfdef );if _cgbeg !=nil {return _cgbeg ;};};};};};};return nil ;};
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_egg .PdfObjectInteger ;BitsPerComponent *_egg .PdfObjectInteger ;VerticesPerRow *_egg .PdfObjectInteger ;Decode *_egg .PdfObjectArray ;Function []PdfFunction ;};
// HasFontByName checks whether a font is defined by the specified keyName.
func (_dbbg *PdfPageResources )HasFontByName (keyName _egg .PdfObjectName )bool {_ ,_effbg :=_dbbg .GetFontByName (keyName );return _effbg ;};
// GetContainingPdfObject implements interface PdfModel.
func (_aacc *PdfFilespec )GetContainingPdfObject ()_egg .PdfObject {return _aacc ._fbdd };
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// component PDF objects.
func (_fdgf *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if _fdgf .Alternate ==nil {if _fdgf .N ==1{_afd :=NewPdfColorspaceDeviceGray ();return _afd .ColorFromPdfObjects (objects );}else if _fdgf .N ==3{_aagad :=NewPdfColorspaceDeviceRGB ();
return _aagad .ColorFromPdfObjects (objects );}else if _fdgf .N ==4{_cfbaa :=NewPdfColorspaceDeviceCMYK ();return _cfbaa .ColorFromPdfObjects (objects );}else {return nil ,_gd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
};};return _fdgf .Alternate .ColorFromPdfObjects (objects );};
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
type EncryptionAlgorithm int ;
// PdfColorspaceDeviceRGB represents an RGB colorspace.
type PdfColorspaceDeviceRGB struct{};
// PdfAnnotationRedact represents Redact annotations.
// (Section 12.5.6.23).
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _egg .PdfObject ;IC _egg .PdfObject ;RO _egg .PdfObject ;OverlayText _egg .PdfObject ;Repeat _egg .PdfObject ;DA _egg .PdfObject ;Q _egg .PdfObject ;};
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
type PdfAppender struct{_cbe _dag .ReadSeeker ;_daac *_egg .PdfParser ;_bgaa *PdfReader ;Reader *PdfReader ;_beac []*PdfPage ;_aeec *PdfAcroForm ;_dgdc *DSS ;_aga *Permissions ;_beed _egg .XrefTable ;_gfbc int64 ;_gfdcd int ;_dbbe []_egg .PdfObject ;_bdba map[_egg .PdfObject ]struct{};
_eegc map[_egg .PdfObject ]int64 ;_eecgg map[_egg .PdfObject ]struct{};_bdbf map[_egg .PdfObject ]struct{};_bbba int64 ;_faab bool ;_cbdd string ;_effa *EncryptOptions ;_gaagg *PdfInfo ;};
// GetContext returns the annotation context which contains the specific type-dependent context.
// The context represents the subannotation.
func (_dcee *PdfAnnotation )GetContext ()PdfModel {if _dcee ==nil {return nil ;};return _dcee ._gcf ;};
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
type PdfPage struct{Parent _egg .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _egg .PdfObject ;Contents _egg .PdfObject ;
Rotate *int64 ;Group _egg .PdfObject ;Thumb _egg .PdfObject ;B _egg .PdfObject ;Dur _egg .PdfObject ;Trans _egg .PdfObject ;AA _egg .PdfObject ;Metadata _egg .PdfObject ;PieceInfo _egg .PdfObject ;StructParents _egg .PdfObject ;ID _egg .PdfObject ;PZ _egg .PdfObject ;
SeparationInfo _egg .PdfObject ;Tabs _egg .PdfObject ;TemplateInstantiated _egg .PdfObject ;PresSteps _egg .PdfObject ;UserUnit _egg .PdfObject ;VP _egg .PdfObject ;Annots _egg .PdfObject ;_bcce []*PdfAnnotation ;_fgfd *_egg .PdfObjectDictionary ;_dfee *_egg .PdfIndirectObject ;
_gcfcb *PdfReader ;};func _aedd (_bega *_egg .PdfObjectDictionary )(*PdfFieldButton ,error ){_cabgd :=&PdfFieldButton {};_cabgd .PdfField =NewPdfField ();_cabgd .PdfField .SetContext (_cabgd );_cabgd .Opt ,_ =_egg .GetArray (_bega .Get ("\u004f\u0070\u0074"));
_ecag :=NewPdfAnnotationWidget ();_ecag .A ,_ =_egg .GetDict (_bega .Get ("\u0041"));_ecag .AP ,_ =_egg .GetDict (_bega .Get ("\u0041\u0050"));_ecag .SetContext (_cabgd );_cabgd .PdfField .Annotations =append (_cabgd .PdfField .Annotations ,_ecag );return _cabgd ,nil ;
};
// ToPdfObject implements interface PdfModel.
func (_edbb *PdfActionURI )ToPdfObject ()_egg .PdfObject {_edbb .PdfAction .ToPdfObject ();_cab :=_edbb ._bf ;_dca :=_cab .PdfObject .(*_egg .PdfObjectDictionary );_dca .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeURI )));_dca .SetIfNotNil ("\u0055\u0052\u0049",_edbb .URI );
_dca .SetIfNotNil ("\u0049\u0073\u004da\u0070",_edbb .IsMap );return _cab ;};
// SetShadingByName sets a shading resource specified by keyName.
func (_afbbb *PdfPageResources )SetShadingByName (keyName _egg .PdfObjectName ,shadingObj _egg .PdfObject )error {if _afbbb .Shading ==nil {_afbbb .Shading =_egg .MakeDict ();};_degff ,_begaa :=_afbbb .Shading .(*_egg .PdfObjectDictionary );if !_begaa {return _egg .ErrTypeError ;
};_degff .Set (keyName ,shadingObj );return nil ;};
// PdfActionSubmitForm represents a submitForm action.
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _egg .PdfObject ;Flags _egg .PdfObject ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_dabc *PdfColorspaceDeviceGray )ToPdfObject ()_egg .PdfObject {return _egg .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};
// Add appends an outline item as a child of the current outline item.
func (_beba *OutlineItem )Add (item *OutlineItem ){_beba .Entries =append (_beba .Entries ,item )};func (_aebaac *PdfWriter )setDocInfo (_fagdf _egg .PdfObject ){if _aebaac .hasObject (_aebaac ._efage ){delete (_aebaac ._bacec ,_aebaac ._efage );delete (_aebaac ._adcd ,_aebaac ._efage );
for _cgbab ,_bfdad :=range _aebaac ._bbead {if _bfdad ==_aebaac ._efage {copy (_aebaac ._bbead [_cgbab :],_aebaac ._bbead [_cgbab +1:]);_aebaac ._bbead [len (_aebaac ._bbead )-1]=nil ;_aebaac ._bbead =_aebaac ._bbead [:len (_aebaac ._bbead )-1];break ;
};};};_baaf :=_egg .PdfIndirectObject {};_baaf .PdfObject =_fagdf ;_aebaac ._efage =&_baaf ;_aebaac .addObject (&_baaf );};func _efdgd (_cgaff *_egg .PdfObjectDictionary )(*PdfShadingType6 ,error ){_bggd :=PdfShadingType6 {};_abgad :=_cgaff .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
if _abgad ==nil {_bag .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064 \u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065\u0072C\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065");
return nil ,ErrRequiredAttributeMissing ;};_ecgag ,_bbded :=_abgad .(*_egg .PdfObjectInteger );if !_bbded {_bag .Log .Debug ("\u0042\u0069\u0074\u0073\u0050e\u0072\u0043\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_abgad );
return nil ,_egg .ErrTypeError ;};_bggd .BitsPerCoordinate =_ecgag ;_abgad =_cgaff .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _abgad ==nil {_bag .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064\u0020a\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073in\u0067\u003a\u0020B\u0069\u0074s\u0050\u0065\u0072\u0043\u006f\u006dp\u006f\u006ee\u006e\u0074");
return nil ,ErrRequiredAttributeMissing ;};_ecgag ,_bbded =_abgad .(*_egg .PdfObjectInteger );if !_bbded {_bag .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065r \u0028\u0067\u006ft\u0020%\u0054\u0029",_abgad );
return nil ,_egg .ErrTypeError ;};_bggd .BitsPerComponent =_ecgag ;_abgad =_cgaff .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _abgad ==nil {_bag .Log .Debug ("\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065r\u0046\u006c\u0061\u0067");
return nil ,ErrRequiredAttributeMissing ;};_ecgag ,_bbded =_abgad .(*_egg .PdfObjectInteger );if !_bbded {_bag .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072F\u006c\u0061\u0067\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074e\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025T\u0029",_abgad );
return nil ,_egg .ErrTypeError ;};_bggd .BitsPerComponent =_ecgag ;_abgad =_cgaff .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _abgad ==nil {_bag .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0044\u0065\u0063\u006f\u0064\u0065");
return nil ,ErrRequiredAttributeMissing ;};_addbg ,_bbded :=_abgad .(*_egg .PdfObjectArray );if !_bbded {_bag .Log .Debug ("\u0044\u0065\u0063\u006fd\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_abgad );
return nil ,_egg .ErrTypeError ;};_bggd .Decode =_addbg ;if _egdg :=_cgaff .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_egdg !=nil {_bggd .Function =[]PdfFunction {};if _dbaba ,_dcgca :=_egdg .(*_egg .PdfObjectArray );_dcgca {for _ ,_beagd :=range _dbaba .Elements (){_fefd ,_cgefb :=_bdefe (_beagd );
if _cgefb !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_cgefb );return nil ,_cgefb ;};_bggd .Function =append (_bggd .Function ,_fefd );
};}else {_eecc ,_ccbg :=_bdefe (_egdg );if _ccbg !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_ccbg );return nil ,_ccbg ;};
_bggd .Function =append (_bggd .Function ,_eecc );};};return &_bggd ,nil ;};func (_dbfg *PdfReader )loadAction (_ggfd _egg .PdfObject )(*PdfAction ,error ){if _deff ,_geg :=_egg .GetIndirect (_ggfd );_geg {_gfdf ,_dfd :=_dbfg .newPdfActionFromIndirectObject (_deff );
if _dfd !=nil {return nil ,_dfd ;};return _gfdf ,nil ;}else if !_egg .IsNullObject (_ggfd ){return nil ,_gd .New ("\u0061\u0063\u0074\u0069\u006fn\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074 \u0074\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
};return nil ,nil ;};
// PdfColorCalRGB represents a color in the Colorimetric CIE RGB colorspace.
// A, B, C components
// Each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorCalRGB [3]float64 ;func (_afg *PdfReader )newPdfAnnotationCaretFromDict (_fgcb *_egg .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_dadc :=PdfAnnotationCaret {};_bddd ,_cfef :=_afg .newPdfAnnotationMarkupFromDict (_fgcb );if _cfef !=nil {return nil ,_cfef ;
};_dadc .PdfAnnotationMarkup =_bddd ;_dadc .RD =_fgcb .Get ("\u0052\u0044");_dadc .Sy =_fgcb .Get ("\u0053\u0079");return &_dadc ,nil ;};func (_acebd *PdfWriter )writeTrailer (_beegfb int ){_acebd .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _adebe :=0;
_adebe <=_beegfb ;{for ;_adebe <=_beegfb ;_adebe ++{_ccdbbe ,_defe :=_acebd ._ccceb [_adebe ];if _defe &&(!_acebd ._gabaca ||_acebd ._gabaca &&(_ccdbbe .Type ==1&&_ccdbbe .Offset >=_acebd ._ggdad ||_ccdbbe .Type ==0)){break ;};};var _agcd int ;for _agcd =_adebe +1;
_agcd <=_beegfb ;_agcd ++{_aaccc ,_egaeb :=_acebd ._ccceb [_agcd ];if _egaeb &&(!_acebd ._gabaca ||_acebd ._gabaca &&(_aaccc .Type ==1&&_aaccc .Offset > _acebd ._ggdad )){continue ;};break ;};_gdacb :=_f .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_adebe ,_agcd -_adebe );
_acebd .writeString (_gdacb );for _bfefg :=_adebe ;_bfefg < _agcd ;_bfefg ++{_cgacc :=_acebd ._ccceb [_bfefg ];switch _cgacc .Type {case 0:_gdacb =_f .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);_acebd .writeString (_gdacb );
case 1:_gdacb =_f .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_cgacc .Offset ,0);_acebd .writeString (_gdacb );};};_adebe =_agcd +1;};_gdaad :=_egg .MakeDict ();_gdaad .Set ("\u0049\u006e\u0066\u006f",_acebd ._efage );
_gdaad .Set ("\u0052\u006f\u006f\u0074",_acebd ._egad );_gdaad .Set ("\u0053\u0069\u007a\u0065",_egg .MakeInteger (int64 (_beegfb +1)));if _acebd ._gabaca &&_acebd ._gccgfe > 0{_gdaad .Set ("\u0050\u0072\u0065\u0076",_egg .MakeInteger (_acebd ._gccgfe ));
};if _acebd ._agdag !=nil {_gdaad .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_acebd ._afcc );};if _acebd ._aaea ==nil &&_acebd ._caddc !=""&&_acebd ._bagaa !=""{_acebd ._aaea =_egg .MakeArray (_egg .MakeHexString (_acebd ._caddc ),_egg .MakeHexString (_acebd ._bagaa ));
};if _acebd ._aaea !=nil {_gdaad .Set ("\u0049\u0044",_acebd ._aaea );_bag .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_acebd ._aaea );};_acebd .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_acebd .writeString (_gdaad .WriteString ());
_acebd .writeString ("\u000a");};
// PdfAnnotationSound represents Sound annotations.
// (Section 12.5.6.16).
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _egg .PdfObject ;Name _egg .PdfObject ;};
// PdfColorspaceSpecialSeparation is a Separation colorspace.
// At the moment the colour space is set to a Separation space, the conforming reader shall determine whether the
// device has an available colorant (e.g. dye) corresponding to the name of the requested space. If so, the conforming
// reader shall ignore the alternateSpace and tintTransform parameters; subsequent painting operations within the
// space shall apply the designated colorant directly, according to the tint values supplied.
//
// Format: [/Separation name alternateSpace tintTransform]
type PdfColorspaceSpecialSeparation struct{ColorantName *_egg .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_eedg *_egg .PdfIndirectObject ;};
// NewPdfAnnotationPopup returns a new popup annotation.
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_fgbg :=NewPdfAnnotation ();_ggge :=&PdfAnnotationPopup {};_ggge .PdfAnnotation =_fgbg ;_fgbg .SetContext (_ggge );return _ggge ;};
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
func (_ecdab *PdfReader )GetIndirectObjectByNumber (number int )(_egg .PdfObject ,error ){_eacaa ,_bbaddg :=_ecdab ._dafgab .LookupByNumber (number );return _eacaa ,_bbaddg ;};
// ToPdfObject converts the PdfFont object to its PDF representation.
func (_ffadf *PdfFont )ToPdfObject ()_egg .PdfObject {if _ffadf ._edde ==nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0066\u006f\u006e\u0074 \u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0069\u0073 \u006e\u0069\u006c");return _egg .MakeNull ();
};return _ffadf ._edde .ToPdfObject ();};func (_agfg *PdfReader )newPdfAnnotationFromIndirectObject (_gca *_egg .PdfIndirectObject )(*PdfAnnotation ,error ){_ggda ,_dgac :=_gca .PdfObject .(*_egg .PdfObjectDictionary );if !_dgac {return nil ,_f .Errorf ("\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006ft\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};if model :=_agfg ._dabaf .GetModelFromPrimitive (_ggda );model !=nil {_eecb ,_eded :=model .(*PdfAnnotation );if !_eded {return nil ,_f .Errorf ("\u0063\u0061\u0063\u0068\u0065\u0064 \u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050D\u0046\u0020\u0061\u006e\u006e\u006f\u0074a\u0074\u0069\u006f\u006e");
};return _eecb ,nil ;};_aegf :=&PdfAnnotation {};_aegf ._cef =_gca ;_agfg ._dabaf .Register (_ggda ,_aegf );if _ecg :=_ggda .Get ("\u0054\u0079\u0070\u0065");_ecg !=nil {_eeb ,_cdag :=_ecg .(*_egg .PdfObjectName );if !_cdag {_bag .Log .Trace ("\u0049\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u0021\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u006f\u0066\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029\u0020\u002d\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u004e\u0061m\u0065",_ecg );
}else {if *_eeb !="\u0041\u006e\u006eo\u0074"{_bag .Log .Trace ("\u0055\u006e\u0073\u0075\u0073\u0070\u0065\u0063\u0074\u0065d\u0020\u0054\u0079\u0070\u0065\u0020\u0021=\u0020\u0041\u006e\u006e\u006f\u0074\u0020\u0028\u0025\u0073\u0029",*_eeb );};};};if _bcge :=_ggda .Get ("\u0052\u0065\u0063\u0074");
_bcge !=nil {_aegf .Rect =_bcge ;};if _agfgg :=_ggda .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_agfgg !=nil {_aegf .Contents =_agfgg ;};if _ecec :=_ggda .Get ("\u0050");_ecec !=nil {_aegf .P =_ecec ;};if _eefc :=_ggda .Get ("\u004e\u004d");
_eefc !=nil {_aegf .NM =_eefc ;};if _deeg :=_ggda .Get ("\u004d");_deeg !=nil {_aegf .M =_deeg ;};if _efbd :=_ggda .Get ("\u0046");_efbd !=nil {_aegf .F =_efbd ;};if _bbdg :=_ggda .Get ("\u0041\u0050");_bbdg !=nil {_aegf .AP =_bbdg ;};if _gce :=_ggda .Get ("\u0041\u0053");
_gce !=nil {_aegf .AS =_gce ;};if _dcag :=_ggda .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_dcag !=nil {_aegf .Border =_dcag ;};if _bac :=_ggda .Get ("\u0043");_bac !=nil {_aegf .C =_bac ;};if _faff :=_ggda .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");
_faff !=nil {_aegf .StructParent =_faff ;};if _adbg :=_ggda .Get ("\u004f\u0043");_adbg !=nil {_aegf .OC =_adbg ;};_bda :=_ggda .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _bda ==nil {_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u0049\u004e\u0047:\u0020\u0043\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079 \u0069s\u0073\u0075\u0065\u0020\u002d\u0020a\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0020\u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u002d\u0020\u0061\u0073\u0073u\u006d\u0069\u006e\u0067\u0020\u006e\u006f\u0020\u0073\u0075\u0062\u0074\u0079p\u0065");
_aegf ._gcf =nil ;return _aegf ,nil ;};_bafg ,_fcef :=_bda .(*_egg .PdfObjectName );if !_fcef {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0053\u0075\u0062ty\u0070\u0065\u0020\u006fb\u006a\u0065\u0063\u0074\u0020\u0074\u0079\u0070\u0065 !\u003d\u0020n\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_bda );
return nil ,_f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u006f\u0062\u006ae\u0063\u0074\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d n\u0061\u006d\u0065 \u0028%\u0054\u0029",_bda );};switch *_bafg {case "\u0054\u0065\u0078\u0074":_efab ,_cggc :=_agfg .newPdfAnnotationTextFromDict (_ggda );
if _cggc !=nil {return nil ,_cggc ;};_efab .PdfAnnotation =_aegf ;_aegf ._gcf =_efab ;return _aegf ,nil ;case "\u004c\u0069\u006e\u006b":_bfg ,_gbgb :=_agfg .newPdfAnnotationLinkFromDict (_ggda );if _gbgb !=nil {return nil ,_gbgb ;};_bfg .PdfAnnotation =_aegf ;
_aegf ._gcf =_bfg ;return _aegf ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_gag ,_ceca :=_agfg .newPdfAnnotationFreeTextFromDict (_ggda );if _ceca !=nil {return nil ,_ceca ;};_gag .PdfAnnotation =_aegf ;_aegf ._gcf =_gag ;return _aegf ,nil ;
case "\u004c\u0069\u006e\u0065":_eade ,_fccg :=_agfg .newPdfAnnotationLineFromDict (_ggda );if _fccg !=nil {return nil ,_fccg ;};_eade .PdfAnnotation =_aegf ;_aegf ._gcf =_eade ;_bag .Log .Trace ("\u004c\u0049\u004e\u0045\u0020\u0041N\u004e\u004f\u0054\u0041\u0054\u0049\u004f\u004e\u003a\u0020\u0061\u006e\u006eo\u0074\u0020\u0028\u0025\u0054\u0029\u003a \u0025\u002b\u0076\u000a",_aegf ,_aegf );
_bag .Log .Trace ("\u004c\u0049\u004eE\u0020\u0041\u004e\u004eO\u0054\u0041\u0054\u0049\u004f\u004e\u003a \u0063\u0074\u0078\u0020\u0028\u0025\u0054\u0029\u003a\u0020\u0025\u002b\u0076\u000a",_eade ,_eade );_bag .Log .Trace ("\u004c\u0049\u004e\u0045\u0020\u0041\u004e\u004e\u004f\u0054\u0041\u0054\u0049\u004f\u004e\u0020\u004d\u0061\u0072\u006b\u0075\u0070\u003a\u0020c\u0074\u0078\u0020\u0028\u0025T\u0029\u003a \u0025\u002b\u0076\u000a",_eade .PdfAnnotationMarkup ,_eade .PdfAnnotationMarkup );
return _aegf ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_gaga ,_faaf :=_agfg .newPdfAnnotationSquareFromDict (_ggda );if _faaf !=nil {return nil ,_faaf ;};_gaga .PdfAnnotation =_aegf ;_aegf ._gcf =_gaga ;return _aegf ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_cdc ,_cffb :=_agfg .newPdfAnnotationCircleFromDict (_ggda );
if _cffb !=nil {return nil ,_cffb ;};_cdc .PdfAnnotation =_aegf ;_aegf ._gcf =_cdc ;return _aegf ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_fgab ,_ebf :=_agfg .newPdfAnnotationPolygonFromDict (_ggda );if _ebf !=nil {return nil ,_ebf ;};_fgab .PdfAnnotation =_aegf ;
_aegf ._gcf =_fgab ;return _aegf ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_ecc ,_dgea :=_agfg .newPdfAnnotationPolyLineFromDict (_ggda );if _dgea !=nil {return nil ,_dgea ;};_ecc .PdfAnnotation =_aegf ;_aegf ._gcf =_ecc ;return _aegf ,nil ;
case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_def ,_ceg :=_agfg .newPdfAnnotationHighlightFromDict (_ggda );if _ceg !=nil {return nil ,_ceg ;};_def .PdfAnnotation =_aegf ;_aegf ._gcf =_def ;return _aegf ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_fbdb ,_aabb :=_agfg .newPdfAnnotationUnderlineFromDict (_ggda );
if _aabb !=nil {return nil ,_aabb ;};_fbdb .PdfAnnotation =_aegf ;_aegf ._gcf =_fbdb ;return _aegf ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_gdd ,_dfa :=_agfg .newPdfAnnotationSquigglyFromDict (_ggda );if _dfa !=nil {return nil ,_dfa ;
};_gdd .PdfAnnotation =_aegf ;_aegf ._gcf =_gdd ;return _aegf ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_dcd ,_ccbb :=_agfg .newPdfAnnotationStrikeOut (_ggda );if _ccbb !=nil {return nil ,_ccbb ;};_dcd .PdfAnnotation =_aegf ;_aegf ._gcf =_dcd ;
return _aegf ,nil ;case "\u0043\u0061\u0072e\u0074":_bdee ,_ega :=_agfg .newPdfAnnotationCaretFromDict (_ggda );if _ega !=nil {return nil ,_ega ;};_bdee .PdfAnnotation =_aegf ;_aegf ._gcf =_bdee ;return _aegf ,nil ;case "\u0053\u0074\u0061m\u0070":_edag ,_dfgf :=_agfg .newPdfAnnotationStampFromDict (_ggda );
if _dfgf !=nil {return nil ,_dfgf ;};_edag .PdfAnnotation =_aegf ;_aegf ._gcf =_edag ;return _aegf ,nil ;case "\u0049\u006e\u006b":_bbc ,_ddc :=_agfg .newPdfAnnotationInkFromDict (_ggda );if _ddc !=nil {return nil ,_ddc ;};_bbc .PdfAnnotation =_aegf ;_aegf ._gcf =_bbc ;
return _aegf ,nil ;case "\u0050\u006f\u0070u\u0070":_cfba ,_bfec :=_agfg .newPdfAnnotationPopupFromDict (_ggda );if _bfec !=nil {return nil ,_bfec ;};_cfba .PdfAnnotation =_aegf ;_aegf ._gcf =_cfba ;return _aegf ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_bafgg ,_bdg :=_agfg .newPdfAnnotationFileAttachmentFromDict (_ggda );
if _bdg !=nil {return nil ,_bdg ;};_bafgg .PdfAnnotation =_aegf ;_aegf ._gcf =_bafgg ;return _aegf ,nil ;case "\u0053\u006f\u0075n\u0064":_dcg ,_fcad :=_agfg .newPdfAnnotationSoundFromDict (_ggda );if _fcad !=nil {return nil ,_fcad ;};_dcg .PdfAnnotation =_aegf ;
_aegf ._gcf =_dcg ;return _aegf ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_baee ,_ddb :=_agfg .newPdfAnnotationRichMediaFromDict (_ggda );if _ddb !=nil {return nil ,_ddb ;};_baee .PdfAnnotation =_aegf ;_aegf ._gcf =_baee ;return _aegf ,nil ;
case "\u004d\u006f\u0076i\u0065":_bafa ,_gagc :=_agfg .newPdfAnnotationMovieFromDict (_ggda );if _gagc !=nil {return nil ,_gagc ;};_bafa .PdfAnnotation =_aegf ;_aegf ._gcf =_bafa ;return _aegf ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_bdd ,_ecbg :=_agfg .newPdfAnnotationScreenFromDict (_ggda );
if _ecbg !=nil {return nil ,_ecbg ;};_bdd .PdfAnnotation =_aegf ;_aegf ._gcf =_bdd ;return _aegf ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_cefc ,_fcag :=_agfg .newPdfAnnotationWidgetFromDict (_ggda );if _fcag !=nil {return nil ,_fcag ;};_cefc .PdfAnnotation =_aegf ;
_aegf ._gcf =_cefc ;return _aegf ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_fbc ,_gfb :=_agfg .newPdfAnnotationPrinterMarkFromDict (_ggda );if _gfb !=nil {return nil ,_gfb ;};_fbc .PdfAnnotation =_aegf ;_aegf ._gcf =_fbc ;
return _aegf ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_eca ,_aegfa :=_agfg .newPdfAnnotationTrapNetFromDict (_ggda );if _aegfa !=nil {return nil ,_aegfa ;};_eca .PdfAnnotation =_aegf ;_aegf ._gcf =_eca ;return _aegf ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_cbbe ,_agda :=_agfg .newPdfAnnotationWatermarkFromDict (_ggda );
if _agda !=nil {return nil ,_agda ;};_cbbe .PdfAnnotation =_aegf ;_aegf ._gcf =_cbbe ;return _aegf ,nil ;case "\u0033\u0044":_gacd ,_gggb :=_agfg .newPdfAnnotation3DFromDict (_ggda );if _gggb !=nil {return nil ,_gggb ;};_gacd .PdfAnnotation =_aegf ;_aegf ._gcf =_gacd ;
return _aegf ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_gffg ,_bdb :=_agfg .newPdfAnnotationProjectionFromDict (_ggda );if _bdb !=nil {return nil ,_bdb ;};_gffg .PdfAnnotation =_aegf ;_aegf ._gcf =_gffg ;return _aegf ,nil ;
case "\u0052\u0065\u0064\u0061\u0063\u0074":_baa ,_edbf :=_agfg .newPdfAnnotationRedactFromDict (_ggda );if _edbf !=nil {return nil ,_edbf ;};_baa .PdfAnnotation =_aegf ;_aegf ._gcf =_baa ;return _aegf ,nil ;};_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u0067\u006e\u006f\u0072\u0069\u006e\u0067\u0020\u0075\u006e\u006b\u006e\u006f\u0077\u006e\u0020a\u006e\u006e\u006f\u0074\u0061t\u0069\u006fn\u003a\u0020\u0025\u0073",*_bafg );
return nil ,nil ;};
// RunesToCharcodeBytes maps the provided runes to charcode bytes and it
// returns the resulting slice of bytes, along with the number of runes which
// could not be converted. If the number of misses is 0, all runes were
// successfully converted.
func (_bfbdd *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _ebadg []_ef .TextEncoder ;var _afae _ef .CMapEncoder ;if _babfg :=_bfbdd .baseFields ()._bfbgf ;_babfg !=nil {_afae =_ef .NewCMapEncoder ("",nil ,_babfg );};_gfec :=_bfbdd .Encoder ();
if _gfec !=nil {switch _fefb :=_gfec .(type ){case _ef .SimpleEncoder :_fbea :=_fefb .BaseName ();if _ ,_cceeb :=_eefde [_fbea ];_cceeb {_ebadg =append (_ebadg ,_gfec );};};};if len (_ebadg )==0{if _bfbdd .baseFields ()._bfbgf !=nil {_ebadg =append (_ebadg ,_afae );
};if _gfec !=nil {_ebadg =append (_ebadg ,_gfec );};};var _bdeec _dd .Buffer ;var _gfbdd int ;for _ ,_cccbf :=range data {var _gbfc bool ;for _ ,_cadg :=range _ebadg {if _baebc :=_cadg .Encode (string (_cccbf ));len (_baebc )> 0{_bdeec .Write (_baebc );
_gbfc =true ;break ;};};if !_gbfc {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020f\u0061\u0069\u006ce\u0064\u0020\u0074\u006f \u006d\u0061\u0070\u0020\u0072\u0075\u006e\u0065\u0020\u0060\u0025\u002b\u0071\u0060\u0020\u0074\u006f\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065",_cccbf );
_gfbdd ++;};};if _gfbdd !=0{_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0061\u006cl\u0020\u0072\u0075\u006e\u0065\u0073\u0020\u0074\u006f\u0020\u0063\u0068\u0061\u0072c\u006fd\u0065\u0073\u002e\u000a"+"\u0009\u006e\u0075\u006d\u0052\u0075\u006e\u0065\u0073\u003d\u0025d\u0020\u006e\u0075\u006d\u004d\u0069\u0073\u0073\u0065\u0073=\u0025\u0064\u000a"+"\t\u0066\u006f\u006e\u0074=%\u0073 \u0065\u006e\u0063\u006f\u0064e\u0072\u0073\u003d\u0025\u002b\u0076",len (data ),_gfbdd ,_bfbdd ,_ebadg );
};return _bdeec .Bytes (),_gfbdd ;};var (_cgag _b .Mutex ;_cdcf ="";_fabb _e .Time ;_cefff ="";_fafb ="";_gfeea _e .Time ;_bdbde ="";_eggc ="";_fcfbd ="";);
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_abcc :=&PdfAppender {_cbe :reader ._eefb ,Reader :reader ,_daac :reader ._dafgab ,_bdbf :reader ._gbabf };_aege ,_adbf :=_abcc ._cbe .Seek (0,_dag .SeekEnd );if _adbf !=nil {return nil ,_adbf ;
};_abcc ._bbba =_aege ;if _ ,_adbf =_abcc ._cbe .Seek (0,_dag .SeekStart );_adbf !=nil {return nil ,_adbf ;};_abcc ._bgaa ,_adbf =NewPdfReader (_abcc ._cbe );if _adbf !=nil {return nil ,_adbf ;};for _ ,_eced :=range _abcc .Reader .GetObjectNums (){if _abcc ._gfdcd < _eced {_abcc ._gfdcd =_eced ;
};};_abcc ._beed =_abcc ._daac .GetXrefTable ();_abcc ._gfbc =_abcc ._daac .GetXrefOffset ();_abcc ._beac =append (_abcc ._beac ,_abcc ._bgaa .PageList ...);_abcc ._bdba =make (map[_egg .PdfObject ]struct{});_abcc ._eegc =make (map[_egg .PdfObject ]int64 );
_abcc ._eecgg =make (map[_egg .PdfObject ]struct{});_abcc ._aeec =_abcc ._bgaa .AcroForm ;_abcc ._dgdc =_abcc ._bgaa .DSS ;return _abcc ,nil ;};
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
func (_efcfa *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _efcfa ._fcbdg .(*PdfShadingPattern );};
// EnableByName LTV enables the signature dictionary of the PDF AcroForm
// field identified the specified name. The signing certificate chain is
// extracted from the signature dictionary. Optionally, additional certificates
// can be specified through the `extraCerts` parameter. The LTV client attempts
// to build the certificate chain up to a trusted root by downloading any
// missing certificates.
func (_ceda *LTV )EnableByName (name string ,extraCerts []*_dg .Certificate )error {_gade :=_ceda ._dbdga ._bgaa .AcroForm ;for _ ,_fdbad :=range _gade .AllFields (){_fafee ,_ :=_fdbad .GetContext ().(*PdfFieldSignature );if _fafee ==nil {continue ;};if _eafbg :=_fafee .PartialName ();
_eafbg !=name {continue ;};return _ceda .Enable (_fafee .V ,extraCerts );};return nil ;};
// GetCharMetrics returns the character metrics for the specified character code. A bool flag is
// returned to indicate whether or not the entry was found in the glyph to charcode mapping.
// How it works:
// 1) Return a value the /Widths array (charWidths) if there is one.
// 2) If the font has the same name as a standard 14 font then return width=250.
// 3) Otherwise return no match and let the caller substitute a default.
func (_edbgd pdfFontSimple )GetCharMetrics (code _ef .CharCode )(_bgd .CharMetrics ,bool ){if _ffbfb ,_geae :=_edbgd ._babec [code ];_geae {return _bgd .CharMetrics {Wx :_ffbfb },true ;};if _bgd .IsStdFont (_bgd .StdFontName (_edbgd ._dgfdc )){return _bgd .CharMetrics {Wx :250},true ;
};return _bgd .CharMetrics {},false ;};func _dbggc (_fgdcd _egg .PdfObject )(*fontFile ,error ){_bag .Log .Trace ("\u006e\u0065\u0077\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0046\u0072\u006f\u006dP\u0064f\u004f\u0062\u006a\u0065\u0063\u0074\u003a\u0020\u006f\u0062\u006a\u003d\u0025\u0073",_fgdcd );
_cfaae :=&fontFile {};_fgdcd =_egg .TraceToDirectObject (_fgdcd );_bcdf ,_gdbd :=_fgdcd .(*_egg .PdfObjectStream );if !_gdbd {_bag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020F\u006f\u006et\u0046\u0069\u006c\u0065\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d \u0028\u0025\u0054\u0029",_fgdcd );
return nil ,_egg .ErrTypeError ;};_fgba :=_bcdf .PdfObjectDictionary ;_dgddc ,_ggaf :=_egg .DecodeStream (_bcdf );if _ggaf !=nil {return nil ,_ggaf ;};_gggg ,_gdbd :=_egg .GetNameVal (_fgba .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_gdbd {_cfaae ._eecf =_gggg ;
if _gggg =="\u0054\u0079\u0070\u0065\u0031\u0043"{_bag .Log .Debug ("T\u0079\u0070\u0065\u0031\u0043\u0020\u0066\u006f\u006e\u0074\u0073\u0020\u0061\u0072\u0065\u0020\u0063\u0075r\u0072\u0065\u006e\u0074\u006c\u0079\u0020\u006e\u006f\u0074 s\u0075\u0070\u0070o\u0072t\u0065\u0064");
return nil ,ErrType1CFontNotSupported ;};};_bbadd ,_ :=_egg .GetIntVal (_fgba .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_fgbb ,_ :=_egg .GetIntVal (_fgba .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _bbadd > len (_dgddc ){_bbadd =len (_dgddc );
};if _bbadd +_fgbb > len (_dgddc ){_fgbb =len (_dgddc )-_bbadd ;};_efdcg :=_dgddc [:_bbadd ];var _befd []byte ;if _fgbb > 0{_befd =_dgddc [_bbadd :_bbadd +_fgbb ];};if _bbadd > 0&&_fgbb > 0{_egdf :=_cfaae .loadFromSegments (_efdcg ,_befd );if _egdf !=nil {return nil ,_egdf ;
};};return _cfaae ,nil ;};
// GetOutlines returns a high-level Outline object, based on the outline tree
// of the reader.
func (_dcgcc *PdfReader )GetOutlines ()(*Outline ,error ){if _dcgcc ==nil {return nil ,_gd .New ("\u0063\u0061n\u006e\u006f\u0074\u0020c\u0072\u0065a\u0074\u0065\u0020\u006f\u0075\u0074\u006c\u0069n\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u006e\u0069\u006c\u0020\u0072e\u0061\u0064\u0065\u0072");
};_agdd :=_dcgcc .GetOutlineTree ();if _agdd ==nil {return nil ,_gd .New ("\u0074\u0068\u0065\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0072\u0065\u0061\u0064e\u0072\u0020\u0064\u006f\u0065\u0073\u0020n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u006e\u0020o\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0074\u0072\u0065\u0065");
};var _bbef func (_agaa *PdfOutlineTreeNode ,_deaff *[]*OutlineItem );_bbef =func (_fbef *PdfOutlineTreeNode ,_ceabf *[]*OutlineItem ){if _fbef ==nil {return ;};if _fbef ._bgbfg ==nil {_bag .Log .Debug ("\u0045\u0052RO\u0052\u003a\u0020m\u0069\u0073\u0073\u0069ng \u006fut\u006c\u0069\u006e\u0065\u0020\u0065\u006etr\u0079\u0020\u0063\u006f\u006e\u0074\u0065x\u0074");
return ;};var _dege *OutlineItem ;if _ggafe ,_ddceag :=_fbef ._bgbfg .(*PdfOutlineItem );_ddceag {_ffbcd :=_ggafe .Dest ;if (_ffbcd ==nil ||_egg .IsNullObject (_ffbcd ))&&_ggafe .A !=nil {if _ecgcg ,_feeabf :=_egg .GetDict (_ggafe .A );_feeabf {if _febdg ,_dbcfc :=_egg .GetArray (_ecgcg .Get ("\u0044"));
_dbcfc {_ffbcd =_febdg ;}else {_gaccg ,_cbbea :=_egg .GetString (_ecgcg .Get ("\u0044"));if !_cbbea {return ;};_bfgd ,_cbbea :=_dcgcc ._eacf .Get ("\u004e\u0061\u006de\u0073").(*_egg .PdfObjectReference );if !_cbbea {return ;};_bddae ,_egaed :=_dcgcc ._dafgab .LookupByReference (*_bfgd );
if _egaed !=nil {_bag .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0072\u0065\u0061\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0072\u0065\u0066\u0065\u0072e\u006e\u0063\u0065\u0020\u0028\u0025\u0073\u0029",_egaed .Error ());
return ;};_ddcdg ,_cbbea :=_bddae .(*_egg .PdfIndirectObject );if !_cbbea {return ;};_gcege :=map[_egg .PdfObject ]struct{}{};_egaed =_dcgcc .buildNameNodes (_ddcdg ,_gcege );if _egaed !=nil {_bag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0062\u0075\u0069\u006c\u0064\u0020\u006ea\u006d\u0065\u0020\u006e\u006fd\u0065\u0073 \u0028\u0025\u0073\u0029",_egaed .Error ());
return ;};for _bceff :=range _gcege {_afgcf ,_adecdb :=_egg .GetDict (_bceff );if !_adecdb {continue ;};_cecbda ,_adecdb :=_egg .GetArray (_afgcf .Get ("\u004e\u0061\u006de\u0073"));if !_adecdb {continue ;};for _geefc ,_cfcga :=range _cecbda .Elements (){switch _cfcga .(type ){case *_egg .PdfObjectString :if _cfcga .String ()==_gaccg .String (){if _bbfdf :=_cecbda .Get (_geefc +1);
_bbfdf !=nil {if _eddag ,_ggfg :=_egg .GetDict (_bbfdf );_ggfg {_ffbcd =_eddag .Get ("\u0044");break ;};};};};};};};};};var _ddgbg OutlineDest ;if _ffbcd !=nil &&!_egg .IsNullObject (_ffbcd ){if _fafda ,_ebdef :=_afcaa (_ffbcd ,_dcgcc );_ebdef ==nil {_ddgbg =*_fafda ;
}else {_bag .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020p\u0061\u0072\u0073\u0065\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0064\u0065\u0073\u0074\u0020\u0028\u0025\u0076\u0029\u003a\u0020\u0025\u0076",_ffbcd ,_ebdef );
};};_dege =NewOutlineItem (_ggafe .Title .Decoded (),_ddgbg );*_ceabf =append (*_ceabf ,_dege );if _ggafe .Next !=nil {_bbef (_ggafe .Next ,_ceabf );};};if _fbef .First !=nil {if _dege !=nil {_ceabf =&_dege .Entries ;};_bbef (_fbef .First ,_ceabf );};};
_ffadfb :=NewOutline ();_bbef (_agdd ,&_ffadfb .Entries );return _ffadfb ,nil ;};func (_decb *pdfFontSimple )updateStandard14Font (){_aebf ,_bcgfd :=_decb .Encoder ().(_ef .SimpleEncoder );if !_bcgfd {_bag .Log .Error ("\u0057\u0072\u006f\u006e\u0067\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0074y\u0070e\u003a\u0020\u0025\u0054\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073\u002e",_decb .Encoder (),_decb );
return ;};_gggbf :=_aebf .Charcodes ();_decb ._babec =make (map[_ef .CharCode ]float64 ,len (_gggbf ));for _ ,_dbabb :=range _gggbf {_dfgfgb ,_ :=_aebf .CharcodeToRune (_dbabb );_bfdc ,_ :=_decb ._dddd .Read (_dfgfgb );_decb ._babec [_dbabb ]=_bfdc .Wx ;
};};
// NewPdfAction returns an initialized generic PDF action model.
func NewPdfAction ()*PdfAction {_eff :=&PdfAction {};_eff ._bf =_egg .MakeIndirectObject (_egg .MakeDict ());return _eff ;};
// PdfOutputIntentType is the subtype of the given PdfOutputIntent.
type PdfOutputIntentType int ;
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
// from the input dictionary.
func NewPdfPageResourcesFromDict (dict *_egg .PdfObjectDictionary )(*PdfPageResources ,error ){_cbaef :=NewPdfPageResources ();if _bcefc :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_bcefc !=nil {_cbaef .ExtGState =_bcefc ;};if _dgee :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");
_dgee !=nil &&!_egg .IsNullObject (_dgee ){_cbaef .ColorSpace =_dgee ;};if _bbfbg :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_bbfbg !=nil {_cbaef .Pattern =_bbfbg ;};if _dfbfcg :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_dfbfcg !=nil {_cbaef .Shading =_dfbfcg ;
};if _afac :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_afac !=nil {_cbaef .XObject =_afac ;};if _dgfab :=_egg .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_dgfab !=nil {_cbaef .Font =_dgfab ;};if _aedfc :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");
_aedfc !=nil {_cbaef .ProcSet =_aedfc ;};if _daff :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_daff !=nil {_cbaef .Properties =_daff ;};return _cbaef ,nil ;};