unipdf/model/model.go
2021-04-06 22:35:37 +00:00

4500 lines
685 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 (_g "bufio";_cbd "bytes";_bb "crypto/rand";_d "crypto/sha1";_ce "crypto/x509";_gg "encoding/binary";_c "encoding/hex";_bbd "errors";_e "fmt";_gb "github.com/unidoc/pkcs7";_dbg "github.com/unidoc/unipdf/v3/common";_eg "github.com/unidoc/unipdf/v3/core";
_fc "github.com/unidoc/unipdf/v3/core/security";_cf "github.com/unidoc/unipdf/v3/core/security/crypt";_aff "github.com/unidoc/unipdf/v3/internal/cmap";_ff "github.com/unidoc/unipdf/v3/internal/imageutil";_dd "github.com/unidoc/unipdf/v3/internal/license";
_ccg "github.com/unidoc/unipdf/v3/internal/sampling";_cec "github.com/unidoc/unipdf/v3/internal/textencoding";_cc "github.com/unidoc/unipdf/v3/internal/transform";_ab "github.com/unidoc/unipdf/v3/model/internal/fonts";_cbf "github.com/unidoc/unipdf/v3/model/sigutil";
_ea "github.com/unidoc/unipdf/v3/ps";_af "github.com/unidoc/unitype";_ead "golang.org/x/xerrors";_ec "image";_f "image/color";_ "image/gif";_ "image/png";_de "io";_aa "io/ioutil";_bc "math";_gf "math/rand";_bg "os";_ge "regexp";_ae "sort";_db "strconv";
_dc "strings";_eb "sync";_ee "time";_cg "unicode";_cb "unicode/utf8";);
// NewPdfAnnotationScreen returns a new screen annotation.
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_cbdda :=NewPdfAnnotation ();_aad :=&PdfAnnotationScreen {};_aad .PdfAnnotation =_cbdda ;_cbdda .SetContext (_aad );return _aad ;};
// RunesToCharcodeBytes maps the provided runes to charcode bytes and it
// returns the resulting slice of bytes, along with the number of runes which
// could not be converted. If the number of misses is 0, all runes were
// successfully converted.
func (_dbbed *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _gbcc []_cec .TextEncoder ;var _beab _cec .CMapEncoder ;if _cbebc :=_dbbed .baseFields ()._fffc ;_cbebc !=nil {_beab =_cec .NewCMapEncoder ("",nil ,_cbebc );};_adbcb :=_dbbed .Encoder ();
if _adbcb !=nil {switch _baegf :=_adbcb .(type ){case _cec .SimpleEncoder :_adga :=_baegf .BaseName ();if _ ,_aefae :=_acgcf [_adga ];_aefae {_gbcc =append (_gbcc ,_adbcb );};};};if len (_gbcc )==0{if _dbbed .baseFields ()._fffc !=nil {_gbcc =append (_gbcc ,_beab );
};if _adbcb !=nil {_gbcc =append (_gbcc ,_adbcb );};};var _bcadf _cbd .Buffer ;var _ecgfd int ;for _ ,_cfcd :=range data {var _fega bool ;for _ ,_cafed :=range _gbcc {if _addf :=_cafed .Encode (string (_cfcd ));len (_addf )> 0{_bcadf .Write (_addf );_fega =true ;
break ;};};if !_fega {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020f\u0061\u0069\u006ce\u0064\u0020\u0074\u006f \u006d\u0061\u0070\u0020\u0072\u0075\u006e\u0065\u0020\u0060\u0025\u002b\u0071\u0060\u0020\u0074\u006f\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065",_cfcd );
_ecgfd ++;};};if _ecgfd !=0{_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0061\u006cl\u0020\u0072\u0075\u006e\u0065\u0073\u0020\u0074\u006f\u0020\u0063\u0068\u0061\u0072c\u006fd\u0065\u0073\u002e\u000a"+"\u0009\u006e\u0075\u006d\u0052\u0075\u006e\u0065\u0073\u003d\u0025d\u0020\u006e\u0075\u006d\u004d\u0069\u0073\u0073\u0065\u0073=\u0025\u0064\u000a"+"\t\u0066\u006f\u006e\u0074=%\u0073 \u0065\u006e\u0063\u006f\u0064e\u0072\u0073\u003d\u0025\u002b\u0076",len (data ),_ecgfd ,_dbbed ,_gbcc );
};return _bcadf .Bytes (),_ecgfd ;};func (_gbcec *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};var _ pdfFont =(*pdfCIDFontType0 )(nil );
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_debd *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aebb :=vals [0];_aagg :=[]float64 {_aebb };_aabb ,_bdcg :=_debd .TintTransform .Evaluate (_aagg );
if _bdcg !=nil {_dbg .Log .Debug ("\u0045\u0072r\u006f\u0072\u002c\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0065\u0076\u0061\u006c\u0075\u0061\u0074\u0065: \u0025\u0076",_bdcg );_dbg .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_debd .TintTransform );
return nil ,_bdcg ;};_dbg .Log .Trace ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0043\u006f\u006c\u006fr\u0046\u0072\u006f\u006d\u0046\u006c\u006f\u0061\u0074\u0073\u0028\u0025\u002bv\u0029\u0020\u006f\u006e\u0020\u0041\u006c\u0074\u0065\u0072\u006e\u0061te\u0053\u0070\u0061\u0063\u0065\u003a\u0020\u0025\u0023\u0076",_aabb ,_debd .AlternateSpace );
_abab ,_bdcg :=_debd .AlternateSpace .ColorFromFloats (_aabb );if _bdcg !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u002c\u0020\u0066a\u0069\u006c\u0065d \u0074\u006f\u0020\u0065\u0076\u0061l\u0075\u0061\u0074\u0065\u0020\u0069\u006e\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061t\u0065\u0020\u0073\u0070\u0061\u0063\u0065\u003a \u0025\u0076",_bdcg );
return nil ,_bdcg ;};return _abab ,nil ;};
// ToPdfObject returns the PDF representation of the function.
func (_cdecc *PdfFunctionType2 )ToPdfObject ()_eg .PdfObject {_bdgfc :=_eg .MakeDict ();_bdgfc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eg .MakeInteger (2));_bbbcg :=&_eg .PdfObjectArray {};for _ ,_ccgbb :=range _cdecc .Domain {_bbbcg .Append (_eg .MakeFloat (_ccgbb ));
};_bdgfc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bbbcg );if _cdecc .Range !=nil {_agca :=&_eg .PdfObjectArray {};for _ ,_eegca :=range _cdecc .Range {_agca .Append (_eg .MakeFloat (_eegca ));};_bdgfc .Set ("\u0052\u0061\u006eg\u0065",_agca );};if _cdecc .C0 !=nil {_agagd :=&_eg .PdfObjectArray {};
for _ ,_adaea :=range _cdecc .C0 {_agagd .Append (_eg .MakeFloat (_adaea ));};_bdgfc .Set ("\u0043\u0030",_agagd );};if _cdecc .C1 !=nil {_fbbgc :=&_eg .PdfObjectArray {};for _ ,_feabf :=range _cdecc .C1 {_fbbgc .Append (_eg .MakeFloat (_feabf ));};_bdgfc .Set ("\u0043\u0031",_fbbgc );
};_bdgfc .Set ("\u004e",_eg .MakeFloat (_cdecc .N ));if _cdecc ._daaf !=nil {_cdecc ._daaf .PdfObject =_bdgfc ;return _cdecc ._daaf ;};return _bdgfc ;};
// GetFontByName gets the font specified by keyName. Returns the PdfObject which
// the entry refers to. Returns a bool value indicating whether or not the entry was found.
func (_ecbdf *PdfPageResources )GetFontByName (keyName _eg .PdfObjectName )(_eg .PdfObject ,bool ){if _ecbdf .Font ==nil {return nil ,false ;};_faedc ,_aacab :=_eg .TraceToDirectObject (_ecbdf .Font ).(*_eg .PdfObjectDictionary );if !_aacab {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0021\u0020(\u0067\u006ft\u0020\u0025\u0054\u0029",_eg .TraceToDirectObject (_ecbdf .Font ));
return nil ,false ;};if _becga :=_faedc .Get (keyName );_becga !=nil {return _becga ,true ;};return nil ,false ;};func (_dgfb *PdfReader )loadStructure ()error {if _dgfb ._cdggc .GetCrypter ()!=nil &&!_dgfb ._cdggc .IsAuthenticated (){return _e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_dbgff :=_dgfb ._cdggc .GetTrailer ();if _dbgff ==nil {return _e .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_ddefce ,_agbb :=_dbgff .Get ("\u0052\u006f\u006f\u0074").(*_eg .PdfObjectReference );if !_agbb {return _e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0052\u006f\u006ft\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u003a \u0025\u0073\u0029",_dbgff );
};_degaf ,_becbg :=_dgfb ._cdggc .LookupByReference (*_ddefce );if _becbg !=nil {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0072\u0065\u0061\u0064\u0020\u0072\u006f\u006f\u0074\u0020\u0065\u006c\u0065\u006d\u0065\u006e\u0074\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_becbg );
return _becbg ;};_gfgb ,_agbb :=_degaf .(*_eg .PdfIndirectObject );if !_agbb {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0028\u0072\u006f\u006f\u0074\u0020\u0025\u0071\u0029\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u0020\u0025\u0073\u0029",_degaf ,*_dbgff );
return _bbd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_dafbab ,_agbb :=(*_gfgb ).PdfObject .(*_eg .PdfObjectDictionary );if !_agbb {_dbg .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020I\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0063\u0061t\u0061\u006c\u006fg\u0020(\u0025\u0073\u0029",_gfgb .PdfObject );
return _bbd .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_dbg .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_dafbab );_ebcgf ,_agbb :=_dafbab .Get ("\u0050\u0061\u0067e\u0073").(*_eg .PdfObjectReference );
if !_agbb {return _bbd .New ("\u0070\u0061\u0067\u0065\u0073\u0020\u0069\u006e\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020b\u0065\u0020\u0061\u0020\u0072e\u0066\u0065r\u0065\u006e\u0063\u0065");};_fgbcc ,_becbg :=_dgfb ._cdggc .LookupByReference (*_ebcgf );
if _becbg !=nil {_dbg .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020F\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020r\u0065\u0061\u0064 \u0070a\u0067\u0065\u0073");return _becbg ;};_agedd ,_agbb :=_fgbcc .(*_eg .PdfIndirectObject );if !_agbb {_dbg .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020P\u0061\u0067\u0065\u0073\u0020\u006f\u0062\u006a\u0065c\u0074\u0020\u0069n\u0076a\u006c\u0069\u0064");
_dbg .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_agedd );return _bbd .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_ggcee ,_agbb :=_agedd .PdfObject .(*_eg .PdfObjectDictionary );if !_agbb {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0073\u0020\u006f\u0062j\u0065c\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0025\u0073\u0029",_agedd );
return _bbd .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_gbfeb ,_agbb :=_eg .GetInt (_ggcee .Get ("\u0043\u006f\u0075n\u0074"));if !_agbb {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0050\u0061\u0067\u0065\u0073\u0020\u0063\u006f\u0075\u006e\u0074\u0020\u006fb\u006a\u0065\u0063\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
return _bbd .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_agbb =_eg .GetName (_ggcee .Get ("\u0054\u0079\u0070\u0065"));!_agbb {_dbg .Log .Debug ("\u0050\u0061\u0067\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020T\u0079\u0070\u0065\u0020\u0066\u0069\u0065\u006cd\u0020n\u006f\u0074\u0020\u0073\u0065\u0074\u002e\u0020\u0053\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0054\u0079p\u0065\u0020\u0074\u006f\u0020\u0050\u0061\u0067\u0065\u0073\u002e");
_ggcee .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0050\u0061\u0067e\u0073"));};if _bfeca ,_cbae :=_eg .GetInt (_ggcee .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_cbae {_ecbg :=int64 (*_bfeca );_dgfb .Rotate =&_ecbg ;};_dgfb ._faafd =_ddefce ;
_dgfb ._efdg =_dafbab ;_dgfb ._faacgc =_ggcee ;_dgfb ._debff =_agedd ;_dgfb ._abddb =int (*_gbfeb );_dgfb ._dfff =[]*_eg .PdfIndirectObject {};_dgbfa :=map[_eg .PdfObject ]struct{}{};_becbg =_dgfb .buildPageList (_agedd ,nil ,_dgbfa );if _becbg !=nil {return _becbg ;
};_dbg .Log .Trace ("\u002d\u002d\u002d");_dbg .Log .Trace ("\u0054\u004f\u0043");_dbg .Log .Trace ("\u0050\u0061\u0067e\u0073");_dbg .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_dgfb ._dfff ),_dgfb ._dfff );_dgfb ._ebgea ,_becbg =_dgfb .loadOutlines ();
if _becbg !=nil {_dbg .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0062\u0075i\u006c\u0064\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065 t\u0072\u0065\u0065 \u0028%\u0073\u0029",_becbg );
return _becbg ;};_dgfb .AcroForm ,_becbg =_dgfb .loadForms ();if _becbg !=nil {return _becbg ;};_dgfb .DSS ,_becbg =_dgfb .loadDSS ();if _becbg !=nil {return _becbg ;};return nil ;};
// ToPdfObject implements interface PdfModel.
func (_edcg *PdfAnnotationInk )ToPdfObject ()_eg .PdfObject {_edcg .PdfAnnotation .ToPdfObject ();_gbbc :=_edcg ._gag ;_afe :=_gbbc .PdfObject .(*_eg .PdfObjectDictionary );_edcg .PdfAnnotationMarkup .appendToPdfDictionary (_afe );_afe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0049\u006e\u006b"));
_afe .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_edcg .InkList );_afe .SetIfNotNil ("\u0042\u0053",_edcg .BS );return _gbbc ;};
// Mask returns the uin32 bitmask for the specific flag.
func (_cfceg FieldFlag )Mask ()uint32 {return uint32 (_cfceg )};
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
func (_ggdec *PdfPattern )SetContext (ctx PdfModel ){_ggdec ._defdf =ctx };func (_ffc *PdfReader )newPdfActionHideFromDict (_bd *_eg .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_bd .Get ("\u0054"),H :_bd .Get ("\u0048")},nil ;
};func _dddgd (_eaaca _eg .PdfObject ){_dbg .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_eaaca ,_eaaca .String ());if _cgcfg ,_gaaa :=_eaaca .(*_eg .PdfObjectStream );_gaaa {_adebce ,_fdbcf :=_eg .DecodeStream (_cgcfg );
if _fdbcf !=nil {_dbg .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_fdbcf );return ;};_dbg .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_adebce );}else if _fbcfd ,_cfdbf :=_eaaca .(*_eg .PdfIndirectObject );
_cfdbf {_dbg .Log .Debug ("\u0025\u0054\u0020%\u0076",_fbcfd .PdfObject ,_fbcfd .PdfObject );_dbg .Log .Debug ("\u0025\u0073",_fbcfd .PdfObject .String ());};};
// NewPdfAnnotationRedact returns a new redact annotation.
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_cdc :=NewPdfAnnotation ();_eff :=&PdfAnnotationRedact {};_eff .PdfAnnotation =_cdc ;_eff .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cdc .SetContext (_eff );return _eff ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_bcfg *PdfShadingType5 )ToPdfObject ()_eg .PdfObject {_bcfg .PdfShading .ToPdfObject ();_cccfa ,_fdfec :=_bcfg .getShadingDict ();if _fdfec !=nil {_dbg .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
return nil ;};if _bcfg .BitsPerCoordinate !=nil {_cccfa .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_bcfg .BitsPerCoordinate );};if _bcfg .BitsPerComponent !=nil {_cccfa .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_bcfg .BitsPerComponent );
};if _bcfg .VerticesPerRow !=nil {_cccfa .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_bcfg .VerticesPerRow );};if _bcfg .Decode !=nil {_cccfa .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_bcfg .Decode );};if _bcfg .Function !=nil {if len (_bcfg .Function )==1{_cccfa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bcfg .Function [0].ToPdfObject ());
}else {_fgee :=_eg .MakeArray ();for _ ,_agbaf :=range _bcfg .Function {_fgee .Append (_agbaf .ToPdfObject ());};_cccfa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fgee );};};return _bcfg ._beag ;};
// SetContentStreams sets the content streams based on a string array. Will make
// 1 object stream for each string and reference from the page Contents.
// Each stream will be encoded using the encoding specified by the StreamEncoder,
// if empty, will use identity encoding (raw data).
func (_edbff *PdfPage )SetContentStreams (cStreams []string ,encoder _eg .StreamEncoder )error {if len (cStreams )==0{_edbff .Contents =nil ;return nil ;};if encoder ==nil {encoder =_eg .NewRawEncoder ();};var _efabe []*_eg .PdfObjectStream ;for _ ,_feadc :=range cStreams {_bfedg :=&_eg .PdfObjectStream {};
_bcegb :=encoder .MakeStreamDict ();_gfaf ,_gfgca :=encoder .EncodeBytes ([]byte (_feadc ));if _gfgca !=nil {return _gfgca ;};_bcegb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_gfaf ))));_bfedg .PdfObjectDictionary =_bcegb ;
_bfedg .Stream =_gfaf ;_efabe =append (_efabe ,_bfedg );};if len (_efabe )==1{_edbff .Contents =_efabe [0];}else {_edbcd :=_eg .MakeArray ();for _ ,_agabd :=range _efabe {_edbcd .Append (_agabd );};_edbff .Contents =_edbcd ;};return nil ;};
// ToPdfObject implements interface PdfModel.
func (_bcb *PdfActionGoTo3DView )ToPdfObject ()_eg .PdfObject {_bcb .PdfAction .ToPdfObject ();_ecf :=_bcb ._ege ;_egef :=_ecf .PdfObject .(*_eg .PdfObjectDictionary );_egef .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeGoTo3DView )));_egef .SetIfNotNil ("\u0054\u0041",_bcb .TA );
_egef .SetIfNotNil ("\u0056",_bcb .V );return _ecf ;};
// String returns a string representation of what flags are set.
func (_baecb FieldFlag )String ()string {_bfac :="";if _baecb ==FieldFlagClear {_bfac ="\u0043\u006c\u0065a\u0072";return _bfac ;};if _baecb &FieldFlagReadOnly > 0{_bfac +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _baecb &FieldFlagRequired > 0{_bfac +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";
};if _baecb &FieldFlagNoExport > 0{_bfac +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _baecb &FieldFlagNoToggleToOff > 0{_bfac +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _baecb &FieldFlagRadio > 0{_bfac +="\u007c\u0052\u0061\u0064\u0069\u006f";
};if _baecb &FieldFlagPushbutton > 0{_bfac +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _baecb &FieldFlagRadiosInUnision > 0{_bfac +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _baecb &FieldFlagMultiline > 0{_bfac +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";
};if _baecb &FieldFlagPassword > 0{_bfac +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _baecb &FieldFlagFileSelect > 0{_bfac +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _baecb &FieldFlagDoNotScroll > 0{_bfac +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";
};if _baecb &FieldFlagComb > 0{_bfac +="\u007c\u0043\u006fm\u0062";};if _baecb &FieldFlagRichText > 0{_bfac +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _baecb &FieldFlagDoNotSpellCheck > 0{_bfac +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";
};if _baecb &FieldFlagCombo > 0{_bfac +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _baecb &FieldFlagEdit > 0{_bfac +="\u007c\u0045\u0064i\u0074";};if _baecb &FieldFlagSort > 0{_bfac +="\u007c\u0053\u006fr\u0074";};if _baecb &FieldFlagMultiSelect > 0{_bfac +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";
};if _baecb &FieldFlagCommitOnSelChange > 0{_bfac +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _dc .Trim (_bfac ,"\u007c");};
// NewPdfAnnotationProjection returns a new projection annotation.
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_ffg :=NewPdfAnnotation ();_cfd :=&PdfAnnotationProjection {};_cfd .PdfAnnotation =_ffg ;_cfd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ffg .SetContext (_cfd );return _cfd ;};
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
type PdfAppender struct{_gcbb _de .ReadSeeker ;_fbdd *_eg .PdfParser ;_acdg *PdfReader ;Reader *PdfReader ;_bfce []*PdfPage ;_ggcc *PdfAcroForm ;_aegd *DSS ;_cdga _eg .XrefTable ;_cfaf int64 ;_dace int ;_acda []_eg .PdfObject ;_adge map[_eg .PdfObject ]struct{};
_bddd map[_eg .PdfObject ]int64 ;_agaa map[_eg .PdfObject ]struct{};_baeg map[_eg .PdfObject ]struct{};_ade int64 ;_fabe bool ;};
// PdfColor interface represents a generic color in PDF.
type PdfColor interface{};
// NewPdfColorCalGray returns a new CalGray color.
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_gcddg :=PdfColorCalGray (grayVal );return &_gcddg ;};
// FullName returns the full name of the field as in rootname.parentname.partialname.
func (_dfg *PdfField )FullName ()(string ,error ){var _gdeb _cbd .Buffer ;_fdbd :=[]string {};if _dfg .T !=nil {_fdbd =append (_fdbd ,_dfg .T .Decoded ());};_fccg :=map[*PdfField ]bool {};_fccg [_dfg ]=true ;_feda :=_dfg .Parent ;for _feda !=nil {if _ ,_feff :=_fccg [_feda ];
_feff {return _gdeb .String (),_bbd .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _feda .T ==nil {return _gdeb .String (),_bbd .New ("\u0066\u0069el\u0064\u0020\u0070a\u0072\u0074\u0069\u0061l n\u0061me\u0020\u0028\u0054\u0029\u0020\u006e\u006ft \u0073\u0070\u0065\u0063\u0069\u0066\u0069e\u0064");
};_fdbd =append (_fdbd ,_feda .T .Decoded ());_fccg [_feda ]=true ;_feda =_feda .Parent ;};for _bdfg :=len (_fdbd )-1;_bdfg >=0;_bdfg --{_gdeb .WriteString (_fdbd [_bdfg ]);if _bdfg > 0{_gdeb .WriteString ("\u002e");};};return _gdeb .String (),nil ;};
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
func NewPdfOutlineItem ()*PdfOutlineItem {_bdega :=&PdfOutlineItem {_bfega :_eg .MakeIndirectObject (_eg .MakeDict ())};_bdega ._dbaeb =_bdega ;return _bdega ;};func _dddfc (_agfc _eg .PdfObject )(*PdfFunctionType2 ,error ){_cbbff :=&PdfFunctionType2 {};
var _ccae *_eg .PdfObjectDictionary ;if _gbee ,_faeeb :=_agfc .(*_eg .PdfIndirectObject );_faeeb {_ggafa ,_egefd :=_gbee .PdfObject .(*_eg .PdfObjectDictionary );if !_egefd {return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_cbbff ._daaf =_gbee ;_ccae =_ggafa ;}else if _ebgba ,_bbdfdd :=_agfc .(*_eg .PdfObjectDictionary );_bbdfdd {_ccae =_ebgba ;}else {return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dbg .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_ccae .String ());
_dgeda ,_ccddg :=_eg .TraceToDirectObject (_ccae .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eg .PdfObjectArray );if !_ccddg {_dbg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bbd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};if _dgeda .Len ()< 0||_dgeda .Len ()%2!=0{_dbg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_bbd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
};_debeb ,_dcdec :=_dgeda .ToFloat64Array ();if _dcdec !=nil {return nil ,_dcdec ;};_cbbff .Domain =_debeb ;_dgeda ,_ccddg =_eg .TraceToDirectObject (_ccae .Get ("\u0052\u0061\u006eg\u0065")).(*_eg .PdfObjectArray );if _ccddg {if _dgeda .Len ()< 0||_dgeda .Len ()%2!=0{return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_bacdc ,_abebe :=_dgeda .ToFloat64Array ();if _abebe !=nil {return nil ,_abebe ;};_cbbff .Range =_bacdc ;};_dgeda ,_ccddg =_eg .TraceToDirectObject (_ccae .Get ("\u0043\u0030")).(*_eg .PdfObjectArray );if _ccddg {_ecegd ,_fcabd :=_dgeda .ToFloat64Array ();
if _fcabd !=nil {return nil ,_fcabd ;};_cbbff .C0 =_ecegd ;};_dgeda ,_ccddg =_eg .TraceToDirectObject (_ccae .Get ("\u0043\u0031")).(*_eg .PdfObjectArray );if _ccddg {_fcabf ,_eddb :=_dgeda .ToFloat64Array ();if _eddb !=nil {return nil ,_eddb ;};_cbbff .C1 =_fcabf ;
};if len (_cbbff .C0 )!=len (_cbbff .C1 ){_dbg .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_eg .ErrRangeError ;};N ,_dcdec :=_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_ccae .Get ("\u004e")));
if _dcdec !=nil {_dbg .Log .Error ("\u004e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020o\u0072\u0020\u0069\u006e\u0076\u0061\u006ci\u0064\u002c\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_ccae .String ());return nil ,_dcdec ;};_cbbff .N =N ;
return _cbbff ,nil ;};
// ToPdfObject returns a PDF object representation of the outline.
func (_fegab *Outline )ToPdfObject ()_eg .PdfObject {return _fegab .ToPdfOutline ().ToPdfObject ()};
// A PdfPattern can represent a Pattern, either a tiling pattern or a shading pattern.
// Note that all patterns shall be treated as colours; a Pattern colour space shall be established with the CS or cs
// operator just like other colour spaces, and a particular pattern shall be installed as the current colour with the
// SCN or scn operator.
type PdfPattern struct{
// Type: Pattern
PatternType int64 ;_defdf PdfModel ;_cfaag _eg .PdfObject ;};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);
// NewPdfAnnotationPolygon returns a new polygon annotation.
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_efa :=NewPdfAnnotation ();_fedd :=&PdfAnnotationPolygon {};_fedd .PdfAnnotation =_efa ;_fedd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_efa .SetContext (_fedd );return _fedd ;};func _gdbee ()_ee .Time {_egbeg .Lock ();
defer _egbeg .Unlock ();return _gbbee };
// ImageToRGB returns the passed in image. Method exists in order to satisfy
// the PdfColorspace interface.
func (_ccfe *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };func _edca ()string {_egbeg .Lock ();defer _egbeg .Unlock ();return _dfdfdc };
// FontDescriptor returns font's PdfFontDescriptor. This may be a builtin descriptor for standard 14
// fonts but must be an explicit descriptor for other fonts.
func (_dbgcb *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _dbgcb .baseFields ()._eecfe !=nil {return _dbgcb .baseFields ()._eecfe ;};if _cebf :=_dbgcb ._gdcab .getFontDescriptor ();_cebf !=nil {return _cebf ;};_dbg .Log .Error ("\u0041\u006cl \u0066\u006f\u006et\u0073\u0020\u0068\u0061ve \u0061 D\u0065\u0073\u0063\u0072\u0069\u0070\u0074or\u002e\u0020\u0066\u006f\u006e\u0074\u003d%\u0073",_dbgcb );
return nil ;};
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
func (_aabad *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_fbdgc :=_ccg .NewReader (img .getBase ());_baadd :=_ff .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._fcec ,img ._aaeac );
_abef :=_ccg .NewWriter (_baadd );_afcc :=_bc .Pow (2,float64 (img .BitsPerComponent ))-1;_fdagc :=_aabad .GetNumComponents ();_gbfb :=make ([]uint32 ,_fdagc );_ffda :=make ([]float64 ,_fdagc );for {_ggae :=_fbdgc .ReadSamples (_gbfb );if _ggae ==_de .EOF {break ;
}else if _ggae !=nil {return img ,_ggae ;};for _fbbe :=0;_fbbe < _fdagc ;_fbbe ++{_cagd :=float64 (_gbfb [_fbbe ])/_afcc ;_ffda [_fbbe ]=_cagd ;};_gdaf ,_ggae :=_aabad .TintTransform .Evaluate (_ffda );if _ggae !=nil {return img ,_ggae ;};for _ ,_abeb :=range _gdaf {_abeb =_bc .Min (_bc .Max (0,_abeb ),1.0);
if _ggae =_abef .WriteSample (uint32 (_abeb *_afcc ));_ggae !=nil {return img ,_ggae ;};};};return _aabad .AlternateSpace .ImageToRGB (_egbde (&_baadd ));};
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
type ContentStreamWrapper interface{WrapContentStream (_dcef *PdfPage )error ;};
// PdfAnnotationLine represents Line annotations.
// (Section 12.5.6.7).
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _eg .PdfObject ;BS _eg .PdfObject ;LE _eg .PdfObject ;IC _eg .PdfObject ;LL _eg .PdfObject ;LLE _eg .PdfObject ;Cap _eg .PdfObject ;IT _eg .PdfObject ;LLO _eg .PdfObject ;CP _eg .PdfObject ;
Measure _eg .PdfObject ;CO _eg .PdfObject ;};
// ToPdfObject returns the PDF representation of the page resources.
func (_eaca *PdfPageResources )ToPdfObject ()_eg .PdfObject {_gdgc :=_eaca ._fbcbc ;_gdgc .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_eaca .ExtGState );if _eaca ._gecbc !=nil {_eaca .ColorSpace =_eaca ._gecbc .ToPdfObject ();};_gdgc .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_eaca .ColorSpace );
_gdgc .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_eaca .Pattern );_gdgc .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_eaca .Shading );_gdgc .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_eaca .XObject );_gdgc .SetIfNotNil ("\u0046\u006f\u006e\u0074",_eaca .Font );
_gdgc .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_eaca .ProcSet );_gdgc .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_eaca .Properties );return _gdgc ;};func _gbdcf (_eabccd *_eg .PdfObjectArray )(float64 ,error ){_aegdc ,_bfage :=_eabccd .ToFloat64Array ();
if _bfage !=nil {_dbg .Log .Debug ("\u0042\u0061\u0064\u0020\u004d\u0061\u0074\u0074\u0065\u0020\u0061\u0072\u0072\u0061\u0079:\u0020m\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_eabccd ,_bfage );};switch len (_aegdc ){case 1:return _aegdc [0],nil ;
case 3:_begbe :=PdfColorspaceDeviceRGB {};_cdbae ,_fbbacf :=_begbe .ColorFromFloats (_aegdc );if _fbbacf !=nil {return 0.0,_fbbacf ;};return _cdbae .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_agggad :=PdfColorspaceDeviceCMYK {};_fddab ,_ededg :=_agggad .ColorFromFloats (_aegdc );
if _ededg !=nil {return 0.0,_ededg ;};_geegd ,_ededg :=_agggad .ColorToRGB (_fddab .(*PdfColorDeviceCMYK ));if _ededg !=nil {return 0.0,_ededg ;};return _geegd .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;};_bfage =_bbd .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");
_dbg .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_eabccd ,_bfage );return 0.0,_bfage ;};
// Clear clears flag fl from the flag and returns the resulting flag.
func (_fcfgg FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_fcfgg .Mask ()&^fl .Mask ())};
// GetNumComponents returns the number of color components (3 for Lab).
func (_dgecf *PdfColorLab )GetNumComponents ()int {return 3};var (_egbeg _eb .Mutex ;_dfdfdc ="";_gbbee _ee .Time ;_ebgfe ="";_bbgff ="";_cced _ee .Time ;_gdagd ="";_gfcae ="";_dgage ="";);
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_faed *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_faed .Base .GetNumComponents ();_gdgbdg :=int (vals [0])*N ;
if _gdgbdg < 0||(_gdgbdg +N -1)>=len (_faed ._dbcc ){return nil ,_bbd .New ("\u006f\u0075\u0074\u0073\u0069\u0064\u0065\u0020\u0072\u0061\u006e\u0067\u0065");};_ddgc :=_faed ._dbcc [_gdgbdg :_gdgbdg +N ];var _abdc []float64 ;for _ ,_bcdb :=range _ddgc {_abdc =append (_abdc ,float64 (_bcdb )/255.0);
};_adgc ,_abcg :=_faed .Base .ColorFromFloats (_abdc );if _abcg !=nil {return nil ,_abcg ;};return _adgc ,nil ;};func _dbbge ()*modelManager {_fdfgg :=modelManager {};_fdfgg ._eegb =map[PdfModel ]_eg .PdfObject {};_fdfgg ._bfgf =map[_eg .PdfObject ]PdfModel {};
return &_fdfgg ;};
// NewPdfDateFromTime will create a PdfDate based on the given time
func NewPdfDateFromTime (timeObj _ee .Time )(PdfDate ,error ){_aefc :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_ecfbf ,_ :=_db .ParseInt (_aefc [1:3],10,32);_gdggg ,_ :=_db .ParseInt (_aefc [4:6],10,32);return PdfDate {_cggcf :int64 (timeObj .Year ()),_agfdbf :int64 (timeObj .Month ()),_ebfff :int64 (timeObj .Day ()),_bfabc :int64 (timeObj .Hour ()),_edagg :int64 (timeObj .Minute ()),_ggcbe :int64 (timeObj .Second ()),_facfb :_aefc [0],_gaggg :_ecfbf ,_daabe :_gdggg },nil ;
};
// GetCharMetrics returns the char metrics for character code `code`.
func (_eeec pdfCIDFontType0 )GetCharMetrics (code _cec .CharCode )(_ab .CharMetrics ,bool ){_aeda :=_eeec ._gfbab ;if _fdaec ,_fcgg :=_eeec ._fedfd [code ];_fcgg {_aeda =_fdaec ;};return _ab .CharMetrics {Wx :_aeda },true ;};
// ToPdfObject sets the common field elements.
// Note: Call the more field context's ToPdfObject to set both the generic and
// non-generic information.
func (_ebed *PdfField )ToPdfObject ()_eg .PdfObject {_degf :=_ebed ._afbe ;_beebe :=_degf .PdfObject .(*_eg .PdfObjectDictionary );_dcdaf :=_eg .MakeArray ();for _ ,_dbe :=range _ebed .Kids {_dcdaf .Append (_dbe .ToPdfObject ());};for _ ,_febf :=range _ebed .Annotations {if _febf ._gag !=_ebed ._afbe {_dcdaf .Append (_febf .GetContext ().ToPdfObject ());
};};if _ebed .Parent !=nil {_beebe .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_ebed .Parent .GetContainingPdfObject ());};if _dcdaf .Len ()> 0{_beebe .Set ("\u004b\u0069\u0064\u0073",_dcdaf );};_beebe .SetIfNotNil ("\u0046\u0054",_ebed .FT );
_beebe .SetIfNotNil ("\u0054",_ebed .T );_beebe .SetIfNotNil ("\u0054\u0055",_ebed .TU );_beebe .SetIfNotNil ("\u0054\u004d",_ebed .TM );_beebe .SetIfNotNil ("\u0046\u0066",_ebed .Ff );_beebe .SetIfNotNil ("\u0056",_ebed .V );_beebe .SetIfNotNil ("\u0044\u0056",_ebed .DV );
_beebe .SetIfNotNil ("\u0041\u0041",_ebed .AA );return _degf ;};func _dccbga (_eefce *[]*PdfField ,_ccgb FieldFilterFunc ,_gcec bool )[]*PdfField {if _eefce ==nil {return nil ;};_bgbfg :=*_eefce ;if len (*_eefce )==0{return nil ;};_ccff :=_bgbfg [:0];if _ccgb ==nil {_ccgb =func (*PdfField )bool {return true };
};var _bffcd []*PdfField ;for _ ,_cfafc :=range _bgbfg {_fegf :=_ccgb (_cfafc );if _fegf {_bffcd =append (_bffcd ,_cfafc );if len (_cfafc .Kids )> 0{_bffcd =append (_bffcd ,_dccbga (&_cfafc .Kids ,_ccgb ,_gcec )...);};};if !_gcec ||!_fegf ||len (_cfafc .Kids )> 0{_ccff =append (_ccff ,_cfafc );
};};*_eefce =_ccff ;return _bffcd ;};
// SetOCProperties sets the optional content properties.
func (_bebag *PdfWriter )SetOCProperties (ocProperties _eg .PdfObject )error {_eedfe :=_bebag ._ebaaa ;if ocProperties !=nil {_dbg .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");
_eedfe .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _bebag .addObjects (ocProperties );};return nil ;};
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
// the current instance.
func (_daebe *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_daebe .ToPdfOutline ().PdfOutlineTreeNode ;};
// PdfAnnotationRedact represents Redact annotations.
// (Section 12.5.6.23).
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eg .PdfObject ;IC _eg .PdfObject ;RO _eg .PdfObject ;OverlayText _eg .PdfObject ;Repeat _eg .PdfObject ;DA _eg .PdfObject ;Q _eg .PdfObject ;};func (_gdgbd *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";
};
// Image interface is a basic representation of an image used in PDF.
// The colorspace is not specified, but must be known when handling the image.
type Image struct{Width int64 ;Height int64 ;BitsPerComponent int64 ;ColorComponents int ;Data []byte ;_fcec []byte ;_aaeac []float64 ;};
// NewPdfAnnotationMovie returns a new movie annotation.
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_ggge :=NewPdfAnnotation ();_fgcc :=&PdfAnnotationMovie {};_fgcc .PdfAnnotation =_ggge ;_ggge .SetContext (_fgcc );return _fgcc ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_deca pdfFontType3 )GetRuneMetrics (r rune )(_ab .CharMetrics ,bool ){_bccd :=_deca .Encoder ();if _bccd ==nil {_dbg .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_deca );
return _ab .CharMetrics {},false ;};_fbge ,_edag :=_bccd .RuneToCharcode (r );if !_edag {if r !=' '{_dbg .Log .Trace ("\u004e\u006f\u0020c\u0068\u0061\u0072\u0063o\u0064\u0065\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u003d\u0025\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",r ,_deca );
};return _ab .CharMetrics {},false ;};_cbfa ,_eedbc :=_deca .GetCharMetrics (_fbge );return _cbfa ,_eedbc ;};
// PdfAnnotationHighlight represents Highlight annotations.
// (Section 12.5.6.10).
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eg .PdfObject ;};
// PdfAnnotationPrinterMark represents PrinterMark annotations.
// (Section 12.5.6.20).
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _eg .PdfObject ;};
// GetFontDescriptor returns the font descriptor for `font`.
func (_ddadg PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _ddadg ._gdcab .getFontDescriptor (),nil ;};
// PdfShadingType6 is a Coons patch mesh.
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_eg .PdfObjectInteger ;BitsPerComponent *_eg .PdfObjectInteger ;BitsPerFlag *_eg .PdfObjectInteger ;Decode *_eg .PdfObjectArray ;Function []PdfFunction ;};var _aced =_ge .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");
func _geec (_cgdg string )map[string ]string {_abfca :=_aced .Split (_cgdg ,-1);_beed :=map[string ]string {};for _ ,_cgceg :=range _abfca {_ccde :=_bbed .FindStringSubmatch (_cgceg );if _ccde ==nil {continue ;};_daef ,_aafbc :=_ccde [1],_ccde [2];_beed [_daef ]=_aafbc ;
};return _beed ;};
// ColorToRGB converts gray -> rgb for a single color component.
func (_edbc *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_abgb ,_ceed :=color .(*PdfColorDeviceGray );if !_ceed {_dbg .Log .Debug ("\u0049\u006e\u0070\u0075\u0074\u0020\u0063\u006f\u006c\u006fr\u0020\u006e\u006f\u0074\u0020\u0064\u0065v\u0069\u0063\u0065\u0020\u0067\u0072\u0061\u0079\u0020\u0025\u0054",color );
return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_abgb ),float64 (*_abgb ),float64 (*_abgb )),nil ;};
// Set applies flag fl to the flag's bitmask and returns the combined flag.
func (_bfef FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_bfef .Mask ()|fl .Mask ())};func (_ddeg *PdfReader )newPdfAnnotationMovieFromDict (_agfb *_eg .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_gedf :=PdfAnnotationMovie {};_gedf .T =_agfb .Get ("\u0054");
_gedf .Movie =_agfb .Get ("\u004d\u006f\u0076i\u0065");_gedf .A =_agfb .Get ("\u0041");return &_gedf ,nil ;};func (_edc *PdfReader )newPdfAnnotationStrikeOut (_babc *_eg .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_gcb :=PdfAnnotationStrikeOut {};
_dgc ,_bgbe :=_edc .newPdfAnnotationMarkupFromDict (_babc );if _bgbe !=nil {return nil ,_bgbe ;};_gcb .PdfAnnotationMarkup =_dgc ;_gcb .QuadPoints =_babc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_gcb ,nil ;};func _aaaad (_bgcfd *_eg .PdfIndirectObject )(*PdfOutline ,error ){_dffag ,_bffec :=_bgcfd .PdfObject .(*_eg .PdfObjectDictionary );
if !_bffec {return nil ,_e .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};_cfdec :=NewPdfOutline ();if _bdegg :=_dffag .Get ("\u0054\u0079\u0070\u0065");
_bdegg !=nil {_eddcd ,_bdad :=_bdegg .(*_eg .PdfObjectName );if _bdad {if *_eddcd !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_dbg .Log .Debug ("E\u0052\u0052\u004f\u0052\u0020\u0054y\u0070\u0065\u0020\u0021\u003d\u0020\u004f\u0075\u0074l\u0069\u006e\u0065s\u0020(\u0025\u0073\u0029",*_eddcd );
};};};if _gcae :=_dffag .Get ("\u0043\u006f\u0075n\u0074");_gcae !=nil {_edgd ,_efdfe :=_eg .GetNumberAsInt64 (_gcae );if _efdfe !=nil {return nil ,_efdfe ;};_cfdec .Count =&_edgd ;};return _cfdec ,nil ;};func (_efe *PdfReader )newPdfActionGotoRFromDict (_baa *_eg .PdfObjectDictionary )(*PdfActionGoToR ,error ){_dfe ,_eecf :=_gbbe (_baa .Get ("\u0046"));
if _eecf !=nil {return nil ,_eecf ;};return &PdfActionGoToR {D :_baa .Get ("\u0044"),NewWindow :_baa .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_dfe },nil ;};func (_ggdbdd *PdfWriter )addObjects (_bbgdc _eg .PdfObject )error {_dbg .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");
if _ecgb ,_cgaa :=_bbgdc .(*_eg .PdfIndirectObject );_cgaa {_dbg .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_dbg .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_bbgdc ,_ecgb );_dbg .Log .Trace ("\u002d\u0020\u0025\u0073",_ecgb .PdfObject );
if _ggdbdd .addObject (_ecgb ){_fedeec :=_ggdbdd .addObjects (_ecgb .PdfObject );if _fedeec !=nil {return _fedeec ;};};return nil ;};if _ddfa ,_gfefa :=_bbgdc .(*_eg .PdfObjectStream );_gfefa {_dbg .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_dbg .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_bbgdc ,_bbgdc );
if _ggdbdd .addObject (_ddfa ){_gbcad :=_ggdbdd .addObjects (_ddfa .PdfObjectDictionary );if _gbcad !=nil {return _gbcad ;};};return nil ;};if _dbeac ,_eeade :=_bbgdc .(*_eg .PdfObjectDictionary );_eeade {_dbg .Log .Trace ("\u0044\u0069\u0063\u0074");_dbg .Log .Trace ("\u002d\u0020\u0025\u0073",_bbgdc );
for _ ,_cabfcg :=range _dbeac .Keys (){_fdea :=_dbeac .Get (_cabfcg );if _fcgga ,_agcc :=_fdea .(*_eg .PdfObjectReference );_agcc {_fdea =_fcgga .Resolve ();_dbeac .Set (_cabfcg ,_fdea );};if _cabfcg !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _ffcfg :=_ggdbdd .addObjects (_fdea );
_ffcfg !=nil {return _ffcfg ;};}else {if _ ,_aeffe :=_fdea .(*_eg .PdfObjectNull );_aeffe {continue ;};if _fdgacf :=_ggdbdd .hasObject (_fdea );!_fdgacf {_dbg .Log .Debug ("P\u0061\u0072\u0065\u006e\u0074\u0020o\u0062\u006a\u0020\u006e\u006f\u0074 \u0061\u0064\u0064\u0065\u0064\u0020\u0079e\u0074\u0021\u0021\u0020\u0025\u0054\u0020\u0025\u0070\u0020%\u0076",_fdea ,_fdea ,_fdea );
_ggdbdd ._cfadb [_fdea ]=append (_ggdbdd ._cfadb [_fdea ],_dbeac );};};};return nil ;};if _gebee ,_cacg :=_bbgdc .(*_eg .PdfObjectArray );_cacg {_dbg .Log .Trace ("\u0041\u0072\u0072a\u0079");_dbg .Log .Trace ("\u002d\u0020\u0025\u0073",_bbgdc );if _gebee ==nil {return _bbd .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
};for _agbcgc ,_ebaba :=range _gebee .Elements (){if _dcfd ,_ecgbf :=_ebaba .(*_eg .PdfObjectReference );_ecgbf {_ebaba =_dcfd .Resolve ();_gebee .Set (_agbcgc ,_ebaba );};if _aedcb :=_ggdbdd .addObjects (_ebaba );_aedcb !=nil {return _aedcb ;};};return nil ;
};if _ ,_cdbd :=_bbgdc .(*_eg .PdfObjectReference );_cdbd {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043\u0061\u006e\u006e\u006f\u0074 \u0062\u0065\u0020\u0061\u0020\u0072e\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0020\u002d\u0020\u0067\u006f\u0074 \u0025\u0023\u0076\u0021",_bbgdc );
return _bbd .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};
// NewPdfFieldSignature returns an initialized signature field.
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_dcca :=&PdfFieldSignature {};_dcca .PdfField =NewPdfField ();_dcca .PdfField .SetContext (_dcca );_dcca .PdfAnnotationWidget =NewPdfAnnotationWidget ();_dcca .PdfAnnotationWidget .SetContext (_dcca );
_dcca .PdfAnnotationWidget ._gag =_dcca .PdfField ._afbe ;_dcca .T =_eg .MakeString ("");_dcca .F =_eg .MakeInteger (132);_dcca .V =signature ;return _dcca ;};
// GetContainingPdfObject implements interface PdfModel.
func (_bdge *PdfAnnotation )GetContainingPdfObject ()_eg .PdfObject {return _bdge ._gag };
// PdfColorspaceSpecialIndexed is an indexed color space is a lookup table, where the input element
// is an index to the lookup table and the output is a color defined in the lookup table in the Base
// colorspace.
// [/Indexed base hival lookup]
type PdfColorspaceSpecialIndexed struct{Base PdfColorspace ;HiVal int ;Lookup _eg .PdfObject ;_dbcc []byte ;_cbdga *_eg .PdfIndirectObject ;};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);
// FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other
// flags are specific.
type FieldFlag uint32 ;func _ebbgf (_bfcbc *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_ddgfc ,_dgge :=_eg .GetDict (_bfcbc .AP );if !_dgge {return nil ,nil ,_bbd .New ("f\u0069\u0065\u006c\u0064\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u0020\u0041\u0050\u0020d\u0069\u0063\u0074i\u006fn\u0061\u0072\u0079");
};if _ddgfc ==nil {return nil ,nil ,nil ;};_adae ,_dgge :=_eg .GetArray (_bfcbc .Rect );if !_dgge ||_adae .Len ()!=4{return nil ,nil ,_bbd .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_aaaef ,_facf :=NewPdfRectangle (*_adae );
if _facf !=nil {return nil ,nil ,_facf ;};_dfbe :=_eg .TraceToDirectObject (_ddgfc .Get ("\u004e"));switch _bgdad :=_dfbe .(type ){case *_eg .PdfObjectStream :_cgfa :=_bgdad ;_cabgg ,_ggebb :=NewXObjectFormFromStream (_cgfa );return _cabgg ,_aaaef ,_ggebb ;
case *_eg .PdfObjectDictionary :_geeb :=_bgdad ;_cbfec ,_ggcd :=_eg .GetName (_bfcbc .AS );if !_ggcd {return nil ,nil ,nil ;};if _geeb .Get (*_cbfec )==nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0041\u0053\u0020\u0073\u0074\u0061\u0074\u0065\u0020\u006e\u006f\u0074 \u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0069\u006e\u0020\u0041\u0050\u0020\u0064\u0069\u0063\u0074\u0020\u002d\u0020\u0069\u0067\u006e\u006f\u0072\u0069\u006eg");
return nil ,nil ,nil ;};_bdebb ,_ggcd :=_eg .GetStream (_geeb .Get (*_cbfec ));if !_ggcd {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055n\u0061\u0062\u006ce \u0074\u006f\u0020\u0061\u0063\u0063e\u0073\u0073\u0020\u0061\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u0073t\u0072\u0065\u0061\u006d\u0020\u0066\u006f\u0072 \u0025\u0076",_cbfec );
return nil ,nil ,_bbd .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_ddefc ,_aceg :=NewXObjectFormFromStream (_bdebb );return _ddefc ,_aaaef ,_aceg ;};_dbg .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_dfbe );
return nil ,nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};
// SetType sets the field button's type. Can be one of:
// - PdfFieldButtonPush for push button fields
// - PdfFieldButtonCheckbox for checkbox fields
// - PdfFieldButtonRadio for radio button fields
// This sets the field's flag appropriately.
func (_egcb *PdfFieldButton )SetType (btype ButtonType ){_eccf :=uint32 (0);if _egcb .Ff !=nil {_eccf =uint32 (*_egcb .Ff );};switch btype {case ButtonTypePush :_eccf |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_eccf |=FieldFlagRadio .Mask ();
};_egcb .Ff =_eg .MakeInteger (int64 (_eccf ));};
// Y returns the value of the yellow component of the color.
func (_gggb *PdfColorDeviceCMYK )Y ()float64 {return _gggb [2]};
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
// Evaluate runs the function on the passed in slice and returns the results.
func (_cdgeg *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_dbg .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};return nil ,_bbd .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};
// ToPdfObject returns the PDF representation of the colorspace.
func (_aafbd *PdfColorspaceDeviceCMYK )ToPdfObject ()_eg .PdfObject {return _eg .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
// PdfFontDescriptor specifies metrics and other attributes of a font and can refer to a FontFile
// for embedded fonts.
// 9.8 Font Descriptors (page 281)
type PdfFontDescriptor struct{FontName _eg .PdfObject ;FontFamily _eg .PdfObject ;FontStretch _eg .PdfObject ;FontWeight _eg .PdfObject ;Flags _eg .PdfObject ;FontBBox _eg .PdfObject ;ItalicAngle _eg .PdfObject ;Ascent _eg .PdfObject ;Descent _eg .PdfObject ;
Leading _eg .PdfObject ;CapHeight _eg .PdfObject ;XHeight _eg .PdfObject ;StemV _eg .PdfObject ;StemH _eg .PdfObject ;AvgWidth _eg .PdfObject ;MaxWidth _eg .PdfObject ;MissingWidth _eg .PdfObject ;FontFile _eg .PdfObject ;FontFile2 _eg .PdfObject ;FontFile3 _eg .PdfObject ;
CharSet _eg .PdfObject ;_eaafa int ;_afce float64 ;*fontFile ;_bgcbd *_ab .TtfType ;
// Additional entries for CIDFonts
Style _eg .PdfObject ;Lang _eg .PdfObject ;FD _eg .PdfObject ;CIDSet _eg .PdfObject ;_fcfbbf *_eg .PdfIndirectObject ;};
// NewPdfColorCalRGB returns a new CalRBG color.
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_dccd :=PdfColorCalRGB {a ,b ,c };return &_dccd ;};
// PdfActionNamed represents a named action.
type PdfActionNamed struct{*PdfAction ;N _eg .PdfObject ;};
// PdfAnnotationFileAttachment represents FileAttachment annotations.
// (Section 12.5.6.15).
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _eg .PdfObject ;Name _eg .PdfObject ;};
// Add appends a top level outline item to the outline.
func (_gdce *Outline )Add (item *OutlineItem ){_gdce .Entries =append (_gdce .Entries ,item )};
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
// error is returned.
func NewPdfFontFromPdfObject (fontObj _eg .PdfObject )(*PdfFont ,error ){return _cdac (fontObj ,true )};
// NewPdfOutlineTree returns an initialized PdfOutline tree.
func NewPdfOutlineTree ()*PdfOutline {_ggdf :=NewPdfOutline ();_ggdf ._dbaeb =&_ggdf ;return _ggdf };func (_bfeb *PdfReader )newPdfAnnotation3DFromDict (_bggc *_eg .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_gfbe :=PdfAnnotation3D {};_gfbe .T3DD =_bggc .Get ("\u0033\u0044\u0044");
_gfbe .T3DV =_bggc .Get ("\u0033\u0044\u0056");_gfbe .T3DA =_bggc .Get ("\u0033\u0044\u0041");_gfbe .T3DI =_bggc .Get ("\u0033\u0044\u0049");_gfbe .T3DB =_bggc .Get ("\u0033\u0044\u0042");return &_gfbe ,nil ;};
// String returns a string representation of the field.
func (_bgegc *PdfField )String ()string {if _bbfa ,_gdgbg :=_bgegc .ToPdfObject ().(*_eg .PdfIndirectObject );_gdgbg {return _e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_bgegc ._ceag ,_bbfa .PdfObject .String ());};return "";};func (_egec *fontFile )loadFromSegments (_bgfgg ,_bcbgc []byte )error {_dbg .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_bgfgg ),len (_bcbgc ));
_agce :=_egec .parseASCIIPart (_bgfgg );if _agce !=nil {return _agce ;};_dbg .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_egec );if len (_bcbgc )==0{return nil ;};_dbg .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_egec );
return nil ;};func (_bbaf *PdfAnnotation )String ()string {_feb :="";_daa ,_agg :=_bbaf .ToPdfObject ().(*_eg .PdfIndirectObject );if _agg {_feb =_e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_bbaf ._ffbe ,_daa .PdfObject .String ());};return _feb ;
};func (_cefb *PdfReader )newPdfAnnotationScreenFromDict (_bbb *_eg .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_fgbe :=PdfAnnotationScreen {};_fgbe .T =_bbb .Get ("\u0054");_fgbe .MK =_bbb .Get ("\u004d\u004b");_fgbe .A =_bbb .Get ("\u0041");
_fgbe .AA =_bbb .Get ("\u0041\u0041");return &_fgbe ,nil ;};
// GetNumComponents returns the number of color components (3 for CalRGB).
func (_gdegb *PdfColorCalRGB )GetNumComponents ()int {return 3};func (_cfdd *PdfReader )newPdfAnnotationFromIndirectObject (_degc *_eg .PdfIndirectObject )(*PdfAnnotation ,error ){_agb ,_ffgg :=_degc .PdfObject .(*_eg .PdfObjectDictionary );if !_ffgg {return nil ,_e .Errorf ("\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006ft\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};if model :=_cfdd ._gced .GetModelFromPrimitive (_agb );model !=nil {_egg ,_aab :=model .(*PdfAnnotation );if !_aab {return nil ,_e .Errorf ("\u0063\u0061\u0063\u0068\u0065\u0064 \u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050D\u0046\u0020\u0061\u006e\u006e\u006f\u0074a\u0074\u0069\u006f\u006e");
};return _egg ,nil ;};_egdf :=&PdfAnnotation {};_egdf ._gag =_degc ;_cfdd ._gced .Register (_agb ,_egdf );if _ebcde :=_agb .Get ("\u0054\u0079\u0070\u0065");_ebcde !=nil {_dcgb ,_egbg :=_ebcde .(*_eg .PdfObjectName );if !_egbg {_dbg .Log .Trace ("\u0049\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u0021\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u006f\u0066\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029\u0020\u002d\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u004e\u0061m\u0065",_ebcde );
}else {if *_dcgb !="\u0041\u006e\u006eo\u0074"{_dbg .Log .Trace ("\u0055\u006e\u0073\u0075\u0073\u0070\u0065\u0063\u0074\u0065d\u0020\u0054\u0079\u0070\u0065\u0020\u0021=\u0020\u0041\u006e\u006e\u006f\u0074\u0020\u0028\u0025\u0073\u0029",*_dcgb );};};};
if _adbe :=_agb .Get ("\u0052\u0065\u0063\u0074");_adbe !=nil {_egdf .Rect =_adbe ;};if _afcf :=_agb .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_afcf !=nil {_egdf .Contents =_afcf ;};if _abbd :=_agb .Get ("\u0050");_abbd !=nil {_egdf .P =_abbd ;
};if _dafe :=_agb .Get ("\u004e\u004d");_dafe !=nil {_egdf .NM =_dafe ;};if _bdgd :=_agb .Get ("\u004d");_bdgd !=nil {_egdf .M =_bdgd ;};if _cfg :=_agb .Get ("\u0046");_cfg !=nil {_egdf .F =_cfg ;};if _gfgd :=_agb .Get ("\u0041\u0050");_gfgd !=nil {_egdf .AP =_gfgd ;
};if _gdag :=_agb .Get ("\u0041\u0053");_gdag !=nil {_egdf .AS =_gdag ;};if _gdeg :=_agb .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_gdeg !=nil {_egdf .Border =_gdeg ;};if _afb :=_agb .Get ("\u0043");_afb !=nil {_egdf .C =_afb ;};if _gdd :=_agb .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");
_gdd !=nil {_egdf .StructParent =_gdd ;};if _ecgc :=_agb .Get ("\u004f\u0043");_ecgc !=nil {_egdf .OC =_ecgc ;};_cge :=_agb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _cge ==nil {_dbg .Log .Debug ("\u0057\u0041\u0052\u004e\u0049\u004e\u0047:\u0020\u0043\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079 \u0069s\u0073\u0075\u0065\u0020\u002d\u0020a\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0020\u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u002d\u0020\u0061\u0073\u0073u\u006d\u0069\u006e\u0067\u0020\u006e\u006f\u0020\u0073\u0075\u0062\u0074\u0079p\u0065");
_egdf ._ffbe =nil ;return _egdf ,nil ;};_ggbd ,_ecdg :=_cge .(*_eg .PdfObjectName );if !_ecdg {_dbg .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0053\u0075\u0062ty\u0070\u0065\u0020\u006fb\u006a\u0065\u0063\u0074\u0020\u0074\u0079\u0070\u0065 !\u003d\u0020n\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_cge );
return nil ,_e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u006f\u0062\u006ae\u0063\u0074\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d n\u0061\u006d\u0065 \u0028%\u0054\u0029",_cge );};switch *_ggbd {case "\u0054\u0065\u0078\u0074":_agfe ,_gadg :=_cfdd .newPdfAnnotationTextFromDict (_agb );
if _gadg !=nil {return nil ,_gadg ;};_agfe .PdfAnnotation =_egdf ;_egdf ._ffbe =_agfe ;return _egdf ,nil ;case "\u004c\u0069\u006e\u006b":_bed ,_dad :=_cfdd .newPdfAnnotationLinkFromDict (_agb );if _dad !=nil {return nil ,_dad ;};_bed .PdfAnnotation =_egdf ;
_egdf ._ffbe =_bed ;return _egdf ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_dadb ,_cdge :=_cfdd .newPdfAnnotationFreeTextFromDict (_agb );if _cdge !=nil {return nil ,_cdge ;};_dadb .PdfAnnotation =_egdf ;_egdf ._ffbe =_dadb ;return _egdf ,nil ;
case "\u004c\u0069\u006e\u0065":_cdfd ,_gggg :=_cfdd .newPdfAnnotationLineFromDict (_agb );if _gggg !=nil {return nil ,_gggg ;};_cdfd .PdfAnnotation =_egdf ;_egdf ._ffbe =_cdfd ;_dbg .Log .Trace ("\u004c\u0049\u004e\u0045\u0020\u0041N\u004e\u004f\u0054\u0041\u0054\u0049\u004f\u004e\u003a\u0020\u0061\u006e\u006eo\u0074\u0020\u0028\u0025\u0054\u0029\u003a \u0025\u002b\u0076\u000a",_egdf ,_egdf );
_dbg .Log .Trace ("\u004c\u0049\u004eE\u0020\u0041\u004e\u004eO\u0054\u0041\u0054\u0049\u004f\u004e\u003a \u0063\u0074\u0078\u0020\u0028\u0025\u0054\u0029\u003a\u0020\u0025\u002b\u0076\u000a",_cdfd ,_cdfd );_dbg .Log .Trace ("\u004c\u0049\u004e\u0045\u0020\u0041\u004e\u004e\u004f\u0054\u0041\u0054\u0049\u004f\u004e\u0020\u004d\u0061\u0072\u006b\u0075\u0070\u003a\u0020c\u0074\u0078\u0020\u0028\u0025T\u0029\u003a \u0025\u002b\u0076\u000a",_cdfd .PdfAnnotationMarkup ,_cdfd .PdfAnnotationMarkup );
return _egdf ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_abgc ,_cfdb :=_cfdd .newPdfAnnotationSquareFromDict (_agb );if _cfdb !=nil {return nil ,_cfdb ;};_abgc .PdfAnnotation =_egdf ;_egdf ._ffbe =_abgc ;return _egdf ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_eacb ,_fgffe :=_cfdd .newPdfAnnotationCircleFromDict (_agb );
if _fgffe !=nil {return nil ,_fgffe ;};_eacb .PdfAnnotation =_egdf ;_egdf ._ffbe =_eacb ;return _egdf ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_bbcb ,_bgg :=_cfdd .newPdfAnnotationPolygonFromDict (_agb );if _bgg !=nil {return nil ,_bgg ;};_bbcb .PdfAnnotation =_egdf ;
_egdf ._ffbe =_bbcb ;return _egdf ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_geee ,_aeff :=_cfdd .newPdfAnnotationPolyLineFromDict (_agb );if _aeff !=nil {return nil ,_aeff ;};_geee .PdfAnnotation =_egdf ;_egdf ._ffbe =_geee ;return _egdf ,nil ;
case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_gdb ,_edd :=_cfdd .newPdfAnnotationHighlightFromDict (_agb );if _edd !=nil {return nil ,_edd ;};_gdb .PdfAnnotation =_egdf ;_egdf ._ffbe =_gdb ;return _egdf ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_dde ,_dbgg :=_cfdd .newPdfAnnotationUnderlineFromDict (_agb );
if _dbgg !=nil {return nil ,_dbgg ;};_dde .PdfAnnotation =_egdf ;_egdf ._ffbe =_dde ;return _egdf ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_fdfd ,_dge :=_cfdd .newPdfAnnotationSquigglyFromDict (_agb );if _dge !=nil {return nil ,_dge ;
};_fdfd .PdfAnnotation =_egdf ;_egdf ._ffbe =_fdfd ;return _egdf ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_fda ,_fdb :=_cfdd .newPdfAnnotationStrikeOut (_agb );if _fdb !=nil {return nil ,_fdb ;};_fda .PdfAnnotation =_egdf ;_egdf ._ffbe =_fda ;
return _egdf ,nil ;case "\u0043\u0061\u0072e\u0074":_cfgf ,_eaf :=_cfdd .newPdfAnnotationCaretFromDict (_agb );if _eaf !=nil {return nil ,_eaf ;};_cfgf .PdfAnnotation =_egdf ;_egdf ._ffbe =_cfgf ;return _egdf ,nil ;case "\u0053\u0074\u0061m\u0070":_dgaf ,_gbc :=_cfdd .newPdfAnnotationStampFromDict (_agb );
if _gbc !=nil {return nil ,_gbc ;};_dgaf .PdfAnnotation =_egdf ;_egdf ._ffbe =_dgaf ;return _egdf ,nil ;case "\u0049\u006e\u006b":_bebd ,_eadfg :=_cfdd .newPdfAnnotationInkFromDict (_agb );if _eadfg !=nil {return nil ,_eadfg ;};_bebd .PdfAnnotation =_egdf ;
_egdf ._ffbe =_bebd ;return _egdf ,nil ;case "\u0050\u006f\u0070u\u0070":_bcd ,_efcc :=_cfdd .newPdfAnnotationPopupFromDict (_agb );if _efcc !=nil {return nil ,_efcc ;};_bcd .PdfAnnotation =_egdf ;_egdf ._ffbe =_bcd ;return _egdf ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_bae ,_dbge :=_cfdd .newPdfAnnotationFileAttachmentFromDict (_agb );
if _dbge !=nil {return nil ,_dbge ;};_bae .PdfAnnotation =_egdf ;_egdf ._ffbe =_bae ;return _egdf ,nil ;case "\u0053\u006f\u0075n\u0064":_dfeg ,_ddee :=_cfdd .newPdfAnnotationSoundFromDict (_agb );if _ddee !=nil {return nil ,_ddee ;};_dfeg .PdfAnnotation =_egdf ;
_egdf ._ffbe =_dfeg ;return _egdf ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_ggeb ,_cfce :=_cfdd .newPdfAnnotationRichMediaFromDict (_agb );if _cfce !=nil {return nil ,_cfce ;};_ggeb .PdfAnnotation =_egdf ;_egdf ._ffbe =_ggeb ;return _egdf ,nil ;
case "\u004d\u006f\u0076i\u0065":_aefd ,_cdecb :=_cfdd .newPdfAnnotationMovieFromDict (_agb );if _cdecb !=nil {return nil ,_cdecb ;};_aefd .PdfAnnotation =_egdf ;_egdf ._ffbe =_aefd ;return _egdf ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_efef ,_ccf :=_cfdd .newPdfAnnotationScreenFromDict (_agb );
if _ccf !=nil {return nil ,_ccf ;};_efef .PdfAnnotation =_egdf ;_egdf ._ffbe =_efef ;return _egdf ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_aaa ,_adab :=_cfdd .newPdfAnnotationWidgetFromDict (_agb );if _adab !=nil {return nil ,_adab ;};_aaa .PdfAnnotation =_egdf ;
_egdf ._ffbe =_aaa ;return _egdf ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_cgeb ,_egff :=_cfdd .newPdfAnnotationPrinterMarkFromDict (_agb );if _egff !=nil {return nil ,_egff ;};_cgeb .PdfAnnotation =_egdf ;_egdf ._ffbe =_cgeb ;
return _egdf ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_effd ,_bga :=_cfdd .newPdfAnnotationTrapNetFromDict (_agb );if _bga !=nil {return nil ,_bga ;};_effd .PdfAnnotation =_egdf ;_egdf ._ffbe =_effd ;return _egdf ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_fae ,_bca :=_cfdd .newPdfAnnotationWatermarkFromDict (_agb );
if _bca !=nil {return nil ,_bca ;};_fae .PdfAnnotation =_egdf ;_egdf ._ffbe =_fae ;return _egdf ,nil ;case "\u0033\u0044":_gfcb ,_fge :=_cfdd .newPdfAnnotation3DFromDict (_agb );if _fge !=nil {return nil ,_fge ;};_gfcb .PdfAnnotation =_egdf ;_egdf ._ffbe =_gfcb ;
return _egdf ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_ggbf ,_feg :=_cfdd .newPdfAnnotationProjectionFromDict (_agb );if _feg !=nil {return nil ,_feg ;};_ggbf .PdfAnnotation =_egdf ;_egdf ._ffbe =_ggbf ;return _egdf ,nil ;
case "\u0052\u0065\u0064\u0061\u0063\u0074":_bde ,_dfcd :=_cfdd .newPdfAnnotationRedactFromDict (_agb );if _dfcd !=nil {return nil ,_dfcd ;};_bde .PdfAnnotation =_egdf ;_egdf ._ffbe =_bde ;return _egdf ,nil ;};_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u0067\u006e\u006f\u0072\u0069\u006e\u0067\u0020\u0075\u006e\u006b\u006e\u006f\u0077\u006e\u0020a\u006e\u006e\u006f\u0074\u0061t\u0069\u006fn\u003a\u0020\u0025\u0073",*_ggbd );
return nil ,nil ;};
// PdfColorDeviceCMYK is a CMYK32 color, where each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorDeviceCMYK [4]float64 ;func (_bgea *PdfReader )newPdfAnnotationStampFromDict (_abgf *_eg .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_cegc :=PdfAnnotationStamp {};_eag ,_aea :=_bgea .newPdfAnnotationMarkupFromDict (_abgf );if _aea !=nil {return nil ,_aea ;
};_cegc .PdfAnnotationMarkup =_eag ;_cegc .Name =_abgf .Get ("\u004e\u0061\u006d\u0065");return &_cegc ,nil ;};
// SetAlpha sets the alpha layer for the image.
func (_egca *Image )SetAlpha (alpha []byte ){_egca ._fcec =alpha };
// ToPdfObject returns the PDF representation of the pattern.
func (_ecbbf *PdfPattern )ToPdfObject ()_eg .PdfObject {_bebcg :=_ecbbf .getDict ();_bebcg .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_bebcg .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_eg .MakeInteger (_ecbbf .PatternType ));
return _ecbbf ._cfaag ;};
// PdfColorspaceSpecialSeparation is a Separation colorspace.
// At the moment the colour space is set to a Separation space, the conforming reader shall determine whether the
// device has an available colorant (e.g. dye) corresponding to the name of the requested space. If so, the conforming
// reader shall ignore the alternateSpace and tintTransform parameters; subsequent painting operations within the
// space shall apply the designated colorant directly, according to the tint values supplied.
//
// Format: [/Separation name alternateSpace tintTransform]
type PdfColorspaceSpecialSeparation struct{ColorantName *_eg .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_cegff *_eg .PdfIndirectObject ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_caa *PdfColorspaceDeviceRGB )ToPdfObject ()_eg .PdfObject {return _eg .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};
// ToPdfObject converts date to a PDF string object.
func (_dfcebd *PdfDate )ToPdfObject ()_eg .PdfObject {_cabef :=_e .Sprintf ("\u0044\u003a\u0025\u002e\u0034\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e2\u0064\u0025\u0063\u0025\u002e2\u0064\u0027%\u002e\u0032\u0064\u0027",_dfcebd ._cggcf ,_dfcebd ._agfdbf ,_dfcebd ._ebfff ,_dfcebd ._bfabc ,_dfcebd ._edagg ,_dfcebd ._ggcbe ,_dfcebd ._facfb ,_dfcebd ._gaggg ,_dfcebd ._daabe );
return _eg .MakeString (_cabef );};func (_ggbe *pdfFontSimple )addEncoding ()error {var (_fdcdd string ;_dbgd map[_cec .CharCode ]_cec .GlyphName ;_adeafb _cec .SimpleEncoder ;);if _ggbe .Encoder ()!=nil {_dbcf ,_ffggd :=_ggbe .Encoder ().(_cec .SimpleEncoder );
if _ffggd &&_dbcf !=nil {_fdcdd =_dbcf .BaseName ();};};if _ggbe .Encoding !=nil {_ebcae ,_ddeba ,_ffad :=_ggbe .getFontEncoding ();if _ffad !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0042\u0061\u0073\u0065F\u006f\u006e\u0074\u003d\u0025\u0071\u0020\u0053u\u0062t\u0079\u0070\u0065\u003d\u0025\u0071\u0020\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003d\u0025\u0073 \u0028\u0025\u0054\u0029\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_ggbe ._cfab ,_ggbe ._fgbbb ,_ggbe .Encoding ,_ggbe .Encoding ,_ffad );
return _ffad ;};if _ebcae !=""{_fdcdd =_ebcae ;};_dbgd =_ddeba ;_adeafb ,_ffad =_cec .NewSimpleTextEncoder (_fdcdd ,_dbgd );if _ffad !=nil {return _ffad ;};};if _adeafb ==nil {_gfbca :=_ggbe ._eecfe ;if _gfbca !=nil {switch _ggbe ._fgbbb {case "\u0054\u0079\u0070e\u0031":if _gfbca .fontFile !=nil &&_gfbca .fontFile ._feffd !=nil {_dbg .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");
_adeafb =_gfbca .fontFile ._feffd ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _gfbca ._bgcbd !=nil {_dbg .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_cgfac ,_dbbgb :=_gfbca ._bgcbd .MakeEncoder ();
if _dbbgb ==nil {_adeafb =_cgfac ;};};};};};if _adeafb !=nil {if _dbgd !=nil {_dbg .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_dbgd ,_ggbe .baseFields ());
_adeafb =_cec .ApplyDifferences (_adeafb ,_dbgd );};_ggbe .SetEncoder (_adeafb );};return nil ;};
// BorderEffect represents a border effect (Table 167 p. 395).
type BorderEffect int ;
// OutlineDest represents the destination of an outline item.
// It holds the page and the position on the page an outline item points to.
type OutlineDest struct{PageObj *_eg .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};func (_ffec *PdfReader )newPdfAnnotationInkFromDict (_dfdd *_eg .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_cee :=PdfAnnotationInk {};
_bfba ,_gffc :=_ffec .newPdfAnnotationMarkupFromDict (_dfdd );if _gffc !=nil {return nil ,_gffc ;};_cee .PdfAnnotationMarkup =_bfba ;_cee .InkList =_dfdd .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_cee .BS =_dfdd .Get ("\u0042\u0053");return &_cee ,nil ;
};
// PdfActionSetOCGState represents a SetOCGState action.
type PdfActionSetOCGState struct{*PdfAction ;State _eg .PdfObject ;PreserveRB _eg .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_fe *PdfActionTrans )ToPdfObject ()_eg .PdfObject {_fe .PdfAction .ToPdfObject ();_gfd :=_fe ._ege ;_gae :=_gfd .PdfObject .(*_eg .PdfObjectDictionary );_gae .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeTrans )));_gae .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_fe .Trans );
return _gfd ;};
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
func NewPdfFilespecFromObj (obj _eg .PdfObject )(*PdfFilespec ,error ){_afad :=&PdfFilespec {};var _bcdc *_eg .PdfObjectDictionary ;if _ccga ,_eggg :=_eg .GetIndirect (obj );_eggg {_afad ._fceg =_ccga ;_ffaa ,_aefa :=_eg .GetDict (_ccga .PdfObject );if !_aefa {_dbg .Log .Debug ("\u004f\u0062\u006a\u0065c\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074i\u006f\u006e\u0061\u0072\u0079\u0020\u0074y\u0070\u0065");
return nil ,_eg .ErrTypeError ;};_bcdc =_ffaa ;}else if _dbgae ,_fdega :=_eg .GetDict (obj );_fdega {_afad ._fceg =_dbgae ;_bcdc =_dbgae ;}else {_dbg .Log .Debug ("O\u0062\u006a\u0065\u0063\u0074\u0020t\u0079\u0070\u0065\u0020\u0075\u006e\u0065\u0078\u0070e\u0063\u0074\u0065d\u0020(\u0025\u0054\u0029",obj );
return nil ,_eg .ErrTypeError ;};if _bcdc ==nil {_dbg .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_bbd .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
};if _fgeff :=_bcdc .Get ("\u0054\u0079\u0070\u0065");_fgeff !=nil {_gdcb ,_ddge :=_fgeff .(*_eg .PdfObjectName );if !_ddge {_dbg .Log .Trace ("\u0049\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u0021\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u006f\u0066\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029\u0020\u002d\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u004e\u0061m\u0065",_fgeff );
}else {if *_gdcb !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_dbg .Log .Trace ("\u0055\u006e\u0073\u0075\u0073\u0070e\u0063\u0074\u0065\u0064\u0020\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020F\u0069\u006c\u0065\u0073\u0070\u0065\u0063 \u0028\u0025\u0073\u0029",*_gdcb );
};};};if _aebec :=_bcdc .Get ("\u0046\u0053");_aebec !=nil {_afad .FS =_aebec ;};if _ggfb :=_bcdc .Get ("\u0046");_ggfb !=nil {_afad .F =_ggfb ;};if _dedd :=_bcdc .Get ("\u0055\u0046");_dedd !=nil {_afad .UF =_dedd ;};if _gbbcb :=_bcdc .Get ("\u0044\u004f\u0053");
_gbbcb !=nil {_afad .DOS =_gbbcb ;};if _dcbf :=_bcdc .Get ("\u004d\u0061\u0063");_dcbf !=nil {_afad .Mac =_dcbf ;};if _edgfd :=_bcdc .Get ("\u0055\u006e\u0069\u0078");_edgfd !=nil {_afad .Unix =_edgfd ;};if _bafd :=_bcdc .Get ("\u0049\u0044");_bafd !=nil {_afad .ID =_bafd ;
};if _cabcee :=_bcdc .Get ("\u0056");_cabcee !=nil {_afad .V =_cabcee ;};if _edfef :=_bcdc .Get ("\u0045\u0046");_edfef !=nil {_afad .EF =_edfef ;};if _agfeb :=_bcdc .Get ("\u0052\u0046");_agfeb !=nil {_afad .RF =_agfeb ;};if _ecdc :=_bcdc .Get ("\u0044\u0065\u0073\u0063");
_ecdc !=nil {_afad .Desc =_ecdc ;};if _dggaa :=_bcdc .Get ("\u0043\u0049");_dggaa !=nil {_afad .CI =_dggaa ;};return _afad ,nil ;};
// NewPdfColorspaceSpecialPattern returns a new pattern color.
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};func _cafa (_bcfb _eg .PdfObject )(*PdfColorspaceDeviceN ,error ){_bgeg :=NewPdfColorspaceDeviceN ();if _gdfg ,_cefbf :=_bcfb .(*_eg .PdfIndirectObject );
_cefbf {_bgeg ._cedg =_gdfg ;};_bcfb =_eg .TraceToDirectObject (_bcfb );_bcgc ,_adda :=_bcfb .(*_eg .PdfObjectArray );if !_adda {return nil ,_e .Errorf ("\u0064\u0065\u0076\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062j\u0065\u0063\u0074");
};if _bcgc .Len ()!=4&&_bcgc .Len ()!=5{return nil ,_e .Errorf ("\u0064\u0065\u0076ic\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0049\u006ec\u006fr\u0072e\u0063t\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");};_bcfb =_bcgc .Get (0);
_baf ,_adda :=_bcfb .(*_eg .PdfObjectName );if !_adda {return nil ,_e .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
};if *_baf !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_e .Errorf ("\u0064\u0065v\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020na\u006d\u0065");};_bcfb =_bcgc .Get (1);
_bcfb =_eg .TraceToDirectObject (_bcfb );_dbbfc ,_adda :=_bcfb .(*_eg .PdfObjectArray );if !_adda {return nil ,_e .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0049\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");
};_bgeg .ColorantNames =_dbbfc ;_bcfb =_bcgc .Get (2);_gefc ,_dcdcd :=NewPdfColorspaceFromPdfObject (_bcfb );if _dcdcd !=nil {return nil ,_dcdcd ;};_bgeg .AlternateSpace =_gefc ;_gfag ,_dcdcd :=_dgbga (_bcgc .Get (3));if _dcdcd !=nil {return nil ,_dcdcd ;
};_bgeg .TintTransform =_gfag ;if _bcgc .Len ()==5{_adbc ,_bdebg :=_fegg (_bcgc .Get (4));if _bdebg !=nil {return nil ,_bdebg ;};_bgeg .Attributes =_adbc ;};return _bgeg ,nil ;};
// AddExtension adds the specified extension to the Extensions dictionary.
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
func (_cbfgc *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_bedba ,_eegcag :=_eg .GetDict (_cbfgc ._ebaaa .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_eegcag {_bedba =_eg .MakeDict ();_cbfgc ._ebaaa .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_bedba );
};_ffdeg ,_eegcag :=_eg .GetDict (_bedba .Get (_eg .PdfObjectName (extName )));if !_eegcag {_ffdeg =_eg .MakeDict ();_bedba .Set (_eg .PdfObjectName (extName ),_ffdeg );};if _eebf ,_ :=_eg .GetNameVal (_ffdeg .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));
_eebf !=baseVersion {_ffdeg .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_eg .MakeName (baseVersion ));};if _beggf ,_ :=_eg .GetIntVal (_ffdeg .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));
_beggf !=extLevel {_ffdeg .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_eg .MakeInteger (int64 (extLevel )));};};
// DecodeArray returns the component range values for the Indexed colorspace.
func (_dcec *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_dcec .HiVal )};};
// PdfAnnotationTrapNet represents TrapNet annotations.
// (Section 12.5.6.21).
type PdfAnnotationTrapNet struct{*PdfAnnotation };
// GetCustomInfo returns a custom info value for the specified name.
func (_cbde *PdfInfo )GetCustomInfo (name string )*_eg .PdfObjectString {var _gbeg *_eg .PdfObjectString ;if _cbde ._fbfgb ==nil {return _gbeg ;};if _eabg ,_dfaf :=_cbde ._fbfgb .Get (*_eg .MakeName (name )).(*_eg .PdfObjectString );_dfaf {_gbeg =_eabg ;
};return _gbeg ;};var _ccad =map[string ]struct{}{"\u0054\u0069\u0074l\u0065":{},"\u0041\u0075\u0074\u0068\u006f\u0072":{},"\u0053u\u0062\u006a\u0065\u0063\u0074":{},"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":{},"\u0043r\u0065\u0061\u0074\u006f\u0072":{},"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":{},"\u0054r\u0061\u0070\u0070\u0065\u0064":{},"\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":{},"\u004do\u0064\u0044\u0061\u0074\u0065":{}};
// ToPdfObject implements interface PdfModel.
func (_aeaf *PdfAnnotationUnderline )ToPdfObject ()_eg .PdfObject {_aeaf .PdfAnnotation .ToPdfObject ();_ccb :=_aeaf ._gag ;_dac :=_ccb .PdfObject .(*_eg .PdfObjectDictionary );_aeaf .PdfAnnotationMarkup .appendToPdfDictionary (_dac );_dac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));
_dac .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_aeaf .QuadPoints );return _ccb ;};
// ToPdfObject implements interface PdfModel.
func (_ffga *PdfAnnotationStamp )ToPdfObject ()_eg .PdfObject {_ffga .PdfAnnotation .ToPdfObject ();_afgc :=_ffga ._gag ;_cbea :=_afgc .PdfObject .(*_eg .PdfObjectDictionary );_ffga .PdfAnnotationMarkup .appendToPdfDictionary (_cbea );_cbea .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053\u0074\u0061m\u0070"));
_cbea .SetIfNotNil ("\u004e\u0061\u006d\u0065",_ffga .Name );return _afgc ;};
// PdfFieldText represents a text field where user can enter text.
type PdfFieldText struct{*PdfField ;DA *_eg .PdfObjectString ;Q *_eg .PdfObjectInteger ;DS *_eg .PdfObjectString ;RV _eg .PdfObject ;MaxLen *_eg .PdfObjectInteger ;};
// PdfFunctionType2 defines an exponential interpolation of one input value and n
// output values:
// f(x) = y_0, ..., y_(n-1)
// y_j = C0_j + x^N * (C1_j - C0_j); for 0 <= j < n
// When N=1 ; linear interpolation between C0 and C1.
type PdfFunctionType2 struct{Domain []float64 ;Range []float64 ;C0 []float64 ;C1 []float64 ;N float64 ;_daaf *_eg .PdfIndirectObject ;};
// ToPdfObject implements interface PdfModel.
func (_add *PdfActionSetOCGState )ToPdfObject ()_eg .PdfObject {_add .PdfAction .ToPdfObject ();_abg :=_add ._ege ;_egf :=_abg .PdfObject .(*_eg .PdfObjectDictionary );_egf .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeSetOCGState )));_egf .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_add .State );
_egf .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_add .PreserveRB );return _abg ;};
// XObjectType represents the type of an XObject.
type XObjectType int ;
// NewPdfAnnotationSound returns a new sound annotation.
func NewPdfAnnotationSound ()*PdfAnnotationSound {_abd :=NewPdfAnnotation ();_aeg :=&PdfAnnotationSound {};_aeg .PdfAnnotation =_abd ;_aeg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_abd .SetContext (_aeg );return _aeg ;};
// GetPdfName returns the PDF name used to indicate the border style.
// (Table 166 p. 395).
func (_eeff *BorderStyle )GetPdfName ()string {switch *_eeff {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";
};return "";};
// NewPdfAnnotationUnderline returns a new text underline annotation.
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_ddcg :=NewPdfAnnotation ();_cgcd :=&PdfAnnotationUnderline {};_cgcd .PdfAnnotation =_ddcg ;_cgcd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ddcg .SetContext (_cgcd );return _cgcd ;};
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
// annotations, otherwise returns the loaded list.
func (_gddd *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _gddd ._egge !=nil {return _gddd ._egge ,nil ;};if _gddd .Annots ==nil {_gddd ._egge =[]*PdfAnnotation {};return nil ,nil ;};if _gddd ._fdfdec ==nil {_gddd ._egge =[]*PdfAnnotation {};
return nil ,nil ;};_eafff ,_bgfcf :=_gddd ._fdfdec .loadAnnotations (_gddd .Annots );if _bgfcf !=nil {return nil ,_bgfcf ;};if _eafff ==nil {_gddd ._egge =[]*PdfAnnotation {};};_gddd ._egge =_eafff ;return _gddd ._egge ,nil ;};
// NewPdfActionImportData returns a new "import data" action.
func NewPdfActionImportData ()*PdfActionImportData {_ebg :=NewPdfAction ();_cab :=&PdfActionImportData {};_cab .PdfAction =_ebg ;_ebg .SetContext (_cab );return _cab ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain three elements representing the
// L (range 0-100), A (range -100-100) and B (range -100-100) components of
// the color.
func (_fbgf *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dbgbg :=vals [0];if _dbgbg < 0.0||_dbgbg > 100.0{_dbg .Log .Debug ("\u004c\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0072\u0061\u006e\u0067e\u0020\u0028\u0067\u006f\u0074\u0020%\u0076\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030-\u0031\u0030\u0030\u0029",_dbgbg );
return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dgca :=vals [1];_bfcd :=float64 (-100);_dcde :=float64 (100);if len (_fbgf .Range )> 1{_bfcd =_fbgf .Range [0];_dcde =_fbgf .Range [1];};if _dgca < _bfcd ||_dgca > _dcde {_dbg .Log .Debug ("\u0041\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0072\u0061\u006e\u0067e\u0020\u0028\u0067\u006f\u0074\u0020%\u0076\u003b\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0025\u0076\u0020\u0074o\u0020\u0025\u0076\u0029",_dgca ,_bfcd ,_dcde );
return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eebga :=vals [2];_ggaa :=float64 (-100);_ebgfb :=float64 (100);if len (_fbgf .Range )> 3{_ggaa =_fbgf .Range [2];_ebgfb =_fbgf .Range [3];};if _eebga < _ggaa ||_eebga > _ebgfb {_dbg .Log .Debug ("\u0062\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0072\u0061\u006e\u0067e\u0020\u0028\u0067\u006f\u0074\u0020%\u0076\u003b\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0025\u0076\u0020\u0074o\u0020\u0025\u0076\u0029",_eebga ,_ggaa ,_ebgfb );
return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dce :=NewPdfColorLab (_dbgbg ,_dgca ,_eebga );return _dce ,nil ;};
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_cgcf :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");
};_cgcf .N =N ;return _cgcf ,nil ;};
// SetFontByName sets the font specified by keyName to the given object.
func (_adaa *PdfPageResources )SetFontByName (keyName _eg .PdfObjectName ,obj _eg .PdfObject )error {if _adaa .Font ==nil {_adaa .Font =_eg .MakeDict ();};_bdcec ,_ageca :=_eg .TraceToDirectObject (_adaa .Font ).(*_eg .PdfObjectDictionary );if !_ageca {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0021\u0020(\u0067\u006ft\u0020\u0025\u0054\u0029",_eg .TraceToDirectObject (_adaa .Font ));
return _eg .ErrTypeError ;};_bdcec .Set (keyName ,obj );return nil ;};
// PdfTilingPattern is a Tiling pattern that consists of repetitions of a pattern cell with defined intervals.
// It is a type 1 pattern. (PatternType = 1).
// A tiling pattern is represented by a stream object, where the stream content is
// a content stream that describes the pattern cell.
type PdfTilingPattern struct{*PdfPattern ;PaintType *_eg .PdfObjectInteger ;TilingType *_eg .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_eg .PdfObjectFloat ;YStep *_eg .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_eg .PdfObjectArray ;};
// Encoder returns the font's text encoder.
func (_ffgeg *PdfFont )Encoder ()_cec .TextEncoder {_gggge :=_ffgeg .actualFont ();if _gggge ==nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0045n\u0063\u006f\u0064er\u0020\u006e\u006f\u0074\u0020\u0069m\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0066\u006f\u0072\u0020\u0066o\u006e\u0074\u0020\u0074\u0079\u0070\u0065\u003d%\u0023\u0054",_ffgeg ._gdcab );
return nil ;};return _gggge .Encoder ();};func (_feadd *LTV )validateSig (_ccdb *PdfSignature )error {if _ccdb ==nil ||_ccdb .Contents ==nil ||len (_ccdb .Contents .Bytes ())==0{return _e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_ccdb );
};return nil ;};func _aadg (_fffef *PdfPage )map[_eg .PdfObjectName ]_eg .PdfObject {_cacf :=make (map[_eg .PdfObjectName ]_eg .PdfObject );if _fffef .Resources ==nil {return _cacf ;};if _fffef .Resources .Font !=nil {if _fad ,_gbcf :=_eg .GetDict (_fffef .Resources .Font );
_gbcf {for _ ,_bedg :=range _fad .Keys (){_cacf [_bedg ]=_fad .Get (_bedg );};};};if _fffef .Resources .ExtGState !=nil {if _cdbe ,_cfdf :=_eg .GetDict (_fffef .Resources .ExtGState );_cfdf {for _ ,_fedcfd :=range _cdbe .Keys (){_cacf [_fedcfd ]=_cdbe .Get (_fedcfd );
};};};if _fffef .Resources .XObject !=nil {if _ccbc ,_bbdc :=_eg .GetDict (_fffef .Resources .XObject );_bbdc {for _ ,_ebag :=range _ccbc .Keys (){_cacf [_ebag ]=_ccbc .Get (_ebag );};};};if _fffef .Resources .Pattern !=nil {if _accd ,_facb :=_eg .GetDict (_fffef .Resources .Pattern );
_facb {for _ ,_affd :=range _accd .Keys (){_cacf [_affd ]=_accd .Get (_affd );};};};if _fffef .Resources .Shading !=nil {if _bbbd ,_gfadb :=_eg .GetDict (_fffef .Resources .Shading );_gfadb {for _ ,_fdgc :=range _bbbd .Keys (){_cacf [_fdgc ]=_bbbd .Get (_fdgc );
};};};if _fffef .Resources .ProcSet !=nil {if _efbf ,_fdae :=_eg .GetDict (_fffef .Resources .ProcSet );_fdae {for _ ,_begef :=range _efbf .Keys (){_cacf [_begef ]=_efbf .Get (_begef );};};};if _fffef .Resources .Properties !=nil {if _gcaf ,_dddf :=_eg .GetDict (_fffef .Resources .Properties );
_dddf {for _ ,_aafb :=range _gcaf .Keys (){_cacf [_aafb ]=_gcaf .Get (_aafb );};};};return _cacf ;};
// WatermarkImageOptions contains options for configuring the watermark process.
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;
);
// ToPdfObject returns the text field dictionary within an indirect object (container).
func (_eedf *PdfFieldText )ToPdfObject ()_eg .PdfObject {_eedf .PdfField .ToPdfObject ();_gdbce :=_eedf ._afbe ;_fddg :=_gdbce .PdfObject .(*_eg .PdfObjectDictionary );_fddg .Set ("\u0046\u0054",_eg .MakeName ("\u0054\u0078"));if _eedf .DA !=nil {_fddg .Set ("\u0044\u0041",_eedf .DA );
};if _eedf .Q !=nil {_fddg .Set ("\u0051",_eedf .Q );};if _eedf .DS !=nil {_fddg .Set ("\u0044\u0053",_eedf .DS );};if _eedf .RV !=nil {_fddg .Set ("\u0052\u0056",_eedf .RV );};if _eedf .MaxLen !=nil {_fddg .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_eedf .MaxLen );
};return _gdbce ;};
// GetPdfInfo returns the PDF info dictionary.
func (_fbgee *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_dbebd :=PdfInfo {};_dcafg ,_bfecaa :=_fbgee .GetTrailer ();if _bfecaa !=nil {return nil ,_bfecaa ;};var _ebda *_eg .PdfObjectDictionary ;_bfbcg :=_dcafg .Get ("\u0049\u006e\u0066\u006f");switch _bddaab :=_bfbcg .(type ){case *_eg .PdfObjectReference :_faeaa :=_bddaab ;
_bfbcg ,_bfecaa =_fbgee .GetIndirectObjectByNumber (int (_faeaa .ObjectNumber ));_bfbcg =_eg .TraceToDirectObject (_bfbcg );if _bfecaa !=nil {return nil ,_bfecaa ;};_ebda ,_ =_bfbcg .(*_eg .PdfObjectDictionary );case *_eg .PdfObjectDictionary :_ebda =_bddaab ;
};if _ebda ==nil {return nil ,_bbd .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};for _ ,_deeda :=range _ebda .Keys (){switch _deeda {case "\u0054\u0069\u0074l\u0065":_dbebd .Title ,_ =_eg .GetString (_ebda .Get ("\u0054\u0069\u0074l\u0065"));
case "\u0041\u0075\u0074\u0068\u006f\u0072":_dbebd .Author ,_ =_eg .GetString (_ebda .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));case "\u0053u\u0062\u006a\u0065\u0063\u0074":_dbebd .Subject ,_ =_eg .GetString (_ebda .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));
case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_dbebd .Keywords ,_ =_eg .GetString (_ebda .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));case "\u0043r\u0065\u0061\u0074\u006f\u0072":_dbebd .Creator ,_ =_eg .GetString (_ebda .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));
case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_dbebd .Producer ,_ =_eg .GetString (_ebda .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));case "\u0054r\u0061\u0070\u0070\u0065\u0064":_dbebd .Trapped ,_ =_eg .GetName (_ebda .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));
case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _adcda ,_bedbf :=_eg .GetString (_ebda .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));_bedbf &&_adcda .String ()!=""{_dbcaa ,_edgfg :=NewPdfDate (_adcda .String ());
if _edgfg !=nil {return nil ,_edgfg ;};_dbebd .CreationDate =&_dbcaa ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _abea ,_bcgab :=_eg .GetString (_ebda .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_bcgab &&_abea .String ()!=""{_cfgeb ,_bdfab :=NewPdfDate (_abea .String ());
if _bdfab !=nil {return nil ,_bdfab ;};_dbebd .ModifiedDate =&_cfgeb ;};default:_befcf ,_ :=_eg .GetString (_ebda .Get (_deeda ));if _dbebd ._fbfgb ==nil {_dbebd ._fbfgb =_eg .MakeDict ();};_dbebd ._fbfgb .Set (_deeda ,_befcf );};};return &_dbebd ,nil ;
};func (_efca *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _efca ._eecfe };func (_fbfff *pdfFontSimple )baseFields ()*fontCommon {return &_fbfff .fontCommon };
// ToPdfObject returns a stream object.
func (_dcccd *XObjectImage )ToPdfObject ()_eg .PdfObject {_fgdd :=_dcccd ._dcdb ;_dagec :=_fgdd .PdfObjectDictionary ;if _dcccd .Filter !=nil {_dagec =_dcccd .Filter .MakeStreamDict ();_fgdd .PdfObjectDictionary =_dagec ;};_dagec .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
_dagec .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0049\u006d\u0061g\u0065"));_dagec .Set ("\u0057\u0069\u0064t\u0068",_eg .MakeInteger (*(_dcccd .Width )));_dagec .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_eg .MakeInteger (*(_dcccd .Height )));
if _dcccd .BitsPerComponent !=nil {_dagec .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eg .MakeInteger (*(_dcccd .BitsPerComponent )));};if _dcccd .ColorSpace !=nil {_dagec .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_dcccd .ColorSpace .ToPdfObject ());
};_dagec .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_dcccd .Intent );_dagec .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_dcccd .ImageMask );_dagec .SetIfNotNil ("\u004d\u0061\u0073\u006b",_dcccd .Mask );_fgbcg :=_dagec .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ;
if _dcccd .Decode ==nil &&_fgbcg {_dagec .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _dcccd .Decode !=nil {_dagec .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dcccd .Decode );};_dagec .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_dcccd .Interpolate );
_dagec .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_dcccd .Alternatives );_dagec .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_dcccd .SMask );_dagec .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_dcccd .SMaskInData );
_dagec .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_dcccd .Matte );_dagec .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dcccd .Name );_dagec .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_dcccd .StructParent );_dagec .SetIfNotNil ("\u0049\u0044",_dcccd .ID );
_dagec .SetIfNotNil ("\u004f\u0050\u0049",_dcccd .OPI );_dagec .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_dcccd .Metadata );_dagec .SetIfNotNil ("\u004f\u0043",_dcccd .OC );_dagec .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_dcccd .Stream ))));
_fgdd .Stream =_dcccd .Stream ;return _fgdd ;};
// StringToCharcodeBytes maps the provided string runes to charcode bytes and
// it returns the resulting slice of bytes, along with the number of runes
// which could not be converted. If the number of misses is 0, all string runes
// were successfully converted.
func (_fbcg *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _fbcg .RunesToCharcodeBytes ([]rune (str ));};
// ToPdfObject returns the PDF representation of the tiling pattern.
func (_dafgd *PdfTilingPattern )ToPdfObject ()_eg .PdfObject {_dafgd .PdfPattern .ToPdfObject ();_fffcg :=_dafgd .getDict ();if _dafgd .PaintType !=nil {_fffcg .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_dafgd .PaintType );};if _dafgd .TilingType !=nil {_fffcg .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_dafgd .TilingType );
};if _dafgd .BBox !=nil {_fffcg .Set ("\u0042\u0042\u006f\u0078",_dafgd .BBox .ToPdfObject ());};if _dafgd .XStep !=nil {_fffcg .Set ("\u0058\u0053\u0074e\u0070",_dafgd .XStep );};if _dafgd .YStep !=nil {_fffcg .Set ("\u0059\u0053\u0074e\u0070",_dafgd .YStep );
};if _dafgd .Resources !=nil {_fffcg .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_dafgd .Resources .ToPdfObject ());};if _dafgd .Matrix !=nil {_fffcg .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_dafgd .Matrix );};return _dafgd ._cfaag ;};
// SetPdfSubject sets the Subject attribute of the output PDF.
func SetPdfSubject (subject string ){_egbeg .Lock ();defer _egbeg .Unlock ();_gfcae =subject };
// PdfAnnotationPolygon represents Polygon annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _eg .PdfObject ;LE _eg .PdfObject ;BS _eg .PdfObject ;IC _eg .PdfObject ;BE _eg .PdfObject ;IT _eg .PdfObject ;Measure _eg .PdfObject ;};func (_ddad *PdfReader )newPdfAnnotationRedactFromDict (_bfbag *_eg .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_fdeef :=PdfAnnotationRedact {};
_cgcg ,_effda :=_ddad .newPdfAnnotationMarkupFromDict (_bfbag );if _effda !=nil {return nil ,_effda ;};_fdeef .PdfAnnotationMarkup =_cgcg ;_fdeef .QuadPoints =_bfbag .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_fdeef .IC =_bfbag .Get ("\u0049\u0043");
_fdeef .RO =_bfbag .Get ("\u0052\u004f");_fdeef .OverlayText =_bfbag .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_fdeef .Repeat =_bfbag .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_fdeef .DA =_bfbag .Get ("\u0044\u0041");_fdeef .Q =_bfbag .Get ("\u0051");
return &_fdeef ,nil ;};
// PdfActionGoTo represents a GoTo action.
type PdfActionGoTo struct{*PdfAction ;D _eg .PdfObject ;};type crossReference struct{Type int ;
// Type 1
Offset int64 ;Generation int64 ;
// Type 2
ObjectNumber int ;Index int ;};
// G returns the value of the green component of the color.
func (_feec *PdfColorDeviceRGB )G ()float64 {return _feec [1]};
// GetNumComponents returns the number of color components (1 for CalGray).
func (_eafd *PdfColorCalGray )GetNumComponents ()int {return 1};func (_bdafg *fontFile )parseASCIIPart (_ffbfg []byte )error {if len (_ffbfg )< 2||string (_ffbfg [:2])!="\u0025\u0021"{return _bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0074a\u0072\u0074\u0020\u006f\u0066\u0020\u0041S\u0043\u0049\u0049\u0020\u0073\u0065\u0067\u006d\u0065\u006e\u0074");
};_egggc ,_faacg ,_fcega :=_eced (_ffbfg );if _fcega !=nil {return _fcega ;};_aeag :=_geec (_egggc );_bdafg ._dadg =_aeag ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _bdafg ._dadg ==""{_dbg .Log .Debug ("\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0020\u0068a\u0073\u0020\u006e\u006f\u0020\u002f\u0046\u006f\u006e\u0074N\u0061\u006d\u0065");
};if _faacg !=""{_edffc ,_cacdb :=_ddaab (_faacg );if _cacdb !=nil {return _cacdb ;};_defeg ,_cacdb :=_cec .NewCustomSimpleTextEncoder (_edffc ,nil );if _cacdb !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004fR\u0020\u003a\u0055\u004e\u004b\u004e\u004f\u0057\u004e\u0020G\u004cY\u0050\u0048\u003a\u0020\u0065\u0072\u0072=\u0025\u0076",_cacdb );
return nil ;};_bdafg ._feffd =_defeg ;};return nil ;};
// NewPdfAnnotation3D returns a new 3d annotation.
func NewPdfAnnotation3D ()*PdfAnnotation3D {_eba :=NewPdfAnnotation ();_fgd :=&PdfAnnotation3D {};_fgd .PdfAnnotation =_eba ;_eba .SetContext (_fgd );return _fgd ;};func _gbbed (_ccgda []byte )bool {if len (_ccgda )< 4{return true ;};for _cceec :=range _ccgda [:4]{_dccdg :=rune (_cceec );
if !_cg .Is (_cg .ASCII_Hex_Digit ,_dccdg )&&!_cg .IsSpace (_dccdg ){return true ;};};return false ;};func (_bgad *pdfCIDFontType0 )baseFields ()*fontCommon {return &_bgad .fontCommon };
// PdfAnnotationProjection represents Projection annotations.
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
// (Section 12.5.6.2 p. 399).
type PdfAnnotationMarkup struct{T _eg .PdfObject ;Popup *PdfAnnotationPopup ;CA _eg .PdfObject ;RC _eg .PdfObject ;CreationDate _eg .PdfObject ;IRT _eg .PdfObject ;Subj _eg .PdfObject ;RT _eg .PdfObject ;IT _eg .PdfObject ;ExData _eg .PdfObject ;};
// Read reads an image and loads into a new Image object with an RGB
// colormap and 8 bits per component.
func (_gffda DefaultImageHandler )Read (reader _de .Reader )(*Image ,error ){_efce ,_ ,_efgag :=_ec .Decode (reader );if _efgag !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_efgag );
return nil ,_efgag ;};return _gffda .NewImageFromGoImage (_efce );};
// GetNumComponents returns the number of color components (3 for RGB).
func (_ebbc *PdfColorDeviceRGB )GetNumComponents ()int {return 3};func (_fec fontCommon )fontFlags ()int {if _fec ._eecfe ==nil {return 0;};return _fec ._eecfe ._eaafa ;};func _edgbb ()string {_egbeg .Lock ();defer _egbeg .Unlock ();return _bbgff };
// ButtonType represents the subtype of a button field, can be one of:
// - Checkbox (ButtonTypeCheckbox)
// - PushButton (ButtonTypePushButton)
// - RadioButton (ButtonTypeRadioButton)
type ButtonType int ;func (_cefeg *PdfField )inherit (_cdcfa func (*PdfField )bool )(bool ,error ){_gbceg :=map[*PdfField ]bool {};_cbbfe :=false ;_bgbg :=_cefeg ;for _bgbg !=nil {if _ ,_eece :=_gbceg [_bgbg ];_eece {return false ,_bbd .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");
};_cdfa :=_cdcfa (_bgbg );if _cdfa {_cbbfe =true ;break ;};_gbceg [_bgbg ]=true ;_bgbg =_bgbg .Parent ;};return _cbbfe ,nil ;};
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
func (_fcfec *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};
// ToPdfObject converts the PdfFont object to its PDF representation.
func (_ecea *PdfFont )ToPdfObject ()_eg .PdfObject {if _ecea ._gdcab ==nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0066\u006f\u006e\u0074 \u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0069\u0073 \u006e\u0069\u006c");return _eg .MakeNull ();
};return _ecea ._gdcab .ToPdfObject ();};
// ToPdfObject implements interface PdfModel.
func (_gfef *PdfAnnotationWatermark )ToPdfObject ()_eg .PdfObject {_gfef .PdfAnnotation .ToPdfObject ();_cfe :=_gfef ._gag ;_acbe :=_cfe .PdfObject .(*_eg .PdfObjectDictionary );_acbe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));
_acbe .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_gfef .FixedPrint );return _cfe ;};
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
type DefaultImageHandler struct{};
// L returns the value of the L component of the color.
func (_cbge *PdfColorLab )L ()float64 {return _cbge [0]};
// Encoder returns the font's text encoder.
func (_eeffb pdfFontType3 )Encoder ()_cec .TextEncoder {return _eeffb ._daeg };
// PdfAnnotationWatermark represents Watermark annotations.
// (Section 12.5.6.22).
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _eg .PdfObject ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_cfdea *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_dbg .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};_bccdc :=[]float64 {0.0};if _cfdea .C0 !=nil {_bccdc =_cfdea .C0 ;};_cgbeg :=[]float64 {1.0};if _cfdea .C1 !=nil {_cgbeg =_cfdea .C1 ;};var _eadff []float64 ;for _dcfb :=0;_dcfb < len (_bccdc );_dcfb ++{_dcgc :=_bccdc [_dcfb ]+_bc .Pow (x [0],_cfdea .N )*(_cgbeg [_dcfb ]-_bccdc [_dcfb ]);
_eadff =append (_eadff ,_dcgc );};return _eadff ,nil ;};func _dgbga (_ceac _eg .PdfObject )(PdfFunction ,error ){_ceac =_eg .ResolveReference (_ceac );if _cfabg ,_bbdbg :=_ceac .(*_eg .PdfObjectStream );_bbdbg {_cbbdf :=_cfabg .PdfObjectDictionary ;_ecbd ,_gada :=_cbbdf .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_eg .PdfObjectInteger );
if !_gada {_dbg .Log .Error ("F\u0075\u006e\u0063\u0074\u0069\u006fn\u0054\u0079\u0070\u0065\u0020\u006e\u0075\u006d\u0062e\u0072\u0020\u006di\u0073s\u0069\u006e\u0067");return nil ,_bbd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");
};if *_ecbd ==0{return _adecc (_cfabg );}else if *_ecbd ==4{return _cddff (_cfabg );}else {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _fcaa ,_fbfee :=_ceac .(*_eg .PdfIndirectObject );
_fbfee {_cbacd ,_gaega :=_fcaa .PdfObject .(*_eg .PdfObjectDictionary );if !_gaega {_dbg .Log .Error ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006eg\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
return nil ,_bbd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");};_ggbfab ,_gaega :=_cbacd .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_eg .PdfObjectInteger );
if !_gaega {_dbg .Log .Error ("F\u0075\u006e\u0063\u0074\u0069\u006fn\u0054\u0079\u0070\u0065\u0020\u006e\u0075\u006d\u0062e\u0072\u0020\u006di\u0073s\u0069\u006e\u0067");return nil ,_bbd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");
};if *_ggbfab ==2{return _dddfc (_fcaa );}else if *_ggbfab ==3{return _gdea (_fcaa );}else {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _dcab ,_fdecg :=_ceac .(*_eg .PdfObjectDictionary );
_fdecg {_facd ,_eegec :=_dcab .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_eg .PdfObjectInteger );if !_eegec {_dbg .Log .Error ("F\u0075\u006e\u0063\u0074\u0069\u006fn\u0054\u0079\u0070\u0065\u0020\u006e\u0075\u006d\u0062e\u0072\u0020\u006di\u0073s\u0069\u006e\u0067");
return nil ,_bbd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");};if *_facd ==2{return _dddfc (_dcab );}else if *_facd ==3{return _gdea (_dcab );
}else {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_dbg .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_ceac );
return nil ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};func (_gaggf *PdfReader )loadDSS ()(*DSS ,error ){if _gaggf ._cdggc .GetCrypter ()!=nil &&!_gaggf ._cdggc .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_bafg :=_gaggf ._efdg .Get ("\u0044\u0053\u0053");if _bafg ==nil {return nil ,nil ;};_acfdd ,_ :=_eg .GetIndirect (_bafg );_bafg =_eg .TraceToDirectObject (_bafg );switch _cfefg :=_bafg .(type ){case *_eg .PdfObjectNull :return nil ,nil ;case *_eg .PdfObjectDictionary :return _ebbee (_acfdd ,_cfefg );
};return nil ,_e .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_bafg );};
// DecodeArray returns the component range values for the Separation colorspace.
func (_debf *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// NewXObjectFormFromStream builds the Form XObject from a stream object.
// TODO: Should this be exposed? Consider different access points.
func NewXObjectFormFromStream (stream *_eg .PdfObjectStream )(*XObjectForm ,error ){_cbbc :=&XObjectForm {};_cbbc ._cdcaf =stream ;_agfgbc :=*(stream .PdfObjectDictionary );_bbggb ,_edgaa :=_eg .NewEncoderFromStream (stream );if _edgaa !=nil {return nil ,_edgaa ;
};_cbbc .Filter =_bbggb ;if _cgdcg :=_agfgbc .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_cgdcg !=nil {_begba ,_bbdeb :=_cgdcg .(*_eg .PdfObjectName );if !_bbdeb {return nil ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};if *_begba !="\u0046\u006f\u0072\u006d"{_dbg .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_bbd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");
};};if _gffg :=_agfgbc .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_gffg !=nil {_cbbc .FormType =_gffg ;};if _begbd :=_agfgbc .Get ("\u0042\u0042\u006f\u0078");_begbd !=nil {_cbbc .BBox =_begbd ;};if _efcg :=_agfgbc .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
_efcg !=nil {_cbbc .Matrix =_efcg ;};if _faecc :=_agfgbc .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_faecc !=nil {_faecc =_eg .TraceToDirectObject (_faecc );_gcddga ,_accdf :=_faecc .(*_eg .PdfObjectDictionary );if !_accdf {_dbg .Log .Debug ("\u0049\u006e\u0076\u0061\u006ci\u0064\u0020\u0058\u004f\u0062j\u0065c\u0074\u0020\u0046\u006f\u0072\u006d\u0020\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006f\u0062j\u0065\u0063\u0074\u002c\u0020\u0070\u006f\u0069\u006e\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u006e\u006f\u006e\u002d\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");
return nil ,_eg .ErrTypeError ;};_fbgdcd ,_caecc :=NewPdfPageResourcesFromDict (_gcddga );if _caecc !=nil {_dbg .Log .Debug ("\u0046\u0061i\u006c\u0065\u0064\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0020\u0072\u0065\u0073\u006f\u0075rc\u0065\u0073");
return nil ,_caecc ;};_cbbc .Resources =_fbgdcd ;_dbg .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_cbbc .Resources );};_cbbc .Group =_agfgbc .Get ("\u0047\u0072\u006fu\u0070");
_cbbc .Ref =_agfgbc .Get ("\u0052\u0065\u0066");_cbbc .MetaData =_agfgbc .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_cbbc .PieceInfo =_agfgbc .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_cbbc .LastModified =_agfgbc .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");
_cbbc .StructParent =_agfgbc .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_cbbc .StructParents =_agfgbc .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_cbbc .OPI =_agfgbc .Get ("\u004f\u0050\u0049");
_cbbc .OC =_agfgbc .Get ("\u004f\u0043");_cbbc .Name =_agfgbc .Get ("\u004e\u0061\u006d\u0065");_cbbc .Stream =stream .Stream ;return _cbbc ,nil ;};
// PdfColorspaceCalGray represents CalGray color space.
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_gccdc *_eg .PdfIndirectObject ;};
// GetBorderWidth returns the border style's width.
func (_acfc *PdfBorderStyle )GetBorderWidth ()float64 {if _acfc .W ==nil {return 1;};return *_acfc .W ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_febb *PdfColorspaceSpecialPattern )ToPdfObject ()_eg .PdfObject {if _febb .UnderlyingCS ==nil {return _eg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_fdbb :=_eg .MakeArray (_eg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_fdbb .Append (_febb .UnderlyingCS .ToPdfObject ());
if _febb ._ecbb !=nil {_febb ._ecbb .PdfObject =_fdbb ;return _febb ._ecbb ;};return _fdbb ;};func (_bgcb *PdfReader )newPdfActionResetFormFromDict (_eca *_eg .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_eca .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_eca .Get ("\u0046\u006c\u0061g\u0073")},nil ;
};
// Val returns the value of the color.
func (_cfbf *PdfColorCalGray )Val ()float64 {return float64 (*_cfbf )};
// AddCustomInfo adds a custom info into document info dictionary.
func (_cecbg *PdfInfo )AddCustomInfo (name string ,value string )error {if _cecbg ._fbfgb ==nil {_cecbg ._fbfgb =_eg .MakeDict ();};if _ ,_dcad :=_ccad [name ];_dcad {return _e .Errorf ("\u0063\u0061\u006e\u006e\u006ft\u0020\u0075\u0073\u0065\u0020\u0073\u0074\u0061\u006e\u0064\u0061\u0072\u0064 \u0069\u006e\u0066\u006f\u0020\u006b\u0065\u0079\u0020\u0025\u0073\u0020\u0061\u0073\u0020\u0063\u0075\u0073\u0074\u006f\u006d\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u006b\u0065y",name );
};_cecbg ._fbfgb .SetIfNotNil (*_eg .MakeName (name ),_eg .MakeString (value ));return nil ;};
// GetAction returns the PDF action for the annotation link.
func (_afd *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _afd ._cecf !=nil {return _afd ._cecf ,nil ;};if _afd .A ==nil {return nil ,nil ;};if _afd ._fab ==nil {return nil ,nil ;};_ggb ,_bfb :=_afd ._fab .loadAction (_afd .A );if _bfb !=nil {return nil ,_bfb ;
};_afd ._cecf =_ggb ;return _afd ._cecf ,nil ;};
// NewPdfReader returns a new PdfReader for an input io.ReadSeeker interface. Can be used to read PDF from
// memory or file. Immediately loads and traverses the PDF structure including pages and page contents (if
// not encrypted). Loads entire document structure into memory.
// Alternatively a lazy-loading reader can be created with NewPdfReaderLazy which loads only references,
// and references are loaded from disk into memory on an as-needed basis.
func NewPdfReader (rs _de .ReadSeeker )(*PdfReader ,error ){const _geega ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";_eeebc :=&PdfReader {_addac :rs ,_gadge :map[_eg .PdfObject ]struct{}{},_gced :_dbbge (),_bebe :false };
_dbec ,_beabg :=_fccgd ("\u0072");if _beabg !=nil {return nil ,_beabg ;};_beabg =_dd .Track (_dbec ,_geega );if _beabg !=nil {return nil ,_beabg ;};_eeebc ._ebcgb =_dbec ;_fdca ,_beabg :=_eg .NewParser (rs );if _beabg !=nil {return nil ,_beabg ;};_eeebc ._cdggc =_fdca ;
_fabbe ,_beabg :=_eeebc .IsEncrypted ();if _beabg !=nil {return nil ,_beabg ;};if !_fabbe {_beabg =_eeebc .loadStructure ();if _beabg !=nil {return nil ,_beabg ;};};return _eeebc ,nil ;};
// NewPdfFilespec returns an initialized generic PDF filespec model.
func NewPdfFilespec ()*PdfFilespec {_aedca :=&PdfFilespec {};_aedca ._fceg =_eg .MakeIndirectObject (_eg .MakeDict ());return _aedca ;};
// AddExtGState adds a graphics state to the XObject resources.
func (_efeeef *PdfPage )AddExtGState (name _eg .PdfObjectName ,egs *_eg .PdfObjectDictionary )error {if _efeeef .Resources ==nil {_efeeef .Resources =NewPdfPageResources ();};if _efeeef .Resources .ExtGState ==nil {_efeeef .Resources .ExtGState =_eg .MakeDict ();
};_fecd ,_fgde :=_eg .TraceToDirectObject (_efeeef .Resources .ExtGState ).(*_eg .PdfObjectDictionary );if !_fgde {_dbg .Log .Debug ("\u0045\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0045\u0078t\u0047\u0053\u0074\u0061\u0074\u0065\u0020\u0064i\u0063t\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u003a\u0020\u0025\u0076",_eg .TraceToDirectObject (_efeeef .Resources .ExtGState ));
return _bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fecd .Set (name ,egs );return nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_cdcgdc *PdfShadingType1 )ToPdfObject ()_eg .PdfObject {_cdcgdc .PdfShading .ToPdfObject ();_adfa ,_feef :=_cdcgdc .getShadingDict ();if _feef !=nil {_dbg .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
return nil ;};if _cdcgdc .Domain !=nil {_adfa .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cdcgdc .Domain );};if _cdcgdc .Matrix !=nil {_adfa .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_cdcgdc .Matrix );};if _cdcgdc .Function !=nil {if len (_cdcgdc .Function )==1{_adfa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cdcgdc .Function [0].ToPdfObject ());
}else {_gbab :=_eg .MakeArray ();for _ ,_gcaaea :=range _cdcgdc .Function {_gbab .Append (_gcaaea .ToPdfObject ());};_adfa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gbab );};};return _cdcgdc ._beag ;};func (_fcfcc *PdfReader )buildPageList (_ccaf *_eg .PdfIndirectObject ,_feegc *_eg .PdfIndirectObject ,_ggebe map[_eg .PdfObject ]struct{})error {if _ccaf ==nil {return nil ;
};if _ ,_bacc :=_ggebe [_ccaf ];_bacc {_dbg .Log .Debug ("\u0043\u0079\u0063l\u0069\u0063\u0020\u0072e\u0063\u0075\u0072\u0073\u0069\u006f\u006e,\u0020\u0073\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u0028\u0025\u0076\u0029",_ccaf .ObjectNumber );
return nil ;};_ggebe [_ccaf ]=struct{}{};_ebccef ,_febea :=_ccaf .PdfObject .(*_eg .PdfObjectDictionary );if !_febea {return _bbd .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_bbfee ,_febea :=(*_ebccef ).Get ("\u0054\u0079\u0070\u0065").(*_eg .PdfObjectName );
if !_febea {if _ebccef .Get ("\u004b\u0069\u0064\u0073")==nil {return _bbd .New ("\u006e\u006f\u0064\u0065 \u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0054\u0079p\u0065 \u0028\u0052\u0065\u0071\u0075\u0069\u0072e\u0064\u0029");};_dbg .Log .Debug ("ER\u0052\u004fR\u003a\u0020\u006e\u006f\u0064\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067\u0020\u0054\u0079\u0070\u0065\u002c\u0020\u0062\u0075\u0074\u0020\u0068\u0061\u0073\u0020\u004b\u0069\u0064\u0073\u002e\u0020\u0041\u0073\u0073u\u006di\u006e\u0067\u0020\u0050\u0061\u0067\u0065\u0073 \u006eo\u0064\u0065.");
_bbfee =_eg .MakeName ("\u0050\u0061\u0067e\u0073");_ebccef .Set ("\u0054\u0079\u0070\u0065",_bbfee );};_dbg .Log .Trace ("\u0062\u0075\u0069\u006c\u0064\u0050a\u0067\u0065\u004c\u0069\u0073\u0074\u0020\u006e\u006f\u0064\u0065\u0020\u0074y\u0070\u0065\u003a\u0020\u0025\u0073\u0020(\u0025\u002b\u0076\u0029",*_bbfee ,_ccaf );
if *_bbfee =="\u0050\u0061\u0067\u0065"{_cffgf ,_babe :=_fcfcc .newPdfPageFromDict (_ebccef );if _babe !=nil {return _babe ;};_cffgf .setContainer (_ccaf );if _feegc !=nil {_ebccef .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_feegc );};_fcfcc ._dfff =append (_fcfcc ._dfff ,_ccaf );
_fcfcc .PageList =append (_fcfcc .PageList ,_cffgf );return nil ;};if *_bbfee !="\u0050\u0061\u0067e\u0073"{_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0054\u0061\u0062\u006c\u0065\u0020\u006f\u0066\u0020\u0063\u006fnt\u0065n\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067 \u006e\u006f\u006e\u0020\u0050\u0061\u0067\u0065\u002f\u0050\u0061\u0067\u0065\u0073\u0020\u006f\u0062j\u0065\u0063\u0074\u0021\u0020\u0028\u0025\u0073\u0029",_bbfee );
return _bbd .New ("\u0074\u0061\u0062\u006c\u0065\u0020o\u0066\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067 \u006e\u006f\u006e\u0020\u0050\u0061\u0067\u0065\u002f\u0050\u0061\u0067\u0065\u0073 \u006fb\u006a\u0065\u0063\u0074");
};if _feegc !=nil {_ebccef .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_feegc );};if !_fcfcc ._bebe {_daefd :=_fcfcc .traverseObjectData (_ccaf );if _daefd !=nil {return _daefd ;};};_fdfcd ,_acgb :=_fcfcc ._cdggc .Resolve (_ebccef .Get ("\u004b\u0069\u0064\u0073"));
if _acgb !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0046\u0061\u0069\u006c\u0065\u0064\u0020\u006c\u006f\u0061\u0064\u0069\u006eg\u0020\u004b\u0069\u0064\u0073\u0020\u006fb\u006a\u0065\u0063\u0074");return _acgb ;};var _bdgfb *_eg .PdfObjectArray ;
_bdgfb ,_febea =_fdfcd .(*_eg .PdfObjectArray );if !_febea {_geeab ,_agaec :=_fdfcd .(*_eg .PdfIndirectObject );if !_agaec {return _bbd .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};
_bdgfb ,_febea =_geeab .PdfObject .(*_eg .PdfObjectArray );if !_febea {return _bbd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u0069\u006ed\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006ae\u0063\u0074");};};_dbg .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_bdgfb );
for _dgagf ,_gefea :=range _bdgfb .Elements (){_gaefg ,_geae :=_eg .GetIndirect (_gefea );if !_geae {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074 \u006f\u0062\u006a\u0065\u0063t\u0020\u002d \u0028\u0025\u0073\u0029",_gaefg );
return _bbd .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_bdgfb .Set (_dgagf ,_gaefg );_acgb =_fcfcc .buildPageList (_gaefg ,_ccaf ,_ggebe );if _acgb !=nil {return _acgb ;
};};return nil ;};
// PdfFunctionType0 uses a sequence of sample values (contained in a stream) to provide an approximation
// for functions whose domains and ranges are bounded. The samples are organized as an m-dimensional
// table in which each entry has n components
type PdfFunctionType0 struct{Domain []float64 ;Range []float64 ;NumInputs int ;NumOutputs int ;Size []int ;BitsPerSample int ;Order int ;Encode []float64 ;Decode []float64 ;_ebad []byte ;_dgfa []uint32 ;_bafa *_eg .PdfObjectStream ;};func (_bfgd *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";
};
// ToPdfObject returns colorspace in a PDF object format [name stream]
func (_dcgba *PdfColorspaceICCBased )ToPdfObject ()_eg .PdfObject {_fabc :=&_eg .PdfObjectArray {};_fabc .Append (_eg .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _ddfc *_eg .PdfObjectStream ;if _dcgba ._efdb !=nil {_ddfc =_dcgba ._efdb ;
}else {_ddfc =&_eg .PdfObjectStream {};};_ggeaf :=_eg .MakeDict ();_ggeaf .Set ("\u004e",_eg .MakeInteger (int64 (_dcgba .N )));if _dcgba .Alternate !=nil {_ggeaf .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_dcgba .Alternate .ToPdfObject ());};
if _dcgba .Metadata !=nil {_ggeaf .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_dcgba .Metadata );};if _dcgba .Range !=nil {var _deed []_eg .PdfObject ;for _ ,_cfaa :=range _dcgba .Range {_deed =append (_deed ,_eg .MakeFloat (_cfaa ));};_ggeaf .Set ("\u0052\u0061\u006eg\u0065",_eg .MakeArray (_deed ...));
};_ggeaf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_dcgba .Data ))));_ddfc .Stream =_dcgba .Data ;_ddfc .PdfObjectDictionary =_ggeaf ;_fabc .Append (_ddfc );if _dcgba ._acga !=nil {_dcgba ._acga .PdfObject =_fabc ;return _dcgba ._acga ;
};return _fabc ;};
// SetFlag sets the flag for the field.
func (_cadc *PdfField )SetFlag (flag FieldFlag ){_cadc .Ff =_eg .MakeInteger (int64 (flag ))};
// PdfAnnotationFreeText represents FreeText annotations.
// (Section 12.5.6.6).
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _eg .PdfObject ;Q _eg .PdfObject ;RC _eg .PdfObject ;DS _eg .PdfObject ;CL _eg .PdfObject ;IT _eg .PdfObject ;BE _eg .PdfObject ;RD _eg .PdfObject ;BS _eg .PdfObject ;LE _eg .PdfObject ;
};
// PdfActionResetForm represents a resetForm action.
type PdfActionResetForm struct{*PdfAction ;Fields _eg .PdfObject ;Flags _eg .PdfObject ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_caae pdfFontType3 )GetCharMetrics (code _cec .CharCode )(_ab .CharMetrics ,bool ){if _eege ,_effce :=_caae ._cgcec [code ];_effce {return _ab .CharMetrics {Wx :_eege },true ;};if _ab .IsStdFont (_ab .StdFontName (_caae ._cfab )){return _ab .CharMetrics {Wx :250},true ;
};return _ab .CharMetrics {},false ;};
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
type EncryptionAlgorithm int ;
// StdFontName represents name of a standard font.
type StdFontName =_ab .StdFontName ;
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_ffbba *_eg .PdfIndirectObject ;};
// SetPdfTitle sets the Title attribute of the output PDF.
func SetPdfTitle (title string ){_egbeg .Lock ();defer _egbeg .Unlock ();_dgage =title };func (_ddgga *PdfSignature )extractChainFromPKCS7 ()([]*_ce .Certificate ,error ){_debcc ,_fdcdc :=_gb .Parse (_ddgga .Contents .Bytes ());if _fdcdc !=nil {return nil ,_fdcdc ;
};return _debcc .Certificates ,nil ;};
// CheckAccessRights checks access rights and permissions for a specified password. If either user/owner
// password is specified, full rights are granted, otherwise the access rights are specified by the
// Permissions flag.
//
// The bool flag indicates that the user can access and view the file.
// The AccessPermissions shows what access the user has for editing etc.
// An error is returned if there was a problem performing the authentication.
func (_aaecf *PdfReader )CheckAccessRights (password []byte )(bool ,_fc .Permissions ,error ){return _aaecf ._cdggc .CheckAccessRights (password );};
// SetAnnotations sets the annotations list.
func (_egaac *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_egaac ._egge =annotations };func _caefc ()string {_egbeg .Lock ();defer _egbeg .Unlock ();return _dgage };
// PdfAnnotationSquare represents Square annotations.
// (Section 12.5.6.8).
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _eg .PdfObject ;IC _eg .PdfObject ;BE _eg .PdfObject ;RD _eg .PdfObject ;};
// NewPdfFontFromTTF loads a TTF font and returns a PdfFont type that can be
// used in text styling functions.
// Uses a WinAnsiTextEncoder and loads only character codes 32-255.
// NOTE: For composite fonts such as used in symbolic languages, use NewCompositePdfFontFromTTF.
func NewPdfFontFromTTF (r _de .ReadSeeker )(*PdfFont ,error ){const _dgaed =_cec .CharCode (32);const _eddeed =_cec .CharCode (255);_febbd ,_beddf :=_aa .ReadAll (r );if _beddf !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065 \u0074\u006f\u0020\u0072\u0065\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074s\u003a\u0020\u0025\u0076",_beddf );
return nil ,_beddf ;};_gcaae ,_beddf :=_ab .TtfParse (_cbd .NewReader (_febbd ));if _beddf !=nil {_dbg .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020l\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0054\u0054F\u0020\u0066\u006fn\u0074:\u0020\u0025\u0076",_beddf );
return nil ,_beddf ;};_bbdfe :=&pdfFontSimple {_baga :make (map[_cec .CharCode ]float64 ),fontCommon :fontCommon {_fgbbb :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_bbdfe ._gccbc =_cec .NewWinAnsiEncoder ();_bbdfe ._cfab =_gcaae .PostScriptName ;
_bbdfe .FirstChar =_eg .MakeInteger (int64 (_dgaed ));_bbdfe .LastChar =_eg .MakeInteger (int64 (_eddeed ));_acgde :=1000.0/float64 (_gcaae .UnitsPerEm );if len (_gcaae .Widths )<=0{return nil ,_bbd .New ("\u0045\u0052\u0052O\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065 \u0028\u0057\u0069\u0064\u0074\u0068\u0073\u0029");
};_debe :=_acgde *float64 (_gcaae .Widths [0]);_dcefg :=make ([]float64 ,0,_eddeed -_dgaed +1);for _bdbge :=_dgaed ;_bdbge <=_eddeed ;_bdbge ++{_fade ,_fecgg :=_bbdfe .Encoder ().CharcodeToRune (_bdbge );if !_fecgg {_dbg .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_bdbge );
_dcefg =append (_dcefg ,_debe );continue ;};_cfdfc ,_eebgb :=_gcaae .Chars [_fade ];if !_eebgb {_dbg .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_dcefg =append (_dcefg ,_debe );continue ;
};_cbec :=_acgde *float64 (_gcaae .Widths [_cfdfc ]);_dcefg =append (_dcefg ,_cbec );};_bbdfe .Widths =_eg .MakeIndirectObject (_eg .MakeArrayFromFloats (_dcefg ));if len (_dcefg )< int (_eddeed -_dgaed +1){_dbg .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0065\u006e\u0067t\u0068\u0020\u006f\u0066\u0020\u0077\u0069\u0064\u0074\u0068s,\u0020\u0025\u0064 \u003c \u0025\u0064",len (_dcefg ),255-32+1);
return nil ,_eg .ErrRangeError ;};for _ddgcd :=_dgaed ;_ddgcd <=_eddeed ;_ddgcd ++{_bbdfe ._baga [_ddgcd ]=_dcefg [_ddgcd -_dgaed ];};_bbdfe .Encoding =_eg .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_cegcf :=&PdfFontDescriptor {};
_cegcf .FontName =_eg .MakeName (_gcaae .PostScriptName );_cegcf .Ascent =_eg .MakeFloat (_acgde *float64 (_gcaae .TypoAscender ));_cegcf .Descent =_eg .MakeFloat (_acgde *float64 (_gcaae .TypoDescender ));_cegcf .CapHeight =_eg .MakeFloat (_acgde *float64 (_gcaae .CapHeight ));
_cegcf .FontBBox =_eg .MakeArrayFromFloats ([]float64 {_acgde *float64 (_gcaae .Xmin ),_acgde *float64 (_gcaae .Ymin ),_acgde *float64 (_gcaae .Xmax ),_acgde *float64 (_gcaae .Ymax )});_cegcf .ItalicAngle =_eg .MakeFloat (_gcaae .ItalicAngle );_cegcf .MissingWidth =_eg .MakeFloat (_acgde *float64 (_gcaae .Widths [0]));
_ceaec ,_beddf :=_eg .MakeStream (_febbd ,_eg .NewFlateEncoder ());if _beddf !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074o\u0020m\u0061\u006b\u0065\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020\u0025\u0076",_beddf );
return nil ,_beddf ;};_ceaec .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_eg .MakeInteger (int64 (len (_febbd ))));_cegcf .FontFile2 =_ceaec ;if _gcaae .Bold {_cegcf .StemV =_eg .MakeInteger (120);}else {_cegcf .StemV =_eg .MakeInteger (70);
};_eedb :=_bacd ;if _gcaae .IsFixedPitch {_eedb |=_defe ;};if _gcaae .ItalicAngle !=0{_eedb |=_fedcc ;};_cegcf .Flags =_eg .MakeInteger (int64 (_eedb ));_bbdfe ._eecfe =_cegcf ;_fdef :=&PdfFont {_gdcab :_bbdfe };return _fdef ,nil ;};
// NewBorderStyle returns an initialized PdfBorderStyle.
func NewBorderStyle ()*PdfBorderStyle {_afcg :=&PdfBorderStyle {};return _afcg };func (_ddde *PdfReader )newPdfAnnotationPrinterMarkFromDict (_gcd *_eg .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_gfbd :=PdfAnnotationPrinterMark {};_gfbd .MN =_gcd .Get ("\u004d\u004e");
return &_gfbd ,nil ;};
// PdfAnnotationLink represents Link annotations.
// (Section 12.5.6.5 p. 403).
type PdfAnnotationLink struct{*PdfAnnotation ;A _eg .PdfObject ;Dest _eg .PdfObject ;H _eg .PdfObject ;PA _eg .PdfObject ;QuadPoints _eg .PdfObject ;BS _eg .PdfObject ;_cecf *PdfAction ;_fab *PdfReader ;};
// PdfAnnotationWidget represents Widget annotations.
// Note: Widget annotations are used to display form fields.
// (Section 12.5.6.19).
type PdfAnnotationWidget struct{*PdfAnnotation ;H _eg .PdfObject ;MK _eg .PdfObject ;A _eg .PdfObject ;AA _eg .PdfObject ;BS _eg .PdfObject ;Parent _eg .PdfObject ;_cdda *PdfField ;_gde bool ;};
// ToGoTime returns the date in time.Time format.
func (_dbac PdfDate )ToGoTime ()_ee .Time {_eafba :=int (_dbac ._gaggg *60*60+_dbac ._daabe *60);switch _dbac ._facfb {case '-':_eafba =-_eafba ;case 'Z':_eafba =0;};_bbgcfa :=_e .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_dbac ._facfb ,_dbac ._gaggg ,_dbac ._daabe );
_gcadc :=_ee .FixedZone (_bbgcfa ,_eafba );return _ee .Date (int (_dbac ._cggcf ),_ee .Month (_dbac ._agfdbf ),int (_dbac ._ebfff ),int (_dbac ._bfabc ),int (_dbac ._edagg ),int (_dbac ._ggcbe ),0,_gcadc );};
// SetSamples convert samples to byte-data and sets for the image.
// NOTE: The method resamples the data and this could lead to high memory usage,
// especially on large images. It should be used only when it is not possible
// to work with the image byte data directly.
func (_cbgg *Image )SetSamples (samples []uint32 ){if _cbgg .BitsPerComponent < 8{samples =_cbgg .samplesAddPadding (samples );};_efga :=_ccg .ResampleUint32 (samples ,int (_cbgg .BitsPerComponent ),8);_edfb :=make ([]byte ,len (_efga ));for _bdabg ,_cegfa :=range _efga {_edfb [_bdabg ]=byte (_cegfa );
};_cbgg .Data =_edfb ;};
// ToPdfObject returns the PDF representation of the DSS dictionary.
func (_ddgbb *DSS )ToPdfObject ()_eg .PdfObject {_fdbg :=_ddgbb ._gded .PdfObject .(*_eg .PdfObjectDictionary );_fdbg .Clear ();_cabce :=_eg .MakeDict ();for _ffbdc ,_gbed :=range _ddgbb .VRI {_cabce .Set (*_eg .MakeName (_ffbdc ),_gbed .ToPdfObject ());
};_fdbg .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_bffd (_ddgbb .Certs ));_fdbg .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_bffd (_ddgbb .OCSPs ));_fdbg .SetIfNotNil ("\u0043\u0052\u004c\u0073",_bffd (_ddgbb .CRLs ));_fdbg .Set ("\u0056\u0052\u0049",_cabce );
return _ddgbb ._gded ;};func _fegb (_geefg *_eg .PdfObjectDictionary ,_agfd *fontCommon )(*pdfCIDFontType2 ,error ){if _agfd ._fgbbb !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_dbg .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0046\u006fn\u0074\u0020\u0053u\u0062\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020CI\u0044\u0046\u006fn\u0074\u0054y\u0070\u0065\u0032\u002e\u0020\u0066o\u006e\u0074=\u0025\u0073",_agfd );
return nil ,_eg .ErrRangeError ;};_eacce :=_egdg (_agfd );_fgabe ,_dcdf :=_eg .GetDict (_geefg .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_dcdf {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043I\u0044\u0053\u0079st\u0065\u006d\u0049\u006e\u0066\u006f \u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u002e\u0020\u0066\u006f\u006e\u0074=\u0025\u0073",_agfd );
return nil ,ErrRequiredAttributeMissing ;};_eacce .CIDSystemInfo =_fgabe ;_eacce .DW =_geefg .Get ("\u0044\u0057");_eacce .W =_geefg .Get ("\u0057");_eacce .DW2 =_geefg .Get ("\u0044\u0057\u0032");_eacce .W2 =_geefg .Get ("\u0057\u0032");_eacce .CIDToGIDMap =_geefg .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");
_eacce ._cbgd =1000.0;if _dgefbc ,_fbcga :=_eg .GetNumberAsFloat (_eacce .DW );_fbcga ==nil {_eacce ._cbgd =_dgefbc ;};_cded ,_abafa :=_dbae (_eacce .W );if _abafa !=nil {return nil ,_abafa ;};if _cded ==nil {_cded =map[_cec .CharCode ]float64 {};};_eacce ._egdc =_cded ;
return _eacce ,nil ;};
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
type AcroFormRepairOptions struct{};func (_baafe *Image )resampleLowBits (_cbba []uint32 ){_fgfg :=_ff .BytesPerLine (int (_baafe .Width ),int (_baafe .BitsPerComponent ),_baafe .ColorComponents );_ggecc :=make ([]byte ,_baafe .ColorComponents *_fgfg *int (_baafe .Height ));
_efbee :=int (_baafe .BitsPerComponent )*_baafe .ColorComponents *int (_baafe .Width );_fgbea :=uint8 (8);var (_ffbcc ,_bdae int ;_fdbad uint32 ;);for _cfgbd :=0;_cfgbd < int (_baafe .Height );_cfgbd ++{_bdae =_cfgbd *_fgfg ;for _efdbe :=0;_efdbe < _efbee ;
_efdbe ++{_fdbad =_cbba [_ffbcc ];_fgbea -=uint8 (_baafe .BitsPerComponent );_ggecc [_bdae ]|=byte (_fdbad )<<_fgbea ;if _fgbea ==0{_fgbea =8;_bdae ++;};_ffbcc ++;};};_baafe .Data =_ggecc ;};
// SetPdfKeywords sets the Keywords attribute of the output PDF.
func SetPdfKeywords (keywords string ){_egbeg .Lock ();defer _egbeg .Unlock ();_bbgff =keywords };
// Sign signs a specific page with a digital signature.
// The signature field parameter must have a valid signature dictionary
// specified by its V field.
func (_gbbd *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _bbd .New ("\u0073\u0069g\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0062\u0065 n\u0069\u006c");
};_cbeaa :=field .V ;if _cbeaa ==nil {return _bbd .New ("\u0073\u0069\u0067na\u0074\u0075\u0072\u0065\u0020\u0064\u0069\u0063\u0074i\u006fn\u0061r\u0079 \u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u006e\u0069\u006c");};_ceb :=pageNum -1;
if _ceb < 0||_ceb > len (_gbbd ._bfce )-1{return _e .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_adea :=_gbbd .Reader .PageList [_ceb ];field .P =_adea .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_eg .MakeString (_e .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));
};_adea .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _gbbd ._ggcc ==_gbbd ._acdg .AcroForm {_gbbd ._ggcc =_gbbd .Reader .AcroForm ;};_ccggg :=_gbbd ._ggcc ;if _ccggg ==nil {_ccggg =NewPdfAcroForm ();};_ccggg .SigFlags =_eg .MakeInteger (3);
_bgef :=append (_ccggg .AllFields (),field .PdfField );_ccggg .Fields =&_bgef ;_gbbd .ReplaceAcroForm (_ccggg );_gbbd .UpdatePage (_adea );_gbbd ._bfce [_ceb ]=_adea ;return nil ;};
// ToInteger convert to an integer format.
func (_fdfa *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_aged :=_bc .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_aged *_fdfa .C ()),uint32 (_aged *_fdfa .M ()),uint32 (_aged *_fdfa .Y ()),uint32 (_aged *_fdfa .K ())};};
// PdfDate represents a date, which is a PDF string of the form:
// (D:YYYYMMDDHHmmSSOHH'mm)
type PdfDate struct{_cggcf int64 ;_agfdbf int64 ;_ebfff int64 ;_bfabc int64 ;_edagg int64 ;_ggcbe int64 ;_facfb byte ;_gaggg int64 ;_daabe int64 ;};func (_cbbab *LTV )getCerts (_dbdaf []*_ce .Certificate )([][]byte ,error ){_dfegg :=make ([][]byte ,0,len (_dbdaf ));
for _ ,_deae :=range _dbdaf {_dfegg =append (_dfegg ,_deae .Raw );};return _dfegg ,nil ;};
// PdfColorDeviceRGB represents a color in DeviceRGB colorspace with R, G, B components, where component is
// defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorDeviceRGB [3]float64 ;
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
func (_cgcge *PdfFontDescriptor )ToPdfObject ()_eg .PdfObject {_fffg :=_eg .MakeDict ();if _cgcge ._fcfbbf ==nil {_cgcge ._fcfbbf =&_eg .PdfIndirectObject {};};_cgcge ._fcfbbf .PdfObject =_fffg ;_fffg .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));
if _cgcge .FontName !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_cgcge .FontName );};if _cgcge .FontFamily !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_cgcge .FontFamily );};if _cgcge .FontStretch !=nil {_fffg .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_cgcge .FontStretch );
};if _cgcge .FontWeight !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_cgcge .FontWeight );};if _cgcge .Flags !=nil {_fffg .Set ("\u0046\u006c\u0061g\u0073",_cgcge .Flags );};if _cgcge .FontBBox !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_cgcge .FontBBox );
};if _cgcge .ItalicAngle !=nil {_fffg .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_cgcge .ItalicAngle );};if _cgcge .Ascent !=nil {_fffg .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_cgcge .Ascent );};if _cgcge .Descent !=nil {_fffg .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_cgcge .Descent );
};if _cgcge .Leading !=nil {_fffg .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_cgcge .Leading );};if _cgcge .CapHeight !=nil {_fffg .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_cgcge .CapHeight );};if _cgcge .XHeight !=nil {_fffg .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_cgcge .XHeight );
};if _cgcge .StemV !=nil {_fffg .Set ("\u0053\u0074\u0065m\u0056",_cgcge .StemV );};if _cgcge .StemH !=nil {_fffg .Set ("\u0053\u0074\u0065m\u0048",_cgcge .StemH );};if _cgcge .AvgWidth !=nil {_fffg .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_cgcge .AvgWidth );
};if _cgcge .MaxWidth !=nil {_fffg .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_cgcge .MaxWidth );};if _cgcge .MissingWidth !=nil {_fffg .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_cgcge .MissingWidth );};if _cgcge .FontFile !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_cgcge .FontFile );
};if _cgcge .FontFile2 !=nil {_fffg .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_cgcge .FontFile2 );};if _cgcge .FontFile3 !=nil {_fffg .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_cgcge .FontFile3 );};if _cgcge .CharSet !=nil {_fffg .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_cgcge .CharSet );
};if _cgcge .Style !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_cgcge .FontName );};if _cgcge .Lang !=nil {_fffg .Set ("\u004c\u0061\u006e\u0067",_cgcge .Lang );};if _cgcge .FD !=nil {_fffg .Set ("\u0046\u0044",_cgcge .FD );};
if _cgcge .CIDSet !=nil {_fffg .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_cgcge .CIDSet );};return _cgcge ._fcfbbf ;};func _faae (_gagcc *_eg .PdfObjectDictionary ,_gefb *fontCommon )(*pdfFontType0 ,error ){_eeba ,_agdg :=_eg .GetArray (_gagcc .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));
if !_agdg {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049n\u0076\u0061\u006cid\u0020\u0044\u0065\u0073\u0063\u0065n\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073\u0020\u002d\u0020\u006e\u006f\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079 \u0025\u0073",_gefb );
return nil ,_eg .ErrRangeError ;};if _eeba .Len ()!=1{_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0041\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u0021\u003d\u0020\u0031\u0020(%\u0064\u0029",_eeba .Len ());return nil ,_eg .ErrRangeError ;
};_deddc ,_dccbg :=_cdac (_eeba .Get (0),false );if _dccbg !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046a\u0069\u006c\u0065d \u006c\u006f\u0061\u0064\u0069\u006eg\u0020\u0064\u0065\u0073\u0063\u0065\u006e\u0064\u0061\u006e\u0074\u0020\u0066\u006f\u006et\u003a\u0020\u0065\u0072\u0072\u003d\u0025\u0076 \u0025\u0073",_dccbg ,_gefb );
return nil ,_dccbg ;};_bcbgd :=_gcbdb (_gefb );_bcbgd .DescendantFont =_deddc ;_bcadfg ,_agdg :=_eg .GetNameVal (_gagcc .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _agdg {if _bcadfg =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_bcadfg =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_bcbgd ._eceba =_cec .NewIdentityTextEncoder (_bcadfg );
}else if _aff .IsPredefinedCMap (_bcadfg ){_bcbgd ._adad ,_dccbg =_aff .LoadPredefinedCMap (_bcadfg );if _dccbg !=nil {_dbg .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020l\u006f\u0061\u0064\u0020\u0070\u0072\u0065\u0064\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0043\u004d\u0061\u0070\u0020\u0025\u0073\u003a\u0020\u0025\u0076",_bcadfg ,_dccbg );
};}else {_dbg .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_bcadfg );};};if _edbee :=_deddc .baseFields ()._fffc ;_edbee !=nil {if _agae :=_edbee .Name ();_agae =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_agae =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_agae =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_agae =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_bcbgd ._eceba =_cec .NewCMapEncoder (_bcadfg ,_bcbgd ._adad ,_edbee );
};};return _bcbgd ,nil ;};
// AddFont adds a font dictionary to the Font resources.
func (_cebfd *PdfPage )AddFont (name _eg .PdfObjectName ,font _eg .PdfObject )error {if _cebfd .Resources ==nil {_cebfd .Resources =NewPdfPageResources ();};if _cebfd .Resources .Font ==nil {_cebfd .Resources .Font =_eg .MakeDict ();};_beaf ,_afbbe :=_eg .TraceToDirectObject (_cebfd .Resources .Font ).(*_eg .PdfObjectDictionary );
if !_afbbe {_dbg .Log .Debug ("\u0045\u0078\u0070\u0065\u0063\u0074\u0065\u0064 \u0066\u006f\u006et \u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u003a \u0025\u0076",_eg .TraceToDirectObject (_cebfd .Resources .Font ));
return _bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_beaf .Set (name ,font );return nil ;};
// String returns the name of the colorspace (DeviceN).
func (_gfdf *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
// GetContentStreams returns the content stream as an array of strings.
func (_fcbd *PdfPage )GetContentStreams ()([]string ,error ){_ddgfb :=_fcbd .GetContentStreamObjs ();var _adeac []string ;for _ ,_eccea :=range _ddgfb {_fgbbg ,_ddegc :=_cafedf (_eccea );if _ddegc !=nil {return nil ,_ddegc ;};_adeac =append (_adeac ,_fgbbg );
};return _adeac ,nil ;};
// GetAllContentStreams gets all the content streams for a page as one string.
func (_efeab *PdfPage )GetAllContentStreams ()(string ,error ){_bdfa ,_eeffg :=_efeab .GetContentStreams ();if _eeffg !=nil {return "",_eeffg ;};return _dc .Join (_bdfa ,"\u0020"),nil ;};
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
func (_efbfc *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_bbd .New ("\u0074\u0068e \u0070\u0072\u006fv\u0069\u0064\u0065\u0064 im\u0061ge\u0020\u0069\u0073\u0020\u006e\u006f\u0074 g\u0072\u0061\u0079\u0020\u0073\u0063\u0061l\u0065");
};_acad ,_cfbd :=_ff .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fcec ,img ._aaeac );if _cfbd !=nil {return img ,_cfbd ;};_bagf ,_cfbd :=_ff .NRGBAConverter .Convert (_acad );if _cfbd !=nil {return img ,_cfbd ;
};_dbcd :=_egbde (_bagf .Base ());_dbg .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_dbg .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_dbg .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_dbcd .Data );
_dbg .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_dbcd );return _dbcd ,nil ;};func _gbeab (_dedgb _eg .PdfObject )(*fontFile ,error ){_dbg .Log .Trace ("\u006e\u0065\u0077\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0046\u0072\u006f\u006dP\u0064f\u004f\u0062\u006a\u0065\u0063\u0074\u003a\u0020\u006f\u0062\u006a\u003d\u0025\u0073",_dedgb );
_gcbda :=&fontFile {};_dedgb =_eg .TraceToDirectObject (_dedgb );_edaa ,_egee :=_dedgb .(*_eg .PdfObjectStream );if !_egee {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020F\u006f\u006et\u0046\u0069\u006c\u0065\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d \u0028\u0025\u0054\u0029",_dedgb );
return nil ,_eg .ErrTypeError ;};_dgfca :=_edaa .PdfObjectDictionary ;_ebaf ,_cfbg :=_eg .DecodeStream (_edaa );if _cfbg !=nil {return nil ,_cfbg ;};_cgbfc ,_egee :=_eg .GetNameVal (_dgfca .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_egee {_gcbda ._gecf =_cgbfc ;
if _cgbfc =="\u0054\u0079\u0070\u0065\u0031\u0043"{_dbg .Log .Debug ("T\u0079\u0070\u0065\u0031\u0043\u0020\u0066\u006f\u006e\u0074\u0073\u0020\u0061\u0072\u0065\u0020\u0063\u0075r\u0072\u0065\u006e\u0074\u006c\u0079\u0020\u006e\u006f\u0074 s\u0075\u0070\u0070o\u0072t\u0065\u0064");
return nil ,ErrType1CFontNotSupported ;};};_dcfgg ,_ :=_eg .GetIntVal (_dgfca .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_edaca ,_ :=_eg .GetIntVal (_dgfca .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _dcfgg > len (_ebaf ){_dcfgg =len (_ebaf );
};if _dcfgg +_edaca > len (_ebaf ){_edaca =len (_ebaf )-_dcfgg ;};_adebc :=_ebaf [:_dcfgg ];var _addcd []byte ;if _edaca > 0{_addcd =_ebaf [_dcfgg :_dcfgg +_edaca ];};if _dcfgg > 0&&_edaca > 0{_dfddb :=_gcbda .loadFromSegments (_adebc ,_addcd );if _dfddb !=nil {return nil ,_dfddb ;
};};return _gcbda ,nil ;};func (_edbce *DSS )addOCSPs (_abfc [][]byte )([]*_eg .PdfObjectStream ,error ){return _edbce .add (&_edbce .OCSPs ,_edbce ._geeeb ,_abfc );};
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_dcace :=&PdfColorspaceCalRGB {};_dcace .BlackPoint =[]float64 {0.0,0.0,0.0};_dcace .Gamma =[]float64 {1.0,1.0,1.0};_dcace .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _dcace ;};func (_ebgc *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
// ToPdfObject implements interface PdfModel.
func (_ceg *PdfActionHide )ToPdfObject ()_eg .PdfObject {_ceg .PdfAction .ToPdfObject ();_geg :=_ceg ._ege ;_dbf :=_geg .PdfObject .(*_eg .PdfObjectDictionary );_dbf .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeHide )));_dbf .SetIfNotNil ("\u0054",_ceg .T );
_dbf .SetIfNotNil ("\u0048",_ceg .H );return _geg ;};
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
type PdfAnnotation struct{_ffbe PdfModel ;Rect _eg .PdfObject ;Contents _eg .PdfObject ;P _eg .PdfObject ;NM _eg .PdfObject ;M _eg .PdfObject ;F _eg .PdfObject ;AP _eg .PdfObject ;AS _eg .PdfObject ;Border _eg .PdfObject ;C _eg .PdfObject ;StructParent _eg .PdfObject ;
OC _eg .PdfObject ;_gag *_eg .PdfIndirectObject ;};
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
// for a button field.
func (_cbdee *PdfField )GetContext ()PdfModel {return _cbdee ._ceag };func (_bcfdb *PdfReader )newPdfSignatureFromIndirect (_aegfb *_eg .PdfIndirectObject )(*PdfSignature ,error ){_ccbf ,_ffcea :=_aegfb .PdfObject .(*_eg .PdfObjectDictionary );if !_ffcea {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072e\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072\u0020\u006e\u006ft\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
return nil ,ErrTypeCheck ;};if _bcegbc ,_caafe :=_bcfdb ._gced .GetModelFromPrimitive (_aegfb ).(*PdfSignature );_caafe {return _bcegbc ,nil ;};_efda :=&PdfSignature {};_efda ._ffae =_aegfb ;_efda .Type ,_ =_eg .GetName (_ccbf .Get ("\u0054\u0079\u0070\u0065"));
_efda .Filter ,_ffcea =_eg .GetName (_ccbf .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_ffcea {_dbg .Log .Error ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0053i\u0067\u006e\u0061\u0074\u0075r\u0065\u0020\u0046\u0069\u006c\u0074\u0065\u0072\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
return nil ,ErrInvalidAttribute ;};_efda .SubFilter ,_ =_eg .GetName (_ccbf .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_efda .Contents ,_ffcea =_eg .GetString (_ccbf .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_ffcea {_dbg .Log .Error ("\u0045\u0052\u0052\u004f\u0052\u003a \u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006et\u0065\u006e\u0074\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
return nil ,ErrInvalidAttribute ;};_efda .Cert =_ccbf .Get ("\u0043\u0065\u0072\u0074");_efda .ByteRange ,_ =_eg .GetArray (_ccbf .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));_efda .Reference ,_ =_eg .GetArray (_ccbf .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));
_efda .Changes ,_ =_eg .GetArray (_ccbf .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_efda .Name ,_ =_eg .GetString (_ccbf .Get ("\u004e\u0061\u006d\u0065"));_efda .M ,_ =_eg .GetString (_ccbf .Get ("\u004d"));_efda .Location ,_ =_eg .GetString (_ccbf .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));
_efda .Reason ,_ =_eg .GetString (_ccbf .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_efda .ContactInfo ,_ =_eg .GetString (_ccbf .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_efda .R ,_ =_eg .GetInt (_ccbf .Get ("\u0052"));
_efda .V ,_ =_eg .GetInt (_ccbf .Get ("\u0056"));_efda .PropBuild ,_ =_eg .GetDict (_ccbf .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_efda .PropAuthTime ,_ =_eg .GetInt (_ccbf .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));
_efda .PropAuthType ,_ =_eg .GetName (_ccbf .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));return _efda ,nil ;};
// VRI represents a Validation-Related Information dictionary.
// The VRI dictionary contains validation data in the form of
// certificates, OCSP and CRL information, for a single signature.
// See ETSI TS 102 778-4 V1.1.1 for more information.
type VRI struct{Cert []*_eg .PdfObjectStream ;OCSP []*_eg .PdfObjectStream ;CRL []*_eg .PdfObjectStream ;TU *_eg .PdfObjectString ;TS *_eg .PdfObjectString ;};var _ pdfFont =(*pdfFontType3 )(nil );
// EnableByName LTV enables the signature dictionary of the PDF AcroForm
// field identified the specified name. The signing certificate chain is
// extracted from the signature dictionary. Optionally, additional certificates
// can be specified through the `extraCerts` parameter. The LTV client attempts
// to build the certificate chain up to a trusted root by downloading any
// missing certificates.
func (_eebe *LTV )EnableByName (name string ,extraCerts []*_ce .Certificate )error {_ggeca :=_eebe ._caadf ._acdg .AcroForm ;for _ ,_ddfg :=range _ggeca .AllFields (){_ddbgd ,_ :=_ddfg .GetContext ().(*PdfFieldSignature );if _ddbgd ==nil {continue ;};if _eggde :=_ddbgd .PartialName ();
_eggde !=name {continue ;};return _eebe .Enable (_ddbgd .V ,extraCerts );};return nil ;};type pdfFont interface{_ab .Font ;
// ToPdfObject returns a PDF representation of the font and implements interface Model.
ToPdfObject ()_eg .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
// ToPdfObject implements interface PdfModel.
func (_gdc *PdfAnnotationRedact )ToPdfObject ()_eg .PdfObject {_gdc .PdfAnnotation .ToPdfObject ();_gcdg :=_gdc ._gag ;_cfcc :=_gcdg .PdfObject .(*_eg .PdfObjectDictionary );_gdc .PdfAnnotationMarkup .appendToPdfDictionary (_cfcc );_cfcc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));
_cfcc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gdc .QuadPoints );_cfcc .SetIfNotNil ("\u0049\u0043",_gdc .IC );_cfcc .SetIfNotNil ("\u0052\u004f",_gdc .RO );_cfcc .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_gdc .OverlayText );
_cfcc .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_gdc .Repeat );_cfcc .SetIfNotNil ("\u0044\u0041",_gdc .DA );_cfcc .SetIfNotNil ("\u0051",_gdc .Q );return _gcdg ;};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_acaf *PdfShadingPattern )ToPdfObject ()_eg .PdfObject {_acaf .PdfPattern .ToPdfObject ();_adde :=_acaf .getDict ();if _acaf .Shading !=nil {_adde .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_acaf .Shading .ToPdfObject ());};if _acaf .Matrix !=nil {_adde .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_acaf .Matrix );
};if _acaf .ExtGState !=nil {_adde .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_acaf .ExtGState );};return _acaf ._cfaag ;};
// DecodeArray returns the range of color component values in DeviceGray colorspace.
func (_dffe *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// HasExtGState checks if ExtGState name is available.
func (_cggaa *PdfPage )HasExtGState (name _eg .PdfObjectName )bool {if _cggaa .Resources ==nil {return false ;};if _cggaa .Resources .ExtGState ==nil {return false ;};_gacb ,_dedged :=_eg .TraceToDirectObject (_cggaa .Resources .ExtGState ).(*_eg .PdfObjectDictionary );
if !_dedged {_dbg .Log .Debug ("\u0045\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0045\u0078t\u0047\u0053\u0074\u0061\u0074\u0065\u0020\u0064i\u0063t\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u003a\u0020\u0025\u0076",_eg .TraceToDirectObject (_cggaa .Resources .ExtGState ));
return false ;};_gcfgb :=_gacb .Get (name );_ccaa :=_gcfgb !=nil ;return _ccaa ;};
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
func (_cceb *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
// ToPdfObject implements interface PdfModel.
func (_bgcf *PdfAnnotationStrikeOut )ToPdfObject ()_eg .PdfObject {_bgcf .PdfAnnotation .ToPdfObject ();_dfb :=_bgcf ._gag ;_dbbd :=_dfb .PdfObject .(*_eg .PdfObjectDictionary );_bgcf .PdfAnnotationMarkup .appendToPdfDictionary (_dbbd );_dbbd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));
_dbbd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bgcf .QuadPoints );return _dfb ;};
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
type PdfFieldButton struct{*PdfField ;Opt *_eg .PdfObjectArray ;};func (_gebe *pdfFontSimple )getFontEncoding ()(_efcd string ,_afba map[_cec .CharCode ]_cec .GlyphName ,_gcbe error ){_efcd ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";
if _aafe ,_dcbfa :=_aaffe [_gebe ._cfab ];_dcbfa {_efcd =_aafe ;}else if _gebe .fontFlags ()&_efecb !=0{for _gfcea ,_fafbf :=range _aaffe {if _dc .Contains (_gebe ._cfab ,_gfcea ){_efcd =_fafbf ;break ;};};};if _gebe .Encoding ==nil {return _efcd ,nil ,nil ;
};switch _bfefd :=_gebe .Encoding .(type ){case *_eg .PdfObjectName :return string (*_bfefd ),nil ,nil ;case *_eg .PdfObjectDictionary :_egceg ,_feecd :=_eg .GetName (_bfefd .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
if _feecd {_efcd =_egceg .String ();};if _cbbfb :=_bfefd .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_cbbfb !=nil {_cegb ,_ebedd :=_eg .GetArray (_cbbfb );if !_ebedd {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0042a\u0064\u0020\u0066on\u0074\u0020\u0065\u006e\u0063\u006fd\u0069\u006e\u0067\u0020\u0064\u0069\u0063\u0074\u003d\u0025\u002b\u0076\u0020\u0044\u0069f\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073=\u0025\u0054",_bfefd ,_bfefd .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));
return "",nil ,_eg .ErrTypeError ;};_afba ,_gcbe =_cec .FromFontDifferences (_cegb );};return _efcd ,_afba ,_gcbe ;default:_dbg .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u006e\u0061\u006d\u0065\u0020\u006f\u0072\u0020\u0064\u0069\u0063t\u0020\u0028\u0025\u0054\u0029\u0020\u0025\u0073",_gebe .Encoding ,_gebe .Encoding );
return "",nil ,_eg .ErrTypeError ;};};
// BytesToCharcodes converts the bytes in a PDF string to character codes.
func (_bddgb *PdfFont )BytesToCharcodes (data []byte )[]_cec .CharCode {_dbg .Log .Trace ("\u0042\u0079\u0074es\u0054\u006f\u0043\u0068\u0061\u0072\u0063\u006f\u0064e\u0073:\u0020d\u0061t\u0061\u003d\u005b\u0025\u0020\u0030\u0032\u0078\u005d\u003d\u0025\u0023\u0071",data ,data );
if _cadgc ,_dfcef :=_bddgb ._gdcab .(*pdfFontType0 );_dfcef &&_cadgc ._adad !=nil {if _aeee ,_faega :=_cadgc .bytesToCharcodes (data );_faega {return _aeee ;};};_edea :=make ([]_cec .CharCode ,0,len (data )+len (data )%2);if _bddgb .baseFields ().isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};
};if len (data )%2!=0{_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0064\u0064\u0069\u006e\u0067\u0020\u0064\u0061\u0074\u0061\u003d\u0025\u002b\u0076\u0020t\u006f\u0020\u0065\u0076\u0065n\u0020\u006ce\u006e\u0067\u0074\u0068",data );
data =append (data ,0);};for _fbaa :=0;_fbaa < len (data );_fbaa +=2{_fbeg :=uint16 (data [_fbaa ])<<8|uint16 (data [_fbaa +1]);_edea =append (_edea ,_cec .CharCode (_fbeg ));};}else {for _ ,_fcba :=range data {_edea =append (_edea ,_cec .CharCode (_fcba ));
};};return _edea ;};
// SetLocation sets the `Location` field of the signature.
func (_bgdaf *PdfSignature )SetLocation (location string ){_bgdaf .Location =_eg .MakeString (location )};func _fbgdc (_eeaa _eg .PdfObject )(*PdfColorspaceICCBased ,error ){_cege :=&PdfColorspaceICCBased {};if _fgbde ,_gbfg :=_eeaa .(*_eg .PdfIndirectObject );
_gbfg {_cege ._acga =_fgbde ;};_eeaa =_eg .TraceToDirectObject (_eeaa );_bebfc ,_cfef :=_eeaa .(*_eg .PdfObjectArray );if !_cfef {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bebfc .Len ()!=2{return nil ,_e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");
};_eeaa =_eg .TraceToDirectObject (_bebfc .Get (0));_cbbf ,_cfef :=_eeaa .(*_eg .PdfObjectName );if !_cfef {return nil ,_e .Errorf ("\u0049\u0043\u0043B\u0061\u0073\u0065\u0064 \u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
};if *_cbbf !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_e .Errorf ("\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0049\u0043\u0043\u0042a\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_eeaa =_bebfc .Get (1);
_eaef ,_cfef :=_eg .GetStream (_eeaa );if !_cfef {_dbg .Log .Error ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u006e\u006f\u0074\u0020\u0070o\u0069\u006e\u0074\u0069\u006e\u0067\u0020t\u006f\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020%\u0054",_eeaa );
return nil ,_e .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_fdff :=_eaef .PdfObjectDictionary ;_adeaf ,_cfef :=_fdff .Get ("\u004e").(*_eg .PdfObjectInteger );
if !_cfef {return nil ,_e .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u006d\u0069\u0073\u0073\u0069n\u0067\u0020\u004e\u0020\u0066\u0072\u006fm\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0064\u0069c\u0074");};if *_adeaf !=1&&*_adeaf !=3&&*_adeaf !=4{return nil ,_e .Errorf ("\u0049\u0043\u0043\u0042\u0061s\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065 \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u006e\u006f\u0074\u0020\u0031\u002c\u0033\u002c\u0034\u0029");
};_cege .N =int (*_adeaf );if _bdda :=_fdff .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_bdda !=nil {_gbgf ,_ddab :=NewPdfColorspaceFromPdfObject (_bdda );if _ddab !=nil {return nil ,_ddab ;};_cege .Alternate =_gbgf ;};if _eegc :=_fdff .Get ("\u0052\u0061\u006eg\u0065");
_eegc !=nil {_eegc =_eg .TraceToDirectObject (_eegc );_cdcec ,_bggbb :=_eegc .(*_eg .PdfObjectArray );if !_bggbb {return nil ,_e .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0061\u006e \u0061r\u0072\u0061\u0079");
};if _cdcec .Len ()!=2*_cege .N {return nil ,_e .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u0052\u0061\u006e\u0067e\u0020\u0077\u0072\u006f\u006e\u0067 \u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0065\u006c\u0065m\u0065\u006e\u0074\u0073");
};_bffb ,_gagd :=_cdcec .GetAsFloat64Slice ();if _gagd !=nil {return nil ,_gagd ;};_cege .Range =_bffb ;}else {_cege .Range =make ([]float64 ,2*_cege .N );for _cgeca :=0;_cgeca < _cege .N ;_cgeca ++{_cege .Range [2*_cgeca ]=0.0;_cege .Range [2*_cgeca +1]=1.0;
};};if _ggec :=_fdff .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_ggec !=nil {_ffcf ,_ddbg :=_ggec .(*_eg .PdfObjectStream );if !_ddbg {return nil ,_e .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u004de\u0074\u0061\u0064\u0061\u0074\u0061\u0020n\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d");
};_cege .Metadata =_ffcf ;};_fccd ,_bagg :=_eg .DecodeStream (_eaef );if _bagg !=nil {return nil ,_bagg ;};_cege .Data =_fccd ;_cege ._efdb =_eaef ;return _cege ,nil ;};
// PdfFieldSignature signature field represents digital signatures and optional data for authenticating
// the name of the signer and verifying document contents.
type PdfFieldSignature struct{*PdfField ;*PdfAnnotationWidget ;V *PdfSignature ;Lock *_eg .PdfIndirectObject ;SV *_eg .PdfIndirectObject ;};
// NewPdfActionRendition returns a new "rendition" action.
func NewPdfActionRendition ()*PdfActionRendition {_ed :=NewPdfAction ();_aag :=&PdfActionRendition {};_aag .PdfAction =_ed ;_ed .SetContext (_aag );return _aag ;};func _adbbg (_gdfcf _eg .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_dbg .Log .Trace ("\u004e\u0065\u0077\u0020\u0050\u0061\u0074\u0074\u0065\u0072n\u0020\u0043\u0053\u0020\u0066\u0072\u006fm\u0020\u006f\u0062\u006a\u003a\u0020\u0025\u0073\u0020\u0025\u0054",_gdfcf .String (),_gdfcf );
_acgc :=NewPdfColorspaceSpecialPattern ();if _gbef ,_dbca :=_gdfcf .(*_eg .PdfIndirectObject );_dbca {_acgc ._ecbb =_gbef ;};_gdfcf =_eg .TraceToDirectObject (_gdfcf );if _cfdg ,_fgcb :=_gdfcf .(*_eg .PdfObjectName );_fgcb {if *_cfdg !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_e .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");
};return _acgc ,nil ;};_baggg ,_cfbb :=_gdfcf .(*_eg .PdfObjectArray );if !_cfbb {_dbg .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061t\u0074\u0065\u0072\u006e\u0020\u0043\u0053 \u004f\u0062\u006a\u0065\u0063\u0074\u003a\u0020\u0025\u0023\u0076",_gdfcf );
return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _baggg .Len ()!=1&&_baggg .Len ()!=2{_dbg .Log .Error ("\u0049\u006ev\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079\u003a %\u0023\u0076",_baggg );
return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_gdfcf =_baggg .Get (0);if _adabb ,_gcefg :=_gdfcf .(*_eg .PdfObjectName );_gcefg {if *_adabb !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_dbg .Log .Error ("\u0049\u006e\u0076al\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065\u0072n\u0020C\u0053 \u0061r\u0072\u0061\u0079\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0023\u0076",_adabb );
return nil ,_e .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _baggg .Len ()> 1{_gdfcf =_baggg .Get (1);_gdfcf =_eg .TraceToDirectObject (_gdfcf );_fegdg ,_cgfc :=NewPdfColorspaceFromPdfObject (_gdfcf );if _cgfc !=nil {return nil ,_cgfc ;
};_acgc .UnderlyingCS =_fegdg ;};_dbg .Log .Trace ("R\u0065\u0074\u0075\u0072\u006e\u0069\u006e\u0067\u0020\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0077i\u0074\u0068\u0020\u0075\u006e\u0064\u0065\u0072\u006c\u0079in\u0067\u0020\u0063s\u003a \u0025\u0054",_acgc .UnderlyingCS );
return _acgc ,nil ;};
// NewPdfActionLaunch returns a new "launch" action.
func NewPdfActionLaunch ()*PdfActionLaunch {_df :=NewPdfAction ();_deg :=&PdfActionLaunch {};_deg .PdfAction =_df ;_df .SetContext (_deg );return _deg ;};
// NewPdfAnnotationLine returns a new line annotation.
func NewPdfAnnotationLine ()*PdfAnnotationLine {_fca :=NewPdfAnnotation ();_bdg :=&PdfAnnotationLine {};_bdg .PdfAnnotation =_fca ;_bdg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fca .SetContext (_bdg );return _bdg ;};func (_acf *PdfReader )newPdfActionFromIndirectObject (_fcfbb *_eg .PdfIndirectObject )(*PdfAction ,error ){_fed ,_fdc :=_fcfbb .PdfObject .(*_eg .PdfObjectDictionary );
if !_fdc {return nil ,_e .Errorf ("\u0061\u0063\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u006e\u006f\u0074 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};if model :=_acf ._gced .GetModelFromPrimitive (_fed );model !=nil {_bba ,_gff :=model .(*PdfAction );if !_gff {return nil ,_e .Errorf ("\u0063\u0061c\u0068\u0065\u0064\u0020\u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050\u0044\u0046\u0020\u0061\u0063ti\u006f\u006e");
};return _bba ,nil ;};_fcg :=&PdfAction {};_fcg ._ege =_fcfbb ;_acf ._gced .Register (_fed ,_fcg );if _dab :=_fed .Get ("\u0054\u0079\u0070\u0065");_dab !=nil {_agf ,_ede :=_dab .(*_eg .PdfObjectName );if !_ede {_dbg .Log .Trace ("\u0049\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u0021\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u006f\u0066\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029\u0020\u002d\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u004e\u0061m\u0065",_dab );
}else {if *_agf !="\u0041\u0063\u0074\u0069\u006f\u006e"{_dbg .Log .Trace ("\u0055\u006e\u0073u\u0073\u0070\u0065\u0063t\u0065\u0064\u0020\u0054\u0079\u0070\u0065 \u0021\u003d\u0020\u0041\u0063\u0074\u0069\u006f\u006e\u0020\u0028\u0025\u0073\u0029",*_agf );
};_fcg .Type =_agf ;};};if _aace :=_fed .Get ("\u004e\u0065\u0078\u0074");_aace !=nil {_fcg .Next =_aace ;};if _ffed :=_fed .Get ("\u0053");_ffed !=nil {_fcg .S =_ffed ;};_ffd ,_ceae :=_fcg .S .(*_eg .PdfObjectName );if !_ceae {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_fcg .S );
return nil ,_e .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0053\u0020\u006f\u0062\u006a\u0065c\u0074 \u0074y\u0070e\u0020\u0021\u003d\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_fcg .S );};_bbad :=PdfActionType (_ffd .String ());
switch _bbad {case ActionTypeGoTo :_faf ,_eac :=_acf .newPdfActionGotoFromDict (_fed );if _eac !=nil {return nil ,_eac ;};_faf .PdfAction =_fcg ;_fcg ._cea =_faf ;return _fcg ,nil ;case ActionTypeGoToR :_eeb ,_ecfd :=_acf .newPdfActionGotoRFromDict (_fed );
if _ecfd !=nil {return nil ,_ecfd ;};_eeb .PdfAction =_fcg ;_fcg ._cea =_eeb ;return _fcg ,nil ;case ActionTypeGoToE :_cbe ,_fga :=_acf .newPdfActionGotoEFromDict (_fed );if _fga !=nil {return nil ,_fga ;};_cbe .PdfAction =_fcg ;_fcg ._cea =_cbe ;return _fcg ,nil ;
case ActionTypeLaunch :_ddc ,_dfc :=_acf .newPdfActionLaunchFromDict (_fed );if _dfc !=nil {return nil ,_dfc ;};_ddc .PdfAction =_fcg ;_fcg ._cea =_ddc ;return _fcg ,nil ;case ActionTypeThread :_caf ,_eade :=_acf .newPdfActionThreadFromDict (_fed );if _eade !=nil {return nil ,_eade ;
};_caf .PdfAction =_fcg ;_fcg ._cea =_caf ;return _fcg ,nil ;case ActionTypeURI :_eacf ,_bad :=_acf .newPdfActionURIFromDict (_fed );if _bad !=nil {return nil ,_bad ;};_eacf .PdfAction =_fcg ;_fcg ._cea =_eacf ;return _fcg ,nil ;case ActionTypeSound :_cbg ,_cfc :=_acf .newPdfActionSoundFromDict (_fed );
if _cfc !=nil {return nil ,_cfc ;};_cbg .PdfAction =_fcg ;_fcg ._cea =_cbg ;return _fcg ,nil ;case ActionTypeMovie :_gecb ,_gfa :=_acf .newPdfActionMovieFromDict (_fed );if _gfa !=nil {return nil ,_gfa ;};_gecb .PdfAction =_fcg ;_fcg ._cea =_gecb ;return _fcg ,nil ;
case ActionTypeHide :_dfd ,_afa :=_acf .newPdfActionHideFromDict (_fed );if _afa !=nil {return nil ,_afa ;};_dfd .PdfAction =_fcg ;_fcg ._cea =_dfd ;return _fcg ,nil ;case ActionTypeNamed :_cd ,_ecb :=_acf .newPdfActionNamedFromDict (_fed );if _ecb !=nil {return nil ,_ecb ;
};_cd .PdfAction =_fcg ;_fcg ._cea =_cd ;return _fcg ,nil ;case ActionTypeSubmitForm :_bbadc ,_bbc :=_acf .newPdfActionSubmitFormFromDict (_fed );if _bbc !=nil {return nil ,_bbc ;};_bbadc .PdfAction =_fcg ;_fcg ._cea =_bbadc ;return _fcg ,nil ;case ActionTypeResetForm :_bge ,_gaa :=_acf .newPdfActionResetFormFromDict (_fed );
if _gaa !=nil {return nil ,_gaa ;};_bge .PdfAction =_fcg ;_fcg ._cea =_bge ;return _fcg ,nil ;case ActionTypeImportData :_fgf ,_gebb :=_acf .newPdfActionImportDataFromDict (_fed );if _gebb !=nil {return nil ,_gebb ;};_fgf .PdfAction =_fcg ;_fcg ._cea =_fgf ;
return _fcg ,nil ;case ActionTypeSetOCGState :_bgc ,_egb :=_acf .newPdfActionSetOCGStateFromDict (_fed );if _egb !=nil {return nil ,_egb ;};_bgc .PdfAction =_fcg ;_fcg ._cea =_bgc ;return _fcg ,nil ;case ActionTypeRendition :_fff ,_fgc :=_acf .newPdfActionRenditionFromDict (_fed );
if _fgc !=nil {return nil ,_fgc ;};_fff .PdfAction =_fcg ;_fcg ._cea =_fff ;return _fcg ,nil ;case ActionTypeTrans :_gga ,_eae :=_acf .newPdfActionTransFromDict (_fed );if _eae !=nil {return nil ,_eae ;};_gga .PdfAction =_fcg ;_fcg ._cea =_gga ;return _fcg ,nil ;
case ActionTypeGoTo3DView :_bac ,_dcc :=_acf .newPdfActionGoTo3DViewFromDict (_fed );if _dcc !=nil {return nil ,_dcc ;};_bac .PdfAction =_fcg ;_fcg ._cea =_bac ;return _fcg ,nil ;case ActionTypeJavaScript :_efd ,_cba :=_acf .newPdfActionJavaScriptFromDict (_fed );
if _cba !=nil {return nil ,_cba ;};_efd .PdfAction =_fcg ;_fcg ._cea =_efd ;return _fcg ,nil ;};_dbg .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u0067\u006e\u006f\u0072\u0069\u006eg\u0020u\u006ek\u006eo\u0077\u006e\u0020\u0061\u0063\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073",_bbad );
return nil ,nil ;};
// ImageToGray returns a new grayscale image based on the passed in RGB image.
func (_egce *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_bbd .New ("\u0070\u0072\u006f\u0076\u0069\u0064e\u0064\u0020\u0069\u006d\u0061\u0067\u0065\u0020\u0069\u0073\u0020\u006e\u006ft\u0020\u0061\u0020\u0044\u0065\u0076\u0069c\u0065\u0052\u0047\u0042");
};_edad ,_cfcf :=_ff .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fcec ,img ._aaeac );if _cfcf !=nil {return img ,_cfcf ;};_dedge ,_cfcf :=_ff .GrayConverter .Convert (_edad );if _cfcf !=nil {return img ,_cfcf ;
};return _egbde (_dedge .Base ()),nil ;};
// ToInteger convert to an integer format.
func (_ceda *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_fgef :=_bc .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_fgef *_ceda .A ()),uint32 (_fgef *_ceda .B ()),uint32 (_fgef *_ceda .C ())};};
// PdfFont represents an underlying font structure which can be of type:
// - Type0
// - Type1
// - TrueType
// etc.
type PdfFont struct{_gdcab pdfFont };func (_geda *Image )samplesTrimPadding (_dcdg []uint32 )[]uint32 {_fdfb :=_geda .ColorComponents *int (_geda .Width )*int (_geda .Height );if len (_dcdg )==_fdfb {return _dcdg ;};_cecfg :=make ([]uint32 ,_fdfb );_ffbbgg :=int (_geda .Width )*_geda .ColorComponents ;
var _efdcd ,_bgaag ,_cddab ,_beeba int ;_bdcc :=_ff .BytesPerLine (int (_geda .Width ),int (_geda .BitsPerComponent ),_geda .ColorComponents );for _efdcd =0;_efdcd < int (_geda .Height );_efdcd ++{_bgaag =_efdcd *int (_geda .Width );_cddab =_efdcd *_bdcc ;
for _beeba =0;_beeba < _ffbbgg ;_beeba ++{_cecfg [_bgaag +_beeba ]=_dcdg [_cddab +_beeba ];};};return _cecfg ;};func _fcagb (_abcfg *_eg .PdfObjectDictionary )(*PdfShadingType6 ,error ){_adefb :=PdfShadingType6 {};_ggefa :=_abcfg .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
if _ggefa ==nil {_dbg .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064 \u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065\u0072C\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065");
return nil ,ErrRequiredAttributeMissing ;};_dbgbb ,_acgbd :=_ggefa .(*_eg .PdfObjectInteger );if !_acgbd {_dbg .Log .Debug ("\u0042\u0069\u0074\u0073\u0050e\u0072\u0043\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_ggefa );
return nil ,_eg .ErrTypeError ;};_adefb .BitsPerCoordinate =_dbgbb ;_ggefa =_abcfg .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _ggefa ==nil {_dbg .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064\u0020a\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073in\u0067\u003a\u0020B\u0069\u0074s\u0050\u0065\u0072\u0043\u006f\u006dp\u006f\u006ee\u006e\u0074");
return nil ,ErrRequiredAttributeMissing ;};_dbgbb ,_acgbd =_ggefa .(*_eg .PdfObjectInteger );if !_acgbd {_dbg .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065r \u0028\u0067\u006ft\u0020%\u0054\u0029",_ggefa );
return nil ,_eg .ErrTypeError ;};_adefb .BitsPerComponent =_dbgbb ;_ggefa =_abcfg .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _ggefa ==nil {_dbg .Log .Debug ("\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065r\u0046\u006c\u0061\u0067");
return nil ,ErrRequiredAttributeMissing ;};_dbgbb ,_acgbd =_ggefa .(*_eg .PdfObjectInteger );if !_acgbd {_dbg .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072F\u006c\u0061\u0067\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074e\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025T\u0029",_ggefa );
return nil ,_eg .ErrTypeError ;};_adefb .BitsPerComponent =_dbgbb ;_ggefa =_abcfg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _ggefa ==nil {_dbg .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0044\u0065\u0063\u006f\u0064\u0065");
return nil ,ErrRequiredAttributeMissing ;};_aceec ,_acgbd :=_ggefa .(*_eg .PdfObjectArray );if !_acgbd {_dbg .Log .Debug ("\u0044\u0065\u0063\u006fd\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_ggefa );
return nil ,_eg .ErrTypeError ;};_adefb .Decode =_aceec ;if _gbga :=_abcfg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_gbga !=nil {_adefb .Function =[]PdfFunction {};if _begg ,_cceecd :=_gbga .(*_eg .PdfObjectArray );_cceecd {for _ ,_gbagb :=range _begg .Elements (){_gbcee ,_eeagf :=_dgbga (_gbagb );
if _eeagf !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_eeagf );return nil ,_eeagf ;};_adefb .Function =append (_adefb .Function ,_gbcee );
};}else {_fcfbf ,_dfefc :=_dgbga (_gbga );if _dfefc !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_dfefc );return nil ,_dfefc ;
};_adefb .Function =append (_adefb .Function ,_fcfbf );};};return &_adefb ,nil ;};type modelManager struct{_eegb map[PdfModel ]_eg .PdfObject ;_bfgf map[_eg .PdfObject ]PdfModel ;};
// NewOutlineDest returns a new outline destination which can be used
// with outline items.
func NewOutlineDest (page int64 ,x ,y float64 )OutlineDest {return OutlineDest {Page :page ,Mode :"\u0058\u0059\u005a",X :x ,Y :y };};
// GetNumComponents returns the number of color components (4 for CMYK32).
func (_edade *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};func (_gaeg *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _gaeg ._eecfe };
// ToPdfObject converts the font to a PDF representation.
func (_cfabf *pdfFontType3 )ToPdfObject ()_eg .PdfObject {if _cfabf ._bbfae ==nil {_cfabf ._bbfae =&_eg .PdfIndirectObject {};};_gefcc :=_cfabf .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_cfabf ._bbfae .PdfObject =_gefcc ;if _cfabf .FirstChar !=nil {_gefcc .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_cfabf .FirstChar );
};if _cfabf .LastChar !=nil {_gefcc .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_cfabf .LastChar );};if _cfabf .Widths !=nil {_gefcc .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_cfabf .Widths );};if _cfabf .Encoding !=nil {_gefcc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cfabf .Encoding );
}else if _cfabf ._daeg !=nil {_cgee :=_cfabf ._daeg .ToPdfObject ();if _cgee !=nil {_gefcc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cgee );};};if _cfabf .FontBBox !=nil {_gefcc .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_cfabf .FontBBox );
};if _cfabf .FontMatrix !=nil {_gefcc .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_cfabf .FontMatrix );};if _cfabf .CharProcs !=nil {_gefcc .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_cfabf .CharProcs );};if _cfabf .Resources !=nil {_gefcc .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_cfabf .Resources );
};return _cfabf ._bbfae ;};
// PdfColorLab represents a color in the L*, a*, b* 3 component colorspace.
// Each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorLab [3]float64 ;
// A returns the value of the A component of the color.
func (_fbba *PdfColorCalRGB )A ()float64 {return _fbba [0]};func _dcafge (_abfe _eg .PdfObject )(*PdfShading ,error ){_ggfeg :=&PdfShading {};var _edada *_eg .PdfObjectDictionary ;if _gaefaf ,_ababbd :=_eg .GetIndirect (_abfe );_ababbd {_ggfeg ._beag =_gaefaf ;
_daad ,_dffaf :=_gaefaf .PdfObject .(*_eg .PdfObjectDictionary );if !_dffaf {_dbg .Log .Debug ("\u004f\u0062\u006a\u0065c\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069c\u0074i\u006f\u006e\u0061\u0072\u0079\u0020\u0074y\u0070\u0065");return nil ,_eg .ErrTypeError ;
};_edada =_daad ;}else if _fcacd ,_gbcfcc :=_eg .GetStream (_abfe );_gbcfcc {_ggfeg ._beag =_fcacd ;_edada =_fcacd .PdfObjectDictionary ;}else if _adeeg ,_bfacc :=_eg .GetDict (_abfe );_bfacc {_ggfeg ._beag =_adeeg ;_edada =_adeeg ;}else {_dbg .Log .Debug ("O\u0062\u006a\u0065\u0063\u0074\u0020t\u0079\u0070\u0065\u0020\u0075\u006e\u0065\u0078\u0070e\u0063\u0074\u0065d\u0020(\u0025\u0054\u0029",_abfe );
return nil ,_eg .ErrTypeError ;};if _edada ==nil {_dbg .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_bbd .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
};_abfe =_edada .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _abfe ==nil {_dbg .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065\u0064\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020\u0074\u0079\u0070\u0065\u0020\u006d\u0069\u0073si\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_abfe =_eg .TraceToDirectObject (_abfe );_edgdd ,_deba :=_abfe .(*_eg .PdfObjectInteger );if !_deba {_dbg .Log .Debug ("\u0049\u006e\u0076al\u0069\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066o\u0072 \u0073h\u0061d\u0069\u006e\u0067\u0020\u0074\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029",_abfe );
return nil ,_eg .ErrTypeError ;};if *_edgdd < 1||*_edgdd > 7{_dbg .Log .Debug ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020\u0074\u0079\u0070\u0065\u002c\u0020\u006e\u006ft\u0020\u0031\u002d\u0037\u0020(\u0067\u006ft\u0020\u0025\u0064\u0029",*_edgdd );
return nil ,_eg .ErrTypeError ;};_ggfeg .ShadingType =_edgdd ;_abfe =_edada .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _abfe ==nil {_dbg .Log .Debug ("\u0052\u0065\u0071\u0075\u0069\u0072e\u0064\u0020\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065\u0020e\u006e\u0074\u0072\u0079\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_dagaf ,_ggad :=NewPdfColorspaceFromPdfObject (_abfe );if _ggad !=nil {_dbg .Log .Debug ("\u0046\u0061i\u006c\u0065\u0064\u0020\u006c\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065: \u0025\u0076",_ggad );
return nil ,_ggad ;};_ggfeg .ColorSpace =_dagaf ;_abfe =_edada .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _abfe !=nil {_abfe =_eg .TraceToDirectObject (_abfe );_abbb ,_aebfdf :=_abfe .(*_eg .PdfObjectArray );if !_aebfdf {_dbg .Log .Debug ("\u0042\u0061\u0063\u006b\u0067r\u006f\u0075\u006e\u0064\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062e\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0062\u0079\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_abfe );
return nil ,_eg .ErrTypeError ;};_ggfeg .Background =_abbb ;};_abfe =_edada .Get ("\u0042\u0042\u006f\u0078");if _abfe !=nil {_abfe =_eg .TraceToDirectObject (_abfe );_adeef ,_dbcg :=_abfe .(*_eg .PdfObjectArray );if !_dbcg {_dbg .Log .Debug ("\u0042\u0061\u0063\u006b\u0067r\u006f\u0075\u006e\u0064\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062e\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0062\u0079\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_abfe );
return nil ,_eg .ErrTypeError ;};_eaeac ,_dddd :=NewPdfRectangle (*_adeef );if _dddd !=nil {_dbg .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_dddd );return nil ,_dddd ;};_ggfeg .BBox =_eaeac ;};_abfe =_edada .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");
if _abfe !=nil {_abfe =_eg .TraceToDirectObject (_abfe );_bcdbg ,_fecdf :=_abfe .(*_eg .PdfObjectBool );if !_fecdf {_dbg .Log .Debug ("A\u006e\u0074\u0069\u0041\u006c\u0069\u0061\u0073\u0020i\u006e\u0076\u0061\u006c\u0069\u0064\u0020ty\u0070\u0065\u002c\u0020s\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020bo\u006f\u006c \u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_abfe );
return nil ,_eg .ErrTypeError ;};_ggfeg .AntiAlias =_bcdbg ;};switch *_edgdd {case 1:_ccgf ,_edba :=_abegg (_edada );if _edba !=nil {return nil ,_edba ;};_ccgf .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_ccgf ;return _ggfeg ,nil ;case 2:_daaa ,_deceg :=_bfbaf (_edada );
if _deceg !=nil {return nil ,_deceg ;};_daaa .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_daaa ;return _ggfeg ,nil ;case 3:_fecac ,_ebfabe :=_aabab (_edada );if _ebfabe !=nil {return nil ,_ebfabe ;};_fecac .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_fecac ;return _ggfeg ,nil ;
case 4:_bdaac ,_fggfe :=_bbfd (_edada );if _fggfe !=nil {return nil ,_fggfe ;};_bdaac .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_bdaac ;return _ggfeg ,nil ;case 5:_bcbeg ,_affcg :=_gaggb (_edada );if _affcg !=nil {return nil ,_affcg ;};_bcbeg .PdfShading =_ggfeg ;
_ggfeg ._ccdbe =_bcbeg ;return _ggfeg ,nil ;case 6:_cdcbd ,_ecbf :=_fcagb (_edada );if _ecbf !=nil {return nil ,_ecbf ;};_cdcbd .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_cdcbd ;return _ggfeg ,nil ;case 7:_aedec ,_cdcgc :=_gaggd (_edada );if _cdcgc !=nil {return nil ,_cdcgc ;
};_aedec .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_aedec ;return _ggfeg ,nil ;};return nil ,_bbd .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
// GetXObjectFormByName returns the XObjectForm with the specified name from the
// page resources, if it exists.
func (_fffd *PdfPageResources )GetXObjectFormByName (keyName _eg .PdfObjectName )(*XObjectForm ,error ){_feba ,_daebc :=_fffd .GetXObjectByName (keyName );if _feba ==nil {return nil ,nil ;};if _daebc !=XObjectTypeForm {return nil ,_bbd .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");
};_cfdeab ,_beedb :=NewXObjectFormFromStream (_feba );if _beedb !=nil {return nil ,_beedb ;};return _cfdeab ,nil ;};
// ToImage converts an object to an Image which can be transformed or saved out.
// The image data is decoded and the Image returned.
func (_cacdc *XObjectImage )ToImage ()(*Image ,error ){_agabg :=&Image {};if _cacdc .Height ==nil {return nil ,_bbd .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
};_agabg .Height =*_cacdc .Height ;if _cacdc .Width ==nil {return nil ,_bbd .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_agabg .Width =*_cacdc .Width ;if _cacdc .BitsPerComponent ==nil {switch _cacdc .Filter .(type ){case *_eg .CCITTFaxEncoder ,*_eg .JBIG2Encoder :_agabg .BitsPerComponent =1;
case *_eg .LZWEncoder ,*_eg .RunLengthEncoder :_agabg .BitsPerComponent =8;default:return nil ,_bbd .New ("\u0062\u0069\u0074\u0073\u0020\u0070\u0065\u0072\u0020\u0063\u006fm\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006d\u0069\u0073s\u0069\u006e\u0067");
};}else {_agabg .BitsPerComponent =*_cacdc .BitsPerComponent ;};_agabg .ColorComponents =_cacdc .ColorSpace .GetNumComponents ();_cacdc ._dcdb .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_eg .MakeInteger (int64 (_agabg .ColorComponents )));
_eggef ,_ebdad :=_eg .DecodeStream (_cacdc ._dcdb );if _ebdad !=nil {return nil ,_ebdad ;};_agabg .Data =_eggef ;if _cacdc .Decode !=nil {_ecgea ,_bbbdf :=_cacdc .Decode .(*_eg .PdfObjectArray );if !_bbbdf {_dbg .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");
return nil ,_bbd .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_agggf ,_dbfbb :=_ecgea .ToFloat64Array ();if _dbfbb !=nil {return nil ,_dbfbb ;};_agabg ._aaeac =_agggf ;};return _agabg ,nil ;};
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_fbb :=NewPdfAnnotation ();_ffba :=&PdfAnnotationSquiggly {};_ffba .PdfAnnotation =_fbb ;_ffba .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fbb .SetContext (_ffba );return _ffba ;};
// Items returns all children outline items.
func (_eaagg *OutlineItem )Items ()[]*OutlineItem {return _eaagg .Entries };
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_eg .PdfObjectInteger ;BitsPerComponent *_eg .PdfObjectInteger ;BitsPerFlag *_eg .PdfObjectInteger ;Decode *_eg .PdfObjectArray ;Function []PdfFunction ;};var _ pdfFont =(*pdfCIDFontType2 )(nil );
// PdfAnnotationCaret represents Caret annotations.
// (Section 12.5.6.11).
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _eg .PdfObject ;Sy _eg .PdfObject ;};
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
func (_ebeba *PdfPattern )GetContext ()PdfModel {return _ebeba ._defdf };func (_fgbdbb *PdfWriter )writeString (_dgbed string ){if _fgbdbb ._cfgdd !=nil {return ;};_bddceb ,_bdcd :=_fgbdbb ._fggeg .WriteString (_dgbed );_fgbdbb ._agecc +=int64 (_bddceb );
_fgbdbb ._cfgdd =_bdcd ;};
// NewPdfActionTrans returns a new "trans" action.
func NewPdfActionTrans ()*PdfActionTrans {_beg :=NewPdfAction ();_eef :=&PdfActionTrans {};_eef .PdfAction =_beg ;_beg .SetContext (_eef );return _eef ;};
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
func (_bgbga *PdfOutlineTreeNode )GetContainingPdfObject ()_eg .PdfObject {return _bgbga .GetContext ().GetContainingPdfObject ();};
// GenerateXObjectName generates an unused XObject name that can be used for
// adding new XObjects. Uses format XObj1, XObj2, ...
func (_egefc *PdfPageResources )GenerateXObjectName ()_eg .PdfObjectName {_ebbb :=1;for {_efgad :=_eg .MakeName (_e .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_ebbb ));if !_egefc .HasXObjectByName (*_efgad ){return *_efgad ;};_ebbb ++;};};
// GetPageDict converts the Page to a PDF object dictionary.
func (_bdfe *PdfPage )GetPageDict ()*_eg .PdfObjectDictionary {_aabgg :=_bdfe ._ecbba ;_aabgg .Clear ();_aabgg .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0050\u0061\u0067\u0065"));_aabgg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_bdfe .Parent );
if _bdfe .LastModified !=nil {_aabgg .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_bdfe .LastModified .ToPdfObject ());};if _bdfe .Resources !=nil {_aabgg .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_bdfe .Resources .ToPdfObject ());
};if _bdfe .CropBox !=nil {_aabgg .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_bdfe .CropBox .ToPdfObject ());};if _bdfe .MediaBox !=nil {_aabgg .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_bdfe .MediaBox .ToPdfObject ());};if _bdfe .BleedBox !=nil {_aabgg .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_bdfe .BleedBox .ToPdfObject ());
};if _bdfe .TrimBox !=nil {_aabgg .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_bdfe .TrimBox .ToPdfObject ());};if _bdfe .ArtBox !=nil {_aabgg .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_bdfe .ArtBox .ToPdfObject ());};_aabgg .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_bdfe .BoxColorInfo );
_aabgg .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_bdfe .Contents );if _bdfe .Rotate !=nil {_aabgg .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_eg .MakeInteger (*_bdfe .Rotate ));};_aabgg .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_bdfe .Group );
_aabgg .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_bdfe .Thumb );_aabgg .SetIfNotNil ("\u0042",_bdfe .B );_aabgg .SetIfNotNil ("\u0044\u0075\u0072",_bdfe .Dur );_aabgg .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_bdfe .Trans );_aabgg .SetIfNotNil ("\u0041\u0041",_bdfe .AA );
_aabgg .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_bdfe .Metadata );_aabgg .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_bdfe .PieceInfo );_aabgg .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_bdfe .StructParents );
_aabgg .SetIfNotNil ("\u0049\u0044",_bdfe .ID );_aabgg .SetIfNotNil ("\u0050\u005a",_bdfe .PZ );_aabgg .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_bdfe .SeparationInfo );_aabgg .SetIfNotNil ("\u0054\u0061\u0062\u0073",_bdfe .Tabs );
_aabgg .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_bdfe .TemplateInstantiated );_aabgg .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_bdfe .PresSteps );_aabgg .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_bdfe .UserUnit );
_aabgg .SetIfNotNil ("\u0056\u0050",_bdfe .VP );if _bdfe ._egge !=nil {_fgabc :=_eg .MakeArray ();for _ ,_dacg :=range _bdfe ._egge {if _bgcd :=_dacg .GetContext ();_bgcd !=nil {_fgabc .Append (_bgcd .ToPdfObject ());}else {_fgabc .Append (_dacg .ToPdfObject ());
};};if _fgabc .Len ()> 0{_aabgg .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_fgabc );};}else if _bdfe .Annots !=nil {_aabgg .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_bdfe .Annots );};return _aabgg ;};
// NewCompositePdfFontFromTTFFile loads a composite font from a TTF font file. Composite fonts can
// be used to represent unicode fonts which can have multi-byte character codes, representing a wide
// range of values. They are often used for symbolic languages, including Chinese, Japanese and Korean.
// It is represented by a Type0 Font with an underlying CIDFontType2 and an Identity-H encoding map.
// TODO: May be extended in the future to support a larger variety of CMaps and vertical fonts.
// NOTE: For simple fonts, use NewPdfFontFromTTFFile.
func NewCompositePdfFontFromTTFFile (filePath string )(*PdfFont ,error ){_gfbfd ,_cdaf :=_bg .Open (filePath );if _cdaf !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_cdaf );
return nil ,_cdaf ;};defer _gfbfd .Close ();return NewCompositePdfFontFromTTF (_gfbfd );};
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
func NewXObjectForm ()*XObjectForm {_fdffa :=&XObjectForm {};_cefg :=&_eg .PdfObjectStream {};_cefg .PdfObjectDictionary =_eg .MakeDict ();_fdffa ._cdcaf =_cefg ;return _fdffa ;};
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_eg .PdfObjectInteger ;BitsPerComponent *_eg .PdfObjectInteger ;VerticesPerRow *_eg .PdfObjectInteger ;Decode *_eg .PdfObjectArray ;Function []PdfFunction ;};
// ToPdfObject returns the button field dictionary within an indirect object.
func (_ebbf *PdfFieldButton )ToPdfObject ()_eg .PdfObject {_ebbf .PdfField .ToPdfObject ();_dbcdc :=_ebbf ._afbe ;_fggb :=_dbcdc .PdfObject .(*_eg .PdfObjectDictionary );_fggb .Set ("\u0046\u0054",_eg .MakeName ("\u0042\u0074\u006e"));if _ebbf .Opt !=nil {_fggb .Set ("\u004f\u0070\u0074",_ebbf .Opt );
};return _dbcdc ;};
// NewPdfAnnotationLink returns a new link annotation.
func NewPdfAnnotationLink ()*PdfAnnotationLink {_agd :=NewPdfAnnotation ();_cdb :=&PdfAnnotationLink {};_cdb .PdfAnnotation =_agd ;_agd .SetContext (_cdb );return _cdb ;};
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
// replaces the original AcroForm.
func (_cffd *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_cffd .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_cffd ._ggcc =acroForm ;};
// ToPdfObject implements interface PdfModel.
func (_eadb *PdfAction )ToPdfObject ()_eg .PdfObject {_gec :=_eadb ._ege ;_ga :=_gec .PdfObject .(*_eg .PdfObjectDictionary );_ga .Clear ();_ga .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_ga .SetIfNotNil ("\u0053",_eadb .S );
_ga .SetIfNotNil ("\u004e\u0065\u0078\u0074",_eadb .Next );return _gec ;};
// NewPdfActionGoToR returns a new "go to remote" action.
func NewPdfActionGoToR ()*PdfActionGoToR {_daf :=NewPdfAction ();_eadf :=&PdfActionGoToR {};_eadf .PdfAction =_daf ;_daf .SetContext (_eadf );return _eadf ;};
// ColorToRGB converts a CalGray color to an RGB color.
func (_gcef *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_abfd ,_bgab :=color .(*PdfColorCalGray );if !_bgab {_dbg .Log .Debug ("\u0049n\u0070\u0075\u0074\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u006eo\u0074\u0020\u0063\u0061\u006c\u0020\u0067\u0072\u0061\u0079");
return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_abfd .Val ();X :=_gcef .WhitePoint [0]*_bc .Pow (ANorm ,_gcef .Gamma );Y :=_gcef .WhitePoint [1]*_bc .Pow (ANorm ,_gcef .Gamma );
Z :=_gcef .WhitePoint [2]*_bc .Pow (ANorm ,_gcef .Gamma );_fdgg :=3.240479*X +-1.537150*Y +-0.498535*Z ;_fddf :=-0.969256*X +1.875992*Y +0.041556*Z ;_afbf :=0.055648*X +-0.204043*Y +1.057311*Z ;_fdgg =_bc .Min (_bc .Max (_fdgg ,0),1.0);_fddf =_bc .Min (_bc .Max (_fddf ,0),1.0);
_afbf =_bc .Min (_bc .Max (_afbf ,0),1.0);return NewPdfColorDeviceRGB (_fdgg ,_fddf ,_afbf ),nil ;};
// ToInteger convert to an integer format.
func (_fdec *PdfColorDeviceGray )ToInteger (bits int )uint32 {_caee :=_bc .Pow (2,float64 (bits ))-1;return uint32 (_caee *_fdec .Val ());};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);
func (_cad *PdfReader )newPdfAnnotationFileAttachmentFromDict (_eccg *_eg .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_bbga :=PdfAnnotationFileAttachment {};_aebf ,_bdf :=_cad .newPdfAnnotationMarkupFromDict (_eccg );if _bdf !=nil {return nil ,_bdf ;
};_bbga .PdfAnnotationMarkup =_aebf ;_bbga .FS =_eccg .Get ("\u0046\u0053");_bbga .Name =_eccg .Get ("\u004e\u0061\u006d\u0065");return &_bbga ,nil ;};
// AllFields returns a flattened list of all fields in the form.
func (_agda *PdfAcroForm )AllFields ()[]*PdfField {if _agda ==nil {return nil ;};var _bdcgc []*PdfField ;if _agda .Fields !=nil {for _ ,_dcbb :=range *_agda .Fields {_bdcgc =append (_bdcgc ,_fafgc (_dcbb )...);};};return _bdcgc ;};
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
type FieldValueProvider interface{FieldValues ()(map[string ]_eg .PdfObject ,error );};
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
func (_efcf *PdfColorspaceDeviceN )GetNumComponents ()int {return _efcf .ColorantNames .Len ()};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain three elements representing the
// red, green and blue components of the color. The values of the elements
// should be between 0 and 1.
func (_fdbf *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ceeg :=vals [0];if _ceeg < 0.0||_ceeg > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};_bbbe :=vals [1];if _bbbe < 0.0||_bbbe > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcga :=vals [2];if _bcga < 0.0||_bcga > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};_ecce :=NewPdfColorDeviceRGB (_ceeg ,_bbbe ,_bcga );return _ecce ,nil ;};
// SetColorspaceByName adds the provided colorspace to the page resources.
func (_ccca *PdfPageResources )SetColorspaceByName (keyName _eg .PdfObjectName ,cs PdfColorspace )error {_ecfeb ,_baegb :=_ccca .GetColorspaces ();if _baegb !=nil {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0072\u0061\u0063\u0065: \u0025\u0076",_baegb );
return _baegb ;};if _ecfeb ==nil {_ecfeb =NewPdfPageResourcesColorspaces ();_ccca .SetColorSpace (_ecfeb );};_ecfeb .Set (keyName ,cs );return nil ;};func (_abb *PdfReader )newPdfActionLaunchFromDict (_gcc *_eg .PdfObjectDictionary )(*PdfActionLaunch ,error ){_ggg ,_fb :=_gbbe (_gcc .Get ("\u0046"));
if _fb !=nil {return nil ,_fb ;};return &PdfActionLaunch {Win :_gcc .Get ("\u0057\u0069\u006e"),Mac :_gcc .Get ("\u004d\u0061\u0063"),Unix :_gcc .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_gcc .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_ggg },nil ;
};
// NewPdfActionSound returns a new "sound" action.
func NewPdfActionSound ()*PdfActionSound {_beb :=NewPdfAction ();_cbc :=&PdfActionSound {};_cbc .PdfAction =_beb ;_beb .SetContext (_cbc );return _cbc ;};
// GetPageLabels returns the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_bece *PdfReader )GetPageLabels ()(_eg .PdfObject ,error ){_egebg :=_eg .ResolveReference (_bece ._efdg .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _egebg ==nil {return nil ,nil ;};if !_bece ._bebe {_gbcfc :=_bece .traverseObjectData (_egebg );
if _gbcfc !=nil {return nil ,_gbcfc ;};};return _egebg ,nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a Lab device.
func (_gfgf *PdfColorspaceLab )GetNumComponents ()int {return 3};
// Size returns the width and the height of the page. The method reports
// the page dimensions as displayed by a PDF viewer (i.e. page rotation is
// taken into account).
func (_bgbgag *PdfPage )Size ()(float64 ,float64 ,error ){_acgdb ,_egdabe :=_bgbgag .GetMediaBox ();if _egdabe !=nil {return 0,0,_egdabe ;};_ffea ,_acfad :=_acgdb .Width (),_acgdb .Height ();if _bbafbb :=_bgbgag .Rotate ;_bbafbb !=nil &&*_bbafbb %360!=0&&*_bbafbb %90==0{if _bfda :=(360+*_bbafbb %360)%360;
_bfda ==90||_bfda ==270{_ffea ,_acfad =_acfad ,_ffea ;};};return _ffea ,_acfad ,nil ;};
// HasXObjectByName checks if has XObject resource by name.
func (_eafdd *PdfPage )HasXObjectByName (name _eg .PdfObjectName )bool {_bffce ,_ebgdb :=_eafdd .Resources .XObject .(*_eg .PdfObjectDictionary );if !_ebgdb {return false ;};if _bacga :=_bffce .Get (name );_bacga !=nil {return true ;};return false ;};func (_degbdb fontCommon )isCIDFont ()bool {if _degbdb ._fgbbb ==""{_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0069\u0073\u0043\u0049\u0044\u0046\u006f\u006e\u0074\u002e\u0020\u0063o\u006e\u0074\u0065\u0078\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_degbdb );
};_cfefe :=false ;switch _degbdb ._fgbbb {case "\u0054\u0079\u0070e\u0030","\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030","\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_cfefe =true ;};_dbg .Log .Trace ("i\u0073\u0043\u0049\u0044\u0046\u006fn\u0074\u003a\u0020\u0069\u0073\u0043\u0049\u0044\u003d%\u0074\u0020\u0066o\u006et\u003d\u0025\u0073",_cfefe ,_degbdb );
return _cfefe ;};func (_fgff *PdfReader )newPdfActionJavaScriptFromDict (_bged *_eg .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_bged .Get ("\u004a\u0053")},nil ;};
// PdfActionRendition represents a Rendition action.
type PdfActionRendition struct{*PdfAction ;R _eg .PdfObject ;AN _eg .PdfObject ;OP _eg .PdfObject ;JS _eg .PdfObject ;};func _gecc (_gdff _ab .StdFont )pdfFontSimple {_effba :=_gdff .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_fgbbb :"\u0054\u0079\u0070e\u0031",_cfab :_gdff .Name ()},_edgae :_gdff .GetMetricsTable (),_ggce :&PdfFontDescriptor {FontName :_eg .MakeName (string (_effba .Name )),FontFamily :_eg .MakeName (_effba .Family ),FontWeight :_eg .MakeFloat (float64 (_effba .Weight )),Flags :_eg .MakeInteger (int64 (_effba .Flags )),FontBBox :_eg .MakeArrayFromFloats (_effba .BBox [:]),ItalicAngle :_eg .MakeFloat (_effba .ItalicAngle ),Ascent :_eg .MakeFloat (_effba .Ascent ),Descent :_eg .MakeFloat (_effba .Descent ),CapHeight :_eg .MakeFloat (_effba .CapHeight ),XHeight :_eg .MakeFloat (_effba .XHeight ),StemV :_eg .MakeFloat (_effba .StemV ),StemH :_eg .MakeFloat (_effba .StemH )},_fcgd :_gdff .Encoder ()};
};
// ReplacePage replaces the original page to a new page.
func (_cdcb *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_dcgd :=pageNum -1;for _gccd :=range _cdcb ._bfce {if _gccd ==_dcgd {_baeb :=page .Duplicate ();_faadf (_baeb );_cdcb ._bfce [_gccd ]=_baeb ;};};};
// CharcodesToStrings returns the unicode strings corresponding to `charcodes`.
// The int returns are the number of strings and the number of unconvereted codes.
// NOTE: The number of strings returned is equal to the number of charcodes
func (_cgbga *PdfFont )CharcodesToStrings (charcodes []_cec .CharCode )([]string ,int ,int ){_dgbb :=_cgbga .baseFields ();_bdbac :=make ([]string ,0,len (charcodes ));_aaeda :=0;_cgfb :=_cgbga .Encoder ();if _cgfb !=nil {switch _bfbe :=_cgfb .(type ){case _cec .SimpleEncoder :_cegg :=_bfbe .BaseName ();
if _ ,_defc :=_acgcf [_cegg ];_defc {for _ ,_cfafg :=range charcodes {if _dafb ,_ccac :=_cgfb .CharcodeToRune (_cfafg );_ccac {_bdbac =append (_bdbac ,string (_dafb ));}else {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0072u\u006e\u0065\u002e\u0020\u0063\u006f\u0064\u0065=\u0030x\u0025\u0030\u0034\u0078\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0073\u003d\u005b\u0025\u00200\u0034\u0078\u005d\u0020\u0043\u0049\u0044\u003d\u0025\u0074\u000a"+"\t\u0066\u006f\u006e\u0074=%\u0073\n\u0009\u0065\u006e\u0063\u006fd\u0069\u006e\u0067\u003d\u0025\u0073",_cfafg ,charcodes ,_dgbb .isCIDFont (),_cgbga ,_cgfb );
_aaeda ++;_bdbac =append (_bdbac ,_aff .MissingCodeString );};};return _bdbac ,len (_bdbac ),_aaeda ;};};};for _ ,_deafg :=range charcodes {if _dgbb ._fffc !=nil {if _bbeac ,_aebg :=_dgbb ._fffc .CharcodeToUnicode (_aff .CharCode (_deafg ));_aebg {_bdbac =append (_bdbac ,_bbeac );
continue ;};};if _cgfb !=nil {if _afbg ,_cecg :=_cgfb .CharcodeToRune (_deafg );_cecg {_bdbac =append (_bdbac ,string (_afbg ));continue ;};};_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0072u\u006e\u0065\u002e\u0020\u0063\u006f\u0064\u0065=\u0030x\u0025\u0030\u0034\u0078\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0073\u003d\u005b\u0025\u00200\u0034\u0078\u005d\u0020\u0043\u0049\u0044\u003d\u0025\u0074\u000a"+"\t\u0066\u006f\u006e\u0074=%\u0073\n\u0009\u0065\u006e\u0063\u006fd\u0069\u006e\u0067\u003d\u0025\u0073",_deafg ,charcodes ,_dgbb .isCIDFont (),_cgbga ,_cgfb );
_aaeda ++;_bdbac =append (_bdbac ,_aff .MissingCodeString );};if _aaeda !=0{_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0043\u006f\u0075\u006c\u0064\u006e\u0027\u0074\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0074\u006f\u0020u\u006e\u0069\u0063\u006f\u0064\u0065\u002e\u0020\u0055\u0073\u0069\u006e\u0067\u0020i\u006ep\u0075\u0074\u002e\u000a"+"\u0009\u006e\u0075\u006d\u0043\u0068\u0061\u0072\u0073\u003d\u0025d\u0020\u006e\u0075\u006d\u004d\u0069\u0073\u0073\u0065\u0073=\u0025\u0064\u000a"+"\u0009\u0066\u006f\u006e\u0074\u003d\u0025\u0073",len (charcodes ),_aaeda ,_cgbga );
};return _bdbac ,len (_bdbac ),_aaeda ;};
// ToPdfObject returns an indirect object containing the signature field dictionary.
func (_gcdb *PdfFieldSignature )ToPdfObject ()_eg .PdfObject {if _gcdb .PdfAnnotationWidget !=nil {_gcdb .PdfAnnotationWidget .ToPdfObject ();};_gcdb .PdfField .ToPdfObject ();_fedef :=_gcdb ._afbe ;_dacf :=_fedef .PdfObject .(*_eg .PdfObjectDictionary );
_dacf .SetIfNotNil ("\u0046\u0054",_eg .MakeName ("\u0053\u0069\u0067"));_dacf .SetIfNotNil ("\u004c\u006f\u0063\u006b",_gcdb .Lock );_dacf .SetIfNotNil ("\u0053\u0056",_gcdb .SV );if _gcdb .V !=nil {_dacf .SetIfNotNil ("\u0056",_gcdb .V .ToPdfObject ());
};return _fedef ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element in
// range 0-1.
func (_bagc *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgdf ,_gbd :=_eg .GetNumbersAsFloat (objects );
if _gbd !=nil {return nil ,_gbd ;};return _bagc .ColorFromFloats (_bgdf );};func (_bdd *PdfReader )newPdfActionTransFromDict (_baab *_eg .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_baab .Get ("\u0054\u0072\u0061n\u0073")},nil ;
};func (_dgeg *PdfReader )newPdfAnnotationMarkupFromDict (_eeg *_eg .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_eda :=&PdfAnnotationMarkup {};if _fgcg :=_eeg .Get ("\u0054");_fgcg !=nil {_eda .T =_fgcg ;};if _ecca :=_eeg .Get ("\u0050\u006f\u0070u\u0070");
_ecca !=nil {_egdb ,_dbbe :=_ecca .(*_eg .PdfIndirectObject );if !_dbbe {if _ ,_afag :=_ecca .(*_eg .PdfObjectNull );!_afag {return nil ,_bbd .New ("p\u006f\u0070\u0075\u0070\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074\u0020t\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072ec\u0074\u0020\u006fb\u006ae\u0063\u0074");
};}else {_fgb ,_gcf :=_dgeg .newPdfAnnotationFromIndirectObject (_egdb );if _gcf !=nil {return nil ,_gcf ;};if _fgb !=nil {_fedc ,_ddg :=_fgb ._ffbe .(*PdfAnnotationPopup );if !_ddg {return nil ,_bbd .New ("\u006f\u0062\u006ae\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0072\u0065\u0066\u0065\u0072\u0072\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0061\u0020\u0070\u006f\u0070\u0075\u0070\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e");
};_eda .Popup =_fedc ;};};};if _febc :=_eeg .Get ("\u0043\u0041");_febc !=nil {_eda .CA =_febc ;};if _cgad :=_eeg .Get ("\u0052\u0043");_cgad !=nil {_eda .RC =_cgad ;};if _agbe :=_eeg .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");
_agbe !=nil {_eda .CreationDate =_agbe ;};if _bgf :=_eeg .Get ("\u0049\u0052\u0054");_bgf !=nil {_eda .IRT =_bgf ;};if _eggd :=_eeg .Get ("\u0053\u0075\u0062\u006a");_eggd !=nil {_eda .Subj =_eggd ;};if _fac :=_eeg .Get ("\u0052\u0054");_fac !=nil {_eda .RT =_fac ;
};if _cgf :=_eeg .Get ("\u0049\u0054");_cgf !=nil {_eda .IT =_cgf ;};if _cbaa :=_eeg .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_cbaa !=nil {_eda .ExData =_cbaa ;};return _eda ,nil ;};
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
func (_ebdce *pdfCIDFontType2 )ToPdfObject ()_eg .PdfObject {if _ebdce ._ddfb ==nil {_ebdce ._ddfb =&_eg .PdfIndirectObject {};};_ccfcg :=_ebdce .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");
_ebdce ._ddfb .PdfObject =_ccfcg ;if _ebdce .CIDSystemInfo !=nil {_ccfcg .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_ebdce .CIDSystemInfo );};if _ebdce .DW !=nil {_ccfcg .Set ("\u0044\u0057",_ebdce .DW );};if _ebdce .DW2 !=nil {_ccfcg .Set ("\u0044\u0057\u0032",_ebdce .DW2 );
};if _ebdce .W !=nil {_ccfcg .Set ("\u0057",_ebdce .W );};if _ebdce .W2 !=nil {_ccfcg .Set ("\u0057\u0032",_ebdce .W2 );};if _ebdce .CIDToGIDMap !=nil {_ccfcg .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_ebdce .CIDToGIDMap );};
return _ebdce ._ddfb ;};
// NewPdfAction returns an initialized generic PDF action model.
func NewPdfAction ()*PdfAction {_da :=&PdfAction {};_da ._ege =_eg .MakeIndirectObject (_eg .MakeDict ());return _da ;};
// PdfActionGoTo3DView represents a GoTo3DView action.
type PdfActionGoTo3DView struct{*PdfAction ;TA _eg .PdfObject ;V _eg .PdfObject ;};
// AddAnnotation appends `annot` to the list of page annotations.
func (_faagd *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _faagd ._egge ==nil {_faagd .GetAnnotations ();};_faagd ._egge =append (_faagd ._egge ,annot );};func _cafd (_ggbdgd []byte )([]byte ,error ){_ggccb :=_d .New ();if _ ,_ffaab :=_de .Copy (_ggccb ,_cbd .NewReader (_ggbdgd ));
_ffaab !=nil {return nil ,_ffaab ;};return _ggccb .Sum (nil ),nil ;};
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
func (_agag *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _agag .Alternate ==nil {_dbg .Log .Debug ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
if _agag .N ==1{_dbg .Log .Debug ("\u0049\u0043\u0043\u0020\u0042a\u0073\u0065\u0064\u0020\u0063o\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061\u006c\u0074\u0065r\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006e\u0067\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061y\u0020\u0028\u004e\u003d\u0031\u0029");
_dggb :=NewPdfColorspaceDeviceGray ();return _dggb .ImageToRGB (img );}else if _agag .N ==3{_dbg .Log .Debug ("\u0049\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067 \u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006eg\u0020\u0044\u0065\u0076\u0069\u0063e\u0052\u0047B\u0020\u0028N\u003d3\u0029");
return img ,nil ;}else if _agag .N ==4{_dbg .Log .Debug ("\u0049\u0043\u0043\u0020\u0042a\u0073\u0065\u0064\u0020\u0063o\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061\u006c\u0074\u0065r\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006e\u0067\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059K\u0020\u0028\u004e\u003d\u0034\u0029");
_eefa :=NewPdfColorspaceDeviceCMYK ();return _eefa .ImageToRGB (img );}else {return img ,_bbd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
};};_dbg .Log .Trace ("\u0049\u0043\u0043 \u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0077\u0069\u0074\u0068\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061t\u0069\u0076\u0065\u003a\u0020\u0025\u0023\u0076",_agag );
_dbad ,_bfae :=_agag .Alternate .ImageToRGB (img );_dbg .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_dbg .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_dbad );
return _dbad ,_bfae ;};func (_eecea *PdfFont )baseFields ()*fontCommon {if _eecea ._gdcab ==nil {_dbg .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0062\u0061\u0073\u0065\u0046\u0069\u0065l\u0064s\u002e \u0063o\u006e\u0074\u0065\u0078\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c\u002e");
return nil ;};return _eecea ._gdcab .baseFields ();};func _abafe ()string {_abeg :="\u0051\u0057\u0045\u0052\u0054\u0059\u0055\u0049\u004f\u0050\u0041S\u0044\u0046\u0047\u0048\u004a\u004b\u004c\u005a\u0058\u0043V\u0042\u004e\u004d";var _ecafc _cbd .Buffer ;
for _dbcefc :=0;_dbcefc < 6;_dbcefc ++{_ecafc .WriteRune (rune (_abeg [_gf .Intn (len (_abeg ))]));};return _ecafc .String ();};
// ToPdfObject returns a PDF object representation of the outline destination.
func (_gfbcae OutlineDest )ToPdfObject ()_eg .PdfObject {if (_gfbcae .PageObj ==nil &&_gfbcae .Page < 0)||_gfbcae .Mode ==""{return _eg .MakeNull ();};_dgadd :=_eg .MakeArray ();if _gfbcae .PageObj !=nil {_dgadd .Append (_gfbcae .PageObj );}else {_dgadd .Append (_eg .MakeInteger (_gfbcae .Page ));
};_dgadd .Append (_eg .MakeName (_gfbcae .Mode ));switch _gfbcae .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_dgadd .Append (_eg .MakeFloat (_gfbcae .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_dgadd .Append (_eg .MakeFloat (_gfbcae .X ));
case "\u0058\u0059\u005a":_dgadd .Append (_eg .MakeFloat (_gfbcae .X ));_dgadd .Append (_eg .MakeFloat (_gfbcae .Y ));_dgadd .Append (_eg .MakeFloat (_gfbcae .Zoom ));default:_dgadd .Set (1,_eg .MakeName ("\u0046\u0069\u0074"));};return _dgadd ;};func (_bgabfa *PdfReader )newPdfFieldSignatureFromDict (_bbdfd *_eg .PdfObjectDictionary )(*PdfFieldSignature ,error ){_eecc :=&PdfFieldSignature {};
_fcbf ,_aeeb :=_eg .GetIndirect (_bbdfd .Get ("\u0056"));if _aeeb {var _agab error ;_eecc .V ,_agab =_bgabfa .newPdfSignatureFromIndirect (_fcbf );if _agab !=nil {return nil ,_agab ;};};_eecc .Lock ,_ =_eg .GetIndirect (_bbdfd .Get ("\u004c\u006f\u0063\u006b"));
_eecc .SV ,_ =_eg .GetIndirect (_bbdfd .Get ("\u0053\u0056"));return _eecc ,nil ;};
// GetNumComponents returns the number of color components (1 for Separation).
func (_edab *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};func (_ddae *PdfReader )newPdfAnnotationWidgetFromDict (_efee *_eg .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_eegg :=PdfAnnotationWidget {};_eegg .H =_efee .Get ("\u0048");
_eegg .MK =_efee .Get ("\u004d\u004b");_eegg .A =_efee .Get ("\u0041");_eegg .AA =_efee .Get ("\u0041\u0041");_eegg .BS =_efee .Get ("\u0042\u0053");_eegg .Parent =_efee .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_eegg ,nil ;};
// NewStandard14FontMustCompile returns the standard 14 font named `basefont` as a *PdfFont.
// If `basefont` is one of the 14 Standard14Font values defined above then NewStandard14FontMustCompile
// is guaranteed to succeed.
func NewStandard14FontMustCompile (basefont StdFontName )*PdfFont {_gcdbd ,_ffbbg :=NewStandard14Font (basefont );if _ffbbg !=nil {panic (_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0074\u0061n\u0064\u0061\u0072\u0064\u0031\u0034\u0046\u006f\u006e\u0074 \u0025\u0023\u0071",basefont ));
};return _gcdbd ;};func _dbae (_aecc _eg .PdfObject )(map[_cec .CharCode ]float64 ,error ){if _aecc ==nil {return nil ,nil ;};_edged ,_ecegf :=_eg .GetArray (_aecc );if !_ecegf {return nil ,nil ;};_bfbf :=map[_cec .CharCode ]float64 {};_ggfcb :=_edged .Len ();
for _adbef :=0;_adbef < _ggfcb -1;_adbef ++{_fbdcf :=_eg .TraceToDirectObject (_edged .Get (_adbef ));_ccgab ,_defd :=_eg .GetIntVal (_fbdcf );if !_defd {return nil ,_e .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_adbef ,_fbdcf );
};_adbef ++;if _adbef > _ggfcb -1{return nil ,_e .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_edged );};_aabc :=_eg .TraceToDirectObject (_edged .Get (_adbef ));
switch _aabc .(type ){case *_eg .PdfObjectArray :_ecebg ,_ :=_eg .GetArray (_aabc );if _fddbac ,_affce :=_ecebg .ToFloat64Array ();_affce ==nil {for _afbfc :=0;_afbfc < len (_fddbac );_afbfc ++{_bfbf [_cec .CharCode (_ccgab +_afbfc )]=_fddbac [_afbfc ];
};}else {return nil ,_e .Errorf ("\u0042\u0061\u0064 \u0066\u006f\u006e\u0074 \u0057\u0020\u0061\u0072\u0072\u0061\u0079 \u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_adbef ,_aabc );};case *_eg .PdfObjectInteger :_dcdff ,_ebce :=_eg .GetIntVal (_aabc );
if !_ebce {return nil ,_e .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_adbef ,_aabc );};_adbef ++;if _adbef > _ggfcb -1{return nil ,_e .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_edged );
};_acdcb :=_edged .Get (_adbef );_eaged ,_fbec :=_eg .GetNumberAsFloat (_acdcb );if _fbec !=nil {return nil ,_e .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0032\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_adbef ,_acdcb );
};for _cfcce :=_ccgab ;_cfcce <=_dcdff ;_cfcce ++{_bfbf [_cec .CharCode (_cfcce )]=_eaged ;};default:return nil ,_e .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057 \u006f\u0062\u006a\u0031\u0020\u0074\u0079p\u0065\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_adbef ,_aabc );
};};return _bfbf ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_fgbd *PdfAnnotationFileAttachment )ToPdfObject ()_eg .PdfObject {_fgbd .PdfAnnotation .ToPdfObject ();_gaefa :=_fgbd ._gag ;_ebab :=_gaefa .PdfObject .(*_eg .PdfObjectDictionary );_fgbd .PdfAnnotationMarkup .appendToPdfDictionary (_ebab );_ebab .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));
_ebab .SetIfNotNil ("\u0046\u0053",_fgbd .FS );_ebab .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fgbd .Name );return _gaefa ;};
// PdfActionGoToR represents a GoToR action.
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _eg .PdfObject ;NewWindow _eg .PdfObject ;};
// EncryptOptions represents encryption options for an output PDF.
type EncryptOptions struct{Permissions _fc .Permissions ;Algorithm EncryptionAlgorithm ;};
// UpdateObject marks `obj` as updated and to be included in the following revision.
func (_ffdd *PdfAppender )UpdateObject (obj _eg .PdfObject ){_ffdd .replaceObject (obj ,obj );if _ ,_fedf :=_ffdd ._adge [obj ];!_fedf {_ffdd ._acda =append (_ffdd ._acda ,obj );_ffdd ._adge [obj ]=struct{}{};};};
// String returns a human readable description of `fontfile`.
func (_fdce *fontFile )String ()string {_ecefb :="\u005b\u004e\u006f\u006e\u0065\u005d";if _fdce ._feffd !=nil {_ecefb =_fdce ._feffd .String ();};return _e .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_fdce ._dadg ,_ecefb );
};func _becf (_gfdd _eg .PdfObject )(*PdfColorspaceCalGray ,error ){_caaf :=NewPdfColorspaceCalGray ();if _bbea ,_fede :=_gfdd .(*_eg .PdfIndirectObject );_fede {_caaf ._gccdc =_bbea ;};_gfdd =_eg .TraceToDirectObject (_gfdd );_gdac ,_bacba :=_gfdd .(*_eg .PdfObjectArray );
if !_bacba {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gdac .Len ()!=2{return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0061\u006cG\u0072\u0061\u0079\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");
};_gfdd =_eg .TraceToDirectObject (_gdac .Get (0));_afcfb ,_bacba :=_gfdd .(*_eg .PdfObjectName );if !_bacba {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061\u0079\u0020\u006e\u0061m\u0065\u0020\u006e\u006f\u0074\u0020\u0061 \u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
};if *_afcfb !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_e .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_gfdd =_eg .TraceToDirectObject (_gdac .Get (1));
_gaee ,_bacba :=_gfdd .(*_eg .PdfObjectDictionary );if !_bacba {return nil ,_e .Errorf ("\u0043\u0061lG\u0072\u0061\u0079 \u0064\u0069\u0063\u0074 no\u0074 a\u0020\u0044\u0069\u0063\u0074\u0069\u006fna\u0072\u0079\u0020\u006f\u0062\u006a\u0065c\u0074");
};_gfdd =_gaee .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_gfdd =_eg .TraceToDirectObject (_gfdd );_ecfdc ,_bacba :=_gfdd .(*_eg .PdfObjectArray );if !_bacba {return nil ,_e .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020W\u0068\u0069\u0074e\u0050o\u0069\u006e\u0074");
};if _ecfdc .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069t\u0065\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_addc ,_adbb :=_ecfdc .GetAsFloat64Slice ();
if _adbb !=nil {return nil ,_adbb ;};_caaf .WhitePoint =_addc ;_gfdd =_gaee .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _gfdd !=nil {_gfdd =_eg .TraceToDirectObject (_gfdd );_fdbe ,_bebf :=_gfdd .(*_eg .PdfObjectArray );if !_bebf {return nil ,_e .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020B\u006c\u0061\u0063k\u0050o\u0069\u006e\u0074");
};if _fdbe .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061c\u006b\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_bdc ,_dbfb :=_fdbe .GetAsFloat64Slice ();
if _dbfb !=nil {return nil ,_dbfb ;};_caaf .BlackPoint =_bdc ;};_gfdd =_gaee .Get ("\u0047\u0061\u006dm\u0061");if _gfdd !=nil {_gfdd =_eg .TraceToDirectObject (_gfdd );_aagc ,_gfaa :=_eg .GetNumberAsFloat (_gfdd );if _gfaa !=nil {return nil ,_e .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");
};_caaf .Gamma =_aagc ;};return _caaf ,nil ;};
// GetContext returns the action context which contains the specific type-dependent context.
// The context represents the subaction.
func (_ca *PdfAction )GetContext ()PdfModel {if _ca ==nil {return nil ;};return _ca ._cea ;};
// PdfModel is a higher level PDF construct which can be collapsed into a PdfObject.
// Each PdfModel has an underlying PdfObject and vice versa (one-to-one).
// Under normal circumstances there should only be one copy of each.
// Copies can be made, but care must be taken to do it properly.
type PdfModel interface{ToPdfObject ()_eg .PdfObject ;GetContainingPdfObject ()_eg .PdfObject ;};func _adged (_dbcec *_eg .PdfObjectDictionary ,_adcbf *fontCommon )(*pdfCIDFontType0 ,error ){if _adcbf ._fgbbb !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_dbg .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0046\u006fn\u0074\u0020\u0053u\u0062\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020CI\u0044\u0046\u006fn\u0074\u0054y\u0070\u0065\u0030\u002e\u0020\u0066o\u006e\u0074=\u0025\u0073",_adcbf );
return nil ,_eg .ErrRangeError ;};_bbcbc :=_aebfd (_adcbf );_cgcb ,_bbbeb :=_eg .GetDict (_dbcec .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_bbbeb {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043I\u0044\u0053\u0079st\u0065\u006d\u0049\u006e\u0066\u006f \u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u002e\u0020\u0066\u006f\u006e\u0074=\u0025\u0073",_adcbf );
return nil ,ErrRequiredAttributeMissing ;};_bbcbc .CIDSystemInfo =_cgcb ;_bbcbc .DW =_dbcec .Get ("\u0044\u0057");_bbcbc .W =_dbcec .Get ("\u0057");_bbcbc .DW2 =_dbcec .Get ("\u0044\u0057\u0032");_bbcbc .W2 =_dbcec .Get ("\u0057\u0032");_bbcbc ._gfbab =1000.0;
if _egeb ,_cedc :=_eg .GetNumberAsFloat (_bbcbc .DW );_cedc ==nil {_bbcbc ._gfbab =_egeb ;};_fggg ,_gcdcf :=_dbae (_bbcbc .W );if _gcdcf !=nil {return nil ,_gcdcf ;};if _fggg ==nil {_fggg =map[_cec .CharCode ]float64 {};};_bbcbc ._fedfd =_fggg ;return _bbcbc ,nil ;
};
// PdfColorCalGray represents a CalGray colorspace.
type PdfColorCalGray float64 ;
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
func (_efafa *Image )AlphaMap (mapFunc AlphaMapFunc ){for _ddcdg ,_cggc :=range _efafa ._fcec {_efafa ._fcec [_ddcdg ]=mapFunc (_cggc );};};
// SetShadingByName sets a shading resource specified by keyName.
func (_dgbc *PdfPageResources )SetShadingByName (keyName _eg .PdfObjectName ,shadingObj _eg .PdfObject )error {if _dgbc .Shading ==nil {_dgbc .Shading =_eg .MakeDict ();};_egfac ,_beaba :=_dgbc .Shading .(*_eg .PdfObjectDictionary );if !_beaba {return _eg .ErrTypeError ;
};_egfac .Set (keyName ,shadingObj );return nil ;};
// NewXObjectImageFromImage creates a new XObject Image from an image object
// with default options. If encoder is nil, uses raw encoding (none).
func NewXObjectImageFromImage (img *Image ,cs PdfColorspace ,encoder _eg .StreamEncoder )(*XObjectImage ,error ){_aaacg :=NewXObjectImage ();return UpdateXObjectImageFromImage (_aaacg ,img ,cs ,encoder );};
// GetCapHeight returns the CapHeight of the font `descriptor`.
func (_eagec *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _eg .GetNumberAsFloat (_eagec .CapHeight );};
// PdfColorspaceCalRGB stores A, B, C components
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_ddaeb *_eg .PdfObjectDictionary ;_gdef *_eg .PdfIndirectObject ;};
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};
// ToWriter creates a new writer from the current reader, based on the specified options.
// If no options are provided, all reader properties are copied to the writer.
func (_fcbfc *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_fbcf :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_gbbff ,_fddbb :=_fcbfc .GetNumPages ();if _fddbb !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fddbb );
return nil ,_fddbb ;};for _dfafcd :=1;_dfafcd <=_gbbff ;_dfafcd ++{_cegga ,_defed :=_fcbfc .GetPage (_dfafcd );if _defed !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_defed );return nil ,_defed ;};if opts .PageProcessCallback !=nil {_defed =opts .PageProcessCallback (_dfafcd ,_cegga );
if _defed !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_defed );return nil ,_defed ;};}else if opts .PageCallback !=nil {opts .PageCallback (_dfafcd ,_cegga );};_defed =_fbcf .AddPage (_cegga );if _defed !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_defed );
return nil ,_defed ;};};_fbcf ._dacab =_fcbfc .PdfVersion ().Major ;_fbcf ._ecae =_fcbfc .PdfVersion ().Minor ;if !opts .SkipInfo {_fdcdf ,_egfed :=_fcbfc .GetPdfInfo ();if _egfed !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_egfed );
}else {_fbcf ._ggca .PdfObject =_fdcdf .ToPdfObject ();};};if !opts .SkipAcroForm {_fdecd :=_fbcf .SetForms (_fcbfc .AcroForm );if _fdecd !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fdecd );return nil ,_fdecd ;};};if !opts .SkipOutlines {_fbcf .AddOutlineTree (_fcbfc .GetOutlineTree ());
};if !opts .SkipOCProperties {_cecfgc ,_bbcf :=_fcbfc .GetOCProperties ();if _bbcf !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbcf );}else {_bbcf =_fbcf .SetOCProperties (_cecfgc );if _bbcf !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbcf );
};};};if !opts .SkipPageLabels {_eafdg ,_aaag :=_fcbfc .GetPageLabels ();if _aaag !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aaag );}else {_aaag =_fbcf .SetPageLabels (_eafdg );if _aaag !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aaag );
};};};if !opts .SkipNamedDests {_ggafd ,_cece :=_fcbfc .GetNamedDestinations ();if _cece !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cece );}else {_cece =_fbcf .SetNamedDestinations (_ggafd );if _cece !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cece );
};};};if !opts .SkipRotation &&_fcbfc .Rotate !=nil {if _dcee :=_fbcf .SetRotation (*_fcbfc .Rotate );_dcee !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dcee );};};return &_fbcf ,nil ;};var ImageHandling ImageHandler =DefaultImageHandler {};
func _dcaf (_addb *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_addb }};
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
func (_fcabfd *Image )ColorAt (x ,y int )(_f .Color ,error ){_fegbg :=_ff .BytesPerLine (int (_fcabfd .Width ),int (_fcabfd .BitsPerComponent ),_fcabfd .ColorComponents );switch _fcabfd .ColorComponents {case 1:return _ff .ColorAtGrayscale (x ,y ,int (_fcabfd .BitsPerComponent ),_fegbg ,_fcabfd .Data ,_fcabfd ._aaeac );
case 3:return _ff .ColorAtNRGBA (x ,y ,int (_fcabfd .Width ),_fegbg ,int (_fcabfd .BitsPerComponent ),_fcabfd .Data ,_fcabfd ._fcec ,_fcabfd ._aaeac );case 4:return _ff .ColorAtCMYK (x ,y ,int (_fcabfd .Width ),_fcabfd .Data ,_fcabfd ._aaeac );};_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064 i\u006da\u0067\u0065\u002e\u0020\u0025\u0064\u0020\u0063\u006f\u006d\u0070\u006fn\u0065\u006e\u0074\u0073\u002c\u0020\u0025\u0064\u0020\u0062\u0069\u0074\u0073\u0020\u0070\u0065\u0072 \u0063\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fcabfd .ColorComponents ,_fcabfd .BitsPerComponent );
return nil ,_bbd .New ("\u0075\u006e\u0073\u0075p\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0069\u006d\u0061g\u0065 \u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065");};func (_eddeeb *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _cdff :=_eddeeb ._eecfe ;
_cdff !=nil {return _cdff ;};return _eddeeb ._ggce ;};
// ToPdfObject returns the choice field dictionary within an indirect object (container).
func (_ddgg *PdfFieldChoice )ToPdfObject ()_eg .PdfObject {_ddgg .PdfField .ToPdfObject ();_ffff :=_ddgg ._afbe ;_cbaf :=_ffff .PdfObject .(*_eg .PdfObjectDictionary );_cbaf .Set ("\u0046\u0054",_eg .MakeName ("\u0043\u0068"));if _ddgg .Opt !=nil {_cbaf .Set ("\u004f\u0070\u0074",_ddgg .Opt );
};if _ddgg .TI !=nil {_cbaf .Set ("\u0054\u0049",_ddgg .TI );};if _ddgg .I !=nil {_cbaf .Set ("\u0049",_ddgg .I );};return _ffff ;};
// GetType returns the button field type which returns one of the following
// - PdfFieldButtonPush for push button fields
// - PdfFieldButtonCheckbox for checkbox fields
// - PdfFieldButtonRadio for radio button fields
func (_adgcd *PdfFieldButton )GetType ()ButtonType {_ceagc :=ButtonTypeCheckbox ;if _adgcd .Ff !=nil {if (uint32 (*_adgcd .Ff )&FieldFlagPushbutton .Mask ())> 0{_ceagc =ButtonTypePush ;}else if (uint32 (*_adgcd .Ff )&FieldFlagRadio .Mask ())> 0{_ceagc =ButtonTypeRadio ;
};};return _ceagc ;};var _dfee =map[string ]struct{}{"\u0046\u0054":{},"\u004b\u0069\u0064\u0073":{},"\u0054":{},"\u0054\u0055":{},"\u0054\u004d":{},"\u0046\u0066":{},"\u0056":{},"\u0044\u0056":{},"\u0041\u0041":{},"\u0044\u0041":{},"\u0051":{},"\u0044\u0053":{},"\u0052\u0056":{}};
// Initialize initializes the PdfSignature.
func (_baage *PdfSignature )Initialize ()error {if _baage .Handler ==nil {return _bbd .New ("\u0073\u0069\u0067n\u0061\u0074\u0075\u0072e\u0020\u0068\u0061\u006e\u0064\u006c\u0065r\u0020\u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u006e\u0069\u006c");
};return _baage .Handler .InitSignature (_baage );};func (_ddfccc *LTV )buildCertChain (_fcdb ,_febd []*_ce .Certificate )([]*_ce .Certificate ,map[string ]*_ce .Certificate ,error ){_ccfd :=map[string ]*_ce .Certificate {};for _ ,_beac :=range _fcdb {_ccfd [_beac .Subject .CommonName ]=_beac ;
};_edbbe :=_fcdb ;for _ ,_efddb :=range _febd {_gbgba :=_efddb .Subject .CommonName ;if _ ,_dcgbff :=_ccfd [_gbgba ];_dcgbff {continue ;};_ccfd [_gbgba ]=_efddb ;_edbbe =append (_edbbe ,_efddb );};if len (_edbbe )==0{return nil ,nil ,ErrSignNoCertificates ;
};var _bdbe error ;for _dadbc :=_edbbe [0];_dadbc !=nil &&!_ddfccc .CertClient .IsCA (_dadbc );{_fdcgd ,_gbec :=_ccfd [_dadbc .Issuer .CommonName ];if !_gbec {if _fdcgd ,_bdbe =_ddfccc .CertClient .GetIssuer (_dadbc );_bdbe !=nil {_dbg .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0043\u006f\u0075\u006cd\u0020\u006e\u006f\u0074\u0020\u0072\u0065tr\u0069\u0065\u0076\u0065 \u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061te\u0020\u0069s\u0073\u0075\u0065\u0072\u003a\u0020\u0025\u0076",_bdbe );
break ;};_ccfd [_dadbc .Issuer .CommonName ]=_fdcgd ;_edbbe =append (_edbbe ,_fdcgd );};_dadbc =_fdcgd ;};return _edbbe ,_ccfd ,nil ;};
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
func (_bbbg *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_fdgbb :=_ccg .NewReader (img .getBase ());_dbfa :=_ff .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_cabcd :=_ccg .NewWriter (_dbfa );
_bdfc :=_bc .Pow (2,float64 (img .BitsPerComponent ))-1;_fbbg :=make ([]uint32 ,3);var (_egag error ;_cgacd ,_bbgad ,_fbcd ,_ggfa ,_cecb ,_ffef float64 ;);for {_egag =_fdgbb .ReadSamples (_fbbg );if _egag ==_de .EOF {break ;}else if _egag !=nil {return img ,_egag ;
};_cgacd =float64 (_fbbg [0])/_bdfc ;_bbgad =float64 (_fbbg [1])/_bdfc ;_fbcd =float64 (_fbbg [2])/_bdfc ;_ggfa =_bbbg .Matrix [0]*_bc .Pow (_cgacd ,_bbbg .Gamma [0])+_bbbg .Matrix [3]*_bc .Pow (_bbgad ,_bbbg .Gamma [1])+_bbbg .Matrix [6]*_bc .Pow (_fbcd ,_bbbg .Gamma [2]);
_cecb =_bbbg .Matrix [1]*_bc .Pow (_cgacd ,_bbbg .Gamma [0])+_bbbg .Matrix [4]*_bc .Pow (_bbgad ,_bbbg .Gamma [1])+_bbbg .Matrix [7]*_bc .Pow (_fbcd ,_bbbg .Gamma [2]);_ffef =_bbbg .Matrix [2]*_bc .Pow (_cgacd ,_bbbg .Gamma [0])+_bbbg .Matrix [5]*_bc .Pow (_bbgad ,_bbbg .Gamma [1])+_bbbg .Matrix [8]*_bc .Pow (_fbcd ,_bbbg .Gamma [2]);
_cgacd =3.240479*_ggfa +-1.537150*_cecb +-0.498535*_ffef ;_bbgad =-0.969256*_ggfa +1.875992*_cecb +0.041556*_ffef ;_fbcd =0.055648*_ggfa +-0.204043*_cecb +1.057311*_ffef ;_cgacd =_bc .Min (_bc .Max (_cgacd ,0),1.0);_bbgad =_bc .Min (_bc .Max (_bbgad ,0),1.0);
_fbcd =_bc .Min (_bc .Max (_fbcd ,0),1.0);_fbbg [0]=uint32 (_cgacd *_bdfc );_fbbg [1]=uint32 (_bbgad *_bdfc );_fbbg [2]=uint32 (_fbcd *_bdfc );if _egag =_cabcd .WriteSamples (_fbbg );_egag !=nil {return img ,_egag ;};};return _egbde (&_dbfa ),nil ;};func _abbg ()string {return _dbg .Version };
func (_fgeg *PdfReader )newPdfAnnotationPolygonFromDict (_bgaa *_eg .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_fddd :=PdfAnnotationPolygon {};_cgda ,_gfga :=_fgeg .newPdfAnnotationMarkupFromDict (_bgaa );if _gfga !=nil {return nil ,_gfga ;};
_fddd .PdfAnnotationMarkup =_cgda ;_fddd .Vertices =_bgaa .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_fddd .LE =_bgaa .Get ("\u004c\u0045");_fddd .BS =_bgaa .Get ("\u0042\u0053");_fddd .IC =_bgaa .Get ("\u0049\u0043");_fddd .BE =_bgaa .Get ("\u0042\u0045");
_fddd .IT =_bgaa .Get ("\u0049\u0054");_fddd .Measure =_bgaa .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_fddd ,nil ;};
// SetRotation sets the rotation of all pages added to writer. The rotation is
// specified in degrees and must be a multiple of 90.
// The Rotate field of individual pages has priority over the global rotation.
func (_bbeae *PdfWriter )SetRotation (rotate int64 )error {_efffa ,_gfbeg :=_eg .GetDict (_bbeae ._afbga );if !_gfbeg {return ErrTypeCheck ;};_efffa .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_eg .MakeInteger (rotate ));return nil ;};func (_acgdef *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _acgdef ._cdggc .GetCrypter ()!=nil &&!_acgdef ._cdggc .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_deefd :=_acgdef ._efdg ;_defg :=_deefd .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _defg ==nil {return nil ,nil ;};_dcffc ,_ :=_eg .GetIndirect (_defg );_defg =_eg .TraceToDirectObject (_defg );if _eg .IsNullObject (_defg ){_dbg .Log .Trace ("\u0041\u0063\u0072of\u006f\u0072\u006d\u0020\u0069\u0073\u0020\u0061\u0020n\u0075l\u006c \u006fb\u006a\u0065\u0063\u0074\u0020\u0028\u0065\u006d\u0070\u0074\u0079\u0029\u000a");
return nil ,nil ;};_bgca ,_ebdcc :=_eg .GetDict (_defg );if !_ebdcc {_dbg .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_defg );_dbg .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");
return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_defg );};_dbg .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");
_dbg .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0065\u0020\u0074\u0068\u0065\u0020\u0041\u0063r\u006ff\u006f\u0072\u006d\u0073\u0020\u0073\u0074\u0072\u0075\u0063\u0074\u0075\u0072\u0065");if !_acgdef ._bebe {_dcbd :=_acgdef .traverseObjectData (_bgca );
if _dcbd !=nil {_dbg .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0074\u0072a\u0076\u0065\u0072\u0073\u0065\u0020\u0041\u0063\u0072\u006fFo\u0072\u006d\u0073 \u0028%\u0073\u0029",_dcbd );
return nil ,_dcbd ;};};_fbadd ,_defa :=_acgdef .newPdfAcroFormFromDict (_dcffc ,_bgca );if _defa !=nil {return nil ,_defa ;};return _fbadd ,nil ;};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_aecfe *PdfColorspaceCalRGB )ToPdfObject ()_eg .PdfObject {_fbac :=&_eg .PdfObjectArray {};_fbac .Append (_eg .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_bcaf :=_eg .MakeDict ();if _aecfe .WhitePoint !=nil {_bfeg :=_eg .MakeArray (_eg .MakeFloat (_aecfe .WhitePoint [0]),_eg .MakeFloat (_aecfe .WhitePoint [1]),_eg .MakeFloat (_aecfe .WhitePoint [2]));
_bcaf .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_bfeg );}else {_dbg .Log .Error ("\u0043\u0061l\u0052\u0047\u0042\u003a \u004d\u0069s\u0073\u0069\u006e\u0067\u0020\u0057\u0068\u0069t\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0028\u0052\u0065\u0071\u0075i\u0072\u0065\u0064\u0029");
};if _aecfe .BlackPoint !=nil {_fdfc :=_eg .MakeArray (_eg .MakeFloat (_aecfe .BlackPoint [0]),_eg .MakeFloat (_aecfe .BlackPoint [1]),_eg .MakeFloat (_aecfe .BlackPoint [2]));_bcaf .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_fdfc );
};if _aecfe .Gamma !=nil {_eage :=_eg .MakeArray (_eg .MakeFloat (_aecfe .Gamma [0]),_eg .MakeFloat (_aecfe .Gamma [1]),_eg .MakeFloat (_aecfe .Gamma [2]));_bcaf .Set ("\u0047\u0061\u006dm\u0061",_eage );};if _aecfe .Matrix !=nil {_gbdb :=_eg .MakeArray (_eg .MakeFloat (_aecfe .Matrix [0]),_eg .MakeFloat (_aecfe .Matrix [1]),_eg .MakeFloat (_aecfe .Matrix [2]),_eg .MakeFloat (_aecfe .Matrix [3]),_eg .MakeFloat (_aecfe .Matrix [4]),_eg .MakeFloat (_aecfe .Matrix [5]),_eg .MakeFloat (_aecfe .Matrix [6]),_eg .MakeFloat (_aecfe .Matrix [7]),_eg .MakeFloat (_aecfe .Matrix [8]));
_bcaf .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gbdb );};_fbac .Append (_bcaf );if _aecfe ._gdef !=nil {_aecfe ._gdef .PdfObject =_fbac ;return _aecfe ._gdef ;};return _fbac ;};func (_bfd *PdfReader )newPdfAnnotationLineFromDict (_bda *_eg .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_cbaac :=PdfAnnotationLine {};
_dgae ,_cgec :=_bfd .newPdfAnnotationMarkupFromDict (_bda );if _cgec !=nil {return nil ,_cgec ;};_cbaac .PdfAnnotationMarkup =_dgae ;_cbaac .L =_bda .Get ("\u004c");_cbaac .BS =_bda .Get ("\u0042\u0053");_cbaac .LE =_bda .Get ("\u004c\u0045");_cbaac .IC =_bda .Get ("\u0049\u0043");
_cbaac .LL =_bda .Get ("\u004c\u004c");_cbaac .LLE =_bda .Get ("\u004c\u004c\u0045");_cbaac .Cap =_bda .Get ("\u0043\u0061\u0070");_cbaac .IT =_bda .Get ("\u0049\u0054");_cbaac .LLO =_bda .Get ("\u004c\u004c\u004f");_cbaac .CP =_bda .Get ("\u0043\u0050");
_cbaac .Measure =_bda .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");_cbaac .CO =_bda .Get ("\u0043\u004f");return &_cbaac ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_faag *PdfAnnotationSquiggly )ToPdfObject ()_eg .PdfObject {_faag .PdfAnnotation .ToPdfObject ();_deb :=_faag ._gag ;_cafc :=_deb .PdfObject .(*_eg .PdfObjectDictionary );_faag .PdfAnnotationMarkup .appendToPdfDictionary (_cafc );_cafc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));
_cafc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_faag .QuadPoints );return _deb ;};func (_fbe *PdfReader )newPdfActionImportDataFromDict (_cafg *_eg .PdfObjectDictionary )(*PdfActionImportData ,error ){_ebfg ,_gfad :=_gbbe (_cafg .Get ("\u0046"));
if _gfad !=nil {return nil ,_gfad ;};return &PdfActionImportData {F :_ebfg },nil ;};
// ToPdfObject implements interface PdfModel.
func (_bcf *PdfAnnotationMovie )ToPdfObject ()_eg .PdfObject {_bcf .PdfAnnotation .ToPdfObject ();_ffge :=_bcf ._gag ;_fdgb :=_ffge .PdfObject .(*_eg .PdfObjectDictionary );_fdgb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u004d\u006f\u0076i\u0065"));
_fdgb .SetIfNotNil ("\u0054",_bcf .T );_fdgb .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_bcf .Movie );_fdgb .SetIfNotNil ("\u0041",_bcf .A );return _ffge ;};
// ColorFromFloats returns a new PdfColorDevice based on the input slice of
// color components. The slice should contain four elements representing the
// cyan, magenta, yellow and key components of the color. The values of the
// elements should be between 0 and 1.
func (_bacf *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_abcf :=vals [0];if _abcf < 0.0||_abcf > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};_ffca :=vals [1];if _ffca < 0.0||_ffca > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aefb :=vals [2];if _aefb < 0.0||_aefb > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};_bee :=vals [3];if _bee < 0.0||_bee > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_baad :=NewPdfColorDeviceCMYK (_abcf ,_ffca ,_aefb ,_bee );return _baad ,nil ;};func (_dcf *PdfReader )newPdfActionSoundFromDict (_ecc *_eg .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_ecc .Get ("\u0053\u006f\u0075n\u0064"),Volume :_ecc .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_ecc .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_ecc .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_ecc .Get ("\u004d\u0069\u0078")},nil ;
};
// NewPdfActionJavaScript returns a new "javaScript" action.
func NewPdfActionJavaScript ()*PdfActionJavaScript {_ebe :=NewPdfAction ();_gee :=&PdfActionJavaScript {};_gee .PdfAction =_ebe ;_ebe .SetContext (_gee );return _gee ;};
// IsRadio returns true if the button field represents a radio button, false otherwise.
func (_gedb *PdfFieldButton )IsRadio ()bool {return _gedb .GetType ()==ButtonTypeRadio };
// NewPdfField returns an initialized PdfField.
func NewPdfField ()*PdfField {return &PdfField {_afbe :_eg .MakeIndirectObject (_eg .MakeDict ())}};
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
func (_cbaag *modelManager )GetPrimitiveFromModel (model PdfModel )_eg .PdfObject {_ffabe ,_bfebd :=_cbaag ._eegb [model ];if !_bfebd {return nil ;};return _ffabe ;};
// GetOutlinesFlattened returns a flattened list of tree nodes and titles.
// NOTE: for most use cases, it is recommended to use the high-level GetOutlines
// method instead, which also provides information regarding the destination
// of the outline items.
func (_fecad *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _bada []*PdfOutlineTreeNode ;var _aceea []string ;var _gbdd func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_gbdd =func (_cacbb *PdfOutlineTreeNode ,_ffdef *[]*PdfOutlineTreeNode ,_bbagf *[]string ,_adcdc int ){if _cacbb ==nil {return ;
};if _cacbb ._dbaeb ==nil {_dbg .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020M\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006e\u006fd\u0065\u002e\u0063o\u006et\u0065\u0078\u0074");return ;};_gagaa ,_egeae :=_cacbb ._dbaeb .(*PdfOutlineItem );if _egeae {*_ffdef =append (*_ffdef ,&_gagaa .PdfOutlineTreeNode );
_agcge :=_dc .Repeat ("\u0020",_adcdc *2)+_gagaa .Title .Decoded ();*_bbagf =append (*_bbagf ,_agcge );};if _cacbb .First !=nil {_gdedf :=_dc .Repeat ("\u0020",_adcdc *2)+"\u002b";*_bbagf =append (*_bbagf ,_gdedf );_gbdd (_cacbb .First ,_ffdef ,_bbagf ,_adcdc +1);
};if _egeae &&_gagaa .Next !=nil {_gbdd (_gagaa .Next ,_ffdef ,_bbagf ,_adcdc );};};_gbdd (_fecad ._ebgea ,&_bada ,&_aceea ,0);return _bada ,_aceea ,nil ;};func (_dcbfaa *Image )samplesAddPadding (_eafee []uint32 )[]uint32 {_bebae :=_ff .BytesPerLine (int (_dcbfaa .Width ),int (_dcbfaa .BitsPerComponent ),_dcbfaa .ColorComponents )*(8/int (_dcbfaa .BitsPerComponent ));
_gaae :=_bebae *int (_dcbfaa .Height );if len (_eafee )==_gaae {return _eafee ;};_eebgd :=make ([]uint32 ,_gaae );_fgcgd :=int (_dcbfaa .Width )*_dcbfaa .ColorComponents ;for _bfbb :=0;_bfbb < int (_dcbfaa .Height );_bfbb ++{_acgf :=_bfbb *int (_dcbfaa .Width );
_dgaa :=_bfbb *_bebae ;for _fdgca :=0;_fdgca < _fgcgd ;_fdgca ++{_eebgd [_dgaa +_fdgca ]=_eafee [_acgf +_fdgca ];};};return _eebgd ;};
// PdfWriter handles outputing PDF content.
type PdfWriter struct{_eeeg *_eg .PdfIndirectObject ;_afbga *_eg .PdfIndirectObject ;_eacbf map[_eg .PdfObject ]struct{};_aecabb []_eg .PdfObject ;_bccbf map[_eg .PdfObject ]struct{};_afcgff []*_eg .PdfIndirectObject ;_ebeg *PdfOutlineTreeNode ;_ebaaa *_eg .PdfObjectDictionary ;
_gcabd []_eg .PdfObject ;_ggca *_eg .PdfIndirectObject ;_fggeg *_g .Writer ;_agecc int64 ;_cfgdd error ;_ccag *_eg .PdfCrypt ;_fbdcc *_eg .PdfObjectDictionary ;_fbbfd *_eg .PdfIndirectObject ;_ecadc *_eg .PdfObjectArray ;_dacab int ;_ecae int ;_fdgeg *bool ;
_cfadb map[_eg .PdfObject ][]*_eg .PdfObjectDictionary ;_adcgf *PdfAcroForm ;_efdcf Optimizer ;_fadgbb map[int ]crossReference ;_dfgff int64 ;ObjNumOffset int ;_aaedc bool ;_adcdd _eg .XrefTable ;_fcebcb int64 ;_cdedc int64 ;_cacc map[_eg .PdfObject ]int64 ;
_aeceg map[_eg .PdfObject ]struct{};_fggebg string ;};
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
type PdfFilespec struct{Type _eg .PdfObject ;FS _eg .PdfObject ;F _eg .PdfObject ;UF _eg .PdfObject ;DOS _eg .PdfObject ;Mac _eg .PdfObject ;Unix _eg .PdfObject ;ID _eg .PdfObject ;V _eg .PdfObject ;EF _eg .PdfObject ;RF _eg .PdfObject ;Desc _eg .PdfObject ;
CI _eg .PdfObject ;_fceg _eg .PdfObject ;};
// PdfActionTrans represents a trans action.
type PdfActionTrans struct{*PdfAction ;Trans _eg .PdfObject ;};
// ToPdfObject returns a PDF object representation of the outline item.
func (_abadg *OutlineItem )ToPdfObject ()_eg .PdfObject {_gcdf ,_ :=_abadg .ToPdfOutlineItem ();return _gcdf .ToPdfObject ();};
// PdfFunctionType4 is a Postscript calculator functions.
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_ea .PSProgram ;_fdgac *_ea .PSExecutor ;_efgdd []byte ;_egdfb *_eg .PdfObjectStream ;};type pdfFontType3 struct{fontCommon ;_bbfae *_eg .PdfIndirectObject ;
// These fields are specific to Type 3 fonts.
CharProcs _eg .PdfObject ;Encoding _eg .PdfObject ;FontBBox _eg .PdfObject ;FontMatrix _eg .PdfObject ;FirstChar _eg .PdfObject ;LastChar _eg .PdfObject ;Widths _eg .PdfObject ;Resources _eg .PdfObject ;_cgcec map[_cec .CharCode ]float64 ;_daeg _cec .TextEncoder ;
};
// GetNamedDestinations returns the Names entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_daba *PdfReader )GetNamedDestinations ()(_eg .PdfObject ,error ){_gecbg :=_eg .ResolveReference (_daba ._efdg .Get ("\u004e\u0061\u006de\u0073"));if _gecbg ==nil {return nil ,nil ;};if !_daba ._bebe {_feagb :=_daba .traverseObjectData (_gecbg );
if _feagb !=nil {return nil ,_feagb ;};};return _gecbg ,nil ;};
// WriteToFile writes the output PDF to file.
func (_accf *PdfWriter )WriteToFile (outputFilePath string )error {_ebfe ,_acbcg :=_bg .Create (outputFilePath );if _acbcg !=nil {return _acbcg ;};defer _ebfe .Close ();return _accf .Write (_ebfe );};func _aceda (_dagdf *_eg .PdfObjectDictionary )(*PdfShadingPattern ,error ){_fege :=&PdfShadingPattern {};
_gggda :=_dagdf .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _gggda ==nil {_dbg .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_bgade ,_aaege :=_dcafge (_gggda );
if _aaege !=nil {_dbg .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_aaege );return nil ,_aaege ;};_fege .Shading =_bgade ;if _bbgd :=_dagdf .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
_bbgd !=nil {_cegfe ,_dfdbd :=_bbgd .(*_eg .PdfObjectArray );if !_dfdbd {_dbg .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_bbgd );return nil ,_eg .ErrTypeError ;
};_fege .Matrix =_cegfe ;};if _gedg :=_dagdf .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_gedg !=nil {_fege .ExtGState =_gedg ;};return _fege ,nil ;};
// R returns the value of the red component of the color.
func (_baded *PdfColorDeviceRGB )R ()float64 {return _baded [0]};
// PdfAnnotationText represents Text annotations.
// (Section 12.5.6.4 p. 402).
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _eg .PdfObject ;Name _eg .PdfObject ;State _eg .PdfObject ;StateModel _eg .PdfObject ;};
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_aggb :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_aggb ;};
// CustomKeys returns all custom info keys as list.
func (_gdfbc *PdfInfo )CustomKeys ()[]string {if _gdfbc ._fbfgb ==nil {return nil ;};_fdfab :=make ([]string ,len (_gdfbc ._fbfgb .Keys ()));for _ ,_ddbb :=range _gdfbc ._fbfgb .Keys (){_fdfab =append (_fdfab ,_ddbb .String ());};return _fdfab ;};
// NewLTV returns a new LTV client.
func NewLTV (appender *PdfAppender )(*LTV ,error ){_cgcdf :=appender .Reader .DSS ;if _cgcdf ==nil {_cgcdf =NewDSS ();};if _ggggg :=_cgcdf .generateHashMaps ();_ggggg !=nil {return nil ,_ggggg ;};return &LTV {CertClient :_cbf .NewCertClient (),OCSPClient :_cbf .NewOCSPClient (),CRLClient :_cbf .NewCRLClient (),SkipExisting :true ,_caadf :appender ,_fgada :_cgcdf },nil ;
};
// ToPdfObject implements interface PdfModel.
func (_dbfc *PdfActionImportData )ToPdfObject ()_eg .PdfObject {_dbfc .PdfAction .ToPdfObject ();_dca :=_dbfc ._ege ;_ebf :=_dca .PdfObject .(*_eg .PdfObjectDictionary );_ebf .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeImportData )));if _dbfc .F !=nil {_ebf .Set ("\u0046",_dbfc .F .ToPdfObject ());
};return _dca ;};
// ImageToRGB convert an indexed image to RGB.
func (_addgc *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_addgc .Base .GetNumComponents ();if N < 1{return Image {},_e .Errorf ("\u0062\u0061d \u0062\u0061\u0073e\u0020\u0063\u006f\u006cors\u0070ac\u0065\u0020\u004e\u0075\u006d\u0043\u006fmp\u006f\u006e\u0065\u006e\u0074\u0073\u003d%\u0064",N );
};_cfbbe :=_ff .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._fcec ,img ._aaeac );_bggf :=_ccg .NewReader (img .getBase ());_caaa :=_ccg .NewWriter (_cfbbe );var (_efbfcg uint32 ;_cgbf int ;_gfed error ;);for {_efbfcg ,_gfed =_bggf .ReadSample ();
if _gfed ==_de .EOF {break ;}else if _gfed !=nil {return img ,_gfed ;};_cgbf =int (_efbfcg );_dbg .Log .Trace ("\u0049\u006ed\u0065\u0078\u0065\u0064\u003a\u0020\u0069\u006e\u0064\u0065\u0078\u003d\u0025\u0064\u0020\u004e\u003d\u0025\u0064\u0020\u006c\u0075t=\u0025\u0064",_cgbf ,N ,len (_addgc ._dbcc ));
if (_cgbf +1)*N > len (_addgc ._dbcc ){_cgbf =len (_addgc ._dbcc )/N -1;_dbg .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_cgbf );if _cgbf < 0{_dbg .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0043a\u006e\u0027\u0074\u0020\u0063\u006c\u0069p\u0020\u0069\u006e\u0064\u0065\u0078.\u0020\u0049\u0073\u0020\u0050\u0044\u0046\u0020\u0066\u0069\u006ce\u0020\u0064\u0061\u006d\u0061\u0067\u0065\u0064\u003f");
break ;};};for _dcfa :=_cgbf *N ;_dcfa < (_cgbf +1)*N ;_dcfa ++{if _gfed =_caaa .WriteSample (uint32 (_addgc ._dbcc [_dcfa ]));_gfed !=nil {return img ,_gfed ;};};};return _addgc .Base .ImageToRGB (_egbde (&_cfbbe ));};
// Hasher is the interface that wraps the basic Write method.
type Hasher interface{Write (_edbda []byte )(_bedfe int ,_acedb error );};
// ToPdfObject implements interface PdfModel.
func (_aae *PdfActionSound )ToPdfObject ()_eg .PdfObject {_aae .PdfAction .ToPdfObject ();_gbb :=_aae ._ege ;_fcfb :=_gbb .PdfObject .(*_eg .PdfObjectDictionary );_fcfb .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeSound )));_fcfb .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_aae .Sound );
_fcfb .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_aae .Volume );_fcfb .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_aae .Synchronous );_fcfb .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_aae .Repeat );
_fcfb .SetIfNotNil ("\u004d\u0069\u0078",_aae .Mix );return _gbb ;};
// NewPdfWriter initializes a new PdfWriter.
func NewPdfWriter ()PdfWriter {_eeddeb :=PdfWriter {};_eeddeb ._bccbf =map[_eg .PdfObject ]struct{}{};_eeddeb ._aecabb =[]_eg .PdfObject {};_eeddeb ._cfadb =map[_eg .PdfObject ][]*_eg .PdfObjectDictionary {};_eeddeb ._aeceg =map[_eg .PdfObject ]struct{}{};
_eeddeb ._dacab =1;_eeddeb ._ecae =3;_aeddc :=_eg .MakeDict ();_aegcf :=[]struct{_ddeeea _eg .PdfObjectName ;_gdefd string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_cfabd ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_ddgae ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_edca ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_ebaad ()},{"\u0054\u0069\u0074l\u0065",_caefc ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_edgbb ()}};
for _ ,_abdb :=range _aegcf {if _abdb ._gdefd !=""{_aeddc .Set (_abdb ._ddeeea ,_eg .MakeString (_abdb ._gdefd ));};};if _gbeag :=_gdbee ();!_gbeag .IsZero (){if _gacfb ,_bcafd :=NewPdfDateFromTime (_gbeag );_bcafd ==nil {_aeddc .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_gacfb .ToPdfObject ());
};};if _eagbf :=_gagda ();!_eagbf .IsZero (){if _fecacc ,_fbedc :=NewPdfDateFromTime (_eagbf );_fbedc ==nil {_aeddc .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_fecacc .ToPdfObject ());};};_bgceb :=_eg .PdfIndirectObject {};_bgceb .PdfObject =_aeddc ;
_eeddeb ._ggca =&_bgceb ;_eeddeb .addObject (&_bgceb );_gbae :=_eg .PdfIndirectObject {};_fccf :=_eg .MakeDict ();_fccf .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_gbae .PdfObject =_fccf ;_eeddeb ._eeeg =&_gbae ;
_eeddeb .addObject (_eeddeb ._eeeg );_cbcc ,_aeccb :=_fccgd ("\u0077");if _aeccb !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aeccb );};_eeddeb ._fggebg =_cbcc ;_cfgbc :=_eg .PdfIndirectObject {};_cadb :=_eg .MakeDict ();_cadb .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0050\u0061\u0067e\u0073"));
_cedca :=_eg .PdfObjectArray {};_cadb .Set ("\u004b\u0069\u0064\u0073",&_cedca );_cadb .Set ("\u0043\u006f\u0075n\u0074",_eg .MakeInteger (0));_cfgbc .PdfObject =_cadb ;_eeddeb ._afbga =&_cfgbc ;_eeddeb ._eacbf =map[_eg .PdfObject ]struct{}{};_eeddeb .addObject (_eeddeb ._afbga );
_fccf .Set ("\u0050\u0061\u0067e\u0073",&_cfgbc );_eeddeb ._ebaaa =_fccf ;_dbg .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_gbae );return _eeddeb ;};
// PdfColorspaceDeviceGray represents a grayscale colorspace.
type PdfColorspaceDeviceGray struct{};
// ConvertToBinary converts current image into binary (bi-level) format.
// Binary images are composed of single bits per pixel (only black or white).
// If provided image has more color components, then it would be converted into binary image using
// histogram auto threshold function.
func (_ddccf *Image )ConvertToBinary ()error {if _ddccf .ColorComponents ==1&&_ddccf .BitsPerComponent ==1{return nil ;};_adaba ,_bfcfc :=_ddccf .ToGoImage ();if _bfcfc !=nil {return _bfcfc ;};_agaf ,_bfcfc :=_ff .MonochromeConverter .Convert (_adaba );
if _bfcfc !=nil {return _bfcfc ;};_ddccf .Data =_agaf .Base ().Data ;_ddccf ._fcec ,_bfcfc =_ff .ScaleAlphaToMonochrome (_ddccf ._fcec ,int (_ddccf .Width ),int (_ddccf .Height ));if _bfcfc !=nil {return _bfcfc ;};_ddccf .BitsPerComponent =1;_ddccf .ColorComponents =1;
_ddccf ._aaeac =nil ;return nil ;};
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
// DeviceRGB CS.
func (_ffdc *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_dcdc :=_ccg .NewReader (img .getBase ());_agec :=_ff .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_ffdc .AlternateSpace .GetNumComponents (),nil ,img ._fcec ,nil );
_fabcc :=_ccg .NewWriter (_agec );_gdgd :=_bc .Pow (2,float64 (img .BitsPerComponent ))-1;_dbg .Log .Trace ("\u0053\u0065\u0070a\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0073\u0070\u0061\u0063\u0065\u0020\u002d\u003e\u0020\u0054\u006f\u0052\u0047\u0042\u0020\u0063o\u006e\u0076\u0065\u0072\u0073\u0069\u006f\u006e");
_dbg .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_ffdc .TintTransform );_cacee :=_ffdc .AlternateSpace .DecodeArray ();var (_fbbb uint32 ;_cadf error ;);for {_fbbb ,_cadf =_dcdc .ReadSample ();
if _cadf ==_de .EOF {break ;};if _cadf !=nil {return img ,_cadf ;};_bddc :=float64 (_fbbb )/_gdgd ;_dbaad ,_acdb :=_ffdc .TintTransform .Evaluate ([]float64 {_bddc });if _acdb !=nil {return img ,_acdb ;};for _bgdff ,_dddb :=range _dbaad {_gdca :=_ff .LinearInterpolate (_dddb ,_cacee [_bgdff *2],_cacee [_bgdff *2+1],0,1);
if _acdb =_fabcc .WriteSample (uint32 (_gdca *_gdgd ));_acdb !=nil {return img ,_acdb ;};};};return _ffdc .AlternateSpace .ImageToRGB (_egbde (&_agec ));};
// NewPdfOutline returns an initialized PdfOutline.
func NewPdfOutline ()*PdfOutline {_cdgc :=&PdfOutline {_ffbba :_eg .MakeIndirectObject (_eg .MakeDict ())};_cdgc ._dbaeb =_cdgc ;return _cdgc ;};
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
func (_fbged *PdfPage )GetPageAsIndirectObject ()*_eg .PdfIndirectObject {return _fbged ._caaef };
// Items returns all children outline items.
func (_fdgggb *Outline )Items ()[]*OutlineItem {return _fdgggb .Entries };
// GetPage returns the PdfPage model for the specified page number.
func (_fagca *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _fagca ._cdggc .GetCrypter ()!=nil &&!_fagca ._cdggc .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};if len (_fagca ._dfff )< pageNumber {return nil ,_bbd .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020\u0028\u0070\u0061\u0067\u0065\u0020\u0063\u006f\u0075\u006e\u0074\u0020\u0074o\u006f\u0020\u0073\u0068\u006f\u0072\u0074\u0029");
};_aecce :=pageNumber -1;if _aecce < 0{return nil ,_e .Errorf ("\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065r\u0069\u006e\u0067\u0020\u006d\u0075\u0073t\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0061\u0074\u0020\u0031");};_dgecfd :=_fagca .PageList [_aecce ];
return _dgecfd ,nil ;};
// NewStandard14Font returns the standard 14 font named `basefont` as a *PdfFont, or an error if it
// `basefont` is not one of the standard 14 font names.
func NewStandard14Font (basefont StdFontName )(*PdfFont ,error ){_cgbgg ,_abed :=_aefad (basefont );if _abed !=nil {return nil ,_abed ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_cgbgg ._gccbc =_cec .NewWinAnsiEncoder ();};return &PdfFont {_gdcab :&_cgbgg },nil ;
};
// ToPdfObject implements interface PdfModel.
func (_gefaa *PdfAnnotationScreen )ToPdfObject ()_eg .PdfObject {_gefaa .PdfAnnotation .ToPdfObject ();_dcbg :=_gefaa ._gag ;_ddcc :=_dcbg .PdfObject .(*_eg .PdfObjectDictionary );_ddcc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));
_ddcc .SetIfNotNil ("\u0054",_gefaa .T );_ddcc .SetIfNotNil ("\u004d\u004b",_gefaa .MK );_ddcc .SetIfNotNil ("\u0041",_gefaa .A );_ddcc .SetIfNotNil ("\u0041\u0041",_gefaa .AA );return _dcbg ;};
// ColorToRGB converts a ICCBased color to an RGB color.
func (_dgac *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _dgac .Alternate ==nil {_dbg .Log .Debug ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
if _dgac .N ==1{_dbg .Log .Debug ("\u0049\u0043\u0043\u0020\u0042a\u0073\u0065\u0064\u0020\u0063o\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061\u006c\u0074\u0065r\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006e\u0067\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061y\u0020\u0028\u004e\u003d\u0031\u0029");
_bgabc :=NewPdfColorspaceDeviceGray ();return _bgabc .ColorToRGB (color );}else if _dgac .N ==3{_dbg .Log .Debug ("\u0049\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067 \u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006eg\u0020\u0044\u0065\u0076\u0069\u0063e\u0052\u0047B\u0020\u0028N\u003d3\u0029");
return color ,nil ;}else if _dgac .N ==4{_dbg .Log .Debug ("\u0049\u0043\u0043\u0020\u0042a\u0073\u0065\u0064\u0020\u0063o\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061\u006c\u0074\u0065r\u006e\u0061\u0074\u0069\u0076\u0065\u0020\u002d\u0020\u0075\u0073\u0069\u006e\u0067\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059K\u0020\u0028\u004e\u003d\u0034\u0029");
_fabeb :=NewPdfColorspaceDeviceCMYK ();return _fabeb .ColorToRGB (color );}else {return nil ,_bbd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
};};_dbg .Log .Trace ("\u0049\u0043\u0043 \u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0077\u0069\u0074\u0068\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061t\u0069\u0076\u0065\u003a\u0020\u0025\u0023\u0076",_dgac );
return _dgac .Alternate .ColorToRGB (color );};
// DecodeArray returns the range of color component values in CalRGB colorspace.
func (_adgee *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// Encrypt encrypts the output file with a specified user/owner password.
func (_ebebb *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_debgd :=RC4_128bit ;if options !=nil {_debgd =options .Algorithm ;};_dabaa :=_fc .PermOwner ;if options !=nil {_dabaa =options .Permissions ;};var _ceafd _cf .Filter ;
switch _debgd {case RC4_128bit :_ceafd =_cf .NewFilterV2 (16);case AES_128bit :_ceafd =_cf .NewFilterAESV2 ();case AES_256bit :_ceafd =_cf .NewFilterAESV3 ();default:return _e .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );
};_gfgea ,_aeabd ,_caff :=_eg .PdfCryptNewEncrypt (_ceafd ,userPass ,ownerPass ,_dabaa );if _caff !=nil {return _caff ;};_ebebb ._ccag =_gfgea ;if _aeabd .Major !=0{_ebebb .SetVersion (_aeabd .Major ,_aeabd .Minor );};_ebebb ._fbdcc =_aeabd .Encrypt ;_ebebb ._ecadc =_eg .MakeArray (_eg .MakeHexString (_aeabd .ID0 ),_eg .MakeHexString (_aeabd .ID1 ));
_abfge :=_eg .MakeIndirectObject (_aeabd .Encrypt );_ebebb ._fbbfd =_abfge ;_ebebb .addObject (_abfge );return nil ;};func (_gccf *LTV )getOCSPs (_fdcf []*_ce .Certificate ,_fgdf map[string ]*_ce .Certificate )([][]byte ,error ){_bffcf :=make ([][]byte ,0,len (_fdcf ));
for _ ,_fbfdb :=range _fdcf {for _ ,_dgffa :=range _fbfdb .OCSPServer {if _gccf .CertClient .IsCA (_fbfdb ){continue ;};_aafa ,_ddcbc :=_fgdf [_fbfdb .Issuer .CommonName ];if !_ddcbc {_dbg .Log .Debug ("\u0057\u0041\u0052\u004e:\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067 \u004f\u0043\u0053\u0050\u0020\u0072\u0065\u0071\u0075\u0065\u0073\u0074\u003a\u0020\u0069\u0073\u0073\u0075e\u0072\u0020\u0063\u0065\u0072t\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");
continue ;};_ ,_ccffb ,_egdae :=_gccf .OCSPClient .MakeRequest (_dgffa ,_fbfdb ,_aafa );if _egdae !=nil {_dbg .Log .Debug ("\u0057\u0041\u0052\u004e:\u0020\u004f\u0043\u0053\u0050\u0020\u0072\u0065\u0071\u0075e\u0073t\u0020\u0065\u0072\u0072\u006f\u0072\u003a \u0025\u0076",_egdae );
continue ;};_bffcf =append (_bffcf ,_ccffb );};};return _bffcf ,nil ;};func _gaggd (_gdaed *_eg .PdfObjectDictionary )(*PdfShadingType7 ,error ){_fcfgd :=PdfShadingType7 {};_cfgfe :=_gdaed .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
if _cfgfe ==nil {_dbg .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064 \u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065\u0072C\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065");
return nil ,ErrRequiredAttributeMissing ;};_ecebae ,_cbaeg :=_cfgfe .(*_eg .PdfObjectInteger );if !_cbaeg {_dbg .Log .Debug ("\u0042\u0069\u0074\u0073\u0050e\u0072\u0043\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_cfgfe );
return nil ,_eg .ErrTypeError ;};_fcfgd .BitsPerCoordinate =_ecebae ;_cfgfe =_gdaed .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _cfgfe ==nil {_dbg .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064\u0020a\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073in\u0067\u003a\u0020B\u0069\u0074s\u0050\u0065\u0072\u0043\u006f\u006dp\u006f\u006ee\u006e\u0074");
return nil ,ErrRequiredAttributeMissing ;};_ecebae ,_cbaeg =_cfgfe .(*_eg .PdfObjectInteger );if !_cbaeg {_dbg .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065r \u0028\u0067\u006ft\u0020%\u0054\u0029",_cfgfe );
return nil ,_eg .ErrTypeError ;};_fcfgd .BitsPerComponent =_ecebae ;_cfgfe =_gdaed .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _cfgfe ==nil {_dbg .Log .Debug ("\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065r\u0046\u006c\u0061\u0067");
return nil ,ErrRequiredAttributeMissing ;};_ecebae ,_cbaeg =_cfgfe .(*_eg .PdfObjectInteger );if !_cbaeg {_dbg .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072F\u006c\u0061\u0067\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074e\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025T\u0029",_cfgfe );
return nil ,_eg .ErrTypeError ;};_fcfgd .BitsPerComponent =_ecebae ;_cfgfe =_gdaed .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _cfgfe ==nil {_dbg .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0044\u0065\u0063\u006f\u0064\u0065");
return nil ,ErrRequiredAttributeMissing ;};_efgda ,_cbaeg :=_cfgfe .(*_eg .PdfObjectArray );if !_cbaeg {_dbg .Log .Debug ("\u0044\u0065\u0063\u006fd\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_cfgfe );
return nil ,_eg .ErrTypeError ;};_fcfgd .Decode =_efgda ;if _bcbgg :=_gdaed .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_bcbgg !=nil {_fcfgd .Function =[]PdfFunction {};if _eccfc ,_dgbfc :=_bcbgg .(*_eg .PdfObjectArray );_dgbfc {for _ ,_bagd :=range _eccfc .Elements (){_dgfgd ,_cffa :=_dgbga (_bagd );
if _cffa !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_cffa );return nil ,_cffa ;};_fcfgd .Function =append (_fcfgd .Function ,_dgfgd );
};}else {_cfeab ,_dbgaa :=_dgbga (_bcbgg );if _dbgaa !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_dbgaa );return nil ,_dbgaa ;
};_fcfgd .Function =append (_fcfgd .Function ,_cfeab );};};return &_fcfgd ,nil ;};func (_dbde *PdfReader )newPdfAnnotationTextFromDict (_fbf *_eg .PdfObjectDictionary )(*PdfAnnotationText ,error ){_bddg :=PdfAnnotationText {};_bcbe ,_acfg :=_dbde .newPdfAnnotationMarkupFromDict (_fbf );
if _acfg !=nil {return nil ,_acfg ;};_bddg .PdfAnnotationMarkup =_bcbe ;_bddg .Open =_fbf .Get ("\u004f\u0070\u0065\u006e");_bddg .Name =_fbf .Get ("\u004e\u0061\u006d\u0065");_bddg .State =_fbf .Get ("\u0053\u0074\u0061t\u0065");_bddg .StateModel =_fbf .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");
return &_bddg ,nil ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain three PdfObjectFloat elements representing
// the A, B and C components of the color.
func (_gaac *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eeggf ,_deag :=_eg .GetNumbersAsFloat (objects );
if _deag !=nil {return nil ,_deag ;};return _gaac .ColorFromFloats (_eeggf );};func (_cbbeg *PdfWriter )copyObjects (){_fdbfa :=make (map[_eg .PdfObject ]_eg .PdfObject );_bdgac :=make ([]_eg .PdfObject ,0,len (_cbbeg ._aecabb ));_ebeag :=make (map[_eg .PdfObject ]struct{},len (_cbbeg ._aecabb ));
_badd :=make (map[_eg .PdfObject ]struct{});for _ ,_adaae :=range _cbbeg ._aecabb {_gfggf :=_cbbeg .copyObject (_adaae ,_fdbfa ,_badd ,false );if _ ,_facc :=_badd [_adaae ];_facc {continue ;};_bdgac =append (_bdgac ,_gfggf );_ebeag [_gfggf ]=struct{}{};
};_cbbeg ._aecabb =_bdgac ;_cbbeg ._bccbf =_ebeag ;_cbbeg ._ggca =_cbbeg .copyObject (_cbbeg ._ggca ,_fdbfa ,nil ,false ).(*_eg .PdfIndirectObject );_cbbeg ._eeeg =_cbbeg .copyObject (_cbbeg ._eeeg ,_fdbfa ,nil ,false ).(*_eg .PdfIndirectObject );if _cbbeg ._fbbfd !=nil {_cbbeg ._fbbfd =_cbbeg .copyObject (_cbbeg ._fbbfd ,_fdbfa ,nil ,false ).(*_eg .PdfIndirectObject );
};if _cbbeg ._aaedc {_eeca :=make (map[_eg .PdfObject ]int64 );for _bbdfef ,_cfbgf :=range _cbbeg ._cacc {if _acdeg ,_begca :=_fdbfa [_bbdfef ];_begca {_eeca [_acdeg ]=_cfbgf ;}else {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020a\u0070\u0070\u0065n\u0064\u0020\u006d\u006fd\u0065\u0020\u002d\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0063\u006f\u0070\u0079\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0020\u006d\u0061\u0070");
};};_cbbeg ._cacc =_eeca ;};};
// NewPdfActionNamed returns a new "named" action.
func NewPdfActionNamed ()*PdfActionNamed {_ecd :=NewPdfAction ();_fcf :=&PdfActionNamed {};_fcf .PdfAction =_ecd ;_ecd .SetContext (_fcf );return _fcf ;};
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
type PdfActionType string ;func (_fedee *DSS )addCRLs (_eaag [][]byte )([]*_eg .PdfObjectStream ,error ){return _fedee .add (&_fedee .CRLs ,_fedee ._fgbdb ,_eaag );};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_agffa *PdfShadingType7 )ToPdfObject ()_eg .PdfObject {_agffa .PdfShading .ToPdfObject ();_gdge ,_dcea :=_agffa .getShadingDict ();if _dcea !=nil {_dbg .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
return nil ;};if _agffa .BitsPerCoordinate !=nil {_gdge .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_agffa .BitsPerCoordinate );};if _agffa .BitsPerComponent !=nil {_gdge .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_agffa .BitsPerComponent );
};if _agffa .BitsPerFlag !=nil {_gdge .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_agffa .BitsPerFlag );};if _agffa .Decode !=nil {_gdge .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_agffa .Decode );};if _agffa .Function !=nil {if len (_agffa .Function )==1{_gdge .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_agffa .Function [0].ToPdfObject ());
}else {_bfdcd :=_eg .MakeArray ();for _ ,_ddada :=range _agffa .Function {_bfdcd .Append (_ddada .ToPdfObject ());};_gdge .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bfdcd );};};return _agffa ._beag ;};func (_gagc *PdfFilespec )getDict ()*_eg .PdfObjectDictionary {if _eddee ,_aafcg :=_gagc ._fceg .(*_eg .PdfIndirectObject );
_aafcg {_cgfcb ,_gbcd :=_eddee .PdfObject .(*_eg .PdfObjectDictionary );if !_gbcd {return nil ;};return _cgfcb ;}else if _bdde ,_bgac :=_gagc ._fceg .(*_eg .PdfObjectDictionary );_bgac {return _bdde ;}else {_dbg .Log .Debug ("\u0054\u0072\u0079\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020F\u0069\u006c\u0065\u0073\u0070\u0065\u0063\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u006f\u0062\u006a\u0065\u0063\u0074 \u0074\u0079p\u0065\u0020(\u0025T\u0029",_gagc ._fceg );
return nil ;};};
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
func (_gbeea DefaultImageHandler )NewGrayImageFromGoImage (goimg _ec .Image )(*Image ,error ){_edgag :=goimg .Bounds ();_gcfcd :=&Image {Width :int64 (_edgag .Dx ()),Height :int64 (_edgag .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _fdab :=goimg .(type ){case *_ec .Gray :if len (_fdab .Pix )!=_edgag .Dx ()*_edgag .Dy (){_cecga ,_dfaaf :=_ff .GrayConverter .Convert (goimg );
if _dfaaf !=nil {return nil ,_dfaaf ;};_gcfcd .Data =_cecga .Pix ();}else {_gcfcd .Data =_fdab .Pix ;};case *_ec .Gray16 :_gcfcd .BitsPerComponent =16;if len (_fdab .Pix )!=_edgag .Dx ()*_edgag .Dy ()*2{_gbbedg ,_ggfed :=_ff .Gray16Converter .Convert (goimg );
if _ggfed !=nil {return nil ,_ggfed ;};_gcfcd .Data =_gbbedg .Pix ();}else {_gcfcd .Data =_fdab .Pix ;};case _ff .Image :_acea :=_fdab .Base ();if _acea .ColorComponents ==1{_gcfcd .BitsPerComponent =int64 (_acea .BitsPerComponent );_gcfcd .Data =_acea .Data ;
return _gcfcd ,nil ;};_bddad ,_adcd :=_ff .GrayConverter .Convert (goimg );if _adcd !=nil {return nil ,_adcd ;};_gcfcd .Data =_bddad .Pix ();default:_aede ,_feggd :=_ff .GrayConverter .Convert (goimg );if _feggd !=nil {return nil ,_feggd ;};_gcfcd .Data =_aede .Pix ();
};return _gcfcd ,nil ;};
// GetTrailer returns the PDF's trailer dictionary.
func (_bgbca *PdfReader )GetTrailer ()(*_eg .PdfObjectDictionary ,error ){_dfgea :=_bgbca ._cdggc .GetTrailer ();if _dfgea ==nil {return nil ,_bbd .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _dfgea ,nil ;
};
// GetCharMetrics returns the char metrics for character code `code`.
func (_bceda pdfFontType0 )GetCharMetrics (code _cec .CharCode )(_ab .CharMetrics ,bool ){if _bceda .DescendantFont ==nil {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0064\u0065\u0073\u0063\u0065\u006e\u0064\u0061\u006e\u0074\u002e\u0020\u0066\u006f\u006et=\u0025\u0073",_bceda );
return _ab .CharMetrics {},false ;};return _bceda .DescendantFont .GetCharMetrics (code );};
// NewPdfActionURI returns a new "Uri" action.
func NewPdfActionURI ()*PdfActionURI {_dgb :=NewPdfAction ();_ggd :=&PdfActionURI {};_ggd .PdfAction =_dgb ;_dgb .SetContext (_ggd );return _ggd ;};
// ToPdfObject implements interface PdfModel.
func (_cac *PdfActionJavaScript )ToPdfObject ()_eg .PdfObject {_cac .PdfAction .ToPdfObject ();_cbdc :=_cac ._ege ;_dga :=_cbdc .PdfObject .(*_eg .PdfObjectDictionary );_dga .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeJavaScript )));_dga .SetIfNotNil ("\u004a\u0053",_cac .JS );
return _cbdc ;};func (_gfb *PdfReader )newPdfActionSetOCGStateFromDict (_gca *_eg .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_gca .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_gca .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;
};
// DetermineColorspaceNameFromPdfObject determines PDF colorspace from a PdfObject. Returns the colorspace name and
// an error on failure. If the colorspace was not found, will return an empty string.
func DetermineColorspaceNameFromPdfObject (obj _eg .PdfObject )(_eg .PdfObjectName ,error ){var _abge *_eg .PdfObjectName ;var _gdgb *_eg .PdfObjectArray ;if _gbced ,_acag :=obj .(*_eg .PdfIndirectObject );_acag {if _cbcbe ,_egfd :=_gbced .PdfObject .(*_eg .PdfObjectArray );
_egfd {_gdgb =_cbcbe ;}else if _eaaa ,_fcd :=_gbced .PdfObject .(*_eg .PdfObjectName );_fcd {_abge =_eaaa ;};}else if _ecdf ,_fdad :=obj .(*_eg .PdfObjectArray );_fdad {_gdgb =_ecdf ;}else if _agc ,_ggbfa :=obj .(*_eg .PdfObjectName );_ggbfa {_abge =_agc ;
};if _abge !=nil {switch *_abge {case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079","\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B","\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":return *_abge ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_abge ,nil ;
};};if _gdgb !=nil &&_gdgb .Len ()> 0{if _gdcd ,_gdgfb :=_gdgb .Get (0).(*_eg .PdfObjectName );_gdgfb {switch *_gdcd {case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079","\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B","\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _gdgb .Len ()==1{return *_gdcd ,nil ;
};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_gdcd ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_gdcd ,nil ;
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_gdcd ,nil ;};};};return "",nil ;};
// AcroFormNeedsRepair returns true if the document contains widget annotations
// linked to fields which are not referenced in the AcroForm. The AcroForm can
// be repaired using the RepairAcroForm method of the reader.
func (_bcgae *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _cecdg []*PdfField ;if _bcgae .AcroForm !=nil {_cecdg =_bcgae .AcroForm .AllFields ();};_cdde :=make (map[*PdfField ]struct{},len (_cecdg ));for _ ,_gfeb :=range _cecdg {_cdde [_gfeb ]=struct{}{};
};for _ ,_gadefg :=range _bcgae .PageList {_gdfeg ,_aadc :=_gadefg .GetAnnotations ();if _aadc !=nil {return false ,_aadc ;};for _ ,_bcbea :=range _gdfeg {_egbdb ,_eaebd :=_bcbea .GetContext ().(*PdfAnnotationWidget );if !_eaebd {continue ;};_ccgbd :=_egbdb .Field ();
if _ccgbd ==nil {return true ,nil ;};if _ ,_gaaca :=_cdde [_ccgbd ];!_gaaca {return true ,nil ;};};};return false ,nil ;};
// GetContainingPdfObject returns the container of the DSS (indirect object).
func (_ddefe *DSS )GetContainingPdfObject ()_eg .PdfObject {return _ddefe ._gded };
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
func (_gggd FieldFlag )Has (fl FieldFlag )bool {return (_gggd .Mask ()&fl .Mask ())> 0};
// ToGoImage converts the unidoc Image to a golang Image structure.
func (_fdedbb *Image )ToGoImage ()(_ec .Image ,error ){_dbg .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_adeg ,_efefb :=_ff .NewImage (int (_fdedbb .Width ),int (_fdedbb .Height ),int (_fdedbb .BitsPerComponent ),_fdedbb .ColorComponents ,_fdedbb .Data ,_fdedbb ._fcec ,_fdedbb ._aaeac );
if _efefb !=nil {return nil ,_efefb ;};return _adeg ,nil ;};func _adecc (_ecba *_eg .PdfObjectStream )(*PdfFunctionType0 ,error ){_gccg :=&PdfFunctionType0 {};_gccg ._bafa =_ecba ;_gadcb :=_ecba .PdfObjectDictionary ;_ffcfee ,_eaeec :=_eg .TraceToDirectObject (_gadcb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eg .PdfObjectArray );
if !_eaeec {_dbg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bbd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};if _ffcfee .Len ()< 0||_ffcfee .Len ()%2!=0{_dbg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_bbd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
};_gccg .NumInputs =_ffcfee .Len ()/2;_afgbb ,_agceg :=_ffcfee .ToFloat64Array ();if _agceg !=nil {return nil ,_agceg ;};_gccg .Domain =_afgbb ;_ffcfee ,_eaeec =_eg .TraceToDirectObject (_gadcb .Get ("\u0052\u0061\u006eg\u0065")).(*_eg .PdfObjectArray );
if !_eaeec {_dbg .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");return nil ,_bbd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};if _ffcfee .Len ()< 0||_ffcfee .Len ()%2!=0{return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_gccg .NumOutputs =_ffcfee .Len ()/2;_eecbbe ,_agceg :=_ffcfee .ToFloat64Array ();if _agceg !=nil {return nil ,_agceg ;
};_gccg .Range =_eecbbe ;_ffcfee ,_eaeec =_eg .TraceToDirectObject (_gadcb .Get ("\u0053\u0069\u007a\u0065")).(*_eg .PdfObjectArray );if !_eaeec {_dbg .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");
return nil ,_bbd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};_abgge ,_agceg :=_ffcfee .ToIntegerArray ();
if _agceg !=nil {return nil ,_agceg ;};if len (_abgge )!=_gccg .NumInputs {_dbg .Log .Error ("T\u0061\u0062\u006c\u0065\u0020\u0073\u0069\u007a\u0065\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063h\u0069\u006e\u0067\u0020\u006e\u0075\u006d\u0062\u0065\u0072 o\u0066\u0020\u0069n\u0070u\u0074\u0073");
return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gccg .Size =_abgge ;_dbabg ,_eaeec :=_eg .TraceToDirectObject (_gadcb .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_eg .PdfObjectInteger );
if !_eaeec {_dbg .Log .Error ("B\u0069\u0074\u0073\u0050\u0065\u0072S\u0061\u006d\u0070\u006c\u0065\u0020\u006e\u006f\u0074 \u0073\u0070\u0065c\u0069f\u0069\u0065\u0064");return nil ,_bbd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};if *_dbabg !=1&&*_dbabg !=2&&*_dbabg !=4&&*_dbabg !=8&&*_dbabg !=12&&*_dbabg !=16&&*_dbabg !=24&&*_dbabg !=32{_dbg .Log .Error ("\u0042\u0069\u0074s \u0070\u0065\u0072\u0020\u0073\u0061\u006d\u0070\u006ce\u0020o\u0075t\u0073i\u0064\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0028\u0025\u0064\u0029",*_dbabg );
return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gccg .BitsPerSample =int (*_dbabg );_gccg .Order =1;_dgad ,_eaeec :=_eg .TraceToDirectObject (_gadcb .Get ("\u004f\u0072\u0064e\u0072")).(*_eg .PdfObjectInteger );
if _eaeec {if *_dgad !=1&&*_dgad !=3{_dbg .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_dgad );return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gccg .Order =int (*_dgad );
};_ffcfee ,_eaeec =_eg .TraceToDirectObject (_gadcb .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_eg .PdfObjectArray );if _eaeec {_fgcdb ,_gcce :=_ffcfee .ToFloat64Array ();if _gcce !=nil {return nil ,_gcce ;};_gccg .Encode =_fgcdb ;};_ffcfee ,_eaeec =_eg .TraceToDirectObject (_gadcb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_eg .PdfObjectArray );
if _eaeec {_cdgb ,_egea :=_ffcfee .ToFloat64Array ();if _egea !=nil {return nil ,_egea ;};_gccg .Decode =_cdgb ;};_becfc ,_agceg :=_eg .DecodeStream (_ecba );if _agceg !=nil {return nil ,_agceg ;};_gccg ._ebad =_becfc ;return _gccg ,nil ;};
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
// or indirectly within an indirect object container.
func (_fccb *PdfColorspaceDeviceNAttributes )ToPdfObject ()_eg .PdfObject {_ebge :=_eg .MakeDict ();if _fccb .Subtype !=nil {_ebge .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fccb .Subtype );};_ebge .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_fccb .Colorants );
_ebge .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_fccb .Process );_ebge .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_fccb .MixingHints );if _fccb ._bcca !=nil {_fccb ._bcca .PdfObject =_ebge ;return _fccb ._bcca ;
};return _ebge ;};func (_gegd *DSS )generateHashMaps ()error {_bgdba ,_eaafb :=_gegd .generateHashMap (_gegd .Certs );if _eaafb !=nil {return _eaafb ;};_aecg ,_eaafb :=_gegd .generateHashMap (_gegd .OCSPs );if _eaafb !=nil {return _eaafb ;};_baac ,_eaafb :=_gegd .generateHashMap (_gegd .CRLs );
if _eaafb !=nil {return _eaafb ;};_gegd ._gaad =_bgdba ;_gegd ._geeeb =_aecg ;_gegd ._fgbdb =_baac ;return nil ;};
// GetAlphabet returns a map of the runes in `text` and their frequencies.
func GetAlphabet (text string )map[rune ]int {_bdgc :=map[rune ]int {};for _ ,_fdege :=range text {_bdgc [_fdege ]++;};return _bdgc ;};
// CharcodesToUnicode converts the character codes `charcodes` to a slice of runes.
// How it works:
// 1) Use the ToUnicode CMap if there is one.
// 2) Use the underlying font's encoding.
func (_gbfce *PdfFont )CharcodesToUnicode (charcodes []_cec .CharCode )[]rune {_dfcf ,_ ,_ :=_gbfce .CharcodesToUnicodeWithStats (charcodes );return _dfcf ;};
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
// based on the current instance.
func (_deadg *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_fafeb :=NewPdfOutlineItem ();_fafeb .Title =_eg .MakeEncodedString (_deadg .Title ,true );_fafeb .Dest =_deadg .Dest .ToPdfObject ();var _bgede []*PdfOutlineItem ;var _fgfcd int64 ;
var _cfcbf *PdfOutlineItem ;for _ ,_gdfab :=range _deadg .Entries {_fgcfc ,_gdgdf :=_gdfab .ToPdfOutlineItem ();_fgcfc .Parent =&_fafeb .PdfOutlineTreeNode ;if _cfcbf !=nil {_cfcbf .Next =&_fgcfc .PdfOutlineTreeNode ;_fgcfc .Prev =&_cfcbf .PdfOutlineTreeNode ;
};_bgede =append (_bgede ,_fgcfc );_fgfcd +=_gdgdf ;_cfcbf =_fgcfc ;};_ebff :=len (_bgede );_fgfcd +=int64 (_ebff );if _ebff > 0{_fafeb .First =&_bgede [0].PdfOutlineTreeNode ;_fafeb .Last =&_bgede [_ebff -1].PdfOutlineTreeNode ;_fafeb .Count =&_fgfcd ;
};return _fafeb ,_fgfcd ;};
// NewPdfAnnotationPolyLine returns a new polyline annotation.
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_aaca :=NewPdfAnnotation ();_cgg :=&PdfAnnotationPolyLine {};_cgg .PdfAnnotation =_aaca ;_cgg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aaca .SetContext (_cgg );return _cgg ;};func (_ffgfe *PdfPattern )getDict ()*_eg .PdfObjectDictionary {if _bggdb ,_dbcfd :=_ffgfe ._cfaag .(*_eg .PdfIndirectObject );
_dbcfd {_dacdf ,_gfbcaf :=_bggdb .PdfObject .(*_eg .PdfObjectDictionary );if !_gfbcaf {return nil ;};return _dacdf ;}else if _gabeb ,_dfgaf :=_ffgfe ._cfaag .(*_eg .PdfObjectStream );_dfgaf {return _gabeb .PdfObjectDictionary ;}else {_dbg .Log .Debug ("\u0054r\u0079\u0069\u006e\u0067\u0020\u0074\u006f a\u0063\u0063\u0065\u0073\u0073\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e\u0020d\u0069\u0063t\u0069\u006f\u006ea\u0072\u0079\u0020\u006f\u0066\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062j\u0065\u0063t \u0074\u0079\u0070e\u0020\u0028\u0025\u0054\u0029",_ffgfe ._cfaag );
return nil ;};};func _ebaad ()string {_egbeg .Lock ();defer _egbeg .Unlock ();return _gfcae };
// GetContainingPdfObject implements interface PdfModel.
func (_edda *PdfFilespec )GetContainingPdfObject ()_eg .PdfObject {return _edda ._fceg };
// SetImage updates XObject Image with new image data.
func (_ddggf *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_ddggf .Filter .UpdateParams (img .GetParamsDict ());_ccadg ,_bbadcb :=_ddggf .Filter .EncodeBytes (img .Data );if _bbadcb !=nil {return _bbadcb ;};_ddggf .Stream =_ccadg ;_cbbde :=img .Width ;
_ddggf .Width =&_cbbde ;_caaae :=img .Height ;_ddggf .Height =&_caaae ;_cegea :=img .BitsPerComponent ;_ddggf .BitsPerComponent =&_cegea ;if cs ==nil {if img .ColorComponents ==1{_ddggf .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_ddggf .ColorSpace =NewPdfColorspaceDeviceRGB ();
}else if img .ColorComponents ==4{_ddggf .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _bbd .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_ddggf .ColorSpace =cs ;};return nil ;
};
// SetBorderWidth sets the style's border width.
func (_dcac *PdfBorderStyle )SetBorderWidth (width float64 ){_dcac .W =&width };
// ToPdfObject implements interface PdfModel.
func (_ded *PdfAnnotation3D )ToPdfObject ()_eg .PdfObject {_ded .PdfAnnotation .ToPdfObject ();_efde :=_ded ._gag ;_edf :=_efde .PdfObject .(*_eg .PdfObjectDictionary );_edf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0033\u0044"));
_edf .SetIfNotNil ("\u0033\u0044\u0044",_ded .T3DD );_edf .SetIfNotNil ("\u0033\u0044\u0056",_ded .T3DV );_edf .SetIfNotNil ("\u0033\u0044\u0041",_ded .T3DA );_edf .SetIfNotNil ("\u0033\u0044\u0049",_ded .T3DI );_edf .SetIfNotNil ("\u0033\u0044\u0042",_ded .T3DB );
return _efde ;};func (_dbgef *PdfReader )newPdfAnnotationUnderlineFromDict (_fdaf *_eg .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_gccb :=PdfAnnotationUnderline {};_eafa ,_bdag :=_dbgef .newPdfAnnotationMarkupFromDict (_fdaf );if _bdag !=nil {return nil ,_bdag ;
};_gccb .PdfAnnotationMarkup =_eafa ;_gccb .QuadPoints =_fdaf .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_gccb ,nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_edaga *PdfShadingType3 )ToPdfObject ()_eg .PdfObject {_edaga .PdfShading .ToPdfObject ();_gegg ,_fcagcd :=_edaga .getShadingDict ();if _fcagcd !=nil {_dbg .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
return nil ;};if _edaga .Coords !=nil {_gegg .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_edaga .Coords );};if _edaga .Domain !=nil {_gegg .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_edaga .Domain );};if _edaga .Function !=nil {if len (_edaga .Function )==1{_gegg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_edaga .Function [0].ToPdfObject ());
}else {_cdbc :=_eg .MakeArray ();for _ ,_ggfag :=range _edaga .Function {_cdbc .Append (_ggfag .ToPdfObject ());};_gegg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cdbc );};};if _edaga .Extend !=nil {_gegg .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_edaga .Extend );
};return _edaga ._beag ;};
// ToPdfObject implements interface PdfModel.
func (_aef *PdfActionGoToE )ToPdfObject ()_eg .PdfObject {_aef .PdfAction .ToPdfObject ();_gad :=_aef ._ege ;_fg :=_gad .PdfObject .(*_eg .PdfObjectDictionary );_fg .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeGoToE )));if _aef .F !=nil {_fg .Set ("\u0046",_aef .F .ToPdfObject ());
};_fg .SetIfNotNil ("\u0044",_aef .D );_fg .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_aef .NewWindow );_fg .SetIfNotNil ("\u0054",_aef .T );return _gad ;};func _eced (_dadd []byte )(_bcac ,_dedbf string ,_bedgg error ){_dbg .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_dadd ));
_ebaef :=_bgffe .FindIndex (_dadd );if _ebaef ==nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0067\u0065\u0074\u0041\u0053\u0043\u0049\u0049\u0053\u0065\u0063\u0074\u0069o\u006e\u0073\u002e\u0020\u004e\u006f\u0020d\u0069\u0063\u0074\u002e");
return "","",_eg .ErrTypeError ;};_eaae :=_ebaef [1];_ddegb :=_dc .Index (string (_dadd [_eaae :]),_bdga );if _ddegb < 0{_bcac =string (_dadd [_eaae :]);return _bcac ,"",nil ;};_deeg :=_eaae +_ddegb ;_bcac =string (_dadd [_eaae :_deeg ]);_effcg :=_deeg ;
_ddegb =_dc .Index (string (_dadd [_effcg :]),_ccdf );if _ddegb < 0{_dbg .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0067e\u0074\u0041\u0053\u0043\u0049\u0049\u0053e\u0063\u0074\u0069\u006f\u006e\u0073\u002e\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_bedgg );
return "","",_eg .ErrTypeError ;};_fabeg :=_effcg +_ddegb ;_dedbf =string (_dadd [_effcg :_fabeg ]);return _bcac ,_dedbf ,nil ;};
// NewPdfActionSetOCGState returns a new "named" action.
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_adc :=NewPdfAction ();_ba :=&PdfActionSetOCGState {};_ba .PdfAction =_adc ;_adc .SetContext (_ba );return _ba ;};
// FlattenFieldsWithOpts flattens the AcroForm fields of the reader using the
// provided field appearance generator and the specified options. If no options
// are specified, all form fields are flattened.
// If a filter function is provided using the opts parameter, only the filtered
// fields are flattened. Otherwise, all form fields are flattened.
// At the end of the process, the AcroForm contains all the fields which were
// not flattened. If all fields are flattened, the reader's AcroForm field
// is set to nil.
func (_dffg *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _dffg .flattenFieldsWithOpts (false ,appgen ,opts );};func (_adba *PdfReader )newPdfAnnotationProjectionFromDict (_bcg *_eg .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_ebb :=&PdfAnnotationProjection {};
_gcac ,_fdg :=_adba .newPdfAnnotationMarkupFromDict (_bcg );if _fdg !=nil {return nil ,_fdg ;};_ebb .PdfAnnotationMarkup =_gcac ;return _ebb ,nil ;};func (_gedbd *PdfReader )newPdfPageFromDict (_ccccg *_eg .PdfObjectDictionary )(*PdfPage ,error ){_efecbe :=NewPdfPage ();
_efecbe ._ecbba =_ccccg ;_bfead :=*_ccccg ;_gcg ,_afcge :=_bfead .Get ("\u0054\u0079\u0070\u0065").(*_eg .PdfObjectName );if !_afcge {return nil ,_bbd .New ("\u006d\u0069ss\u0069\u006e\u0067/\u0069\u006e\u0076\u0061lid\u0020Pa\u0067\u0065\u0020\u0064\u0069\u0063\u0074io\u006e\u0061\u0072\u0079\u0020\u0054\u0079p\u0065");
};if *_gcg !="\u0050\u0061\u0067\u0065"{return nil ,_bbd .New ("\u0070\u0061\u0067\u0065 \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079 \u0054y\u0070\u0065\u0020\u0021\u003d\u0020\u0050a\u0067\u0065");};if _bcfee :=_bfead .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");
_bcfee !=nil {_efecbe .Parent =_bcfee ;};if _egggf :=_bfead .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_egggf !=nil {_cfbfe ,_ggff :=_eg .GetString (_egggf );if !_ggff {return nil ,_bbd .New ("\u0070\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u004c\u0061\u0073\u0074\u004d\u006f\u0064\u0069f\u0069\u0065\u0064\u0020\u0021=\u0020\u0073t\u0072\u0069\u006e\u0067");
};_egced ,_addfe :=NewPdfDate (_cfbfe .Str ());if _addfe !=nil {return nil ,_addfe ;};_efecbe .LastModified =&_egced ;};if _ccfec :=_bfead .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_ccfec !=nil &&!_eg .IsNullObject (_ccfec ){_dcbcf ,_ebdbe :=_eg .GetDict (_ccfec );
if !_ebdbe {return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_ccfec );};var _bbedc error ;_efecbe .Resources ,_bbedc =NewPdfPageResourcesFromDict (_dcbcf );
if _bbedc !=nil {return nil ,_bbedc ;};}else {_dfbbb ,_dddge :=_efecbe .getParentResources ();if _dddge !=nil {return nil ,_dddge ;};if _dfbbb ==nil {_dfbbb =NewPdfPageResources ();};_efecbe .Resources =_dfbbb ;};if _cgcea :=_bfead .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");
_cgcea !=nil {_gedbf ,_fccde :=_eg .GetArray (_cgcea );if !_fccde {return nil ,_bbd .New ("\u0070\u0061\u0067\u0065\u0020\u004d\u0065\u0064\u0069\u0061\u0042o\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079");};var _bbcgd error ;
_efecbe .MediaBox ,_bbcgd =NewPdfRectangle (*_gedbf );if _bbcgd !=nil {return nil ,_bbcgd ;};};if _febg :=_bfead .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_febg !=nil {_daceg ,_gabdd :=_eg .GetArray (_febg );if !_gabdd {return nil ,_bbd .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
};var _dgfdf error ;_efecbe .CropBox ,_dgfdf =NewPdfRectangle (*_daceg );if _dgfdf !=nil {return nil ,_dgfdf ;};};if _gbgfb :=_bfead .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_gbgfb !=nil {_gbgeba ,_egcaa :=_eg .GetArray (_gbgfb );if !_egcaa {return nil ,_bbd .New ("\u0070\u0061\u0067\u0065\u0020\u0042\u006c\u0065\u0065\u0064\u0042o\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079");
};var _fbee error ;_efecbe .BleedBox ,_fbee =NewPdfRectangle (*_gbgeba );if _fbee !=nil {return nil ,_fbee ;};};if _eabge :=_bfead .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_eabge !=nil {_gdafe ,_afdf :=_eg .GetArray (_eabge );if !_afdf {return nil ,_bbd .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
};var _bdegb error ;_efecbe .TrimBox ,_bdegb =NewPdfRectangle (*_gdafe );if _bdegb !=nil {return nil ,_bdegb ;};};if _gdeeb :=_bfead .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_gdeeb !=nil {_fgacb ,_feccf :=_eg .GetArray (_gdeeb );if !_feccf {return nil ,_bbd .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
};var _agbcg error ;_efecbe .ArtBox ,_agbcg =NewPdfRectangle (*_fgacb );if _agbcg !=nil {return nil ,_agbcg ;};};if _fddbd :=_bfead .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_fddbd !=nil {_efecbe .BoxColorInfo =_fddbd ;
};if _dbee :=_bfead .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_dbee !=nil {_efecbe .Contents =_dbee ;};if _cfeed :=_bfead .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_cfeed !=nil {_bgdbc ,_agdbb :=_eg .GetInt (_cfeed );if !_agdbb {return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0067e\u0020\u0052\u006f\u0074\u0061\u0074\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");
};_dcfe :=int64 (*_bgdbc );_efecbe .Rotate =&_dcfe ;};if _dgafe :=_bfead .Get ("\u0047\u0072\u006fu\u0070");_dgafe !=nil {_efecbe .Group =_dgafe ;};if _eeed :=_bfead .Get ("\u0054\u0068\u0075m\u0062");_eeed !=nil {_efecbe .Thumb =_eeed ;};if _ccbge :=_bfead .Get ("\u0042");
_ccbge !=nil {_efecbe .B =_ccbge ;};if _ccfgg :=_bfead .Get ("\u0044\u0075\u0072");_ccfgg !=nil {_efecbe .Dur =_ccfgg ;};if _fafa :=_bfead .Get ("\u0054\u0072\u0061n\u0073");_fafa !=nil {_efecbe .Trans =_fafa ;};if _gdcfe :=_bfead .Get ("\u0041\u0041");
_gdcfe !=nil {_efecbe .AA =_gdcfe ;};if _gcde :=_bfead .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_gcde !=nil {_efecbe .Metadata =_gcde ;};if _fgcgf :=_bfead .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_fgcgf !=nil {_efecbe .PieceInfo =_fgcgf ;
};if _gabe :=_bfead .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_gabe !=nil {_efecbe .StructParents =_gabe ;};if _bedgb :=_bfead .Get ("\u0049\u0044");_bedgb !=nil {_efecbe .ID =_bedgb ;};if _fdfac :=_bfead .Get ("\u0050\u005a");
_fdfac !=nil {_efecbe .PZ =_fdfac ;};if _egede :=_bfead .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");_egede !=nil {_efecbe .SeparationInfo =_egede ;};if _babg :=_bfead .Get ("\u0054\u0061\u0062\u0073");_babg !=nil {_efecbe .Tabs =_babg ;
};if _dabe :=_bfead .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");_dabe !=nil {_efecbe .TemplateInstantiated =_dabe ;};if _adadd :=_bfead .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_adadd !=nil {_efecbe .PresSteps =_adadd ;
};if _adaee :=_bfead .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_adaee !=nil {_efecbe .UserUnit =_adaee ;};if _baadb :=_bfead .Get ("\u0056\u0050");_baadb !=nil {_efecbe .VP =_baadb ;};if _addd :=_bfead .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");
_addd !=nil {_efecbe .Annots =_addd ;};_efecbe ._fdfdec =_gedbd ;return _efecbe ,nil ;};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";
);
// ToPdfObject implements interface PdfModel.
func (_gaef *PdfAnnotationLink )ToPdfObject ()_eg .PdfObject {_gaef .PdfAnnotation .ToPdfObject ();_fedcf :=_gaef ._gag ;_dae :=_fedcf .PdfObject .(*_eg .PdfObjectDictionary );_dae .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u004c\u0069\u006e\u006b"));
if _gaef ._cecf !=nil &&_gaef ._cecf ._cea !=nil {_dae .Set ("\u0041",_gaef ._cecf ._cea .ToPdfObject ());}else if _gaef .A !=nil {_dae .Set ("\u0041",_gaef .A );};_dae .SetIfNotNil ("\u0044\u0065\u0073\u0074",_gaef .Dest );_dae .SetIfNotNil ("\u0048",_gaef .H );
_dae .SetIfNotNil ("\u0050\u0041",_gaef .PA );_dae .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gaef .QuadPoints );_dae .SetIfNotNil ("\u0042\u0053",_gaef .BS );return _fedcf ;};
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
func (_eddge *PdfPageResources )HasColorspaceByName (keyName _eg .PdfObjectName )bool {_bbfb ,_efbg :=_eddge .GetColorspaces ();if _efbg !=nil {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0072\u0061\u0063\u0065: \u0025\u0076",_efbg );
return false ;};if _bbfb ==nil {return false ;};_ ,_cfac :=_bbfb .Colorspaces [string (keyName )];return _cfac ;};func _dgace (_gdae *_eg .PdfObjectDictionary )bool {for _ ,_fddca :=range _gdae .Keys (){if _ ,_fgfc :=_dfee [_fddca .String ()];_fgfc {return true ;
};};return false ;};
// ToPdfObject implements interface PdfModel.
func (_cce *PdfAnnotationPrinterMark )ToPdfObject ()_eg .PdfObject {_cce .PdfAnnotation .ToPdfObject ();_acb :=_cce ._gag ;_ggaf :=_acb .PdfObject .(*_eg .PdfObjectDictionary );_ggaf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));
_ggaf .SetIfNotNil ("\u004d\u004e",_cce .MN );return _acb ;};func _fccgd (_egbdd string )(string ,error ){var _cdefg _cbd .Buffer ;_cdefg .WriteString (_egbdd );_fdgfg :=make ([]byte ,8+16);_bcgbf :=_ee .Now ().UTC ().UnixNano ();_gg .BigEndian .PutUint64 (_fdgfg ,uint64 (_bcgbf ));
_ ,_abfce :=_bb .Read (_fdgfg [8:]);if _abfce !=nil {return "",_abfce ;};_cdefg .WriteString (_c .EncodeToString (_fdgfg ));return _cdefg .String (),nil ;};
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
func (_baca *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dbab ,_ffcec :=_eg .GetNumbersAsFloat (objects );
if _ffcec !=nil {return nil ,_ffcec ;};return _baca .ColorFromFloats (_dbab );};
// ToPdfObject returns the PDF representation of the function.
func (_dfga *PdfFunctionType3 )ToPdfObject ()_eg .PdfObject {_dbabe :=_eg .MakeDict ();_dbabe .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eg .MakeInteger (3));_fagga :=&_eg .PdfObjectArray {};for _ ,_faba :=range _dfga .Domain {_fagga .Append (_eg .MakeFloat (_faba ));
};_dbabe .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_fagga );if _dfga .Range !=nil {_efdd :=&_eg .PdfObjectArray {};for _ ,_bafdca :=range _dfga .Range {_efdd .Append (_eg .MakeFloat (_bafdca ));};_dbabe .Set ("\u0052\u0061\u006eg\u0065",_efdd );};if _dfga .Functions !=nil {_bdddf :=&_eg .PdfObjectArray {};
for _ ,_fbbea :=range _dfga .Functions {_bdddf .Append (_fbbea .ToPdfObject ());};_dbabe .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_bdddf );};if _dfga .Bounds !=nil {_bcbgf :=&_eg .PdfObjectArray {};for _ ,_eegad :=range _dfga .Bounds {_bcbgf .Append (_eg .MakeFloat (_eegad ));
};_dbabe .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_bcbgf );};if _dfga .Encode !=nil {_feag :=&_eg .PdfObjectArray {};for _ ,_eddef :=range _dfga .Encode {_feag .Append (_eg .MakeFloat (_eddef ));};_dbabe .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_feag );
};if _dfga ._gfddd !=nil {_dfga ._gfddd .PdfObject =_dbabe ;return _dfga ._gfddd ;};return _dbabe ;};
// HasFontByName checks whether a font is defined by the specified keyName.
func (_faefae *PdfPageResources )HasFontByName (keyName _eg .PdfObjectName )bool {_ ,_bffbc :=_faefae .GetFontByName (keyName );return _bffbc ;};func (_dgfae *LTV )getCRLs (_bcgcc []*_ce .Certificate )([][]byte ,error ){_dead :=make ([][]byte ,0,len (_bcgcc ));
for _ ,_babfg :=range _bcgcc {for _ ,_geafc :=range _babfg .CRLDistributionPoints {if _dgfae .CertClient .IsCA (_babfg ){continue ;};_faedf ,_ffde :=_dgfae .CRLClient .MakeRequest (_geafc ,_babfg );if _ffde !=nil {_dbg .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0043R\u004c\u0020\u0072\u0065\u0071\u0075\u0065\u0073\u0074 \u0065\u0072\u0072o\u0072:\u0020\u0025\u0076",_ffde );
continue ;};_dead =append (_dead ,_faedf );};};return _dead ,nil ;};
// GetContentStream returns the pattern cell's content stream
func (_abgggc *PdfTilingPattern )GetContentStream ()([]byte ,error ){_feega ,_ ,_gaeee :=_abgggc .GetContentStreamWithEncoder ();return _feega ,_gaeee ;};
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
func (_acage *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _acage ._defdf .(*PdfTilingPattern );};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_caca *PdfShadingType6 )ToPdfObject ()_eg .PdfObject {_caca .PdfShading .ToPdfObject ();_gdbb ,_bgeb :=_caca .getShadingDict ();if _bgeb !=nil {_dbg .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
return nil ;};if _caca .BitsPerCoordinate !=nil {_gdbb .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_caca .BitsPerCoordinate );};if _caca .BitsPerComponent !=nil {_gdbb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_caca .BitsPerComponent );
};if _caca .BitsPerFlag !=nil {_gdbb .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_caca .BitsPerFlag );};if _caca .Decode !=nil {_gdbb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_caca .Decode );};if _caca .Function !=nil {if len (_caca .Function )==1{_gdbb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_caca .Function [0].ToPdfObject ());
}else {_cbfg :=_eg .MakeArray ();for _ ,_aabac :=range _caca .Function {_cbfg .Append (_aabac .ToPdfObject ());};_gdbb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cbfg );};};return _caca ._beag ;};
// GetCharMetrics returns the character metrics for the specified character code. A bool flag is
// returned to indicate whether or not the entry was found in the glyph to charcode mapping.
// How it works:
// 1) Return a value the /Widths array (charWidths) if there is one.
// 2) If the font has the same name as a standard 14 font then return width=250.
// 3) Otherwise return no match and let the caller substitute a default.
func (_aedbc pdfFontSimple )GetCharMetrics (code _cec .CharCode )(_ab .CharMetrics ,bool ){if _faac ,_ddfcc :=_aedbc ._baga [code ];_ddfcc {return _ab .CharMetrics {Wx :_faac },true ;};if _ab .IsStdFont (_ab .StdFontName (_aedbc ._cfab )){return _ab .CharMetrics {Wx :250},true ;
};return _ab .CharMetrics {},false ;};
// ColorToRGB converts a DeviceN color to an RGB color.
func (_gdfgg *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _gdfgg .AlternateSpace ==nil {return nil ,_bbd .New ("\u0044\u0065\u0076\u0069\u0063\u0065N\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0065\u0020\u0073\u0070a\u0063\u0065\u0020\u0075\u006e\u0064\u0065f\u0069\u006e\u0065\u0064");
};return _gdfgg .AlternateSpace .ColorToRGB (color );};
// NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object).
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_edeaf :_eg .MakeIndirectObject (_eg .MakeDict ())};};func (_gbbb *LTV )enable (_bgbc ,_faaa []*_ce .Certificate ,_gdde string )error {_dgddg ,_bbgae ,_fbaed :=_gbbb .buildCertChain (_bgbc ,_faaa );
if _fbaed !=nil {return _fbaed ;};_fefac ,_fbaed :=_gbbb .getCerts (_dgddg );if _fbaed !=nil {return _fbaed ;};_eafg ,_fbaed :=_gbbb .getOCSPs (_dgddg ,_bbgae );if _fbaed !=nil {return _fbaed ;};_baagf ,_fbaed :=_gbbb .getCRLs (_dgddg );if _fbaed !=nil {return _fbaed ;
};_ccbg :=_gbbb ._fgada ;_dceg ,_fbaed :=_ccbg .addCerts (_fefac );if _fbaed !=nil {return _fbaed ;};_fcdeg ,_fbaed :=_ccbg .addOCSPs (_eafg );if _fbaed !=nil {return _fbaed ;};_bdage ,_fbaed :=_ccbg .addCRLs (_baagf );if _fbaed !=nil {return _fbaed ;};
if _gdde !=""{_ccbg .VRI [_gdde ]=&VRI {Cert :_dceg ,OCSP :_fcdeg ,CRL :_bdage };};_gbbb ._caadf .SetDSS (_ccbg );return nil ;};func (_adeb PdfFont )actualFont ()pdfFont {if _adeb ._gdcab ==nil {_dbg .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0061\u0063\u0074\u0075\u0061\u006c\u0046\u006f\u006e\u0074\u002e\u0020\u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c.\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_adeb );
};return _adeb ._gdcab ;};
// ColorFromFloats returns a new PdfColor based on input color components.
func (_geaf *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_geaf .GetNumComponents (){return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gaf ,_dgdb :=_geaf .TintTransform .Evaluate (vals );
if _dgdb !=nil {return nil ,_dgdb ;};_cfda ,_dgdb :=_geaf .AlternateSpace .ColorFromFloats (_gaf );if _dgdb !=nil {return nil ,_dgdb ;};return _cfda ,nil ;};
// ColorFromPdfObjects loads the color from PDF objects.
// The first objects (if present) represent the color in underlying colorspace. The last one represents
// the name of the pattern.
func (_adfe *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_bbd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020o\u0066 \u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072\u0073");
};_caedd :=&PdfColorPattern {};_dfad ,_bdab :=objects [len (objects )-1].(*_eg .PdfObjectName );if !_bdab {_dbg .Log .Debug ("\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020a\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",objects [len (objects )-1]);
return nil ,ErrTypeCheck ;};_caedd .PatternName =*_dfad ;if len (objects )> 1{_bgbfe :=objects [0:len (objects )-1];if _adfe .UnderlyingCS ==nil {_dbg .Log .Debug ("P\u0061\u0074t\u0065\u0072\u006e\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0077\u0069\u0074\u0068\u0020\u0064\u0065\u0066\u0069\u006ee\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0063\u006f\u006d\u0070\u006f\u006e\u0065\u006et\u0073\u0020\u0062\u0075\u0074\u0020\u0075\u006e\u0064\u0065\u0072\u006c\u0079i\u006e\u0067\u0020\u0063\u0073\u0020\u006d\u0069\u0073\u0073\u0069n\u0067");
return nil ,_bbd .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_fdfe ,_fbdcb :=_adfe .UnderlyingCS .ColorFromPdfObjects (_bgbfe );if _fbdcb !=nil {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0055n\u0061\u0062\u006c\u0065\u0020t\u006f\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0076\u0069\u0061\u0020\u0075\u006e\u0064\u0065\u0072\u006c\u0079\u0069\u006e\u0067\u0020\u0063\u0073\u003a\u0020\u0025\u0076",_fbdcb );
return nil ,_fbdcb ;};_caedd .Color =_fdfe ;};return _caedd ,nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_ceecg *PdfColorspaceDeviceGray )ToPdfObject ()_eg .PdfObject {return _eg .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};type pdfCIDFontType2 struct{fontCommon ;_ddfb *_eg .PdfIndirectObject ;_befc _cec .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// Dictionary that defines the character collection of the CIDFont (required).
// See Table 116.
CIDSystemInfo *_eg .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _eg .PdfObject ;W _eg .PdfObject ;DW2 _eg .PdfObject ;W2 _eg .PdfObject ;
// CIDs to glyph indices mapping (optional).
CIDToGIDMap _eg .PdfObject ;_egdc map[_cec .CharCode ]float64 ;_cbgd float64 ;_dgefb map[rune ]int ;};func _faadf (_aacdc *PdfPage ){_aefbc :=_dd .GetLicenseKey ();if _aefbc !=nil &&_aefbc .IsLicensed (){return ;};_gagea :=_eg .PdfObjectName ("\u0055\u0046\u0031");
if !_aacdc .Resources .HasFontByName (_gagea ){_aacdc .Resources .SetFontByName (_gagea ,DefaultFont ().ToPdfObject ());};var _cfffa []string ;_cfffa =append (_cfffa ,"\u0071");_cfffa =append (_cfffa ,"\u0042\u0054");_cfffa =append (_cfffa ,_e .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_gagea .String ()));
_cfffa =append (_cfffa ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");_cfffa =append (_cfffa ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_cffag :="\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064\u0020\u0055\u006e\u0069\u0044o\u0063\u0020\u002d\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u006c\u0069\u0063e\u006e\u0073\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070\u0073:/\u002f\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f";
_cfffa =append (_cfffa ,_e .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_cffag ));_cfffa =append (_cfffa ,"\u0045\u0054");_cfffa =append (_cfffa ,"\u0051");_fgdfa :=_dc .Join (_cfffa ,"\u000a");_aacdc .AddContentStreamByString (_fgdfa );_aacdc .ToPdfObject ();
};func (_aga *PdfReader )newPdfAnnotationCircleFromDict (_adf *_eg .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_bccb :=PdfAnnotationCircle {};_bbdb ,_eaa :=_aga .newPdfAnnotationMarkupFromDict (_adf );if _eaa !=nil {return nil ,_eaa ;};_bccb .PdfAnnotationMarkup =_bbdb ;
_bccb .BS =_adf .Get ("\u0042\u0053");_bccb .IC =_adf .Get ("\u0049\u0043");_bccb .BE =_adf .Get ("\u0042\u0045");_bccb .RD =_adf .Get ("\u0052\u0044");return &_bccb ,nil ;};
// PdfColorspaceDeviceN represents a DeviceN color space. DeviceN color spaces are similar to Separation color
// spaces, except they can contain an arbitrary number of color components.
//
// Format: [/DeviceN names alternateSpace tintTransform]
// or: [/DeviceN names alternateSpace tintTransform attributes]
type PdfColorspaceDeviceN struct{ColorantNames *_eg .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_cedg *_eg .PdfIndirectObject ;};
// SetForms sets the Acroform for a PDF file.
func (_bbcc *PdfWriter )SetForms (form *PdfAcroForm )error {_bbcc ._adcgf =form ;return nil };
// SetContext sets the sub action (context).
func (_geb *PdfAction )SetContext (ctx PdfModel ){_geb ._cea =ctx };
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
func (_fegbgc *PdfPageResources )GetColorspaceByName (keyName _eg .PdfObjectName )(PdfColorspace ,bool ){_cbbabg ,_gdffe :=_fegbgc .GetColorspaces ();if _gdffe !=nil {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0072\u0061\u0063\u0065: \u0025\u0076",_gdffe );
return nil ,false ;};if _cbbabg ==nil {return nil ,false ;};_dfgafb ,_edabc :=_cbbabg .Colorspaces [string (keyName )];if !_edabc {return nil ,false ;};return _dfgafb ,true ;};
// Resample resamples the image data converting from current BitsPerComponent to a target BitsPerComponent
// value. Sets the image's BitsPerComponent to the target value following resampling.
//
// For example, converting an 8-bit RGB image to 1-bit grayscale (common for scanned images):
// // Convert RGB image to grayscale.
// rgbColorSpace := pdf.NewPdfColorspaceDeviceRGB()
// grayImage, err := rgbColorSpace.ImageToGray(rgbImage)
// if err != nil {
// return err
// }
// // Resample as 1 bit.
// grayImage.Resample(1)
func (_bdbb *Image )Resample (targetBitsPerComponent int64 ){if _bdbb .BitsPerComponent ==targetBitsPerComponent {return ;};_gagbf :=_bdbb .GetSamples ();if targetBitsPerComponent < _bdbb .BitsPerComponent {_fgegc :=_bdbb .BitsPerComponent -targetBitsPerComponent ;
for _cecaf :=range _gagbf {_gagbf [_cecaf ]>>=uint (_fgegc );};}else if targetBitsPerComponent > _bdbb .BitsPerComponent {_bfafa :=targetBitsPerComponent -_bdbb .BitsPerComponent ;for _bdbag :=range _gagbf {_gagbf [_bdbag ]<<=uint (_bfafa );};};_bdbb .BitsPerComponent =targetBitsPerComponent ;
if _bdbb .BitsPerComponent < 8{_bdbb .resampleLowBits (_gagbf );return ;};_fcefc :=_ff .BytesPerLine (int (_bdbb .Width ),int (_bdbb .BitsPerComponent ),_bdbb .ColorComponents );_aacd :=make ([]byte ,_fcefc *int (_bdbb .Height ));var (_efag ,_baee ,_cdfde ,_agge int ;
_cgfd uint32 ;);for _cdfde =0;_cdfde < int (_bdbb .Height );_cdfde ++{_efag =_cdfde *_fcefc ;_baee =(_cdfde +1)*_fcefc -1;_feebd :=_ccg .ResampleUint32 (_gagbf [_efag :_baee ],int (targetBitsPerComponent ),8);for _agge ,_cgfd =range _feebd {_aacd [_agge +_efag ]=byte (_cgfd );
};};_bdbb .Data =_aacd ;};
// FieldFilterFunc represents a PDF field filtering function. If the function
// returns true, the PDF field is kept, otherwise it is discarded.
type FieldFilterFunc func (*PdfField )bool ;
// IsTerminal returns true for terminal fields, false otherwise.
// Terminal fields are fields whose descendants are only widget annotations.
func (_gfbf *PdfField )IsTerminal ()bool {return len (_gfbf .Kids )==0};
// UpdatePage updates the `page` in the new revision if it has changed.
func (_cacb *PdfAppender )UpdatePage (page *PdfPage ){_cacb .updateObjectsDeep (page .ToPdfObject (),nil )};func (_agfa *PdfReader )newPdfAnnotationPolyLineFromDict (_dcgf *_eg .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_ecdd :=PdfAnnotationPolyLine {};
_dada ,_dece :=_agfa .newPdfAnnotationMarkupFromDict (_dcgf );if _dece !=nil {return nil ,_dece ;};_ecdd .PdfAnnotationMarkup =_dada ;_ecdd .Vertices =_dcgf .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_ecdd .LE =_dcgf .Get ("\u004c\u0045");
_ecdd .BS =_dcgf .Get ("\u0042\u0053");_ecdd .IC =_dcgf .Get ("\u0049\u0043");_ecdd .BE =_dcgf .Get ("\u0042\u0045");_ecdd .IT =_dcgf .Get ("\u0049\u0054");_ecdd .Measure =_dcgf .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_ecdd ,nil ;};
// ReaderToWriterOpts options used to generate a PdfWriter.
type ReaderToWriterOpts struct{SkipAcroForm bool ;SkipInfo bool ;SkipNamedDests bool ;SkipOCProperties bool ;SkipOutlines bool ;SkipPageLabels bool ;SkipRotation bool ;PageProcessCallback PageProcessCallback ;
// Deprecated: will be removed in v4. Use PageProcessCallback instead.
PageCallback PageCallback ;};
// NewOutline returns a new outline instance.
func NewOutline ()*Outline {return &Outline {}};func (_bcgcg *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _bcgcg ._eecfe };
// ToPdfObject implements interface PdfModel.
func (_ac *PdfActionMovie )ToPdfObject ()_eg .PdfObject {_ac .PdfAction .ToPdfObject ();_gabf :=_ac ._ege ;_gfc :=_gabf .PdfObject .(*_eg .PdfObjectDictionary );_gfc .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeMovie )));_gfc .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_ac .Annotation );
_gfc .SetIfNotNil ("\u0054",_ac .T );_gfc .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_ac .Operation );return _gabf ;};
// ToPdfObject implements interface PdfModel.
func (_cbdca *PdfAnnotationHighlight )ToPdfObject ()_eg .PdfObject {_cbdca .PdfAnnotation .ToPdfObject ();_aada :=_cbdca ._gag ;_abe :=_aada .PdfObject .(*_eg .PdfObjectDictionary );_cbdca .PdfAnnotationMarkup .appendToPdfDictionary (_abe );_abe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));
_abe .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_cbdca .QuadPoints );return _aada ;};
// GetCerts returns the signature certificate chain.
func (_ceedff *PdfSignature )GetCerts ()([]*_ce .Certificate ,error ){var _dgadde []func ()([]*_ce .Certificate ,error );switch _ddcba ,_ :=_eg .GetNameVal (_ceedff .SubFilter );_ddcba {case "\u0061\u0064\u0062\u0065.p\u006b\u0063\u0073\u0037\u002e\u0064\u0065\u0074\u0061\u0063\u0068\u0065\u0064","\u0045\u0054\u0053\u0049.C\u0041\u0064\u0045\u0053\u002e\u0064\u0065\u0074\u0061\u0063\u0068\u0065\u0064":_dgadde =append (_dgadde ,_ceedff .extractChainFromPKCS7 ,_ceedff .extractChainFromCert );
case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_dgadde =append (_dgadde ,_ceedff .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_dgadde =append (_dgadde ,_ceedff .extractChainFromPKCS7 );
default:return nil ,_e .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_ddcba );};for _ ,_bggedd :=range _dgadde {_bcacf ,_fefad :=_bggedd ();if _fefad !=nil {return nil ,_fefad ;
};if len (_bcacf )> 0{return _bcacf ,nil ;};};return nil ,ErrSignNoCertificates ;};type fontCommon struct{_cfab string ;_fgbbb string ;_dfgf string ;_fgegd _eg .PdfObject ;_fffc *_aff .CMap ;_eecfe *PdfFontDescriptor ;_aaaf int64 ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_ggdd *PdfShadingType4 )ToPdfObject ()_eg .PdfObject {_ggdd .PdfShading .ToPdfObject ();_cdage ,_dagea :=_ggdd .getShadingDict ();if _dagea !=nil {_dbg .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
return nil ;};if _ggdd .BitsPerCoordinate !=nil {_cdage .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_ggdd .BitsPerCoordinate );};if _ggdd .BitsPerComponent !=nil {_cdage .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ggdd .BitsPerComponent );
};if _ggdd .BitsPerFlag !=nil {_cdage .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_ggdd .BitsPerFlag );};if _ggdd .Decode !=nil {_cdage .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_ggdd .Decode );};if _ggdd .Function !=nil {if len (_ggdd .Function )==1{_cdage .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ggdd .Function [0].ToPdfObject ());
}else {_ggdbd :=_eg .MakeArray ();for _ ,_adfb :=range _ggdd .Function {_ggdbd .Append (_adfb .ToPdfObject ());};_cdage .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ggdbd );};};return _ggdd ._beag ;};func _ddgae ()string {_egbeg .Lock ();defer _egbeg .Unlock ();
if len (_ebgfe )> 0{return _ebgfe ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";};
// GetAscent returns the Ascent of the font `descriptor`.
func (_becb *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _eg .GetNumberAsFloat (_becb .Ascent );};func (_dgedb *PdfPage )getParentResources ()(*PdfPageResources ,error ){_cgcefb :=_dgedb .Parent ;for _cgcefb !=nil {_dfgfa ,_decf :=_eg .GetDict (_cgcefb );
if !_decf {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u0020n\u006f\u0064\u0065");return nil ,_bbd .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
};if _edbf :=_dfgfa .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_edbf !=nil {_ceaf ,_acfcd :=_eg .GetDict (_edbf );if !_acfcd {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");
};_aecgb ,_fgfbb :=NewPdfPageResourcesFromDict (_ceaf );if _fgfbb !=nil {return nil ,_fgfbb ;};return _aecgb ,nil ;};_cgcefb =_dfgfa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
// UpdateXObjectImageFromImage creates a new XObject Image from an
// Image object `img` and default masks from xobjIn.
// The default masks are overridden if img.hasAlpha
// If `encoder` is nil, uses raw encoding (none).
func UpdateXObjectImageFromImage (xobjIn *XObjectImage ,img *Image ,cs PdfColorspace ,encoder _eg .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_eg .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_egeg ,_aedeg :=encoder .EncodeBytes (img .Data );
if _aedeg !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_aedeg );return nil ,_aedeg ;};_faaea :=NewXObjectImage ();_gbegge :=img .Width ;_bacda :=img .Height ;
_faaea .Width =&_gbegge ;_faaea .Height =&_bacda ;_dfbcde :=img .BitsPerComponent ;_faaea .BitsPerComponent =&_dfbcde ;_faaea .Filter =encoder ;_faaea .Stream =_egeg ;if cs ==nil {if img .ColorComponents ==1{_faaea .ColorSpace =NewPdfColorspaceDeviceGray ();
}else if img .ColorComponents ==3{_faaea .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_faaea .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return nil ,_bbd .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");
};}else {_faaea .ColorSpace =cs ;};if len (img ._fcec )!=0{_gcegg :=NewXObjectImage ();_gcegg .Filter =encoder ;_dbfbc ,_efabgb :=encoder .EncodeBytes (img ._fcec );if _efabgb !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_efabgb );
return nil ,_efabgb ;};_gcegg .Stream =_dbfbc ;_gcegg .BitsPerComponent =_faaea .BitsPerComponent ;_gcegg .Width =&img .Width ;_gcegg .Height =&img .Height ;_gcegg .ColorSpace =NewPdfColorspaceDeviceGray ();_faaea .SMask =_gcegg .ToPdfObject ();}else {_faaea .SMask =xobjIn .SMask ;
_faaea .ImageMask =xobjIn .ImageMask ;if _faaea .ColorSpace .GetNumComponents ()==1{_fccc (_faaea );};};return _faaea ,nil ;};
// ToPdfObject implements interface PdfModel.
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
func (_fbd *PdfAnnotation )ToPdfObject ()_eg .PdfObject {_gaag :=_fbd ._gag ;_cgb :=_gaag .PdfObject .(*_eg .PdfObjectDictionary );_cgb .Clear ();_cgb .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0041\u006e\u006eo\u0074"));_cgb .SetIfNotNil ("\u0052\u0065\u0063\u0074",_fbd .Rect );
_cgb .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_fbd .Contents );_cgb .SetIfNotNil ("\u0050",_fbd .P );_cgb .SetIfNotNil ("\u004e\u004d",_fbd .NM );_cgb .SetIfNotNil ("\u004d",_fbd .M );_cgb .SetIfNotNil ("\u0046",_fbd .F );_cgb .SetIfNotNil ("\u0041\u0050",_fbd .AP );
_cgb .SetIfNotNil ("\u0041\u0053",_fbd .AS );_cgb .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_fbd .Border );_cgb .SetIfNotNil ("\u0043",_fbd .C );_cgb .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_fbd .StructParent );
_cgb .SetIfNotNil ("\u004f\u0043",_fbd .OC );return _gaag ;};func _bbfd (_cbafe *_eg .PdfObjectDictionary )(*PdfShadingType4 ,error ){_ffcbf :=PdfShadingType4 {};_cbdfc :=_cbafe .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
if _cbdfc ==nil {_dbg .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064 \u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065\u0072C\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065");
return nil ,ErrRequiredAttributeMissing ;};_egaae ,_ddec :=_cbdfc .(*_eg .PdfObjectInteger );if !_ddec {_dbg .Log .Debug ("\u0042\u0069\u0074\u0073\u0050e\u0072\u0043\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_cbdfc );
return nil ,_eg .ErrTypeError ;};_ffcbf .BitsPerCoordinate =_egaae ;_cbdfc =_cbafe .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _cbdfc ==nil {_dbg .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064\u0020a\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073in\u0067\u003a\u0020B\u0069\u0074s\u0050\u0065\u0072\u0043\u006f\u006dp\u006f\u006ee\u006e\u0074");
return nil ,ErrRequiredAttributeMissing ;};_egaae ,_ddec =_cbdfc .(*_eg .PdfObjectInteger );if !_ddec {_dbg .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065r \u0028\u0067\u006ft\u0020%\u0054\u0029",_cbdfc );
return nil ,_eg .ErrTypeError ;};_ffcbf .BitsPerComponent =_egaae ;_cbdfc =_cbafe .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _cbdfc ==nil {_dbg .Log .Debug ("\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065r\u0046\u006c\u0061\u0067");
return nil ,ErrRequiredAttributeMissing ;};_egaae ,_ddec =_cbdfc .(*_eg .PdfObjectInteger );if !_ddec {_dbg .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072F\u006c\u0061\u0067\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074e\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025T\u0029",_cbdfc );
return nil ,_eg .ErrTypeError ;};_ffcbf .BitsPerComponent =_egaae ;_cbdfc =_cbafe .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _cbdfc ==nil {_dbg .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0044\u0065\u0063\u006f\u0064\u0065");
return nil ,ErrRequiredAttributeMissing ;};_dbfd ,_ddec :=_cbdfc .(*_eg .PdfObjectArray );if !_ddec {_dbg .Log .Debug ("\u0044\u0065\u0063\u006fd\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_cbdfc );
return nil ,_eg .ErrTypeError ;};_ffcbf .Decode =_dbfd ;_cbdfc =_cbafe .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _cbdfc ==nil {_dbg .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0020\u0046\u0075\u006ec\u0074\u0069\u006f\u006e");
return nil ,ErrRequiredAttributeMissing ;};_ffcbf .Function =[]PdfFunction {};if _bgddf ,_bddf :=_cbdfc .(*_eg .PdfObjectArray );_bddf {for _ ,_ecge :=range _bgddf .Elements (){_fgggd ,_bcdef :=_dgbga (_ecge );if _bcdef !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_bcdef );
return nil ,_bcdef ;};_ffcbf .Function =append (_ffcbf .Function ,_fgggd );};}else {_dgffb ,_dfbf :=_dgbga (_cbdfc );if _dfbf !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_dfbf );
return nil ,_dfbf ;};_ffcbf .Function =append (_ffcbf .Function ,_dgffb );};return &_ffcbf ,nil ;};
// GetRuneMetrics returns the character metrics for the rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_eedd pdfFontSimple )GetRuneMetrics (r rune )(_ab .CharMetrics ,bool ){if _eedd ._edgae !=nil {_fcgdb ,_adcgc :=_eedd ._edgae .Read (r );if _adcgc {return _fcgdb ,true ;};};_abca :=_eedd .Encoder ();if _abca ==nil {_dbg .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_eedd );
return _ab .CharMetrics {},false ;};_eabcc ,_faee :=_abca .RuneToCharcode (r );if !_faee {if r !=' '{_dbg .Log .Trace ("\u004e\u006f\u0020c\u0068\u0061\u0072\u0063o\u0064\u0065\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u003d\u0025\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",r ,_eedd );
};return _ab .CharMetrics {},false ;};_baba ,_gccc :=_eedd .GetCharMetrics (_eabcc );return _baba ,_gccc ;};func (_dgff *PdfAppender )updateObjectsDeep (_dged _eg .PdfObject ,_ece map[_eg .PdfObject ]struct{}){if _ece ==nil {_ece =map[_eg .PdfObject ]struct{}{};
};if _ ,_dbba :=_ece [_dged ];_dbba ||_dged ==nil {return ;};_ece [_dged ]=struct{}{};_dbff :=_eg .ResolveReferencesDeep (_dged ,_dgff ._baeg );if _dbff !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbff );};switch _aafc :=_dged .(type ){case *_eg .PdfIndirectObject :switch {case _aafc .GetParser ()==_dgff ._acdg ._cdggc :return ;
case _aafc .GetParser ()==_dgff .Reader ._cdggc :_fbfc ,_ :=_dgff ._acdg .GetIndirectObjectByNumber (int (_aafc .ObjectNumber ));_dgcg ,_ggfe :=_fbfc .(*_eg .PdfIndirectObject );if _ggfe &&_dgcg !=nil {if _dgcg .PdfObject !=_aafc .PdfObject &&_dgcg .PdfObject .WriteString ()!=_aafc .PdfObject .WriteString (){_dgff .addNewObject (_dged );
_dgff ._bddd [_dged ]=_aafc .ObjectNumber ;};};default:_dgff .addNewObject (_dged );};_dgff .updateObjectsDeep (_aafc .PdfObject ,_ece );case *_eg .PdfObjectArray :for _ ,_gaec :=range _aafc .Elements (){_dgff .updateObjectsDeep (_gaec ,_ece );};case *_eg .PdfObjectDictionary :for _ ,_bead :=range _aafc .Keys (){_dgff .updateObjectsDeep (_aafc .Get (_bead ),_ece );
};case *_eg .PdfObjectStreams :if _aafc .GetParser ()!=_dgff ._acdg ._cdggc {for _ ,_cecd :=range _aafc .Elements (){_dgff .updateObjectsDeep (_cecd ,_ece );};};case *_eg .PdfObjectStream :switch {case _aafc .GetParser ()==_dgff ._acdg ._cdggc :return ;
case _aafc .GetParser ()==_dgff .Reader ._cdggc :if _bdgg ,_bfec :=_dgff ._acdg ._cdggc .LookupByReference (_aafc .PdfObjectReference );_bfec ==nil {var _eaeb bool ;if _bcbg ,_cfde :=_eg .GetStream (_bdgg );_cfde &&_cbd .Equal (_bcbg .Stream ,_aafc .Stream ){_eaeb =true ;
};if _eecg ,_dff :=_eg .GetDict (_bdgg );_eaeb &&_dff {_eaeb =_eecg .WriteString ()==_aafc .PdfObjectDictionary .WriteString ();};if _eaeb {return ;};};if _aafc .ObjectNumber !=0{_dgff ._bddd [_dged ]=_aafc .ObjectNumber ;};default:if _ ,_dfcdg :=_dgff ._adge [_dged ];
!_dfcdg {_dgff .addNewObject (_dged );};};_dgff .updateObjectsDeep (_aafc .PdfObjectDictionary ,_ece );};};
// PdfAnnotationSquiggly represents Squiggly annotations.
// (Section 12.5.6.10).
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eg .PdfObject ;};
// NewPdfAnnotationSquare returns a new square annotation.
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_ebef :=NewPdfAnnotation ();_ecg :=&PdfAnnotationSquare {};_ecg .PdfAnnotation =_ebef ;_ecg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ebef .SetContext (_ecg );return _ecg ;};
// BaseFont returns the font's "BaseFont" field.
func (_efgd *PdfFont )BaseFont ()string {return _efgd .baseFields ()._cfab };var _aaffe =map[string ]string {"\u0053\u0079\u006d\u0062\u006f\u006c":"\u0053\u0079\u006d\u0062\u006f\u006c\u0045\u006e\u0063o\u0064\u0069\u006e\u0067","\u005a\u0061\u0070f\u0044\u0069\u006e\u0067\u0062\u0061\u0074\u0073":"Z\u0061p\u0066\u0044\u0069\u006e\u0067\u0062\u0061\u0074s\u0045\u006e\u0063\u006fdi\u006e\u0067"};
type pdfCIDFontType0 struct{fontCommon ;_aeaff *_eg .PdfIndirectObject ;_aafde _cec .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// (Required) Dictionary that defines the character collection of the CIDFont.
// See Table 116.
CIDSystemInfo *_eg .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _eg .PdfObject ;W _eg .PdfObject ;DW2 _eg .PdfObject ;W2 _eg .PdfObject ;_fedfd map[_cec .CharCode ]float64 ;_gfbab float64 ;};func (_dacga *PdfReader )resolveReference (_ecbge *_eg .PdfObjectReference )(_eg .PdfObject ,bool ,error ){_effe ,_ffgab :=_dacga ._cdggc .ObjCache [int (_ecbge .ObjectNumber )];
if !_ffgab {_dbg .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_ecbge );_gaacab ,_gdfaf :=_dacga ._cdggc .LookupByReference (*_ecbge );if _gdfaf !=nil {return nil ,false ,_gdfaf ;};
_dacga ._cdggc .ObjCache [int (_ecbge .ObjectNumber )]=_gaacab ;return _gaacab ,false ,nil ;};return _effe ,true ,nil ;};
// PdfRectangle is a definition of a rectangle.
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};
// IsColored specifies if the pattern is colored.
func (_ddbe *PdfTilingPattern )IsColored ()bool {if _ddbe .PaintType !=nil &&*_ddbe .PaintType ==1{return true ;};return false ;};
// ColorToRGB converts a CMYK32 color to an RGB color.
func (_bcgb *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_dbbf ,_gdfa :=color .(*PdfColorDeviceCMYK );if !_gdfa {_dbg .Log .Debug ("I\u006e\u0070\u0075\u0074\u0020\u0063o\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0064e\u0076\u0069\u0063e\u0020c\u006d\u0079\u006b");
return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dbbec :=_dbbf .C ();_cbfc :=_dbbf .M ();_dcfg :=_dbbf .Y ();_acgdd :=_dbbf .K ();_dbbec =_dbbec *(1-_acgdd )+_acgdd ;_cbfc =_cbfc *(1-_acgdd )+_acgdd ;
_dcfg =_dcfg *(1-_acgdd )+_acgdd ;_daeb :=1-_dbbec ;_cddc :=1-_cbfc ;_cfbe :=1-_dcfg ;return NewPdfColorDeviceRGB (_daeb ,_cddc ,_cfbe ),nil ;};
// Encoder returns the font's text encoder.
func (_ebcfb pdfCIDFontType0 )Encoder ()_cec .TextEncoder {return _ebcfb ._aafde };func (_cgae *XObjectImage )getParamsDict ()*_eg .PdfObjectDictionary {_afefa :=_eg .MakeDict ();_afefa .Set ("\u0057\u0069\u0064t\u0068",_eg .MakeInteger (*_cgae .Width ));
_afefa .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_eg .MakeInteger (*_cgae .Height ));_afefa .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_eg .MakeInteger (int64 (_cgae .ColorSpace .GetNumComponents ())));_afefa .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eg .MakeInteger (*_cgae .BitsPerComponent ));
return _afefa ;};const (ActionTypeGoTo PdfActionType ="\u0047\u006f\u0054\u006f";ActionTypeGoTo3DView PdfActionType ="\u0047\u006f\u0054\u006f\u0033\u0044\u0056\u0069\u0065\u0077";ActionTypeGoToE PdfActionType ="\u0047\u006f\u0054o\u0045";ActionTypeGoToR PdfActionType ="\u0047\u006f\u0054o\u0052";
ActionTypeHide PdfActionType ="\u0048\u0069\u0064\u0065";ActionTypeImportData PdfActionType ="\u0049\u006d\u0070\u006f\u0072\u0074\u0044\u0061\u0074\u0061";ActionTypeJavaScript PdfActionType ="\u004a\u0061\u0076\u0061\u0053\u0063\u0072\u0069\u0070\u0074";
ActionTypeLaunch PdfActionType ="\u004c\u0061\u0075\u006e\u0063\u0068";ActionTypeMovie PdfActionType ="\u004d\u006f\u0076i\u0065";ActionTypeNamed PdfActionType ="\u004e\u0061\u006de\u0064";ActionTypeRendition PdfActionType ="\u0052e\u006e\u0064\u0069\u0074\u0069\u006fn";
ActionTypeResetForm PdfActionType ="\u0052e\u0073\u0065\u0074\u0046\u006f\u0072m";ActionTypeSetOCGState PdfActionType ="S\u0065\u0074\u004f\u0043\u0047\u0053\u0074\u0061\u0074\u0065";ActionTypeSound PdfActionType ="\u0053\u006f\u0075n\u0064";ActionTypeSubmitForm PdfActionType ="\u0053\u0075\u0062\u006d\u0069\u0074\u0046\u006f\u0072\u006d";
ActionTypeThread PdfActionType ="\u0054\u0068\u0072\u0065\u0061\u0064";ActionTypeTrans PdfActionType ="\u0054\u0072\u0061n\u0073";ActionTypeURI PdfActionType ="\u0055\u0052\u0049";);
// PdfPageResourcesColorspaces contains the colorspace in the PdfPageResources.
// Needs to have matching name and colorspace map entry. The Names define the order.
type PdfPageResourcesColorspaces struct{Names []string ;Colorspaces map[string ]PdfColorspace ;_abbc *_eg .PdfIndirectObject ;};
// ToInteger convert to an integer format.
func (_gfce *PdfColorLab )ToInteger (bits int )[3]uint32 {_bffc :=_bc .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_bffc *_gfce .L ()),uint32 (_bffc *_gfce .A ()),uint32 (_bffc *_gfce .B ())};};func _aebfd (_ccfc *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_ccfc }};
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_ffbb :=NewPdfAnnotation ();_abc :=&PdfAnnotationTrapNet {};_abc .PdfAnnotation =_ffbb ;_ffbb .SetContext (_abc );return _abc ;};
// NewPdfActionSubmitForm returns a new "submit form" action.
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_fa :=NewPdfAction ();_gab :=&PdfActionSubmitForm {};_gab .PdfAction =_fa ;_fa .SetContext (_gab );return _gab ;};
// NewXObjectImage returns a new XObjectImage.
func NewXObjectImage ()*XObjectImage {_cdgfd :=&XObjectImage {};_afcca :=&_eg .PdfObjectStream {};_afcca .PdfObjectDictionary =_eg .MakeDict ();_cdgfd ._dcdb =_afcca ;return _cdgfd ;};
// NewXObjectImageFromStream builds the image xobject from a stream object.
// An image dictionary is the dictionary portion of a stream object representing an image XObject.
func NewXObjectImageFromStream (stream *_eg .PdfObjectStream )(*XObjectImage ,error ){_dfegd :=&XObjectImage {};_dfegd ._dcdb =stream ;_ddebe :=*(stream .PdfObjectDictionary );_bfgdc ,_aabgfe :=_eg .NewEncoderFromStream (stream );if _aabgfe !=nil {return nil ,_aabgfe ;
};_dfegd .Filter =_bfgdc ;if _eagae :=_eg .TraceToDirectObject (_ddebe .Get ("\u0057\u0069\u0064t\u0068"));_eagae !=nil {_cgba ,_bafdfc :=_eagae .(*_eg .PdfObjectInteger );if !_bafdfc {return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0069\u006d\u0061g\u0065\u0020\u0077\u0069\u0064\u0074\u0068\u0020\u006f\u0062j\u0065\u0063\u0074");
};_gfceb :=int64 (*_cgba );_dfegd .Width =&_gfceb ;}else {return nil ,_bbd .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _acbcd :=_eg .TraceToDirectObject (_ddebe .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));
_acbcd !=nil {_aacae ,_dcfae :=_acbcd .(*_eg .PdfObjectInteger );if !_dcfae {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_efgdf :=int64 (*_aacae );
_dfegd .Height =&_efgdf ;}else {return nil ,_bbd .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _ecceb :=_eg .TraceToDirectObject (_ddebe .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));
_ecceb !=nil {_eafcd ,_bgae :=NewPdfColorspaceFromPdfObject (_ecceb );if _bgae !=nil {return nil ,_bgae ;};_dfegd .ColorSpace =_eafcd ;}else {_dbg .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063t\u0020\u0049\u006d\u0061\u0067e\u0020\u0063\u006f\u006c\u006f\u0072s\u0070\u0061\u0063\u0065\u0020n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064 \u002d\u0020\u0061\u0073\u0073\u0075\u006d\u0069\u006e\u0067\u0020\u0031\u0020\u0063\u006fl\u006f\u0072\u0020\u0063\u006f\u006d\u0070\u006fn\u0065\u006e\u0074");
_dfegd .ColorSpace =NewPdfColorspaceDeviceGray ();};if _agage :=_eg .TraceToDirectObject (_ddebe .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_agage !=nil {_ecffg ,_eebd :=_agage .(*_eg .PdfObjectInteger );
if !_eebd {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_edbfca :=int64 (*_ecffg );_dfegd .BitsPerComponent =&_edbfca ;};_dfegd .Intent =_ddebe .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");
_dfegd .ImageMask =_ddebe .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_dfegd .Mask =_ddebe .Get ("\u004d\u0061\u0073\u006b");_dfegd .Decode =_ddebe .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_dfegd .Interpolate =_ddebe .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");
_dfegd .Alternatives =_ddebe .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_dfegd .SMask =_ddebe .Get ("\u0053\u004d\u0061s\u006b");_dfegd .SMaskInData =_ddebe .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");
_dfegd .Matte =_ddebe .Get ("\u004d\u0061\u0074t\u0065");_dfegd .Name =_ddebe .Get ("\u004e\u0061\u006d\u0065");_dfegd .StructParent =_ddebe .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_dfegd .ID =_ddebe .Get ("\u0049\u0044");
_dfegd .OPI =_ddebe .Get ("\u004f\u0050\u0049");_dfegd .Metadata =_ddebe .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_dfegd .OC =_ddebe .Get ("\u004f\u0043");_dfegd .Stream =stream .Stream ;return _dfegd ,nil ;};func (_cgecb *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _cgecb ._cdggc .GetCrypter ()!=nil &&!_cgecb ._cdggc .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_bbef :=_cgecb ._efdg ;_agbec :=_bbef .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _agbec ==nil {return nil ,nil ;};_dbg .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_dfceb :=_eg .ResolveReference (_agbec );
_dbg .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_dfceb );if _cbad :=_eg .IsNullObject (_dfceb );_cbad {_dbg .Log .Trace ("\u004f\u0075\u0074li\u006e\u0065\u0020\u0072\u006f\u006f\u0074\u0020\u0069s\u0020n\u0075l\u006c \u002d\u0020\u006e\u006f\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");
return nil ,nil ;};_fagd ,_bccfee :=_dfceb .(*_eg .PdfIndirectObject );if !_bccfee {if _ ,_abce :=_eg .GetDict (_dfceb );!_abce {_dbg .Log .Debug ("\u0049\u006e\u0076a\u006c\u0069\u0064\u0020o\u0075\u0074\u006c\u0069\u006e\u0065\u0020r\u006f\u006f\u0074\u0020\u002d\u0020\u0073\u006b\u0069\u0070\u0070\u0069\u006e\u0067");
return nil ,nil ;};_dbg .Log .Debug ("\u004f\u0075t\u006c\u0069\u006e\u0065\u0020r\u006f\u006f\u0074\u0020\u0069s\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u002e\u0020\u0053\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
_fagd =_eg .MakeIndirectObject (_dfceb );};_geffa ,_bccfee :=_fagd .PdfObject .(*_eg .PdfObjectDictionary );if !_bccfee {return nil ,_bbd .New ("\u006f\u0075\u0074\u006c\u0069n\u0065\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072y");
};_dbg .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_geffa );_faef ,_ ,_bcdcc :=_cgecb .buildOutlineTree (_fagd ,nil ,nil ,nil );if _bcdcc !=nil {return nil ,_bcdcc ;};_dbg .Log .Trace ("\u0052\u0065\u0073\u0075\u006c\u0074\u0069\u006e\u0067\u0020\u006fu\u0074\u006c\u0069\u006e\u0065\u0020\u0074\u0072\u0065\u0065:\u0020\u0025\u0076",_faef );
return _faef ,nil ;};func (_egdgb *PdfAcroForm )filteredFields (_gdgbf FieldFilterFunc ,_bbcbb bool )[]*PdfField {if _egdgb ==nil {return nil ;};return _dccbga (_egdgb .Fields ,_gdgbf ,_bbcbb );};
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
func (_ecfe *pdfFontSimple )ToPdfObject ()_eg .PdfObject {if _ecfe ._acfb ==nil {_ecfe ._acfb =&_eg .PdfIndirectObject {};};_edefg :=_ecfe .baseFields ().asPdfObjectDictionary ("");_ecfe ._acfb .PdfObject =_edefg ;if _ecfe .FirstChar !=nil {_edefg .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_ecfe .FirstChar );
};if _ecfe .LastChar !=nil {_edefg .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_ecfe .LastChar );};if _ecfe .Widths !=nil {_edefg .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_ecfe .Widths );};if _ecfe .Encoding !=nil {_edefg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ecfe .Encoding );
}else if _ecfe ._gccbc !=nil {_ffeg :=_ecfe ._gccbc .ToPdfObject ();if _ffeg !=nil {_edefg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ffeg );};};return _ecfe ._acfb ;};
// NewCompositePdfFontFromTTF loads a composite TTF font. Composite fonts can
// be used to represent unicode fonts which can have multi-byte character codes, representing a wide
// range of values. They are often used for symbolic languages, including Chinese, Japanese and Korean.
// It is represented by a Type0 Font with an underlying CIDFontType2 and an Identity-H encoding map.
// TODO: May be extended in the future to support a larger variety of CMaps and vertical fonts.
// NOTE: For simple fonts, use NewPdfFontFromTTF.
func NewCompositePdfFontFromTTF (r _de .ReadSeeker )(*PdfFont ,error ){_gagaf ,_ebcag :=_aa .ReadAll (r );if _ebcag !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065 \u0074\u006f\u0020\u0072\u0065\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074s\u003a\u0020\u0025\u0076",_ebcag );
return nil ,_ebcag ;};_dgfcd ,_ebcag :=_ab .TtfParse (_cbd .NewReader (_gagaf ));if _ebcag !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0077\u0068\u0069\u006c\u0065\u0020\u006c\u006f\u0061\u0064\u0069\u006e\u0067 \u0074\u0074\u0066\u0020\u0066\u006f\u006et\u003a\u0020\u0025\u0076",_ebcag );
return nil ,_ebcag ;};_adcc :=&pdfCIDFontType2 {fontCommon :fontCommon {_fgbbb :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_eg .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};_deab :=make ([]rune ,0,len (_dgfcd .Chars ));
for _cecad :=range _dgfcd .Chars {_deab =append (_deab ,_cecad );};_ae .Slice (_deab ,func (_fgdc ,_gcdcbg int )bool {return _deab [_fgdc ]< _deab [_gcdcbg ]});_facba :=1000.0/float64 (_dgfcd .UnitsPerEm );if len (_dgfcd .Widths )<=0{return nil ,_bbd .New ("\u0045\u0052\u0052O\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065 \u0028\u0057\u0069\u0064\u0074\u0068\u0073\u0029");
};_badgg :=_facba *float64 (_dgfcd .Widths [0]);_beaad :=make (map[rune ]int );for _ ,_cfede :=range _deab {_dfbcg :=_dgfcd .Chars [_cfede ];_aagcf :=_facba *float64 (_dgfcd .Widths [_dfbcg ]);_beaad [_cfede ]=int (_aagcf );};_adcc ._dgefb =_beaad ;_adcc .DW =_eg .MakeInteger (int64 (_badgg ));
_cfedc :=_abff (_deab ,_beaad ,_dgfcd .Chars );_adcc .W =_eg .MakeIndirectObject (_cfedc );_geag :=_eg .MakeDict ();_geag .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_eg .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_geag .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_eg .MakeString ("\u0041\u0064\u006fb\u0065"));
_geag .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_eg .MakeInteger (0));_adcc .CIDSystemInfo =_geag ;_dgbea :=&PdfFontDescriptor {FontName :_eg .MakeName (_dgfcd .PostScriptName ),Ascent :_eg .MakeFloat (_facba *float64 (_dgfcd .TypoAscender )),Descent :_eg .MakeFloat (_facba *float64 (_dgfcd .TypoDescender )),CapHeight :_eg .MakeFloat (_facba *float64 (_dgfcd .CapHeight )),FontBBox :_eg .MakeArrayFromFloats ([]float64 {_facba *float64 (_dgfcd .Xmin ),_facba *float64 (_dgfcd .Ymin ),_facba *float64 (_dgfcd .Xmax ),_facba *float64 (_dgfcd .Ymax )}),ItalicAngle :_eg .MakeFloat (_dgfcd .ItalicAngle ),MissingWidth :_eg .MakeFloat (_facba *float64 (_dgfcd .Widths [0]))};
_eefe ,_ebcag :=_eg .MakeStream (_gagaf ,_eg .NewFlateEncoder ());if _ebcag !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074o\u0020m\u0061\u006b\u0065\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020\u0025\u0076",_ebcag );
return nil ,_ebcag ;};_eefe .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_eg .MakeInteger (int64 (len (_gagaf ))));_dgbea .FontFile2 =_eefe ;if _dgfcd .Bold {_dgbea .StemV =_eg .MakeInteger (120);}else {_dgbea .StemV =_eg .MakeInteger (70);
};_gbgfa :=_efecb ;if _dgfcd .IsFixedPitch {_gbgfa |=_defe ;};if _dgfcd .ItalicAngle !=0{_gbgfa |=_fedcc ;};_dgbea .Flags =_eg .MakeInteger (int64 (_gbgfa ));_adcc ._cfab =_dgfcd .PostScriptName ;_adcc ._eecfe =_dgbea ;_bfdc :=pdfFontType0 {fontCommon :fontCommon {_fgbbb :"\u0054\u0079\u0070e\u0030",_cfab :_dgfcd .PostScriptName },DescendantFont :&PdfFont {_gdcab :_adcc },Encoding :_eg .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_eceba :_dgfcd .NewEncoder ()};
if len (_dgfcd .Chars )> 0{_ffgda :=make (map[_aff .CharCode ]rune ,len (_dgfcd .Chars ));for _aggga ,_ddeae :=range _dgfcd .Chars {_gdad :=_aff .CharCode (_ddeae );if _acge ,_cffg :=_ffgda [_gdad ];!_cffg ||(_cffg &&_acge > _aggga ){_ffgda [_gdad ]=_aggga ;
};};_bfdc ._fffc =_aff .NewToUnicodeCMap (_ffgda );};_fecg :=PdfFont {_gdcab :&_bfdc };return &_fecg ,nil ;};func (_bag *PdfReader )newPdfActionGotoFromDict (_bacb *_eg .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_bacb .Get ("\u0044")},nil ;
};func _acde (_eged _eg .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_ecgf :=NewPdfColorspaceSpecialIndexed ();if _fbad ,_adbd :=_eged .(*_eg .PdfIndirectObject );_adbd {_ecgf ._cbdga =_fbad ;};_eged =_eg .TraceToDirectObject (_eged );_fgcd ,_fdge :=_eged .(*_eg .PdfObjectArray );
if !_fdge {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fgcd .Len ()!=4{return nil ,_e .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069\u006e\u0076a\u006ci\u0064\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");
};_eged =_fgcd .Get (0);_gged ,_fdge :=_eged .(*_eg .PdfObjectName );if !_fdge {return nil ,_e .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_gged !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_e .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");
};_eged =_fgcd .Get (1);_gaba ,_ddcf :=DetermineColorspaceNameFromPdfObject (_eged );if _ddcf !=nil {return nil ,_ddcf ;};if _gaba =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_gaba =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_dbg .Log .Debug ("E\u0072\u0072o\u0072\u003a\u0020\u0049\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0049\u006e\u0064e\u0078\u0065\u0064\u002f\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0043S\u0020\u0061\u0073\u0020\u0062\u0061\u0073\u0065\u0020\u0028\u0025v\u0029",_gaba );
return nil ,_fgega ;};_dgcd ,_ddcf :=NewPdfColorspaceFromPdfObject (_eged );if _ddcf !=nil {return nil ,_ddcf ;};_ecgf .Base =_dgcd ;_eged =_fgcd .Get (2);_aaed ,_ddcf :=_eg .GetNumberAsInt64 (_eged );if _ddcf !=nil {return nil ,_ddcf ;};if _aaed > 255{return nil ,_e .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");
};_ecgf .HiVal =int (_aaed );_eged =_fgcd .Get (3);_ecgf .Lookup =_eged ;_eged =_eg .TraceToDirectObject (_eged );var _cbfea []byte ;if _bgabf ,_fcae :=_eged .(*_eg .PdfObjectString );_fcae {_cbfea =_bgabf .Bytes ();_dbg .Log .Trace ("\u0049\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0073\u0074r\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072\u0020\u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0020\u0064",_cbfea );
}else if _dggbb ,_dbcef :=_eged .(*_eg .PdfObjectStream );_dbcef {_dbg .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_eged .String ());_dbg .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_dggbb .Stream ),_dggbb .Stream );
_ebcb ,_gfadf :=_eg .DecodeStream (_dggbb );if _gfadf !=nil {return nil ,_gfadf ;};_dbg .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_ebcb ),_ebcb );_cbfea =_ebcb ;}else {_dbg .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_eged );
return nil ,_e .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076a\u006ci\u0064\u0020\u0074\u0061\u0062\u006c\u0065\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};if len (_cbfea )< _ecgf .Base .GetNumComponents ()*(_ecgf .HiVal +1){_dbg .Log .Debug ("\u0050\u0044\u0046\u0020\u0049\u006e\u0063o\u006d\u0070\u0061t\u0069\u0062\u0069\u006ci\u0074\u0079\u003a\u0020\u0049\u006e\u0064\u0065\u0078\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0074\u006f\u006f\u0020\u0073\u0068\u006f\u0072\u0074");
_dbg .Log .Debug ("\u0046\u0061i\u006c\u002c\u0020\u006c\u0065\u006e\u0028\u0064\u0061\u0074\u0061\u0029\u003a\u0020\u0025\u0064\u002c\u0020\u0063\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u002c\u0020\u0068\u0069\u0056\u0061\u006c\u003a\u0020\u0025\u0064",len (_cbfea ),_ecgf .Base .GetNumComponents (),_ecgf .HiVal );
}else {_cbfea =_cbfea [:_ecgf .Base .GetNumComponents ()*(_ecgf .HiVal +1)];};_ecgf ._dbcc =_cbfea ;return _ecgf ,nil ;};
// B returns the value of the B component of the color.
func (_faeb *PdfColorLab )B ()float64 {return _faeb [2]};
// NewPdfActionHide returns a new "hide" action.
func NewPdfActionHide ()*PdfActionHide {_fdf :=NewPdfAction ();_ebc :=&PdfActionHide {};_ebc .PdfAction =_fdf ;_fdf .SetContext (_ebc );return _ebc ;};
// PdfAnnotationPolyLine represents PolyLine annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _eg .PdfObject ;LE _eg .PdfObject ;BS _eg .PdfObject ;IC _eg .PdfObject ;BE _eg .PdfObject ;IT _eg .PdfObject ;Measure _eg .PdfObject ;};
// SetEncoder sets the encoding for the underlying font.
// TODO(peterwilliams97): Change function signature to SetEncoder(encoder *textencoding.simpleEncoder).
// TODO(gunnsth): Makes sense if SetEncoder is removed from the interface fonts.Font as proposed in PR #260.
func (_afec *pdfFontSimple )SetEncoder (encoder _cec .TextEncoder ){_afec ._gccbc =encoder };
// PartialName returns the partial name of the field.
func (_caedf *PdfField )PartialName ()string {_dbfcb :="";if _caedf .T !=nil {_dbfcb =_caedf .T .Decoded ();}else {_dbg .Log .Debug ("\u0046\u0069el\u0064\u0020\u006di\u0073\u0073\u0069\u006eg T\u0020fi\u0065\u006c\u0064\u0020\u0028\u0069\u006eco\u006d\u0070\u0061\u0074\u0069\u0062\u006ce\u0029");
};return _dbfcb ;};
// MergePageWith appends page content to source Pdf file page content.
func (_geef *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_daff :=pageNum -1;var _fcga *PdfPage ;for _cdgaa ,_fgcgc :=range _geef ._bfce {if _cdgaa ==_daff {_fcga =_fgcgc ;};};if _fcga ==nil {return _e .Errorf ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064\u0020\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0073o\u0075\u0072\u0063\u0065\u0020\u0064o\u0063\u0075\u006de\u006e\u0074",pageNum );
};if _fcga ._caaef !=nil &&_fcga ._caaef .GetParser ()==_geef ._acdg ._cdggc {_fcga =_fcga .Duplicate ();_geef ._bfce [_daff ]=_fcga ;};page =page .Duplicate ();_faadf (page );_fag :=_aadg (_fcga );_fbfg :=_aadg (page );_adcb :=make (map[_eg .PdfObjectName ]_eg .PdfObjectName );
for _bce :=range _fbfg {if _ ,_dgfd :=_fag [_bce ];_dgfd {for _cfdbd :=1;true ;_cfdbd ++{_febe :=_eg .PdfObjectName (string (_bce )+_db .Itoa (_cfdbd ));if _ ,_fedbg :=_fag [_febe ];!_fedbg {_adcb [_bce ]=_febe ;break ;};};};};_gba ,_eaff :=page .GetContentStreams ();
if _eaff !=nil {return _eaff ;};_dag ,_eaff :=_fcga .GetContentStreams ();if _eaff !=nil {return _eaff ;};for _dede ,_eaebb :=range _gba {for _ebfc ,_bebg :=range _adcb {_eaebb =_dc .Replace (_eaebb ,"\u002f"+string (_ebfc ),"\u002f"+string (_bebg ),-1);
};_gba [_dede ]=_eaebb ;};_dag =append (_dag ,_gba ...);if _cdbg :=_fcga .SetContentStreams (_dag ,_eg .NewFlateEncoder ());_cdbg !=nil {return _cdbg ;};_fcga ._egge =append (_fcga ._egge ,page ._egge ...);if _fcga .Resources ==nil {_fcga .Resources =NewPdfPageResources ();
};if page .Resources !=nil {_fcga .Resources .Font =_geef .mergeResources (_fcga .Resources .Font ,page .Resources .Font ,_adcb );_fcga .Resources .XObject =_geef .mergeResources (_fcga .Resources .XObject ,page .Resources .XObject ,_adcb );_fcga .Resources .Properties =_geef .mergeResources (_fcga .Resources .Properties ,page .Resources .Properties ,_adcb );
if _fcga .Resources .ProcSet ==nil {_fcga .Resources .ProcSet =page .Resources .ProcSet ;};_fcga .Resources .Shading =_geef .mergeResources (_fcga .Resources .Shading ,page .Resources .Shading ,_adcb );_fcga .Resources .ExtGState =_geef .mergeResources (_fcga .Resources .ExtGState ,page .Resources .ExtGState ,_adcb );
};_ega ,_eaff :=_fcga .GetMediaBox ();if _eaff !=nil {return _eaff ;};_bgda ,_eaff :=page .GetMediaBox ();if _eaff !=nil {return _eaff ;};var _aaea bool ;if _ega .Llx > _bgda .Llx {_ega .Llx =_bgda .Llx ;_aaea =true ;};if _ega .Lly > _bgda .Lly {_ega .Lly =_bgda .Lly ;
_aaea =true ;};if _ega .Urx < _bgda .Urx {_ega .Urx =_bgda .Urx ;_aaea =true ;};if _ega .Ury < _bgda .Ury {_ega .Ury =_bgda .Ury ;_aaea =true ;};if _aaea {_fcga .MediaBox =_ega ;};return nil ;};
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
func (_ecgg *PdfReader )GetIndirectObjectByNumber (number int )(_eg .PdfObject ,error ){_bgaf ,_gdbf :=_ecgg ._cdggc .LookupByNumber (number );return _bgaf ,_gdbf ;};
// AddContentStreamByString adds content stream by string. Puts the content
// string into a stream object and points the content stream towards it.
func (_dafba *PdfPage )AddContentStreamByString (contentStr string )error {_fcdd ,_cgced :=_eg .MakeStream ([]byte (contentStr ),_eg .NewFlateEncoder ());if _cgced !=nil {return _cgced ;};if _dafba .Contents ==nil {_dafba .Contents =_fcdd ;}else {_bfgcd :=_eg .TraceToDirectObject (_dafba .Contents );
_cfad ,_ffege :=_bfgcd .(*_eg .PdfObjectArray );if !_ffege {_cfad =_eg .MakeArray (_bfgcd );};_cfad .Append (_fcdd );_dafba .Contents =_cfad ;};return nil ;};
// PdfActionSound represents a sound action.
type PdfActionSound struct{*PdfAction ;Sound _eg .PdfObject ;Volume _eg .PdfObject ;Synchronous _eg .PdfObject ;Repeat _eg .PdfObject ;Mix _eg .PdfObject ;};
// PdfShadingType7 is a Tensor-product patch mesh.
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_eg .PdfObjectInteger ;BitsPerComponent *_eg .PdfObjectInteger ;BitsPerFlag *_eg .PdfObjectInteger ;Decode *_eg .PdfObjectArray ;Function []PdfFunction ;};
// NewPdfAnnotationInk returns a new ink annotation.
func NewPdfAnnotationInk ()*PdfAnnotationInk {_ddd :=NewPdfAnnotation ();_dcd :=&PdfAnnotationInk {};_dcd .PdfAnnotation =_ddd ;_dcd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ddd .SetContext (_dcd );return _dcd ;};func (_ffcee *DSS )add (_cbac *[]*_eg .PdfObjectStream ,_ebfab map[string ]*_eg .PdfObjectStream ,_abgg [][]byte )([]*_eg .PdfObjectStream ,error ){_fdcg :=make ([]*_eg .PdfObjectStream ,0,len (_abgg ));
for _ ,_fefb :=range _abgg {_bccfc ,_degg :=_cafd (_fefb );if _degg !=nil {return nil ,_degg ;};_dage ,_gccbg :=_ebfab [string (_bccfc )];if !_gccbg {_dage ,_degg =_eg .MakeStream (_fefb ,_eg .NewRawEncoder ());if _degg !=nil {return nil ,_degg ;};_ebfab [string (_bccfc )]=_dage ;
*_cbac =append (*_cbac ,_dage );};_fdcg =append (_fdcg ,_dage );};return _fdcg ,nil ;};
// ToInteger convert to an integer format.
func (_ecda *PdfColorCalGray )ToInteger (bits int )uint32 {_cffee :=_bc .Pow (2,float64 (bits ))-1;return uint32 (_cffee *_ecda .Val ());};
// WriteToFile writes the Appender output to file specified by path.
func (_eaaf *PdfAppender )WriteToFile (outputPath string )error {_cae ,_eceg :=_bg .Create (outputPath );if _eceg !=nil {return _eceg ;};defer _cae .Close ();return _eaaf .Write (_cae );};
// SetOptimizer sets the optimizer to optimize PDF before writing.
func (_gagfe *PdfWriter )SetOptimizer (optimizer Optimizer ){_gagfe ._efdcf =optimizer };func _edbga (_caeaf *PdfField ,_bbfad _eg .PdfObject )error {switch _caeaf .GetContext ().(type ){case *PdfFieldText :switch _gaff :=_bbfad .(type ){case *_eg .PdfObjectName :_fdga :=_gaff ;
_dbg .Log .Debug ("\u0055\u006e\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u003a\u0020\u0047\u006f\u0074 \u0056\u0020\u0061\u0073\u0020\u006e\u0061\u006d\u0065\u0020\u002d\u003e\u0020c\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0074\u006f s\u0074\u0072\u0069\u006e\u0067\u0020\u0027\u0025\u0073\u0027",_fdga .String ());
_caeaf .V =_eg .MakeEncodedString (_gaff .String (),true );case *_eg .PdfObjectString :_caeaf .V =_eg .MakeEncodedString (_gaff .String (),true );default:_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0055\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0074\u0065\u0078\u0074\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0056\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0054\u0020\u0028\u0025\u0023\u0076\u0029",_gaff ,_gaff );
};case *PdfFieldButton :switch _bbfad .(type ){case *_eg .PdfObjectName :if len (_bbfad .String ())> 0{_caeaf .V =_bbfad ;_bbafc (_caeaf ,_bbfad );};case *_eg .PdfObjectString :if len (_bbfad .String ())> 0{_caeaf .V =_eg .MakeName (_bbfad .String ());
_bbafc (_caeaf ,_caeaf .V );};default:_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u004e\u0045\u0058P\u0045\u0043\u0054\u0045\u0044\u0020\u0025\u0073\u0020\u002d>\u0020\u0025\u0076",_caeaf .PartialName (),_bbfad );_caeaf .V =_bbfad ;
};case *PdfFieldChoice :switch _bbfad .(type ){case *_eg .PdfObjectName :if len (_bbfad .String ())> 0{_caeaf .V =_eg .MakeString (_bbfad .String ());_bbafc (_caeaf ,_bbfad );};case *_eg .PdfObjectString :if len (_bbfad .String ())> 0{_caeaf .V =_bbfad ;
_bbafc (_caeaf ,_eg .MakeName (_bbfad .String ()));};default:_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u004e\u0045\u0058P\u0045\u0043\u0054\u0045\u0044\u0020\u0025\u0073\u0020\u002d>\u0020\u0025\u0076",_caeaf .PartialName (),_bbfad );
_caeaf .V =_bbfad ;};case *PdfFieldSignature :_dbg .Log .Debug ("\u0054\u004f\u0044\u004f\u003a \u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0061\u0070\u0070e\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u006e\u006f\u0074\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0079\u0065\u0074\u003a\u0020\u0025\u0073\u002f\u0025v",_caeaf .PartialName (),_bbfad );
};return nil ;};
// K returns the value of the key component of the color.
func (_eafe *PdfColorDeviceCMYK )K ()float64 {return _eafe [3]};func (_dcbdc *PdfWriter )writeObject (_abgbc int ,_gadad _eg .PdfObject ){_dbg .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_abgbc );if _egad ,_ggfec :=_gadad .(*_eg .PdfIndirectObject );
_ggfec {_dcbdc ._fadgbb [_abgbc ]=crossReference {Type :1,Offset :_dcbdc ._agecc ,Generation :_egad .GenerationNumber };_gbgbg :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_abgbc );if _ddccc ,_befde :=_egad .PdfObject .(*pdfSignDictionary );
_befde {_ddccc ._gfefg =_dcbdc ._agecc +int64 (len (_gbgbg ));};if _egad .PdfObject ==nil {_dbg .Log .Debug ("E\u0072\u0072\u006fr\u003a\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0027\u0073\u0020\u0050\u0064\u0066\u004f\u0062j\u0065\u0063\u0074 \u0073\u0068\u006f\u0075\u006c\u0064\u0020\u006e\u0065\u0076\u0065\u0072\u0020b\u0065\u0020\u006e\u0069l\u0020\u002d\u0020\u0073e\u0074\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0050\u0064\u0066\u004f\u0062\u006a\u0065\u0063t\u004e\u0075\u006c\u006c");
_egad .PdfObject =_eg .MakeNull ();};_gbgbg +=_egad .PdfObject .WriteString ();_gbgbg +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_dcbdc .writeString (_gbgbg );return ;};if _egecf ,_cdccb :=_gadad .(*_eg .PdfObjectStream );_cdccb {_dcbdc ._fadgbb [_abgbc ]=crossReference {Type :1,Offset :_dcbdc ._agecc ,Generation :_egecf .GenerationNumber };
_bebdd :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_abgbc );_bebdd +=_egecf .PdfObjectDictionary .WriteString ();_bebdd +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_dcbdc .writeString (_bebdd );_dcbdc .writeBytes (_egecf .Stream );
_dcbdc .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _gaabb ,_abacd :=_gadad .(*_eg .PdfObjectStreams );_abacd {_dcbdc ._fadgbb [_abgbc ]=crossReference {Type :1,Offset :_dcbdc ._agecc ,Generation :_gaabb .GenerationNumber };
_ggcdf :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_abgbc );var _fgbf []string ;var _cbfaf string ;var _fdead int64 ;for _ddgcde ,_eeafb :=range _gaabb .Elements (){_dedae ,_afgcf :=_eeafb .(*_eg .PdfIndirectObject );if !_afgcf {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0073\u0074\u0072\u0065am\u0073 \u004e\u0020\u0025\u0064\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006es\u0020\u006e\u006f\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u0070\u0064\u0066 \u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0076",_abgbc ,_eeafb );
continue ;};_defb :=_dedae .PdfObject .WriteString ()+"\u0020";_cbfaf =_cbfaf +_defb ;_fgbf =append (_fgbf ,_e .Sprintf ("\u0025\u0064\u0020%\u0064",_dedae .ObjectNumber ,_fdead ));_dcbdc ._fadgbb [int (_dedae .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_abgbc ,Index :_ddgcde };
_fdead =_fdead +int64 (len ([]byte (_defb )));};_gdcae :=_dc .Join (_fgbf ,"\u0020")+"\u0020";_dacbd :=_eg .NewFlateEncoder ();_cacgg :=_dacbd .MakeStreamDict ();_cacgg .Set (_eg .PdfObjectName ("\u0054\u0079\u0070\u0065"),_eg .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));
_accaeb :=int64 (_gaabb .Len ());_cacgg .Set (_eg .PdfObjectName ("\u004e"),_eg .MakeInteger (_accaeb ));_fgaga :=int64 (len (_gdcae ));_cacgg .Set (_eg .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_eg .MakeInteger (_fgaga ));_aaggg ,_ :=_dacbd .EncodeBytes ([]byte (_gdcae +_cbfaf ));
_abfdag :=int64 (len (_aaggg ));_cacgg .Set (_eg .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_eg .MakeInteger (_abfdag ));_ggcdf +=_cacgg .WriteString ();_ggcdf +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_dcbdc .writeString (_ggcdf );
_dcbdc .writeBytes (_aaggg );_dcbdc .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_dcbdc .writeString (_gadad .WriteString ());};func (_afegd *pdfFontType3 )baseFields ()*fontCommon {return &_afegd .fontCommon };
// ToPdfObject implements interface PdfModel.
func (_gfgc *PdfBorderStyle )ToPdfObject ()_eg .PdfObject {_cfee :=_eg .MakeDict ();if _gfgc ._cbeg !=nil {if _edfd ,_acac :=_gfgc ._cbeg .(*_eg .PdfIndirectObject );_acac {_edfd .PdfObject =_cfee ;};};_cfee .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));
if _gfgc .W !=nil {_cfee .Set ("\u0057",_eg .MakeFloat (*_gfgc .W ));};if _gfgc .S !=nil {_cfee .Set ("\u0053",_eg .MakeName (_gfgc .S .GetPdfName ()));};if _gfgc .D !=nil {_cfee .Set ("\u0044",_eg .MakeArrayFromIntegers (*_gfgc .D ));};if _gfgc ._cbeg !=nil {return _gfgc ._cbeg ;
};return _cfee ;};
// SetPatternByName sets a pattern resource specified by keyName.
func (_bcbedb *PdfPageResources )SetPatternByName (keyName _eg .PdfObjectName ,pattern _eg .PdfObject )error {if _bcbedb .Pattern ==nil {_bcbedb .Pattern =_eg .MakeDict ();};_afcb ,_gbff :=_bcbedb .Pattern .(*_eg .PdfObjectDictionary );if !_gbff {return _eg .ErrTypeError ;
};_afcb .Set (keyName ,pattern );return nil ;};
// SetDate sets the `M` field of the signature.
func (_bcgaf *PdfSignature )SetDate (date _ee .Time ,format string ){if format ==""{format ="\u0044\u003a\u003200\u0036\u0030\u0031\u0030\u0032\u0031\u0035\u0030\u0034\u0030\u0035\u002d\u0030\u0037\u0027\u0030\u0030\u0027";};_bcgaf .M =_eg .MakeString (date .Format (format ));
};
// NewPdfColorLab returns a new Lab color.
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_becd :=PdfColorLab {l ,a ,b };return &_becd };
// PdfActionURI represents an URI action.
type PdfActionURI struct{*PdfAction ;URI _eg .PdfObject ;IsMap _eg .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_bgdbb *PdfSignature )ToPdfObject ()_eg .PdfObject {_egaeg :=_bgdbb ._ffae ;var _gfcd *_eg .PdfObjectDictionary ;if _ffddd ,_bcef :=_egaeg .PdfObject .(*pdfSignDictionary );_bcef {_gfcd =_ffddd .PdfObjectDictionary ;}else {_gfcd =_egaeg .PdfObject .(*_eg .PdfObjectDictionary );
};_gfcd .SetIfNotNil ("\u0054\u0079\u0070\u0065",_bgdbb .Type );_gfcd .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_bgdbb .Filter );_gfcd .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_bgdbb .SubFilter );_gfcd .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_bgdbb .ByteRange );
_gfcd .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_bgdbb .Contents );_gfcd .SetIfNotNil ("\u0043\u0065\u0072\u0074",_bgdbb .Cert );_gfcd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bgdbb .Name );_gfcd .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_bgdbb .Reason );
_gfcd .SetIfNotNil ("\u004d",_bgdbb .M );_gfcd .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_bgdbb .Reference );_gfcd .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_bgdbb .Changes );_gfcd .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_bgdbb .ContactInfo );
return _egaeg ;};
// ToPdfObject implements interface PdfModel.
func (_cgbe *PdfAnnotationText )ToPdfObject ()_eg .PdfObject {_cgbe .PdfAnnotation .ToPdfObject ();_cbcd :=_cgbe ._gag ;_dgfe :=_cbcd .PdfObject .(*_eg .PdfObjectDictionary );if _cgbe .PdfAnnotationMarkup !=nil {_cgbe .PdfAnnotationMarkup .appendToPdfDictionary (_dgfe );
};_dgfe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0054\u0065\u0078\u0074"));_dgfe .SetIfNotNil ("\u004f\u0070\u0065\u006e",_cgbe .Open );_dgfe .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cgbe .Name );_dgfe .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_cgbe .State );
_dgfe .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_cgbe .StateModel );return _cbcd ;};
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
func (_ffgee *modelManager )GetModelFromPrimitive (primitive _eg .PdfObject )PdfModel {model ,_deac :=_ffgee ._bfgf [primitive ];if !_deac {return nil ;};return model ;};
// NewPdfReaderLazy creates a new PdfReader for `rs` in lazy-loading mode. The difference
// from NewPdfReader is that in lazy-loading mode, objects are only loaded into memory when needed
// rather than entire structure being loaded into memory on reader creation.
// Note that it may make sense to use the lazy-load reader when processing only parts of files,
// rather than loading entire file into memory. Example: splitting a few pages from a large PDF file.
func NewPdfReaderLazy (rs _de .ReadSeeker )(*PdfReader ,error ){const _gecec ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";_ccfb :=&PdfReader {_addac :rs ,_gadge :map[_eg .PdfObject ]struct{}{},_gced :_dbbge (),_bebe :true };
_bcdf ,_edbfc :=_fccgd ("\u0072");if _edbfc !=nil {return nil ,_edbfc ;};_edbfc =_dd .Track (_bcdf ,_gecec );if _edbfc !=nil {return nil ,_edbfc ;};_ccfb ._ebcgb =_bcdf ;_efeff ,_edbfc :=_eg .NewParser (rs );if _edbfc !=nil {return nil ,_edbfc ;};_ccfb ._cdggc =_efeff ;
_aefab ,_edbfc :=_ccfb .IsEncrypted ();if _edbfc !=nil {return nil ,_edbfc ;};if !_aefab {_edbfc =_ccfb .loadStructure ();if _edbfc !=nil {return nil ,_edbfc ;};};return _ccfb ,nil ;};
// PdfColorPattern represents a pattern color.
type PdfColorPattern struct{Color PdfColor ;PatternName _eg .PdfObjectName ;};
// PdfColorDeviceGray represents a grayscale color value that shall be represented by a single number in the
// range 0.0 to 1.0 where 0.0 corresponds to black and 1.0 to white.
type PdfColorDeviceGray float64 ;
// PdfShading represents a shading dictionary. There are 7 types of shading,
// indicatedby the shading type variable:
// 1: Function-based shading.
// 2: Axial shading.
// 3: Radial shading.
// 4: Free-form Gouraud-shaded triangle mesh.
// 5: Lattice-form Gouraud-shaded triangle mesh.
// 6: Coons patch mesh.
// 7: Tensor-product patch mesh.
// types 4-7 are contained in a stream object, where the dictionary is given by the stream dictionary.
type PdfShading struct{ShadingType *_eg .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_eg .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_eg .PdfObjectBool ;_ccdbe PdfModel ;_beag _eg .PdfObject ;};
// AppendContentBytes creates a PDF stream from `cs` and appends it to the
// array of streams specified by the pages's Contents entry.
// If `wrapContents` is true, the content stream of the page is wrapped using
// a `q/Q` operator pair, so that its state does not affect the appended
// content stream.
func (_cgbcf *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_adddc :=_cgbcf .GetContentStreamObjs ();wrapContents =wrapContents &&len (_adddc )> 0;_fedg :=_eg .NewFlateEncoder ();_fbfcc :=_eg .MakeArray ();if wrapContents {_dabdg ,_egdac :=_eg .MakeStream ([]byte ("\u0071\u000a"),_fedg );
if _egdac !=nil {return _egdac ;};_fbfcc .Append (_dabdg );};_fbfcc .Append (_adddc ...);if wrapContents {_eagb ,_aefbd :=_eg .MakeStream ([]byte ("\u000a\u0051\u000a"),_fedg );if _aefbd !=nil {return _aefbd ;};_fbfcc .Append (_eagb );};_cgcfd ,_dfcdc :=_eg .MakeStream (cs ,_fedg );
if _dfcdc !=nil {return _dfcdc ;};_fbfcc .Append (_cgcfd );_cgbcf .Contents =_fbfcc ;return nil ;};
// NewPdfDate returns a new PdfDate object from a PDF date string (see 7.9.4 Dates).
// format: "D: YYYYMMDDHHmmSSOHH'mm"
func NewPdfDate (dateStr string )(PdfDate ,error ){_badb :=PdfDate {};_fcebc :=_gdeaa .FindAllStringSubmatch (dateStr ,1);if len (_fcebc )< 1{return _badb ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0065\u0020s\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0073\u0029",dateStr );
};if len (_fcebc [0])!=10{return _badb ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0067\u0065\u0078p\u0020\u0067\u0072\u006f\u0075\u0070 \u006d\u0061\u0074\u0063\u0068\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020!\u003d\u0020\u0031\u0030");
};_badb ._cggcf ,_ =_db .ParseInt (_fcebc [0][1],10,32);_badb ._agfdbf ,_ =_db .ParseInt (_fcebc [0][2],10,32);_badb ._ebfff ,_ =_db .ParseInt (_fcebc [0][3],10,32);_badb ._bfabc ,_ =_db .ParseInt (_fcebc [0][4],10,32);_badb ._edagg ,_ =_db .ParseInt (_fcebc [0][5],10,32);
_badb ._ggcbe ,_ =_db .ParseInt (_fcebc [0][6],10,32);if len (_fcebc [0][7])> 0{_badb ._facfb =_fcebc [0][7][0];}else {_badb ._facfb ='+';};if len (_fcebc [0][8])> 0{_badb ._gaggg ,_ =_db .ParseInt (_fcebc [0][8],10,32);}else {_badb ._gaggg =0;};if len (_fcebc [0][9])> 0{_badb ._daabe ,_ =_db .ParseInt (_fcebc [0][9],10,32);
}else {_badb ._daabe =0;};return _badb ,nil ;};func _gbbe (_cca _eg .PdfObject )(*PdfFilespec ,error ){if _cca ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_cca );};var (CourierName =_ab .CourierName ;CourierBoldName =_ab .CourierBoldName ;CourierObliqueName =_ab .CourierObliqueName ;
CourierBoldObliqueName =_ab .CourierBoldObliqueName ;HelveticaName =_ab .HelveticaName ;HelveticaBoldName =_ab .HelveticaBoldName ;HelveticaObliqueName =_ab .HelveticaObliqueName ;HelveticaBoldObliqueName =_ab .HelveticaBoldObliqueName ;SymbolName =_ab .SymbolName ;
ZapfDingbatsName =_ab .ZapfDingbatsName ;TimesRomanName =_ab .TimesRomanName ;TimesBoldName =_ab .TimesBoldName ;TimesItalicName =_ab .TimesItalicName ;TimesBoldItalicName =_ab .TimesBoldItalicName ;);
// ColorToRGB verifies that the input color is an RGB color. Method exists in
// order to satisfy the PdfColorspace interface.
func (_eee *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_ccgdg ,_gfeff :=color .(*PdfColorDeviceRGB );if !_gfeff {_dbg .Log .Debug ("\u0049\u006e\u0070\u0075\u0074\u0020\u0063\u006f\u006c\u006f\u0072 \u006e\u006f\u0074\u0020\u0064\u0065\u0076\u0069\u0063\u0065 \u0052\u0047\u0042");
return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _ccgdg ,nil ;};
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_bef :=&PdfColorspaceDeviceN {};return _bef };
// AddWatermarkImage adds a watermark to the page.
func (_gbgfag *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_gfbfe ,_dcbfc :=_gbgfag .GetMediaBox ();if _dcbfc !=nil {return _dcbfc ;};_gbgbe :=_gfbfe .Urx -_gfbfe .Llx ;_abdf :=_gfbfe .Ury -_gfbfe .Lly ;_aebeb :=float64 (*ximg .Width );
_fgacc :=(_gbgbe -_aebeb )/2;if opt .FitToWidth {_aebeb =_gbgbe ;_fgacc =0;};_fabd :=_abdf ;_gcbg :=float64 (0);if opt .PreserveAspectRatio {_fabd =_aebeb *float64 (*ximg .Height )/float64 (*ximg .Width );_gcbg =(_abdf -_fabd )/2;};if _gbgfag .Resources ==nil {_gbgfag .Resources =NewPdfPageResources ();
};_fgba :=0;_fbaeg :=_eg .PdfObjectName (_e .Sprintf ("\u0049\u006d\u0077%\u0064",_fgba ));for _gbgfag .Resources .HasXObjectByName (_fbaeg ){_fgba ++;_fbaeg =_eg .PdfObjectName (_e .Sprintf ("\u0049\u006d\u0077%\u0064",_fgba ));};_dcbfc =_gbgfag .AddImageResource (_fbaeg ,ximg );
if _dcbfc !=nil {return _dcbfc ;};_fgba =0;_afbag :=_eg .PdfObjectName (_e .Sprintf ("\u0047\u0053\u0025\u0064",_fgba ));for _gbgfag .HasExtGState (_afbag ){_fgba ++;_afbag =_eg .PdfObjectName (_e .Sprintf ("\u0047\u0053\u0025\u0064",_fgba ));};_dggcd :=_eg .MakeDict ();
_dggcd .Set ("\u0042\u004d",_eg .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_dggcd .Set ("\u0043\u0041",_eg .MakeFloat (opt .Alpha ));_dggcd .Set ("\u0063\u0061",_eg .MakeFloat (opt .Alpha ));_dcbfc =_gbgfag .AddExtGState (_afbag ,_dggcd );if _dcbfc !=nil {return _dcbfc ;
};_affcc :=_e .Sprintf ("\u0071\u000a"+"\u002f%\u0073\u0020\u0067\u0073\u000a"+"%\u002e\u0030\u0066\u0020\u0030\u00200\u0020\u0025\u002e\u0030\u0066\u0020\u0025\u002e\u0034f\u0020\u0025\u002e4\u0066 \u0063\u006d\u000a"+"\u002f%\u0073\u0020\u0044\u006f\u000a"+"\u0051",_afbag ,_aebeb ,_fabd ,_fgacc ,_gcbg ,_fbaeg );
_gbgfag .AddContentStreamByString (_affcc );return nil ;};
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
func (_ddcb *pdfCIDFontType0 )ToPdfObject ()_eg .PdfObject {return _eg .MakeNull ()};func (_beea *pdfCIDFontType2 )baseFields ()*fontCommon {return &_beea .fontCommon };
// Evaluate runs the function. Input is [x1 x2 x3].
func (_fcefe *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _fcefe ._fdgac ==nil {_fcefe ._fdgac =_ea .NewPSExecutor (_fcefe .Program );};var _febbe []_ea .PSObject ;for _ ,_ebbfg :=range xVec {_febbe =append (_febbe ,_ea .MakeReal (_ebbfg ));
};_bdfbb ,_egfdf :=_fcefe ._fdgac .Execute (_febbe );if _egfdf !=nil {return nil ,_egfdf ;};_ggded ,_egfdf :=_ea .PSObjectArrayToFloat64Array (_bdfbb );if _egfdf !=nil {return nil ,_egfdf ;};return _ggded ,nil ;};
// NewPdfFontFromTTFFile loads a TTF font file and returns a PdfFont type
// that can be used in text styling functions.
// Uses a WinAnsiTextEncoder and loads only character codes 32-255.
// NOTE: For composite fonts such as used in symbolic languages, use NewCompositePdfFontFromTTFFile.
func NewPdfFontFromTTFFile (filePath string )(*PdfFont ,error ){_efed ,_agfdb :=_bg .Open (filePath );if _agfdb !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0072\u0065\u0061\u0064\u0069\u006e\u0067\u0020T\u0054F\u0020\u0066\u006f\u006e\u0074\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_agfdb );
return nil ,_agfdb ;};defer _efed .Close ();return NewPdfFontFromTTF (_efed );};var _ _eg .PdfObject =&pdfSignDictionary {};
// SetContentStream updates the content stream with specified encoding.
// If encoding is null, will use the xform.Filter object or Raw encoding if not set.
func (_edbeec *XObjectForm )SetContentStream (content []byte ,encoder _eg .StreamEncoder )error {_gbbfb :=content ;if encoder ==nil {if _edbeec .Filter !=nil {encoder =_edbeec .Filter ;}else {encoder =_eg .NewRawEncoder ();};};_gfabc ,_dcaa :=encoder .EncodeBytes (_gbbfb );
if _dcaa !=nil {return _dcaa ;};_gbbfb =_gfabc ;_edbeec .Stream =_gbbfb ;_edbeec .Filter =encoder ;return nil ;};
// GetNumComponents returns the number of color components (1 for Indexed).
func (_afgce *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};
// ToPdfObject returns the PDF representation of the colorspace.
func (_bbeaa *PdfPageResourcesColorspaces )ToPdfObject ()_eg .PdfObject {_fcbc :=_eg .MakeDict ();for _ ,_gfcc :=range _bbeaa .Names {_fcbc .Set (_eg .PdfObjectName (_gfcc ),_bbeaa .Colorspaces [_gfcc ].ToPdfObject ());};if _bbeaa ._abbc !=nil {_bbeaa ._abbc .PdfObject =_fcbc ;
return _bbeaa ._abbc ;};return _fcbc ;};
// PdfBorderEffect represents a PDF border effect.
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
// GetContentStreamObjs returns a slice of PDF objects containing the content
// streams of the page.
func (_eeee *PdfPage )GetContentStreamObjs ()[]_eg .PdfObject {if _eeee .Contents ==nil {return nil ;};_bbgc :=_eg .TraceToDirectObject (_eeee .Contents );if _accae ,_ddfe :=_bbgc .(*_eg .PdfObjectArray );_ddfe {return _accae .Elements ();};return []_eg .PdfObject {_bbgc };
};
// DSS represents a Document Security Store dictionary.
// The DSS dictionary contains both global and signature specific validation
// information. The certificates and revocation data in the `Certs`, `OCSPs`,
// and `CRLs` fields can be used to validate any signature in the document.
// Additionally, the VRI entry contains validation data per signature.
// The keys in the VRI entry are calculated as upper(hex(sha1(sig.Contents))).
// The values are VRI dictionaries containing certificates and revocation
// information used for validating a single signature.
// See ETSI TS 102 778-4 V1.1.1 for more information.
type DSS struct{_gded *_eg .PdfIndirectObject ;Certs []*_eg .PdfObjectStream ;OCSPs []*_eg .PdfObjectStream ;CRLs []*_eg .PdfObjectStream ;VRI map[string ]*VRI ;_gaad map[string ]*_eg .PdfObjectStream ;_geeeb map[string ]*_eg .PdfObjectStream ;_fgbdb map[string ]*_eg .PdfObjectStream ;
};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_dbaac *PdfShadingType2 )ToPdfObject ()_eg .PdfObject {_dbaac .PdfShading .ToPdfObject ();_cbdea ,_fcfcf :=_dbaac .getShadingDict ();if _fcfcf !=nil {_dbg .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
return nil ;};if _cbdea ==nil {_dbg .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _dbaac .Coords !=nil {_cbdea .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_dbaac .Coords );
};if _dbaac .Domain !=nil {_cbdea .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dbaac .Domain );};if _dbaac .Function !=nil {if len (_dbaac .Function )==1{_cbdea .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dbaac .Function [0].ToPdfObject ());
}else {_ddade :=_eg .MakeArray ();for _ ,_eeecg :=range _dbaac .Function {_ddade .Append (_eeecg .ToPdfObject ());};_cbdea .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ddade );};};if _dbaac .Extend !=nil {_cbdea .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_dbaac .Extend );
};return _dbaac ._beag ;};
// M returns the value of the magenta component of the color.
func (_aedc *PdfColorDeviceCMYK )M ()float64 {return _aedc [1]};func (_dgdf *PdfReader )newPdfActionURIFromDict (_bccf *_eg .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_bccf .Get ("\u0055\u0052\u0049"),IsMap :_bccf .Get ("\u0049\u0073\u004da\u0070")},nil ;
};
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
func (_cabcg *PdfReader )PageFromIndirectObject (ind *_eg .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_cabcg .PageList )!=len (_cabcg ._dfff ){return nil ,0,_bbd .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};for _ecec ,_dcegf :=range _cabcg ._dfff {if _dcegf ==ind {return _cabcg .PageList [_ecec ],_ecec +1,nil ;};};return nil ,0,_bbd .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
// GetContainingPdfObject returns the container of the shading object (indirect object).
func (_cfeff *PdfShading )GetContainingPdfObject ()_eg .PdfObject {return _cfeff ._beag };
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
func (_dbdeb DefaultImageHandler )NewImageFromGoImage (goimg _ec .Image )(*Image ,error ){_cdfc ,_fbfdf :=_ff .FromGoImage (goimg );if _fbfdf !=nil {return nil ,_fbfdf ;};_ecadg :=_egbde (_cdfc .Base ());return &_ecadg ,nil ;};func (_acc *PdfReader )newPdfActionMovieFromDict (_gdf *_eg .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_gdf .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_gdf .Get ("\u0054"),Operation :_gdf .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;
};
// ColorToRGB converts an Indexed color to an RGB color.
func (_gfaac *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _gfaac .Base ==nil {return nil ,_bbd .New ("\u0069\u006e\u0064\u0065\u0078\u0065d\u0020\u0062\u0061\u0073\u0065\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065\u0020\u0075\u006e\u0064\u0065f\u0069\u006e\u0065\u0064");
};return _gfaac .Base .ColorToRGB (color );};
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
func (_acfd *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_afcgf ,_bbadce :=_eg .GetNumbersAsFloat (objects );
if _bbadce !=nil {return nil ,_bbadce ;};return _acfd .ColorFromFloats (_afcgf );};
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
// from the input dictionary.
func NewPdfPageResourcesFromDict (dict *_eg .PdfObjectDictionary )(*PdfPageResources ,error ){_beefb :=NewPdfPageResources ();if _gfefe :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_gfefe !=nil {_beefb .ExtGState =_gfefe ;};if _eaadf :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");
_eaadf !=nil &&!_eg .IsNullObject (_eaadf ){_beefb .ColorSpace =_eaadf ;};if _gfda :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_gfda !=nil {_beefb .Pattern =_gfda ;};if _egcbb :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_egcbb !=nil {_beefb .Shading =_egcbb ;
};if _ebcac :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_ebcac !=nil {_beefb .XObject =_ebcac ;};if _dccae :=_eg .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_dccae !=nil {_beefb .Font =_dccae ;};if _adee :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");
_adee !=nil {_beefb .ProcSet =_adee ;};if _cacdg :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_cacdg !=nil {_beefb .Properties =_cacdg ;};return _beefb ,nil ;};
// ToPdfObject returns the PDF representation of the function.
func (_ggggd *PdfFunctionType0 )ToPdfObject ()_eg .PdfObject {if _ggggd ._bafa ==nil {_ggggd ._bafa =&_eg .PdfObjectStream {};};_bcgd :=_eg .MakeDict ();_bcgd .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eg .MakeInteger (0));
_dcbe :=&_eg .PdfObjectArray {};for _ ,_dagd :=range _ggggd .Domain {_dcbe .Append (_eg .MakeFloat (_dagd ));};_bcgd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dcbe );_aaeb :=&_eg .PdfObjectArray {};for _ ,_aceb :=range _ggggd .Range {_aaeb .Append (_eg .MakeFloat (_aceb ));
};_bcgd .Set ("\u0052\u0061\u006eg\u0065",_aaeb );_fgfab :=&_eg .PdfObjectArray {};for _ ,_feggf :=range _ggggd .Size {_fgfab .Append (_eg .MakeInteger (int64 (_feggf )));};_bcgd .Set ("\u0053\u0069\u007a\u0065",_fgfab );_bcgd .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_eg .MakeInteger (int64 (_ggggd .BitsPerSample )));
if _ggggd .Order !=1{_bcgd .Set ("\u004f\u0072\u0064e\u0072",_eg .MakeInteger (int64 (_ggggd .Order )));};_bcgd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_ggggd ._ebad ))));_ggggd ._bafa .Stream =_ggggd ._ebad ;_ggggd ._bafa .PdfObjectDictionary =_bcgd ;
return _ggggd ._bafa ;};
// NewPdfRectangle creates a PDF rectangle object based on an input array of 4 integers.
// Defining the lower left (LL) and upper right (UR) corners with
// floating point numbers.
func NewPdfRectangle (arr _eg .PdfObjectArray )(*PdfRectangle ,error ){_bcge :=PdfRectangle {};if arr .Len ()!=4{return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u0072\u0065\u0063\u0074\u0061\u006e\u0067\u006c\u0065\u0020\u0061\u0072r\u0061\u0079\u002c\u0020\u006c\u0065\u006e \u0021\u003d\u0020\u0034");
};var _fbefc error ;_bcge .Llx ,_fbefc =_eg .GetNumberAsFloat (arr .Get (0));if _fbefc !=nil {return nil ,_fbefc ;};_bcge .Lly ,_fbefc =_eg .GetNumberAsFloat (arr .Get (1));if _fbefc !=nil {return nil ,_fbefc ;};_bcge .Urx ,_fbefc =_eg .GetNumberAsFloat (arr .Get (2));
if _fbefc !=nil {return nil ,_fbefc ;};_bcge .Ury ,_fbefc =_eg .GetNumberAsFloat (arr .Get (3));if _fbefc !=nil {return nil ,_fbefc ;};return &_bcge ,nil ;};func _dgfc (_efecc *_eg .PdfObjectDictionary )*VRI {_edadb ,_ :=_eg .GetString (_efecc .Get ("\u0054\u0055"));
_cfea ,_ :=_eg .GetString (_efecc .Get ("\u0054\u0053"));return &VRI {Cert :_feed (_efecc .Get ("\u0043\u0065\u0072\u0074")),OCSP :_feed (_efecc .Get ("\u004f\u0043\u0053\u0050")),CRL :_feed (_efecc .Get ("\u0043\u0052\u004c")),TU :_edadb ,TS :_cfea };
};
// FlattenFields flattens the form fields and annotations for the PDF loaded in `pdf` and makes
// non-editable.
// Looks up all widget annotations corresponding to form fields and flattens them by drawing the content
// through the content stream rather than annotations.
// References to flattened annotations will be removed from Page Annots array. For fields the AcroForm entry
// will be emptied.
// When `allannots` is true, all annotations will be flattened. Keep false if want to keep non-form related
// annotations intact.
// When `appgen` is not nil, it will be used to generate appearance streams for the field annotations.
func (_cefc *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _cefc .flattenFieldsWithOpts (allannots ,appgen ,nil );};
// SetAction sets the PDF action for the annotation link.
func (_cdec *PdfAnnotationLink )SetAction (action *PdfAction ){_cdec ._cecf =action ;if action ==nil {_cdec .A =nil ;};};
// PdfAnnotationScreen represents Screen annotations.
// (Section 12.5.6.18).
type PdfAnnotationScreen struct{*PdfAnnotation ;T _eg .PdfObject ;MK _eg .PdfObject ;A _eg .PdfObject ;AA _eg .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_cfdde *PdfAnnotationTrapNet )ToPdfObject ()_eg .PdfObject {_cfdde .PdfAnnotation .ToPdfObject ();_fabb :=_cfdde ._gag ;_dgcc :=_fabb .PdfObject .(*_eg .PdfObjectDictionary );_dgcc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));
return _fabb ;};
// ToPdfObject implements interface PdfModel.
func (_bbe *PdfActionRendition )ToPdfObject ()_eg .PdfObject {_bbe .PdfAction .ToPdfObject ();_ged :=_bbe ._ege ;_cef :=_ged .PdfObject .(*_eg .PdfObjectDictionary );_cef .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeRendition )));_cef .SetIfNotNil ("\u0052",_bbe .R );
_cef .SetIfNotNil ("\u0041\u004e",_bbe .AN );_cef .SetIfNotNil ("\u004f\u0050",_bbe .OP );_cef .SetIfNotNil ("\u004a\u0053",_bbe .JS );return _ged ;};func _abff (_ddfbd []rune ,_aabe map[rune ]int ,_debbe map[rune ]_ab .GID )*_eg .PdfObjectArray {_gcbcc :=&_eg .PdfObjectArray {};
for _egdab :=0;_egdab < len (_ddfbd );{_fgad :=_aabe [_ddfbd [_egdab ]];_bfdd :=_egdab ;for _cefd :=_egdab +1;_cefd < len (_ddfbd );_cefd ++{_acgab :=_aabe [_ddfbd [_cefd ]];if _fgad ==_acgab {_bfdd =_cefd ;}else {break ;};};_fecc :=_debbe [_ddfbd [_egdab ]];
_ebgge :=_debbe [_ddfbd [_bfdd ]];_gcbcc .Append (_eg .MakeInteger (int64 (_fecc )));_gcbcc .Append (_eg .MakeInteger (int64 (_ebgge )));_gcbcc .Append (_eg .MakeInteger (int64 (_fgad )));_egdab =_bfdd +1;};return _gcbcc ;};func _efeb (_cacd *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_cacd }};
// GetContainingPdfObject implements interface PdfModel.
func (_cdbgg *PdfSignature )GetContainingPdfObject ()_eg .PdfObject {return _cdbgg ._ffae };
// SetColorSpace sets `r` colorspace object to `colorspace`.
func (_afeeg *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_afeeg ._gecbc =colorspace ;};
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
// AcroForm dictionary.
func (_bagae *PdfAcroForm )ToPdfObject ()_eg .PdfObject {_cfgc :=_bagae ._edeaf ;_fffed :=_cfgc .PdfObject .(*_eg .PdfObjectDictionary );if _bagae .Fields !=nil {_ccea :=_eg .PdfObjectArray {};for _ ,_cafcb :=range *_bagae .Fields {_gadd :=_cafcb .GetContext ();
if _gadd !=nil {_ccea .Append (_gadd .ToPdfObject ());}else {_ccea .Append (_cafcb .ToPdfObject ());};};_fffed .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_ccea );};if _bagae .NeedAppearances !=nil {_fffed .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_bagae .NeedAppearances );
};if _bagae .SigFlags !=nil {_fffed .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_bagae .SigFlags );};if _bagae .CO !=nil {_fffed .Set ("\u0043\u004f",_bagae .CO );};if _bagae .DR !=nil {_fffed .Set ("\u0044\u0052",_bagae .DR .ToPdfObject ());
};if _bagae .DA !=nil {_fffed .Set ("\u0044\u0041",_bagae .DA );};if _bagae .Q !=nil {_fffed .Set ("\u0051",_bagae .Q );};if _bagae .XFA !=nil {_fffed .Set ("\u0058\u0046\u0041",_bagae .XFA );};return _cfgc ;};
// PdfColorCalRGB represents a color in the Colorimetric CIE RGB colorspace.
// A, B, C components
// Each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorCalRGB [3]float64 ;
// PdfAction represents an action in PDF (section 12.6 p. 412).
type PdfAction struct{_cea PdfModel ;Type _eg .PdfObject ;S _eg .PdfObject ;Next _eg .PdfObject ;_ege *_eg .PdfIndirectObject ;};
// GetNumComponents returns the number of color components of the underlying
// colorspace device.
func (_deda *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _deda .UnderlyingCS .GetNumComponents ();};
// NewPdfAnnotationText returns a new text annotation.
func NewPdfAnnotationText ()*PdfAnnotationText {_bgb :=NewPdfAnnotation ();_afg :=&PdfAnnotationText {};_afg .PdfAnnotation =_bgb ;_afg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bgb .SetContext (_afg );return _afg ;};
// GetColorspaces loads PdfPageResourcesColorspaces from `r.ColorSpace` and returns an error if there
// is a problem loading. Once loaded, the same object is returned on multiple calls.
func (_fegec *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _fegec ._gecbc !=nil {return _fegec ._gecbc ,nil ;};if _fegec .ColorSpace ==nil {return nil ,nil ;};_geaba ,_acaeg :=_cfafcb (_fegec .ColorSpace );if _acaeg !=nil {return nil ,_acaeg ;
};_fegec ._gecbc =_geaba ;return _fegec ._gecbc ,nil ;};func (_cfcaf *PdfReader )newPdfAnnotationSquareFromDict (_fbc *_eg .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_cbgb :=PdfAnnotationSquare {};_dbdg ,_bbcg :=_cfcaf .newPdfAnnotationMarkupFromDict (_fbc );
if _bbcg !=nil {return nil ,_bbcg ;};_cbgb .PdfAnnotationMarkup =_dbdg ;_cbgb .BS =_fbc .Get ("\u0042\u0053");_cbgb .IC =_fbc .Get ("\u0049\u0043");_cbgb .BE =_fbc .Get ("\u0042\u0045");_cbgb .RD =_fbc .Get ("\u0052\u0044");return &_cbgb ,nil ;};
// PdfInfoTrapped specifies pdf trapped information.
type PdfInfoTrapped string ;
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_efb :=NewPdfAction ();_ccgg :=&PdfActionGoTo3DView {};_ccgg .PdfAction =_efb ;_efb .SetContext (_ccgg );return _ccgg ;};
// FieldFlattenOpts defines a set of options which can be used to configure
// the field flattening process.
type FieldFlattenOpts struct{
// FilterFunc allows filtering the form fields used in the flattening
// process. If the filter function returns true, the field is flattened,
// otherwise it is skipped.
// If a non-terminal field is discarded, all of its children (the fields
// present in the Kids array) are discarded as well.
// Non-terminal fields are kept in the AcroForm if one or more of their
// child fields have not been selected for flattening.
// If a filter function is not provided, all form fields are flattened.
FilterFunc FieldFilterFunc ;
// AnnotFilterFunc allows filtering the annotations in the flattening
// process. If the filter function returns true, the annotation is flattened,
// otherwise it is skipped.
AnnotFilterFunc AnnotFilterFunc ;};func _degbd (_aacc _eg .PdfObject )(*PdfColorspaceLab ,error ){_gdbc :=NewPdfColorspaceLab ();if _ddgf ,_adefd :=_aacc .(*_eg .PdfIndirectObject );_adefd {_gdbc ._fcef =_ddgf ;};_aacc =_eg .TraceToDirectObject (_aacc );
_cbeb ,_ggacg :=_aacc .(*_eg .PdfObjectArray );if !_ggacg {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cbeb .Len ()!=2{return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
};_aacc =_eg .TraceToDirectObject (_cbeb .Get (0));_ecad ,_ggacg :=_aacc .(*_eg .PdfObjectName );if !_ggacg {return nil ,_e .Errorf ("\u006c\u0061\u0062\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");
};if *_ecad !="\u004c\u0061\u0062"{return nil ,_e .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_aacc =_eg .TraceToDirectObject (_cbeb .Get (1));_agff ,_ggacg :=_aacc .(*_eg .PdfObjectDictionary );
if !_ggacg {return nil ,_e .Errorf ("c\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0020\u0069\u006ev\u0061l\u0069\u0064");};
_aacc =_agff .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_aacc =_eg .TraceToDirectObject (_aacc );_dbfg ,_ggacg :=_aacc .(*_eg .PdfObjectArray );if !_ggacg {return nil ,_e .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");
};if _dbfg .Len ()!=3{return nil ,_e .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");};_eed ,_bgdbf :=_dbfg .GetAsFloat64Slice ();
if _bgdbf !=nil {return nil ,_bgdbf ;};_gdbc .WhitePoint =_eed ;_aacc =_agff .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _aacc !=nil {_aacc =_eg .TraceToDirectObject (_aacc );_bfab ,_cbbd :=_aacc .(*_eg .PdfObjectArray );if !_cbbd {return nil ,_e .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");
};if _bfab .Len ()!=3{return nil ,_e .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");};_ggbc ,_afde :=_bfab .GetAsFloat64Slice ();
if _afde !=nil {return nil ,_afde ;};_gdbc .BlackPoint =_ggbc ;};_aacc =_agff .Get ("\u0052\u0061\u006eg\u0065");if _aacc !=nil {_aacc =_eg .TraceToDirectObject (_aacc );_bbce ,_dgecb :=_aacc .(*_eg .PdfObjectArray );if !_dgecb {_dbg .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
return nil ,_e .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bbce .Len ()!=4{_dbg .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");return nil ,_e .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};_dafa ,_fdggg :=_bbce .GetAsFloat64Slice ();if _fdggg !=nil {return nil ,_fdggg ;};_gdbc .Range =_dafa ;};return _gdbc ,nil ;};func (_faa *PdfReader )newPdfActionGotoEFromDict (_dda *_eg .PdfObjectDictionary )(*PdfActionGoToE ,error ){_cde ,_gc :=_gbbe (_dda .Get ("\u0046"));
if _gc !=nil {return nil ,_gc ;};return &PdfActionGoToE {D :_dda .Get ("\u0044"),NewWindow :_dda .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_dda .Get ("\u0054"),F :_cde },nil ;};
// ToJBIG2Image converts current image to the core.JBIG2Image.
func (_afee *Image )ToJBIG2Image ()(*_eg .JBIG2Image ,error ){_bgbge ,_agba :=_afee .ToGoImage ();if _agba !=nil {return nil ,_agba ;};return _eg .GoImageToJBIG2 (_bgbge ,_eg .JB2ImageAutoThreshold );};func (_afffd *PdfPage )setContainer (_fbbc *_eg .PdfIndirectObject ){_fbbc .PdfObject =_afffd ._ecbba ;
_afffd ._caaef =_fbbc ;};
// GetContainingPdfObject implements interface PdfModel.
func (_gbf *PdfAction )GetContainingPdfObject ()_eg .PdfObject {return _gbf ._ege };func (_cafge *PdfReader )loadAction (_aefe _eg .PdfObject )(*PdfAction ,error ){if _baag ,_beba :=_eg .GetIndirect (_aefe );_beba {_fdaa ,_ebdb :=_cafge .newPdfActionFromIndirectObject (_baag );
if _ebdb !=nil {return nil ,_ebdb ;};return _fdaa ,nil ;}else if !_eg .IsNullObject (_aefe ){return nil ,_bbd .New ("\u0061\u0063\u0074\u0069\u006fn\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074 \u0074\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
};return nil ,nil ;};
// PdfColorspaceDeviceRGB represents an RGB colorspace.
type PdfColorspaceDeviceRGB struct{};var (_bgffe =_ge .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");_bbed =_ge .MustCompile ("\u005e\u005cs\u002a\u002f\u0028\u005c\u0053\u002b\u003f\u0029\u005c\u0073\u002b\u0028\u002e\u002b\u003f\u0029\u005c\u0073\u002b\u0064\u0065\u0066\\s\u002a\u0024");
_dcadg =_ge .MustCompile ("\u005e\u005c\u0073*\u0064\u0075\u0070\u005c\u0073\u002b\u0028\u005c\u0064\u002b\u0029\u005c\u0073\u002a\u002f\u0028\u005c\u0077\u002b\u003f\u0029\u0028\u003f\u003a\u005c\u002e\u005c\u0064\u002b)\u003f\u005c\u0073\u002b\u0070\u0075\u0074\u0024");
_bdga ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_ccdf ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_fagc ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";
);
// SetImageHandler sets the image handler used by the package.
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_fcef *_eg .PdfIndirectObject ;};
// Val returns the color value.
func (_gceb *PdfColorDeviceGray )Val ()float64 {return float64 (*_gceb )};
// PdfVersion returns version of the PDF file.
func (_gbged *PdfReader )PdfVersion ()_eg .Version {return _gbged ._cdggc .PdfVersion ()};func (_dbc *PdfAppender )replaceObject (_eggc ,_egde _eg .PdfObject ){switch _ffgb :=_eggc .(type ){case *_eg .PdfIndirectObject :_dbc ._bddd [_egde ]=_ffgb .ObjectNumber ;
case *_eg .PdfObjectStream :_dbc ._bddd [_egde ]=_ffgb .ObjectNumber ;};};
// AppendContentStream adds content stream by string. Appends to the last
// contentstream instance if many.
func (_cdfcc *PdfPage )AppendContentStream (contentStr string )error {_bfbfg ,_dgaad :=_cdfcc .GetContentStreams ();if _dgaad !=nil {return _dgaad ;};if len (_bfbfg )==0{_bfbfg =[]string {contentStr };return _cdfcc .SetContentStreams (_bfbfg ,_eg .NewFlateEncoder ());
};var _caedc _cbd .Buffer ;_caedc .WriteString (_bfbfg [len (_bfbfg )-1]);_caedc .WriteString ("\u000a");_caedc .WriteString (contentStr );_bfbfg [len (_bfbfg )-1]=_caedc .String ();return _cdfcc .SetContentStreams (_bfbfg ,_eg .NewFlateEncoder ());};func (_dec *PdfReader )newPdfAnnotationLinkFromDict (_cagb *_eg .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_fgg :=PdfAnnotationLink {};
_fgg .A =_cagb .Get ("\u0041");_fgg .Dest =_cagb .Get ("\u0044\u0065\u0073\u0074");_fgg .H =_cagb .Get ("\u0048");_fgg .PA =_cagb .Get ("\u0050\u0041");_fgg .QuadPoints =_cagb .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_fgg .BS =_cagb .Get ("\u0042\u0053");
return &_fgg ,nil ;};func (_cff *PdfReader )newPdfAnnotationHighlightFromDict (_aed *_eg .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_deee :=PdfAnnotationHighlight {};_ddeb ,_gbbf :=_cff .newPdfAnnotationMarkupFromDict (_aed );if _gbbf !=nil {return nil ,_gbbf ;
};_deee .PdfAnnotationMarkup =_ddeb ;_deee .QuadPoints =_aed .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_deee ,nil ;};
// GetXObjectImageByName returns the XObjectImage with the specified name from the
// page resources, if it exists.
func (_cgadd *PdfPageResources )GetXObjectImageByName (keyName _eg .PdfObjectName )(*XObjectImage ,error ){_efagg ,_fgabb :=_cgadd .GetXObjectByName (keyName );if _efagg ==nil {return nil ,nil ;};if _fgabb !=XObjectTypeImage {return nil ,_bbd .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");
};_eeggg ,_eegcg :=NewXObjectImageFromStream (_efagg );if _eegcg !=nil {return nil ,_eegcg ;};return _eeggg ,nil ;};
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
// document revision.
func (_eccae *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_eccae .updateObjectsDeep (dss .ToPdfObject (),nil );};_eccae ._aegd =dss ;};
// GetContext returns the annotation context which contains the specific type-dependent context.
// The context represents the subannotation.
func (_bcba *PdfAnnotation )GetContext ()PdfModel {if _bcba ==nil {return nil ;};return _bcba ._ffbe ;};
// PdfAnnotationCircle represents Circle annotations.
// (Section 12.5.6.8).
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _eg .PdfObject ;IC _eg .PdfObject ;BE _eg .PdfObject ;RD _eg .PdfObject ;};
// PdfAnnotationInk represents Ink annotations.
// (Section 12.5.6.13).
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _eg .PdfObject ;BS _eg .PdfObject ;};
// AlphaMapFunc represents a alpha mapping function: byte -> byte. Can be used for
// thresholding the alpha channel, i.e. setting all alpha values below threshold to transparent.
type AlphaMapFunc func (_cfaad byte )byte ;
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_eg .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _eg .PdfObject ;A _eg .PdfObject ;SE _eg .PdfObject ;C _eg .PdfObject ;F _eg .PdfObject ;
_bfega *_eg .PdfIndirectObject ;};
// PdfActionLaunch represents a launch action.
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _eg .PdfObject ;Mac _eg .PdfObject ;Unix _eg .PdfObject ;NewWindow _eg .PdfObject ;};
// GetXObjectByName returns the XObject with the specified keyName and the object type.
func (_acfedg *PdfPageResources )GetXObjectByName (keyName _eg .PdfObjectName )(*_eg .PdfObjectStream ,XObjectType ){if _acfedg .XObject ==nil {return nil ,XObjectTypeUndefined ;};_daca ,_cfcbfb :=_eg .TraceToDirectObject (_acfedg .XObject ).(*_eg .PdfObjectDictionary );
if !_cfcbfb {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0021\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_eg .TraceToDirectObject (_acfedg .XObject ));
return nil ,XObjectTypeUndefined ;};if _ebcdee :=_daca .Get (keyName );_ebcdee !=nil {_ceccc ,_dafedd :=_eg .GetStream (_ebcdee );if !_dafedd {_dbg .Log .Debug ("X\u004f\u0062\u006a\u0065\u0063\u0074 \u006e\u006f\u0074\u0020\u0070\u006fi\u006e\u0074\u0069\u006e\u0067\u0020\u0074o\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020%\u0054",_ebcdee );
return nil ,XObjectTypeUndefined ;};_gdgdbd :=_ceccc .PdfObjectDictionary ;_gbbg ,_dafedd :=_eg .TraceToDirectObject (_gdgdbd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_eg .PdfObjectName );if !_dafedd {_dbg .Log .Debug ("\u0058\u004fbj\u0065\u0063\u0074 \u0053\u0075\u0062\u0074ype\u0020no\u0074\u0020\u0061\u0020\u004e\u0061\u006de,\u0020\u0064\u0069\u0063\u0074\u003a\u0020%\u0073",_gdgdbd .String ());
return nil ,XObjectTypeUndefined ;};if *_gbbg =="\u0049\u006d\u0061g\u0065"{return _ceccc ,XObjectTypeImage ;}else if *_gbbg =="\u0046\u006f\u0072\u006d"{return _ceccc ,XObjectTypeForm ;}else if *_gbbg =="\u0050\u0053"{return _ceccc ,XObjectTypePS ;}else {_dbg .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0053\u0075b\u0074\u0079\u0070\u0065\u0020\u006e\u006ft\u0020\u006b\u006e\u006f\u0077\u006e\u0020\u0028\u0025\u0073\u0029",*_gbbg );
return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;};};
// String returns a string that describes `font`.
func (_effdb *PdfFont )String ()string {_egbd :="";if _effdb ._gdcab .Encoder ()!=nil {_egbd =_effdb ._gdcab .Encoder ().String ();};return _e .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_effdb ._gdcab ,_effdb .baseFields ().coreString (),_egbd );
};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// component PDF objects.
func (_gfgcb *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if _gfgcb .Alternate ==nil {if _gfgcb .N ==1{_aeab :=NewPdfColorspaceDeviceGray ();return _aeab .ColorFromPdfObjects (objects );}else if _gfgcb .N ==3{_bdeg :=NewPdfColorspaceDeviceRGB ();
return _bdeg .ColorFromPdfObjects (objects );}else if _gfgcb .N ==4{_bdgffb :=NewPdfColorspaceDeviceCMYK ();return _bdgffb .ColorFromPdfObjects (objects );}else {return nil ,_bbd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
};};return _gfgcb .Alternate .ColorFromPdfObjects (objects );};
// SetContentStream sets the pattern cell's content stream.
func (_dgegg *PdfTilingPattern )SetContentStream (content []byte ,encoder _eg .StreamEncoder )error {_aeef ,_gaab :=_dgegg ._cfaag .(*_eg .PdfObjectStream );if !_gaab {_dbg .Log .Debug ("\u0054\u0069l\u0069\u006e\u0067\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_dgegg ._cfaag );
return _eg .ErrTypeError ;};if encoder ==nil {encoder =_eg .NewRawEncoder ();};_baedf :=_aeef .PdfObjectDictionary ;_bccg :=encoder .MakeStreamDict ();_baedf .Merge (_bccg );_fgfabe ,_ceaad :=encoder .EncodeBytes (content );if _ceaad !=nil {return _ceaad ;
};_baedf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_fgfabe ))));_aeef .Stream =_fgfabe ;return nil ;};
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
// AnnotFilterFunc represents a PDF annotation filtering function. If the function
// returns true, the annotation is kept, otherwise it is discarded.
type AnnotFilterFunc func (*PdfAnnotation )bool ;
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element between 0 and 1.
func (_cefe *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdce :=vals [0];if _cdce < 0.0||_cdce > 1.0{_dbg .Log .Debug ("\u0049\u006eco\u006d\u0070\u0061t\u0069\u0062\u0069\u006city\u003a R\u0061\u006e\u0067\u0065\u0020\u006f\u0075ts\u0069\u0064\u0065\u0020\u005b\u0030\u002c1\u005d");
};if _cdce < 0.0{_cdce =0.0;}else if _cdce > 1.0{_cdce =1.0;};return NewPdfColorDeviceGray (_cdce ),nil ;};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_bebc *PdfOutline )ToPdfObject ()_eg .PdfObject {_dbgfe :=_bebc ._ffbba ;_cgbcc :=_dbgfe .PdfObject .(*_eg .PdfObjectDictionary );_cgbcc .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _bebc .First !=nil {_cgbcc .Set ("\u0046\u0069\u0072s\u0074",_bebc .First .ToPdfObject ());
};if _bebc .Last !=nil {_cgbcc .Set ("\u004c\u0061\u0073\u0074",_bebc .Last .GetContext ().GetContainingPdfObject ());};if _bebc .Parent !=nil {_cgbcc .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_bebc .Parent .GetContext ().GetContainingPdfObject ());
};if _bebc .Count !=nil {_cgbcc .Set ("\u0043\u006f\u0075n\u0074",_eg .MakeInteger (*_bebc .Count ));};return _dbgfe ;};
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
// The added XObjectForm is identified by the specified name.
func (_bacad *PdfPageResources )SetXObjectFormByName (keyName _eg .PdfObjectName ,xform *XObjectForm )error {_adag :=xform .ToPdfObject ().(*_eg .PdfObjectStream );_deabdd :=_bacad .SetXObjectByName (keyName ,_adag );return _deabdd ;};
// ToPdfObject implements interface PdfModel.
func (_ddb *PdfActionGoTo )ToPdfObject ()_eg .PdfObject {_ddb .PdfAction .ToPdfObject ();_dba :=_ddb ._ege ;_cga :=_dba .PdfObject .(*_eg .PdfObjectDictionary );_cga .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeGoTo )));_cga .SetIfNotNil ("\u0044",_ddb .D );
return _dba ;};func (_bdb *PdfAppender )addNewObject (_bfecd _eg .PdfObject ){if _ ,_gegc :=_bdb ._adge [_bfecd ];!_gegc {_bdb ._acda =append (_bdb ._acda ,_bfecd );_bdb ._adge [_bfecd ]=struct{}{};};};
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_cdg :=NewPdfAnnotation ();_dabd :=&PdfAnnotationStrikeOut {};_dabd .PdfAnnotation =_cdg ;_dabd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cdg .SetContext (_dabd );return _dabd ;};func (_fdfcb *pdfFontType0 )subsetRegistered ()error {_gfcfd ,_ebca :=_fdfcb .DescendantFont ._gdcab .(*pdfCIDFontType2 );
if !_ebca {_dbg .Log .Debug ("\u0046\u006fnt\u0020\u006e\u006ft\u0020\u0073\u0075\u0070por\u0074ed\u0020\u0066\u006f\u0072\u0020\u0073\u0075bs\u0065\u0074\u0074\u0069\u006e\u0067\u0020%\u0054",_fdfcb .DescendantFont );return nil ;};if _gfcfd ==nil {return nil ;
};if _gfcfd ._eecfe ==nil {_dbg .Log .Debug ("\u004d\u0069\u0073si\u006e\u0067\u0020\u0066\u006f\u006e\u0074\u0020\u0064\u0065\u0073\u0063\u0072\u0069\u0070\u0074\u006f\u0072");return nil ;};if _fdfcb ._eceba ==nil {_dbg .Log .Debug ("\u004e\u006f\u0020e\u006e\u0063\u006f\u0064e\u0072\u0020\u002d\u0020\u0073\u0075\u0062s\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0069\u0067\u006e\u006f\u0072\u0065\u0064");
return nil ;};_debdea ,_ebca :=_eg .GetStream (_gfcfd ._eecfe .FontFile2 );if !_ebca {_dbg .Log .Debug ("\u0045\u006d\u0062\u0065\u0064\u0064\u0065\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u006f\u0062\u006a\u0065c\u0074\u0020\u006e\u006f\u0074\u0020\u0066o\u0075\u006e\u0064\u0020\u002d\u002d\u0020\u0041\u0042\u004f\u0052T\u0020\u0073\u0075\u0062\u0073\u0065\u0074\u0074\u0069\u006e\u0067");
return _bbd .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_bbdfdg ,_dbcac :=_eg .DecodeStream (_debdea );if _dbcac !=nil {_dbg .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_dbcac );
return _dbcac ;};_dcbfg ,_dbcac :=_af .Parse (_cbd .NewReader (_bbdfdg ));if _dbcac !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0025\u0064\u0020\u0062\u0079\u0074\u0065\u0020f\u006f\u006e\u0074",len (_debdea .Stream ));
return _dbcac ;};var _geeg []rune ;var _acfag *_af .Font ;switch _ffebf :=_fdfcb ._eceba .(type ){case *_cec .TrueTypeFontEncoder :_geeg =_ffebf .RegisteredRunes ();_acfag ,_dbcac =_dcbfg .SubsetKeepRunes (_geeg );if _dbcac !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbcac );
return _dbcac ;};_ffebf .SubsetRegistered ();case *_cec .IdentityEncoder :_geeg =_ffebf .RegisteredRunes ();_fcdae :=make ([]_af .GlyphIndex ,len (_geeg ));for _bggbd ,_fgefe :=range _geeg {_fcdae [_bggbd ]=_af .GlyphIndex (_fgefe );};_acfag ,_dbcac =_dcbfg .SubsetKeepIndices (_fcdae );
if _dbcac !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbcac );return _dbcac ;};case _cec .SimpleEncoder :_fcagc :=_ffebf .Charcodes ();for _ ,_bdagg :=range _fcagc {_gbgeb ,_edbea :=_ffebf .CharcodeToRune (_bdagg );if !_edbea {_dbg .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0075\u006e\u0061\u0062\u006c\u0065\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0020\u0074\u006f \u0072\u0075\u006e\u0065\u003a\u0020\u0025\u0064",_bdagg );
continue ;};_geeg =append (_geeg ,_gbgeb );};default:return _e .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020s\u0075\u0062\u0073\u0065\u0074t\u0069\u006eg\u003a\u0020\u0025\u0054",_fdfcb ._eceba );
};var _abag _cbd .Buffer ;_dbcac =_acfag .Write (&_abag );if _dbcac !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbcac );return _dbcac ;};if _fdfcb ._fffc !=nil {_bgbd :=make (map[_aff .CharCode ]rune ,len (_geeg ));for _ ,_dbbdc :=range _geeg {_eaefe ,_gacf :=_fdfcb ._eceba .RuneToCharcode (_dbbdc );
if !_gacf {continue ;};_bgbd [_aff .CharCode (_eaefe )]=_dbbdc ;};_fdfcb ._fffc =_aff .NewToUnicodeCMap (_bgbd );};_debdea ,_dbcac =_eg .MakeStream (_abag .Bytes (),_eg .NewFlateEncoder ());if _dbcac !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbcac );
return _dbcac ;};_debdea .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_eg .MakeInteger (int64 (_abag .Len ())));if _eabd ,_gcagd :=_eg .GetStream (_gfcfd ._eecfe .FontFile2 );_gcagd {*_eabd =*_debdea ;}else {_gfcfd ._eecfe .FontFile2 =_debdea ;};_bcdge :=_abafe ();
if len (_fdfcb ._cfab )> 0{_fdfcb ._cfab =_egbe (_fdfcb ._cfab ,_bcdge );};if len (_gfcfd ._cfab )> 0{_gfcfd ._cfab =_egbe (_gfcfd ._cfab ,_bcdge );};if len (_fdfcb ._dfgf )> 0{_fdfcb ._dfgf =_egbe (_fdfcb ._dfgf ,_bcdge );};if _gfcfd ._eecfe !=nil {_bgaae ,_egcg :=_eg .GetName (_gfcfd ._eecfe .FontName );
if _egcg &&len (_bgaae .String ())> 0{_bedc :=_egbe (_bgaae .String (),_bcdge );_gfcfd ._eecfe .FontName =_eg .MakeName (_bedc );};};return nil ;};
// IsEncrypted returns true if the PDF file is encrypted.
func (_acef *PdfReader )IsEncrypted ()(bool ,error ){return _acef ._cdggc .IsEncrypted ()};
// ToPdfObject implements interface PdfModel.
func (_aaf *PdfActionURI )ToPdfObject ()_eg .PdfObject {_aaf .PdfAction .ToPdfObject ();_gfe :=_aaf ._ege ;_cbdd :=_gfe .PdfObject .(*_eg .PdfObjectDictionary );_cbdd .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeURI )));_cbdd .SetIfNotNil ("\u0055\u0052\u0049",_aaf .URI );
_cbdd .SetIfNotNil ("\u0049\u0073\u004da\u0070",_aaf .IsMap );return _gfe ;};
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
func NewOutlineBookmark (title string ,page *_eg .PdfIndirectObject )*PdfOutlineItem {_ffdfd :=PdfOutlineItem {};_ffdfd ._dbaeb =&_ffdfd ;_ffdfd .Title =_eg .MakeString (title );_eefba :=_eg .MakeArray ();_eefba .Append (page );_eefba .Append (_eg .MakeName ("\u0046\u0069\u0074"));
_ffdfd .Dest =_eefba ;return &_ffdfd ;};func _bffd (_bfgcb []*_eg .PdfObjectStream )*_eg .PdfObjectArray {if len (_bfgcb )==0{return nil ;};_cbbef :=make ([]_eg .PdfObject ,0,len (_bfgcb ));for _ ,_abcgf :=range _bfgcb {_cbbef =append (_cbbef ,_abcgf );
};return _eg .MakeArray (_cbbef ...);};func (_edfe *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};
// B returns the value of the B component of the color.
func (_bbba *PdfColorCalRGB )B ()float64 {return _bbba [1]};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for an RGB device.
func (_ggafc *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};func (_egfbd *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
func (_decbb *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_dgeac :=0.3*_decbb .R ()+0.59*_decbb .G ()+0.11*_decbb .B ();_dgeac =_bc .Min (_bc .Max (_dgeac ,0.0),1.0);return NewPdfColorDeviceGray (_dgeac );};
// AddExtGState add External Graphics State (GState). The gsDict can be specified
// either directly as a dictionary or an indirect object containing a dictionary.
func (_ccffa *PdfPageResources )AddExtGState (gsName _eg .PdfObjectName ,gsDict _eg .PdfObject )error {if _ccffa .ExtGState ==nil {_ccffa .ExtGState =_eg .MakeDict ();};_ffefc :=_ccffa .ExtGState ;_faefg ,_eaeea :=_eg .TraceToDirectObject (_ffefc ).(*_eg .PdfObjectDictionary );
if !_eaeea {_dbg .Log .Debug ("\u0045\u0078\u0074\u0047\u0053\u0074\u0061\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020e\u0072r\u006f\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u002f\u0025\u0054\u0029",_ffefc ,_eg .TraceToDirectObject (_ffefc ));
return _eg .ErrTypeError ;};_faefg .Set (gsName ,gsDict );return nil ;};
// OutlineItem represents a PDF outline item dictionary (Table 153 - pp. 376 - 377).
type OutlineItem struct{Title string `json:"title"`;Dest OutlineDest `json:"dest"`;Entries []*OutlineItem `json:"entries,omitempty"`;};
// ToPdfObject implements interface PdfModel.
func (_ggde *PdfAnnotationWidget )ToPdfObject ()_eg .PdfObject {_ggde .PdfAnnotation .ToPdfObject ();_gdec :=_ggde ._gag ;_bgec :=_gdec .PdfObject .(*_eg .PdfObjectDictionary );if _ggde ._gde {return _gdec ;};_ggde ._gde =true ;_bgec .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));
_bgec .SetIfNotNil ("\u0048",_ggde .H );_bgec .SetIfNotNil ("\u004d\u004b",_ggde .MK );_bgec .SetIfNotNil ("\u0041",_ggde .A );_bgec .SetIfNotNil ("\u0041\u0041",_ggde .AA );_bgec .SetIfNotNil ("\u0042\u0053",_ggde .BS );_ffdf :=_ggde .Parent ;if _ggde ._cdda !=nil {if _ggde ._cdda ._afbe ==_ggde ._gag {_ggde ._cdda .ToPdfObject ();
};_ffdf =_ggde ._cdda .GetContainingPdfObject ();};if _ffdf !=_gdec {_bgec .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_ffdf );};_ggde ._gde =false ;return _gdec ;};
// GetOutlines returns a high-level Outline object, based on the outline tree
// of the reader.
func (_gfdg *PdfReader )GetOutlines ()(*Outline ,error ){if _gfdg ==nil {return nil ,_bbd .New ("\u0063\u0061n\u006e\u006f\u0074\u0020c\u0072\u0065a\u0074\u0065\u0020\u006f\u0075\u0074\u006c\u0069n\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u006e\u0069\u006c\u0020\u0072e\u0061\u0064\u0065\u0072");
};_bdbbf :=_gfdg .GetOutlineTree ();if _bdbbf ==nil {return nil ,_bbd .New ("\u0074\u0068\u0065\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0072\u0065\u0061\u0064e\u0072\u0020\u0064\u006f\u0065\u0073\u0020n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u006e\u0020o\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0074\u0072\u0065\u0065");
};var _bbbgc func (_bgfd *PdfOutlineTreeNode ,_cbggc *[]*OutlineItem );_bbbgc =func (_dddcf *PdfOutlineTreeNode ,_ddeag *[]*OutlineItem ){if _dddcf ==nil {return ;};if _dddcf ._dbaeb ==nil {_dbg .Log .Debug ("\u0045\u0052RO\u0052\u003a\u0020m\u0069\u0073\u0073\u0069ng \u006fut\u006c\u0069\u006e\u0065\u0020\u0065\u006etr\u0079\u0020\u0063\u006f\u006e\u0074\u0065x\u0074");
return ;};var _bgege *OutlineItem ;if _bdbc ,_agac :=_dddcf ._dbaeb .(*PdfOutlineItem );_agac {_efabg :=_bdbc .Dest ;if (_efabg ==nil ||_eg .IsNullObject (_efabg ))&&_bdbc .A !=nil {if _aeced ,_bcfde :=_eg .GetDict (_bdbc .A );_bcfde {_efabg ,_ =_eg .GetArray (_aeced .Get ("\u0044"));
};};var _bbbb OutlineDest ;if _efabg !=nil &&!_eg .IsNullObject (_efabg ){if _gedce ,_cdbeg :=_ddbc (_efabg ,_gfdg );_cdbeg ==nil {_bbbb =*_gedce ;}else {_dbg .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020p\u0061\u0072\u0073\u0065\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0064\u0065\u0073\u0074\u0020\u0028\u0025\u0076\u0029\u003a\u0020\u0025\u0076",_efabg ,_cdbeg );
};};_bgege =NewOutlineItem (_bdbc .Title .Decoded (),_bbbb );*_ddeag =append (*_ddeag ,_bgege );if _bdbc .Next !=nil {_bbbgc (_bdbc .Next ,_ddeag );};};if _dddcf .First !=nil {if _bgege !=nil {_ddeag =&_bgege .Entries ;};_bbbgc (_dddcf .First ,_ddeag );
};};_ebafa :=NewOutline ();_bbbgc (_bdbbf ,&_ebafa .Entries );return _ebafa ,nil ;};
// ColorToRGB converts a CalRGB color to an RGB color.
func (_adaf *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_cbcf ,_accdd :=color .(*PdfColorCalRGB );if !_accdd {_dbg .Log .Debug ("\u0049\u006e\u0070ut\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0063\u0061\u006c\u0020\u0072\u0067\u0062");
return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fcbb :=_cbcf .A ();_begc :=_cbcf .B ();_ebdc :=_cbcf .C ();X :=_adaf .Matrix [0]*_bc .Pow (_fcbb ,_adaf .Gamma [0])+_adaf .Matrix [3]*_bc .Pow (_begc ,_adaf .Gamma [1])+_adaf .Matrix [6]*_bc .Pow (_ebdc ,_adaf .Gamma [2]);
Y :=_adaf .Matrix [1]*_bc .Pow (_fcbb ,_adaf .Gamma [0])+_adaf .Matrix [4]*_bc .Pow (_begc ,_adaf .Gamma [1])+_adaf .Matrix [7]*_bc .Pow (_ebdc ,_adaf .Gamma [2]);Z :=_adaf .Matrix [2]*_bc .Pow (_fcbb ,_adaf .Gamma [0])+_adaf .Matrix [5]*_bc .Pow (_begc ,_adaf .Gamma [1])+_adaf .Matrix [8]*_bc .Pow (_ebdc ,_adaf .Gamma [2]);
_deeb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_egaf :=-0.969256*X +1.875992*Y +0.041556*Z ;_cegd :=0.055648*X +-0.204043*Y +1.057311*Z ;_deeb =_bc .Min (_bc .Max (_deeb ,0),1.0);_egaf =_bc .Min (_bc .Max (_egaf ,0),1.0);_cegd =_bc .Min (_bc .Max (_cegd ,0),1.0);
return NewPdfColorDeviceRGB (_deeb ,_egaf ,_cegd ),nil ;};func _cbeab (_bfabe _eg .PdfObject )(*_eg .PdfObjectDictionary ,*fontCommon ,error ){_abeda :=&fontCommon {};if _gcee ,_faage :=_bfabe .(*_eg .PdfIndirectObject );_faage {_abeda ._aaaf =_gcee .ObjectNumber ;
};_fcbaa ,_gdbg :=_eg .GetDict (_bfabe );if !_gdbg {_dbg .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0067\u0069\u0076\u0065\u006e\u0020\u0062\u0079\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_bfabe );
return nil ,nil ,ErrFontNotSupported ;};_ggcb ,_gdbg :=_eg .GetNameVal (_fcbaa .Get ("\u0054\u0079\u0070\u0065"));if !_gdbg {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046o\u006e\u0074\u0020\u0049\u006ec\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u002e\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
return nil ,nil ,ErrRequiredAttributeMissing ;};if _ggcb !="\u0046\u006f\u006e\u0074"{_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0046\u006f\u006e\u0074\u0020\u0049\u006e\u0063\u006f\u006d\u0070\u0061t\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u002e\u0020\u0054\u0079\u0070\u0065\u003d\u0025\u0071\u002e\u0020\u0053\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0025\u0071.",_ggcb ,"\u0046\u006f\u006e\u0074");
return nil ,nil ,_eg .ErrTypeError ;};_edfc ,_gdbg :=_eg .GetNameVal (_fcbaa .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_gdbg {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020F\u006f\u006e\u0074 \u0049\u006e\u0063o\u006d\u0070a\u0074\u0069\u0062\u0069\u006c\u0069t\u0079. \u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
return nil ,nil ,ErrRequiredAttributeMissing ;};_abeda ._fgbbb =_edfc ;_face ,_gdbg :=_eg .GetNameVal (_fcbaa .Get ("\u004e\u0061\u006d\u0065"));if _gdbg {_abeda ._dfgf =_face ;};_egedd :=_fcbaa .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _egedd !=nil {_abeda ._fgegd =_eg .TraceToDirectObject (_egedd );
_aadgcg ,_abefd :=_eagd (_abeda ._fgegd ,_abeda );if _abefd !=nil {return _fcbaa ,_abeda ,_abefd ;};_abeda ._fffc =_aadgcg ;}else if _edfc =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_edfc =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_fdgga ,_agdfb :=_aff .NewCIDSystemInfo (_fcbaa .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
if _agdfb !=nil {return _fcbaa ,_abeda ,_agdfb ;};_fbgc :=_e .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_fdgga .Registry ,_fdgga .Ordering );if _aff .IsPredefinedCMap (_fbgc ){_abeda ._fffc ,_agdfb =_aff .LoadPredefinedCMap (_fbgc );
if _agdfb !=nil {_dbg .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020l\u006f\u0061\u0064\u0020\u0070\u0072\u0065\u0064\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0043\u004d\u0061\u0070\u0020\u0025\u0073\u003a\u0020\u0025\u0076",_fbgc ,_agdfb );
};};};_acgcg :=_fcbaa .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _acgcg !=nil {_dgdd ,_edbb :=_ffeb (_acgcg );if _edbb !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0042\u0061\u0064\u0020\u0066\u006f\u006et\u0020d\u0065s\u0063r\u0069\u0070\u0074\u006f\u0072\u002e\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_edbb );
return _fcbaa ,_abeda ,_edbb ;};_abeda ._eecfe =_dgdd ;};if _edfc !="\u0054\u0079\u0070e\u0033"{_gebbe ,_affc :=_eg .GetNameVal (_fcbaa .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_affc {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0046\u006f\u006et\u0020\u0049\u006ec\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069t\u0079\u002e\u0020\u0042\u0061se\u0046\u006f\u006e\u0074\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
return _fcbaa ,_abeda ,ErrRequiredAttributeMissing ;};_abeda ._cfab =_gebbe ;};return _fcbaa ,_abeda ,nil ;};func (_gffb *PdfWriter )writeBytes (_bgcda []byte ){if _gffb ._cfgdd !=nil {return ;};_afcfe ,_facee :=_gffb ._fggeg .Write (_bgcda );_gffb ._agecc +=int64 (_afcfe );
_gffb ._cfgdd =_facee ;};
// NewPdfAnnotationWidget returns an initialized annotation widget.
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_dbb :=NewPdfAnnotation ();_bbgf :=&PdfAnnotationWidget {};_bbgf .PdfAnnotation =_dbb ;_dbb .SetContext (_bbgf );return _bbgf ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a grayscale device.
func (_gcaa *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
func (_bdee *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0049\u006d\u0061\u0067\u0065\u0020\u0063\u0061n\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u0073\u0070\u0065\u0063\u0069\u0066i\u0065\u0064\u0020\u0069\u006e\u0020\u0050\u0061\u0074\u0074\u0065\u0072n \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");
return img ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0066\u006f\u0072\u0020\u0069m\u0061\u0067\u0065\u0020\u0028p\u0061\u0074t\u0065\u0072\u006e\u0029");};const (_defe =0x00001;
_ggccae =0x00002;_efecb =0x00004;_afeg =0x00008;_bacd =0x00020;_fedcc =0x00040;_fcffe =0x10000;_eefdg =0x20000;_gbgg =0x40000;);func _ebbee (_addga *_eg .PdfIndirectObject ,_dfafc *_eg .PdfObjectDictionary )(*DSS ,error ){if _addga ==nil {_addga =_eg .MakeIndirectObject (nil );
};_addga .PdfObject =_eg .MakeDict ();_cgdaf :=map[string ]*VRI {};if _dccc ,_ffcfe :=_eg .GetDict (_dfafc .Get ("\u0056\u0052\u0049"));_ffcfe {for _ ,_dccb :=range _dccc .Keys (){if _fgce ,_bcdg :=_eg .GetDict (_dccc .Get (_dccb ));_bcdg {_cgdaf [_dc .ToUpper (_dccb .String ())]=_dgfc (_fgce );
};};};return &DSS {Certs :_feed (_dfafc .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_feed (_dfafc .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_feed (_dfafc .Get ("\u0043\u0052\u004c\u0073")),VRI :_cgdaf ,_gded :_addga },nil ;};
// EnableChain adds the specified certificate chain and validation data (OCSP
// and CRL information) for it to the global scope of the document DSS. The
// added data is used for validating any of the signatures present in the
// document. The LTV client attempts to build the certificate chain up to a
// trusted root by downloading any missing certificates.
func (_fggf *LTV )EnableChain (chain []*_ce .Certificate )error {return _fggf .enable (nil ,chain ,"")};func (_gcda Image )getBase ()_ff .ImageBase {return _ff .NewImageBase (int (_gcda .Width ),int (_gcda .Height ),int (_gcda .BitsPerComponent ),_gcda .ColorComponents ,_gcda .Data ,_gcda ._fcec ,_gcda ._aaeac );
};func _fafgc (_efeee *PdfField )[]*PdfField {_ebcge :=[]*PdfField {_efeee };for _ ,_cecc :=range _efeee .Kids {_ebcge =append (_ebcge ,_fafgc (_cecc )...);};return _ebcge ;};
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_bgedf *PdfPageResources )GetShadingByName (keyName _eg .PdfObjectName )(*PdfShading ,bool ){if _bgedf .Shading ==nil {return nil ,false ;};_aaaae ,_caaff :=_eg .TraceToDirectObject (_bgedf .Shading ).(*_eg .PdfObjectDictionary );if !_caaff {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0068\u0061d\u0069\u006e\u0067\u0020\u0065\u006e\u0074r\u0079\u0020\u002d\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064i\u0063\u0074\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_bgedf .Shading );
return nil ,false ;};if _defde :=_aaaae .Get (keyName );_defde !=nil {_defca ,_dggg :=_dcafge (_defde );if _dggg !=nil {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020f\u0061\u0069l\u0065\u0064\u0020\u0074\u006f\u0020\u006c\u006fa\u0064\u0020\u0070\u0064\u0066\u0020\u0073\u0068\u0061\u0064\u0069\u006eg\u003a\u0020\u0025\u0076",_dggg );
return nil ,false ;};return _defca ,true ;};return nil ,false ;};
// GetContainingPdfObject returns the container of the outline (indirect object).
func (_feaac *PdfOutline )GetContainingPdfObject ()_eg .PdfObject {return _feaac ._ffbba };
// Inspect inspects the object types, subtypes and content in the PDF file returning a map of
// object type to number of instances of each.
func (_dbgce *PdfReader )Inspect ()(map[string ]int ,error ){return _dbgce ._cdggc .Inspect ()};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);
// PageCallback callback function used in page loading
// that could be used to modify the page content.
//
// Deprecated: will be removed in v4. Use PageProcessCallback instead.
type PageCallback func (_fefc int ,_babfe *PdfPage );func _debbd (_acbc *_eg .PdfObjectDictionary ,_cabb *fontCommon ,_aafcd _cec .TextEncoder )(*pdfFontSimple ,error ){_fdegeb :=_dcaf (_cabb );_fdegeb ._fcgd =_aafcd ;if _aafcd ==nil {_abfg :=_acbc .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");
if _abfg ==nil {_abfg =_eg .MakeInteger (0);};_fdegeb .FirstChar =_abfg ;_ebcbd ,_dadf :=_eg .GetIntVal (_abfg );if !_dadf {_dbg .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0046i\u0072s\u0074C\u0068\u0061\u0072\u0020\u0074\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029",_abfg );
return nil ,_eg .ErrTypeError ;};_ceaa :=_cec .CharCode (_ebcbd );_abfg =_acbc .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _abfg ==nil {_abfg =_eg .MakeInteger (255);};_fdegeb .LastChar =_abfg ;_ebcbd ,_dadf =_eg .GetIntVal (_abfg );if !_dadf {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004c\u0061\u0073\u0074\u0043h\u0061\u0072\u0020\u0074\u0079\u0070\u0065 \u0028\u0025\u0054\u0029",_abfg );
return nil ,_eg .ErrTypeError ;};_agcg :=_cec .CharCode (_ebcbd );_fdegeb ._baga =make (map[_cec .CharCode ]float64 );_abfg =_acbc .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _abfg !=nil {_fdegeb .Widths =_abfg ;_cfba ,_ecgd :=_eg .GetArray (_abfg );
if !_ecgd {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020W\u0069\u0064t\u0068\u0073\u0020\u0061\u0074\u0074\u0072\u0069b\u0075\u0074\u0065\u0020\u0021\u003d\u0020\u0061\u0072\u0072\u0061\u0079 \u0028\u0025\u0054\u0029",_abfg );return nil ,_eg .ErrTypeError ;
};_fecf ,_egffd :=_cfba .ToFloat64Array ();if _egffd !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0077\u0069d\u0074\u0068\u0073\u0020\u0074\u006f\u0020a\u0072\u0072\u0061\u0079");
return nil ,_egffd ;};if len (_fecf )!=int (_agcg -_ceaa +1){_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0074\u0068s\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u0021\u003d\u0020\u0025\u0064 \u0028\u0025\u0064\u0029",_agcg -_ceaa +1,len (_fecf ));
return nil ,_eg .ErrRangeError ;};for _bcbbb ,_facff :=range _fecf {_fdegeb ._baga [_ceaa +_cec .CharCode (_bcbbb )]=_facff ;};};};_fdegeb .Encoding =_eg .TraceToDirectObject (_acbc .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _fdegeb ,nil ;
};func (_dgece *pdfFontType0 )bytesToCharcodes (_cgebc []byte )([]_cec .CharCode ,bool ){if _dgece ._adad ==nil {return nil ,false ;};_ecaf ,_fddba :=_dgece ._adad .BytesToCharcodes (_cgebc );if !_fddba {return nil ,false ;};_cbaab :=make ([]_cec .CharCode ,len (_ecaf ));
for _aabgf ,_gcdcb :=range _ecaf {_cbaab [_aabgf ]=_cec .CharCode (_gcdcb );};return _cbaab ,true ;};const (FieldFlagClear FieldFlag =0;FieldFlagReadOnly FieldFlag =1;FieldFlagRequired FieldFlag =(1<<1);FieldFlagNoExport FieldFlag =(2<<1);FieldFlagNoToggleToOff FieldFlag =(1<<14);
FieldFlagRadio FieldFlag =(1<<15);FieldFlagPushbutton FieldFlag =(1<<16);FieldFlagRadiosInUnision FieldFlag =(1<<25);FieldFlagMultiline FieldFlag =(1<<12);FieldFlagPassword FieldFlag =(1<<13);FieldFlagFileSelect FieldFlag =(1<<20);FieldFlagDoNotScroll FieldFlag =(1<<23);
FieldFlagComb FieldFlag =(1<<24);FieldFlagRichText FieldFlag =(1<<25);FieldFlagDoNotSpellCheck FieldFlag =(1<<22);FieldFlagCombo FieldFlag =(1<<17);FieldFlagEdit FieldFlag =(1<<18);FieldFlagSort FieldFlag =(1<<19);FieldFlagMultiSelect FieldFlag =(1<<21);
FieldFlagCommitOnSelChange FieldFlag =(1<<26););
// PdfAnnotationMovie represents Movie annotations.
// (Section 12.5.6.17).
type PdfAnnotationMovie struct{*PdfAnnotation ;T _eg .PdfObject ;Movie _eg .PdfObject ;A _eg .PdfObject ;};
// Insert adds a top level outline item in the outline,
// at the specified index.
func (_cdbec *Outline )Insert (index uint ,item *OutlineItem ){_acagc :=uint (len (_cdbec .Entries ));if index > _acagc {index =_acagc ;};_cdbec .Entries =append (_cdbec .Entries [:index ],append ([]*OutlineItem {item },_cdbec .Entries [index :]...)...);
};
// GetRuneMetrics returns the char metrics for a rune.
// TODO(peterwilliams97) There is nothing callers can do if no CharMetrics are found so we might as
// well give them 0 width. There is no need for the bool return.
func (_cgcfab *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_fdfde :=_cgcfab .actualFont ();if _fdfde ==nil {_dbg .Log .Debug ("ER\u0052\u004fR\u003a\u0020\u0047\u0065\u0074\u0047\u006c\u0079\u0070h\u0043\u0068\u0061\u0072\u004d\u0065\u0074\u0072\u0069\u0063\u0073\u0020\u004e\u006f\u0074\u0020\u0069\u006d\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020f\u006fr\u0020\u0066\u006f\u006e\u0074\u0020\u0074\u0079p\u0065=\u0025\u0023T",_cgcfab ._gdcab );
return _ab .CharMetrics {},false ;};if _ecef ,_dgbe :=_fdfde .GetRuneMetrics (r );_dgbe {return _ecef ,true ;};if _efea ,_fdbef :=_cgcfab .GetFontDescriptor ();_fdbef ==nil &&_efea !=nil {return _ab .CharMetrics {Wx :_efea ._afce },true ;};_dbg .Log .Debug ("\u0047\u0065\u0074\u0047\u006c\u0079\u0070h\u0043\u0068\u0061r\u004d\u0065\u0074\u0072i\u0063\u0073\u003a\u0020\u004e\u006f\u0020\u006d\u0065\u0074\u0072\u0069\u0063\u0073\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_cgcfab );
return _ab .CharMetrics {},false ;};
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
// The added XObjectImage is identified by the specified name.
func (_cdedb *PdfPageResources )SetXObjectImageByName (keyName _eg .PdfObjectName ,ximg *XObjectImage )error {_abafc :=ximg .ToPdfObject ().(*_eg .PdfObjectStream );_efaga :=_cdedb .SetXObjectByName (keyName ,_abafc );return _efaga ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element between 0 and 1.
func (_caef *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bdfb :=vals [0];if _bdfb < 0.0||_bdfb > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};_cda :=NewPdfColorCalGray (_bdfb );return _cda ,nil ;};
// PdfColorspaceICCBased format [/ICCBased stream]
//
// The stream shall contain the ICC profile.
// A conforming reader shall support ICC.1:2004:10 as required by PDF 1.7, which will enable it
// to properly render all embedded ICC profiles regardless of the PDF version
//
// In the current implementation, we rely on the alternative colormap provided.
type PdfColorspaceICCBased struct{N int ;Alternate PdfColorspace ;
// If omitted ICC not supported: then use DeviceGray,
// DeviceRGB or DeviceCMYK for N=1,3,4 respectively.
Range []float64 ;Metadata *_eg .PdfObjectStream ;Data []byte ;_acga *_eg .PdfIndirectObject ;_efdb *_eg .PdfObjectStream ;};func _ddbc (_bccfe _eg .PdfObject ,_ggabd *PdfReader )(*OutlineDest ,error ){_gedea ,_deef :=_eg .GetArray (_bccfe );if !_deef {return nil ,_bbd .New ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0064\u0065\u0073t\u0069\u006e\u0061\u0074i\u006f\u006e\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006d\u0075\u0073\u0074\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
};_fcage :=_gedea .Len ();if _fcage < 2{return nil ,_e .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u006fu\u0074\u006c\u0069n\u0065\u0020\u0064\u0065\u0073\u0074\u0069\u006e\u0061ti\u006f\u006e\u0020a\u0072\u0072a\u0079\u0020\u006c\u0065\u006e\u0067t\u0068\u003a \u0025\u0064",_fcage );
};_ecddd :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_agfcb :=_gedea .Get (0);if _cebda ,_dceda :=_eg .GetIndirect (_agfcb );_dceda {if _ ,_eaaff ,_edfa :=_ggabd .PageFromIndirectObject (_cebda );_edfa ==nil {_ecddd .Page =int64 (_eaaff -1);}else {_dbg .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064 \u006e\u006f\u0074\u0020g\u0065\u0074\u0020\u0070\u0061\u0067\u0065\u0020\u0069\u006e\u0064\u0065\u0078\u0020\u0066\u006f\u0072\u0020\u0070\u0061\u0067\u0065\u0020\u0025\u002b\u0076",_cebda );
};_ecddd .PageObj =_cebda ;}else if _cggd ,_bedcb :=_eg .GetIntVal (_agfcb );_bedcb {if _cggd >=0&&_cggd < len (_ggabd .PageList ){_ecddd .PageObj =_ggabd .PageList [_cggd ].GetPageAsIndirectObject ();}else {_dbg .Log .Debug ("\u0057\u0041R\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0067\u0065\u0074\u0020\u0070\u0061\u0067\u0065\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0070\u0061\u0067\u0065\u0020\u0025\u0064",_cggd );
};_ecddd .Page =int64 (_cggd );}else {return nil ,_e .Errorf ("\u0069\u006eva\u006c\u0069\u0064 \u006f\u0075\u0074\u006cine\u0020de\u0073\u0074\u0069\u006e\u0061\u0074\u0069on\u0020\u0070\u0061\u0067\u0065\u003a\u0020%\u0054",_agfcb );};_eedc ,_deef :=_eg .GetNameVal (_gedea .Get (1));
if !_deef {_dbg .Log .Debug ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0064\u0065s\u0074\u0069\u006e\u0061\u0074\u0069\u006fn\u0020\u006d\u0061\u0067\u006e\u0069\u0066\u0069\u0063\u0061\u0074i\u006f\u006e\u0020\u006d\u006f\u0064\u0065\u003a\u0020\u0025\u0076",_gedea .Get (1));
return _ecddd ,nil ;};switch _eedc {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _fcage > 2{_ecddd .Y ,_ =_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_gedea .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _fcage > 2{_ecddd .X ,_ =_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_gedea .Get (2)));
};case "\u0058\u0059\u005a":if _fcage > 4{_ecddd .X ,_ =_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_gedea .Get (2)));_ecddd .Y ,_ =_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_gedea .Get (3)));_ecddd .Zoom ,_ =_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_gedea .Get (4)));
};default:_eedc ="\u0046\u0069\u0074";};_ecddd .Mode =_eedc ;return _ecddd ,nil ;};
// NewPdfAnnotationFreeText returns a new free text annotation.
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_ccgd :=NewPdfAnnotation ();_gda :=&PdfAnnotationFreeText {};_gda .PdfAnnotation =_ccgd ;_gda .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ccgd .SetContext (_gda );return _gda ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_ccgc pdfFontType0 )GetRuneMetrics (r rune )(_ab .CharMetrics ,bool ){if _ccgc .DescendantFont ==nil {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0064\u0065\u0073\u0063\u0065\u006e\u0064\u0061\u006e\u0074\u002e\u0020\u0066\u006f\u006et=\u0025\u0073",_ccgc );
return _ab .CharMetrics {},false ;};return _ccgc .DescendantFont .GetRuneMetrics (r );};
// PdfActionImportData represents a importData action.
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
// IsShading specifies if the pattern is a shading pattern.
func (_abfda *PdfPattern )IsShading ()bool {return _abfda .PatternType ==2};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_feabc *PdfShading )ToPdfObject ()_eg .PdfObject {_cbdcc :=_feabc ._beag ;_cfgec ,_dfag :=_feabc .getShadingDict ();if _dfag !=nil {_dbg .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");
return nil ;};if _feabc .ShadingType !=nil {_cfgec .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_feabc .ShadingType );};if _feabc .ColorSpace !=nil {_cfgec .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_feabc .ColorSpace .ToPdfObject ());
};if _feabc .Background !=nil {_cfgec .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_feabc .Background );};if _feabc .BBox !=nil {_cfgec .Set ("\u0042\u0042\u006f\u0078",_feabc .BBox .ToPdfObject ());};if _feabc .AntiAlias !=nil {_cfgec .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_feabc .AntiAlias );
};return _cbdcc ;};
// GetXObjectByName gets XObject by name.
func (_bbgbd *PdfPage )GetXObjectByName (name _eg .PdfObjectName )(_eg .PdfObject ,bool ){_efagd ,_gcgg :=_bbgbd .Resources .XObject .(*_eg .PdfObjectDictionary );if !_gcgg {return nil ,false ;};if _dedef :=_efagd .Get (name );_dedef !=nil {return _dedef ,true ;
};return nil ,false ;};
// AddImageResource adds an image to the XObject resources.
func (_gcbbf *PdfPage )AddImageResource (name _eg .PdfObjectName ,ximg *XObjectImage )error {var _ffgea *_eg .PdfObjectDictionary ;if _gcbbf .Resources .XObject ==nil {_ffgea =_eg .MakeDict ();_gcbbf .Resources .XObject =_ffgea ;}else {var _cggdd bool ;
_ffgea ,_cggdd =(_gcbbf .Resources .XObject ).(*_eg .PdfObjectDictionary );if !_cggdd {return _bbd .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_ffgea .Set (name ,ximg .ToPdfObject ());
return nil ;};func (_cfcee *PdfReader )newPdfAnnotationWatermarkFromDict (_eaac *_eg .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_geea :=PdfAnnotationWatermark {};_geea .FixedPrint =_eaac .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");
return &_geea ,nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_gdace *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _gdace .Alternate ==nil {if _gdace .N ==1{_efae :=NewPdfColorspaceDeviceGray ();return _efae .ColorFromFloats (vals );}else if _gdace .N ==3{_dbda :=NewPdfColorspaceDeviceRGB ();
return _dbda .ColorFromFloats (vals );}else if _gdace .N ==4{_eafb :=NewPdfColorspaceDeviceCMYK ();return _eafb .ColorFromFloats (vals );}else {return nil ,_bbd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");
};};return _gdace .Alternate .ColorFromFloats (vals );};
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
func (_bcad *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _bcad .AlternateSpace ==nil {return nil ,_bbd .New ("\u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0065\u0020c\u006f\u006c\u006f\u0072\u0073\u0070\u0061c\u0065\u0020\u0075\u006e\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
};return _bcad .AlternateSpace .ColorToRGB (color );};
// GetOutlineTree returns the outline tree.
func (_gdbea *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _gdbea ._ebgea };
// RepairAcroForm attempts to rebuild the AcroForm fields using the widget
// annotations present in the document pages. Pass nil for the opts parameter
// in order to use the default options.
// NOTE: Currently, the opts parameter is declared in order to enable adding
// future options, but passing nil will always result in the default options
// being used.
func (_cbgdg *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _ccfcc []*PdfField ;_adddd :=map[*_eg .PdfIndirectObject ]struct{}{};for _ ,_ddggc :=range _cbgdg .PageList {_fddcb ,_ffac :=_ddggc .GetAnnotations ();if _ffac !=nil {return _ffac ;
};for _ ,_aefg :=range _fddcb {var _gfaec *PdfField ;switch _gbbdg :=_aefg .GetContext ().(type ){case *PdfAnnotationWidget :if _gbbdg ._cdda !=nil {_gfaec =_gbbdg ._cdda ;break ;};if _eeceb ,_cdcc :=_eg .GetIndirect (_gbbdg .Parent );_cdcc {_gfaec ,_ffac =_cbgdg .newPdfFieldFromIndirectObject (_eeceb ,nil );
if _ffac ==nil {break ;};_dbg .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0070\u0061\u0072s\u0065\u0020\u0066\u006f\u0072\u006d\u0020\u0066\u0069\u0065ld\u0020\u0025\u002bv\u003a \u0025\u0076",_eeceb ,_ffac );
};if _gbbdg ._gag !=nil {_gfaec ,_ffac =_cbgdg .newPdfFieldFromIndirectObject (_gbbdg ._gag ,nil );if _ffac ==nil {break ;};_dbg .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0070\u0061\u0072s\u0065\u0020\u0066\u006f\u0072\u006d\u0020\u0066\u0069\u0065ld\u0020\u0025\u002bv\u003a \u0025\u0076",_gbbdg ._gag ,_ffac );
};};if _gfaec ==nil {continue ;};if _ ,_fgea :=_adddd [_gfaec ._afbe ];_fgea {continue ;};_adddd [_gfaec ._afbe ]=struct{}{};_ccfcc =append (_ccfcc ,_gfaec );};};if len (_ccfcc )==0{return nil ;};if _cbgdg .AcroForm ==nil {_cbgdg .AcroForm =NewPdfAcroForm ();
};_cbgdg .AcroForm .Fields =&_ccfcc ;return nil ;};
// ToPdfObject implements interface PdfModel.
func (_aca *PdfAnnotationSound )ToPdfObject ()_eg .PdfObject {_aca .PdfAnnotation .ToPdfObject ();_aedb :=_aca ._gag ;_ccd :=_aedb .PdfObject .(*_eg .PdfObjectDictionary );_aca .PdfAnnotationMarkup .appendToPdfDictionary (_ccd );_ccd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053\u006f\u0075n\u0064"));
_ccd .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_aca .Sound );_ccd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_aca .Name );return _aedb ;};
// Width returns the width of `rect`.
func (_dedad *PdfRectangle )Width ()float64 {return _bc .Abs (_dedad .Urx -_dedad .Llx )};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a CalRGB device.
func (_cgce *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};func (_gedfc *LTV )generateVRIKey (_bgce *PdfSignature )(string ,error ){_abdd ,_dcabf :=_cafd (_bgce .Contents .Bytes ());if _dcabf !=nil {return "",_dcabf ;};return _dc .ToUpper (_c .EncodeToString (_abdd )),nil ;
};func _fegg (_abgca _eg .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_eggf :=&PdfColorspaceDeviceNAttributes {};var _bgeed *_eg .PdfObjectDictionary ;switch _fbfga :=_abgca .(type ){case *_eg .PdfIndirectObject :_eggf ._bcca =_fbfga ;var _cfgb bool ;
_bgeed ,_cfgb =_fbfga .PdfObject .(*_eg .PdfObjectDictionary );if !_cfgb {_dbg .Log .Error ("\u0044\u0065\u0076\u0069c\u0065\u004e\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065 \u0074\u0079\u0070\u0065\u0020\u0065\u0072r\u006f\u0072");return nil ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};case *_eg .PdfObjectDictionary :_bgeed =_fbfga ;case *_eg .PdfObjectReference :_cbab :=_fbfga .Resolve ();return _fegg (_cbab );default:_dbg .Log .Error ("\u0044\u0065\u0076\u0069c\u0065\u004e\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065 \u0074\u0079\u0070\u0065\u0020\u0065\u0072r\u006f\u0072");
return nil ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _beec :=_bgeed .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_beec !=nil {_ffgdf ,_cdceca :=_eg .TraceToDirectObject (_beec ).(*_eg .PdfObjectName );if !_cdceca {_dbg .Log .Error ("\u0044\u0065vi\u0063\u0065\u004e \u0061\u0074\u0074\u0072ibu\u0074e \u0053\u0075\u0062\u0074\u0079\u0070\u0065 t\u0079\u0070\u0065\u0020\u0065\u0072\u0072o\u0072");
return nil ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_eggf .Subtype =_ffgdf ;};if _begd :=_bgeed .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_begd !=nil {_eggf .Colorants =_begd ;};if _fbgfa :=_bgeed .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");
_fbgfa !=nil {_eggf .Process =_fbgfa ;};if _faadc :=_bgeed .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_faadc !=nil {_eggf .MixingHints =_faadc ;};return _eggf ,nil ;};
// PdfInfo holds document information that will overwrite
// document information global variables defined above.
type PdfInfo struct{Title *_eg .PdfObjectString ;Author *_eg .PdfObjectString ;Subject *_eg .PdfObjectString ;Keywords *_eg .PdfObjectString ;Creator *_eg .PdfObjectString ;Producer *_eg .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;Trapped *_eg .PdfObjectName ;
_fbfgb *_eg .PdfObjectDictionary ;};
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
func (_cffgd *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _cffgd ._defdf .(*PdfShadingPattern );};
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
func (_deabd *PdfPage )ToPdfObject ()_eg .PdfObject {_ddbbb :=_deabd ._caaef ;_deabd .GetPageDict ();return _ddbbb ;};
// Duplicate creates a duplicate page based on the current one and returns it.
func (_fbbce *PdfPage )Duplicate ()*PdfPage {_efbfd :=*_fbbce ;_efbfd ._ecbba =_eg .MakeDict ();_efbfd ._caaef =_eg .MakeIndirectObject (_efbfd ._ecbba );return &_efbfd ;};
// Add appends an outline item as a child of the current outline item.
func (_fdeec *OutlineItem )Add (item *OutlineItem ){_fdeec .Entries =append (_fdeec .Entries ,item )};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_faaf *PdfOutlineItem )ToPdfObject ()_eg .PdfObject {_bcdcg :=_faaf ._bfega ;_gadbg :=_bcdcg .PdfObject .(*_eg .PdfObjectDictionary );_gadbg .Set ("\u0054\u0069\u0074l\u0065",_faaf .Title );if _faaf .A !=nil {_gadbg .Set ("\u0041",_faaf .A );};if _ggceb :=_gadbg .Get ("\u0053\u0045");
_ggceb !=nil {_gadbg .Remove ("\u0053\u0045");};if _faaf .C !=nil {_gadbg .Set ("\u0043",_faaf .C );};if _faaf .Dest !=nil {_gadbg .Set ("\u0044\u0065\u0073\u0074",_faaf .Dest );};if _faaf .F !=nil {_gadbg .Set ("\u0046",_faaf .F );};if _faaf .Count !=nil {_gadbg .Set ("\u0043\u006f\u0075n\u0074",_eg .MakeInteger (*_faaf .Count ));
};if _faaf .Next !=nil {_gadbg .Set ("\u004e\u0065\u0078\u0074",_faaf .Next .ToPdfObject ());};if _faaf .First !=nil {_gadbg .Set ("\u0046\u0069\u0072s\u0074",_faaf .First .ToPdfObject ());};if _faaf .Prev !=nil {_gadbg .Set ("\u0050\u0072\u0065\u0076",_faaf .Prev .GetContext ().GetContainingPdfObject ());
};if _faaf .Last !=nil {_gadbg .Set ("\u004c\u0061\u0073\u0074",_faaf .Last .GetContext ().GetContainingPdfObject ());};if _faaf .Parent !=nil {_gadbg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_faaf .Parent .GetContext ().GetContainingPdfObject ());
};return _bcdcg ;};func (_ggfacc *PdfAcroForm )fill (_bgbfd FieldValueProvider ,_cbfb FieldAppearanceGenerator )error {if _ggfacc ==nil {return nil ;};_fbaab ,_decaa :=_bgbfd .FieldValues ();if _decaa !=nil {return _decaa ;};for _ ,_acbb :=range _ggfacc .AllFields (){_fbdfa :=_acbb .PartialName ();
_fbgba ,_dgfff :=_fbaab [_fbdfa ];if !_dgfff {if _cdcg ,_dfdc :=_acbb .FullName ();_dfdc ==nil {_fbgba ,_dgfff =_fbaab [_cdcg ];};};if !_dgfff {_dbg .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020f\u006f\u0072\u006d \u0066\u0069\u0065l\u0064\u0020\u0025\u0073\u0020\u006e\u006f\u0074\u0020\u0066o\u0075\u006e\u0064\u0020\u0069n \u0074\u0068\u0065\u0020\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0072\u002e\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u002e",_fbdfa );
continue ;};if _dceba :=_edbga (_acbb ,_fbgba );_dceba !=nil {return _dceba ;};if _cbfb ==nil {continue ;};for _ ,_cebb :=range _acbb .Annotations {_fcgb ,_cbgf :=_cbfb .GenerateAppearanceDict (_ggfacc ,_acbb ,_cebb );if _cbgf !=nil {return _cbgf ;};_cebb .AP =_fcgb ;
_cebb .ToPdfObject ();};};return nil ;};
// GetNumPages returns the number of pages in the document.
func (_caec *PdfReader )GetNumPages ()(int ,error ){if _caec ._cdggc .GetCrypter ()!=nil &&!_caec ._cdggc .IsAuthenticated (){return 0,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};return len (_caec ._dfff ),nil ;};
// NewPdfAnnotation returns an initialized generic PDF annotation model.
func NewPdfAnnotation ()*PdfAnnotation {_gfba :=&PdfAnnotation {};_gfba ._gag =_eg .MakeIndirectObject (_eg .MakeDict ());return _gfba ;};
// PdfFunction interface represents the common methods of a function in PDF.
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_eg .PdfObject ;};
// SetDecode sets the decode image float slice.
func (_ecfda *Image )SetDecode (decode []float64 ){_ecfda ._aaeac =decode };
// C returns the value of the cyan component of the color.
func (_dddc *PdfColorDeviceCMYK )C ()float64 {return _dddc [0]};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element in
// range 0-1.
func (_fdfg *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dbcb ,_bfa :=_eg .GetNumbersAsFloat (objects );
if _bfa !=nil {return nil ,_bfa ;};return _fdfg .ColorFromFloats (_dbcb );};
// GetOCProperties returns the optional content properties PdfObject.
func (_feea *PdfReader )GetOCProperties ()(_eg .PdfObject ,error ){_cgdc :=_feea ._efdg ;_gegdg :=_cgdc .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_gegdg =_eg .ResolveReference (_gegdg );if !_feea ._bebe {_ffffa :=_feea .traverseObjectData (_gegdg );
if _ffffa !=nil {return nil ,_ffffa ;};};return _gegdg ,nil ;};
// NewPdfActionThread returns a new "thread" action.
func NewPdfActionThread ()*PdfActionThread {_gd :=NewPdfAction ();_eec :=&PdfActionThread {};_eec .PdfAction =_gd ;_gd .SetContext (_eec );return _eec ;};
// PdfActionJavaScript represents a javaScript action.
type PdfActionJavaScript struct{*PdfAction ;JS _eg .PdfObject ;};func _aeebeg (_eecbb []byte )[]byte {const _geba =52845;const _fecfb =22719;_bceg :=55665;for _ ,_eddc :=range _eecbb [:4]{_bceg =(int (_eddc )+_bceg )*_geba +_fecfb ;};_bbfc :=make ([]byte ,len (_eecbb )-4);
for _ddcd ,_gabd :=range _eecbb [4:]{_bbfc [_ddcd ]=byte (int (_gabd )^_bceg >>8);_bceg =(int (_gabd )+_bceg )*_geba +_fecfb ;};return _bbfc ;};
// SetPageLabels sets the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_dcegc *PdfWriter )SetPageLabels (pageLabels _eg .PdfObject )error {if pageLabels ==nil {return nil ;};_dbg .Log .Trace ("\u0053\u0065t\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006cs.\u002e\u002e");
_dcegc ._ebaaa .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _dcegc .addObjects (pageLabels );};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_gbadf *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _gbadf .UnderlyingCS ==nil {return nil ,_bbd .New ("u\u006e\u0064\u0065\u0072\u006c\u0079i\u006e\u0067\u0020\u0043\u0053\u0020\u006e\u006f\u0074 \u0073\u0070\u0065c\u0069f\u0069\u0065\u0064");
};return _gbadf .UnderlyingCS .ColorFromFloats (vals );};
// PdfShadingType1 is a Function-based shading.
type PdfShadingType1 struct{*PdfShading ;Domain *_eg .PdfObjectArray ;Matrix *_eg .PdfObjectArray ;Function []PdfFunction ;};
// IsCID returns true if the underlying font is CID.
func (_cfdcc *PdfFont )IsCID ()bool {return _cfdcc .baseFields ().isCIDFont ()};
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_ced :=NewPdfAnnotation ();_dggc :=&PdfAnnotationPrinterMark {};_dggc .PdfAnnotation =_ced ;_ced .SetContext (_dggc );return _dggc ;};var _gdeaa =_ge .MustCompile ("\u005c\u0073\u002a\u0044\u005c\u0073\u002a:\u005c\u0073\u002a\u0028\u005c\u0064\u007b\u0034\u007d\u0029\u0028\u005c\u0064\u007b2\u007d)\u0028\u005c\u0064\u007b\u0032\u007d)\u0028\u005c\u0064\u007b\u0032\u007d\u0029(\u005c\u0064\u007b\u0032\u007d\u0029\u0028\u005c\u0064\u007b\u0032\u007d\u0029\u0028\u005b\u002b\u002d\u005a\u005d\u0029\u003f\u0028\u005cd\u007b\u0032\u007d\u0029\u003f\u0027\u003f\u0028\u005c\u0064\u007b\u0032\u007d)\u003f");
// SignatureHandler interface defines the common functionality for PDF signature handlers, which
// need to be capable of validating digital signatures and signing PDF documents.
type SignatureHandler interface{IsApplicable (_fafgg *PdfSignature )bool ;Validate (_abfb *PdfSignature ,_fafef Hasher )(SignatureValidationResult ,error );
// InitSignature sets the PdfSignature parameters.
InitSignature (*PdfSignature )error ;NewDigest (_bbcea *PdfSignature )(Hasher ,error );Sign (_agbdc *PdfSignature ,_gace Hasher )error ;};
// ToPdfObject implements interface PdfModel.
func (_bea *PdfAnnotationProjection )ToPdfObject ()_eg .PdfObject {_bea .PdfAnnotation .ToPdfObject ();_dfbg :=_bea ._gag ;_ebdg :=_dfbg .PdfObject .(*_eg .PdfObjectDictionary );_bea .PdfAnnotationMarkup .appendToPdfDictionary (_ebdg );return _dfbg ;};
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_fdee :=NewPdfAnnotation ();_bgbf :=&PdfAnnotationFileAttachment {};_bgbf .PdfAnnotation =_fdee ;_bgbf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fdee .SetContext (_bgbf );return _bgbf ;
};
// ToPdfObject implements interface PdfModel.
func (_gge *PdfActionGoToR )ToPdfObject ()_eg .PdfObject {_gge .PdfAction .ToPdfObject ();_aec :=_gge ._ege ;_aac :=_aec .PdfObject .(*_eg .PdfObjectDictionary );_aac .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeGoToR )));if _gge .F !=nil {_aac .Set ("\u0046",_gge .F .ToPdfObject ());
};_aac .SetIfNotNil ("\u0044",_gge .D );_aac .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_gge .NewWindow );return _aec ;};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_ebae *PdfColorspaceLab )ToPdfObject ()_eg .PdfObject {_ace :=_eg .MakeArray ();_ace .Append (_eg .MakeName ("\u004c\u0061\u0062"));_dfdb :=_eg .MakeDict ();if _ebae .WhitePoint !=nil {_badg :=_eg .MakeArray (_eg .MakeFloat (_ebae .WhitePoint [0]),_eg .MakeFloat (_ebae .WhitePoint [1]),_eg .MakeFloat (_ebae .WhitePoint [2]));
_dfdb .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_badg );}else {_dbg .Log .Error ("\u004c\u0061\u0062: \u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0057h\u0069t\u0065P\u006fi\u006e\u0074\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029");
};if _ebae .BlackPoint !=nil {_efec :=_eg .MakeArray (_eg .MakeFloat (_ebae .BlackPoint [0]),_eg .MakeFloat (_ebae .BlackPoint [1]),_eg .MakeFloat (_ebae .BlackPoint [2]));_dfdb .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_efec );
};if _ebae .Range !=nil {_feae :=_eg .MakeArray (_eg .MakeFloat (_ebae .Range [0]),_eg .MakeFloat (_ebae .Range [1]),_eg .MakeFloat (_ebae .Range [2]),_eg .MakeFloat (_ebae .Range [3]));_dfdb .Set ("\u0052\u0061\u006eg\u0065",_feae );};_ace .Append (_dfdb );
if _ebae ._fcef !=nil {_ebae ._fcef .PdfObject =_ace ;return _ebae ._fcef ;};return _ace ;};
// Height returns the height of `rect`.
func (_fdaab *PdfRectangle )Height ()float64 {return _bc .Abs (_fdaab .Ury -_fdaab .Lly )};func _aefad (_dgag StdFontName )(pdfFontSimple ,error ){_edcd ,_adce :=_ab .NewStdFontByName (_dgag );if !_adce {return pdfFontSimple {},ErrFontNotSupported ;};_bgba :=_gecc (_edcd );
return _bgba ,nil ;};
// PdfShadingType2 is an Axial shading.
type PdfShadingType2 struct{*PdfShading ;Coords *_eg .PdfObjectArray ;Domain *_eg .PdfObjectArray ;Function []PdfFunction ;Extend *_eg .PdfObjectArray ;};type pdfSignDictionary struct{*_eg .PdfObjectDictionary ;_fbfb *SignatureHandler ;_bcacg *PdfSignature ;
_gfefg int64 ;_addad int ;_gaeef int ;_ddbef int ;_bfgaa int ;};
// ToPdfObject returns the PDF representation of the outline tree node.
func (_gdbcg *PdfOutlineTreeNode )ToPdfObject ()_eg .PdfObject {return _gdbcg .GetContext ().ToPdfObject ();};
// ToPdfObject implements interface PdfModel.
func (_bbdg *PdfAnnotationCircle )ToPdfObject ()_eg .PdfObject {_bbdg .PdfAnnotation .ToPdfObject ();_fgcf :=_bbdg ._gag ;_gega :=_fgcf .PdfObject .(*_eg .PdfObjectDictionary );_bbdg .PdfAnnotationMarkup .appendToPdfDictionary (_gega );_gega .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));
_gega .SetIfNotNil ("\u0042\u0053",_bbdg .BS );_gega .SetIfNotNil ("\u0049\u0043",_bbdg .IC );_gega .SetIfNotNil ("\u0042\u0045",_bbdg .BE );_gega .SetIfNotNil ("\u0052\u0044",_bbdg .RD );return _fgcf ;};
// GetDescent returns the Descent of the font `descriptor`.
func (_eeccd *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _eg .GetNumberAsFloat (_eeccd .Descent );};func (_gce *PdfReader )newPdfAnnotationPopupFromDict (_aefee *_eg .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_def :=PdfAnnotationPopup {};
_def .Parent =_aefee .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_def .Open =_aefee .Get ("\u004f\u0070\u0065\u006e");return &_def ,nil ;};
// ToPdfObject returns the PDF representation of the VRI dictionary.
func (_bbcga *VRI )ToPdfObject ()*_eg .PdfObjectDictionary {_ecdb :=_eg .MakeDict ();_ecdb .SetIfNotNil (_eg .PdfObjectName ("\u0043\u0065\u0072\u0074"),_bffd (_bbcga .Cert ));_ecdb .SetIfNotNil (_eg .PdfObjectName ("\u004f\u0043\u0053\u0050"),_bffd (_bbcga .OCSP ));
_ecdb .SetIfNotNil (_eg .PdfObjectName ("\u0043\u0052\u004c"),_bffd (_bbcga .CRL ));_ecdb .SetIfNotNil ("\u0054\u0055",_bbcga .TU );_ecdb .SetIfNotNil ("\u0054\u0053",_bbcga .TS );return _ecdb ;};
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
func (_bfaf *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// CharcodeBytesToUnicode converts PDF character codes `data` to a Go unicode string.
//
// 9.10 Extraction of Text Content (page 292)
// The process of finding glyph descriptions in OpenType fonts by a conforming reader shall be the following:
// • For Type 1 fonts using “CFF” tables, the process shall be as described in 9.6.6.2, "Encodings
// for Type 1 Fonts".
// • For TrueType fonts using “glyf” tables, the process shall be as described in 9.6.6.4,
// "Encodings for TrueType Fonts". Since this process sometimes produces ambiguous results,
// conforming writers, instead of using a simple font, shall use a Type 0 font with an Identity-H
// encoding and use the glyph indices as character codes, as described following Table 118.
func (_ceecf *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_afcgc ,_ ,_gfgfa :=_ceecf .CharcodesToUnicodeWithStats (_ceecf .BytesToCharcodes (data ));_gdcf :=_cec .ExpandLigatures (_afcgc );return _gdcf ,_cb .RuneCountInString (_gdcf ),_gfgfa ;
};
// ToPdfObject implements interface PdfModel.
func (_gbfe *PdfAnnotationFreeText )ToPdfObject ()_eg .PdfObject {_gbfe .PdfAnnotation .ToPdfObject ();_aecf :=_gbfe ._gag ;_gfca :=_aecf .PdfObject .(*_eg .PdfObjectDictionary );_gbfe .PdfAnnotationMarkup .appendToPdfDictionary (_gfca );_gfca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));
_gfca .SetIfNotNil ("\u0044\u0041",_gbfe .DA );_gfca .SetIfNotNil ("\u0051",_gbfe .Q );_gfca .SetIfNotNil ("\u0052\u0043",_gbfe .RC );_gfca .SetIfNotNil ("\u0044\u0053",_gbfe .DS );_gfca .SetIfNotNil ("\u0043\u004c",_gbfe .CL );_gfca .SetIfNotNil ("\u0049\u0054",_gbfe .IT );
_gfca .SetIfNotNil ("\u0042\u0045",_gbfe .BE );_gfca .SetIfNotNil ("\u0052\u0044",_gbfe .RD );_gfca .SetIfNotNil ("\u0042\u0053",_gbfe .BS );_gfca .SetIfNotNil ("\u004c\u0045",_gbfe .LE );return _aecf ;};
// Enable LTV enables the specified signature. The signing certificate
// chain is extracted from the signature dictionary. Optionally, additional
// certificates can be specified through the `extraCerts` parameter.
// The LTV client attempts to build the certificate chain up to a trusted root
// by downloading any missing certificates.
func (_dffa *LTV )Enable (sig *PdfSignature ,extraCerts []*_ce .Certificate )error {if _dddg :=_dffa .validateSig (sig );_dddg !=nil {return _dddg ;};_ggfef ,_ecdaf :=_dffa .generateVRIKey (sig );if _ecdaf !=nil {return _ecdaf ;};if _ ,_deece :=_dffa ._fgada .VRI [_ggfef ];
_deece &&_dffa .SkipExisting {return nil ;};_baafb ,_ecdaf :=sig .GetCerts ();if _ecdaf !=nil {return _ecdaf ;};return _dffa .enable (_baafb ,extraCerts ,_ggfef );};func (_deaa *DSS )addCerts (_abaf [][]byte )([]*_eg .PdfObjectStream ,error ){return _deaa .add (&_deaa .Certs ,_deaa ._gaad ,_abaf );
};
// CharcodesToUnicodeWithStats is identical to CharcodesToUnicode except it returns more statistical
// information about hits and misses from the reverse mapping process.
// NOTE: The number of runes returned may be greater than the number of charcodes.
// TODO(peterwilliams97): Deprecate in v4 and use only CharcodesToStrings()
func (_cdba *PdfFont )CharcodesToUnicodeWithStats (charcodes []_cec .CharCode )(_aadd []rune ,_fcbfb ,_ceagd int ){_gcbd ,_fcbfb ,_ceagd :=_cdba .CharcodesToStrings (charcodes );return []rune (_dc .Join (_gcbd ,"")),_fcbfb ,_ceagd ;};
// ToPdfObject implements interface PdfModel.
func (_bcag *PdfAnnotationSquare )ToPdfObject ()_eg .PdfObject {_bcag .PdfAnnotation .ToPdfObject ();_gefa :=_bcag ._gag ;_aebe :=_gefa .PdfObject .(*_eg .PdfObjectDictionary );if _bcag .PdfAnnotationMarkup !=nil {_bcag .PdfAnnotationMarkup .appendToPdfDictionary (_aebe );
};_aebe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_aebe .SetIfNotNil ("\u0042\u0053",_bcag .BS );_aebe .SetIfNotNil ("\u0049\u0043",_bcag .IC );_aebe .SetIfNotNil ("\u0042\u0045",_bcag .BE );
_aebe .SetIfNotNil ("\u0052\u0044",_bcag .RD );return _gefa ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_edfec *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgfc ,_egefb :=_eg .GetNumbersAsFloat (objects );
if _egefb !=nil {return nil ,_egefb ;};return _edfec .ColorFromFloats (_bgfc );};
// NewOutlineItem returns a new outline item instance.
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};
// ToPdfObject implements interface PdfModel.
func (_dgg *PdfActionResetForm )ToPdfObject ()_eg .PdfObject {_dgg .PdfAction .ToPdfObject ();_ag :=_dgg ._ege ;_ffe :=_ag .PdfObject .(*_eg .PdfObjectDictionary );_ffe .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeResetForm )));_ffe .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_dgg .Fields );
_ffe .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_dgg .Flags );return _ag ;};func _cafedf (_fcdbd _eg .PdfObject )(string ,error ){_fcdbd =_eg .TraceToDirectObject (_fcdbd );switch _fafaa :=_fcdbd .(type ){case *_eg .PdfObjectString :return _fafaa .Str (),nil ;
case *_eg .PdfObjectStream :_debge ,_bcbc :=_eg .DecodeStream (_fafaa );if _bcbc !=nil {return "",_bcbc ;};return string (_debge ),nil ;};return "",_e .Errorf ("\u0069\u006e\u0076\u0061\u006ci\u0064\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0073\u0074\u0072e\u0061\u006d\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0068\u006f\u006c\u0064\u0065\u0072\u0020\u0028\u0025\u0054\u0029",_fcdbd );
};
// SetName sets the `Name` field of the signature.
func (_ggfcc *PdfSignature )SetName (name string ){_ggfcc .Name =_eg .MakeString (name )};
// Evaluate runs the function on the passed in slice and returns the results.
func (_acade *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_acade .NumInputs {_dbg .Log .Error ("\u004eu\u006d\u0062e\u0072\u0020\u006f\u0066 \u0069\u006e\u0070u\u0074\u0073\u0020\u006e\u006f\u0074\u0020\u006d\u0061tc\u0068\u0069\u006eg\u0020\u0077h\u0061\u0074\u0020\u0069\u0073\u0020n\u0065\u0065d\u0065\u0064");
return nil ,_bbd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _acade ._dgfa ==nil {_acccc :=_acade .processSamples ();if _acccc !=nil {return nil ,_acccc ;};};_bcbbf :=_acade .Encode ;if _bcbbf ==nil {_bcbbf =[]float64 {};
for _cafac :=0;_cafac < len (_acade .Size );_cafac ++{_bcbbf =append (_bcbbf ,0);_bcbbf =append (_bcbbf ,float64 (_acade .Size [_cafac ]-1));};};_bdcf :=_acade .Decode ;if _bdcf ==nil {_bdcf =_acade .Range ;};_dbgeg :=make ([]int ,len (x ));for _fdeb :=0;
_fdeb < len (x );_fdeb ++{_aebgf :=x [_fdeb ];_gedff :=_bc .Min (_bc .Max (_aebgf ,_acade .Domain [2*_fdeb ]),_acade .Domain [2*_fdeb +1]);_dadab :=_ff .LinearInterpolate (_gedff ,_acade .Domain [2*_fdeb ],_acade .Domain [2*_fdeb +1],_bcbbf [2*_fdeb ],_bcbbf [2*_fdeb +1]);
_aeebd :=_bc .Min (_bc .Max (_dadab ,0),float64 (_acade .Size [_fdeb ]-1));_baff :=int (_bc .Floor (_aeebd +0.5));if _baff < 0{_baff =0;}else if _baff > _acade .Size [_fdeb ]{_baff =_acade .Size [_fdeb ]-1;};_dbgeg [_fdeb ]=_baff ;};_gcfcf :=_dbgeg [0];
for _fffb :=1;_fffb < _acade .NumInputs ;_fffb ++{_geaff :=_dbgeg [_fffb ];for _aabba :=0;_aabba < _fffb ;_aabba ++{_geaff *=_acade .Size [_aabba ];};_gcfcf +=_geaff ;};_gcfcf *=_acade .NumOutputs ;var _cbgad []float64 ;for _efbd :=0;_efbd < _acade .NumOutputs ;
_efbd ++{_gcca :=_gcfcf +_efbd ;if _gcca >=len (_acade ._dgfa ){_dbg .Log .Debug ("\u0057\u0041\u0052\u004e\u003a \u006e\u006ft\u0020\u0065\u006eo\u0075\u0067\u0068\u0020\u0069\u006ep\u0075\u0074\u0020sa\u006dp\u006c\u0065\u0073\u0020\u0074\u006f\u0020d\u0065\u0074\u0065\u0072\u006d\u0069\u006e\u0065\u0020\u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0076\u0061lu\u0065\u0073\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074\u0020\u006d\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063\u0074\u002e");
continue ;};_cgecag :=_acade ._dgfa [_gcca ];_accad :=_ff .LinearInterpolate (float64 (_cgecag ),0,_bc .Pow (2,float64 (_acade .BitsPerSample )),_bdcf [2*_efbd ],_bdcf [2*_efbd +1]);_fddcc :=_bc .Min (_bc .Max (_accad ,_acade .Range [2*_efbd ]),_acade .Range [2*_efbd +1]);
_cbgad =append (_cbgad ,_fddcc );};return _cbgad ,nil ;};
// GetNumComponents returns the number of color components (1 for grayscale).
func (_ceec *PdfColorDeviceGray )GetNumComponents ()int {return 1};
// ToPdfObject implements interface PdfModel.
func (_gcdd *PdfAnnotationCaret )ToPdfObject ()_eg .PdfObject {_gcdd .PdfAnnotation .ToPdfObject ();_bcbed :=_gcdd ._gag ;_ceca :=_bcbed .PdfObject .(*_eg .PdfObjectDictionary );_gcdd .PdfAnnotationMarkup .appendToPdfDictionary (_ceca );_ceca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0043\u0061\u0072e\u0074"));
_ceca .SetIfNotNil ("\u0052\u0044",_gcdd .RD );_ceca .SetIfNotNil ("\u0053\u0079",_gcdd .Sy );return _bcbed ;};
// NewPdfAnnotationStamp returns a new stamp annotation.
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_dgf :=NewPdfAnnotation ();_aeb :=&PdfAnnotationStamp {};_aeb .PdfAnnotation =_dgf ;_aeb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dgf .SetContext (_aeb );return _aeb ;};func _ggafb (_ecddg _eg .PdfObject )(*PdfBorderStyle ,error ){_cffe :=&PdfBorderStyle {};
_cffe ._cbeg =_ecddg ;var _dbag *_eg .PdfObjectDictionary ;_ecddg =_eg .TraceToDirectObject (_ecddg );_dbag ,_fdag :=_ecddg .(*_eg .PdfObjectDictionary );if !_fdag {return nil ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};if _dbgb :=_dbag .Get ("\u0054\u0079\u0070\u0065");_dbgb !=nil {_cbb ,_dgbf :=_dbgb .(*_eg .PdfObjectName );if !_dgbf {_dbg .Log .Debug ("I\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062i\u006c\u0069\u0074\u0079\u0020\u0077\u0069th\u0020\u0054\u0079\u0070e\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u006e\u0061me\u0020\u006fb\u006a\u0065\u0063\u0074\u003a\u0020\u0025\u0054",_dbgb );
}else {if *_cbb !="\u0042\u006f\u0072\u0064\u0065\u0072"{_dbg .Log .Debug ("W\u0061\u0072\u006e\u0069\u006e\u0067,\u0020\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020B\u006f\u0072\u0064e\u0072:\u0020\u0025\u0073",*_cbb );};};};if _bbdf :=_dbag .Get ("\u0057");
_bbdf !=nil {_adg ,_egc :=_eg .GetNumberAsFloat (_bbdf );if _egc !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_egc );return nil ,_egc ;};_cffe .W =&_adg ;
};if _ccc :=_dbag .Get ("\u0053");_ccc !=nil {_fbdc ,_gdfb :=_ccc .(*_eg .PdfObjectName );if !_gdfb {return nil ,_bbd .New ("\u0062\u006f\u0072\u0064\u0065\u0072\u0020\u0053\u0020\u006e\u006ft\u0020\u0061\u0020\u006e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");
};var _ffce BorderStyle ;switch *_fbdc {case "\u0053":_ffce =BorderStyleSolid ;case "\u0044":_ffce =BorderStyleDashed ;case "\u0042":_ffce =BorderStyleBeveled ;case "\u0049":_ffce =BorderStyleInset ;case "\u0055":_ffce =BorderStyleUnderline ;default:_dbg .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_fbdc );
return nil ,_bbd .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_cffe .S =&_ffce ;};if _dafed :=_dbag .Get ("\u0044");_dafed !=nil {_bede ,_ggdb :=_dafed .(*_eg .PdfObjectArray );
if !_ggdb {_dbg .Log .Debug ("\u0042\u006f\u0072\u0064\u0065\u0072\u0020\u0044\u0020\u0064a\u0073\u0068\u0020\u006e\u006f\u0074\u0020a\u006e\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0054",_dafed );return nil ,_bbd .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");
};_debc ,_bfc :=_bede .ToIntegerArray ();if _bfc !=nil {_dbg .Log .Debug ("\u0042\u006f\u0072\u0064\u0065\u0072\u0020\u0044 \u0050\u0072\u006fbl\u0065\u006d\u0020\u0063\u006f\u006ev\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0069\u006e\u0074\u0065\u0067e\u0072\u0020\u0061\u0072\u0072\u0061\u0079\u003a \u0025\u0076",_bfc );
return nil ,_bfc ;};_cffe .D =&_debc ;};return _cffe ,nil ;};var _acgcf =map[string ]struct{}{"\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067":{},"\u004d\u0061c\u0052\u006f\u006da\u006e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067":{},"\u004d\u0061\u0063\u0045\u0078\u0070\u0065\u0072\u0074\u0045\u006e\u0063o\u0064\u0069\u006e\u0067":{},"\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067":{}};
// PageProcessCallback callback function used in page loading
// that could be used to modify the page content.
//
// If an error is returned, the `ToWriter` process would fail.
//
// This callback, if defined, will take precedence over `PageCallback` callback.
type PageProcessCallback func (_gafa int ,_egdd *PdfPage )error ;func (_aaba *PdfAnnotationMarkup )appendToPdfDictionary (_fba *_eg .PdfObjectDictionary ){_fba .SetIfNotNil ("\u0054",_aaba .T );if _aaba .Popup !=nil {_fba .Set ("\u0050\u006f\u0070u\u0070",_aaba .Popup .ToPdfObject ());
};_fba .SetIfNotNil ("\u0043\u0041",_aaba .CA );_fba .SetIfNotNil ("\u0052\u0043",_aaba .RC );_fba .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_aaba .CreationDate );_fba .SetIfNotNil ("\u0049\u0052\u0054",_aaba .IRT );
_fba .SetIfNotNil ("\u0053\u0075\u0062\u006a",_aaba .Subj );_fba .SetIfNotNil ("\u0052\u0054",_aaba .RT );_fba .SetIfNotNil ("\u0049\u0054",_aaba .IT );_fba .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_aaba .ExData );};
// SetPdfProducer sets the Producer attribute of the output PDF.
func SetPdfProducer (producer string ){_egbeg .Lock ();defer _egbeg .Unlock ();_gdagd =producer };func (_cdeccd *PdfShading )getShadingDict ()(*_eg .PdfObjectDictionary ,error ){_dccbf :=_cdeccd ._beag ;if _ecgcd ,_ddaf :=_dccbf .(*_eg .PdfIndirectObject );
_ddaf {_eded ,_egfc :=_ecgcd .PdfObject .(*_eg .PdfObjectDictionary );if !_egfc {return nil ,_eg .ErrTypeError ;};return _eded ,nil ;}else if _egba ,_dfgfb :=_dccbf .(*_eg .PdfObjectStream );_dfgfb {return _egba .PdfObjectDictionary ,nil ;}else if _eecgbc ,_beeg :=_dccbf .(*_eg .PdfObjectDictionary );
_beeg {return _eecgbc ,nil ;}else {_dbg .Log .Debug ("U\u006e\u0061\u0062\u006c\u0065\u0020t\u006f\u0020\u0061\u0063\u0063\u0065s\u0073\u0020\u0073\u0068\u0061\u0064\u0069n\u0067\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079");return nil ,_eg .ErrTypeError ;
};};func (_ebadd *PdfWriter )seekByName (_abddc _eg .PdfObject ,_dcgff []string ,_ccef string )([]_eg .PdfObject ,error ){_dbg .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_abddc );var _cadga []_eg .PdfObject ;
if _bfag ,_egcef :=_abddc .(*_eg .PdfIndirectObject );_egcef {return _ebadd .seekByName (_bfag .PdfObject ,_dcgff ,_ccef );};if _faaaa ,_ccbcg :=_abddc .(*_eg .PdfObjectStream );_ccbcg {return _ebadd .seekByName (_faaaa .PdfObjectDictionary ,_dcgff ,_ccef );
};if _abaga ,_dfda :=_abddc .(*_eg .PdfObjectDictionary );_dfda {_dbg .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_agfea :=range _abaga .Keys (){_cdcab :=_abaga .Get (_agfea );if string (_agfea )==_ccef {_cadga =append (_cadga ,_cdcab );};for _ ,_beadc :=range _dcgff {if string (_agfea )==_beadc {_dbg .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_beadc );
_fffba ,_geeedd :=_ebadd .seekByName (_cdcab ,_dcgff ,_ccef );if _geeedd !=nil {return _cadga ,_geeedd ;};_cadga =append (_cadga ,_fffba ...);break ;};};};return _cadga ,nil ;};return _cadga ,nil ;};
// SignatureValidationResult defines the response from the signature validation handler.
type SignatureValidationResult struct{
// List of errors when validating the signature.
Errors []string ;IsSigned bool ;IsVerified bool ;IsTrusted bool ;Fields []*PdfField ;Name string ;Date PdfDate ;Reason string ;Location string ;ContactInfo string ;
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
GeneralizedTime _ee .Time ;};
// ToPdfObject implements interface PdfModel.
func (_abcc *PdfAnnotationPolygon )ToPdfObject ()_eg .PdfObject {_abcc .PdfAnnotation .ToPdfObject ();_cgff :=_abcc ._gag ;_cfdbb :=_cgff .PdfObject .(*_eg .PdfObjectDictionary );_abcc .PdfAnnotationMarkup .appendToPdfDictionary (_cfdbb );_cfdbb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));
_cfdbb .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_abcc .Vertices );_cfdbb .SetIfNotNil ("\u004c\u0045",_abcc .LE );_cfdbb .SetIfNotNil ("\u0042\u0053",_abcc .BS );_cfdbb .SetIfNotNil ("\u0049\u0043",_abcc .IC );_cfdbb .SetIfNotNil ("\u0042\u0045",_abcc .BE );
_cfdbb .SetIfNotNil ("\u0049\u0054",_abcc .IT );_cfdbb .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_abcc .Measure );return _cgff ;};func _ceggb (_ccfdg _eg .PdfObject )(*PdfPattern ,error ){_gcfef :=&PdfPattern {};var _beef *_eg .PdfObjectDictionary ;
if _abedb ,_agddd :=_eg .GetIndirect (_ccfdg );_agddd {_gcfef ._cfaag =_abedb ;_ffeaf ,_edagb :=_abedb .PdfObject .(*_eg .PdfObjectDictionary );if !_edagb {_dbg .Log .Debug ("\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006ae\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0063\u006fn\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u0064\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079\u0020\u0028g\u006f\u0074\u0020%\u0054\u0029",_abedb .PdfObject );
return nil ,_eg .ErrTypeError ;};_beef =_ffeaf ;}else if _gdaa ,_fcecf :=_eg .GetStream (_ccfdg );_fcecf {_gcfef ._cfaag =_gdaa ;_beef =_gdaa .PdfObjectDictionary ;}else {_dbg .Log .Debug ("\u0050a\u0074\u0074e\u0072\u006e\u0020\u006eo\u0074\u0020\u0061n\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074 o\u0062\u006a\u0065c\u0074\u0020o\u0072\u0020\u0073\u0074\u0072\u0065a\u006d\u002e \u0025\u0054",_ccfdg );
return nil ,_eg .ErrTypeError ;};_ddga :=_beef .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _ddga ==nil {_dbg .Log .Debug ("\u0050\u0064\u0066\u0020\u0050\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069n\u0067\u0020\u0050\u0061\u0074t\u0065\u0072n\u0054\u0079\u0070\u0065");
return nil ,ErrRequiredAttributeMissing ;};_babfb ,_ggggf :=_ddga .(*_eg .PdfObjectInteger );if !_ggggf {_dbg .Log .Debug ("\u0050\u0061tt\u0065\u0072\u006e \u0074\u0079\u0070\u0065 no\u0074 a\u006e\u0020\u0069\u006e\u0074\u0065\u0067er\u0020\u0028\u0067\u006f\u0074\u0020\u0025T\u0029",_ddga );
return nil ,_eg .ErrTypeError ;};if *_babfb !=1&&*_babfb !=2{_dbg .Log .Debug ("\u0050\u0061\u0074\u0074e\u0072\u006e\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d \u0031/\u0032\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",*_babfb );return nil ,_eg .ErrRangeError ;
};_gcfef .PatternType =int64 (*_babfb );switch *_babfb {case 1:_abbe ,_dddbc :=_gbdcb (_beef );if _dddbc !=nil {return nil ,_dddbc ;};_abbe .PdfPattern =_gcfef ;_gcfef ._defdf =_abbe ;return _gcfef ,nil ;case 2:_ggggb ,_egdabc :=_aceda (_beef );if _egdabc !=nil {return nil ,_egdabc ;
};_ggggb .PdfPattern =_gcfef ;_gcfef ._defdf =_ggggb ;return _gcfef ,nil ;};return nil ,_bbd .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};func (_cbacc *PdfReader )lookupPageByObject (_fdadg _eg .PdfObject )(*PdfPage ,error ){return nil ,_bbd .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");
};
// ToPdfObject implements interface PdfModel.
func (_edac *PdfAnnotationRichMedia )ToPdfObject ()_eg .PdfObject {_edac .PdfAnnotation .ToPdfObject ();_afgb :=_edac ._gag ;_abgfe :=_afgb .PdfObject .(*_eg .PdfObjectDictionary );_abgfe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));
_abgfe .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_edac .RichMediaSettings );_abgfe .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_edac .RichMediaContent );
return _afgb ;};func (_gage *PdfReader )newPdfAnnotationRichMediaFromDict (_cegf *_eg .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_aaad :=&PdfAnnotationRichMedia {};_aaad .RichMediaSettings =_cegf .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");
_aaad .RichMediaContent =_cegf .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");return _aaad ,nil ;};
// RemovePage removes a page by number.
func (_gagg *PdfAppender )RemovePage (pageNum int ){_cgbc :=pageNum -1;_gagg ._bfce =append (_gagg ._bfce [0:_cgbc ],_gagg ._bfce [pageNum :]...);};func (_bfbc *PdfReader )buildOutlineTree (_dffd _eg .PdfObject ,_dacda *PdfOutlineTreeNode ,_fefec *PdfOutlineTreeNode ,_fgabcf map[_eg .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _fgabcf ==nil {_fgabcf =map[_eg .PdfObject ]struct{}{};
};_fgabcf [_dffd ]=struct{}{};_fcbba ,_agagb :=_dffd .(*_eg .PdfIndirectObject );if !_agagb {return nil ,nil ,_e .Errorf ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0063\u006f\u006et\u0061\u0069\u006e\u0065r\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0054",_dffd );
};_bfbbe ,_caadfa :=_fcbba .PdfObject .(*_eg .PdfObjectDictionary );if !_caadfa {return nil ,nil ,_bbd .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_dbg .Log .Trace ("\u0062\u0075\u0069\u006c\u0064\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0074\u0072\u0065\u0065\u003a\u0020d\u0069\u0063\u0074\u003a\u0020\u0025\u0076\u0020\u0028\u0025\u0076\u0029\u0020p\u003a\u0020\u0025\u0070",_bfbbe ,_fcbba ,_fcbba );
if _cccff :=_bfbbe .Get ("\u0054\u0069\u0074l\u0065");_cccff !=nil {_agee ,_bddaa :=_bfbc .newPdfOutlineItemFromIndirectObject (_fcbba );if _bddaa !=nil {return nil ,nil ,_bddaa ;};_agee .Parent =_dacda ;_agee .Prev =_fefec ;_cfdded :=_eg .ResolveReference (_bfbbe .Get ("\u0046\u0069\u0072s\u0074"));
if _ ,_adedb :=_fgabcf [_cfdded ];_cfdded !=nil &&_cfdded !=_fcbba &&!_adedb {if !_eg .IsNullObject (_cfdded ){_gcacf ,_agfgb ,_aaee :=_bfbc .buildOutlineTree (_cfdded ,&_agee .PdfOutlineTreeNode ,nil ,_fgabcf );if _aaee !=nil {_dbg .Log .Debug ("D\u0045\u0042U\u0047\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0062\u0075\u0069\u006c\u0064\u0020\u006fu\u0074\u006c\u0069\u006e\u0065\u0020\u0069\u0074\u0065\u006d\u0020\u0074\u0072\u0065\u0065\u003a \u0025\u0076\u002e\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020n\u006f\u0064\u0065\u0020\u0063\u0068\u0069\u006c\u0064\u0072\u0065n\u002e",_aaee );
}else {_agee .First =_gcacf ;_agee .Last =_agfgb ;};};};_dbbgbd :=_eg .ResolveReference (_bfbbe .Get ("\u004e\u0065\u0078\u0074"));if _ ,_agcege :=_fgabcf [_dbbgbd ];_dbbgbd !=nil &&_dbbgbd !=_fcbba &&!_agcege {if !_eg .IsNullObject (_dbbgbd ){_fgdg ,_geccd ,_cbecf :=_bfbc .buildOutlineTree (_dbbgbd ,_dacda ,&_agee .PdfOutlineTreeNode ,_fgabcf );
if _cbecf !=nil {_dbg .Log .Debug ("D\u0045\u0042U\u0047\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0062\u0075\u0069\u006c\u0064\u0020\u006fu\u0074\u006c\u0069\u006e\u0065\u0020\u0074\u0072\u0065\u0065\u0020\u0066\u006f\u0072\u0020\u004ee\u0078\u0074\u0020\u006e\u006f\u0064\u0065\u003a\u0020\u0025\u0076\u002e\u0020S\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u006e\u006f\u0064e\u002e",_cbecf );
}else {_agee .Next =_fgdg ;return &_agee .PdfOutlineTreeNode ,_geccd ,nil ;};};};return &_agee .PdfOutlineTreeNode ,&_agee .PdfOutlineTreeNode ,nil ;};_caefb ,_becg :=_aaaad (_fcbba );if _becg !=nil {return nil ,nil ,_becg ;};_caefb .Parent =_dacda ;if _egcfcb :=_bfbbe .Get ("\u0046\u0069\u0072s\u0074");
_egcfcb !=nil {_egcfcb =_eg .ResolveReference (_egcfcb );if _ ,_afdd :=_fgabcf [_egcfcb ];_egcfcb !=nil &&_egcfcb !=_fcbba &&!_afdd {_becc :=_eg .TraceToDirectObject (_egcfcb );if _ ,_dfgc :=_becc .(*_eg .PdfObjectNull );!_dfgc &&_becc !=nil {_gcefe ,_bgeae ,_beae :=_bfbc .buildOutlineTree (_egcfcb ,&_caefb .PdfOutlineTreeNode ,nil ,_fgabcf );
if _beae !=nil {_dbg .Log .Debug ("\u0044\u0045\u0042\u0055\u0047\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020b\u0075\u0069\u006c\u0064\u0020\u006f\u0075\u0074\u006c\u0069n\u0065\u0020\u0074\u0072\u0065\u0065\u003a\u0020\u0025\u0076\u002e\u0020\u0053\u006b\u0069\u0070\u0070\u0069n\u0067\u0020\u006e\u006f\u0064\u0065 \u0063\u0068i\u006c\u0064r\u0065n\u002e",_beae );
}else {_caefb .First =_gcefe ;_caefb .Last =_bgeae ;};};};};return &_caefb .PdfOutlineTreeNode ,&_caefb .PdfOutlineTreeNode ,nil ;};
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_eaee :=PdfColorDeviceGray (grayVal );return &_eaee ;};
// Write writes the Appender output to io.Writer.
// It can only be called once and further invocations will result in an error.
func (_aeca *PdfAppender )Write (w _de .Writer )error {if _aeca ._fabe {return _bbd .New ("\u0061\u0070\u0070\u0065\u006e\u0064\u0065\u0072\u0020\u0077\u0072\u0069\u0074e\u0020\u0063\u0061\u006e\u0020\u006fn\u006c\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0076\u006f\u006b\u0065\u0064 \u006f\u006e\u0063\u0065");
};_ggfc :=NewPdfWriter ();_fcff ,_edef :=_eg .GetDict (_ggfc ._afbga );if !_edef {return _bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0020(\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0029");
};_dgea ,_edef :=_fcff .Get ("\u004b\u0069\u0064\u0073").(*_eg .PdfObjectArray );if !_edef {return _bbd .New ("\u0069\u006ev\u0061\u006c\u0069\u0064 \u0050\u0061g\u0065\u0073\u0020\u004b\u0069\u0064\u0073\u0020o\u0062\u006a\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079\u0029");
};_cgbca ,_edef :=_fcff .Get ("\u0043\u006f\u0075n\u0074").(*_eg .PdfObjectInteger );if !_edef {return _bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u0050\u0061\u0067e\u0073\u0020\u0043\u006fu\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0029");
};_eaeg :=_aeca ._acdg ._cdggc ;_dafg :=_eaeg .GetTrailer ();if _dafg ==nil {return _bbd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_eefb ,_edef :=_eg .GetIndirect (_dafg .Get ("\u0052\u006f\u006f\u0074"));
if !_edef {return _bbd .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_gbce ,_edef :=_eg .GetDict (_eefb );if !_edef {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0028\u0072\u006f\u006f\u0074\u0020\u0025\u0071\u0029\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u0020\u0025\u0073\u0029",_eefb ,*_dafg );
return _bbd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_bfea :=range _gbce .Keys (){if _ggfc ._ebaaa .Get (_bfea )==nil {_cgdd :=_gbce .Get (_bfea );_ggfc ._ebaaa .Set (_bfea ,_cgdd );};};if _aeca ._ggcc !=nil {_ggfc ._ebaaa .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_aeca ._ggcc .ToPdfObject ());
_aeca .updateObjectsDeep (_aeca ._ggcc .ToPdfObject (),nil );};if _aeca ._aegd !=nil {_aeca .updateObjectsDeep (_aeca ._aegd .ToPdfObject (),nil );_ggfc ._ebaaa .Set ("\u0044\u0053\u0053",_aeca ._aegd .GetContainingPdfObject ());};if _ggfc ._dacab < 2{_ggfc .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);
_ggfc .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};_aeca .addNewObject (_ggfc ._ggca );_aeca .addNewObject (_ggfc ._eeeg );_gdfbf :=false ;if len (_aeca ._acdg .PageList )!=len (_aeca ._bfce ){_gdfbf =true ;}else {for _aadga :=range _aeca ._acdg .PageList {switch {case _aeca ._bfce [_aadga ]==_aeca ._acdg .PageList [_aadga ]:case _aeca ._bfce [_aadga ]==_aeca .Reader .PageList [_aadga ]:default:_gdfbf =true ;
};if _gdfbf {break ;};};};if _gdfbf {_aeca .updateObjectsDeep (_ggfc ._afbga ,nil );}else {_aeca ._agaa [_ggfc ._afbga ]=struct{}{};};_ggfc ._afbga .ObjectNumber =_aeca .Reader ._debff .ObjectNumber ;_aeca ._bddd [_ggfc ._afbga ]=_aeca .Reader ._debff .ObjectNumber ;
_bdec :=[]_eg .PdfObjectName {"\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s","\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078","\u0043r\u006f\u0070\u0042\u006f\u0078","\u0052\u006f\u0074\u0061\u0074\u0065"};for _ ,_dcgbf :=range _aeca ._bfce {_fdcd :=_dcgbf .ToPdfObject ();
*_cgbca =*_cgbca +1;if _aecb ,_fcfa :=_fdcd .(*_eg .PdfIndirectObject );_fcfa &&_aecb .GetParser ()==_aeca ._acdg ._cdggc {_dgea .Append (&_aecb .PdfObjectReference );continue ;};if _cacfg ,_ebcf :=_eg .GetDict (_fdcd );_ebcf {_agbc ,_bgge :=_cacfg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_eg .PdfIndirectObject );
for _bgge {_dbg .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_agbc );_bdgb ,_bdgf :=_agbc .PdfObject .(*_eg .PdfObjectDictionary );if !_bdgf {return _bbd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
};for _ ,_bdeb :=range _bdec {_dbg .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_bdeb );if _cacfg .Get (_bdeb )!=nil {_dbg .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
};if _bff :=_bdgb .Get (_bdeb );_bff !=nil {_dbg .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_bdeb );_cacfg .Set (_bdeb ,_bff );};};_agbc ,_bgge =_bdgb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_eg .PdfIndirectObject );
_dbg .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_bdgb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_cacfg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ggfc ._afbga );};_aeca .updateObjectsDeep (_fdcd ,nil );
_dgea .Append (_fdcd );};if _ ,_fcb :=_aeca ._gcbb .Seek (0,_de .SeekStart );_fcb !=nil {return _fcb ;};_cbga :=make (map[SignatureHandler ]_de .Writer );_gade :=_eg .MakeArray ();for _ ,_ebgf :=range _aeca ._acda {if _eecgb ,_bggd :=_eg .GetIndirect (_ebgf );
_bggd {if _ceef ,_egaa :=_eecgb .PdfObject .(*pdfSignDictionary );_egaa {_bbde :=*_ceef ._fbfb ;var _bbda error ;_cbga [_bbde ],_bbda =_bbde .NewDigest (_ceef ._bcacg );if _bbda !=nil {return _bbda ;};_gade .Append (_eg .MakeInteger (0xfffff),_eg .MakeInteger (0xfffff));
};};};if _gade .Len ()> 0{_gade .Append (_eg .MakeInteger (0xfffff),_eg .MakeInteger (0xfffff));};for _ ,_bbag :=range _aeca ._acda {if _dfaa ,_ecbc :=_eg .GetIndirect (_bbag );_ecbc {if _bebaa ,_faea :=_dfaa .PdfObject .(*pdfSignDictionary );_faea {_bebaa .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_gade );
};};};_afaa :=len (_cbga )> 0;var _gddb _de .Reader =_aeca ._gcbb ;if _afaa {_aage :=make ([]_de .Writer ,0,len (_cbga ));for _ ,_acfa :=range _cbga {_aage =append (_aage ,_acfa );};_gddb =_de .TeeReader (_aeca ._gcbb ,_de .MultiWriter (_aage ...));};_cabc ,_fbca :=_de .Copy (w ,_gddb );
if _fbca !=nil {return _fbca ;};if len (_aeca ._acda )==0{return nil ;};_ggfc ._dfgff =_cabc ;_ggfc .ObjNumOffset =_aeca ._dace ;_ggfc ._aaedc =true ;_ggfc ._adcdd =_aeca ._cdga ;_ggfc ._fcebcb =_aeca ._cfaf ;_ggfc ._cdedc =_aeca ._ade ;_ggfc ._ecae =_aeca ._acdg .PdfVersion ().Minor ;
_ggfc ._cacc =_aeca ._bddd ;_bgdb :=_aeca ._fbdd .GetXrefType ();if _bgdb !=nil {_aagd :=*_bgdb ==_eg .XrefTypeObjectStream ;_ggfc ._fdgeg =&_aagd ;};_ggfc ._bccbf =map[_eg .PdfObject ]struct{}{};_ggfc ._aecabb =[]_eg .PdfObject {};for _ ,_decb :=range _aeca ._acda {if _ ,_cdbb :=_aeca ._agaa [_decb ];
_cdbb {continue ;};_ggfc .addObject (_decb );};_dfcc :=w ;if _afaa {_dfcc =_cbd .NewBuffer (nil );};if _fce :=_ggfc .Write (_dfcc );_fce !=nil {return _fce ;};if _afaa {_acfgg :=_dfcc .(*_cbd .Buffer ).Bytes ();_gagf :=_eg .MakeArray ();var _gacg []*pdfSignDictionary ;
var _deafa int64 ;for _ ,_bcde :=range _ggfc ._aecabb {if _gcfd ,_acca :=_eg .GetIndirect (_bcde );_acca {if _cgab ,_eab :=_gcfd .PdfObject .(*pdfSignDictionary );_eab {_gacg =append (_gacg ,_cgab );_eaad :=_cgab ._gfefg +int64 (_cgab ._addad );_gagf .Append (_eg .MakeInteger (_deafa ),_eg .MakeInteger (_eaad -_deafa ));
_deafa =_cgab ._gfefg +int64 (_cgab ._gaeef );};};};_gagf .Append (_eg .MakeInteger (_deafa ),_eg .MakeInteger (_cabc +int64 (len (_acfgg ))-_deafa ));_ebdbd :=[]byte (_gagf .WriteString ());for _ ,_bdgff :=range _gacg {_gfgab :=int (_bdgff ._gfefg -_cabc );
for _egcf :=_bdgff ._ddbef ;_egcf < _bdgff ._bfgaa ;_egcf ++{_acfgg [_gfgab +_egcf ]=' ';};_cfb :=_acfgg [_gfgab +_bdgff ._ddbef :_gfgab +_bdgff ._bfgaa ];copy (_cfb ,_ebdbd );};var _bced int ;for _ ,_eea :=range _gacg {_ebgd :=int (_eea ._gfefg -_cabc );
_beaa :=_acfgg [_bced :_ebgd +_eea ._addad ];_ddgb :=*_eea ._fbfb ;_cbga [_ddgb ].Write (_beaa );_bced =_ebgd +_eea ._gaeef ;};for _ ,_baaf :=range _gacg {_bgecf :=_acfgg [_bced :];_cgac :=*_baaf ._fbfb ;_cbga [_cgac ].Write (_bgecf );};for _ ,_fbg :=range _gacg {_fdac :=int (_fbg ._gfefg -_cabc );
_aacf :=*_fbg ._fbfb ;_gfdc :=_cbga [_aacf ];if _cddf :=_aacf .Sign (_fbg ._bcacg ,_gfdc );_cddf !=nil {return _cddf ;};_fbg ._bcacg .ByteRange =_gagf ;_fcc :=[]byte (_fbg ._bcacg .Contents .WriteString ());for _gbad :=_fbg ._ddbef ;_gbad < _fbg ._bfgaa ;
_gbad ++{_acfgg [_fdac +_gbad ]=' ';};for _bgbeb :=_fbg ._addad ;_bgbeb < _fbg ._gaeef ;_bgbeb ++{_acfgg [_fdac +_bgbeb ]=' ';};_fegd :=_acfgg [_fdac +_fbg ._ddbef :_fdac +_fbg ._bfgaa ];copy (_fegd ,_ebdbd );_fegd =_acfgg [_fdac +_fbg ._addad :_fdac +_fbg ._gaeef ];
copy (_fegd ,_fcc );};_eeab :=_cbd .NewBuffer (_acfgg );_ ,_fbca =_de .Copy (w ,_eeab );if _fbca !=nil {return _fbca ;};};_aeca ._fabe =true ;return nil ;};
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
func (_bcdcb *PdfFont )ToUnicode ()string {if _bcdcb .baseFields ()._fffc ==nil {return "";};return _bcdcb .baseFields ()._fffc .Name ();};
// String returns a string describing the font descriptor.
func (_bgga *PdfFontDescriptor )String ()string {var _deddf []string ;if _bgga .FontName !=nil {_deddf =append (_deddf ,_bgga .FontName .String ());};if _bgga .FontFamily !=nil {_deddf =append (_deddf ,_bgga .FontFamily .String ());};if _bgga .fontFile !=nil {_deddf =append (_deddf ,_bgga .fontFile .String ());
};if _bgga ._bgcbd !=nil {_deddf =append (_deddf ,_bgga ._bgcbd .String ());};_deddf =append (_deddf ,_e .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_bgga .FontFile3 !=nil ));return _e .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_dc .Join (_deddf ,"\u002c\u0020"));
};func (_ecega *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};func (_beagg *PdfWriter )copyObject (_gafc _eg .PdfObject ,_edcc map[_eg .PdfObject ]_eg .PdfObject ,_bcbeda map[_eg .PdfObject ]struct{},_eeddb bool )_eg .PdfObject {_cbfcc :=!_beagg ._aaedc &&_bcbeda !=nil ;
if _bfcff ,_bbceed :=_edcc [_gafc ];_bbceed {if _cbfcc &&!_eeddb {delete (_bcbeda ,_gafc );};return _bfcff ;};_bdcge :=_gafc ;switch _bgfge :=_gafc .(type ){case *_eg .PdfObjectArray :_fffdg :=_eg .MakeArray ();_bdcge =_fffdg ;_edcc [_gafc ]=_bdcge ;for _ ,_ffadc :=range _bgfge .Elements (){_fffdg .Append (_beagg .copyObject (_ffadc ,_edcc ,_bcbeda ,_eeddb ));
};case *_eg .PdfObjectStreams :_fgeac :=&_eg .PdfObjectStreams {PdfObjectReference :_bgfge .PdfObjectReference };_bdcge =_fgeac ;_edcc [_gafc ]=_bdcge ;for _ ,_dcabe :=range _bgfge .Elements (){_fgeac .Append (_beagg .copyObject (_dcabe ,_edcc ,_bcbeda ,_eeddb ));
};case *_eg .PdfObjectStream :_adca :=&_eg .PdfObjectStream {Stream :_bgfge .Stream ,PdfObjectReference :_bgfge .PdfObjectReference };_bdcge =_adca ;_edcc [_gafc ]=_bdcge ;_adca .PdfObjectDictionary =_beagg .copyObject (_bgfge .PdfObjectDictionary ,_edcc ,_bcbeda ,_eeddb ).(*_eg .PdfObjectDictionary );
case *_eg .PdfObjectDictionary :var _eaaaf bool ;if _cbfcc &&!_eeddb {if _dfbcd ,_ :=_eg .GetNameVal (_bgfge .Get ("\u0054\u0079\u0070\u0065"));_dfbcd =="\u0050\u0061\u0067\u0065"{_ ,_ceab :=_beagg ._eacbf [_bgfge ];_eeddb =!_ceab ;_eaaaf =_eeddb ;};};
_bdacf :=_eg .MakeDict ();_bdcge =_bdacf ;_edcc [_gafc ]=_bdcge ;for _ ,_aacee :=range _bgfge .Keys (){_bdacf .Set (_aacee ,_beagg .copyObject (_bgfge .Get (_aacee ),_edcc ,_bcbeda ,_eeddb ));};if _eaaaf {_bdcge =_eg .MakeNull ();_eeddb =false ;};case *_eg .PdfIndirectObject :_bgfdf :=&_eg .PdfIndirectObject {PdfObjectReference :_bgfge .PdfObjectReference };
_bdcge =_bgfdf ;_edcc [_gafc ]=_bdcge ;_bgfdf .PdfObject =_beagg .copyObject (_bgfge .PdfObject ,_edcc ,_bcbeda ,_eeddb );case *_eg .PdfObjectString :_becbe :=*_bgfge ;_bdcge =&_becbe ;_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectName :_eceag :=*_bgfge ;
_bdcge =&_eceag ;_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectNull :_bdcge =_eg .MakeNull ();_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectInteger :_agfef :=*_bgfge ;_bdcge =&_agfef ;_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectReference :_faec :=*_bgfge ;_bdcge =&_faec ;
_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectFloat :_fgdcc :=*_bgfge ;_bdcge =&_fgdcc ;_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectBool :_aegcd :=*_bgfge ;_bdcge =&_aegcd ;_edcc [_gafc ]=_bdcge ;case *pdfSignDictionary :_afcd :=&pdfSignDictionary {PdfObjectDictionary :_eg .MakeDict (),_fbfb :_bgfge ._fbfb ,_bcacg :_bgfge ._bcacg };
_bdcge =_afcd ;_edcc [_gafc ]=_bdcge ;for _ ,_bfbeg :=range _bgfge .Keys (){_afcd .Set (_bfbeg ,_beagg .copyObject (_bgfge .Get (_bfbeg ),_edcc ,_bcbeda ,_eeddb ));};default:_dbg .Log .Info ("\u0054\u004f\u0044\u004f\u0028\u0061\u0035\u0069\u0029\u003a\u0020\u0069\u006dp\u006c\u0065\u006d\u0065\u006e\u0074 \u0063\u006f\u0070\u0079\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0066\u006fr\u0020\u0025\u002b\u0076",_gafc );
};if _cbfcc &&_eeddb {_bcbeda [_gafc ]=struct{}{};};return _bdcge ;};func _cddff (_bbafb *_eg .PdfObjectStream )(*PdfFunctionType4 ,error ){_faegb :=&PdfFunctionType4 {};_faegb ._egdfb =_bbafb ;_daddg :=_bbafb .PdfObjectDictionary ;_fcad ,_cabbe :=_eg .TraceToDirectObject (_daddg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eg .PdfObjectArray );
if !_cabbe {_dbg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bbd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};if _fcad .Len ()%2!=0{_dbg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_bbd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_aaaff ,_cccb :=_fcad .ToFloat64Array ();
if _cccb !=nil {return nil ,_cccb ;};_faegb .Domain =_aaaff ;_fcad ,_cabbe =_eg .TraceToDirectObject (_daddg .Get ("\u0052\u0061\u006eg\u0065")).(*_eg .PdfObjectArray );if _cabbe {if _fcad .Len ()< 0||_fcad .Len ()%2!=0{return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_fdgf ,_cfeec :=_fcad .ToFloat64Array ();if _cfeec !=nil {return nil ,_cfeec ;};_faegb .Range =_fdgf ;};_cdgf ,_cccb :=_eg .DecodeStream (_bbafb );if _cccb !=nil {return nil ,_cccb ;};_faegb ._efgdd =_cdgf ;_bfecc :=_ea .NewPSParser (_cdgf );_adcee ,_cccb :=_bfecc .Parse ();
if _cccb !=nil {return nil ,_cccb ;};_faegb .Program =_adcee ;return _faegb ,nil ;};
// PdfOutlineTreeNode contains common fields used by the outline and outline
// item objects.
type PdfOutlineTreeNode struct{_dbaeb interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};
// PdfPageResources is a Page resources model.
// Implements PdfModel.
type PdfPageResources struct{ExtGState _eg .PdfObject ;ColorSpace _eg .PdfObject ;Pattern _eg .PdfObject ;Shading _eg .PdfObject ;XObject _eg .PdfObject ;Font _eg .PdfObject ;ProcSet _eg .PdfObject ;Properties _eg .PdfObject ;_fbcbc *_eg .PdfObjectDictionary ;
_gecbc *PdfPageResourcesColorspaces ;};
// DecodeArray returns the range of color component values in CalGray colorspace.
func (_bgefe *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
// ToPdfObject implements interface PdfModel.
func (_bfg *PdfActionNamed )ToPdfObject ()_eg .PdfObject {_bfg .PdfAction .ToPdfObject ();_bab :=_bfg ._ege ;_egd :=_bab .PdfObject .(*_eg .PdfObjectDictionary );_egd .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeNamed )));_egd .SetIfNotNil ("\u004e",_bfg .N );
return _bab ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_ceea pdfCIDFontType0 )GetRuneMetrics (r rune )(_ab .CharMetrics ,bool ){return _ab .CharMetrics {Wx :_ceea ._gfbab },true ;};
// C returns the value of the C component of the color.
func (_bbge *PdfColorCalRGB )C ()float64 {return _bbge [2]};func _fgca (_faade _eg .PdfObject )(*PdfColorspaceCalRGB ,error ){_dbce :=NewPdfColorspaceCalRGB ();if _dbbc ,_bdaa :=_faade .(*_eg .PdfIndirectObject );_bdaa {_dbce ._gdef =_dbbc ;};_faade =_eg .TraceToDirectObject (_faade );
_fbfa ,_aaff :=_faade .(*_eg .PdfObjectArray );if !_aaff {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fbfa .Len ()!=2{return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
};_faade =_eg .TraceToDirectObject (_fbfa .Get (0));_eefd ,_aaff :=_faade .(*_eg .PdfObjectName );if !_aaff {return nil ,_e .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");
};if *_eefd !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_e .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_faade =_eg .TraceToDirectObject (_fbfa .Get (1));
_gffd ,_aaff :=_faade .(*_eg .PdfObjectDictionary );if !_aaff {return nil ,_e .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");};
_faade =_gffd .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_faade =_eg .TraceToDirectObject (_faade );_fbed ,_aaff :=_faade .(*_eg .PdfObjectArray );if !_aaff {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050o\u0069\u006e\u0074");
};if _fbed .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0057h\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");};_agbf ,_eeaf :=_fbed .GetAsFloat64Slice ();
if _eeaf !=nil {return nil ,_eeaf ;};_dbce .WhitePoint =_agbf ;_faade =_gffd .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _faade !=nil {_faade =_eg .TraceToDirectObject (_faade );_bdba ,_cbdg :=_faade .(*_eg .PdfObjectArray );
if !_cbdg {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050o\u0069\u006e\u0074");};if _bdba .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0042l\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");
};_agfg ,_bdbd :=_bdba .GetAsFloat64Slice ();if _bdbd !=nil {return nil ,_bdbd ;};_dbce .BlackPoint =_agfg ;};_faade =_gffd .Get ("\u0047\u0061\u006dm\u0061");if _faade !=nil {_faade =_eg .TraceToDirectObject (_faade );_cfcb ,_ebeb :=_faade .(*_eg .PdfObjectArray );
if !_ebeb {return nil ,_e .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _cfcb .Len ()!=3{return nil ,_e .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");
};_feab ,_dcgg :=_cfcb .GetAsFloat64Slice ();if _dcgg !=nil {return nil ,_dcgg ;};_dbce .Gamma =_feab ;};_faade =_gffd .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _faade !=nil {_faade =_eg .TraceToDirectObject (_faade );_eeeb ,_ebcc :=_faade .(*_eg .PdfObjectArray );
if !_ebcc {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _eeeb .Len ()!=9{_dbg .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_eeeb .String ());
return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052G\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u004da\u0074\u0072\u0069\u0078\u0020\u0061\u0072r\u0061\u0079");};_fgbc ,_gfbad :=_eeeb .GetAsFloat64Slice ();if _gfbad !=nil {return nil ,_gfbad ;
};_dbce .Matrix =_fgbc ;};return _dbce ,nil ;};
// PdfAnnotationRichMedia represents Rich Media annotations.
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _eg .PdfObject ;RichMediaContent _eg .PdfObject ;};
// ColorToRGB only converts color used with uncolored patterns (defined in underlying colorspace). Does not go into the
// pattern objects and convert those. If that is desired, needs to be done separately. See for example
// grayscale conversion example in unidoc-examples repo.
func (_aadgc *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_afdg ,_ebbe :=color .(*PdfColorPattern );if !_ebbe {_dbg .Log .Debug ("\u0043\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0070a\u0074\u0074\u0065\u0072\u006e\u0020\u0028\u0067\u006f\u0074 \u0025\u0054\u0029",color );
return nil ,ErrTypeCheck ;};if _afdg .Color ==nil {return color ,nil ;};if _aadgc .UnderlyingCS ==nil {return nil ,_bbd .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};
return _aadgc .UnderlyingCS .ColorToRGB (_afdg .Color );};
// XObjectForm (Table 95 in 8.10.2).
type XObjectForm struct{Filter _eg .StreamEncoder ;FormType _eg .PdfObject ;BBox _eg .PdfObject ;Matrix _eg .PdfObject ;Resources *PdfPageResources ;Group _eg .PdfObject ;Ref _eg .PdfObject ;MetaData _eg .PdfObject ;PieceInfo _eg .PdfObject ;LastModified _eg .PdfObject ;
StructParent _eg .PdfObject ;StructParents _eg .PdfObject ;OPI _eg .PdfObject ;OC _eg .PdfObject ;Name _eg .PdfObject ;
// Stream data.
Stream []byte ;_cdcaf *_eg .PdfObjectStream ;};
// SetPdfAuthor sets the Author attribute of the output PDF.
func SetPdfAuthor (author string ){_egbeg .Lock ();defer _egbeg .Unlock ();_dfdfdc =author };
// PdfAnnotationPopup represents Popup annotations.
// (Section 12.5.6.14).
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _eg .PdfObject ;Open _eg .PdfObject ;};
// ImageHandler interface implements common image loading and processing tasks.
// Implementing as an interface allows for the possibility to use non-standard libraries for faster
// loading and processing of images.
type ImageHandler interface{
// Read any image type and load into a new Image object.
Read (_aageg _de .Reader )(*Image ,error );
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
NewImageFromGoImage (_gcab _ec .Image )(*Image ,error );
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
NewGrayImageFromGoImage (_egaeb _ec .Image )(*Image ,error );
// Compress an image.
Compress (_febce *Image ,_fddda int64 )(*Image ,error );};
// SubsetRegistered subsets the font to only the glyphs that have been registered by the encoder.
// NOTE: This only works on fonts that support subsetting. For unsupported fonts this is a no-op, although a debug
// message is emitted. Currently supported fonts are embedded Truetype CID fonts (type 0).
// NOTE: Make sure to call this soon before writing (once all needed runes have been registered).
// If using package creator, use its EnableFontSubsetting method instead.
func (_bgbfeb *PdfFont )SubsetRegistered ()error {switch _agdd :=_bgbfeb ._gdcab .(type ){case *pdfFontType0 :_eecb :=_agdd .subsetRegistered ();if _eecb !=nil {_dbg .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_eecb );
return _eecb ;};if _agdd ._becfa !=nil {if _agdd ._eceba !=nil {_agdd ._eceba .ToPdfObject ();};_agdd .ToPdfObject ();};default:_dbg .Log .Debug ("F\u006f\u006e\u0074\u0020\u0025\u0054 \u0064\u006f\u0065\u0073\u0020\u006eo\u0074\u0020\u0073\u0075\u0070\u0070\u006fr\u0074\u0020\u0073\u0075\u0062\u0073\u0065\u0074\u0074\u0069n\u0067",_agdd );
};return nil ;};func _fgfa (_cabg *_eg .PdfObjectDictionary )(*PdfFieldChoice ,error ){_eega :=&PdfFieldChoice {};_eega .Opt ,_ =_eg .GetArray (_cabg .Get ("\u004f\u0070\u0074"));_eega .TI ,_ =_eg .GetInt (_cabg .Get ("\u0054\u0049"));_eega .I ,_ =_eg .GetArray (_cabg .Get ("\u0049"));
return _eega ,nil ;};func (_acce *PdfReader )newPdfAnnotationSoundFromDict (_ffa *_eg .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_fgac :=PdfAnnotationSound {};_abba ,_bgd :=_acce .newPdfAnnotationMarkupFromDict (_ffa );if _bgd !=nil {return nil ,_bgd ;
};_fgac .PdfAnnotationMarkup =_abba ;_fgac .Name =_ffa .Get ("\u004e\u0061\u006d\u0065");_fgac .Sound =_ffa .Get ("\u0053\u006f\u0075n\u0064");return &_fgac ,nil ;};type fontFile struct{_dadg string ;_gecf string ;_feffd _cec .SimpleEncoder ;};
// PdfShadingPattern is a Shading patterns that provide a smooth transition between colors across an area to be painted,
// i.e. color(x,y) = f(x,y) at each point.
// It is a type 2 pattern (PatternType = 2).
type PdfShadingPattern struct{*PdfPattern ;Shading *PdfShading ;Matrix *_eg .PdfObjectArray ;ExtGState _eg .PdfObject ;};
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
// containing the field dictionary.
func (_begf *PdfField )GetContainingPdfObject ()_eg .PdfObject {return _begf ._afbe };func (_cdf *PdfReader )newPdfActionGoTo3DViewFromDict (_cag *_eg .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_cag .Get ("\u0054\u0041"),V :_cag .Get ("\u0056")},nil ;
};func _egbde (_gcadf *_ff .ImageBase )(_caaaf Image ){_caaaf .Width =int64 (_gcadf .Width );_caaaf .Height =int64 (_gcadf .Height );_caaaf .BitsPerComponent =int64 (_gcadf .BitsPerComponent );_caaaf .ColorComponents =_gcadf .ColorComponents ;_caaaf .Data =_gcadf .Data ;
_caaaf ._aaeac =_gcadf .Decode ;_caaaf ._fcec =_gcadf .Alpha ;return _caaaf ;};
// Insert adds an outline item as a child of the current outline item,
// at the specified index.
func (_cecfa *OutlineItem )Insert (index uint ,item *OutlineItem ){_afca :=uint (len (_cecfa .Entries ));if index > _afca {index =_afca ;};_cecfa .Entries =append (_cecfa .Entries [:index ],append ([]*OutlineItem {item },_cecfa .Entries [index :]...)...);
};
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_gadge :map[_eg .PdfObject ]struct{}{},_gced :_dbbge (),_cdggc :_eg .NewParserFromString (txt )};};func (_egdfbc *PdfWriter )addObject (_dfbedd _eg .PdfObject )bool {_ffbccd :=_egdfbc .hasObject (_dfbedd );
if !_ffbccd {_aceeb :=_eg .ResolveReferencesDeep (_dfbedd ,_egdfbc ._aeceg );if _aceeb !=nil {_dbg .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_aceeb );};_egdfbc ._aecabb =append (_egdfbc ._aecabb ,_dfbedd );
_egdfbc ._bccbf [_dfbedd ]=struct{}{};return true ;};return false ;};type pdfFontSimple struct{fontCommon ;_acfb *_eg .PdfIndirectObject ;_baga map[_cec .CharCode ]float64 ;_gccbc _cec .TextEncoder ;_fcgd _cec .TextEncoder ;_ggce *PdfFontDescriptor ;
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
// BaseFont is derived differently.
FirstChar _eg .PdfObject ;LastChar _eg .PdfObject ;Widths _eg .PdfObject ;Encoding _eg .PdfObject ;_edgae *_ab .RuneCharSafeMap ;};
// ToPdfObject implements interface PdfModel.
func (_fdd *PdfActionThread )ToPdfObject ()_eg .PdfObject {_fdd .PdfAction .ToPdfObject ();_fde :=_fdd ._ege ;_ada :=_fde .PdfObject .(*_eg .PdfObjectDictionary );_ada .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeThread )));if _fdd .F !=nil {_ada .Set ("\u0046",_fdd .F .ToPdfObject ());
};_ada .SetIfNotNil ("\u0044",_fdd .D );_ada .SetIfNotNil ("\u0042",_fdd .B );return _fde ;};
// GetSamples converts the raw byte slice into samples which are stored in a uint32 bit array.
// Each sample is represented by BitsPerComponent consecutive bits in the raw data.
// NOTE: The method resamples the image byte data before returning the result and
// this could lead to high memory usage, especially on large images. It should
// be avoided, when possible. It is recommended to access the Data field of the
// image directly or use the ColorAt method to extract individual pixels.
func (_dbfe *Image )GetSamples ()[]uint32 {_cgffb :=_ccg .ResampleBytes (_dbfe .Data ,int (_dbfe .BitsPerComponent ));if _dbfe .BitsPerComponent < 8{_cgffb =_dbfe .samplesTrimPadding (_cgffb );};_ebbed :=int (_dbfe .Width )*int (_dbfe .Height )*_dbfe .ColorComponents ;
if len (_cgffb )< _ebbed {_dbg .Log .Debug ("\u0045r\u0072\u006fr\u003a\u0020\u0054o\u006f\u0020\u0066\u0065\u0077\u0020\u0073a\u006d\u0070\u006c\u0065\u0073\u0020(\u0067\u006f\u0074\u0020\u0025\u0064\u002c\u0020\u0065\u0078\u0070e\u0063\u0074\u0069\u006e\u0067\u0020\u0025\u0064\u0029",len (_cgffb ),_ebbed );
return _cgffb ;}else if len (_cgffb )> _ebbed {_dbg .Log .Debug ("\u0045r\u0072\u006fr\u003a\u0020\u0054o\u006f\u0020\u006d\u0061\u006e\u0079\u0020s\u0061\u006d\u0070\u006c\u0065\u0073 \u0028\u0067\u006f\u0074\u0020\u0025\u0064\u002c\u0020\u0065\u0078p\u0065\u0063\u0074\u0069\u006e\u0067\u0020\u0025\u0064",len (_cgffb ),_ebbed );
_cgffb =_cgffb [:_ebbed ];};return _cgffb ;};
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_cbeg _eg .PdfObject ;};
// PdfAnnotation3D represents 3D annotations.
// (Section 13.6.2).
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _eg .PdfObject ;T3DV _eg .PdfObject ;T3DA _eg .PdfObject ;T3DI _eg .PdfObject ;T3DB _eg .PdfObject ;};
// DefaultFont returns the default font, which is currently the built in Helvetica.
func DefaultFont ()*PdfFont {_aafg ,_bfebg :=_ab .NewStdFontByName (HelveticaName );if !_bfebg {panic ("\u0048\u0065lv\u0065\u0074\u0069c\u0061\u0020\u0073\u0068oul\u0064 a\u006c\u0077\u0061\u0079\u0073\u0020\u0062e \u0061\u0076\u0061\u0069\u006c\u0061\u0062l\u0065");
};_dfebf :=_gecc (_aafg );return &PdfFont {_gdcab :&_dfebf };};
// GetCharMetrics returns the char metrics for character code `code`.
// How it works:
// 1) It calls the GetCharMetrics function for the underlying font, either a simple font or
// a Type0 font. The underlying font GetCharMetrics() functions do direct charcode ➞ metrics
// mappings.
// 2) If the underlying font's GetCharMetrics() doesn't have a CharMetrics for `code` then a
// a CharMetrics with the FontDescriptor's /MissingWidth is returned.
// 3) If there is no /MissingWidth then a failure is returned.
// TODO(peterwilliams97) There is nothing callers can do if no CharMetrics are found so we might as
// well give them 0 width. There is no need for the bool return.
// TODO(gunnsth): Reconsider whether needed or if can map via GlyphName.
func (_efaa *PdfFont )GetCharMetrics (code _cec .CharCode )(CharMetrics ,bool ){var _fafb _ab .CharMetrics ;switch _gcag :=_efaa ._gdcab .(type ){case *pdfFontSimple :if _ebea ,_bbdga :=_gcag .GetCharMetrics (code );_bbdga {return _ebea ,_bbdga ;};case *pdfFontType0 :if _beaag ,_fbeb :=_gcag .GetCharMetrics (code );
_fbeb {return _beaag ,_fbeb ;};case *pdfCIDFontType0 :if _dacb ,_dddcc :=_gcag .GetCharMetrics (code );_dddcc {return _dacb ,_dddcc ;};case *pdfCIDFontType2 :if _bfced ,_cebd :=_gcag .GetCharMetrics (code );_cebd {return _bfced ,_cebd ;};case *pdfFontType3 :if _cegeg ,_acee :=_gcag .GetCharMetrics (code );
_acee {return _cegeg ,_acee ;};default:_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020G\u0065\u0074\u0043h\u0061\u0072\u004de\u0074\u0072i\u0063\u0073\u0020\u006e\u006f\u0074 \u0069mp\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0020\u0074\u0079\u0070\u0065\u003d\u0025\u0054\u002e",_efaa ._gdcab );
return _fafb ,false ;};if _gege ,_caea :=_efaa .GetFontDescriptor ();_caea ==nil &&_gege !=nil {return _ab .CharMetrics {Wx :_gege ._afce },true ;};_dbg .Log .Debug ("\u0047\u0065\u0074\u0043\u0068\u0061\u0072\u004d\u0065\u0074\u0072\u0069\u0063\u0073\u003a\u0020\u004e\u006f\u0020\u006d\u0065\u0074\u0072\u0069c\u0073\u0020\u0066\u006f\u0072 \u0066\u006fn\u0074\u003d\u0025\u0073",_efaa );
return _fafb ,false ;};
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
func (_aeccf *PdfReader )GetEncryptionMethod ()string {_bebge :=_aeccf ._cdggc .GetCrypter ();return _bebge .String ();};
// ToPdfObject convert PdfInfo to pdf object.
func (_dbcag *PdfInfo )ToPdfObject ()_eg .PdfObject {_dcgbb :=_eg .MakeDict ();_dcgbb .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_dbcag .Title );_dcgbb .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_dbcag .Author );_dcgbb .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_dbcag .Subject );
_dcgbb .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_dbcag .Keywords );_dcgbb .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_dbcag .Creator );_dcgbb .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_dbcag .Producer );
_dcgbb .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_dbcag .Trapped );if _dbcag .CreationDate !=nil {_dcgbb .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_dbcag .CreationDate .ToPdfObject ());};if _dbcag .ModifiedDate !=nil {_dcgbb .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_dbcag .ModifiedDate .ToPdfObject ());
};for _ ,_dggf :=range _dbcag ._fbfgb .Keys (){_dcgbb .SetIfNotNil (_dggf ,_dbcag ._fbfgb .Get (_dggf ));};return _dcgbb ;};
// DecodeArray returns the range of color component values in the ICCBased colorspace.
func (_bggbc *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _bggbc .Range };
// GetSubFilter returns SubFilter value or empty string.
func (_gbfcb *pdfSignDictionary )GetSubFilter ()string {_aacfef :=_gbfcb .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _aacfef ==nil {return "";};if _ebdfb ,_aegb :=_eg .GetNameVal (_aacfef );_aegb {return _ebdfb ;};return "";};func (_gbcab *PdfReader )newPdfOutlineItemFromIndirectObject (_aaeg *_eg .PdfIndirectObject )(*PdfOutlineItem ,error ){_eabf ,_febcb :=_aaeg .PdfObject .(*_eg .PdfObjectDictionary );
if !_febcb {return nil ,_e .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};_gbac :=NewPdfOutlineItem ();_afcab :=_eabf .Get ("\u0054\u0069\u0074l\u0065");
if _afcab ==nil {return nil ,_e .Errorf ("\u006d\u0069\u0073s\u0069\u006e\u0067\u0020\u0054\u0069\u0074\u006c\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0049\u0074\u0065\u006d\u0020\u0028r\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029");
};_bedb ,_fccbd :=_eg .GetString (_afcab );if !_fccbd {return nil ,_e .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_afcab );};_gbac .Title =_bedb ;if _gbegg :=_eabf .Get ("\u0043\u006f\u0075n\u0074");
_gbegg !=nil {_faeee ,_gfcg :=_gbegg .(*_eg .PdfObjectInteger );if !_gfcg {return nil ,_e .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_gbegg );};_dbebf :=int64 (*_faeee );
_gbac .Count =&_dbebf ;};if _gcdag :=_eabf .Get ("\u0044\u0065\u0073\u0074");_gcdag !=nil {_gbac .Dest =_eg .ResolveReference (_gcdag );if !_gbcab ._bebe {_dcgeb :=_gbcab .traverseObjectData (_gbac .Dest );if _dcgeb !=nil {return nil ,_dcgeb ;};};};if _edbd :=_eabf .Get ("\u0041");
_edbd !=nil {_gbac .A =_eg .ResolveReference (_edbd );if !_gbcab ._bebe {_baef :=_gbcab .traverseObjectData (_gbac .A );if _baef !=nil {return nil ,_baef ;};};};if _aeae :=_eabf .Get ("\u0053\u0045");_aeae !=nil {_gbac .SE =nil ;};if _aecab :=_eabf .Get ("\u0043");
_aecab !=nil {_gbac .C =_eg .ResolveReference (_aecab );};if _feaa :=_eabf .Get ("\u0046");_feaa !=nil {_gbac .F =_eg .ResolveReference (_feaa );};return _gbac ,nil ;};
// ValidateSignatures validates digital signatures in the document.
func (_fcaab *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _fcaab .AcroForm ==nil {return nil ,nil ;};if _fcaab .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_cbafb *PdfSignature ;
_cgcga *PdfField ;_dgdeb SignatureHandler ;};var _geegc []*sigFieldPair ;for _ ,_efada :=range _fcaab .AcroForm .AllFields (){if _efada .V ==nil {continue ;};if _faegg ,_eagab :=_eg .GetDict (_efada .V );_eagab {if _dcfgc ,_aabeb :=_eg .GetNameVal (_faegg .Get ("\u0054\u0079\u0070\u0065"));
_aabeb &&_dcfgc =="\u0053\u0069\u0067"{_bdgbg ,_ffced :=_eg .GetIndirect (_efada .V );if !_ffced {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006et\u0061\u0069\u006e\u0065\u0072\u0020\u0069s\u0020\u006e\u0069\u006c");
return nil ,ErrTypeCheck ;};_dcce ,_aaafff :=_fcaab .newPdfSignatureFromIndirect (_bdgbg );if _aaafff !=nil {return nil ,_aaafff ;};var _fdedf SignatureHandler ;for _ ,_fggbg :=range handlers {if _fggbg .IsApplicable (_dcce ){_fdedf =_fggbg ;break ;};};
_geegc =append (_geegc ,&sigFieldPair {_cbafb :_dcce ,_cgcga :_efada ,_dgdeb :_fdedf });};};};var _fefbb []SignatureValidationResult ;for _ ,_ggece :=range _geegc {_acdcg :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_ggece ._cgcga }};
if _ggece ._dgdeb ==nil {_acdcg .Errors =append (_acdcg .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");_fefbb =append (_fefbb ,_acdcg );continue ;};_abebef ,_eaeeb :=_ggece ._dgdeb .NewDigest (_ggece ._cbafb );
if _eaeeb !=nil {_acdcg .Errors =append (_acdcg .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_eaeeb .Error ());_fefbb =append (_fefbb ,_acdcg );continue ;};_aegga :=_ggece ._cbafb .ByteRange ;if _aegga ==nil {_acdcg .Errors =append (_acdcg .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");
_fefbb =append (_fefbb ,_acdcg );continue ;};for _cegag :=0;_cegag < _aegga .Len ();_cegag =_cegag +2{_cfabc ,_ :=_eg .GetNumberAsInt64 (_aegga .Get (_cegag ));_bffef ,_ :=_eg .GetIntVal (_aegga .Get (_cegag +1));if _ ,_dcbcff :=_fcaab ._addac .Seek (_cfabc ,_de .SeekStart );
_dcbcff !=nil {return nil ,_dcbcff ;};_dcag :=make ([]byte ,_bffef );if _ ,_eefddf :=_fcaab ._addac .Read (_dcag );_eefddf !=nil {return nil ,_eefddf ;};_abebef .Write (_dcag );};_gbedb ,_eaeeb :=_ggece ._dgdeb .Validate (_ggece ._cbafb ,_abebef );if _eaeeb !=nil {return nil ,_eaeeb ;
};_gbedb .Name =_ggece ._cbafb .Name .Decoded ();_gbedb .Reason =_ggece ._cbafb .Reason .Decoded ();if _ggece ._cbafb .M !=nil {_fdded ,_fcdg :=NewPdfDate (_ggece ._cbafb .M .String ());if _fcdg !=nil {_gbedb .Errors =append (_gbedb .Errors ,_fcdg .Error ());
continue ;};_gbedb .Date =_fdded ;};_gbedb .ContactInfo =_ggece ._cbafb .ContactInfo .Decoded ();_gbedb .Location =_ggece ._cbafb .Location .Decoded ();_gbedb .Fields =_acdcg .Fields ;_fefbb =append (_fefbb ,_gbedb );};return _fefbb ,nil ;};
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
func (_eecde *PdfPage )GetContainingPdfObject ()_eg .PdfObject {return _eecde ._caaef };func _egbe (_bacg ,_addca string )string {if _dc .Contains (_bacg ,"\u002b"){_ffcc :=_dc .Split (_bacg ,"\u002b");if len (_ffcc )==2{_bacg =_ffcc [1];};};return _addca +"\u002b"+_bacg ;
};
// PdfAnnotationSound represents Sound annotations.
// (Section 12.5.6.16).
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _eg .PdfObject ;Name _eg .PdfObject ;};func (_dcbc *PdfAppender )mergeResources (_dea ,_fadg _eg .PdfObject ,_efdc map[_eg .PdfObjectName ]_eg .PdfObjectName )_eg .PdfObject {if _fadg ==nil &&_dea ==nil {return nil ;
};if _fadg ==nil {return _dea ;};_bcfc ,_gdcc :=_eg .GetDict (_fadg );if !_gdcc {return _dea ;};if _dea ==nil {_aegg :=_eg .MakeDict ();_aegg .Merge (_bcfc );return _fadg ;};_egfe ,_gdcc :=_eg .GetDict (_dea );if !_gdcc {_dbg .Log .Error ("\u0045\u0072\u0072or\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063\u0065 \u0069s\u0020n\u006ft\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
_egfe =_eg .MakeDict ();};for _ ,_dedg :=range _bcfc .Keys (){if _deaf ,_ebgg :=_efdc [_dedg ];_ebgg {_egfe .Set (_deaf ,_bcfc .Get (_dedg ));}else {_egfe .Set (_dedg ,_bcfc .Get (_dedg ));};};return _egfe ;};
// Optimizer is the interface that performs optimization of PDF object structure for output writing.
//
// Optimize receives a slice of input `objects`, performs optimization, including removing, replacing objects and
// output the optimized slice of objects.
type Optimizer interface{Optimize (_faegf []_eg .PdfObject )([]_eg .PdfObject ,error );};func _cfabd ()string {_egbeg .Lock ();defer _egbeg .Unlock ();_dcagg :=_dd .GetLicenseKey ();if len (_gdagd )> 0&&(_dcagg .IsLicensed ()||_dfgac ){return _gdagd ;};
return _e .Sprintf ("\u0055\u006e\u0069Do\u0063\u0020\u0076\u0025\u0073\u0020\u0028\u0025\u0073)\u0020-\u0020h\u0074t\u0070\u003a\u002f\u002f\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f",_abbg (),_dcagg .TypeToString ());};
// ToPdfObject implements interface PdfModel.
func (_fdda *PdfAnnotationLine )ToPdfObject ()_eg .PdfObject {_fdda .PdfAnnotation .ToPdfObject ();_cbfe :=_fdda ._gag ;_aaced :=_cbfe .PdfObject .(*_eg .PdfObjectDictionary );_fdda .PdfAnnotationMarkup .appendToPdfDictionary (_aaced );_aaced .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u004c\u0069\u006e\u0065"));
_aaced .SetIfNotNil ("\u004c",_fdda .L );_aaced .SetIfNotNil ("\u0042\u0053",_fdda .BS );_aaced .SetIfNotNil ("\u004c\u0045",_fdda .LE );_aaced .SetIfNotNil ("\u0049\u0043",_fdda .IC );_aaced .SetIfNotNil ("\u004c\u004c",_fdda .LL );_aaced .SetIfNotNil ("\u004c\u004c\u0045",_fdda .LLE );
_aaced .SetIfNotNil ("\u0043\u0061\u0070",_fdda .Cap );_aaced .SetIfNotNil ("\u0049\u0054",_fdda .IT );_aaced .SetIfNotNil ("\u004c\u004c\u004f",_fdda .LLO );_aaced .SetIfNotNil ("\u0043\u0050",_fdda .CP );_aaced .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_fdda .Measure );
_aaced .SetIfNotNil ("\u0043\u004f",_fdda .CO );return _cbfe ;};
// NewPdfColorspaceLab returns a new Lab colorspace object.
func NewPdfColorspaceLab ()*PdfColorspaceLab {_faeg :=&PdfColorspaceLab {};_faeg .BlackPoint =[]float64 {0.0,0.0,0.0};_faeg .Range =[]float64 {-100,100,-100,100};return _faeg ;};
// A returns the value of the A component of the color.
func (_fgge *PdfColorLab )A ()float64 {return _fgge [1]};
// ToPdfObject returns the PDF representation of the colorspace.
func (_egfa *PdfColorspaceSpecialSeparation )ToPdfObject ()_eg .PdfObject {_gbfc :=_eg .MakeArray (_eg .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_gbfc .Append (_egfa .ColorantName );_gbfc .Append (_egfa .AlternateSpace .ToPdfObject ());
_gbfc .Append (_egfa .TintTransform .ToPdfObject ());if _egfa ._cegff !=nil {_egfa ._cegff .PdfObject =_gbfc ;return _egfa ._cegff ;};return _gbfc ;};func (_fbdgb *PdfReader )newPdfAcroFormFromDict (_fage *_eg .PdfIndirectObject ,_fefa *_eg .PdfObjectDictionary )(*PdfAcroForm ,error ){_ffbaf :=NewPdfAcroForm ();
if _fage !=nil {_ffbaf ._edeaf =_fage ;_fage .PdfObject =_eg .MakeDict ();};if _dfgb :=_fefa .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_dfgb !=nil {_bgfe ,_adac :=_eg .GetArray (_dfgb );if !_adac {return nil ,_e .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_dfgb );
};var _ddfd []*PdfField ;for _ ,_cceeb :=range _bgfe .Elements (){_gbdg ,_cedgg :=_eg .GetIndirect (_cceeb );if !_cedgg {if _ ,_gedc :=_cceeb .(*_eg .PdfObjectNull );_gedc {_dbg .Log .Trace ("\u0053k\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u006f\u0076\u0065\u0072 \u006e\u0075\u006c\u006c\u0020\u0066\u0069\u0065\u006c\u0064");
continue ;};_dbg .Log .Debug ("\u0046\u0069\u0065\u006c\u0064 \u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0064 \u0069\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0054",_cceeb );
return nil ,_e .Errorf ("\u0066\u0069\u0065l\u0064\u0020\u006e\u006ft\u0020\u0069\u006e\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_afbfff ,_bdgad :=_fbdgb .newPdfFieldFromIndirectObject (_gbdg ,nil );
if _bdgad !=nil {return nil ,_bdgad ;};_dbg .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_afbfff );_ddfd =append (_ddfd ,_afbfff );};_ffbaf .Fields =&_ddfd ;};if _aaec :=_fefa .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");
_aaec !=nil {_deedc ,_cfge :=_eg .GetBool (_aaec );if _cfge {_ffbaf .NeedAppearances =_deedc ;}else {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004e\u0065\u0065\u0064\u0041\u0070p\u0065\u0061\u0072\u0061\u006e\u0063e\u0073\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006ft\u0020\u0025\u0054\u0029",_aaec );
};};if _ggbcc :=_fefa .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_ggbcc !=nil {_ecdba ,_cdef :=_eg .GetInt (_ggbcc );if _cdef {_ffbaf .SigFlags =_ecdba ;}else {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073 \u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_ggbcc );
};};if _ffbdcc :=_fefa .Get ("\u0043\u004f");_ffbdcc !=nil {_dfbd ,_fbbbg :=_eg .GetArray (_ffbdcc );if _fbbbg {_ffbaf .CO =_dfbd ;}else {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043\u004f\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006f\u0074 \u0025\u0054\u0029",_ffbdcc );
};};if _ddgd :=_fefa .Get ("\u0044\u0052");_ddgd !=nil {if _efbe ,_edfcd :=_eg .GetDict (_ddgd );_edfcd {_dfdfd ,_aegc :=NewPdfPageResourcesFromDict (_efbe );if _aegc !=nil {_dbg .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_aegc );
return nil ,_aegc ;};_ffbaf .DR =_dfdfd ;}else {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0044\u0052\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006f\u0074 \u0025\u0054\u0029",_ddgd );};};if _cdag :=_fefa .Get ("\u0044\u0041");
_cdag !=nil {_gfcfg ,_dcdfe :=_eg .GetString (_cdag );if _dcdfe {_ffbaf .DA =_gfcfg ;}else {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0044\u0041\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0067\u006f\u0074 \u0025\u0054\u0029",_cdag );
};};if _fafbb :=_fefa .Get ("\u0051");_fafbb !=nil {_fcdaa ,_abggg :=_eg .GetInt (_fafbb );if _abggg {_ffbaf .Q =_fcdaa ;}else {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_fafbb );
};};if _gdegc :=_fefa .Get ("\u0058\u0046\u0041");_gdegc !=nil {_ffbaf .XFA =_gdegc ;};_ffbaf .ToPdfObject ();return _ffbaf ,nil ;};
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
func (_ggcf *PdfRectangle )Normalize (){if _ggcf .Llx > _ggcf .Urx {_ggcf .Llx ,_ggcf .Urx =_ggcf .Urx ,_ggcf .Llx ;};if _ggcf .Lly > _ggcf .Ury {_ggcf .Lly ,_ggcf .Ury =_ggcf .Ury ,_ggcf .Lly ;};};
// WriteString outputs the object as it is to be written to file.
func (_egcd *pdfSignDictionary )WriteString ()string {_egcd ._addad =0;_egcd ._gaeef =0;_egcd ._ddbef =0;_egcd ._bfgaa =0;_dgaaf :=_cbd .NewBuffer (nil );_dgaaf .WriteString ("\u003c\u003c");for _ ,_acfdc :=range _egcd .Keys (){_fdggf :=_egcd .Get (_acfdc );
switch _acfdc {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_dgaaf .WriteString (_acfdc .WriteString ());_dgaaf .WriteString ("\u0020");_egcd ._ddbef =_dgaaf .Len ();_dgaaf .WriteString (_fdggf .WriteString ());_dgaaf .WriteString ("\u0020");_egcd ._bfgaa =_dgaaf .Len ()-1;
case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_dgaaf .WriteString (_acfdc .WriteString ());_dgaaf .WriteString ("\u0020");_egcd ._addad =_dgaaf .Len ();_dgaaf .WriteString (_fdggf .WriteString ());_dgaaf .WriteString ("\u0020");_egcd ._gaeef =_dgaaf .Len ()-1;
default:_dgaaf .WriteString (_acfdc .WriteString ());_dgaaf .WriteString ("\u0020");_dgaaf .WriteString (_fdggf .WriteString ());};};_dgaaf .WriteString ("\u003e\u003e");return _dgaaf .String ();};
// ToPdfObject implements interface PdfModel.
func (_bcc *PdfActionLaunch )ToPdfObject ()_eg .PdfObject {_bcc .PdfAction .ToPdfObject ();_aacb :=_bcc ._ege ;_ddf :=_aacb .PdfObject .(*_eg .PdfObjectDictionary );_ddf .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeLaunch )));if _bcc .F !=nil {_ddf .Set ("\u0046",_bcc .F .ToPdfObject ());
};_ddf .SetIfNotNil ("\u0057\u0069\u006e",_bcc .Win );_ddf .SetIfNotNil ("\u004d\u0061\u0063",_bcc .Mac );_ddf .SetIfNotNil ("\u0055\u006e\u0069\u0078",_bcc .Unix );_ddf .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_bcc .NewWindow );return _aacb ;
};
// Encoder returns the font's text encoder.
func (_fcfeg pdfCIDFontType2 )Encoder ()_cec .TextEncoder {return _fcfeg ._befc };
// PdfActionMovie represents a movie action.
type PdfActionMovie struct{*PdfAction ;Annotation _eg .PdfObject ;T _eg .PdfObject ;Operation _eg .PdfObject ;};
// NewPdfActionGoTo returns a new "go to" action.
func NewPdfActionGoTo ()*PdfActionGoTo {_fd :=NewPdfAction ();_be :=&PdfActionGoTo {};_be .PdfAction =_fd ;_fd .SetContext (_be );return _be ;};func (_dfce *PdfReader )newPdfActionSubmitFormFromDict (_cafe *_eg .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_degb ,_gfab :=_gbbe (_cafe .Get ("\u0046"));
if _gfab !=nil {return nil ,_gfab ;};return &PdfActionSubmitForm {F :_degb ,Fields :_cafe .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_cafe .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
// Fill populates `form` with values provided by `provider`.
func (_dfbed *PdfAcroForm )Fill (provider FieldValueProvider )error {return _dfbed .fill (provider ,nil )};
// NewPdfAnnotationCaret returns a new caret annotation.
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_fef :=NewPdfAnnotation ();_fea :=&PdfAnnotationCaret {};_fea .PdfAnnotation =_fef ;_fea .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fef .SetContext (_fea );return _fea ;};
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
func (_fdde *PdfField )SetContext (ctx PdfModel ){_fdde ._ceag =ctx };type pdfFontType0 struct{fontCommon ;_becfa *_eg .PdfIndirectObject ;_eceba _cec .TextEncoder ;Encoding _eg .PdfObject ;DescendantFont *PdfFont ;_adad *_aff .CMap ;};
// Flags returns the field flags for the field accounting for any inherited flags.
func (_bcbb *PdfField )Flags ()FieldFlag {var _bbbc FieldFlag ;_ecgfa ,_gcaaf :=_bcbb .inherit (func (_fbbf *PdfField )bool {if _fbbf .Ff !=nil {_bbbc =FieldFlag (*_bcbb .Ff );return true ;};return false ;});if _gcaaf !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072o\u0072\u0020\u0065\u0076\u0061\u006c\u0075\u0061\u0074\u0069\u006e\u0067\u0020\u0066\u006c\u0061\u0067\u0073\u0020\u0076\u0069\u0061\u0020\u0069\u006e\u0068\u0065\u0072\u0069t\u0061\u006e\u0063\u0065\u003a\u0020\u0025\u0076",_gcaaf );
};if !_ecgfa {_dbg .Log .Trace ("N\u006f\u0020\u0066\u0069\u0065\u006cd\u0020\u0066\u006c\u0061\u0067\u0073 \u0066\u006f\u0075\u006e\u0064\u0020\u002d \u0061\u0073\u0073\u0075\u006d\u0065\u0020\u0063\u006c\u0065a\u0072");};return _bbbc ;};func _bbafc (_gfde *PdfField ,_fagg _eg .PdfObject ){for _ ,_aebge :=range _gfde .Annotations {_aebge .AS =_fagg ;
_aebge .ToPdfObject ();};};
// GetContainingPdfObject returns the container of the image object (indirect object).
func (_ggfdc *XObjectImage )GetContainingPdfObject ()_eg .PdfObject {return _ggfdc ._dcdb };func _eagd (_dfebd _eg .PdfObject ,_bfgc *fontCommon )(*_aff .CMap ,error ){_abgbe ,_eeaab :=_eg .GetStream (_dfebd );if !_eeaab {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0074\u006f\u0055\u006e\u0069\u0063\u006f\u0064\u0065\u0054\u006f\u0043m\u0061\u0070\u003a\u0020\u004e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0028\u0025\u0054\u0029",_dfebd );
return nil ,_eg .ErrTypeError ;};_aefdb ,_caac :=_eg .DecodeStream (_abgbe );if _caac !=nil {return nil ,_caac ;};_bebaaf ,_caac :=_aff .LoadCmapFromData (_aefdb ,!_bfgc .isCIDFont ());if _caac !=nil {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004f\u0062\u006a\u0065\u0063\u0074\u004e\u0075\u006d\u0062\u0065\u0072\u003d\u0025\u0064\u0020\u0065\u0072r=\u0025\u0076",_abgbe .ObjectNumber ,_caac );
};return _bebaaf ,_caac ;};
// PdfActionGoToE represents a GoToE action.
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _eg .PdfObject ;NewWindow _eg .PdfObject ;T _eg .PdfObject ;};func _gdea (_egebc _eg .PdfObject )(*PdfFunctionType3 ,error ){_ccfg :=&PdfFunctionType3 {};var _dcacg *_eg .PdfObjectDictionary ;if _deec ,_gcddf :=_egebc .(*_eg .PdfIndirectObject );
_gcddf {_bgged ,_beabf :=_deec .PdfObject .(*_eg .PdfObjectDictionary );if !_beabf {return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ccfg ._gfddd =_deec ;_dcacg =_bgged ;}else if _fead ,_eefge :=_egebc .(*_eg .PdfObjectDictionary );
_eefge {_dcacg =_fead ;}else {return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gaagc ,_gcdga :=_eg .TraceToDirectObject (_dcacg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eg .PdfObjectArray );
if !_gcdga {_dbg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bbd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};if _gaagc .Len ()!=2{_dbg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_bbd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_fbbdg ,_fgabf :=_gaagc .ToFloat64Array ();
if _fgabf !=nil {return nil ,_fgabf ;};_ccfg .Domain =_fbbdg ;_gaagc ,_gcdga =_eg .TraceToDirectObject (_dcacg .Get ("\u0052\u0061\u006eg\u0065")).(*_eg .PdfObjectArray );if _gcdga {if _gaagc .Len ()< 0||_gaagc .Len ()%2!=0{return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_afbfd ,_dbagg :=_gaagc .ToFloat64Array ();if _dbagg !=nil {return nil ,_dbagg ;};_ccfg .Range =_afbfd ;};_gaagc ,_gcdga =_eg .TraceToDirectObject (_dcacg .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_eg .PdfObjectArray );if !_gcdga {_dbg .Log .Error ("\u0046\u0075\u006ect\u0069\u006f\u006e\u0073\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");
return nil ,_bbd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};_ccfg .Functions =[]PdfFunction {};
for _ ,_afefg :=range _gaagc .Elements (){_begb ,_abcbb :=_dgbga (_afefg );if _abcbb !=nil {return nil ,_abcbb ;};_ccfg .Functions =append (_ccfg .Functions ,_begb );};_gaagc ,_gcdga =_eg .TraceToDirectObject (_dcacg .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_eg .PdfObjectArray );
if !_gcdga {_dbg .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bbd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};_ffggc ,_fgabf :=_gaagc .ToFloat64Array ();if _fgabf !=nil {return nil ,_fgabf ;};_ccfg .Bounds =_ffggc ;if len (_ccfg .Bounds )!=len (_ccfg .Functions )-1{_dbg .Log .Error ("B\u006f\u0075\u006e\u0064\u0073\u0020\u0028\u0025\u0064)\u0020\u0061\u006e\u0064\u0020\u006e\u0075m \u0066\u0075\u006e\u0063t\u0069\u006f\u006e\u0073\u0020\u0028\u0025\u0064\u0029 n\u006f\u0074 \u006d\u0061\u0074\u0063\u0068\u0069\u006e\u0067",len (_ccfg .Bounds ),len (_ccfg .Functions ));
return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gaagc ,_gcdga =_eg .TraceToDirectObject (_dcacg .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_eg .PdfObjectArray );if !_gcdga {_dbg .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
return nil ,_bbd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};_gcbce ,_fgabf :=_gaagc .ToFloat64Array ();
if _fgabf !=nil {return nil ,_fgabf ;};_ccfg .Encode =_gcbce ;if len (_ccfg .Encode )!=2*len (_ccfg .Functions ){_dbg .Log .Error ("\u004c\u0065\u006e\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0020\u0028\u0025\u0064\u0029 \u0061\u006e\u0064\u0020\u006e\u0075\u006d\u0020\u0066\u0075\u006e\u0063\u0074i\u006f\u006e\u0073\u0020\u0028\u0025\u0064\u0029\u0020\u006e\u006f\u0074 m\u0061\u0074\u0063\u0068\u0069\u006e\u0067\u0020\u0075\u0070",len (_ccfg .Encode ),len (_ccfg .Functions ));
return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _ccfg ,nil ;};
// SetVersion sets the PDF version of the output file.
func (_fddcbg *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_fddcbg ._dacab =majorVersion ;_fddcbg ._ecae =minorVersion ;};
// SetReason sets the `Reason` field of the signature.
func (_bacgd *PdfSignature )SetReason (reason string ){_bacgd .Reason =_eg .MakeString (reason )};
// PdfAnnotationStrikeOut represents StrikeOut annotations.
// (Section 12.5.6.10).
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eg .PdfObject ;};func _egdg (_bdca *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_bdca }};
// PdfReader represents a PDF file reader. It is a frontend to the lower level parsing mechanism and provides
// a higher level access to work with PDF structure and information, such as the page structure etc.
type PdfReader struct{_cdggc *_eg .PdfParser ;_faafd _eg .PdfObject ;_debff *_eg .PdfIndirectObject ;_faacgc *_eg .PdfObjectDictionary ;_dfff []*_eg .PdfIndirectObject ;PageList []*PdfPage ;_abddb int ;_efdg *_eg .PdfObjectDictionary ;_ebgea *PdfOutlineTreeNode ;
AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_gced *modelManager ;_bebe bool ;_gadge map[_eg .PdfObject ]struct{};_addac _de .ReadSeeker ;_ebcgb string ;};func _bfbaf (_dfeefc *_eg .PdfObjectDictionary )(*PdfShadingType2 ,error ){_cacdf :=PdfShadingType2 {};
_acebb :=_dfeefc .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _acebb ==nil {_dbg .Log .Debug ("R\u0065\u0071\u0075\u0069\u0072\u0065d\u0020\u0061\u0074\u0074\u0072\u0069b\u0075\u0074\u0065\u0020\u006d\u0069\u0073s\u0069\u006e\u0067\u003a\u0020\u0020\u0043\u006f\u006f\u0072d\u0073");
return nil ,ErrRequiredAttributeMissing ;};_gbccg ,_feecb :=_acebb .(*_eg .PdfObjectArray );if !_feecb {_dbg .Log .Debug ("\u0043\u006f\u006f\u0072d\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_acebb );
return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _gbccg .Len ()!=4{_dbg .Log .Debug ("\u0043\u006f\u006f\u0072d\u0073\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006eo\u0074 \u0034\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",_gbccg .Len ());
return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_cacdf .Coords =_gbccg ;if _feaea :=_dfeefc .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_feaea !=nil {_feaea =_eg .TraceToDirectObject (_feaea );
_dgfg ,_faedd :=_feaea .(*_eg .PdfObjectArray );if !_faedd {_dbg .Log .Debug ("\u0044\u006f\u006d\u0061i\u006e\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_feaea );return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_cacdf .Domain =_dgfg ;};_acebb =_dfeefc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _acebb ==nil {_dbg .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0020\u0046\u0075\u006ec\u0074\u0069\u006f\u006e");
return nil ,ErrRequiredAttributeMissing ;};_cacdf .Function =[]PdfFunction {};if _fgaa ,_gbfgdc :=_acebb .(*_eg .PdfObjectArray );_gbfgdc {for _ ,_daegg :=range _fgaa .Elements (){_fdffb ,_geadd :=_dgbga (_daegg );if _geadd !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_geadd );
return nil ,_geadd ;};_cacdf .Function =append (_cacdf .Function ,_fdffb );};}else {_gdagf ,_aadb :=_dgbga (_acebb );if _aadb !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_aadb );
return nil ,_aadb ;};_cacdf .Function =append (_cacdf .Function ,_gdagf );};if _ecead :=_dfeefc .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_ecead !=nil {_ecead =_eg .TraceToDirectObject (_ecead );_egdgf ,_bffa :=_ecead .(*_eg .PdfObjectArray );if !_bffa {_dbg .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_ecead );
return nil ,_eg .ErrTypeError ;};if _egdgf .Len ()!=2{_dbg .Log .Debug ("\u0045\u0078\u0074\u0065n\u0064\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006eo\u0074 \u0032\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",_egdgf .Len ());return nil ,ErrInvalidAttribute ;
};_cacdf .Extend =_egdgf ;};return &_cacdf ,nil ;};
// SetPdfCreator sets the Creator attribute of the output PDF.
func SetPdfCreator (creator string ){_egbeg .Lock ();defer _egbeg .Unlock ();_ebgfe =creator };
// ToPdfObject returns the PDF representation of the function.
func (_fecce *PdfFunctionType4 )ToPdfObject ()_eg .PdfObject {_caeae :=_fecce ._egdfb ;if _caeae ==nil {_fecce ._egdfb =&_eg .PdfObjectStream {};_caeae =_fecce ._egdfb ;};_bebgb :=_eg .MakeDict ();_bebgb .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eg .MakeInteger (4));
_bbgg :=&_eg .PdfObjectArray {};for _ ,_ddaea :=range _fecce .Domain {_bbgg .Append (_eg .MakeFloat (_ddaea ));};_bebgb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bbgg );_gafg :=&_eg .PdfObjectArray {};for _ ,_acba :=range _fecce .Range {_gafg .Append (_eg .MakeFloat (_acba ));
};_bebgb .Set ("\u0052\u0061\u006eg\u0065",_gafg );if _fecce ._efgdd ==nil &&_fecce .Program !=nil {_fecce ._efgdd =[]byte (_fecce .Program .String ());};_bebgb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_fecce ._efgdd ))));
_caeae .Stream =_fecce ._efgdd ;_caeae .PdfObjectDictionary =_bebgb ;return _caeae ;};
// GetOptimizer returns current PDF optimizer.
func (_afccb *PdfWriter )GetOptimizer ()Optimizer {return _afccb ._efdcf };
// NewPdfPageResources returns a new PdfPageResources object.
func NewPdfPageResources ()*PdfPageResources {_fbdfg :=&PdfPageResources {};_fbdfg ._fbcbc =_eg .MakeDict ();return _fbdfg ;};
// PdfSignature represents a PDF signature dictionary and is used for signing via form signature fields.
// (Section 12.8, Table 252 - Entries in a signature dictionary p. 475 in PDF32000_2008).
type PdfSignature struct{Handler SignatureHandler ;_ffae *_eg .PdfIndirectObject ;
// Type: Sig/DocTimeStamp
Type *_eg .PdfObjectName ;Filter *_eg .PdfObjectName ;SubFilter *_eg .PdfObjectName ;Contents *_eg .PdfObjectString ;Cert _eg .PdfObject ;ByteRange *_eg .PdfObjectArray ;Reference *_eg .PdfObjectArray ;Changes *_eg .PdfObjectArray ;Name *_eg .PdfObjectString ;
M *_eg .PdfObjectString ;Location *_eg .PdfObjectString ;Reason *_eg .PdfObjectString ;ContactInfo *_eg .PdfObjectString ;R *_eg .PdfObjectInteger ;V *_eg .PdfObjectInteger ;PropBuild *_eg .PdfObjectDictionary ;PropAuthTime *_eg .PdfObjectInteger ;PropAuthType *_eg .PdfObjectName ;
};func (_fcfc *pdfFontSimple )updateStandard14Font (){_ggfd ,_bfga :=_fcfc .Encoder ().(_cec .SimpleEncoder );if !_bfga {_dbg .Log .Error ("\u0057\u0072\u006f\u006e\u0067\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0074y\u0070e\u003a\u0020\u0025\u0054\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073\u002e",_fcfc .Encoder (),_fcfc );
return ;};_gdfgf :=_ggfd .Charcodes ();_fcfc ._baga =make (map[_cec .CharCode ]float64 ,len (_gdfgf ));for _ ,_fbgg :=range _gdfgf {_dedb ,_ :=_ggfd .CharcodeToRune (_fbgg );_cbfca ,_ :=_fcfc ._edgae .Read (_dedb );_fcfc ._baga [_fbgg ]=_cbfca .Wx ;};};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a CalGray device.
func (_bgdg *PdfColorspaceCalGray )GetNumComponents ()int {return 1};
// ToPdfObject implements interface PdfModel.
func (_gea *PdfAnnotationPopup )ToPdfObject ()_eg .PdfObject {_gea .PdfAnnotation .ToPdfObject ();_ffggf :=_gea ._gag ;_edb :=_ffggf .PdfObject .(*_eg .PdfObjectDictionary );_edb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0050\u006f\u0070u\u0070"));
_edb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_gea .Parent );_edb .SetIfNotNil ("\u004f\u0070\u0065\u006e",_gea .Open );return _ffggf ;};
// GetMediaBox gets the inheritable media box value, either from the page
// or a higher up page/pages struct.
func (_ddeeg *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _ddeeg .MediaBox !=nil {return _ddeeg .MediaBox ,nil ;};_ebdf :=_ddeeg .Parent ;for _ebdf !=nil {_aafced ,_dfdcb :=_eg .GetDict (_ebdf );if !_dfdcb {return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063t\u0073\u0020\u0064\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079");
};if _acfbc :=_aafced .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_acfbc !=nil {_egaad ,_acae :=_eg .GetArray (_acfbc );if !_acae {return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");
};_dfgg ,_bdgec :=NewPdfRectangle (*_egaad );if _bdgec !=nil {return nil ,_bdgec ;};return _dfgg ,nil ;};_ebdf =_aafced .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_bbd .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");
};
// NewStandard14FontWithEncoding returns the standard 14 font named `basefont` as a *PdfFont and
// a TextEncoder that encodes all the runes in `alphabet`, or an error if this is not possible.
// An error can occur if `basefont` is not one the standard 14 font names.
func NewStandard14FontWithEncoding (basefont StdFontName ,alphabet map[rune ]int )(*PdfFont ,_cec .SimpleEncoder ,error ){_gdecb ,_cdfdd :=_aefad (basefont );if _cdfdd !=nil {return nil ,nil ,_cdfdd ;};_fggdd ,_ebdd :=_gdecb .Encoder ().(_cec .SimpleEncoder );
if !_ebdd {return nil ,nil ,_e .Errorf ("\u006f\u006e\u006c\u0079\u0020s\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006eg\u0020\u0069\u0073\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u002c\u0020\u0067\u006f\u0074\u0020\u0025\u0054",_gdecb .Encoder ());
};_dfef :=make (map[rune ]_cec .GlyphName );for _bgegd :=range alphabet {if _ ,_deafd :=_fggdd .RuneToCharcode (_bgegd );!_deafd {_ ,_gbca :=_gdecb ._edgae .Read (_bgegd );if !_gbca {_dbg .Log .Trace ("r\u0075\u006e\u0065\u0020\u0025\u0023x\u003d\u0025\u0071\u0020\u006e\u006f\u0074\u0020\u0069n\u0020\u0074\u0068e\u0020f\u006f\u006e\u0074",_bgegd ,_bgegd );
continue ;};_bcfd ,_gbca :=_cec .RuneToGlyph (_bgegd );if !_gbca {_dbg .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_bgegd ,_bgegd );continue ;};if len (_dfef )>=255{return nil ,nil ,_bbd .New ("\u0074\u006f\u006f\u0020\u006d\u0061\u006e\u0079\u0020\u0063\u0068\u0061\u0072a\u0063\u0074\u0065\u0072\u0073\u0020f\u006f\u0072\u0020\u0073\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063o\u0064\u0069\u006e\u0067");
};_dfef [_bgegd ]=_bcfd ;};};var (_dccg []_cec .CharCode ;_dgacc []_cec .CharCode ;);for _efbc :=_cec .CharCode (1);_efbc <=0xff;_efbc ++{_fdegb ,_debga :=_fggdd .CharcodeToRune (_efbc );if !_debga {_dccg =append (_dccg ,_efbc );continue ;};if _ ,_debga =alphabet [_fdegb ];
!_debga {_dgacc =append (_dgacc ,_efbc );};};_fabef :=append (_dccg ,_dgacc ...);if len (_fabef )< len (_dfef ){return nil ,nil ,_e .Errorf ("n\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0065\u006ec\u006f\u0064\u0065\u0020\u0025\u0064\u0020ru\u006e\u0065\u0073\u002c \u0062\u0075\u0074\u0020\u0068\u0061\u0076\u0065\u0020on\u006c\u0079 \u0025\u0064\u0020\u0073\u006c\u006f\u0074\u0073",len (_dfef ),len (_fabef ));
};_deea :=make ([]rune ,0,len (_dfef ));for _afbff :=range _dfef {_deea =append (_deea ,_afbff );};_ae .Slice (_deea ,func (_gfec ,_gcdc int )bool {return _deea [_gfec ]< _deea [_gcdc ]});_eabb :=make (map[_cec .CharCode ]_cec .GlyphName ,len (_deea ));
for _ ,_fdedd :=range _deea {_gagfb :=_fabef [0];_fabef =_fabef [1:];_eabb [_gagfb ]=_dfef [_fdedd ];};_fggdd =_cec .ApplyDifferences (_fggdd ,_eabb );_gdecb .SetEncoder (_fggdd );return &PdfFont {_gdcab :&_gdecb },_fggdd ,nil ;};
// Outline represents a PDF outline dictionary (Table 152 - p. 376).
// Currently, the Outline object can only be used to construct PDF outlines.
type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};
// ToInteger convert to an integer format.
func (_bfed *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_fbdg :=_bc .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_fbdg *_bfed .R ()),uint32 (_fbdg *_bfed .G ()),uint32 (_fbdg *_bfed .B ())};};
// GetContainingPdfObject returns the container of the pattern object (indirect object).
func (_eebc *PdfPattern )GetContainingPdfObject ()_eg .PdfObject {return _eebc ._cfaag };func (_ggabc *PdfReader )loadAnnotations (_aegf _eg .PdfObject )([]*PdfAnnotation ,error ){_cbfcd ,_gfee :=_eg .GetArray (_aegf );if !_gfee {return nil ,_e .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
};var _deeac []*PdfAnnotation ;for _ ,_afgcg :=range _cbfcd .Elements (){_afgcg =_eg .ResolveReference (_afgcg );if _ ,_eedde :=_afgcg .(*_eg .PdfObjectNull );_eedde {continue ;};_gdba ,_baed :=_afgcg .(*_eg .PdfObjectDictionary );_ggef ,_addcc :=_afgcg .(*_eg .PdfIndirectObject );
if _baed {_ggef =&_eg .PdfIndirectObject {};_ggef .PdfObject =_gdba ;}else {if !_addcc {return nil ,_e .Errorf ("\u0061\u006eno\u0074\u0061\u0074i\u006f\u006e\u0020\u006eot \u0069n \u0061\u006e\u0020\u0069\u006e\u0064\u0069re\u0063\u0074\u0020\u006f\u0062\u006a\u0065c\u0074");
};};_fedbf ,_efaed :=_ggabc .newPdfAnnotationFromIndirectObject (_ggef );if _efaed !=nil {return nil ,_efaed ;};switch _debfg :=_fedbf .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_cabf :=range _ggabc .AcroForm .AllFields (){if _cabf ._afbe ==_debfg .Parent {_debfg ._cdda =_cabf ;
break ;};};};if _fedbf !=nil {_deeac =append (_deeac ,_fedbf );};};return _deeac ,nil ;};func (_fee *PdfReader )newPdfActionNamedFromDict (_egfb *_eg .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_egfb .Get ("\u004e")},nil ;
};
// NewPdfAnnotationHighlight returns a new text highlight annotation.
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_dbd :=NewPdfAnnotation ();_dee :=&PdfAnnotationHighlight {};_dee .PdfAnnotation =_dbd ;_dee .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dbd .SetContext (_dee );return _dee ;};
// IsPush returns true if the button field represents a push button, false otherwise.
func (_geff *PdfFieldButton )IsPush ()bool {return _geff .GetType ()==ButtonTypePush };
// PdfColorspace interface defines the common methods of a PDF colorspace.
// The colorspace defines the data storage format for each color and color representation.
//
// Device based colorspace, specified by name
// - /DeviceGray
// - /DeviceRGB
// - /DeviceCMYK
//
// CIE based colorspace specified by [name, dictionary]
// - [/CalGray dict]
// - [/CalRGB dict]
// - [/Lab dict]
// - [/ICCBased dict]
//
// Special colorspaces
// - /Pattern
// - /Indexed
// - /Separation
// - /DeviceN
//
// Work is in progress to support all colorspaces. At the moment ICCBased color spaces fall back to the alternate
// colorspace which works OK in most cases. For full color support, will need fully featured ICC support.
type PdfColorspace interface{
// String returns the PdfColorspace's name.
String ()string ;
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
ImageToRGB (Image )(Image ,error );
// ColorToRGB converts a single color in a given PdfColorspace to an RGB color.
ColorToRGB (_bec PdfColor )(PdfColor ,error );
// GetNumComponents returns the number of components in the PdfColorspace.
GetNumComponents ()int ;
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
ToPdfObject ()_eg .PdfObject ;
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
// PdfObject represents a numeric value.
ColorFromPdfObjects (_ddef []_eg .PdfObject )(PdfColor ,error );
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
ColorFromFloats (_cebg []float64 )(PdfColor ,error );
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
DecodeArray ()[]float64 ;};
// GetNumComponents returns the number of color components.
func (_fcfg *PdfColorspaceICCBased )GetNumComponents ()int {return _fcfg .N };func (_fcea *PdfWriter )hasObject (_cfdgc _eg .PdfObject )bool {_ ,_dcbbg :=_fcea ._bccbf [_cfdgc ];return _dcbbg ;};func _cfafcb (_caacd _eg .PdfObject )(*PdfPageResourcesColorspaces ,error ){_bdfeb :=&PdfPageResourcesColorspaces {};
if _aggaa ,_agcgb :=_caacd .(*_eg .PdfIndirectObject );_agcgb {_bdfeb ._abbc =_aggaa ;_caacd =_aggaa .PdfObject ;};_ggdc ,_bfaee :=_eg .GetDict (_caacd );if !_bfaee {return nil ,_bbd .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};_bdfeb .Names =[]string {};_bdfeb .Colorspaces =map[string ]PdfColorspace {};for _ ,_dcfeb :=range _ggdc .Keys (){_gabfg :=_ggdc .Get (_dcfeb );_bdfeb .Names =append (_bdfeb .Names ,string (_dcfeb ));_bfdg ,_ecefc :=NewPdfColorspaceFromPdfObject (_gabfg );
if _ecefc !=nil {return nil ,_ecefc ;};_bdfeb .Colorspaces [string (_dcfeb )]=_bfdg ;};return _bdfeb ,nil ;};
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
func (_daffe *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_dabgc :=func (_dcda float64 )float64 {if _dcda >=6.0/29{return _dcda *_dcda *_dcda ;};return 108.0/841*(_dcda -4/29);};_aaae :=img ._aaeac ;if len (_aaae )!=6{_dbg .Log .Trace ("\u0049\u006d\u0061\u0067\u0065\u0020\u002d\u0020\u004c\u0061\u0062\u0020\u0044e\u0063\u006f\u0064\u0065\u0020\u0072\u0061\u006e\u0067e\u0020\u0021\u003d\u0020\u0036\u002e\u002e\u002e\u0020\u0075\u0073\u0065\u0020\u005b0\u0020\u0031\u0030\u0030\u0020\u0061\u006d\u0069\u006e\u0020\u0061\u006d\u0061\u0078\u0020\u0062\u006d\u0069\u006e\u0020\u0062\u006d\u0061\u0078\u005d\u0020\u0064\u0065\u0066\u0061u\u006c\u0074\u0020\u0064\u0065\u0063\u006f\u0064\u0065 \u0061\u0072r\u0061\u0079");
_aaae =_daffe .DecodeArray ();};_acacd :=_ccg .NewReader (img .getBase ());_edg :=_ff .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._fcec ,img ._aaeac );_gceg :=_ccg .NewWriter (_edg );_beeb :=_bc .Pow (2,float64 (img .BitsPerComponent ))-1;
_gccdg :=make ([]uint32 ,3);var (_abdg error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_ccee ,_aee ,_bcbeb float64 ;);for {_abdg =_acacd .ReadSamples (_gccdg );if _abdg ==_de .EOF {break ;}else if _abdg !=nil {return img ,_abdg ;};Ls =float64 (_gccdg [0])/_beeb ;
As =float64 (_gccdg [1])/_beeb ;Bs =float64 (_gccdg [2])/_beeb ;Ls =_ff .LinearInterpolate (Ls ,0.0,1.0,_aaae [0],_aaae [1]);As =_ff .LinearInterpolate (As ,0.0,1.0,_aaae [2],_aaae [3]);Bs =_ff .LinearInterpolate (Bs ,0.0,1.0,_aaae [4],_aaae [5]);L =(Ls +16)/116+As /500;
M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_daffe .WhitePoint [0]*_dabgc (L );Y =_daffe .WhitePoint [1]*_dabgc (M );Z =_daffe .WhitePoint [2]*_dabgc (N );_ccee =3.240479*X +-1.537150*Y +-0.498535*Z ;_aee =-0.969256*X +1.875992*Y +0.041556*Z ;_bcbeb =0.055648*X +-0.204043*Y +1.057311*Z ;
_ccee =_bc .Min (_bc .Max (_ccee ,0),1.0);_aee =_bc .Min (_bc .Max (_aee ,0),1.0);_bcbeb =_bc .Min (_bc .Max (_bcbeb ,0),1.0);_gccdg [0]=uint32 (_ccee *_beeb );_gccdg [1]=uint32 (_aee *_beeb );_gccdg [2]=uint32 (_bcbeb *_beeb );if _abdg =_gceg .WriteSamples (_gccdg );
_abdg !=nil {return img ,_abdg ;};};return _egbde (&_edg ),nil ;};
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_eg .PdfObjectBool ;SigFlags *_eg .PdfObjectInteger ;CO *_eg .PdfObjectArray ;DR *PdfPageResources ;DA *_eg .PdfObjectString ;Q *_eg .PdfObjectInteger ;XFA _eg .PdfObject ;_edeaf *_eg .PdfIndirectObject ;
};var _dfgac =false ;
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
type PdfPage struct{Parent _eg .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _eg .PdfObject ;Contents _eg .PdfObject ;
Rotate *int64 ;Group _eg .PdfObject ;Thumb _eg .PdfObject ;B _eg .PdfObject ;Dur _eg .PdfObject ;Trans _eg .PdfObject ;AA _eg .PdfObject ;Metadata _eg .PdfObject ;PieceInfo _eg .PdfObject ;StructParents _eg .PdfObject ;ID _eg .PdfObject ;PZ _eg .PdfObject ;
SeparationInfo _eg .PdfObject ;Tabs _eg .PdfObject ;TemplateInstantiated _eg .PdfObject ;PresSteps _eg .PdfObject ;UserUnit _eg .PdfObject ;VP _eg .PdfObject ;Annots _eg .PdfObject ;_egge []*PdfAnnotation ;_ecbba *_eg .PdfObjectDictionary ;_caaef *_eg .PdfIndirectObject ;
_fdfdec *PdfReader ;};
// Encoder returns the font's text encoder.
func (_cabe pdfFontType0 )Encoder ()_cec .TextEncoder {return _cabe ._eceba };
// PdfFunctionType3 defines stitching of the subdomains of several 1-input functions to produce
// a single new 1-input function.
type PdfFunctionType3 struct{Domain []float64 ;Range []float64 ;Functions []PdfFunction ;Bounds []float64 ;Encode []float64 ;_gfddd *_eg .PdfIndirectObject ;};
// String returns a string that describes `base`.
func (_fceb fontCommon )String ()string {return _e .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_fceb .coreString ());};
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
// be numeric.
func (_adaff *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=_adaff .GetNumComponents (){return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ggcca ,_adff :=_eg .GetNumbersAsFloat (objects );
if _adff !=nil {return nil ,_adff ;};return _adaff .ColorFromFloats (_ggcca );};
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
// a failure in loading.
func NewPdfColorspaceFromPdfObject (obj _eg .PdfObject )(PdfColorspace ,error ){var _aacfe *_eg .PdfIndirectObject ;var _cdee *_eg .PdfObjectName ;var _dgcgb *_eg .PdfObjectArray ;if _acfge ,_ebfa :=obj .(*_eg .PdfIndirectObject );_ebfa {_aacfe =_acfge ;
};obj =_eg .TraceToDirectObject (obj );switch _fcag :=obj .(type ){case *_eg .PdfObjectArray :_dgcgb =_fcag ;case *_eg .PdfObjectName :_cdee =_fcag ;};if _cdee !=nil {switch *_cdee {case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":return NewPdfColorspaceDeviceGray (),nil ;
case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":return NewPdfColorspaceDeviceRGB (),nil ;case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":return NewPdfColorspaceDeviceCMYK (),nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return NewPdfColorspaceSpecialPattern (),nil ;
default:_dbg .Log .Debug ("\u0045\u0052\u0052\u004fR\u003a\u0020\u0055\u006e\u006b\u006e\u006f\u0077\u006e\u0020c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065 \u0025\u0073",*_cdee );return nil ,_fgega ;};};if _dgcgb !=nil &&_dgcgb .Len ()> 0{var _egae _eg .PdfObject =_aacfe ;
if _aacfe ==nil {_egae =_dgcgb ;};if _ceff ,_dfbb :=_eg .GetName (_dgcgb .Get (0));_dfbb {switch _ceff .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _dgcgb .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _dgcgb .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;
};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _dgcgb .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _becf (_egae );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _fgca (_egae );
case "\u004c\u0061\u0062":return _degbd (_egae );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _fbgdc (_egae );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _adbbg (_egae );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _acde (_egae );
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _feaee (_egae );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _cafa (_egae );default:_dbg .Log .Debug ("A\u0072\u0072\u0061\u0079\u0020\u0077i\u0074\u0068\u0020\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u006e\u0061m\u0065:\u0020\u0025\u0073",*_ceff );
};};};_dbg .Log .Debug ("\u0050\u0044\u0046\u0020\u0046i\u006c\u0065\u0020\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0043\u006f\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0073",obj .String ());
return nil ,ErrTypeCheck ;};
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_cagf :=&PdfColorspaceCalGray {};_cagf .BlackPoint =[]float64 {0.0,0.0,0.0};_cagf .Gamma =1;return _cagf ;};
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
func SetPdfCreationDate (creationDate _ee .Time ){_egbeg .Lock ();defer _egbeg .Unlock ();_gbbee =creationDate ;};
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
func (_ceedb *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_eg .StreamEncoder ,error ){_eddg ,_dgba :=_ceedb ._cfaag .(*_eg .PdfObjectStream );if !_dgba {_dbg .Log .Debug ("\u0054\u0069l\u0069\u006e\u0067\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_ceedb ._cfaag );
return nil ,nil ,_eg .ErrTypeError ;};_ccfeb ,_befa :=_eg .DecodeStream (_eddg );if _befa !=nil {_dbg .Log .Debug ("\u0046\u0061\u0069l\u0065\u0064\u0020\u0064e\u0063\u006f\u0064\u0069\u006e\u0067\u0020s\u0074\u0072\u0065\u0061\u006d\u002c\u0020\u0065\u0072\u0072\u003a\u0020\u0025\u0076",_befa );
return nil ,nil ,_befa ;};_cbed ,_befa :=_eg .NewEncoderFromStream (_eddg );if _befa !=nil {_dbg .Log .Debug ("F\u0061\u0069\u006c\u0065\u0064\u0020f\u0069\u006e\u0064\u0069\u006e\u0067 \u0064\u0065\u0063\u006f\u0064\u0069\u006eg\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u003a\u0020%\u0076",_befa );
return nil ,nil ,_befa ;};return _ccfeb ,_cbed ,nil ;};
// FillWithAppearance populates `form` with values provided by `provider`.
// If not nil, `appGen` is used to generate appearance dictionaries for the
// field annotations, based on the specified settings. Otherwise, appearance
// generation is skipped.
// e.g.: appGen := annotator.FieldAppearance{OnlyIfMissing: true, RegenerateTextFields: true}
// NOTE: In next major version this functionality will be part of Fill. (v4)
func (_feca *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {return _feca .fill (provider ,appGen );};
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
// The added XObject is identified by the specified name.
func (_fgcbd *PdfPageResources )SetXObjectByName (keyName _eg .PdfObjectName ,stream *_eg .PdfObjectStream )error {if _fgcbd .XObject ==nil {_fgcbd .XObject =_eg .MakeDict ();};_daceb :=_eg .TraceToDirectObject (_fgcbd .XObject );_geac ,_gdaga :=_daceb .(*_eg .PdfObjectDictionary );
if !_gdaga {_dbg .Log .Debug ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0058\u004f\u0062j\u0065\u0063\u0074\u002c\u0020\u0067\u006f\u0074\u0020\u0025T\u002f\u0025\u0054",_fgcbd .XObject ,_daceb );return _bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_geac .Set (keyName ,stream );return nil ;};
// ColorToRGB converts a Lab color to an RGB color.
func (_gdfc *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_bbbf :=func (_gbe float64 )float64 {if _gbe >=6.0/29{return _gbe *_gbe *_gbe ;};return 108.0/841*(_gbe -4/29);};_debb ,_bdbg :=color .(*PdfColorLab );if !_bdbg {_dbg .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");
return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_debb .L ();AStar :=_debb .A ();BStar :=_debb .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;
X :=_gdfc .WhitePoint [0]*_bbbf (L );Y :=_gdfc .WhitePoint [1]*_bbbf (M );Z :=_gdfc .WhitePoint [2]*_bbbf (N );_fddb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_bggb :=-0.969256*X +1.875992*Y +0.041556*Z ;_agfba :=0.055648*X +-0.204043*Y +1.057311*Z ;_fddb =_bc .Min (_bc .Max (_fddb ,0),1.0);
_bggb =_bc .Min (_bc .Max (_bggb ,0),1.0);_agfba =_bc .Min (_bc .Max (_agfba ,0),1.0);return NewPdfColorDeviceRGB (_fddb ,_bggb ,_agfba ),nil ;};
// GetContainingPdfObject returns the container of the outline item (indirect object).
func (_eaaeg *PdfOutlineItem )GetContainingPdfObject ()_eg .PdfObject {return _eaaeg ._bfega };
// PdfActionHide represents a hide action.
type PdfActionHide struct{*PdfAction ;T _eg .PdfObject ;H _eg .PdfObject ;};
// ToPdfObject converts the font to a PDF representation.
func (_dfaad *pdfFontType0 )ToPdfObject ()_eg .PdfObject {if _dfaad ._becfa ==nil {_dfaad ._becfa =&_eg .PdfIndirectObject {};};_bbcee :=_dfaad .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_dfaad ._becfa .PdfObject =_bbcee ;if _dfaad .Encoding !=nil {_bbcee .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dfaad .Encoding );
}else if _dfaad ._eceba !=nil {_bbcee .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dfaad ._eceba .ToPdfObject ());};if _dfaad .DescendantFont !=nil {_bbcee .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_eg .MakeArray (_dfaad .DescendantFont .ToPdfObject ()));
};return _dfaad ._becfa ;};
// Write writes out the PDF.
func (_cdfab *PdfWriter )Write (writer _de .Writer )error {_dbg .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_bcfbf :=_dd .GetLicenseKey ();if (_bcfbf ==nil ||!_bcfbf .IsLicensed ())&&!_dfgac {_e .Printf ("\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064\u0020c\u006f\u0070\u0079\u0020\u006f\u0066\u0020\u0055\u006e\u0069P\u0044\u0046\u000a");
_e .Println ("-\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u0066\u0072e\u0065\u0020\u0074\u0072\u0069\u0061\u006c l\u0069\u0063\u0065\u006es\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070s:\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");
return _bbd .New ("\u0075\u006e\u0069\u0070d\u0066\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020c\u006fd\u0065\u0020\u0072\u0065\u0071\u0075\u0069r\u0065\u0064");};if _cdfab ._ebeg !=nil {_dbg .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_cdfab ._ebeg );
_fffbe :=_cdfab ._ebeg .ToPdfObject ();_dbg .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_fffbe ,_fffbe ,_fffbe );_cdfab ._ebaaa .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_fffbe );
_cgcgb :=_cdfab .addObjects (_fffbe );if _cgcgb !=nil {return _cgcgb ;};};if _cdfab ._adcgf !=nil {_dbg .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_cdgd :=_cdfab ._adcgf .ToPdfObject ();_dbg .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_cdgd );
_cdfab ._ebaaa .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_cdgd );_dfgeg :=_cdfab .addObjects (_cdgd );if _dfgeg !=nil {return _dfgeg ;};};for _afbbb ,_eafed :=range _cdfab ._cfadb {if !_cdfab .hasObject (_afbbb ){_dbg .Log .Debug ("\u0057\u0041\u0052\u004e\u0020\u0050\u0065n\u0064\u0069\u006eg\u0020\u006f\u0062j\u0065\u0063t\u0020\u0025\u002b\u0076\u0020\u0025T\u0020(%\u0070\u0029\u0020\u006e\u0065\u0076\u0065\u0072\u0020\u0061\u0064\u0064\u0065\u0064\u0020\u0066\u006f\u0072\u0020\u0077\u0072\u0069\u0074\u0069\u006e\u0067",_afbbb ,_afbbb ,_afbbb );
for _ ,_fddee :=range _eafed {for _ ,_edfac :=range _fddee .Keys (){_fbggc :=_fddee .Get (_edfac );if _fbggc ==_afbbb {_dbg .Log .Debug ("\u0050e\u006e\u0064i\u006e\u0067\u0020\u006fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0075\u006e\u0064\u0021\u0020\u0061nd\u0020\u0072\u0065p\u006c\u0061c\u0065\u0064\u0020\u0077\u0069\u0074h\u0020\u006eu\u006c\u006c");
_fddee .Set (_edfac ,_eg .MakeNull ());break ;};};};};};_cdfab ._ebaaa .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_eg .MakeName (_e .Sprintf ("\u0025\u0064\u002e%\u0064",_cdfab ._dacab ,_cdfab ._ecae )));_cdfab .copyObjects ();if _cdfab ._efdcf !=nil {var _eaaed error ;
_cdfab ._aecabb ,_eaaed =_cdfab ._efdcf .Optimize (_cdfab ._aecabb );if _eaaed !=nil {return _eaaed ;};_bgeded :=make (map[_eg .PdfObject ]struct{},len (_cdfab ._aecabb ));for _ ,_ggaee :=range _cdfab ._aecabb {_bgeded [_ggaee ]=struct{}{};};_cdfab ._bccbf =_bgeded ;
};_cdfab ._agecc =_cdfab ._dfgff ;_cdfab ._fggeg =_g .NewWriter (writer );_dgfcg :=_cdfab ._dacab > 1||(_cdfab ._dacab ==1&&_cdfab ._ecae > 4);if _cdfab ._fdgeg !=nil {_dgfcg =*_cdfab ._fdgeg ;};_eace :=make (map[_eg .PdfObject ]bool );for _ ,_abfef :=range _cdfab ._aecabb {if _cegce ,_eeddg :=_abfef .(*_eg .PdfObjectStreams );
_eeddg {_dgfcg =true ;for _ ,_bcgf :=range _cegce .Elements (){_eace [_bcgf ]=true ;if _dadfa ,_effca :=_bcgf .(*_eg .PdfIndirectObject );_effca {_eace [_dadfa .PdfObject ]=true ;};};};};if _dgfcg &&_cdfab ._dacab ==1&&_cdfab ._ecae < 5{_cdfab ._ecae =5;
};if _cdfab ._aaedc {_cdfab .writeString ("\u000a");}else {_cdfab .writeString (_e .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_cdfab ._dacab ,_cdfab ._ecae ));_cdfab .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");
};_cdfab .updateObjectNumbers ();_dbg .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_cdfab ._aecabb ));_cdfab ._fadgbb =make (map[int ]crossReference );_cdfab ._fadgbb [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};
if _cdfab ._adcdd .ObjectMap !=nil {for _eadfff ,_afgg :=range _cdfab ._adcdd .ObjectMap {if _eadfff ==0{continue ;};if _afgg .XType ==_eg .XrefTypeObjectStream {_abee :=crossReference {Type :2,ObjectNumber :_afgg .OsObjNumber ,Index :_afgg .OsObjIndex };
_cdfab ._fadgbb [_eadfff ]=_abee ;};if _afgg .XType ==_eg .XrefTypeTableEntry {_dgbec :=crossReference {Type :1,ObjectNumber :_afgg .ObjectNumber ,Offset :_afgg .Offset };_cdfab ._fadgbb [_eadfff ]=_dgbec ;};};};for _ ,_dbcde :=range _cdfab ._aecabb {if _efgf :=_eace [_dbcde ];
_efgf {continue ;};_ddgdeg :=int64 (0);switch _caga :=_dbcde .(type ){case *_eg .PdfIndirectObject :_ddgdeg =_caga .ObjectNumber ;case *_eg .PdfObjectStream :_ddgdeg =_caga .ObjectNumber ;case *_eg .PdfObjectStreams :_ddgdeg =_caga .ObjectNumber ;default:_dbg .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0055n\u0073\u0075\u0070\u0070\u006f\u0072\u0074e\u0064\u0020\u0074\u0079\u0070\u0065 \u0069\u006e\u0020\u0077\u0072\u0069\u0074\u0065\u0072\u0020\u006fb\u006a\u0065\u0063\u0074\u0073\u003a\u0020\u0025\u0054",_dbcde );
return ErrTypeCheck ;};if _cdfab ._ccag !=nil &&_dbcde !=_cdfab ._fbbfd {_ebcagg :=_cdfab ._ccag .Encrypt (_dbcde ,_ddgdeg ,0);if _ebcagg !=nil {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0065\u006e\u0063\u0072\u0079\u0070\u0074\u0069\u006e\u0067\u0020(%\u0073\u0029",_ebcagg );
return _ebcagg ;};};_cdfab .writeObject (int (_ddgdeg ),_dbcde );};_dcfgf :=_cdfab ._agecc ;var _dafbac int ;for _fdcc :=range _cdfab ._fadgbb {if _fdcc > _dafbac {_dafbac =_fdcc ;};};if _dgfcg {_fged :=_dafbac +1;_cdfab ._fadgbb [_fged ]=crossReference {Type :1,ObjectNumber :_fged ,Offset :_dcfgf };
_acbac :=_cbd .NewBuffer (nil );_egdbe :=_eg .MakeArray ();for _dagfd :=0;_dagfd <=_dafbac ;{for ;_dagfd <=_dafbac ;_dagfd ++{_bebb ,_eadfe :=_cdfab ._fadgbb [_dagfd ];if _eadfe &&(!_cdfab ._aaedc ||_cdfab ._aaedc &&(_bebb .Type ==1&&_bebb .Offset >=_cdfab ._cdedc ||_bebb .Type ==0)){break ;
};};var _ebcgea int ;for _ebcgea =_dagfd +1;_ebcgea <=_dafbac ;_ebcgea ++{_caba ,_aafceda :=_cdfab ._fadgbb [_ebcgea ];if _aafceda &&(!_cdfab ._aaedc ||_cdfab ._aaedc &&(_caba .Type ==1&&_caba .Offset > _cdfab ._cdedc )){continue ;};break ;};_egdbe .Append (_eg .MakeInteger (int64 (_dagfd )),_eg .MakeInteger (int64 (_ebcgea -_dagfd )));
for _cgfg :=_dagfd ;_cgfg < _ebcgea ;_cgfg ++{_fgaac :=_cdfab ._fadgbb [_cgfg ];switch _fgaac .Type {case 0:_gg .Write (_acbac ,_gg .BigEndian ,byte (0));_gg .Write (_acbac ,_gg .BigEndian ,uint32 (0));_gg .Write (_acbac ,_gg .BigEndian ,uint16 (0xFFFF));
case 1:_gg .Write (_acbac ,_gg .BigEndian ,byte (1));_gg .Write (_acbac ,_gg .BigEndian ,uint32 (_fgaac .Offset ));_gg .Write (_acbac ,_gg .BigEndian ,uint16 (_fgaac .Generation ));case 2:_gg .Write (_acbac ,_gg .BigEndian ,byte (2));_gg .Write (_acbac ,_gg .BigEndian ,uint32 (_fgaac .ObjectNumber ));
_gg .Write (_acbac ,_gg .BigEndian ,uint16 (_fgaac .Index ));};};_dagfd =_ebcgea +1;};_ebgbaa ,_bbab :=_eg .MakeStream (_acbac .Bytes (),_eg .NewFlateEncoder ());if _bbab !=nil {return _bbab ;};_ebgbaa .ObjectNumber =int64 (_fged );_ebgbaa .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0058\u0052\u0065\u0066"));
_ebgbaa .PdfObjectDictionary .Set ("\u0057",_eg .MakeArray (_eg .MakeInteger (1),_eg .MakeInteger (4),_eg .MakeInteger (2)));_ebgbaa .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_egdbe );_ebgbaa .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_eg .MakeInteger (int64 (_fged +1)));
_ebgbaa .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_cdfab ._ggca );_ebgbaa .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_cdfab ._eeeg );if _cdfab ._aaedc &&_cdfab ._fcebcb > 0{_ebgbaa .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_eg .MakeInteger (_cdfab ._fcebcb ));
};if _cdfab ._ccag !=nil {_ebgbaa .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_cdfab ._fbbfd );_ebgbaa .Set ("\u0049\u0044",_cdfab ._ecadc );_dbg .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_cdfab ._ecadc );};_cdfab .writeObject (int (_ebgbaa .ObjectNumber ),_ebgbaa );
}else {_cdfab .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _dbdef :=0;_dbdef <=_dafbac ;{for ;_dbdef <=_dafbac ;_dbdef ++{_gdbca ,_bdcad :=_cdfab ._fadgbb [_dbdef ];if _bdcad &&(!_cdfab ._aaedc ||_cdfab ._aaedc &&(_gdbca .Type ==1&&_gdbca .Offset >=_cdfab ._cdedc ||_gdbca .Type ==0)){break ;
};};var _geccdc int ;for _geccdc =_dbdef +1;_geccdc <=_dafbac ;_geccdc ++{_dadabf ,_effcf :=_cdfab ._fadgbb [_geccdc ];if _effcf &&(!_cdfab ._aaedc ||_cdfab ._aaedc &&(_dadabf .Type ==1&&_dadabf .Offset > _cdfab ._cdedc )){continue ;};break ;};_gcgc :=_e .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_dbdef ,_geccdc -_dbdef );
_cdfab .writeString (_gcgc );for _bbcab :=_dbdef ;_bbcab < _geccdc ;_bbcab ++{_decde :=_cdfab ._fadgbb [_bbcab ];switch _decde .Type {case 0:_gcgc =_e .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);
_cdfab .writeString (_gcgc );case 1:_gcgc =_e .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_decde .Offset ,0);_cdfab .writeString (_gcgc );};};_dbdef =_geccdc +1;};_fdafe :=_eg .MakeDict ();_fdafe .Set ("\u0049\u006e\u0066\u006f",_cdfab ._ggca );
_fdafe .Set ("\u0052\u006f\u006f\u0074",_cdfab ._eeeg );_fdafe .Set ("\u0053\u0069\u007a\u0065",_eg .MakeInteger (int64 (_dafbac +1)));if _cdfab ._aaedc &&_cdfab ._fcebcb > 0{_fdafe .Set ("\u0050\u0072\u0065\u0076",_eg .MakeInteger (_cdfab ._fcebcb ));
};if _cdfab ._ccag !=nil {_fdafe .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_cdfab ._fbbfd );_fdafe .Set ("\u0049\u0044",_cdfab ._ecadc );_dbg .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_cdfab ._ecadc );};_cdfab .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");
_cdfab .writeString (_fdafe .WriteString ());_cdfab .writeString ("\u000a");};_dabf :=_e .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_dcfgf );_cdfab .writeString (_dabf );_cdfab .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");
if _cdfab ._cfgdd ==nil {_cdfab ._cfgdd =_cdfab ._fggeg .Flush ();};return _cdfab ._cfgdd ;};
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
func (_eecgc *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_dbg .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_dbg .Log .Trace ("I\u006d\u0061\u0067\u0065\u0020\u0042P\u0043\u003a\u0020\u0025\u0064\u002c \u0043\u006f\u006c\u006f\u0072\u0020\u0063o\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073\u003a\u0020%\u0064",img .BitsPerComponent ,img .ColorComponents );
_dbg .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_dbg .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );
_efad ,_eeef :=_ff .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fcec ,img ._aaeac );if _eeef !=nil {return Image {},_eeef ;};_effb ,_eeef :=_ff .NRGBAConverter .Convert (_efad );if _eeef !=nil {return Image {},_eeef ;
};return _egbde (_effb .Base ()),nil ;};
// LTV represents an LTV (Long-Term Validation) client. It is used to LTV
// enable signatures by adding validation and revocation data (certificate,
// OCSP and CRL information) to the DSS dictionary of a PDF document.
//
// LTV is added through the DSS by:
// - Adding certificates, OCSP and CRL information in the global scope of the
// DSS. The global data is used for validating any of the signatures present
// in the document.
// - Adding certificates, OCSP and CRL information for a single signature,
// through an entry in the VRI dictionary of the DSS. The added data is used
// for validating that particular signature only. This is the recommended
// method for adding validation data for a signature. However, this is not
// is not possible in the same revision the signature is applied. Validation
// data for a signature is added based on the Contents entry of the signature,
// which is known only after the revision is written. Even if the Contents
// are known (e.g. when signing externally), updating the DSS at that point
// would invalidate the calculated signature. As a result, if adding LTV
// in the same revision is a requirement, use the first method.
// See LTV.EnableChain.
// The client applies both methods, when possible.
//
// If `LTV.SkipExisting` is set to true (the default), validations are
// not added for signatures which are already present in the VRI entry of the
// document's DSS dictionary.
type LTV struct{
// CertClient is the client used to retrieve certificates.
CertClient *_cbf .CertClient ;
// OCSPClient is the client used to retrieve OCSP validation information.
OCSPClient *_cbf .OCSPClient ;
// CRLClient is the client used to retrieve CRL validation information.
CRLClient *_cbf .CRLClient ;
// SkipExisting specifies whether existing signature validations
// should be skipped.
SkipExisting bool ;_caadf *PdfAppender ;_fgada *DSS ;};func _edff (_efece *_eg .PdfObjectDictionary )(*PdfFieldButton ,error ){_eefc :=&PdfFieldButton {};_eefc .Opt ,_ =_eg .GetArray (_efece .Get ("\u004f\u0070\u0074"));return _eefc ,nil ;};
// NewPdfAnnotationRichMedia returns a new rich media annotation.
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_fcfe :=NewPdfAnnotation ();_efc :=&PdfAnnotationRichMedia {};_efc .PdfAnnotation =_fcfe ;_fcfe .SetContext (_efc );return _efc ;};
// ToPdfObject converts rectangle to a PDF object.
func (_gebea *PdfRectangle )ToPdfObject ()_eg .PdfObject {return _eg .MakeArray (_eg .MakeFloat (_gebea .Llx ),_eg .MakeFloat (_gebea .Lly ),_eg .MakeFloat (_gebea .Urx ),_eg .MakeFloat (_gebea .Ury ));};
// Encoder returns the font's text encoder.
func (_aebff *pdfFontSimple )Encoder ()_cec .TextEncoder {if _aebff ._gccbc !=nil {return _aebff ._gccbc ;};if _aebff ._fcgd !=nil {return _aebff ._fcgd ;};_gfgcba ,_ :=_cec .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );
return _gfgcba ;};
// AddPage adds a page to the PDF file. The new page should be an indirect object.
func (_gaefgc *PdfWriter )AddPage (page *PdfPage )error {const _cfgg ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_faadf (page );_cdacc :=page .ToPdfObject ();_dbg .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
_dbg .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_cdacc );_dfea ,_ecfdf :=_eg .GetIndirect (_cdacc );if !_ecfdf {return _bbd .New ("\u0070\u0061\u0067\u0065\u0020\u0073h\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0069\u006ed\u0069\u0072\u0065\u0063\u0074\u0020\u006fb\u006a\u0065\u0063\u0074");
};_dbg .Log .Trace ("\u0025\u0073",_dfea );_dbg .Log .Trace ("\u0025\u0073",_dfea .PdfObject );_effbc ,_ecfdf :=_eg .GetDict (_dfea .PdfObject );if !_ecfdf {return _bbd .New ("\u0070\u0061\u0067e \u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0073\u0068o\u0075l\u0064 \u0062e\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};_beedc ,_ecfdf :=_eg .GetName (_effbc .Get ("\u0054\u0079\u0070\u0065"));if !_ecfdf {return _e .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u0020\u0054y\u0070\u0065\u0020\u006b\u0065\u0079\u0020\u0077\u0069t\u0068\u0020\u0061\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006f\u0066\u0020t\u0079\u0070\u0065\u0020\u006e\u0061m\u0065\u0020\u0028%\u0054\u0029",_effbc .Get ("\u0054\u0079\u0070\u0065"));
};if _beedc .String ()!="\u0050\u0061\u0067\u0065"{return _bbd .New ("\u0066\u0069e\u006c\u0064\u0020\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020\u0050\u0061\u0067\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069re\u0064\u0029");};_bgcbg :=[]_eg .PdfObjectName {"\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s","\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078","\u0043r\u006f\u0070\u0042\u006f\u0078","\u0052\u006f\u0074\u0061\u0074\u0065"};
_fdfce ,_afcbb :=_eg .GetIndirect (_effbc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_dbg .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_effbc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_afcbb );
for _afcbb {_dbg .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fdfce );_gggc ,_dgfda :=_eg .GetDict (_fdfce .PdfObject );if !_dgfda {return _bbd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
};for _ ,_gdgbfg :=range _bgcbg {_dbg .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gdgbfg );if _effbc .Get (_gdgbfg )!=nil {_dbg .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");
continue ;};if _cfbad :=_gggc .Get (_gdgbfg );_cfbad !=nil {_dbg .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gdgbfg );_effbc .Set (_gdgbfg ,_cfbad );};};_fdfce ,_afcbb =_eg .GetIndirect (_gggc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
_dbg .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gggc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_dbg .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");
_effbc .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gaefgc ._afbga );_dfea .PdfObject =_effbc ;_cadd ,_ecfdf :=_eg .GetDict (_gaefgc ._afbga .PdfObject );if !_ecfdf {return _bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0020(\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0029");
};_dbaef ,_ecfdf :=_eg .GetArray (_cadd .Get ("\u004b\u0069\u0064\u0073"));if !_ecfdf {return _bbd .New ("\u0069\u006ev\u0061\u006c\u0069\u0064 \u0050\u0061g\u0065\u0073\u0020\u004b\u0069\u0064\u0073\u0020o\u0062\u006a\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079\u0029");
};_dbaef .Append (_dfea );_gaefgc ._eacbf [_effbc ]=struct{}{};_abbf ,_ecfdf :=_eg .GetInt (_cadd .Get ("\u0043\u006f\u0075n\u0074"));if !_ecfdf {return _bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u0050\u0061\u0067e\u0073\u0020\u0043\u006fu\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0029");
};*_abbf =*_abbf +1;if page ._fdfdec ==nil {_fedag :=_dd .Track (_gaefgc ._fggebg ,_cfgg );if _fedag !=nil {return _fedag ;};}else {_deaaf :=_dd .Track (page ._fdfdec ._ebcgb ,_cfgg );if _deaaf !=nil {return _deaaf ;};};_gaefgc .addObject (_dfea );_ceee :=_gaefgc .addObjects (_effbc );
if _ceee !=nil {return _ceee ;};return nil ;};func _ddaab (_bcae string )(map[_cec .CharCode ]_cec .GlyphName ,error ){_cgdgg :=_dc .Split (_bcae ,"\u000a");_cdfe :=make (map[_cec .CharCode ]_cec .GlyphName );for _ ,_fcggc :=range _cgdgg {_fada :=_dcadg .FindStringSubmatch (_fcggc );
if _fada ==nil {continue ;};_acgcge ,_dggbf :=_fada [1],_fada [2];_afeb ,_abgaa :=_db .Atoi (_acgcge );if _abgaa !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004fR\u003a\u0020\u0042\u0061\u0064\u0020\u0065\u006e\u0063\u006fd\u0069n\u0067\u0020\u006c\u0069\u006e\u0065\u002e \u0025\u0071",_fcggc );
return nil ,_eg .ErrTypeError ;};_cdfe [_cec .CharCode (_afeb )]=_cec .GlyphName (_dggbf );};_dbg .Log .Trace ("g\u0065\u0074\u0045\u006e\u0063\u006fd\u0069\u006e\u0067\u0073\u003a\u0020\u006b\u0065\u0079V\u0061\u006c\u0075e\u0073=\u0025\u0023\u0076",_cdfe );
return _cdfe ,nil ;};
// NewPdfActionResetForm returns a new "reset form" action.
func NewPdfActionResetForm ()*PdfActionResetForm {_dcb :=NewPdfAction ();_afc :=&PdfActionResetForm {};_afc .PdfAction =_dcb ;_dcb .SetContext (_afc );return _afc ;};
// SetDocInfo set document info.
// This will overwrite any globally declared document info.
func (_cfga *PdfWriter )SetDocInfo (info *PdfInfo ){if _cfga .hasObject (_cfga ._ggca ){delete (_cfga ._bccbf ,_cfga ._ggca );delete (_cfga ._aeceg ,_cfga ._ggca );for _bbcd ,_ddedc :=range _cfga ._aecabb {if _ddedc ==_cfga ._ggca {copy (_cfga ._aecabb [_bbcd :],_cfga ._aecabb [_bbcd +1:]);
_cfga ._aecabb [len (_cfga ._aecabb )-1]=nil ;_cfga ._aecabb =_cfga ._aecabb [:len (_cfga ._aecabb )-1];break ;};};};_cgfae :=_eg .PdfIndirectObject {};_cgfae .PdfObject =info .ToPdfObject ();_cfga ._ggca =&_cgfae ;_cfga .addObject (&_cgfae );};
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
func (_dbdd *PdfColorspaceSpecialIndexed )ToPdfObject ()_eg .PdfObject {_gcfa :=_eg .MakeArray (_eg .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_gcfa .Append (_dbdd .Base .ToPdfObject ());_gcfa .Append (_eg .MakeInteger (int64 (_dbdd .HiVal )));
_gcfa .Append (_dbdd .Lookup );if _dbdd ._cbdga !=nil {_dbdd ._cbdga .PdfObject =_gcfa ;return _dbdd ._cbdga ;};return _gcfa ;};func _dbaea (_cccf *_eg .PdfObjectDictionary ,_fgggg *fontCommon )(*pdfFontType3 ,error ){_caedg :=_efeb (_fgggg );_aeaa :=_cccf .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");
if _aeaa ==nil {_aeaa =_eg .MakeInteger (0);};_caedg .FirstChar =_aeaa ;_dfeef ,_ffcce :=_eg .GetIntVal (_aeaa );if !_ffcce {_dbg .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0046i\u0072s\u0074C\u0068\u0061\u0072\u0020\u0074\u0079\u0070\u0065\u0020\u0028\u0025\u0054\u0029",_aeaa );
return nil ,_eg .ErrTypeError ;};_geeeg :=_cec .CharCode (_dfeef );_aeaa =_cccf .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _aeaa ==nil {_aeaa =_eg .MakeInteger (255);};_caedg .LastChar =_aeaa ;_dfeef ,_ffcce =_eg .GetIntVal (_aeaa );if !_ffcce {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004c\u0061\u0073\u0074\u0043h\u0061\u0072\u0020\u0074\u0079\u0070\u0065 \u0028\u0025\u0054\u0029",_aeaa );
return nil ,_eg .ErrTypeError ;};_gdfbb :=_cec .CharCode (_dfeef );_aeaa =_cccf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _aeaa !=nil {_caedg .Resources =_aeaa ;};_aeaa =_cccf .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _aeaa ==nil {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0068\u0061\u0072\u0050\u0072\u006f\u0063\u0073\u0020(%\u0076\u0029",_aeaa );
return nil ,_eg .ErrNotSupported ;};_caedg .CharProcs =_aeaa ;_aeaa =_cccf .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _aeaa ==nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0046\u006f\u006et\u004d\u0061\u0074\u0072\u0069\u0078\u0020\u0028\u0025\u0076\u0029",_aeaa );
return nil ,_eg .ErrNotSupported ;};_caedg .FontMatrix =_aeaa ;_caedg ._cgcec =make (map[_cec .CharCode ]float64 );_aeaa =_cccf .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _aeaa !=nil {_caedg .Widths =_aeaa ;_dgbef ,_egbdf :=_eg .GetArray (_aeaa );
if !_egbdf {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020W\u0069\u0064t\u0068\u0073\u0020\u0061\u0074\u0074\u0072\u0069b\u0075\u0074\u0065\u0020\u0021\u003d\u0020\u0061\u0072\u0072\u0061\u0079 \u0028\u0025\u0054\u0029",_aeaa );return nil ,_eg .ErrTypeError ;
};_aafce ,_fcca :=_dgbef .ToFloat64Array ();if _fcca !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0077\u0069d\u0074\u0068\u0073\u0020\u0074\u006f\u0020a\u0072\u0072\u0061\u0079");
return nil ,_fcca ;};if len (_aafce )!=int (_gdfbb -_geeeg +1){_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0074\u0068s\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u0021\u003d\u0020\u0025\u0064 \u0028\u0025\u0064\u0029",_gdfbb -_geeeg +1,len (_aafce ));
return nil ,_eg .ErrRangeError ;};_cagc ,_egbdf :=_eg .GetArray (_caedg .FontMatrix );if !_egbdf {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0021\u003d\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_cagc );
return nil ,_fcca ;};_bfbec ,_fcca :=_cagc .ToFloat64Array ();if _fcca !=nil {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020c\u006f\u006ev\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0046o\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078\u0020\u0074\u006f\u0020a\u0072\u0072\u0061\u0079");
return nil ,_fcca ;};_ceefa :=_cc .NewMatrix (_bfbec [0],_bfbec [1],_bfbec [2],_bfbec [3],_bfbec [4],_bfbec [5]);for _beebd ,_bddcb :=range _aafce {_bgdd ,_ :=_ceefa .Transform (_bddcb ,_bddcb );_caedg ._cgcec [_geeeg +_cec .CharCode (_beebd )]=_bgdd ;
};};_caedg .Encoding =_eg .TraceToDirectObject (_cccf .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));_dgde :=_cccf .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _dgde !=nil {_caedg ._fgegd =_eg .TraceToDirectObject (_dgde );_dfecd ,_dccad :=_eagd (_caedg ._fgegd ,&_caedg .fontCommon );
if _dccad !=nil {return nil ,_dccad ;};_caedg ._fffc =_dfecd ;};if _fedaa :=_caedg ._fffc ;_fedaa !=nil {_caedg ._daeg =_cec .NewCMapEncoder ("",nil ,_fedaa );}else {_caedg ._daeg =_cec .NewPdfDocEncoder ();};return _caedg ,nil ;};
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_dgedg :=PdfColorDeviceRGB {r ,g ,b };return &_dgedg ;};
// ToPdfObject implements interface PdfModel.
func (_ggea *PdfAnnotationPolyLine )ToPdfObject ()_eg .PdfObject {_ggea .PdfAnnotation .ToPdfObject ();_gece :=_ggea ._gag ;_aba :=_gece .PdfObject .(*_eg .PdfObjectDictionary );_ggea .PdfAnnotationMarkup .appendToPdfDictionary (_aba );_aba .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));
_aba .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_ggea .Vertices );_aba .SetIfNotNil ("\u004c\u0045",_ggea .LE );_aba .SetIfNotNil ("\u0042\u0053",_ggea .BS );_aba .SetIfNotNil ("\u0049\u0043",_ggea .IC );_aba .SetIfNotNil ("\u0042\u0045",_ggea .BE );
_aba .SetIfNotNil ("\u0049\u0054",_ggea .IT );_aba .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_ggea .Measure );return _gece ;};
// SetFilter sets compression filter. Decodes with current filter sets and
// encodes the data with the new filter.
func (_bdgaf *XObjectImage )SetFilter (encoder _eg .StreamEncoder )error {_eeada :=_bdgaf .Stream ;_dgeb ,_babb :=_bdgaf .Filter .DecodeBytes (_eeada );if _babb !=nil {return _babb ;};_bdgaf .Filter =encoder ;encoder .UpdateParams (_bdgaf .getParamsDict ());
_eeada ,_babb =encoder .EncodeBytes (_dgeb );if _babb !=nil {return _babb ;};_bdgaf .Stream =_eeada ;return nil ;};
// NewPdfAnnotationWatermark returns a new watermark annotation.
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_gdee :=NewPdfAnnotation ();_bfge :=&PdfAnnotationWatermark {};_bfge .PdfAnnotation =_gdee ;_gdee .SetContext (_bfge );return _bfge ;};var _ pdfFont =(*pdfFontType0 )(nil );
// Set sets the colorspace corresponding to key. Add to Names if not set.
func (_bdce *PdfPageResourcesColorspaces )Set (key _eg .PdfObjectName ,val PdfColorspace ){if _ ,_fgfe :=_bdce .Colorspaces [string (key )];!_fgfe {_bdce .Names =append (_bdce .Names ,string (key ));};_bdce .Colorspaces [string (key )]=val ;};var (ErrRequiredAttributeMissing =_bbd .New ("\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074t\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073s\u0069\u006e\u0067");
ErrInvalidAttribute =_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_fgega =_bbd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
ErrEncrypted =_bbd .New ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");ErrNoFont =_bbd .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
ErrFontNotSupported =_ead .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_eg .ErrNotSupported );ErrType1CFontNotSupported =_ead .Errorf ("\u0054y\u0070\u00651\u0043\u0020\u0066o\u006e\u0074\u0073\u0020\u0061\u0072\u0065 \u006e\u006f\u0074\u0020\u0063\u0075r\u0072\u0065\u006e\u0074\u006c\u0079\u0020\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020\u0028\u0025\u0077\u0029",_eg .ErrNotSupported );
ErrType3FontNotSupported =_ead .Errorf ("\u0054y\u0070\u00653\u0020\u0066\u006f\u006et\u0073\u0020\u0061r\u0065\u0020\u006e\u006f\u0074\u0020\u0063\u0075\u0072re\u006e\u0074\u006cy\u0020\u0073u\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0028%\u0077\u0029",_eg .ErrNotSupported );
ErrTTCmapNotSupported =_ead .Errorf ("\u0075\u006es\u0075\u0070\u0070\u006fr\u0074\u0065d\u0020\u0054\u0072\u0075\u0065\u0054\u0079\u0070e\u0020\u0063\u006d\u0061\u0070\u0020\u0066\u006f\u0072\u006d\u0061\u0074 \u0028\u0025\u0077\u0029",_eg .ErrNotSupported );
ErrSignNotEnoughSpace =_ead .Errorf ("\u0069\u006e\u0073\u0075\u0066\u0066\u0069c\u0069\u0065\u006et\u0020\u0073\u0070a\u0063\u0065 \u0061\u006c\u006c\u006f\u0063\u0061t\u0065d \u0066\u006f\u0072\u0020\u0074\u0068\u0065\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0073");
ErrSignNoCertificates =_ead .Errorf ("\u0063\u006ful\u0064\u0020\u006eo\u0074\u0020\u0072\u0065tri\u0065ve\u0020\u0063\u0065\u0072\u0074\u0069\u0066ic\u0061\u0074\u0065\u0020\u0063\u0068\u0061i\u006e"););
// NewPdfActionMovie returns a new "movie" action.
func NewPdfActionMovie ()*PdfActionMovie {_bbg :=NewPdfAction ();_ad :=&PdfActionMovie {};_ad .PdfAction =_bbg ;_bbg .SetContext (_ad );return _ad ;};
// SetNamedDestinations sets the Names entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_bagcf *PdfWriter )SetNamedDestinations (names _eg .PdfObject )error {if names ==nil {return nil ;};_dbg .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");
_bagcf ._ebaaa .Set ("\u004e\u0061\u006de\u0073",names );return _bagcf .addObjects (names );};
// GetContainingPdfObject returns the container of the resources object (indirect object).
func (_efbdg *PdfPageResources )GetContainingPdfObject ()_eg .PdfObject {return _efbdg ._fbcbc };
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
func (_cbaad *XObjectForm )GetContainingPdfObject ()_eg .PdfObject {return _cbaad ._cdcaf };
// NewPdfPage returns a new PDF page.
func NewPdfPage ()*PdfPage {_cebae :=PdfPage {};_cebae ._ecbba =_eg .MakeDict ();_cebae .Resources =NewPdfPageResources ();_edfdg :=_eg .PdfIndirectObject {};_edfdg .PdfObject =_cebae ._ecbba ;_cebae ._caaef =&_edfdg ;return &_cebae ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain three PdfObjectFloat elements representing
// the L, A and B components of the color.
func (_gadef *PdfColorspaceLab )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fbgd ,_bbcgf :=_eg .GetNumbersAsFloat (objects );
if _bbcgf !=nil {return nil ,_bbcgf ;};return _gadef .ColorFromFloats (_fbgd );};
// HasFontByName checks if has font resource by name.
func (_bfgg *PdfPage )HasFontByName (name _eg .PdfObjectName )bool {_bdacb ,_dbgfeg :=_bfgg .Resources .Font .(*_eg .PdfObjectDictionary );if !_dbgfeg {return false ;};if _gdafg :=_bdacb .Get (name );_gdafg !=nil {return true ;};return false ;};
// NewPdfAnnotationCircle returns a new circle annotation.
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_ceaee :=NewPdfAnnotation ();_gac :=&PdfAnnotationCircle {};_gac .PdfAnnotation =_ceaee ;_gac .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ceaee .SetContext (_gac );return _gac ;};func (_fgfae *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _fgfae ._eecfe ==nil &&_fgfae .DescendantFont !=nil {return _fgfae .DescendantFont .FontDescriptor ();
};return _fgfae ._eecfe ;};func _fccc (_bfbbc *XObjectImage )error {if _bfbbc .SMask ==nil {return nil ;};_afea ,_ccge :=_bfbbc .SMask .(*_eg .PdfObjectStream );if !_ccge {_dbg .Log .Debug ("\u0053\u004da\u0073\u006b\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u002a\u0050\u0064\u0066\u004f\u0062\u006a\u0065\u0063\u0074\u0053\u0074re\u0061\u006d");
return _eg .ErrTypeError ;};_gfcce :=_afea .PdfObjectDictionary ;_bfeae :=_gfcce .Get ("\u004d\u0061\u0074t\u0065");if _bfeae ==nil {return nil ;};_efgb ,_eacd :=_gbdcf (_bfeae .(*_eg .PdfObjectArray ));if _eacd !=nil {return _eacd ;};_fdagf :=_eg .MakeArrayFromFloats ([]float64 {_efgb });
_gfcce .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_fdagf );return nil ;};func (_ecfc *PdfReader )newPdfFieldFromIndirectObject (_eceb *_eg .PdfIndirectObject ,_bccc *PdfField )(*PdfField ,error ){if _cbdf ,_eaga :=_ecfc ._gced .GetModelFromPrimitive (_eceb ).(*PdfField );
_eaga {return _cbdf ,nil ;};_decg ,_fcda :=_eg .GetDict (_eceb );if !_fcda {return nil ,_e .Errorf ("\u0050\u0064f\u0046\u0069\u0065\u006c\u0064 \u0069\u006e\u0064\u0069\u0072e\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};_debde :=NewPdfField ();_debde ._afbe =_eceb ;_debde ._afbe .PdfObject =_decg ;if _aabg ,_dgcge :=_eg .GetName (_decg .Get ("\u0046\u0054"));_dgcge {_debde .FT =_aabg ;};if _bccc !=nil {_debde .Parent =_bccc ;};_debde .T ,_ =_decg .Get ("\u0054").(*_eg .PdfObjectString );
_debde .TU ,_ =_decg .Get ("\u0054\u0055").(*_eg .PdfObjectString );_debde .TM ,_ =_decg .Get ("\u0054\u004d").(*_eg .PdfObjectString );_debde .Ff ,_ =_decg .Get ("\u0046\u0066").(*_eg .PdfObjectInteger );_debde .V =_decg .Get ("\u0056");_debde .DV =_decg .Get ("\u0044\u0056");
_debde .AA =_decg .Get ("\u0041\u0041");_ceagb :=_debde .FT ;if _ceagb ==nil &&_bccc !=nil {_ceagb =_bccc .FT ;};if _ceagb !=nil {switch *_ceagb {case "\u0054\u0078":_bcfe ,_fdacd :=_fafc (_decg );if _fdacd !=nil {return nil ,_fdacd ;};_bcfe .PdfField =_debde ;
_debde ._ceag =_bcfe ;case "\u0043\u0068":_dagf ,_gcbba :=_fgfa (_decg );if _gcbba !=nil {return nil ,_gcbba ;};_dagf .PdfField =_debde ;_debde ._ceag =_dagf ;case "\u0042\u0074\u006e":_efg ,_bafc :=_edff (_decg );if _bafc !=nil {return nil ,_bafc ;};_efg .PdfField =_debde ;
_debde ._ceag =_efg ;case "\u0053\u0069\u0067":_effde ,_bfabg :=_ecfc .newPdfFieldSignatureFromDict (_decg );if _bfabg !=nil {return nil ,_bfabg ;};_effde .PdfField =_debde ;_debde ._ceag =_effde ;default:_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0073\u0075\u0070\u0070\u006f\u0072t\u0065d\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0025\u0073",*_debde .FT );
return nil ,_bbd .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");};};if _bfcb ,_edfeg :=_eg .GetName (_decg .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_edfeg {if *_bfcb =="\u0057\u0069\u0064\u0067\u0065\u0074"{_dbdb ,_agffg :=_ecfc .newPdfAnnotationFromIndirectObject (_eceb );
if _agffg !=nil {return nil ,_agffg ;};_cgcef ,_ffbg :=_dbdb .GetContext ().(*PdfAnnotationWidget );if !_ffbg {return nil ,_bbd .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");
};_cgcef ._cdda =_debde ;_cgcef .Parent =_debde ._afbe ;_debde .Annotations =append (_debde .Annotations ,_cgcef );return _debde ,nil ;};};_begfb :=true ;if _dbgc ,_cdgg :=_eg .GetArray (_decg .Get ("\u004b\u0069\u0064\u0073"));_cdgg {_dcgga :=make ([]*_eg .PdfIndirectObject ,0,_dbgc .Len ());
for _ ,_fcde :=range _dbgc .Elements (){_ffcg ,_cfbdd :=_eg .GetIndirect (_fcde );if !_cfbdd {_ccdd ,_dgbg :=_eg .GetStream (_fcde );if _dgbg &&_ccdd .PdfObjectDictionary !=nil {_gcfg ,_fgab :=_eg .GetNameVal (_ccdd .Get ("\u0054\u0079\u0070\u0065"));if _fgab &&_gcfg =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_dbg .Log .Debug ("E\u0052RO\u0052:\u0020f\u006f\u0072\u006d\u0020\u0066i\u0065\u006c\u0064 \u004b\u0069\u0064\u0073\u0020a\u0072\u0072\u0061y\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0073\u0020\u0069n\u0076\u0061\u006cid \u004d\u0065\u0074\u0061\u0064\u0061t\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u002e\u0020\u0053\u006bi\u0070p\u0069\u006e\u0067\u002e");
continue ;};};return nil ,_bbd .New ("n\u006f\u0074\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063t\u0020\u006f\u0062\u006a\u0065\u0063\u0074 \u0028\u0066\u006f\u0072\u006d\u0020\u0066\u0069\u0065\u006cd\u0029");};_egaca ,_dgfcf :=_eg .GetDict (_ffcg );
if !_dgfcf {return nil ,ErrTypeCheck ;};if _begfb {_begfb =!_dgace (_egaca );};_dcgga =append (_dcgga ,_ffcg );};for _ ,_edbg :=range _dcgga {if _begfb {_cggb ,_dgef :=_ecfc .newPdfAnnotationFromIndirectObject (_edbg );if _dgef !=nil {_dbg .Log .Debug ("\u0045r\u0072\u006fr\u0020\u006c\u006fa\u0064\u0069\u006e\u0067\u0020\u0077\u0069d\u0067\u0065\u0074\u0020\u0061\u006en\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0066\u006f\u0072 \u0066\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0076",_dgef );
return nil ,_dgef ;};_gcbc ,_bdea :=_cggb ._ffbe .(*PdfAnnotationWidget );if !_bdea {return nil ,ErrTypeCheck ;};_gcbc ._cdda =_debde ;_debde .Annotations =append (_debde .Annotations ,_gcbc );}else {_dgcf ,_gdgg :=_ecfc .newPdfFieldFromIndirectObject (_edbg ,_debde );
if _gdgg !=nil {_dbg .Log .Debug ("\u0045\u0072r\u006f\u0072\u0020\u006c\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0063\u0068\u0069\u006c\u0064\u0020\u0066\u0069\u0065\u006c\u0064: \u0025\u0076",_gdgg );return nil ,_gdgg ;};_debde .Kids =append (_debde .Kids ,_dgcf );
};};};return _debde ,nil ;};func (_acg *PdfReader )newPdfAnnotationTrapNetFromDict (_eebgc *_eg .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_fffe :=PdfAnnotationTrapNet {};return &_fffe ,nil ;};
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
func (_ecdbe *PdfFieldButton )IsCheckbox ()bool {return _ecdbe .GetType ()==ButtonTypeCheckbox };func (_dgacg *PdfFunctionType0 )processSamples ()error {_befd :=_ccg .ResampleBytes (_dgacg ._ebad ,_dgacg .BitsPerSample );_dgacg ._dgfa =_befd ;return nil ;
};
// Field returns the parent form field of the widget annotation, if one exists.
// NOTE: the method returns nil if the parent form field has not been parsed.
func (_ebd *PdfAnnotationWidget )Field ()*PdfField {return _ebd ._cdda };func _feaee (_ggfac _eg .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_gddf :=NewPdfColorspaceSpecialSeparation ();if _cdcf ,_acdee :=_ggfac .(*_eg .PdfIndirectObject );_acdee {_gddf ._cegff =_cdcf ;
};_ggfac =_eg .TraceToDirectObject (_ggfac );_gdfcc ,_feaed :=_ggfac .(*_eg .PdfObjectArray );if !_feaed {return nil ,_e .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062je\u0063\u0074");
};if _gdfcc .Len ()!=4{return nil ,_e .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074i\u006f\u006e \u0043\u0053\u003a\u0020\u0049\u006e\u0063\u006fr\u0072\u0065\u0063\u0074\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006ce\u006e\u0067\u0074\u0068");};_ggfac =_gdfcc .Get (0);
_fbfd ,_feaed :=_ggfac .(*_eg .PdfObjectName );if !_feaed {return nil ,_e .Errorf ("\u0073\u0065\u0070ar\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a \u0069n\u0076a\u006ci\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
};if *_fbfd !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_e .Errorf ("\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020w\u0072o\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
};_ggfac =_gdfcc .Get (1);_fbfd ,_feaed =_ggfac .(*_eg .PdfObjectName );if !_feaed {return nil ,_e .Errorf ("\u0073\u0065pa\u0072\u0061\u0074i\u006f\u006e\u0020\u0043S: \u0049nv\u0061\u006c\u0069\u0064\u0020\u0063\u006flo\u0072\u0061\u006e\u0074\u0020\u006e\u0061m\u0065");
};_gddf .ColorantName =_fbfd ;_ggfac =_gdfcc .Get (2);_cfefb ,_edgf :=NewPdfColorspaceFromPdfObject (_ggfac );if _edgf !=nil {return nil ,_edgf ;};_gddf .AlternateSpace =_cfefb ;_afff ,_edgf :=_dgbga (_gdfcc .Get (3));if _edgf !=nil {return nil ,_edgf ;
};_gddf .TintTransform =_afff ;return _gddf ,nil ;};
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
func (_bfafe *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_ffgf :=_ccg .NewReader (img .getBase ());_addg :=_ff .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_dbaa :=_ccg .NewWriter (_addg );
_dded :=_bc .Pow (2,float64 (img .BitsPerComponent ))-1;_ceeca :=make ([]uint32 ,3);var (_caed uint32 ;ANorm ,X ,Y ,Z ,_bedfa ,_ffgd ,_faff float64 ;_ffdb error ;);for {_caed ,_ffdb =_ffgf .ReadSample ();if _ffdb ==_de .EOF {break ;}else if _ffdb !=nil {return img ,_ffdb ;
};ANorm =float64 (_caed )/_dded ;X =_bfafe .WhitePoint [0]*_bc .Pow (ANorm ,_bfafe .Gamma );Y =_bfafe .WhitePoint [1]*_bc .Pow (ANorm ,_bfafe .Gamma );Z =_bfafe .WhitePoint [2]*_bc .Pow (ANorm ,_bfafe .Gamma );_bedfa =3.240479*X +-1.537150*Y +-0.498535*Z ;
_ffgd =-0.969256*X +1.875992*Y +0.041556*Z ;_faff =0.055648*X +-0.204043*Y +1.057311*Z ;_bedfa =_bc .Min (_bc .Max (_bedfa ,0),1.0);_ffgd =_bc .Min (_bc .Max (_ffgd ,0),1.0);_faff =_bc .Min (_bc .Max (_faff ,0),1.0);_ceeca [0]=uint32 (_bedfa *_dded );_ceeca [1]=uint32 (_ffgd *_dded );
_ceeca [2]=uint32 (_faff *_dded );if _ffdb =_dbaa .WriteSamples (_ceeca );_ffdb !=nil {return img ,_ffdb ;};};return _egbde (&_addg ),nil ;};
// NewDSS returns a new DSS dictionary.
func NewDSS ()*DSS {return &DSS {_gded :_eg .MakeIndirectObject (_eg .MakeDict ()),VRI :map[string ]*VRI {}};};func (_edfff *PdfSignature )extractChainFromCert ()([]*_ce .Certificate ,error ){var _addcb *_eg .PdfObjectArray ;switch _faedb :=_edfff .Cert .(type ){case *_eg .PdfObjectString :_addcb =_eg .MakeArray (_faedb );
case *_eg .PdfObjectArray :_addcb =_faedb ;default:return nil ,_e .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020s\u0069\u0067\u006e\u0061\u0074\u0075\u0072e\u0020\u0063\u0065\u0072\u0074\u0069f\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_faedb );
};var _fddgb _cbd .Buffer ;for _ ,_bgbfeg :=range _addcb .Elements (){_aeabb ,_gegf :=_eg .GetString (_bgbfeg );if !_gegf {return nil ,_e .Errorf ("\u0069\u006ev\u0061\u006c\u0069\u0064\u0020\u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0074\u0079p\u0065\u0020\u0069\u006e\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0063\u0065r\u0074\u0069\u0066\u0069c\u0061\u0074\u0065\u0020\u0063h\u0061\u0069\u006e\u003a\u0020\u0025\u0054",_bgbfeg );
};if _ ,_adfag :=_fddgb .Write (_aeabb .Bytes ());_adfag !=nil {return nil ,_adfag ;};};return _ce .ParseCertificates (_fddgb .Bytes ());};
// Compress is yet to be implemented.
// Should be able to compress in terms of JPEG quality parameter,
// and DPI threshold (need to know bounding area dimensions).
func (_gcfe DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};func _gagda ()_ee .Time {_egbeg .Lock ();defer _egbeg .Unlock ();return _cced };func (_aggd *PdfReader )newPdfAnnotationCaretFromDict (_ggf *_eg .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_adcg :=PdfAnnotationCaret {};
_dbga ,_bfe :=_aggd .newPdfAnnotationMarkupFromDict (_ggf );if _bfe !=nil {return nil ,_bfe ;};_adcg .PdfAnnotationMarkup =_dbga ;_adcg .RD =_ggf .Get ("\u0052\u0044");_adcg .Sy =_ggf .Get ("\u0053\u0079");return &_adcg ,nil ;};
// BorderStyle defines border type, typically used for annotations.
type BorderStyle int ;
// SetContext sets the sub annotation (context).
func (_ebcd *PdfAnnotation )SetContext (ctx PdfModel ){_ebcd ._ffbe =ctx };func (_fbbgg *PdfReader )traverseObjectData (_eadga _eg .PdfObject )error {return _eg .ResolveReferencesDeep (_eadga ,_fbbgg ._gadge );};
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
type PdfFieldChoice struct{*PdfField ;Opt *_eg .PdfObjectArray ;TI *_eg .PdfObjectInteger ;I *_eg .PdfObjectArray ;};func (_gef *PdfReader )newPdfAnnotationSquigglyFromDict (_eebg *_eg .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_aggg :=PdfAnnotationSquiggly {};
_fgfd ,_ddea :=_gef .newPdfAnnotationMarkupFromDict (_eebg );if _ddea !=nil {return nil ,_ddea ;};_aggg .PdfAnnotationMarkup =_fgfd ;_aggg .QuadPoints =_eebg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_aggg ,nil ;};func (_gdfeb SignatureValidationResult )String ()string {var _agbde _cbd .Buffer ;
_agbde .WriteString (_e .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_gdfeb .Name ));if _gdfeb .Date ._cggcf > 0{_agbde .WriteString (_e .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_gdfeb .Date .ToGoTime ().String ()));}else {_agbde .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
};if len (_gdfeb .Reason )> 0{_agbde .WriteString (_e .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_gdfeb .Reason ));}else {_agbde .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");
};if len (_gdfeb .Location )> 0{_agbde .WriteString (_e .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_gdfeb .Location ));}else {_agbde .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
};if len (_gdfeb .ContactInfo )> 0{_agbde .WriteString (_e .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_gdfeb .ContactInfo ));}else {_agbde .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");
};_agbde .WriteString (_e .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_gdfeb .Fields )));if _gdfeb .IsSigned {_agbde .WriteString ("S\u0069\u0067\u006e\u0065\u0064\u003a \u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u0020i\u0073\u0020\u0073i\u0067n\u0065\u0064\u000a");
}else {_agbde .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");};if _gdfeb .IsVerified {_agbde .WriteString ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072e\u0020\u0076\u0061\u006c\u0069\u0064\u0061t\u0069\u006f\u006e\u003a\u0020\u0049\u0073\u0020\u0076\u0061\u006c\u0069\u0064\u000a");
}else {_agbde .WriteString ("\u0053\u0069\u0067\u006e\u0061\u0074u\u0072\u0065\u0020\u0076\u0061\u006c\u0069\u0064\u0061\u0074\u0069\u006f\u006e:\u0020\u0049\u0073\u0020\u0069\u006e\u0076a\u006c\u0069\u0064\u000a");};if _gdfeb .IsTrusted {_agbde .WriteString ("\u0054\u0072\u0075\u0073\u0074\u0065\u0064\u003a\u0020\u0043\u0065\u0072\u0074\u0069\u0066i\u0063a\u0074\u0065\u0020\u0069\u0073\u0020\u0074\u0072\u0075\u0073\u0074\u0065\u0064\u000a");
}else {_agbde .WriteString ("\u0054\u0072\u0075s\u0074\u0065\u0064\u003a \u0055\u006e\u0074\u0072\u0075\u0073\u0074e\u0064\u0020\u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u000a");};if !_gdfeb .GeneralizedTime .IsZero (){_agbde .WriteString (_e .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_gdfeb .GeneralizedTime .String ()));
};return _agbde .String ();};
// PdfColorspaceSpecialPattern is a Pattern colorspace.
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_ecbb *_eg .PdfIndirectObject ;};
// DecodeArray returns the range of color component values in the Lab colorspace.
func (_abcb *PdfColorspaceLab )DecodeArray ()[]float64 {_acfe :=[]float64 {0,100};if _abcb .Range !=nil &&len (_abcb .Range )==4{_acfe =append (_acfe ,_abcb .Range ...);}else {_acfe =append (_acfe ,-100,100,-100,100);};return _acfe ;};
// PdfShadingType3 is a Radial shading.
type PdfShadingType3 struct{*PdfShading ;Coords *_eg .PdfObjectArray ;Domain *_eg .PdfObjectArray ;Function []PdfFunction ;Extend *_eg .PdfObjectArray ;};func (_adec *PdfReader )flattenFieldsWithOpts (_dbbg bool ,_bbgb FieldAppearanceGenerator ,_efaeb *FieldFlattenOpts )error {if _efaeb ==nil {_efaeb =&FieldFlattenOpts {};
};var _aafd bool ;_cgga :=map[*PdfAnnotation ]bool {};{var _bafdc []*PdfField ;_gabab :=_adec .AcroForm ;if _gabab !=nil {if _efaeb .FilterFunc !=nil {_bafdc =_gabab .filteredFields (_efaeb .FilterFunc ,true );_aafd =_gabab .Fields !=nil &&len (*_gabab .Fields )> 0;
}else {_bafdc =_gabab .AllFields ();};};for _ ,_fbfe :=range _bafdc {for _ ,_dfab :=range _fbfe .Annotations {_cgga [_dfab .PdfAnnotation ]=_fbfe .V !=nil ;if _bbgb !=nil {_dceb ,_agdf :=_bbgb .GenerateAppearanceDict (_gabab ,_fbfe ,_dfab );if _agdf !=nil {return _agdf ;
};_dfab .AP =_dceb ;};};};};if _dbbg {for _ ,_fcabc :=range _adec .PageList {_badc ,_cbbe :=_fcabc .GetAnnotations ();if _cbbe !=nil {return _cbbe ;};for _ ,_deeef :=range _badc {_cgga [_deeef ]=true ;};};};for _ ,_gfae :=range _adec .PageList {var _dbded []*PdfAnnotation ;
if _bbgb !=nil {if _egda :=_bbgb .WrapContentStream (_gfae );_egda !=nil {return _egda ;};};_ffgde ,_eadg :=_gfae .GetAnnotations ();if _eadg !=nil {return _eadg ;};for _ ,_gcad :=range _ffgde {_efdf ,_efdfd :=_cgga [_gcad ];if !_efdfd &&_efaeb .AnnotFilterFunc !=nil {if _ ,_ecdaa :=_gcad .GetContext ().(*PdfAnnotationWidget );
!_ecdaa {_efdfd =_efaeb .AnnotFilterFunc (_gcad );};};if !_efdfd {_dbded =append (_dbded ,_gcad );continue ;};switch _gcad .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;
};_gbge ,_ddeee ,_dfec :=_ebbgf (_gcad );if _dfec !=nil {if !_efdf {_dbg .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0077\u0069\u0074h\u006f\u0075\u0074\u0020\u0056\u0020\u002d\u003e\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0077\u0069\u0074h\u006f\u0075t\u0020\u0061p\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u0073\u0074\u0072\u0065am\u0020\u002d\u0020\u0073\u006b\u0069\u0070\u0070\u0069n\u0067\u0020\u006f\u0076\u0065\u0072");
continue ;};_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u0020\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0077\u0069\u0074h\u006f\u0075\u0074\u0020\u0061\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u0073\u0074\u0072\u0065\u0061\u006d,\u0020\u0065\u0072\u0072\u0020\u003a\u0020\u0025\u0076\u0020\u002d\u0020\u0073\u006bi\u0070\u0070\u0069n\u0067\u0020\u006f\u0076\u0065\u0072",_dfec );
continue ;};if _gbge ==nil {continue ;};_bfdb :=_gfae .Resources .GenerateXObjectName ();_gfae .Resources .SetXObjectFormByName (_bfdb ,_gbge );_bbeb :=_bc .Min (_ddeee .Llx ,_ddeee .Urx );_cgcfa :=_bc .Min (_ddeee .Lly ,_ddeee .Ury );var _debg []string ;
_debg =append (_debg ,"\u0071");_debg =append (_debg ,_e .Sprintf ("\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020%\u002e6\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0063\u006d",1.0,0.0,0.0,1.0,_bbeb ,_cgcfa ));
_debg =append (_debg ,_e .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_bfdb .String ()));_debg =append (_debg ,"\u0051");_ebcff :=_dc .Join (_debg ,"\u000a");_dfec =_gfae .AppendContentStream (_ebcff );if _dfec !=nil {return _dfec ;};if _gbge .Resources !=nil {_dcgea ,_cega :=_eg .GetDict (_gbge .Resources .Font );
if _cega {for _ ,_agcd :=range _dcgea .Keys (){if !_gfae .Resources .HasFontByName (_agcd ){_gfae .Resources .SetFontByName (_agcd ,_dcgea .Get (_agcd ));};};};};};if len (_dbded )> 0{_gfae ._egge =_dbded ;}else {_gfae ._egge =[]*PdfAnnotation {};};};if !_aafd {_adec .AcroForm =nil ;
};return nil ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_daffb pdfCIDFontType2 )GetCharMetrics (code _cec .CharCode )(_ab .CharMetrics ,bool ){if _ebcg ,_ebga :=_daffb ._egdc [code ];_ebga {return _ab .CharMetrics {Wx :_ebcg },true ;};_bacdb :=rune (code );_ebcce ,_afef :=_daffb ._dgefb [_bacdb ];if !_afef {_ebcce =int (_daffb ._cbgd );
};return _ab .CharMetrics {Wx :float64 (_ebcce )},true ;};
// GetObjectNums returns the object numbers of the PDF objects in the file
// Numbered objects are either indirect objects or stream objects.
// e.g. objNums := pdfReader.GetObjectNums()
// The underlying objects can then be accessed with
// pdfReader.GetIndirectObjectByNumber(objNums[0]) for the first available object.
func (_dagg *PdfReader )GetObjectNums ()[]int {return _dagg ._cdggc .GetObjectNums ()};
// GetContentStream returns the XObject Form's content stream.
func (_fdgag *XObjectForm )GetContentStream ()([]byte ,error ){_gfded ,_bbfbd :=_eg .DecodeStream (_fdgag ._cdcaf );if _bbfbd !=nil {return nil ,_bbfbd ;};return _gfded ,nil ;};
// XObjectImage (Table 89 in 8.9.5.1).
// Implements PdfModel interface.
type XObjectImage struct{
//ColorSpace PdfObject
Width *int64 ;Height *int64 ;ColorSpace PdfColorspace ;BitsPerComponent *int64 ;Filter _eg .StreamEncoder ;Intent _eg .PdfObject ;ImageMask _eg .PdfObject ;Mask _eg .PdfObject ;Matte _eg .PdfObject ;Decode _eg .PdfObject ;Interpolate _eg .PdfObject ;Alternatives _eg .PdfObject ;
SMask _eg .PdfObject ;SMaskInData _eg .PdfObject ;Name _eg .PdfObject ;StructParent _eg .PdfObject ;ID _eg .PdfObject ;OPI _eg .PdfObject ;Metadata _eg .PdfObject ;OC _eg .PdfObject ;Stream []byte ;_dcdb *_eg .PdfObjectStream ;};
// NewPdfActionGoToE returns a new "go to embedded" action.
func NewPdfActionGoToE ()*PdfActionGoToE {_dgd :=NewPdfAction ();_gfg :=&PdfActionGoToE {};_gfg .PdfAction =_dgd ;_dgd .SetContext (_gfg );return _gfg ;};
// PdfActionSubmitForm represents a submitForm action.
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _eg .PdfObject ;Flags _eg .PdfObject ;};
// PdfAnnotationStamp represents Stamp annotations.
// (Section 12.5.6.12).
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _eg .PdfObject ;};func _abegg (_fbagb *_eg .PdfObjectDictionary )(*PdfShadingType1 ,error ){_adaed :=PdfShadingType1 {};if _ebbce :=_fbagb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");
_ebbce !=nil {_ebbce =_eg .TraceToDirectObject (_ebbce );_eecdd ,_aagaa :=_ebbce .(*_eg .PdfObjectArray );if !_aagaa {_dbg .Log .Debug ("\u0044\u006f\u006d\u0061i\u006e\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_ebbce );
return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_adaed .Domain =_eecdd ;};if _ebbd :=_fbagb .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_ebbd !=nil {_ebbd =_eg .TraceToDirectObject (_ebbd );
_abacg ,_fbef :=_ebbd .(*_eg .PdfObjectArray );if !_fbef {_dbg .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_ebbd );return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_adaed .Matrix =_abacg ;};_edae :=_fbagb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _edae ==nil {_dbg .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0020\u0046\u0075\u006ec\u0074\u0069\u006f\u006e");
return nil ,ErrRequiredAttributeMissing ;};_adaed .Function =[]PdfFunction {};if _bfebe ,_gfge :=_edae .(*_eg .PdfObjectArray );_gfge {for _ ,_dbebdc :=range _bfebe .Elements (){_aead ,_fgfcb :=_dgbga (_dbebdc );if _fgfcb !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_fgfcb );
return nil ,_fgfcb ;};_adaed .Function =append (_adaed .Function ,_aead );};}else {_dcfcb ,_gedge :=_dgbga (_edae );if _gedge !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_gedge );
return nil ,_gedge ;};_adaed .Function =append (_adaed .Function ,_dcfcb );};return &_adaed ,nil ;};
// ToPdfObject returns a stream object.
func (_caafb *XObjectForm )ToPdfObject ()_eg .PdfObject {_cfgba :=_caafb ._cdcaf ;_fgedg :=_cfgba .PdfObjectDictionary ;if _caafb .Filter !=nil {_fgedg =_caafb .Filter .MakeStreamDict ();_cfgba .PdfObjectDictionary =_fgedg ;};_fgedg .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
_fgedg .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0046\u006f\u0072\u006d"));_fgedg .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_caafb .FormType );_fgedg .SetIfNotNil ("\u0042\u0042\u006f\u0078",_caafb .BBox );_fgedg .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_caafb .Matrix );
if _caafb .Resources !=nil {_fgedg .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_caafb .Resources .ToPdfObject ());};_fgedg .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_caafb .Group );_fgedg .SetIfNotNil ("\u0052\u0065\u0066",_caafb .Ref );
_fgedg .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_caafb .MetaData );_fgedg .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_caafb .PieceInfo );_fgedg .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_caafb .LastModified );
_fgedg .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_caafb .StructParent );_fgedg .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_caafb .StructParents );_fgedg .SetIfNotNil ("\u004f\u0050\u0049",_caafb .OPI );
_fgedg .SetIfNotNil ("\u004f\u0043",_caafb .OC );_fgedg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_caafb .Name );_fgedg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_caafb .Stream ))));_cfgba .Stream =_caafb .Stream ;return _cfgba ;
};var _ pdfFont =(*pdfFontSimple )(nil );
// PdfColorspaceDeviceNAttributes contains additional information about the components of colour space that
// conforming readers may use. Conforming readers need not use the alternateSpace and tintTransform parameters,
// and may instead use a custom blending algorithms, along with other information provided in the attributes
// dictionary if present.
type PdfColorspaceDeviceNAttributes struct{Subtype *_eg .PdfObjectName ;Colorants _eg .PdfObject ;Process _eg .PdfObject ;MixingHints _eg .PdfObject ;_bcca *_eg .PdfIndirectObject ;};
// ToPdfObject implements interface PdfModel.
func (_cbcb *PdfActionSubmitForm )ToPdfObject ()_eg .PdfObject {_cbcb .PdfAction .ToPdfObject ();_adb :=_cbcb ._ege ;_ffb :=_adb .PdfObject .(*_eg .PdfObjectDictionary );_ffb .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeSubmitForm )));if _cbcb .F !=nil {_ffb .Set ("\u0046",_cbcb .F .ToPdfObject ());
};_ffb .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_cbcb .Fields );_ffb .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_cbcb .Flags );return _adb ;};
// AddPages adds pages to be appended to the end of the source PDF.
func (_ggab *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_bade :=range pages {_bade =_bade .Duplicate ();_faadf (_bade );_ggab ._bfce =append (_ggab ._bfce ,_bade );};};
// NewPdfSignature creates a new PdfSignature object.
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_gfgbb :=&PdfSignature {Type :_eg .MakeName ("\u0053\u0069\u0067"),Handler :handler };_dgcca :=&pdfSignDictionary {PdfObjectDictionary :_eg .MakeDict (),_fbfb :&handler ,_bcacg :_gfgbb };_gfgbb ._ffae =_eg .MakeIndirectObject (_dgcca );
return _gfgbb ;};func (_cfddc *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _ffgbb []*PdfFieldSignature ;for _ ,_fdba :=range _cfddc .AllFields (){switch _dgbgb :=_fdba .GetContext ().(type ){case *PdfFieldSignature :_bffcg :=_dgbgb ;_ffgbb =append (_ffgbb ,_bffcg );
};};return _ffgbb ;};func (_fbae fontCommon )coreString ()string {_aeebe :="";if _fbae ._eecfe !=nil {_aeebe =_fbae ._eecfe .String ();};return _e .Sprintf ("\u0025#\u0071\u0020%\u0023\u0071\u0020%\u0071\u0020\u006f\u0062\u006a\u003d\u0025d\u0020\u0054\u006f\u0055\u006e\u0069c\u006f\u0064\u0065\u003d\u0025\u0074\u0020\u0066\u006c\u0061\u0067s\u003d\u0030\u0078\u0025\u0030\u0078\u0020\u0025\u0073",_fbae ._fgbbb ,_fbae ._cfab ,_fbae ._dfgf ,_fbae ._aaaf ,_fbae ._fgegd !=nil ,_fbae .fontFlags (),_aeebe );
};
// String implements interface PdfObject.
func (_ef *PdfAction )String ()string {_cgd ,_dg :=_ef .ToPdfObject ().(*_eg .PdfIndirectObject );if _dg {return _e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_ef ._cea ,_cgd .PdfObject .String ());};return "";};
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
func (_abf *PdfColorspaceCalGray )ToPdfObject ()_eg .PdfObject {_gbcg :=&_eg .PdfObjectArray {};_gbcg .Append (_eg .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_gfgdd :=_eg .MakeDict ();if _abf .WhitePoint !=nil {_gfgdd .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_eg .MakeArray (_eg .MakeFloat (_abf .WhitePoint [0]),_eg .MakeFloat (_abf .WhitePoint [1]),_eg .MakeFloat (_abf .WhitePoint [2])));
}else {_dbg .Log .Error ("\u0043\u0061\u006c\u0047\u0072\u0061\u0079\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006fi\u006e\u0074\u0020\u0028\u0052e\u0071\u0075i\u0072\u0065\u0064\u0029");};if _abf .BlackPoint !=nil {_gfgdd .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_eg .MakeArray (_eg .MakeFloat (_abf .BlackPoint [0]),_eg .MakeFloat (_abf .BlackPoint [1]),_eg .MakeFloat (_abf .BlackPoint [2])));
};_gfgdd .Set ("\u0047\u0061\u006dm\u0061",_eg .MakeFloat (_abf .Gamma ));_gbcg .Append (_gfgdd );if _abf ._gccdc !=nil {_abf ._gccdc .PdfObject =_gbcg ;return _abf ._gccdc ;};return _gbcg ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 4 for a CMYK32 device.
func (_fgbb *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};func (_ffbc *PdfReader )newPdfActionThreadFromDict (_ggc *_eg .PdfObjectDictionary )(*PdfActionThread ,error ){_cdd ,_acd :=_gbbe (_ggc .Get ("\u0046"));if _acd !=nil {return nil ,_acd ;
};return &PdfActionThread {D :_ggc .Get ("\u0044"),B :_ggc .Get ("\u0042"),F :_cdd },nil ;};func (_abga *DSS )generateHashMap (_eaea []*_eg .PdfObjectStream )(map[string ]*_eg .PdfObjectStream ,error ){_fgfb :=map[string ]*_eg .PdfObjectStream {};for _ ,_egac :=range _eaea {_edge ,_cgbg :=_eg .DecodeStream (_egac );
if _cgbg !=nil {return nil ,_cgbg ;};_gdfbcc ,_cgbg :=_cafd (_edge );if _cgbg !=nil {return nil ,_cgbg ;};_fgfb [string (_gdfbcc )]=_egac ;};return _fgfb ,nil ;};
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};func (_bgee *PdfReader )newPdfAnnotationFreeTextFromDict (_cfa *_eg .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_bege :=PdfAnnotationFreeText {};_dfa ,_gadc :=_bgee .newPdfAnnotationMarkupFromDict (_cfa );
if _gadc !=nil {return nil ,_gadc ;};_bege .PdfAnnotationMarkup =_dfa ;_bege .DA =_cfa .Get ("\u0044\u0041");_bege .Q =_cfa .Get ("\u0051");_bege .RC =_cfa .Get ("\u0052\u0043");_bege .DS =_cfa .Get ("\u0044\u0053");_bege .CL =_cfa .Get ("\u0043\u004c");
_bege .IT =_cfa .Get ("\u0049\u0054");_bege .BE =_cfa .Get ("\u0042\u0045");_bege .RD =_cfa .Get ("\u0052\u0044");_bege .BS =_cfa .Get ("\u0042\u0053");_bege .LE =_cfa .Get ("\u004c\u0045");return &_bege ,nil ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_ffbd *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_debfc ,_eefdd :=_eg .GetNumbersAsFloat (objects );
if _eefdd !=nil {return nil ,_eefdd ;};return _ffbd .ColorFromFloats (_debfc );};
// ToPdfObject implements interface PdfModel.
func (_decd *PdfFilespec )ToPdfObject ()_eg .PdfObject {_ebbg :=_decd .getDict ();_ebbg .Clear ();_ebbg .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_ebbg .SetIfNotNil ("\u0046\u0053",_decd .FS );
_ebbg .SetIfNotNil ("\u0046",_decd .F );_ebbg .SetIfNotNil ("\u0055\u0046",_decd .UF );_ebbg .SetIfNotNil ("\u0044\u004f\u0053",_decd .DOS );_ebbg .SetIfNotNil ("\u004d\u0061\u0063",_decd .Mac );_ebbg .SetIfNotNil ("\u0055\u006e\u0069\u0078",_decd .Unix );
_ebbg .SetIfNotNil ("\u0049\u0044",_decd .ID );_ebbg .SetIfNotNil ("\u0056",_decd .V );_ebbg .SetIfNotNil ("\u0045\u0046",_decd .EF );_ebbg .SetIfNotNil ("\u0052\u0046",_decd .RF );_ebbg .SetIfNotNil ("\u0044\u0065\u0073\u0063",_decd .Desc );_ebbg .SetIfNotNil ("\u0043\u0049",_decd .CI );
return _decd ._fceg ;};
// NewPdfColorspaceSpecialSeparation returns a new separation color.
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_dgccd :=&PdfColorspaceSpecialSeparation {};return _dgccd ;};func _gbdcb (_gedffc *_eg .PdfObjectDictionary )(*PdfTilingPattern ,error ){_bggg :=&PdfTilingPattern {};_aagda :=_gedffc .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");
if _aagda ==nil {_dbg .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_cgffc ,_geafg :=_aagda .(*_eg .PdfObjectInteger );if !_geafg {_dbg .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054y\u0070\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074e\u0067\u0065\u0072\u0020\u0028\u0067\u006ft\u0020\u0025\u0054\u0029",_aagda );
return nil ,_eg .ErrTypeError ;};_bggg .PaintType =_cgffc ;_aagda =_gedffc .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _aagda ==nil {_dbg .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_feabff ,_geafg :=_aagda .(*_eg .PdfObjectInteger );if !_geafg {_dbg .Log .Debug ("\u0054\u0069\u006cin\u0067\u0054\u0079\u0070\u0065\u0020\u006e\u006f\u0074 \u0061n\u0020i\u006et\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_aagda );
return nil ,_eg .ErrTypeError ;};_bggg .TilingType =_feabff ;_aagda =_gedffc .Get ("\u0042\u0042\u006f\u0078");if _aagda ==nil {_dbg .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
};_aagda =_eg .TraceToDirectObject (_aagda );_ggede ,_geafg :=_aagda .(*_eg .PdfObjectArray );if !_geafg {_dbg .Log .Debug ("\u0042B\u006f\u0078 \u0073\u0068\u006fu\u006c\u0064\u0020\u0062\u0065\u0020\u0073p\u0065\u0063\u0069\u0066\u0069\u0065d\u0020\u0062\u0079\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061y\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_aagda );
return nil ,_eg .ErrTypeError ;};_bcdce ,_afadc :=NewPdfRectangle (*_ggede );if _afadc !=nil {_dbg .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_afadc );return nil ,_afadc ;};_bggg .BBox =_bcdce ;_aagda =_gedffc .Get ("\u0058\u0053\u0074e\u0070");
if _aagda ==nil {_dbg .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_abfgd ,_afadc :=_eg .GetNumberAsFloat (_aagda );if _afadc !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0058S\u0074e\u0070\u0020\u0061\u0073\u0020\u0066\u006c\u006f\u0061\u0074\u003a\u0020\u0025\u0076",_abfgd );
return nil ,_afadc ;};_bggg .XStep =_eg .MakeFloat (_abfgd );_aagda =_gedffc .Get ("\u0059\u0053\u0074e\u0070");if _aagda ==nil {_dbg .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
};_agcaf ,_afadc :=_eg .GetNumberAsFloat (_aagda );if _afadc !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0059S\u0074e\u0070\u0020\u0061\u0073\u0020\u0066\u006c\u006f\u0061\u0074\u003a\u0020\u0025\u0076",_agcaf );
return nil ,_afadc ;};_bggg .YStep =_eg .MakeFloat (_agcaf );_aagda =_gedffc .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _aagda ==nil {_dbg .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_gedffc ,_geafg =_eg .TraceToDirectObject (_aagda ).(*_eg .PdfObjectDictionary );if !_geafg {return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_aagda );
};_aecag ,_afadc :=NewPdfPageResourcesFromDict (_gedffc );if _afadc !=nil {return nil ,_afadc ;};_bggg .Resources =_aecag ;if _fgdcd :=_gedffc .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_fgdcd !=nil {_fdgd ,_gfaba :=_fgdcd .(*_eg .PdfObjectArray );if !_gfaba {_dbg .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_fgdcd );
return nil ,_eg .ErrTypeError ;};_bggg .Matrix =_fdgd ;};return _bggg ,nil ;};
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_dcge :=&PdfAppender {_gcbb :reader ._addac ,Reader :reader ,_fbdd :reader ._cdggc ,_baeg :reader ._gadge };_geab ,_fdeg :=_dcge ._gcbb .Seek (0,_de .SeekEnd );if _fdeg !=nil {return nil ,_fdeg ;
};_dcge ._ade =_geab ;if _ ,_fdeg =_dcge ._gcbb .Seek (0,_de .SeekStart );_fdeg !=nil {return nil ,_fdeg ;};_dcge ._acdg ,_fdeg =NewPdfReader (_dcge ._gcbb );if _fdeg !=nil {return nil ,_fdeg ;};for _ ,_baec :=range _dcge .Reader .GetObjectNums (){if _dcge ._dace < _baec {_dcge ._dace =_baec ;
};};_dcge ._cdga =_dcge ._fbdd .GetXrefTable ();_dcge ._cfaf =_dcge ._fbdd .GetXrefOffset ();_dcge ._bfce =append (_dcge ._bfce ,_dcge ._acdg .PageList ...);_dcge ._adge =make (map[_eg .PdfObject ]struct{});_dcge ._bddd =make (map[_eg .PdfObject ]int64 );
_dcge ._agaa =make (map[_eg .PdfObject ]struct{});_dcge ._ggcc =_dcge ._acdg .AcroForm ;_dcge ._aegd =_dcge ._acdg .DSS ;return _dcge ,nil ;};
// IsTiling specifies if the pattern is a tiling pattern.
func (_gcccb *PdfPattern )IsTiling ()bool {return _gcccb .PatternType ==1};
// HasXObjectByName checks if an XObject with a specified keyName is defined.
func (_dcfgab *PdfPageResources )HasXObjectByName (keyName _eg .PdfObjectName )bool {_dcdac ,_ :=_dcfgab .GetXObjectByName (keyName );return _dcdac !=nil ;};
// Subtype returns the font's "Subtype" field.
func (_gefe *PdfFont )Subtype ()string {_dfdf :=_gefe .baseFields ()._fgbbb ;if _feebf ,_feddd :=_gefe ._gdcab .(*pdfFontType0 );_feddd {_dfdf =_dfdf +"\u003a"+_feebf .DescendantFont .Subtype ();};return _dfdf ;};
// AddOutlineTree adds outlines to a PDF file.
func (_abgdgg *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_abgdgg ._ebeg =outlineTree ;};
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_cbdb *PdfPageResources )GetPatternByName (keyName _eg .PdfObjectName )(*PdfPattern ,bool ){if _cbdb .Pattern ==nil {return nil ,false ;};_eafc ,_bcfcc :=_eg .TraceToDirectObject (_cbdb .Pattern ).(*_eg .PdfObjectDictionary );if !_bcfcc {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074t\u0065\u0072\u006e\u0020\u0065\u006e\u0074r\u0079\u0020\u002d\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064i\u0063\u0074\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_cbdb .Pattern );
return nil ,false ;};if _cbdeb :=_eafc .Get (keyName );_cbdeb !=nil {_acfda ,_cdca :=_ceggb (_cbdeb );if _cdca !=nil {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020f\u0061\u0069l\u0065\u0064\u0020\u0074\u006f\u0020\u006c\u006fa\u0064\u0020\u0070\u0064\u0066\u0020\u0070\u0061\u0074\u0074\u0065\u0072n\u003a\u0020\u0025\u0076",_cdca );
return nil ,false ;};return _acfda ,true ;};return nil ,false ;};
// SetContext set the sub annotation (context).
func (_gdda *PdfShading )SetContext (ctx PdfModel ){_gdda ._ccdbe =ctx };
// Decrypt decrypts the PDF file with a specified password. Also tries to
// decrypt with an empty password. Returns true if successful,
// false otherwise.
func (_bagb *PdfReader )Decrypt (password []byte )(bool ,error ){_cbaacg ,_febbfa :=_bagb ._cdggc .Decrypt (password );if _febbfa !=nil {return false ,_febbfa ;};if !_cbaacg {return false ,nil ;};_febbfa =_bagb .loadStructure ();if _febbfa !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0046\u0061\u0069\u006c\u0020\u0074\u006f \u006co\u0061d\u0020s\u0074\u0072\u0075\u0063\u0074\u0075\u0072\u0065\u0020\u0028\u0025\u0073\u0029",_febbfa );
return false ,_febbfa ;};return true ,nil ;};
// B returns the value of the blue component of the color.
func (_cgcde *PdfColorDeviceRGB )B ()float64 {return _cgcde [2]};
// FieldAppearanceGenerator generates appearance stream for a given field.
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_cegcb *PdfAcroForm ,_egcfc *PdfField ,_cfed *PdfAnnotationWidget )(*_eg .PdfObjectDictionary ,error );};func _fafc (_abac *_eg .PdfObjectDictionary )(*PdfFieldText ,error ){_cdab :=&PdfFieldText {};
_cdab .DA ,_ =_eg .GetString (_abac .Get ("\u0044\u0041"));_cdab .Q ,_ =_eg .GetInt (_abac .Get ("\u0051"));_cdab .DS ,_ =_eg .GetString (_abac .Get ("\u0044\u0053"));_cdab .RV =_abac .Get ("\u0052\u0056");_cdab .MaxLen ,_ =_eg .GetInt (_abac .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));
return _cdab ,nil ;};
// EnableAll LTV enables all signatures in the PDF document.
// The signing certificate chain is extracted from each signature dictionary.
// Optionally, additional certificates can be specified through the
// `extraCerts` parameter. The LTV client attempts to build the certificate
// chain up to a trusted root by downloading any missing certificates.
func (_geecf *LTV )EnableAll (extraCerts []*_ce .Certificate )error {_ebbcaa :=_geecf ._caadf ._acdg .AcroForm ;for _ ,_dbeb :=range _ebbcaa .AllFields (){_adbdd ,_ :=_dbeb .GetContext ().(*PdfFieldSignature );if _adbdd ==nil {continue ;};_efagb :=_adbdd .V ;
if _debbc :=_geecf .validateSig (_efagb );_debbc !=nil {_dbg .Log .Debug ("\u0057\u0041\u0052N\u003a\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0076",_debbc );
};if _cage :=_geecf .Enable (_efagb ,extraCerts );_cage !=nil {return _cage ;};};return nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain three elements representing the
// A, B and C components of the color. The values of the elements should be
// between 0 and 1.
func (_eefg *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dbgf :=vals [0];if _dbgf < 0.0||_dbgf > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};_dgec :=vals [1];if _dgec < 0.0||_dgec > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffee :=vals [2];if _ffee < 0.0||_ffee > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};_aefeg :=NewPdfColorCalRGB (_dbgf ,_dgec ,_ffee );return _aefeg ,nil ;};func (_fafg *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};func (_bedgf fontCommon )asPdfObjectDictionary (_bgff string )*_eg .PdfObjectDictionary {if _bgff !=""&&_bedgf ._fgbbb !=""&&_bgff !=_bedgf ._fgbbb {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0061\u0073\u0050\u0064\u0066\u004f\u0062\u006a\u0065\u0063\u0074\u0044\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002e\u0020O\u0076\u0065\u0072\u0072\u0069\u0064\u0069\u006e\u0067\u0020\u0073\u0075\u0062t\u0079\u0070\u0065\u0020\u0074\u006f \u0025\u0023\u0071 \u0025\u0073",_bgff ,_bedgf );
}else if _bgff ==""&&_bedgf ._fgbbb ==""{_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0061s\u0050\u0064\u0066Ob\u006a\u0065\u0063\u0074\u0044\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006e\u006f\u0020\u0073\u0075\u0062\u0074y\u0070\u0065\u002e\u0020\u0066\u006f\u006e\u0074=\u0025\u0073",_bedgf );
}else if _bedgf ._fgbbb ==""{_bedgf ._fgbbb =_bgff ;};_bega :=_eg .MakeDict ();_bega .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0046\u006f\u006e\u0074"));_bega .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_eg .MakeName (_bedgf ._cfab ));
_bega .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName (_bedgf ._fgbbb ));if _bedgf ._eecfe !=nil {_bega .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_bedgf ._eecfe .ToPdfObject ());};if _bedgf ._fgegd !=nil {_bega .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_bedgf ._fgegd );
}else if _bedgf ._fffc !=nil {_dega ,_dacd :=_bedgf ._fffc .Stream ();if _dacd !=nil {_dbg .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006eo\u0074\u0020\u0067\u0065\u0074\u0020C\u004d\u0061\u0070\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u002e\u0020\u0065r\u0072\u003d\u0025\u0076",_dacd );
}else {_bega .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_dega );};};return _bega ;};
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
func (_bcdgg *Image )GetParamsDict ()*_eg .PdfObjectDictionary {_ebcbdg :=_eg .MakeDict ();_ebcbdg .Set ("\u0057\u0069\u0064t\u0068",_eg .MakeInteger (_bcdgg .Width ));_ebcbdg .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_eg .MakeInteger (_bcdgg .Height ));
_ebcbdg .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_eg .MakeInteger (int64 (_bcdgg .ColorComponents )));_ebcbdg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eg .MakeInteger (_bcdgg .BitsPerComponent ));
return _ebcbdg ;};
// PdfActionThread represents a thread action.
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _eg .PdfObject ;B _eg .PdfObject ;};func _ffeb (_fbdf _eg .PdfObject )(*PdfFontDescriptor ,error ){_gebd :=&PdfFontDescriptor {};_fbdf =_eg .ResolveReference (_fbdf );if _bafe ,_bgbab :=_fbdf .(*_eg .PdfIndirectObject );
_bgbab {_gebd ._fcfbbf =_bafe ;_fbdf =_bafe .PdfObject ;};_caad ,_edce :=_eg .GetDict (_fbdf );if !_edce {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0046o\u006e\u0074\u0044\u0065\u0073c\u0072\u0069\u0070\u0074\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0067\u0069\u0076\u0065\u006e\u0020\u0062\u0079\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_fbdf );
return nil ,_eg .ErrTypeError ;};if _cecdd :=_caad .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_cecdd !=nil {_gebd .FontName =_cecdd ;}else {_dbg .Log .Debug ("\u0049n\u0063\u006fm\u0070\u0061\u0074\u0069b\u0069\u006c\u0069t\u0079\u003a\u0020\u0046\u006f\u006e\u0074\u004e\u0061me\u0020\u0028\u0052e\u0071\u0075i\u0072\u0065\u0064\u0029\u0020\u006di\u0073\u0073i\u006e\u0067");
};_debcf ,_ :=_eg .GetName (_gebd .FontName );if _gdgdb :=_caad .Get ("\u0054\u0079\u0070\u0065");_gdgdb !=nil {_bbfe ,_ebead :=_gdgdb .(*_eg .PdfObjectName );if !_ebead ||string (*_bbfe )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_dbg .Log .Debug ("I\u006e\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006c\u0069\u0074\u0079\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0064\u0065\u0073\u0063\u0072i\u0070t\u006f\u0072\u0020\u0054y\u0070\u0065 \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0028\u0025\u0054\u0029\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0071\u0020\u0025\u0054",_gdgdb ,_debcf ,_gebd .FontName );
};}else {_dbg .Log .Trace ("\u0049\u006ec\u006f\u006d\u0070\u0061\u0074i\u0062\u0069\u006c\u0069\u0074y\u003a\u0020\u0054\u0079\u0070\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0071\u0020\u0025\u0054",_debcf ,_gebd .FontName );
};_gebd .FontFamily =_caad .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_gebd .FontStretch =_caad .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_gebd .FontWeight =_caad .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");
_gebd .Flags =_caad .Get ("\u0046\u006c\u0061g\u0073");_gebd .FontBBox =_caad .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_gebd .ItalicAngle =_caad .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_gebd .Ascent =_caad .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");
_gebd .Descent =_caad .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_gebd .Leading =_caad .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_gebd .CapHeight =_caad .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_gebd .XHeight =_caad .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");
_gebd .StemV =_caad .Get ("\u0053\u0074\u0065m\u0056");_gebd .StemH =_caad .Get ("\u0053\u0074\u0065m\u0048");_gebd .AvgWidth =_caad .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_gebd .MaxWidth =_caad .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");
_gebd .MissingWidth =_caad .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_gebd .FontFile =_caad .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_gebd .FontFile2 =_caad .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");
_gebd .FontFile3 =_caad .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_gebd .CharSet =_caad .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_gebd .Style =_caad .Get ("\u0053\u0074\u0079l\u0065");_gebd .Lang =_caad .Get ("\u004c\u0061\u006e\u0067");
_gebd .FD =_caad .Get ("\u0046\u0044");_gebd .CIDSet =_caad .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _gebd .Flags !=nil {if _acbed ,_eecfg :=_eg .GetIntVal (_gebd .Flags );_eecfg {_gebd ._eaafa =_acbed ;};};if _gebd .MissingWidth !=nil {if _cgca ,_eaege :=_eg .GetNumberAsFloat (_gebd .MissingWidth );
_eaege ==nil {_gebd ._afce =_cgca ;};};if _gebd .FontFile !=nil {_gaga ,_agga :=_gbeab (_gebd .FontFile );if _agga !=nil {return _gebd ,_agga ;};_dbg .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_gaga );_gebd .fontFile =_gaga ;
};if _gebd .FontFile2 !=nil {_fggeb ,_dcgfb :=_ab .NewFontFile2FromPdfObject (_gebd .FontFile2 );if _dcgfb !=nil {return _gebd ,_dcgfb ;};_dbg .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_fggeb .String ());_gebd ._bgcbd =&_fggeb ;
};return _gebd ,nil ;};func (_dabg *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
// Format: [/DeviceN names alternateSpace tintTransform]
// or: [/DeviceN names alternateSpace tintTransform attributes]
func (_edde *PdfColorspaceDeviceN )ToPdfObject ()_eg .PdfObject {_febcd :=_eg .MakeArray (_eg .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_febcd .Append (_edde .ColorantNames );_febcd .Append (_edde .AlternateSpace .ToPdfObject ());_febcd .Append (_edde .TintTransform .ToPdfObject ());
if _edde .Attributes !=nil {_febcd .Append (_edde .Attributes .ToPdfObject ());};if _edde ._cedg !=nil {_edde ._cedg .PdfObject =_febcd ;return _edde ._cedg ;};return _febcd ;};
// NewPdfAnnotationPopup returns a new popup annotation.
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_dcg :=NewPdfAnnotation ();_bbeg :=&PdfAnnotationPopup {};_bbeg .PdfAnnotation =_dcg ;_dcg .SetContext (_bbeg );return _bbeg ;};
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
func (_fcafb *PdfAcroForm )GetContainingPdfObject ()_eg .PdfObject {return _fcafb ._edeaf };func _aabab (_bfad *_eg .PdfObjectDictionary )(*PdfShadingType3 ,error ){_eaed :=PdfShadingType3 {};_agafe :=_bfad .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");
if _agafe ==nil {_dbg .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0043\u006f\u006f\u0072\u0064\u0073");return nil ,ErrRequiredAttributeMissing ;
};_agbfe ,_ebde :=_agafe .(*_eg .PdfObjectArray );if !_ebde {_dbg .Log .Debug ("\u0043\u006f\u006f\u0072d\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_agafe );return nil ,_eg .ErrTypeError ;
};if _agbfe .Len ()!=6{_dbg .Log .Debug ("\u0043\u006f\u006f\u0072d\u0073\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006eo\u0074 \u0036\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",_agbfe .Len ());return nil ,ErrInvalidAttribute ;};_eaed .Coords =_agbfe ;
if _fddff :=_bfad .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_fddff !=nil {_fddff =_eg .TraceToDirectObject (_fddff );_babce ,_bedbd :=_fddff .(*_eg .PdfObjectArray );if !_bedbd {_dbg .Log .Debug ("\u0044\u006f\u006d\u0061i\u006e\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_fddff );
return nil ,_eg .ErrTypeError ;};_eaed .Domain =_babce ;};_agafe =_bfad .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _agafe ==nil {_dbg .Log .Debug ("\u0052\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0020\u0046\u0075\u006ec\u0074\u0069\u006f\u006e");
return nil ,ErrRequiredAttributeMissing ;};_eaed .Function =[]PdfFunction {};if _gafd ,_cbee :=_agafe .(*_eg .PdfObjectArray );_cbee {for _ ,_cggcb :=range _gafd .Elements (){_cfgd ,_fagb :=_dgbga (_cggcb );if _fagb !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_fagb );
return nil ,_fagb ;};_eaed .Function =append (_eaed .Function ,_cfgd );};}else {_fabf ,_bcfba :=_dgbga (_agafe );if _bcfba !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_bcfba );
return nil ,_bcfba ;};_eaed .Function =append (_eaed .Function ,_fabf );};if _aabbc :=_bfad .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_aabbc !=nil {_aabbc =_eg .TraceToDirectObject (_aabbc );_eafea ,_ecfb :=_aabbc .(*_eg .PdfObjectArray );if !_ecfb {_dbg .Log .Debug ("\u004d\u0061\u0074\u0072i\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_aabbc );
return nil ,_eg .ErrTypeError ;};if _eafea .Len ()!=2{_dbg .Log .Debug ("\u0045\u0078\u0074\u0065n\u0064\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020\u006eo\u0074 \u0032\u0020\u0028\u0067\u006f\u0074\u0020%\u0064\u0029",_eafea .Len ());return nil ,ErrInvalidAttribute ;
};_eaed .Extend =_eafea ;};return &_eaed ,nil ;};
// CharMetrics represents width and height metrics of a glyph.
type CharMetrics =_ab .CharMetrics ;
// Register registers (caches) a model to primitive object relationship.
func (_gead *modelManager )Register (primitive _eg .PdfObject ,model PdfModel ){_gead ._eegb [model ]=primitive ;_gead ._bfgf [primitive ]=model ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_gbaaa pdfCIDFontType2 )GetRuneMetrics (r rune )(_ab .CharMetrics ,bool ){_fefe ,_eead :=_gbaaa ._dgefb [r ];if !_eead {_aaef ,_gfbc :=_eg .GetInt (_gbaaa .DW );if !_gfbc {return _ab .CharMetrics {},false ;};_fefe =int (*_aaef );};return _ab .CharMetrics {Wx :float64 (_fefe )},true ;
};func _gaggb (_fcddb *_eg .PdfObjectDictionary )(*PdfShadingType5 ,error ){_eeag :=PdfShadingType5 {};_fgag :=_fcddb .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fgag ==nil {_dbg .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064 \u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065\u0020\u006d\u0069\u0073\u0073i\u006e\u0067\u003a\u0020\u0042\u0069\u0074\u0073\u0050\u0065\u0072C\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065");
return nil ,ErrRequiredAttributeMissing ;};_eeeda ,_dcgcd :=_fgag .(*_eg .PdfObjectInteger );if !_dcgcd {_dbg .Log .Debug ("\u0042\u0069\u0074\u0073\u0050e\u0072\u0043\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_fgag );
return nil ,_eg .ErrTypeError ;};_eeag .BitsPerCoordinate =_eeeda ;_fgag =_fcddb .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fgag ==nil {_dbg .Log .Debug ("\u0052e\u0071\u0075i\u0072\u0065\u0064\u0020a\u0074\u0074\u0072i\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073in\u0067\u003a\u0020B\u0069\u0074s\u0050\u0065\u0072\u0043\u006f\u006dp\u006f\u006ee\u006e\u0074");
return nil ,ErrRequiredAttributeMissing ;};_eeeda ,_dcgcd =_fgag .(*_eg .PdfObjectInteger );if !_dcgcd {_dbg .Log .Debug ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006e\u006ft\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065r \u0028\u0067\u006ft\u0020%\u0054\u0029",_fgag );
return nil ,_eg .ErrTypeError ;};_eeag .BitsPerComponent =_eeeda ;_fgag =_fcddb .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _fgag ==nil {_dbg .Log .Debug ("\u0052\u0065\u0071u\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0056\u0065\u0072\u0074\u0069c\u0065\u0073\u0050\u0065\u0072\u0052\u006f\u0077");
return nil ,ErrRequiredAttributeMissing ;};_eeeda ,_dcgcd =_fgag .(*_eg .PdfObjectInteger );if !_dcgcd {_dbg .Log .Debug ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050\u0065\u0072\u0052\u006f\u0077\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006et\u0065\u0067\u0065\u0072\u0020(\u0067\u006ft\u0020\u0025\u0054\u0029",_fgag );
return nil ,_eg .ErrTypeError ;};_eeag .VerticesPerRow =_eeeda ;_fgag =_fcddb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fgag ==nil {_dbg .Log .Debug ("\u0052\u0065\u0071ui\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069b\u0075t\u0065 \u006di\u0073\u0073\u0069\u006e\u0067\u003a\u0020\u0044\u0065\u0063\u006f\u0064\u0065");
return nil ,ErrRequiredAttributeMissing ;};_cfff ,_dcgcd :=_fgag .(*_eg .PdfObjectArray );if !_dcgcd {_dbg .Log .Debug ("\u0044\u0065\u0063\u006fd\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072a\u0079\u0020\u0028\u0067\u006f\u0074\u0020%\u0054\u0029",_fgag );
return nil ,_eg .ErrTypeError ;};_eeag .Decode =_cfff ;if _dagb :=_fcddb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_dagb !=nil {_eeag .Function =[]PdfFunction {};if _bddce ,_dfca :=_dagb .(*_eg .PdfObjectArray );_dfca {for _ ,_ecdaaa :=range _bddce .Elements (){_bbac ,_fbcag :=_dgbga (_ecdaaa );
if _fbcag !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_fbcag );return nil ,_fbcag ;};_eeag .Function =append (_eeag .Function ,_bbac );
};}else {_dfgcb ,_fgbdbc :=_dgbga (_dagb );if _fgbdbc !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069n\u0067\u0020\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e:\u0020\u0025\u0076",_fgbdbc );return nil ,_fgbdbc ;
};_eeag .Function =append (_eeag .Function ,_dfgcb );};};return &_eeag ,nil ;};
// GetContext returns the context of the outline tree node, which is either a
// *PdfOutline or a *PdfOutlineItem. The method returns nil for uninitialized
// tree nodes.
func (_dcdgg *PdfOutlineTreeNode )GetContext ()PdfModel {if _ebaac ,_aecbd :=_dcdgg ._dbaeb .(*PdfOutline );_aecbd {return _ebaac ;};if _gcecf ,_fgacgd :=_dcdgg ._dbaeb .(*PdfOutlineItem );_fgacgd {return _gcecf ;};_dbg .Log .Debug ("\u0045\u0052RO\u0052\u0020\u0049n\u0076\u0061\u006c\u0069d o\u0075tl\u0069\u006e\u0065\u0020\u0074\u0072\u0065e \u006e\u006f\u0064\u0065\u0020\u0069\u0074e\u006d");
return nil ;};
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
// indicating whether it was found or not.
func (_dbdbg *PdfPageResources )GetExtGState (keyName _eg .PdfObjectName )(_eg .PdfObject ,bool ){if _dbdbg .ExtGState ==nil {return nil ,false ;};_faefa ,_dbea :=_eg .TraceToDirectObject (_dbdbg .ExtGState ).(*_eg .PdfObjectDictionary );if !_dbea {_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0049n\u0076\u0061\u006c\u0069\u0064 \u0045\u0078\u0074\u0047\u0053\u0074\u0061\u0074\u0065\u0020\u0065\u006e\u0074\u0072\u0079\u0020\u002d\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0020\u0028\u0067\u006f\u0074\u0020\u0025\u0054\u0029",_dbdbg .ExtGState );
return nil ,false ;};if _cead :=_faefa .Get (keyName );_cead !=nil {return _cead ,true ;};return nil ,false ;};func _feed (_aedf _eg .PdfObject )[]*_eg .PdfObjectStream {if _aedf ==nil {return nil ;};_fbbee ,_edgea :=_eg .GetArray (_aedf );if !_edgea ||_fbbee .Len ()==0{return nil ;
};_dgfba :=make ([]*_eg .PdfObjectStream ,0,_fbbee .Len ());for _ ,_dafbaba :=range _fbbee .Elements (){if _gfccc ,_cgfab :=_eg .GetStream (_dafbaba );_cgfab {_dgfba =append (_dgfba ,_gfccc );};};return _dgfba ;};func _cdac (_efff _eg .PdfObject ,_acdc bool )(*PdfFont ,error ){_daea ,_fedab ,_acfed :=_cbeab (_efff );
if _acfed !=nil {if _acfed ==ErrType1CFontNotSupported {_gbaf ,_baace :=_debbd (_daea ,_fedab ,nil );if _baace !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0057h\u0069\u006c\u0065 l\u006f\u0061\u0064\u0069\u006e\u0067 \u0073\u0069\u006d\u0070\u006c\u0065\u0020\u0066\u006f\u006e\u0074\u003a\u0020\u0066\u006fn\u0074\u003d\u0025\u0073\u0020\u0065\u0072\u0072=\u0025\u0076",_fedab ,_baace );
return nil ,_acfed ;};return &PdfFont {_gdcab :_gbaf },_acfed ;};return nil ,_acfed ;};_fdgcc :=&PdfFont {};switch _fedab ._fgbbb {case "\u0054\u0079\u0070e\u0030":if !_acdc {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u004c\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0074\u0079\u0070\u00650\u0020\u006e\u006f\u0074\u0020\u0061\u006c\u006c\u006f\u0077\u0065\u0064\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_fedab );
return nil ,_bbd .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_abde ,_fgefb :=_faae (_daea ,_fedab );if _fgefb !=nil {_dbg .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020\u0057\u0068\u0069l\u0065\u0020\u006c\u006f\u0061\u0064\u0069ng\u0020\u0054\u0079\u0070e\u0030\u0020\u0066\u006f\u006e\u0074\u002e\u0020\u0066on\u0074\u003d%\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_fedab ,_fgefb );
return nil ,_fgefb ;};_fdgcc ._gdcab =_abde ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _gbaa *pdfFontSimple ;_gdfe ,_dcfc :=_ab .NewStdFontByName (_ab .StdFontName (_fedab ._cfab ));
if _dcfc {_ebbca :=_gecc (_gdfe );_fdgcc ._gdcab =&_ebbca ;_gfgg :=_eg .TraceToDirectObject (_ebbca .ToPdfObject ());_ffab ,_bcgcd ,_daeac :=_cbeab (_gfgg );if _daeac !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0042\u0061\u0064\u0020\u0053\u0074a\u006e\u0064\u0061\u0072\u0064\u00314\u000a\u0009\u0066\u006f\u006e\u0074\u003d\u0025\u0073\u000a\u0009\u0073\u0074d\u003d\u0025\u002b\u0076",_fedab ,_ebbca );
return nil ,_daeac ;};for _ ,_agagc :=range _daea .Keys (){_ffab .Set (_agagc ,_daea .Get (_agagc ));};_gbaa ,_daeac =_debbd (_ffab ,_bcgcd ,_ebbca ._fcgd );if _daeac !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0042\u0061\u0064\u0020\u0053\u0074a\u006e\u0064\u0061\u0072\u0064\u00314\u000a\u0009\u0066\u006f\u006e\u0074\u003d\u0025\u0073\u000a\u0009\u0073\u0074d\u003d\u0025\u002b\u0076",_fedab ,_ebbca );
return nil ,_daeac ;};_gbaa ._baga =_ebbca ._baga ;_gbaa ._edgae =_ebbca ._edgae ;}else {_gbaa ,_acfed =_debbd (_daea ,_fedab ,nil );if _acfed !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0057h\u0069\u006c\u0065 l\u006f\u0061\u0064\u0069\u006e\u0067 \u0073\u0069\u006d\u0070\u006c\u0065\u0020\u0066\u006f\u006e\u0074\u003a\u0020\u0066\u006fn\u0074\u003d\u0025\u0073\u0020\u0065\u0072\u0072=\u0025\u0076",_fedab ,_acfed );
return nil ,_acfed ;};};_acfed =_gbaa .addEncoding ();if _acfed !=nil {return nil ,_acfed ;};if _dcfc {_gbaa .updateStandard14Font ();};if _dcfc &&_gbaa ._gccbc ==nil &&_gbaa ._fcgd ==nil {_dbg .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_gbaa );
_dbg .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_gdfe );};if len (_gbaa ._baga )==0{_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_gbaa );};_fdgcc ._gdcab =_gbaa ;
case "\u0054\u0079\u0070e\u0033":_ccadf ,_bgdaa :=_dbaea (_daea ,_fedab );if _bgdaa !=nil {_dbg .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020W\u0068\u0069\u006c\u0065\u0020\u006co\u0061\u0064\u0069\u006e\u0067\u0020\u0074y\u0070\u0065\u0033\u0020\u0066\u006f\u006e\u0074\u003a\u0020%\u0076",_bgdaa );
return nil ,_bgdaa ;};_fdgcc ._gdcab =_ccadf ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_fcffb ,_gedd :=_adged (_daea ,_fedab );if _gedd !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0057\u0068i\u006c\u0065\u0020l\u006f\u0061\u0064\u0069\u006e\u0067\u0020\u0063\u0069d \u0066\u006f\u006et\u0020\u0074y\u0070\u0065\u0030\u0020\u0066\u006fn\u0074\u003a \u0025\u0076",_gedd );
return nil ,_gedd ;};_fdgcc ._gdcab =_fcffb ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_dfcb ,_gbea :=_fegb (_daea ,_fedab );if _gbea !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0057\u0068\u0069l\u0065\u0020\u006co\u0061\u0064\u0069\u006e\u0067\u0020\u0063\u0069\u0064\u0020f\u006f\u006e\u0074\u0020\u0074yp\u0065\u0032\u0020\u0066\u006f\u006e\u0074\u002e\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_fedab ,_gbea );
return nil ,_gbea ;};_fdgcc ._gdcab =_dfcb ;default:_dbg .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020U\u006e\u0073u\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020f\u006f\u006e\u0074\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0066\u006fn\u0074\u003d\u0025\u0073",_fedab );
return nil ,_e .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0066\u006f\u006e\u0074\u0020\u0074y\u0070\u0065\u003a\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_fedab );};return _fdgcc ,nil ;};
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
func (_abgdg *PdfShading )GetContext ()PdfModel {return _abgdg ._ccdbe };func (_edbe *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";};
// ToPdfOutline returns a low level PdfOutline object, based on the current
// instance.
func (_bbegc *Outline )ToPdfOutline ()*PdfOutline {_eafec :=NewPdfOutline ();var _gfbfcc []*PdfOutlineItem ;var _gadca int64 ;var _dfdge *PdfOutlineItem ;for _ ,_abadc :=range _bbegc .Entries {_afae ,_dfeff :=_abadc .ToPdfOutlineItem ();_afae .Parent =&_eafec .PdfOutlineTreeNode ;
if _dfdge !=nil {_dfdge .Next =&_afae .PdfOutlineTreeNode ;_afae .Prev =&_dfdge .PdfOutlineTreeNode ;};_gfbfcc =append (_gfbfcc ,_afae );_gadca +=_dfeff ;_dfdge =_afae ;};_ecaa :=int64 (len (_gfbfcc ));_gadca +=_ecaa ;if _ecaa > 0{_eafec .First =&_gfbfcc [0].PdfOutlineTreeNode ;
_eafec .Last =&_gfbfcc [_ecaa -1].PdfOutlineTreeNode ;_eafec .Count =&_gadca ;};return _eafec ;};func (_adbda *pdfFontType0 )baseFields ()*fontCommon {return &_adbda .fontCommon };func (_cceg *PdfWriter )updateObjectNumbers (){_fdcgg :=_cceg .ObjNumOffset ;
_cffdf :=0;for _ ,_bbada :=range _cceg ._aecabb {_aadf :=int64 (_cffdf +1+_fdcgg );_ccdfg :=true ;if _cceg ._aaedc {if _gffdd ,_deggd :=_cceg ._cacc [_bbada ];_deggd {_aadf =_gffdd ;_ccdfg =false ;};};switch _daebd :=_bbada .(type ){case *_eg .PdfIndirectObject :_daebd .ObjectNumber =_aadf ;
_daebd .GenerationNumber =0;case *_eg .PdfObjectStream :_daebd .ObjectNumber =_aadf ;_daebd .GenerationNumber =0;case *_eg .PdfObjectStreams :_daebd .ObjectNumber =_aadf ;_daebd .GenerationNumber =0;default:_dbg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0055\u006e\u006b\u006e\u006f\u0077\u006e\u0020\u0074\u0079\u0070\u0065\u0020%\u0054\u0020\u002d\u0020\u0073\u006b\u0069p\u0070\u0069\u006e\u0067",_daebd );
continue ;};if _ccdfg {_cffdf ++;};};_cebe :=func (_baeeg _eg .PdfObject )int64 {switch _daagg :=_baeeg .(type ){case *_eg .PdfIndirectObject :return _daagg .ObjectNumber ;case *_eg .PdfObjectStream :return _daagg .ObjectNumber ;case *_eg .PdfObjectStreams :return _daagg .ObjectNumber ;
};return 0;};_ae .SliceStable (_cceg ._aecabb ,func (_ddcgg ,_gdcg int )bool {return _cebe (_cceg ._aecabb [_ddcgg ])< _cebe (_cceg ._aecabb [_gdcg ])});};
// PdfAnnotationUnderline represents Underline annotations.
// (Section 12.5.6.10).
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eg .PdfObject ;};func (_cgc *PdfReader )newPdfActionRenditionFromDict (_fedb *_eg .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_fedb .Get ("\u0052"),AN :_fedb .Get ("\u0041\u004e"),OP :_fedb .Get ("\u004f\u0050"),JS :_fedb .Get ("\u004a\u0053")},nil ;
};
// DecodeArray returns the component range values for the DeviceN colorspace.
// [0 1.0 0 1.0 ...] for each color component.
func (_eacc *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _febbf []float64 ;for _fgacg :=0;_fgacg < _eacc .GetNumComponents ();_fgacg ++{_febbf =append (_febbf ,0.0,1.0);};return _febbf ;};func _gcbdb (_aedbe *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_aedbe }};
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
func SetPdfModifiedDate (modifiedDate _ee .Time ){_egbeg .Lock ();defer _egbeg .Unlock ();_cced =modifiedDate ;};
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
type PdfColorspaceDeviceCMYK struct{};
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_ddgde :=&PdfPageResourcesColorspaces {};_ddgde .Names =[]string {};_ddgde .Colorspaces =map[string ]PdfColorspace {};_ddgde ._abbc =&_eg .PdfIndirectObject {};return _ddgde ;};
// PdfField contains the common attributes of a form field. The context object contains the specific field data
// which can represent a button, text, choice or signature.
// The PdfField is typically not used directly, but is encapsulated by the more specific field types such as
// PdfFieldButton etc (i.e. the context attribute).
type PdfField struct{_ceag PdfModel ;_afbe *_eg .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_eg .PdfObjectName ;T *_eg .PdfObjectString ;TU *_eg .PdfObjectString ;TM *_eg .PdfObjectString ;Ff *_eg .PdfObjectInteger ;
V _eg .PdfObject ;DV _eg .PdfObject ;AA _eg .PdfObject ;};
// HasExtGState checks whether a font is defined by the specified keyName.
func (_dfafd *PdfPageResources )HasExtGState (keyName _eg .PdfObjectName )bool {_ ,_befdg :=_dfafd .GetFontByName (keyName );return _befdg ;};